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 state setters to MediaSourceAttachment #3801

Merged
merged 5 commits into from
Sep 11, 2024

Conversation

at-ninja
Copy link
Contributor

@at-ninja at-ninja commented Jul 9, 2024

In preparation for cross-thread MediaSource objects, a small amount of state and associated setters are being added to the MediaSourceAttachment interface. This will allow for a push model, instead of a pull model, for state such as recent media timestamps, and the error status of the HTMLMediaElement.

Usage of these setters is gated through the
"MediaElement.EnableUsingMediaSourceAttachmentMethods" H5VCC flag. This flag needs to be coordinated between a HTMLMediaElement, the attached MediaSource, and all SourceBuffers used. As such, the value of the flag when the HTMLMediaElement was created is used to coordinate the state of the rest of the related objects. This prevents a flag mismatch, such as if the H5VCC value is updated after the HTMLMediaElement has been created but before the MediaSource is created.

This is based off of the following Chromium changes:

b/338425449

In preparation for cross-thread MediaSource objects, a small amount of
state and associated setters are being added to the
MediaSourceAttachment interface. This will allow for a push model,
instead of a pull model, for state such as recent media timestamps, and
the error status of the HTMLMediaElement.

Usage of these setters is gated through the
`"MediaElement.EnableUsingMediaSourceAttachmentMethods"` H5VCC flag.
This flag needs to be coordinated between a `HTMLMediaElement`, the
attached `MediaSource`, and all `SourceBuffers` used. As such, the value
of the flag when the `HTMLMediaElement` was created is used to coordinate
the state of the rest of the related objects. This prevents a flag
mismatch, such as if the H5VCC value is updated after the `HTMLMediaElement`
has been created but before the `MediaSource` is created.

This is based off of the following Chromium changes:

*  https://chromium-review.googlesource.com/c/chromium/src/+/2391934
*  https://chromium-review.googlesource.com/c/chromium/src/+/2401808

b/338425449
@at-ninja at-ninja requested a review from borongc July 29, 2024 21:19
@at-ninja at-ninja merged commit e462633 into youtube:main Sep 11, 2024
230 of 231 checks passed
@at-ninja at-ninja added the cp-25.lts.1+ Cherry Pick to the 25.lts.1+ branch label Sep 11, 2024
cobalt-github-releaser-bot pushed a commit that referenced this pull request Sep 11, 2024
In preparation for cross-thread MediaSource objects, a small amount of
state and associated setters are being added to the
MediaSourceAttachment interface. This will allow for a push model,
instead of a pull model, for state such as recent media timestamps, and
the error status of the HTMLMediaElement.

Usage of these setters is gated through the
`"MediaElement.EnableUsingMediaSourceAttachmentMethods"` H5VCC flag.
This flag needs to be coordinated between a `HTMLMediaElement`, the
attached `MediaSource`, and all `SourceBuffers` used. As such, the value
of the flag when the `HTMLMediaElement` was created is used to
coordinate the state of the rest of the related objects. This prevents a
flag mismatch, such as if the H5VCC value is updated after the
`HTMLMediaElement` has been created but before the `MediaSource` is
created.

This is based off of the following Chromium changes:

*  https://chromium-review.googlesource.com/c/chromium/src/+/2391934
*  https://chromium-review.googlesource.com/c/chromium/src/+/2401808

b/338425449

(cherry picked from commit e462633)
@at-ninja at-ninja deleted the media-source-attachment-callbacks branch October 16, 2024 16:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cp-25.lts.1+ Cherry Pick to the 25.lts.1+ branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants