From eb78d2ae7ba12076a561b0f6f9a8a64223b0c9fb Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 28 Feb 2015 16:02:52 -0600 Subject: [PATCH] FS-7499: ignore replay errs when nack is enabled --- src/mod/applications/mod_conference/mod_conference.c | 1 + src/switch_rtp.c | 8 ++++++++ 2 files changed, 9 insertions(+) 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) {