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

Reply via email to