Skip to content
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

Chrome111 handler #248

Merged
merged 5 commits into from
Feb 16, 2023
Merged

Chrome111 handler #248

merged 5 commits into from
Feb 16, 2023

Conversation

ibc
Copy link
Member

@ibc ibc commented Feb 15, 2023

The new Chrome111 handler uses scalabilityMode when in Chrome/Chromium/Edge >= M111 (which supports encpding.scalabilityMode), meaning that finally we can decide desired number of spatial and temporal layers.

Some references:

Issues

NOTE: These issues are not necessarily intended for this PR.

ISSUE 1: If the user creates a VP8 producer with 3 encodings but do not include scalabilityMode into them, then Chrome will select 'L3T3' but we will signal "1 spatial and 1 temporal layer" to mediasoup, so consumers will just receive the temporal layer 0 of each simulcast stream.

ISSUE 2: We must allow creation of a SimulcastConsumer in mediasoup side (instead of SingleConsumer) when the producer RtpParameters have a single encoding with scalabilityMode other than 'L1T1'.

ISSUE 3: User may pass different scalabilityMode for each encoding in simulcast (it works). Problem is that in mediasoup land we assume that number of temporal layers is the same for all the simulcast streams. In fact AFAIR we read it from the first encoding.

ISSUE 4: There are no temporal layers when using H264 simulcast, but it doesn't even work using Chrome74 handler in Chrome or Canary old or latest versions. ¯_(ツ)_/¯

ISSUE 5: Screen sharing with VP9 (with or without SVC) does not work in Canary M111. No idea. It wouldn't be the first time something similar happens in Canary last version.

- No longer assume L1T2 because then, if the browser enables 3 temporal layers (Chrome 74 in Linux) mediasoup will drop the temporal layer 2 (full fps) and that's terrible.
Copy link
Member

@jmillan jmillan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

… transceiver

- Also ensure we use same number of temporal layers in every stream
@ibc ibc merged commit 470c90d into v3 Feb 16, 2023
@ibc ibc deleted the chrome111-handler branch February 16, 2023 10:53
@ibc
Copy link
Member Author

ibc commented Feb 16, 2023

Released in mediasoup-client 3.6.80

@Rush
Copy link

Rush commented Mar 16, 2023

ISSUE 5: Screen sharing with VP9 (with our without SVC) does not work in Canary M111. No idea. It wouldn't be the first time something similar happens in Canary last version.

Did anybody figure out a fix? It seems it does work if I do not include any scalabilityMode but how to make it work with scalabilityMode?

@ibc
Copy link
Member Author

ibc commented Mar 16, 2023

Did anybody figure out a fix? It seems it does work if I do not include any scalabilityMode but how to make it work with scalabilityMode?

Please report the issue in libwebrtc project if you wish. Let's not use this PR as a forum.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

Successfully merging this pull request may close these issues.

3 participants