summaryrefslogtreecommitdiff
path: root/bridges
diff options
context:
space:
mode:
authorJenkins2 <jenkins2@gerrit.asterisk.org>2017-07-18 08:13:15 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2017-07-18 08:13:15 -0500
commitfb3c7926b7c5f424f4d16854be106764dbddfab6 (patch)
treef989308dfd3557a7a55bf6f206658609d960be49 /bridges
parent594c7a50af49947fa31ad843ab20481dbc5ddd6e (diff)
parentbcd3f65174ace4993c2f76095166b7a2110916a9 (diff)
Merge "bridge_softmix: Don't reorder streams on participant leaving."
Diffstat (limited to 'bridges')
-rw-r--r--bridges/bridge_softmix.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/bridges/bridge_softmix.c b/bridges/bridge_softmix.c
index 21f5190e5..3dd26603e 100644
--- a/bridges/bridge_softmix.c
+++ b/bridges/bridge_softmix.c
@@ -701,14 +701,15 @@ static int remove_destination_streams(struct ast_stream_topology *dest,
stream = ast_stream_topology_get_stream(source, i);
- if (is_video_dest(stream, channel_name, NULL)) {
- continue;
- }
-
stream_clone = ast_stream_clone(stream, NULL);
if (!stream_clone) {
continue;
}
+
+ if (is_video_dest(stream, channel_name, NULL)) {
+ ast_stream_set_state(stream_clone, AST_STREAM_STATE_REMOVED);
+ }
+
if (ast_stream_topology_append_stream(dest, stream_clone) < 0) {
ast_stream_free(stream_clone);
}
@@ -1964,9 +1965,9 @@ AST_TEST_DEFINE(sfu_remove_destination_streams)
int num_streams;
int params_index[4];
} removal_results[] = {
- { "PJSIP/Bob-00000001", 3, { 0, 1, 3, -1 }, },
+ { "PJSIP/Bob-00000001", 4, { 0, 1, 2, 3 }, },
{ "PJSIP/Edward-00000004", 4, { 0, 1, 2, 3 }, },
- { "", 2, { 0, 1, -1, -1 }, },
+ { "", 4, { 0, 1, 2, 3 }, },
};
struct ast_stream_topology *orig = NULL;
struct ast_stream_topology *result = NULL;
@@ -2033,6 +2034,12 @@ AST_TEST_DEFINE(sfu_remove_destination_streams)
ast_format_cap_get_names(ast_stream_get_formats(actual), &actual_str));
goto end;
}
+
+ if (is_video_dest(actual, removal_results[i].channel_name, NULL) &&
+ ast_stream_get_state(actual) != AST_STREAM_STATE_REMOVED) {
+ ast_test_status_update(test, "Removed stream %s does not have a state of removed\n", ast_stream_get_name(actual));
+ goto end;
+ }
}
}