Closed quanli168 closed 3 months ago
Thanks for the report. Will look soon.
The problem is that SimulcastConsumer::SendRtpPacket()
method is dropping the packet and calling this->rtpSeqManager.Drop
even if the packet doesn't below to the simulcast stream being sent to the consumer.
CC @ggarber
PR done here: https://github.com/versatica/mediasoup/pull/1431
Once merged, will release. Thanks a lot!
Bug Report
We recently upgraded mediasoup from version 3.12.13 to 3.14.7 and noticed that video freezing has become more frequent since the upgrade. After enabling additional mediasoup logging, we believe this issue is due to a regression introduced in this pull request.
The problem occurs under the following conditions:
SSRC-A
andSSRC-B
).SSRC-B
.SSRC-A
has a packet that contains only padding. Let's assume this packet's sequence number isSEQ-1
. This packet is dropped and stored in thertpSeqManager
https://github.com/versatica/mediasoup/blob/06f66e62874ede5f4bb4a166ba2629280b9edada/worker/src/RTC/SimpleConsumer.cpp#L320SSRC-B
then sends an RTP packet with the same sequence number. Since this sequence number is inrtpSeqManager's dropped
list, it is assigned a sequence number of 0. https://github.com/versatica/mediasoup/blob/06f66e62874ede5f4bb4a166ba2629280b9edada/worker/src/RTC/SimpleConsumer.cpp#L394Attached are logs showing that RTP packets with sequence numbers 42015-42134 were dropped due to this scenario. exportedLogRecords.CSV
Your environment
Issue description