diff --git a/src/mod/applications/mod_conference/conference_video.c b/src/mod/applications/mod_conference/conference_video.c index e6e03ffa5e..c5ba30369f 100644 --- a/src/mod/applications/mod_conference/conference_video.c +++ b/src/mod/applications/mod_conference/conference_video.c @@ -2504,7 +2504,11 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr canvas->video_count = last_video_count = video_count; switch_mutex_unlock(conference->member_mutex); - switch_core_timer_next(&canvas->timer); + if (conference->playing_video_file) { + switch_core_timer_sync(&canvas->timer); + } else { + switch_core_timer_next(&canvas->timer); + } now = switch_micro_time_now(); @@ -3210,7 +3214,7 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread_t *thr timestamp = canvas->timer.samplecount; if (conference->playing_video_file) { - if (switch_core_file_read_video(&conference->fnode->fh, &write_frame, SVR_FLUSH) == SWITCH_STATUS_SUCCESS) { + if (switch_core_file_read_video(&conference->fnode->fh, &write_frame, SVR_BLOCK) == SWITCH_STATUS_SUCCESS) { switch_img_free(&file_img); if (canvas->play_file) {