-
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
Allow multiple negotiated A/V codecs respectively #2632
base: master
Are you sure you want to change the base?
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## master #2632 +/- ##
==========================================
- Coverage 76.47% 76.44% -0.04%
==========================================
Files 87 87
Lines 9867 9895 +28
==========================================
+ Hits 7546 7564 +18
- Misses 1854 1861 +7
- 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. |
FWIW I am hitting this same issue when trying to receive multiple differently encoded tracks. |
@Sean-Der Any thoughts on this? We may actually need to make similar changes on our end so it would be great to get some feedback on what could be the best way forward to send multi codec tracks. |
Hey @streamer45 Is this what you are trying to implement? You want to have one |
Hey @Sean-Der, to be honest I may have lost a bit of context on this one as I can't seem to reproduce the original issue (failing to negotiate the track) so maybe it was a simple misimplementation on our part. Our use case is rather simple: we have one peer connection (sender) pushing two tracks with different encodings and then want to selectively forward one of the two to our receivers, depending on what they support. |
Description
Pion currently restricts the negotiated audio codec and negotiated video codec to the first exact / partial matches it finds in a remote description.
This causes issues in the following scenario:
RegisterCodec()
.AddTransceiver()
for multiple video codecs / multiple audio codecs.SetRemoteDescription()
=> This updates the list of negotiated codecs.CreateAnswer()
.SetLocalDescription
=> There is a conflict here between what transceivers have been configured and the negotiated codecs filtered down from the remote description.Reference issue
Fixes #...