Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 74481ec4b07546952d73c80f973f5f2f08a30841
https://github.com/WebKit/WebKit/commit/74481ec4b07546952d73c80f973f5f2f08a30841
Author: Jer Noble <[email protected]>
Date: 2023-05-27 (Sat, 27 May 2023)
Changed paths:
M LayoutTests/platform/ios/TestExpectations
M LayoutTests/platform/mac/TestExpectations
M
Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp
M
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h
M
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp
M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp
M Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerState.h
M Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerState.serialization.in
Log Message:
-----------
REGRESSION(262863@main) [Cocoa] video.buffered ranges are always empty;
breaks Shaka Player
https://bugs.webkit.org/show_bug.cgi?id=257400
rdar://108202807
Reviewed by Eric Carlson and Jean-Yves Avenard.
In 262863@main, a change was made to no longer create TimeRanges and
PlatformTimeRanges objects
in the course of returning bufferedRanges(). However, in so doing, development
code was left in
the patch which would always return empty ranges from
MediaPlayerPrivateAVFoundation::buffered().
Additionally, existing code that cleared buffered ranges from
RemoteMediaPlayerState was changed
in such a ways as subsequent updates would always get empty ranges. The test
which would have
caught this breakage has been disabled since 2013 (143932@main).
Re-enable the media/video-buffered.html test.
Don't re-create m_buffered every time a client calls
platformBufferedTimeRanges(). Instead, re-create
m_buffered only when loadedTimeRangesDidChange(). Send an optional<> buffered
range across the GPU
process boundary in RemoteMediaPlayerState, and only update
MediaplayerPrivateRemote's buffered
value when the state has a valid buffered range.
* LayoutTests/platform/ios/TestExpectations:
* LayoutTests/platform/mac/TestExpectations:
*
Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
(WebCore::MediaPlayerPrivateAVFoundation::buffered const):
*
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
*
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeLoaded const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::loadedTimeRangesDidChange):
* Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::sendCachedState):
* Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::updateCachedState):
* Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerState.h:
* Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerState.serialization.in:
Canonical link: https://commits.webkit.org/264629@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes