<p>Joshua Colp <strong>merged</strong> this change.</p><p><a href="https://gerrit.asterisk.org/5935">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Joshua Colp: Looks good to me, but someone else must approve; Approved for Submit
George Joseph: Looks good to me, approved
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">app_stream_echo: misc bug fixes<br><br>Fixed the following bugs:<br><br>* calls to stream_echo_write had the last two parameters swapped<br>* ast_read should have been ast_read_stream<br>* added a null check on the frame's subclass format<br><br>This also resets the update_sent flag upon receiving SRRCHANGE control frame.<br>This will then force a video update.<br><br>ASTERISK-26997<br><br>Change-Id: I6ad7c8253559b800800433c52339e7f5aa583566<br>---<br>M apps/app_stream_echo.c<br>1 file changed, 8 insertions(+), 7 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/apps/app_stream_echo.c b/apps/app_stream_echo.c<br>index 79d1591..9695dcc 100644<br>--- a/apps/app_stream_echo.c<br>+++ b/apps/app_stream_echo.c<br>@@ -108,7 +108,6 @@<br> * we simply want to echo it back out onto the same stream number.<br> */<br> num = ast_channel_is_multistream(chan) ? frame->stream_num : -1;<br>-<br> if (ast_write_stream(chan, num, frame)) {<br> return stream_echo_write_error(chan, frame, num);<br> }<br>@@ -120,7 +119,8 @@<br> * Note, if the channel is not multi-stream capable then one_to_one will<br> * always be true, so it is safe to also not check for that here too.<br> */<br>- if (one_to_one || ast_format_get_type(frame->subclass.format) != type) {<br>+ if (one_to_one || !frame->subclass.format ||<br>+ ast_format_get_type(frame->subclass.format) != type) {<br> return 0;<br> }<br> <br>@@ -141,7 +141,6 @@<br> <br> for (i = 0; i < ast_stream_topology_get_count(topology); ++i) {<br> struct ast_stream *stream = ast_stream_topology_get_stream(topology, i);<br>-<br> if (num != i && ast_stream_get_type(stream) == type) {<br> if (ast_write_stream(chan, i, frame)) {<br> return stream_echo_write_error(chan, frame, i);<br>@@ -171,7 +170,7 @@<br> request_change = 0;<br> }<br> <br>- f = ast_read(chan);<br>+ f = ast_read_stream(chan);<br> if (!f) {<br> return -1;<br> }<br>@@ -186,11 +185,13 @@<br> <br> if (f->frametype == AST_FRAME_CONTROL) {<br> if (f->subclass.integer == AST_CONTROL_VIDUPDATE && !update_sent) {<br>- if (stream_echo_write(chan, f, one_to_one, type)) {<br>+ if (stream_echo_write(chan, f, type, one_to_one)) {<br> ast_frfree(f);<br> return -1;<br> }<br> update_sent = 1;<br>+ } else if (f->subclass.integer == AST_CONTROL_SRCCHANGE) {<br>+ update_sent = 0;<br> } else if (f->subclass.integer == AST_CONTROL_STREAM_TOPOLOGY_CHANGED) {<br> update_sent = 0;<br> one_to_one = 0; /* Switch writing to one to many */<br>@@ -200,14 +201,14 @@<br> .frametype = AST_FRAME_CONTROL,<br> .subclass.integer = AST_CONTROL_VIDUPDATE,<br> };<br>- stream_echo_write(chan, &frame, one_to_one, type);<br>+ stream_echo_write(chan, &frame, type, one_to_one);<br> update_sent = 1;<br> }<br> <br> if (f->frametype != AST_FRAME_CONTROL &&<br> f->frametype != AST_FRAME_MODEM &&<br> f->frametype != AST_FRAME_NULL &&<br>- stream_echo_write(chan, f, one_to_one, type)) {<br>+ stream_echo_write(chan, f, type, one_to_one)) {<br> ast_frfree(f);<br> return -1;<br> }<br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/5935">change 5935</a>. To unsubscribe, visit <a href="https://gerrit.asterisk.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.asterisk.org/5935"/><meta itemprop="name" content="View Change"/></div></div>
<div style="display:none"> Gerrit-Project: asterisk </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-MessageType: merged </div>
<div style="display:none"> Gerrit-Change-Id: I6ad7c8253559b800800433c52339e7f5aa583566 </div>
<div style="display:none"> Gerrit-Change-Number: 5935 </div>
<div style="display:none"> Gerrit-PatchSet: 3 </div>
<div style="display:none"> Gerrit-Owner: Kevin Harwell <kharwell@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins2 </div>
<div style="display:none"> Gerrit-Reviewer: Joshua Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Kevin Harwell <kharwell@digium.com> </div>