[webkit-changes] [WebKit/WebKit] bee529: SourceBuffer.timestampOffset usage doesn't behave ...
Jean-Yves Avenard
noreply at github.com
Fri Feb 24 17:10:43 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: bee529142266d4fd8fcc2f587076fba341ad0684
https://github.com/WebKit/WebKit/commit/bee529142266d4fd8fcc2f587076fba341ad0684
Author: Jean-Yves Avenard <jya at apple.com>
Date: 2023-02-24 (Fri, 24 Feb 2023)
Changed paths:
M LayoutTests/media/media-source/content/test-opus-manifest.json
M LayoutTests/media/media-source/content/test-opus.webm
M LayoutTests/media/media-source/media-source-loader.js
A LayoutTests/media/media-source/media-source-webm-fragment-expected.txt
A LayoutTests/media/media-source/media-source-webm-fragment.html
M LayoutTests/media/media-source/media-webm-opus-partial-abort-expected.txt
M LayoutTests/media/media-source/media-webm-opus-partial-abort.html
M LayoutTests/media/media-source/media-webm-opus-partial-expected.txt
M LayoutTests/media/media-source/media-webm-opus-partial.html
M Source/ThirdParty/libwebrtc/Configurations/libwebm.xcconfig
M Source/ThirdParty/libwebrtc/Source/third_party/libwebm/webm_parser/src/webm_parser.cc
Log Message:
-----------
SourceBuffer.timestampOffset usage doesn't behave correctly with webm content.
https://bugs.webkit.org/show_bug.cgi?id=252782
rdar://105801920
Reviewed by Youenn Fablet.
The libwebmparser enforced checking the size of the WebM Segment parent.
When we append a cluster a second time, it would have made the total
size of the webm larger than the parent Segment could fit and the parser
aborted with an error. That error wasn't propagated to JS.
Considering a webm is only ever made of one Segment, and that the Matroska
specification allows for an element size to be unknown and other browsers
ignore that size, the simplest way to get around is to ignore the
Segment's size and assume it is always unknown.
This allows to add as many cluster as one wants, regardless of the init
segment added.
libwebm is a 3rd party library, however we have already modified it to
suits our requirement.
* LayoutTests/media/media-source/content/test-opus-manifest.json:
* LayoutTests/media/media-source/content/test-opus.webm: Remux the file with ffmpeg so it reproduces the same issue as the vorbis one.
* LayoutTests/media/media-source/media-source-webm-fragment-expected.txt: Added.
* LayoutTests/media/media-source/media-source-webm-fragment.html: Added.
* Source/ThirdParty/libwebrtc/Source/third_party/libwebm/webm_parser/src/webm_parser.cc:
Canonical link: https://commits.webkit.org/260822@main
More information about the webkit-changes
mailing list