<p>Jenkins2 <strong>merged</strong> this change.</p><p><a href="https://gerrit.asterisk.org/6030">View Change</a></p><div style="white-space:pre-wrap">Approvals:
Benjamin Keith Ford: Looks good to me, but someone else must approve
George Joseph: Looks good to me, approved
Jenkins2: Approved for Submit
</div><pre style="font-family: monospace,monospace; white-space: pre-wrap;">bridge_softmix: Don't reorder streams on participant leaving.<br><br>When a participant leaves a bridge while operating in SFU mode<br>their respective stream on every other participant needs to be<br>removed. Leaving the stream out of the new topology results in<br>every stream after it being moved and reordered. This causes<br>problems with clients. Instead simply mark the stream as removed<br>which leaves it in place in the SDP and doesn't reorder or touch<br>any other streams.<br><br>ASTERISK-27136<br><br>Change-Id: I4b3f840adcdf69b83842b0d8a737665ba0ef9cb1<br>---<br>M bridges/bridge_softmix.c<br>1 file changed, 13 insertions(+), 6 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">diff --git a/bridges/bridge_softmix.c b/bridges/bridge_softmix.c<br>index ae877eb..9aa8a7a 100644<br>--- a/bridges/bridge_softmix.c<br>+++ b/bridges/bridge_softmix.c<br>@@ -701,14 +701,15 @@<br> <br> stream = ast_stream_topology_get_stream(source, i);<br> <br>- if (is_video_dest(stream, channel_name, NULL)) {<br>- continue;<br>- }<br>-<br> stream_clone = ast_stream_clone(stream, NULL);<br> if (!stream_clone) {<br> continue;<br> }<br>+<br>+ if (is_video_dest(stream, channel_name, NULL)) {<br>+ ast_stream_set_state(stream_clone, AST_STREAM_STATE_REMOVED);<br>+ }<br>+<br> if (ast_stream_topology_append_stream(dest, stream_clone) < 0) {<br> ast_stream_free(stream_clone);<br> }<br>@@ -1964,9 +1965,9 @@<br> int num_streams;<br> int params_index[4];<br> } removal_results[] = {<br>- { "PJSIP/Bob-00000001", 3, { 0, 1, 3, -1 }, },<br>+ { "PJSIP/Bob-00000001", 4, { 0, 1, 2, 3 }, },<br> { "PJSIP/Edward-00000004", 4, { 0, 1, 2, 3 }, },<br>- { "", 2, { 0, 1, -1, -1 }, },<br>+ { "", 4, { 0, 1, 2, 3 }, },<br> };<br> struct ast_stream_topology *orig = NULL;<br> struct ast_stream_topology *result = NULL;<br>@@ -2033,6 +2034,12 @@<br> ast_format_cap_get_names(ast_stream_get_formats(actual), &actual_str));<br> goto end;<br> }<br>+<br>+ if (is_video_dest(actual, removal_results[i].channel_name, NULL) &&<br>+ ast_stream_get_state(actual) != AST_STREAM_STATE_REMOVED) {<br>+ ast_test_status_update(test, "Removed stream %s does not have a state of removed\n", ast_stream_get_name(actual));<br>+ goto end;<br>+ }<br> }<br> }<br> <br></pre><p>To view, visit <a href="https://gerrit.asterisk.org/6030">change 6030</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/6030"/><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: I4b3f840adcdf69b83842b0d8a737665ba0ef9cb1 </div>
<div style="display:none"> Gerrit-Change-Number: 6030 </div>
<div style="display:none"> Gerrit-PatchSet: 2 </div>
<div style="display:none"> Gerrit-Owner: Joshua Colp <jcolp@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Benjamin Keith Ford <bford@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: George Joseph <gjoseph@digium.com> </div>
<div style="display:none"> Gerrit-Reviewer: Jenkins2 </div>