From: Anthony Minessale Date: Sat, 28 Feb 2015 22:02:52 +0000 (-0600) Subject: FS-7499: ignore replay errs when nack is enabled X-Git-Tag: v1.6.2~614^2~327 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eb78d2ae7ba12076a561b0f6f9a8a64223b0c9fb;p=thirdparty%2Ffreeswitch.git FS-7499: ignore replay errs when nack is enabled --- diff --git a/src/mod/applications/mod_conference/mod_conference.c b/src/mod/applications/mod_conference/mod_conference.c index 37ff2bd684..9735f609fb 100644 --- a/src/mod/applications/mod_conference/mod_conference.c +++ b/src/mod/applications/mod_conference/mod_conference.c @@ -1820,6 +1820,7 @@ static void *SWITCH_THREAD_FUNC conference_video_muxing_thread_run(switch_thread if (conference->canvas->send_keyframe) { need_keyframe = SWITCH_TRUE; + need_refresh = SWITCH_TRUE; conference->canvas->send_keyframe = 0; } diff --git a/src/switch_rtp.c b/src/switch_rtp.c index 35fb04e21a..90e1c3c348 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -5087,6 +5087,14 @@ static switch_status_t read_rtp_packet(switch_rtp_t *rtp_session, switch_size_t if (!(*flags & SFF_PLC)) { stat = srtp_unprotect(rtp_session->recv_ctx[rtp_session->srtp_idx_rtp], &rtp_session->recv_msg.header, &sbytes); + if (rtp_session->flags[SWITCH_RTP_FLAG_NACK] && stat == err_status_replay_fail) { + /* false alarm nack */ + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(rtp_session->session), SWITCH_LOG_DEBUG, "REPLAY ERR, FALSE NACK"); + stat = 0; + sbytes = 0; + *bytes = 0; + goto more; + } } if (stat && rtp_session->recv_msg.header.pt != rtp_session->recv_te && rtp_session->recv_msg.header.pt != rtp_session->cng_pt) {