[webkit-changes] [WebKit/WebKit] 9f3ddc: REGRESSION (271514 at main): MSE Live playback fails ...

Jean-Yves Avenard noreply at github.com
Thu Dec 14 02:35:37 PST 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9f3ddc119f3ec5ccf79bf50cc76d3e81f03b1cba
      https://github.com/WebKit/WebKit/commit/9f3ddc119f3ec5ccf79bf50cc76d3e81f03b1cba
  Author: Jean-Yves Avenard <jya at apple.com>
  Date:   2023-12-14 (Thu, 14 Dec 2023)

  Changed paths:
    A LayoutTests/media/media-source/media-source-append-buffer-durationchange-expected.txt
    A LayoutTests/media/media-source/media-source-append-buffer-durationchange.html
    M Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm
    M Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp
    M Source/WebCore/platform/mock/mediasource/MockMediaSourcePrivate.cpp

  Log Message:
  -----------
  REGRESSION (271514 at main): MSE Live playback fails on umediaserver.net
https://bugs.webkit.org/show_bug.cgi?id=266385
rdar://119615258

Reviewed by Jer Noble.

Changes in 271514 at main exposed an underlying existing issue. The MediaSource's duration was initialised to NaN
but the GPU process one was initialised to 0. Following 271514 at main the inital value would be identical.

If the media source duration was set prior any sourcebuffer being created, we wouldn't set the SourceBuffer
initial duration, and the step `If the media segment contains data beyond the current duration, then run the duration change algorithm with new duration set to the maximum of the current duration and the [[group end timestamp]].`
would always be skipped.

We set the initial duration to the sourceBuffer when created.

Add tests.

* LayoutTests/media/media-source/media-source-append-buffer-durationchange-expected.txt: Added.
* LayoutTests/media/media-source/media-source-append-buffer-durationchange.html: Added.
* Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer):
* Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp:
(WebCore::MediaSourcePrivateGStreamer::addSourceBuffer):
* Source/WebCore/platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::addSourceBuffer):

Canonical link: https://commits.webkit.org/272025@main




More information about the webkit-changes mailing list