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

Add support for switching codecs #1528

Closed
avelad opened this issue Aug 7, 2018 · 11 comments · Fixed by #5470
Closed

Add support for switching codecs #1528

avelad opened this issue Aug 7, 2018 · 11 comments · Fixed by #5470
Labels
priority: P2 Smaller impact or easy workaround status: archived Archived and locked; will not be updated type: enhancement New feature or request
Milestone

Comments

@avelad
Copy link
Member

avelad commented Aug 7, 2018

Switching codecs are to begin experimentation via origin trials in Chrome 70.

https://www.chromestatus.com/features/5719220952236032
https://bugs.chromium.org/p/chromium/issues/detail?id=605134

Is it possible add support for it in a future release?

Caniuse: https://caniuse.com/mdn-api_sourcebuffer_changetype

@theodab theodab added type: enhancement New feature or request and removed needs triage labels Aug 7, 2018
@shaka-bot shaka-bot added this to the Backlog milestone Aug 7, 2018
@theodab
Copy link
Contributor

theodab commented Aug 7, 2018

Yeah, we want to add this eventually. Hopefully by the time that Chrome 70 is out, if possible.

@avelad
Copy link
Member Author

avelad commented Aug 28, 2018

@avelad
Copy link
Member Author

avelad commented Aug 30, 2018

Added in Safari Technology Preview release 64: https://developer.apple.com/safari/technology-preview/release-notes/

@joeyparrish
Copy link
Member

This hasn't been updated in a while, so it's worth pointing out some changes to this plan.

As originally proposed, switching codecs was either implemented or not. Now, support depends on the decoding pipeline, and we can only query that with MediaCapabilities. Our MediaCapabilities integration is well underway.

@FireMasterK
Copy link

w3c/media-source#155 seamless codec switching should be possible too, since this is merged

@avelad
Copy link
Member Author

avelad commented May 25, 2022

I began to look at this functionality and I have doubts, you have to call SourceBuffer.changeType to change the MSE codec/container, but what would happen as EME, would you have to restart EME? @joeyparrish, you have much more control of this part, you can help me.
If the EME needs to be reset, I think we should first address: #1567

@joeyparrish
Copy link
Member

@avelad, sorry I didn't see your comment sooner.

I don't believe EME necessarily needs to be reset, but EME may add a layer of restriction to what transitions are possible with changeType. In context of decodingInfo() results that include EME, we would then ask MCap which transitions are supported among the supported codecs. That may be the entire set of supported containers/codecs, or it may be a subset. The logic for how to handle subsets has yet to be designed. And that logic needs to be designed and implemented even for clear content, because the API does not guarantee that you can switch between all supported codecs. (Though I expect that to be the case for evergreen desktop and mobile browsers.)

@avelad avelad modified the milestones: v4.2, v4.3 Aug 17, 2022
@dsparacio
Copy link
Contributor

This has become a big topic recently at paramount. We are ready to help implementing this based on the designs and approaches discussed. Supporting both sides of Chrome 70 is interesting. Has there been anymore discussion around this as of recent? Is there a bigger ticket around this topic?

@joeyparrish
Copy link
Member

No more recent discussion than what you see here, as far as I recall.

@avelad avelad modified the milestones: v4.3, v4.4 Nov 11, 2022
@avelad avelad modified the milestones: v4.4, v4.5 Aug 31, 2023
avelad added a commit that referenced this issue Oct 4, 2023
Closes: #1528
Closes: #1567
Closes: #4379
Closes: #5306

---------

Co-authored-by: Álvaro Velad Galván <[email protected]>
Robloche pushed a commit to Robloche/shaka-player that referenced this issue Nov 30, 2023
@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Dec 3, 2023
@shaka-project shaka-project locked as resolved and limited conversation to collaborators Dec 3, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
priority: P2 Smaller impact or easy workaround status: archived Archived and locked; will not be updated type: enhancement New feature or request
Projects
Status: Done
6 participants