Repository navigation
Always use 2-byte PictureID in VP8Payloader - #377
Conversation
|
(and yup, libWebRTC is in violation of RFC 7741) |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #377 +/- ##
=======================================
Coverage 87.48% 87.48%
=======================================
Files 28 28
Lines 3172 3165 -7
=======================================
- Hits 2775 2769 -6
+ Misses 397 396 -1
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
With EnablePictureID, PictureIDs below 128 were sent in the 1-byte (7-bit) form and larger ones in the 2-byte (15-bit) form. Both are valid per RFC 7741, but the changing descriptor size means an SFU that rewrites PictureIDs, e.g. when switching simulcast layers, may have to grow or shrink the packet instead of overwriting two bytes in place. libwebrtc changed to always sending the 2-byte form in commit https://webrtc.googlesource.com/src/+/eb94436b386a
2a35ea0 to
d564428
Compare
JoTurk
left a comment
There was a problem hiding this comment.
I think it's expected for SFUs to handle this correctly, Since the spec mentions it explicitly? example livekit https://github.com/livekit/livekit/blob/master/pkg/sfu/codecmunger/vp8.go#L192
The receiver MUST NOT assume that the number of bits in PictureID stays the same through the session
I think it's generally bad to adjust our code to bad / lazy implementations that violates specs, but as you said "(and yup, libWebRTC is in violation of RFC 7741)", and it's small change that doesn't break anything so LGTM :)
thank you.
|
well, this simply avoids the problem, pragmatic @ggarber style ;-) |
Was updated in pion/rtp#377
Was updated in pion/rtp#377
Was updated in pion/rtp#377
With EnablePictureID, PictureIDs below 128 were sent in the 1-byte (7-bit) form and larger ones in the 2-byte (15-bit) form. Both are valid per RFC 7741, but the changing descriptor size means an SFU that rewrites PictureIDs, e.g. when switching simulcast layers, may have to grow or shrink the packet instead of overwriting two bytes in place.
libwebrtc changed to always sending the 2-byte form in
https://webrtc.googlesource.com/src/+/eb94436b386afb7165d91724893b6085365ca1ad