summaryrefslogtreecommitdiff
path: root/apps/app_confbridge.c
diff options
context:
space:
mode:
authorMark Michelson <mmichelson@digium.com>2017-05-24 10:09:22 -0500
committerMark Michelson <mmichelson@digium.com>2017-05-30 10:24:20 -0500
commit39d14834f83e8727e841c51d1752d90bc7be5c63 (patch)
treebaf5bbd256aa89a34a2a6e0b0f38b6d0f7201ced /apps/app_confbridge.c
parent2da869408ae5556022526bcd0f526d92fdbb5a5f (diff)
Confbridge: Add "sfu" video mode to bridge profile options.
A previous commit added plumbing to bridge_softmix to allow for an SFU experience with Asterisk. This commit adds an option to app_confbridge that allows for a confbridge to actually make use of the SFU video mode. SFU mode is implemented in a "set it and forget it" kind of way. That is, when the bridge is created, if SFU mode is enabled, then the video mode gets set to SFU and cannot be changed. Future improvements may allow for a hybrid experience (e.g. forward multiple video streams, specifically those of the most recent talkers), but for this addition, no such capability is present. Change-Id: I87bbcb63dec6dbbb42488f894871b86f112b2020
Diffstat (limited to 'apps/app_confbridge.c')
-rw-r--r--apps/app_confbridge.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c
index a9f917b9a..1baf257a4 100644
--- a/apps/app_confbridge.c
+++ b/apps/app_confbridge.c
@@ -1483,6 +1483,8 @@ static struct confbridge_conference *join_conference_bridge(const char *conferen
if (ast_test_flag(&conference->b_profile, BRIDGE_OPT_VIDEO_SRC_FOLLOW_TALKER)) {
ast_bridge_set_talker_src_video_mode(conference->bridge);
+ } else if (ast_test_flag(&conference->b_profile, BRIDGE_OPT_VIDEO_SRC_SFU)) {
+ ast_bridge_set_sfu_video_mode(conference->bridge);
}
/* Link it into the conference bridges container */
@@ -2770,7 +2772,9 @@ static int execute_menu_entry(struct confbridge_conference *conference,
break;
case MENU_ACTION_SET_SINGLE_VIDEO_SRC:
ao2_lock(conference);
- ast_bridge_set_single_src_video_mode(conference->bridge, bridge_channel->chan);
+ if (!ast_test_flag(&conference->b_profile, BRIDGE_OPT_VIDEO_SRC_SFU)) {
+ ast_bridge_set_single_src_video_mode(conference->bridge, bridge_channel->chan);
+ }
ao2_unlock(conference);
break;
case MENU_ACTION_RELEASE_SINGLE_VIDEO_SRC: