[webkit-changes] [WebKit/WebKit] adb77f: [MSE] Remove need for SourceBufferPrivate to query...
Jean-Yves Avenard
noreply at github.com
Mon Dec 4 15:13:39 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: adb77f8a601c3110242d8262cf2da0407fff971c
https://github.com/WebKit/WebKit/commit/adb77f8a601c3110242d8262cf2da0407fff971c
Author: Jean-Yves Avenard <jya at apple.com>
Date: 2023-12-04 (Mon, 04 Dec 2023)
Changed paths:
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/WebCore/platform/graphics/SourceBufferPrivate.cpp
M Source/WebCore/platform/graphics/SourceBufferPrivate.h
M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm
M Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm
M Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp
M Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h
M Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp
M Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp
M Source/WebCore/platform/mock/mediasource/MockMediaSourcePrivate.cpp
M Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.cpp
M Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.h
Log Message:
-----------
[MSE] Remove need for SourceBufferPrivate to query MediaSource duration
https://bugs.webkit.org/show_bug.cgi?id=265778
rdar://119114938
Reviewed by Youenn Fablet.
We notify each SourceBufferPrivate that the MediaSource duration has changed
and use this cache value instead.
Covered by existing tests, no change in observable behaviour.
* Source/WebCore/Modules/mediasource/MediaSource.cpp:
(WebCore::MediaSource::MediaSource):
(WebCore::MediaSource::hasFutureTime):
(WebCore::MediaSource::setDurationInternal):
* Source/WebCore/Modules/mediasource/MediaSource.h:
* Source/WebCore/platform/graphics/MediaSourcePrivate.cpp:
(WebCore::MediaSourcePrivate::hasFutureTime const):
We don't need to pass the duration nor the buffered range as the MediaSourcePrivate owns this information anyway.
(WebCore::MediaSourcePrivate::duration const):
(WebCore::MediaSourcePrivate::durationChanged):
* Source/WebCore/platform/graphics/MediaSourcePrivate.h:
* Source/WebCore/platform/graphics/MediaSourcePrivateClient.h:
* Source/WebCore/platform/graphics/SourceBufferPrivate.cpp:
(WebCore::SourceBufferPrivate::mediaSourceDuration const):
Rename duration() to mediaSourceDuration() to remove ambiguity as to which duration this is related to.
(WebCore::SourceBufferPrivate::append):
(WebCore::SourceBufferPrivate::duration const): Deleted.
* Source/WebCore/platform/graphics/SourceBufferPrivate.h:
(WebCore::SourceBufferPrivate::setMediaSourceDuration):
* Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentMediaTimeMayProgress const):
* Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
(WebCore::MediaSourcePrivateAVFObjC::durationChanged):
* Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp:
(WebCore::MediaPlayerPrivateGStreamerMSE::load):
(WebCore::MediaPlayerPrivateGStreamerMSE::doSeek):
(WebCore::MediaPlayerPrivateGStreamerMSE::buffered const):
(WebCore::MediaPlayerPrivateGStreamerMSE::sourceSetup):
(WebCore::MediaPlayerPrivateGStreamerMSE::isTimeBuffered const):
(WebCore::MediaPlayerPrivateGStreamerMSE::durationChanged):
* Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.h: remove need to keep reference to MediaSourcePrivateClient,
it was an API violation for the MediaPlayerPrivate to talk to the MediaSourcePrivateClient, this interface is reserved for the MediaSourcePrivate to talk to the MediaSource.
The MediaPlayerPrivateGStreamerMSE already contains a strong reference to the MediaSourcePrivate so we query it directly instead.
(The MediaSourcePrivateClient would have queried its private anyway)
(WebCore::MediaPlayerPrivateGStreamerMSE::mediaSourcePrivateClient): Deleted.
* Source/WebCore/platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
(WebCore::MockMediaPlayerMediaSource::currentMediaTimeMayProgress const):
* Source/WebCore/platform/mock/mediasource/MockMediaSourcePrivate.cpp:
(WebCore::MockMediaSourcePrivate::durationChanged):
* Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.cpp:
(WebKit::RemoteMediaSourceProxy::durationChanged):
(WebKit::RemoteMediaSourceProxy::duration const): Deleted.
* Source/WebKit/GPUProcess/media/RemoteMediaSourceProxy.h:
Canonical link: https://commits.webkit.org/271514@main
More information about the webkit-changes
mailing list