-
Notifications
You must be signed in to change notification settings - Fork 136
Fix: microsoft edge some codecs are not supported by MSE in worker #1664
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
Conversation
|
Automated performance checks have been performed on commit Tests results✅ Tests have passed. Performance tests 1st run outputNo significative change in performance for tests:
If you want to skip performance checks for latter commits, add the |
|
✅ Automated performance checks have passed on commit DetailsPerformance tests 1st run outputNo significative change in performance for tests:
|
|
There's an issue seen by the CI |
Yes my IDE didn't highlight it, I have fixed it |
|
✅ Automated performance checks have passed on commit DetailsPerformance tests 1st run outputNo significative change in performance for tests:
|
|
It's weird. The same test fails over and over (well at least twice in a row) only on linux, and linked to the |
Which one? I don't any test failing on the CI, it fails only on your local? |
|
It was a temporary issue it seems, it's OK now |
|
I just noticed the iconic PR number btw :p |
While exchanging in that PR with @Florent-Bouisset, we noticed that the choice of whether we rely on mse-in-worker was done by the Public API part of the code, which then directly told our WebWorker to use that feature without telling any other part of the code. However, that PR brought the need to have that information inside the `ContentInitializer` - so that it knows whether a given codec is supported (for cases, only seen on Edge for now, where codec support is different depending on if MSE is relied on inside a worker or on main thread). Even without this, I thought that our `ContentInitializer`, as a global controlling module, should probably architecturally be in the know of whether MSE API are called in-worker or in-main-thread. So I propose this modification, where the information on whether mse-in-worker should be used is both communicated to the `ContentInitializer`, but is also set per-content (we don't need that, but it's actually both simpler and more powerful that way so why not). This also opens the way for an API to control this, but I did not add one for now.
…-worker Built on #1664 (the PR, not the other thing). While exchanging in that PR with @Florent-Bouisset, we noticed that the choice of whether we rely on mse-in-worker was done by the Public API part of the code, which then directly told our WebWorker to use that feature without telling any other part of the code. However, that PR brought the need to have that information inside the `ContentInitializer` - so that it knows whether a given codec is supported (for cases, only seen on Edge for now, where codec support is different depending on if MSE is relied on inside a worker or on main thread). Even without this, I thought that our `ContentInitializer`, as a global controlling module, should probably architecturally be in the know of whether MSE API are called in-worker or in-main-thread. So I propose this modification, where the information on whether mse-in-worker should be used is both communicated to the `ContentInitializer`, but is also set per-content (we don't need that, but it's actually both simpler and more powerful that way so why not). This also opens the way for an API to control this, but I did not add one for now.
We were reported a bug on Microsoft Edge where the player tried to play a content with HEVC codec but the MSE API failed to
addSourceBufferin a WebWorker.The browser was supposed to handle HEVC because the API
MediaSource.isTypeSupportedreturnedtrue.But calling this same API from a WebWorker returned
false.It is not clear if it is a Microsoft Edge limitation or a browser bug.
The fix is to test the codec support in the context of the WebWorker (only if it has MSE in worker).