]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7513 favor moderators for selection of open layers in the canvas
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 13 May 2015 19:42:26 +0000 (14:42 -0500)
committerMichael Jerris <mike@jerris.com>
Thu, 28 May 2015 17:47:31 +0000 (12:47 -0500)
src/mod/applications/mod_conference/mod_conference.c

index ac218a7c27f8469a1c718245e24f3526a6e4a29b..6232bd7f15d474f1d7ae7753e3b14e3ba5f5c986 100644 (file)
@@ -2056,13 +2056,14 @@ static void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread
                        for (i = 0; i < conference->canvas->total_layers; i++) {
                                mcu_layer_t *xlayer = &conference->canvas->layers[i];
                                        
-                               if (xlayer->is_avatar && xlayer->member_id != conference->video_floor_holder) {
+                               if (xlayer->is_avatar && xlayer->member_id != conference->video_floor_holder && !switch_test_flag(imember, MFLAG_MOD)) {
                                        avatar_layers++;
                                }
                        }
 
-                       if (!layer && (conference->canvas->layers_used < conference->canvas->total_layers || 
-                                                  (avatar_layers && !imember->avatar_png_img)) && 
+                       if (!layer && 
+                               (conference->canvas->layers_used < conference->canvas->total_layers || 
+                                (avatar_layers && !imember->avatar_png_img) || switch_test_flag(imember, MFLAG_MOD)) &&
                                (imember->avatar_png_img || imember->video_flow != SWITCH_MEDIA_FLOW_SENDONLY)) {
                                /* find an empty layer */
                                for (i = 0; i < conference->canvas->total_layers; i++) {