]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7679 #resolve #comment should work now
authorAnthony Minessale <anthm@freeswitch.org>
Thu, 25 Jun 2015 20:10:43 +0000 (15:10 -0500)
committerAnthony Minessale <anthm@freeswitch.org>
Thu, 25 Jun 2015 20:10:43 +0000 (15:10 -0500)
src/switch_core_media.c
src/switch_ivr_bridge.c

index e1d820a1c612f6ac98ec9adf31d10fdf999e0a5b..9f2550a646d1af5ff45b445d1a3659d4eed41973 100644 (file)
@@ -4915,11 +4915,9 @@ static void *SWITCH_THREAD_FUNC video_helper_thread(switch_thread_t *thread, voi
 
                if (!smh->video_write_fh && !smh->video_read_fh && switch_core_session_media_flow(session, SWITCH_MEDIA_TYPE_VIDEO) == SWITCH_MEDIA_FLOW_SENDONLY) {
                        do_sleep = 1;
-               } else {
-                       xloops = 0;
                }
-
-               if (!switch_channel_test_flag(channel, CF_VIDEO_DECODED_READ) && (xloops > 20 || switch_channel_test_flag(channel, CF_VIDEO_PASSIVE))) {
+               
+               if (!switch_channel_test_flag(channel, CF_VIDEO_DECODED_READ) && (++xloops > 20 || switch_channel_test_flag(channel, CF_VIDEO_PASSIVE))) {
                        switch_channel_set_flag(channel, CF_VIDEO_READY);
                }
        
@@ -5015,11 +5013,10 @@ static void *SWITCH_THREAD_FUNC video_helper_thread(switch_thread_t *thread, voi
                        send_blank = 1;
                }
 
-               if ((send_blank || switch_channel_test_flag(channel, CF_VIDEO_BLANK)) && 
-                       !session->video_read_callback && !switch_channel_test_flag(session->channel, CF_BRIDGED)) {
+               if ((send_blank || switch_channel_test_flag(channel, CF_VIDEO_BLANK)) && !session->video_read_callback) {
                        fr.img = blank_img;
                        switch_yield(10000);
-                       switch_core_session_write_video_frame(session, &fr, SWITCH_IO_FLAG_NONE, SWITCH_IO_FLAG_FORCE);
+                       switch_core_session_write_video_frame(session, &fr, SWITCH_IO_FLAG_FORCE, 0);
                } else if (read_frame && (switch_channel_test_flag(channel, CF_VIDEO_ECHO))) {
                        switch_core_session_write_video_frame(session, read_frame, SWITCH_IO_FLAG_NONE, 0);
                }
index 988a93081fc14e240f78c283d688de9c3d977a56..5d9bf0be43d0e62e5522308e5e6ddd803b0ccb92 100644 (file)
@@ -477,11 +477,14 @@ static void *audio_bridge_thread(switch_thread_t *thread, void *obj)
                        vid_launch++;
                        vh.session_a = session_a;
                        vh.session_b = session_b;
+                       switch_channel_clear_flag(chan_a, CF_VIDEO_BLANK);
+                       switch_channel_clear_flag(chan_b, CF_VIDEO_BLANK);
                        launch_video(&vh);
                } else {
                        if (switch_channel_test_flag(chan_a, CF_VIDEO)) {
                                switch_channel_set_flag(chan_a, CF_VIDEO_BLANK);
                        }
+
                        if (switch_channel_test_flag(chan_b, CF_VIDEO)) {
                                switch_channel_set_flag(chan_b, CF_VIDEO_BLANK);
                        }