]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7500: block in flag set for wait for video ready
authorAnthony Minessale <anthm@freeswitch.org>
Tue, 3 Mar 2015 01:55:36 +0000 (19:55 -0600)
committerMichael Jerris <mike@jerris.com>
Thu, 28 May 2015 17:47:07 +0000 (12:47 -0500)
src/mod/applications/mod_av/mod_av.c
src/mod/applications/mod_conference/mod_conference.c
src/mod/applications/mod_fsv/mod_fsv.c
src/mod/formats/mod_vlc/mod_vlc.c
src/switch_channel.c
src/switch_ivr_play_say.c

index 1e3cb24af019029ae4eaeb23a94eeb24bea2d3a0..ed6639a9f2d1b27d301d6c9d20238c011a255f48 100644 (file)
@@ -1122,7 +1122,6 @@ SWITCH_STANDARD_APP(record_av_function)
        }
 
        switch_channel_set_flag(channel, CF_VIDEO_DECODED_READ);
-       switch_channel_wait_for_flag(channel, CF_VIDEO_READY, SWITCH_TRUE, 10000, NULL);
        switch_core_media_get_vid_params(session, &vid_params);
        switch_channel_set_flag(channel, CF_VIDEO_ECHO);
        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "video size: %dx%d\n", vid_params.width, vid_params.height);
index 87b533b2734841066a0397406f2815c2c7104af9..2acfee326af406cf525c7230fa8b5646501e69e9 100644 (file)
@@ -3691,9 +3691,11 @@ static switch_status_t conference_add_member(conference_obj_t *conference, confe
 
                if (switch_test_flag(conference, CFLAG_TRANSCODE_VIDEO)) {
                        switch_channel_set_flag(channel, CF_VIDEO_DECODED_READ);
+                       switch_core_media_gen_key_frame(member->session);
                }
 
 
+
                if ((var = switch_channel_get_variable_dup(member->channel, "video_mute_png", SWITCH_FALSE, -1))) {
                        member->video_mute_png = switch_core_strdup(member->pool, var);
                }
index 4ad54bb28da14f4b83d92d87be9d369158ba0b5e..9a1e794b65e8077353ba314869fb14560fb2716a 100644 (file)
@@ -537,9 +537,6 @@ SWITCH_STANDARD_APP(play_yuv_function)
        }
 
 
-       switch_channel_wait_for_flag(channel, CF_VIDEO_READY, SWITCH_TRUE, 10000, NULL);
-       
-
        width = width ? width : 352;
        height = height ? height : 288;
        size = width * height * 3 / 2;
index 26b7d4065fba4b40567f95eaca501360b8e0954a..3a8cdb6d740ebe8d0cd20963f58b467e82be87cf 100644 (file)
@@ -1377,7 +1377,6 @@ SWITCH_STANDARD_APP(play_video_function)
        libvlc_video_set_callbacks(context->mp, vlc_video_lock_callback, vlc_video_unlock_callback, vlc_video_display_callback, context);
 
        switch_channel_set_flag(channel, CF_VIDEO_DECODED_READ);
-       switch_channel_wait_for_flag(channel, CF_VIDEO_READY, SWITCH_TRUE, 10000, NULL);
 
        // start play
        if (-1 == libvlc_media_player_play(context->mp)) {
@@ -1680,7 +1679,6 @@ SWITCH_STANDARD_APP(capture_video_function)
        switch_core_timer_init(&context->timer, "soft", 1, 1000, context->pool);
 
        switch_channel_set_flag(channel, CF_VIDEO_DECODED_READ);        
-       switch_channel_wait_for_flag(channel, CF_VIDEO_READY, SWITCH_TRUE, 10000, NULL);
        switch_core_media_get_vid_params(session, &vid_params);
        switch_channel_set_flag(channel, CF_VIDEO_ECHO);
        switch_core_session_raw_read(session);
index e15aa4cd0087eeb5fdb46f608b9aafeb914115fd..fe7df086c27f52f7f91fb3f080f6453ca761b297 100644 (file)
@@ -1830,6 +1830,9 @@ SWITCH_DECLARE(void) switch_channel_set_flag_value(switch_channel_t *channel, sw
                switch_channel_set_variable(channel, "recovered", "true");
        }
 
+       if (flag == CF_VIDEO_DECODED_READ) {
+               switch_channel_wait_for_flag(channel, CF_VIDEO_READY, SWITCH_TRUE, 10000, NULL);
+       }
 }
 
 SWITCH_DECLARE(void) switch_channel_set_flag_recursive(switch_channel_t *channel, switch_channel_flag_t flag)
index bd37589b6815b29cf6db66778bc230b1aa942030..5ceeab3a289de1fd02a5d92b447b5decb0ea7d9a 100644 (file)
@@ -526,7 +526,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_record_file(switch_core_session_t *se
        if (switch_channel_test_flag(channel, CF_VIDEO)) {
                file_flags |= SWITCH_FILE_FLAG_VIDEO;
                switch_channel_set_flag_recursive(channel, CF_VIDEO_DECODED_READ);
-               switch_channel_wait_for_flag(channel, CF_VIDEO_READY, SWITCH_TRUE, 10000, NULL);
        }
 
        if (switch_core_file_open(fh, file, fh->channels, read_impl.actual_samples_per_second, file_flags, NULL) != SWITCH_STATUS_SUCCESS) {
@@ -1264,7 +1263,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_play_file(switch_core_session_t *sess
                if (switch_channel_test_flag(channel, CF_VIDEO)) {
                        flags |= SWITCH_FILE_FLAG_VIDEO;
                        switch_channel_set_flag_recursive(channel, CF_VIDEO_DECODED_READ);
-                       switch_channel_wait_for_flag(channel, CF_VIDEO_READY, SWITCH_TRUE, 10000, NULL);
                }
 
                if (switch_core_file_open(fh,