From f9e52870cb9b4a990848a8a239f3496837255d4f Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 10 Mar 2017 21:20:24 -0600 Subject: [PATCH] FS-10107 --- .../mod_conference/conference_video.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/mod/applications/mod_conference/conference_video.c b/src/mod/applications/mod_conference/conference_video.c index 47858621f4..e5db850908 100644 --- a/src/mod/applications/mod_conference/conference_video.c +++ b/src/mod/applications/mod_conference/conference_video.c @@ -3039,6 +3039,13 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr continue; } + //VIDFLOOR + if (conference->video_mode == CONF_VIDEO_MODE_MUX && + conference->canvas_count == 1 && canvas->layout_floor_id > -1 && imember->id == conference->video_floor_holder && + imember->video_layer_id != canvas->layout_floor_id) { + conference_video_attach_video_layer(imember, canvas, canvas->layout_floor_id); + } + if (conference->playing_video_file) { switch_img_free(&img); switch_core_session_rwunlock(imember->session); @@ -4170,6 +4177,17 @@ void conference_video_set_floor_holder(conference_obj_t *conference, conference_ conference->last_video_floor_holder = conference->video_floor_holder; } + if (conference->video_mode == CONF_VIDEO_MODE_MUX && + conference->last_video_floor_holder && (imember = conference_member_get(conference, conference->last_video_floor_holder))) { + switch_core_session_request_video_refresh(imember->session); + conference_video_clear_managed_kps(imember); + if (conference_utils_member_test_flag(imember, MFLAG_VIDEO_BRIDGE)) { + conference_utils_set_flag(conference, CFLAG_VID_FLOOR_LOCK); + } + switch_thread_rwlock_unlock(imember->rwlock); + imember = NULL; + } + old_member = conference->video_floor_holder; switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG1, "Dropping video floor %d\n", old_member); }