Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 7890b554d51a09386c131c48731f097268cf04cc
https://github.com/WebKit/WebKit/commit/7890b554d51a09386c131c48731f097268cf04cc
Author: Jean-Yves Avenard <[email protected]>
Date: 2025-11-21 (Fri, 21 Nov 2025)
Changed paths:
M Source/WebCore/Modules/mediasource/MediaSource.cpp
M Source/WebCore/platform/graphics/PlatformTimeRanges.cpp
M Source/WebCore/platform/graphics/PlatformTimeRanges.h
M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h
M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm
Log Message:
-----------
MediaPlayerPrivateWebM should wait for data being buffered/demuxed before
setting readyState to `HAVE_ENOUGH_DATA`
https://bugs.webkit.org/show_bug.cgi?id=302839
rdar://165106177
Reviewed by Eric Carlson.
The WebM player used to set its readyState to HaveEnoughData immediately
after having the first decoded frame.
Wait until we have 3s of buffered data like we do with MSE.
We will set the readyState to HaveCurrentData only when only a single frame
has been presented and the previous readyState was HaveMetadata.
* Source/WebCore/Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::isBuffered const): We move this method into
PlatformTimeRanges as `containWithEpsilon`
* Source/WebCore/platform/graphics/PlatformTimeRanges.cpp:
(WebCore::PlatformTimeRanges::containWithEpsilon const):
* Source/WebCore/platform/graphics/PlatformTimeRanges.h:
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h:
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm:
(WebCore::MediaPlayerPrivateWebM::completeSeek):
(WebCore::MediaPlayerPrivateWebM::setBufferedRanges):
(WebCore::MediaPlayerPrivateWebM::setHasAvailableVideoFrame):
(WebCore::MediaPlayerPrivateWebM::setDuration):
(WebCore::MediaPlayerPrivateWebM::setReadyState):
(WebCore::MediaPlayerPrivateWebM::didParseInitializationData):
(WebCore::MediaPlayerPrivateWebM::monitorReadyState):
Canonical link: https://commits.webkit.org/303424@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications