]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-7499: ignore replay errs when nack is enabled
authorAnthony Minessale <anthm@freeswitch.org>
Sat, 28 Feb 2015 22:02:52 +0000 (16:02 -0600)
committerMichael Jerris <mike@jerris.com>
Thu, 28 May 2015 17:47:07 +0000 (12:47 -0500)
src/mod/applications/mod_conference/mod_conference.c
src/switch_rtp.c

index 37ff2bd68476b5f7088bc3a36a4c5c51e43d7f00..9735f609fb387622ed04fede83dbecfc00ba5e78 100644 (file)
@@ -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;
                }
 
index 35fb04e21a6671f5ee7dc923c23d0e6651a2fa48..90e1c3c348c3d4cceaaeb62abf964b1e14c0370e 100644 (file)
@@ -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) {