-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
Match header extensions to all media sections in offer #2444
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me. If one other person can quickly eyeball this (@Sean-Der / @davidzhao ?) then I am happy to merge it. @ellenfkh - can you kindly squash the commits and make sure the new commit message passes the lint rules (begins with a capital letter, no more than 50 characters). Thanks!
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #2444 +/- ##
==========================================
- Coverage 79.11% 79.08% -0.04%
==========================================
Files 89 89
Lines 8249 8270 +21
==========================================
+ Hits 6526 6540 +14
- Misses 1256 1260 +4
- Partials 467 470 +3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for the PR. It looks good!
Sorry for the delays getting to this one.
580bb04
to
c138a57
Compare
Firefox would send updated header extension in renegotiation, e.g. publish a track without simucalst then renegotiate second track with simucalst, the two media secontions will have different rtp header extensions in offer. Need to match remote header extentions for each media sections to avoid second track publish failed.
c138a57
to
40a80e3
Compare
Description
We noticed that once pion has negotiated headers and codecs for a given Kind, when a subsequent offer SDP adds a media section for that same Kind with different header extensions, the generated answer uses the original headers for all media sections.
This doesn't happen in Chrome, which never seems to send mixed headers like this. Firefox does, though.
We ran into this when sending an offer in which the first video media section had simulcast disabled, and thus didn't set this attribute
but the second video media section had simulcast enabled, so included that header.
The resulting answer didn't include that header in either media section, but the second media section did correctly have these attributes
Resulting in this error
This patch fixes our manual test case, but I suspect there are more places in the code where this assumption is being made. I'm also not sure whether Plan B vs Unified expects different behavior in this case.
Reference issue
Fixes #...