Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: bf1d50b780f12c0892b309371ce94423045002a8
https://github.com/WebKit/WebKit/commit/bf1d50b780f12c0892b309371ce94423045002a8
Author: Jean-Yves Avenard <[email protected]>
Date: 2023-12-08 (Fri, 08 Dec 2023)
Changed paths:
M Source/WebCore/Modules/mediasource/ManagedMediaSource.cpp
M Source/WebCore/Modules/mediasource/MediaSource.cpp
M Source/WebCore/Modules/mediasource/MediaSource.h
M Source/WebCore/platform/graphics/MediaSourcePrivate.cpp
M Source/WebCore/platform/graphics/MediaSourcePrivate.h
M Source/WebCore/platform/graphics/MediaSourcePrivateClient.h
M Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.cpp
M Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.h
M Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp
M Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.h
Log Message:
-----------
[MSE] MediaSourcePrivate::buffered() shouldn't call its client
https://bugs.webkit.org/show_bug.cgi?id=266064
rdar://119369641
Reviewed by Youenn Fablet.
Have MediaSourcePrivate be the owner of the buffered range and have the
MediaSource
query its MediaSourcePrivate instead.
By keeping it in the MediaSourcePrivate we can remove a synchronous call which
will
no longer be possible once the MediaSourcePrivate runs in a different queue
than the MediaSource.
Similarly, also make MediaSource not hold its duration, but have the
MediaSourcePrivate do so.
* Source/WebCore/Modules/mediasource/ManagedMediaSource.cpp:
(WebCore::ManagedMediaSource::isBuffered const):
* Source/WebCore/Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::duration const):
(WebCore::MediaSource::buffered const):
(WebCore::MediaSource::seekable):
(WebCore::MediaSource::hasBufferedTime):
(WebCore::MediaSource::monitorSourceBuffers):
(WebCore::MediaSource::setDurationInternal):
(WebCore::MediaSource::detachFromElement):
(WebCore::MediaSource::updateBufferedIfNeeded):
* Source/WebCore/Modules/mediasource/MediaSource.h:
* Source/WebCore/platform/graphics/MediaSourcePrivate.cpp:
(WebCore::MediaSourcePrivate::duration const):
(WebCore::MediaSourcePrivate::bufferedChanged):
(WebCore::MediaSourcePrivate::buffered const):
* Source/WebCore/platform/graphics/MediaSourcePrivate.h:
* Source/WebCore/platform/graphics/MediaSourcePrivateClient.h:
* Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.cpp:
(WebKit::RemoteMediaSourceProxy::bufferedChanged):
(WebKit::RemoteMediaSourceProxy::buffered const): Deleted. Implemented in the
base class.
* Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.h:
* Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.cpp:
(WebKit::MediaSourcePrivateRemote::durationChanged): ensure that the base class
durationChanged is called.
(WebKit::MediaSourcePrivateRemote::bufferedChanged):
* Source/WebKit/WebProcess/GPU/media/MediaSourcePrivateRemote.h:
Canonical link: https://commits.webkit.org/271794@main
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes