From 75e46cedb8d25a5373082f91c647df8002f8b5f9 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 25 Jul 2015 12:52:41 -0500 Subject: [PATCH] FS-7893 --resolve --- .../applications/mod_conference/conference_video.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/mod/applications/mod_conference/conference_video.c b/src/mod/applications/mod_conference/conference_video.c index 563729dbc3..11d0f0e335 100644 --- a/src/mod/applications/mod_conference/conference_video.c +++ b/src/mod/applications/mod_conference/conference_video.c @@ -1360,14 +1360,17 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_write_thread_run(switch_thread_ { conference_member_t *member = (conference_member_t *) obj; void *pop; - int loops = 0; + int loops = 0, done = 0; while(conference_utils_member_test_flag(member, MFLAG_RUNNING) || switch_queue_size(member->mux_out_queue)) { switch_frame_t *frame; - if (conference_utils_member_test_flag(member, MFLAG_RUNNING)) { + if (conference_utils_member_test_flag(member, MFLAG_RUNNING) && !done) { if (switch_queue_pop(member->mux_out_queue, &pop) == SWITCH_STATUS_SUCCESS) { - if (!pop) continue; + if (!pop) { + done = 1; + continue; + } if (loops == 0 || loops == 50) { switch_core_media_gen_key_frame(member->session); @@ -1391,6 +1394,8 @@ void *SWITCH_THREAD_FUNC conference_video_muxing_write_thread_run(switch_thread_ frame = (switch_frame_t *) pop; switch_frame_buffer_free(member->fb, &frame); } + } else { + if (done) break; } } }