[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