-
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
New Codec selection logic #2296
Conversation
…ct the codecs. Allow asymmetric codecs to be configured on the endpoints. This means that Firefox and Safari which have bugs with VP9 encode will now encode VP8 but decode VP9 coming in from Chromium endpoints.
Jenkins test this please. |
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.
Did a round!
On participant join/leave, check if the new intersection of codecs are already configured to be the top n codecs.
09a1c5f
to
86a8853
Compare
Failure seems to be a bridge issue where the bridge stops sending media to p2. |
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.
LGTM with a question. Can you pl test mobile before landing?
…-lines. Also, ignore remote codecs published in presence for p2p connections.
Fix an issue where p2p between mobile and desktop was broken.
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.
One minor thing (RN would like to prefer H.264 for P2P) otherwise LGTM, very excited for this to land!
Munge the initial offer sent out by RN clients since RN doesn't support RTCRtpTransceiver#setCodecPreferences.
LGTM, awesome work! Can you pl give it a go on mobile to make sure everything is a-ok? |
* fix(codec-selection) Use a configurable preferred codecs list to select the codecs. Allow asymmetric codecs to be configured on the endpoints. This means that Firefox and Safari which have bugs with VP9 encode will now encode VP8 but decode VP9 coming in from Chromium endpoints. * fix(codec-selection) Add unit tests for the codec selection logic. * feat(codec-selection): Introduce mobileCodecPreferenceOrder setting in config.js. * fix(codec-selection) Avoid unnecessary renegotiations. On participant join/leave, check if the new intersection of codecs are already configured to be the top n codecs. * Address review comments * fix: Strip the codecs that are not in the codec list from the video m-lines. Also, ignore remote codecs published in presence for p2p connections. * fix: Define default codec order for mobile and desktop. Fix an issue where p2p between mobile and desktop was broken. * fix: Add default codecs for both p2p and jvb on mobile devices. Munge the initial offer sent out by RN clients since RN doesn't support RTCRtpTransceiver#setCodecPreferences.
Use a configurable preferred codecs list to select the codecs.
Allow asymmetric codecs to be configured on the endpoints. This means that Firefox and Safari which have bugs with VP9 encode will now encode VP8 but decode VP9 coming in from Chromium endpoints.