Fix SeqManager - #1032
Fix SeqManager#1032
Conversation
Fixes #1025. In essence, sequence number can wrap up and we must properly clean and consider dropped values in order to calculate new outputs. * Proper dropped items cleanup: - Clean the values from previous cycle. This is, values older than this->maxValue. * Properly consider dropped values in order to calculate the output: - Consider lower values than input and also higher values from previous cycle.
|
I've considered
|
|
@jcague, I see that you added |
|
Please add proper entry in CHANGELOG (we always forget it). |
|
Let me merge and release, so I can make similar fixes in other links in CHANGELOG. |
|
Released in mediasoup node 3.11.16 |
|
@jmillan I think I didn't add Offset(), I just updated it, but maybe I'm wrong. I did not realize it was not used. Also, removing Delta() is ok, as the tests keep passing. Thanks! |
|
After applying this change, when running with limited networking I got a lot of warnings like: Packet loss rate increases up to 100% after that. |
Those logs make sense if received packets are exactly as the logs describe. The fact that those logs are printed doesn't mean that there is a bug somewhere.
Perhaps we should increase the size if the retransmission buffer (number of items that can be stored). It's currently hardcoded to 2500, see https://github.com/versatica/mediasoup/blob/v3/worker/src/RTC/RtpStreamSend.cpp#L61. In order to confirm this, the only way is by calling |
|
Anyway I'll push a change right now in v3 branch increasing |
Done. |
|
It is still happening: |
|
Please do the debug I said in my previous comment. And if a bug is found let's please have a new issue ticket for it. |
|
It happens what reported in the previous log:
|
|
Can we have a separate issue for this please? |
Fixes #1025.
In essence, sequence number can wrap up and we must properly clean and consider dropped values in order to calculate new outputs.
Proper dropped items cleanup:
Properly consider dropped values in order to calculate the output: