diff options
author | Jenkins2 <jenkins2@gerrit.asterisk.org> | 2018-04-30 12:35:10 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2018-04-30 12:35:10 -0500 |
commit | f633af89c1d69734589dac2cb16f6de46301c9d6 (patch) | |
tree | d7563a338f166da0dc2791aa96004eac8ef0f93d | |
parent | 3bad41257bcd4470a773fc12d0d62a678a95ede0 (diff) | |
parent | de9c0ede4a74796efad0a7736897db71548d727b (diff) |
Merge "bridge_softmix: Fix sporadic incorrect video stream mapping."
-rw-r--r-- | bridges/bridge_softmix.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/bridges/bridge_softmix.c b/bridges/bridge_softmix.c index e3513a788..23dc54846 100644 --- a/bridges/bridge_softmix.c +++ b/bridges/bridge_softmix.c @@ -2197,12 +2197,13 @@ static void softmix_bridge_stream_topology_changed(struct ast_bridge *bridge, st AST_VECTOR_SIZE(&media_types) - 1, &bridge->channels); ast_bridge_channel_lock(participant); ast_channel_lock(participant->chan); - } else if (is_video_dest(stream, NULL, NULL)) { - /* We expect to never read media from video destination channels, but just - * in case, we should set their to_bridge value to -1. + } else if (ast_stream_get_type(stream) == AST_MEDIA_TYPE_VIDEO) { + /* Video stream mapping occurs directly when a video source stream + * is found on a channel. Video streams should otherwise remain + * unmapped. */ AST_VECTOR_REPLACE(&participant->stream_map.to_bridge, i, -1); - } else { + } else if (ast_stream_get_state(stream) != AST_STREAM_STATE_REMOVED) { /* XXX This is copied from ast_stream_topology_map(). This likely could * be factored out in some way */ |