From 9a7a33fb553344d88991faf34ba4c8cc71c90c1c Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Mon, 2 Mar 2015 19:55:36 -0600 Subject: [PATCH] FS-7500: block in flag set for wait for video ready --- src/mod/applications/mod_av/mod_av.c | 1 - src/mod/applications/mod_conference/mod_conference.c | 2 ++ src/mod/applications/mod_fsv/mod_fsv.c | 3 --- src/mod/formats/mod_vlc/mod_vlc.c | 2 -- src/switch_channel.c | 3 +++ src/switch_ivr_play_say.c | 2 -- 6 files changed, 5 insertions(+), 8 deletions(-) diff --git a/src/mod/applications/mod_av/mod_av.c b/src/mod/applications/mod_av/mod_av.c index 1e3cb24af0..ed6639a9f2 100644 --- a/src/mod/applications/mod_av/mod_av.c +++ b/src/mod/applications/mod_av/mod_av.c @@ -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); diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index 87b533b273..2acfee326a 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -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); } diff --git a/src/mod/applications/mod_fsv/mod_fsv.c b/src/mod/applications/mod_fsv/mod_fsv.c index 4ad54bb28d..9a1e794b65 100644 --- a/src/mod/applications/mod_fsv/mod_fsv.c +++ b/src/mod/applications/mod_fsv/mod_fsv.c @@ -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; diff --git a/src/mod/formats/mod_vlc/mod_vlc.c b/src/mod/formats/mod_vlc/mod_vlc.c index 26b7d4065f..3a8cdb6d74 100644 --- a/src/mod/formats/mod_vlc/mod_vlc.c +++ b/src/mod/formats/mod_vlc/mod_vlc.c @@ -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); diff --git a/src/switch_channel.c b/src/switch_channel.c index e15aa4cd00..fe7df086c2 100644 --- a/src/switch_channel.c +++ b/src/switch_channel.c @@ -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) diff --git a/src/switch_ivr_play_say.c b/src/switch_ivr_play_say.c index bd37589b68..5ceeab3a28 100644 --- a/src/switch_ivr_play_say.c +++ b/src/switch_ivr_play_say.c @@ -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,