[Asterisk-code-review] app echo: forward and generate VIDUPDATE frames (asterisk[13])
Joshua Colp
asteriskteam at digium.com
Tue Mar 29 12:46:45 CDT 2016
Joshua Colp has submitted this change and it was merged.
Change subject: app_echo: forward and generate VIDUPDATE frames
......................................................................
app_echo: forward and generate VIDUPDATE frames
When using app_echo via WebRTC with VP8 video the video would appear
only after a few minutes, because there would be nothing to request
a full reference frame.
This fixes the problem in both ways:
- echos any VIDUPDATE frames received on the channel
- sends one such frame when first video frame is to be forwarded
This makes the echo work with Firefox and Chrome WebRTC implementation.
ASTERISK-25867 #close
Change-Id: I73bda87bf7532ee8bfb28d917045a21034908c1e
---
M apps/app_echo.c
1 file changed, 17 insertions(+), 0 deletions(-)
Approvals:
Mark Michelson: Looks good to me, approved
Richard Mudgett: Looks good to me, but someone else must approve
Joshua Colp: Verified
diff --git a/apps/app_echo.c b/apps/app_echo.c
index d8b2079..c6e37db 100644
--- a/apps/app_echo.c
+++ b/apps/app_echo.c
@@ -58,6 +58,7 @@
static int echo_exec(struct ast_channel *chan, const char *data)
{
int res = -1;
+ int fir_sent = 0;
while (ast_waitfor(chan, -1) > -1) {
struct ast_frame *f = ast_read(chan);
@@ -66,6 +67,22 @@
}
f->delivery.tv_sec = 0;
f->delivery.tv_usec = 0;
+ if (f->frametype == AST_FRAME_CONTROL
+ && f->subclass.integer == AST_CONTROL_VIDUPDATE) {
+ if (ast_write(chan, f) < 0) {
+ ast_frfree(f);
+ goto end;
+ }
+ fir_sent = 1;
+ }
+ if (!fir_sent && f->frametype == AST_FRAME_VIDEO) {
+ struct ast_frame frame = {
+ .frametype = AST_FRAME_CONTROL,
+ .subclass.integer = AST_CONTROL_VIDUPDATE,
+ };
+ ast_write(chan, &frame);
+ fir_sent = 1;
+ }
if (f->frametype != AST_FRAME_CONTROL
&& f->frametype != AST_FRAME_MODEM
&& f->frametype != AST_FRAME_NULL
--
To view, visit https://gerrit.asterisk.org/2467
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I73bda87bf7532ee8bfb28d917045a21034908c1e
Gerrit-PatchSet: 3
Gerrit-Project: asterisk
Gerrit-Branch: 13
Gerrit-Owner: Jacek Konieczny <jkonieczny at eggsoft.pl>
Gerrit-Reviewer: Anonymous Coward #1000019
Gerrit-Reviewer: Jacek Konieczny <jkonieczny at eggsoft.pl>
Gerrit-Reviewer: Joshua Colp <jcolp at digium.com>
Gerrit-Reviewer: Mark Michelson <mmichelson at digium.com>
Gerrit-Reviewer: Richard Mudgett <rmudgett at digium.com>
More information about the asterisk-code-review
mailing list