]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-8589 #resolve [Using conference playback with full-screen=true is not working...
authorAnthony Minessale <anthm@freeswitch.org>
Mon, 30 Nov 2015 22:54:04 +0000 (16:54 -0600)
committerAnthony Minessale <anthm@freeswitch.org>
Mon, 30 Nov 2015 22:54:15 +0000 (16:54 -0600)
src/mod/applications/mod_conference/conference_video.c

index ad22ca74f69c01aa04195cd60f3f33a90b2ff06e..617330e0aeb720f4f674fc9ba666189b67d07393 100644 (file)
@@ -2058,9 +2058,8 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
                        canvas->send_keyframe = 1;
                }
 
-               if (!conference->playing_video_file) {
-                       switch_core_timer_next(&canvas->timer);
-               }
+               
+               switch_core_timer_next(&canvas->timer);
 
                now = switch_micro_time_now();
 
@@ -2211,11 +2210,6 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
                                continue;
                        }
 
-                       if (conference->playing_video_file) {
-                               switch_core_session_rwunlock(imember->session);
-                               continue;
-                       }
-
                        //VIDFLOOR
                        if (canvas->layout_floor_id > -1 && imember->id == conference->video_floor_holder &&
                                imember->video_layer_id != canvas->layout_floor_id) {
@@ -2226,6 +2220,13 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
                        layer = NULL;
 
 
+                       if (conference->playing_video_file) {
+                               switch_img_free(&img);
+                               switch_core_session_rwunlock(imember->session);
+                               continue;
+                       }
+
+
 
                        switch_mutex_lock(canvas->mutex);
 
@@ -2595,7 +2596,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
 
                        switch_mutex_unlock(conference->member_mutex);
                } else {
-
+                       
                        if (conference->async_fnode && (conference->async_fnode->canvas_id == canvas->canvas_id || conference->async_fnode->canvas_id == -1)) {
                                if (conference->async_fnode->layer_id > -1) {
                                        conference_video_patch_fnode(canvas, conference->async_fnode);
@@ -2686,20 +2687,20 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr
                                        if (canvas->play_file) {
                                                canvas->send_keyframe = 1;
                                                canvas->play_file = 0;
-
-                                               canvas->timer.interval = 1;
-                                               canvas->timer.samples = 90;
                                        }
 
-                                       write_img = file_img = write_frame.img;
+                                       switch_img_free(&file_img);
+                                       file_img = write_img = write_frame.img;
 
                                        switch_core_timer_sync(&canvas->timer);
                                        timestamp = canvas->timer.samplecount;
+                               } else if (file_img) {
+                                       write_img = file_img;
                                }
                        } else if (file_img) {
                                switch_img_free(&file_img);
                        }
-
+                       
                        write_frame.img = write_img;
 
                        wait_for_canvas(canvas);
@@ -2893,9 +2894,7 @@ void *SWITCH_THREAD_FUNC conference_video_super_muxing_thread_run(switch_thread_
                        canvas->send_keyframe = 1;
                }
 
-               if (!conference->playing_video_file) {
-                       switch_core_timer_next(&canvas->timer);
-               }
+               switch_core_timer_next(&canvas->timer);
 
                now = switch_micro_time_now();