goto done;
}
- switch_channel_set_flag(channel, CF_VIDEO_DECODED_READ);
+ switch_channel_set_flag_recursive(channel, CF_VIDEO_DECODED_READ);
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);
end:
+ switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
+
if (fc) {
if (has_video) close_stream(fc, &video_st);
if (has_audio) close_stream(fc, &audio_st);
switch_core_session_receive_message(session, &msg);
if (conference_utils_test_flag(conference, CFLAG_TRANSCODE_VIDEO)) {
- switch_channel_set_flag(channel, CF_VIDEO_DECODED_READ);
+ switch_channel_set_flag_recursive(channel, CF_VIDEO_DECODED_READ);
switch_core_media_gen_key_frame(session);
}
} while (member.loop_loop);
}
+ switch_core_session_video_reset(session);
+ switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
+
switch_core_session_set_video_read_callback(session, NULL, NULL);
switch_channel_set_private(channel, "_conference_autocall_list_", NULL);
switch_core_session_set_video_read_callback(session, NULL, NULL);
+ switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
+ switch_channel_clear_flag_recursive(channel, CF_VIDEO_ECHO);
+
uninit_context(&context);
switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);
switch (type) {
case SWITCH_ABC_TYPE_INIT:
{
- switch_channel_set_flag_recursive(channel, CF_VIDEO_DECODED_READ);
}
break;
case SWITCH_ABC_TYPE_CLOSE:
{
switch_thread_rwlock_unlock(MODULE_INTERFACE->rwlock);
- switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
uninit_context(context);
}
break;
switch_channel_answer(channel);
switch_core_session_request_video_refresh(session);
- switch_channel_set_flag(channel, CF_VIDEO_DECODED_READ);
+ switch_channel_set_flag_recursive(channel, CF_VIDEO_DECODED_READ);
switch_core_media_start_video_function(session, decode_video_thread, &max_pictures);
switch_core_media_end_video_function(session);
switch_core_session_video_reset(session);
+ switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
+
+
}
libvlc_video_set_format_callbacks(context->mp, video_format_setup_callback, video_format_clean_callback);
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_set_flag_recursive(channel, CF_VIDEO_DECODED_READ);
top:
}
switch_core_session_video_reset(session);
+ switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
if (vlc_handle) libvlc_release(vlc_handle);
}
}
arg_recursion_check_start(args);
-
- if (switch_true(switch_channel_get_variable(channel, "echo_decode_video"))) {
- switch_channel_set_flag(channel, CF_VIDEO_DECODED_READ);
+
+ if (switch_channel_var_true(channel, "echo_decode_video")) {
+ switch_channel_set_flag_recursive(channel, CF_VIDEO_DECODED_READ);
}
- if (switch_true(switch_channel_get_variable(channel, "echo_decode_audio"))) {
+ if (switch_channel_var_true(channel, "echo_decode_audio")) {
switch_core_session_raw_read(session);
}
}
}
+ if (switch_channel_var_true(channel, "echo_decode_video")) {
+ switch_channel_clear_flag_recursive(channel, CF_VIDEO_DECODED_READ);
+ }
+
switch_core_session_video_reset(session);
switch_core_session_reset(session, SWITCH_TRUE, SWITCH_TRUE);