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 MSE in workers data #18189

Merged
merged 2 commits into from Nov 11, 2022
Merged

Conversation

chrisdavidmills
Copy link
Collaborator

@chrisdavidmills chrisdavidmills commented Nov 10, 2022

Summary

This PR adds the required new BCD for Chrome's additions to Media Source Extensions, which allows them to be used from inside dedicated workers.

See my research document for more details: https://docs.google.com/document/d/1_zwIr7c9_O3_PEoAnaS5M7yExx9VtjMSUJ6U5yiEias/edit#

Notes

  • To make it so that the linter will pass the data, I have changed the support for the following members to "supported by default in Chrome 70". I don't actually know what the version is, and will ask some of the Chrome folk if they know.
    • SourceBuffer.audioTracks
    • SourceBuffer,textTracks
    • SourceBuffer.videoTracks
  • I didn't add "supported in workers" data to the following members, as they were false in Chrome, and the data pattern suggested that they were experimental features in other browsers that didn't make it?
    • SourceBuffer.appendBufferAsync - experimental Fx feature?
    • SourceBuffer.appendStream - experimental feature supported in pre-Chromium Edge?
    • SourceBuffer.removeAsync - experimental Fx feature?
  • I tried to make the notes for these subfeatures say "Available in dedicated workers", AIUI they are available in dedicated, but not shared or service workers, but the linter won't let me. How should I deal with this detail instead?

@github-actions github-actions bot added the data:api 🐇 Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API label Nov 10, 2022
Copy link
Collaborator

@queengooborg queengooborg left a comment

Choose a reason for hiding this comment

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

LGTM, thank you!

@queengooborg queengooborg merged commit 7694629 into mdn:main Nov 11, 2022
@chrisdavidmills chrisdavidmills deleted the add-mse-in-workers-data branch November 11, 2022 11:11
@chrisdavidmills
Copy link
Collaborator Author

@queengooborg yay! ❤️

@wolenetz
Copy link

These are not supported in Chrome yet (their implementation is incomplete and experimental, behind the blink::RuntimeEnabledFeature "AudioVideoTracks" which is marked experimental still):

SourceBuffer.audioTracks
SourceBuffer.videoTracks
HTMLMediaElement.audioTracks
HTMLMediaElement.videoTracks

And Chrome does not have support at all for SourceBuffer.textTracks - the partial experimental implementation of MSE and progressive src= inband text track sourcing was removed due to it never stabilizing and over time had diverged to become less stable. It might be added back in future, but currently there is no IDL binding, even experimental, for SourceBuffer.textTracks.

@wolenetz
Copy link

Also, for at least the "MediaSource" (https://developer.mozilla.org/en-US/docs/Web/API/MediaSource) page, there are two "Available in workers" rows of BCD table data at the very bottom, with none following the ctor at the top - was one of those two rows meant for the ctor, or was it extra - it's confusing to me.

@wolenetz
Copy link

Is it true that MSE-in-Workers is available in Opera 93? I looked at that changelog and it didn't indicate anything to me on skimming it that related to MSE-in-Workers. I ask because the BCD table for at least MediaSource has Opera version 93 as the version supporting MSE-in-Workers.

@wolenetz
Copy link

Please revert the portion of this BCD data that is specific to VideoPlaybackQuality: that portion of the API is specific to the HTMLMediaElement, which itself is only available on the main thread context. There is no worker HTMLMediaElement in Chrome (or on any browser); only a main thread/context HTMLMediaElement. It's unfortunate that originally MSE specification was used to get VideoPlaybackQuality specified (I think it was due to spec workgroups being more amenable in W3C for this change at the time long ago). More recently, the VideoPlaybackQuality specification (Media Playback Quality, as referenced on MDN) is precise about this API only being exposed on Window context (not worker).

@queengooborg
Copy link
Collaborator

Hi @wolenetz -- rather than comment on an already-merged pull request, would you mind opening a new issue and linking to this PR instead? This will allow us to better track what potentially needs to be done to correct the data, as threads on closed PRs will most certainly get lost in everyone's inboxes and forgotten. :)

@wolenetz
Copy link

I filed #18220

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
data:api 🐇 Compat data for Web APIs. https://developer.mozilla.org/docs/Web/API
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants