forked from Mirrors/freeswitch
FS-10107
This commit is contained in:
parent
92146d8e24
commit
f9e52870cb
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue