From a20db61e18b071e25e5a4e4e54adcb12a11f389a Mon Sep 17 00:00:00 2001 From: philippegorley <philippe.gorley@savoirfairelinux.com> Date: Fri, 16 Aug 2019 16:06:35 -0400 Subject: [PATCH] video_rtp_session: skip packets on sender restart When using nvenc and the media sender gets restarted, the peer's srtp decryption breaks and only gets set up correctly again after a pause and play. This issue was traced back to the RTP sequence numbers. Skipping a few numbers before reinitializing the sender works. Change-Id: Ic93f1368fc7eb01b3c57341f31d3832c9f2f2c1f --- src/media/video/video_rtp_session.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/media/video/video_rtp_session.cpp b/src/media/video/video_rtp_session.cpp index f12bb12f80..c36d9135a1 100644 --- a/src/media/video/video_rtp_session.cpp +++ b/src/media/video/video_rtp_session.cpp @@ -116,7 +116,7 @@ void VideoRtpSession::startSender() // be sure to not send any packets before saving last RTP seq value socketPair_->stopSendOp(); if (sender_) - initSeqVal_ = sender_->getLastSeqValue() + 1; + initSeqVal_ = sender_->getLastSeqValue() + 10; // Skip a few sequences to make nvenc happy on a sender restart try { sender_.reset(); socketPair_->stopSendOp(false); -- GitLab