[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