From 02d7baf79e6bff9564ecb8f4138c41672fb4691c Mon Sep 17 00:00:00 2001 From: Brian West Date: Fri, 16 Oct 2015 15:47:56 -0500 Subject: [PATCH] FS-8354: #resolve [revert back ported patch for rate change detection it introducted a regression] --- .../mod_conference/mod_conference.c | 21 +++++++++---------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index d0f10b97dd..cba36648b4 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -4267,7 +4267,7 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v switch_frame_t *read_frame = NULL; uint32_t hangover = 40, hangunder = 5, hangover_hits = 0, hangunder_hits = 0, diff_level = 400; switch_core_session_t *session = member->session; - uint32_t flush_len; + uint32_t flush_len, loops = 0; switch_frame_t tmp_frame = { 0 }; if (switch_core_session_read_lock(session) != SWITCH_STATUS_SUCCESS) { @@ -4531,16 +4531,20 @@ static void *SWITCH_THREAD_FUNC conference_loop_input(switch_thread_t *thread, v member->last_score = member->score; } + loops++; + if (switch_channel_test_flag(member->channel, CF_CONFERENCE_RESET_MEDIA)) { switch_channel_clear_flag(member->channel, CF_CONFERENCE_RESET_MEDIA); - member->loop_loop = 1; + if (loops > 500) { + member->loop_loop = 1; - if (setup_media(member, member->conference)) { - switch_mutex_unlock(member->read_mutex); - break; + if (setup_media(member, member->conference)) { + switch_mutex_unlock(member->read_mutex); + break; + } } - goto do_continue; + } /* skip frames that are not actual media or when we are muted or silent */ @@ -4873,11 +4877,6 @@ static void conference_loop_output(conference_member_t *member) switch_buffer_t *use_buffer = NULL; uint32_t mux_used = 0; - if (switch_channel_test_flag(member->channel, CF_CONFERENCE_RESET_MEDIA)) { - switch_cond_next(); - continue; - } - switch_mutex_lock(member->write_mutex);