-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TransportCC FeedBack implement is different from libwebrtc #1059
Comments
Wow, I can't see such behaviour defined in the spec, but maybe lightly this paragraph: Note: In the case the base sequence number is decreased, creating a
window overlapping the previous feedback messages, the status for any
packets previously reported as received must be marked as "Packet not
received" and thus no delta included for that symbol. We currently ignore those packets with lower wide seq num than the last seen: https://github.com/versatica/mediasoup/blob/v3/worker/src/RTC/RTCP/FeedbackRtpTransport.cpp#L304. Implementing this would definitely require a sustancial rewrite of this RTCP packet implementation. Can you @penguinol check which should be the correct behaviour in detail? |
In webrtc they use |
But there is also another issuse in webrtc, for example, if we received two feedbacks:
|
I found that in the case of a weak network, the transport-cc feedback causes the sender to send rtx packets. The seq of these rtx is newer than the latest seq or nackInfo.retries==0, so it is discarded |
#912 resolve your problem |
@penguinol If not start form last seq num in previous feedback, 1. How to set the packet recv_delta of the reported received packet(103(R)) in previous feedback? 2. The reported received packet(103(R)) 's send info already removed from send history, How to calculate the send delta and receive delta? This maybe affect the delay base bwe module. |
webrtc generate transport feedback also have the start seq number limit. @penguinol |
@Romantic-LiXuefeng |
Currently in mediasoup, a new transport-cc feedback will always start form last seq num in previous feedback, and this will result in a higher packet loss rate than actual when receving packet out of order.
For example:
We sent first:
100(R), 101(R), 102(NR), 103(R), 104(NR)
If we received 102 before sending next feedback, we should send:
102(R), 103(R), 104(NR), 105(R) 106(R), 107(R)
But currently we just send:
105(R) 106(R), 107(R)...
See follow:
https://webrtc.googlesource.com/src/+/refs/heads/main/modules/remote_bitrate_estimator/remote_estimator_proxy.cc#73
https://webrtc.googlesource.com/src/+/refs/heads/main/modules/remote_bitrate_estimator/remote_estimator_proxy.cc#113
The text was updated successfully, but these errors were encountered: