]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-11293 #resolve attach to the original canvas when coming back from vmuted
authorSeven Du <dujinfang@x-y-t.cn>
Sun, 3 Sep 2017 02:34:22 +0000 (10:34 +0800)
committerAndrey Volk <andywolk@gmail.com>
Tue, 16 Jul 2019 19:35:58 +0000 (23:35 +0400)
src/mod/applications/mod_conference/conference_video.c

index 4c0f43e0ab6453d2a2cd375ed4344ad01482f9d6..aae9d393e6f1c8a4bff12265687d629f477d724b 100644 (file)
@@ -2640,7 +2640,7 @@ switch_status_t conference_video_find_layer(conference_obj_t *conference, mcu_ca
 
        if (conference_utils_test_flag(conference, CFLAG_VIDEO_MUTE_EXIT_CANVAS) &&
                !conference_utils_member_test_flag(member, MFLAG_CAN_BE_SEEN)) {
-               return SWITCH_STATUS_FALSE;
+               return SWITCH_STATUS_NOOP;
        }
 
        if (conference_utils_member_test_flag(member, MFLAG_HOLD)) {
@@ -3539,8 +3539,11 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
                        }
 
                        if (!layer && (!conference_utils_test_flag(imember->conference, CFLAG_VIDEO_REQUIRED_FOR_CANVAS) || ((switch_channel_test_flag(imember->channel, CF_VIDEO_READY) && switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_SENDONLY && switch_core_session_media_flow(imember->session, SWITCH_MEDIA_TYPE_VIDEO) != SWITCH_MEDIA_FLOW_INACTIVE)))) {
-                               if (conference_video_find_layer(conference, canvas, imember, &layer) == SWITCH_STATUS_SUCCESS) {
+                               switch_status_t ret = conference_video_find_layer(conference, canvas, imember, &layer);
+
+                               if ( ret == SWITCH_STATUS_SUCCESS) {
                                        imember->layer_timeout = 0;
+                               } else if (ret == SWITCH_STATUS_NOOP) {
                                } else {
                                        if (--imember->layer_timeout <= 0) {