Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 9c0cce267dc25b4478cf7be838d15d241f4953e7
      
https://github.com/WebKit/WebKit/commit/9c0cce267dc25b4478cf7be838d15d241f4953e7
  Author: Jean-Yves Avenard <[email protected]>
  Date:   2025-09-15 (Mon, 15 Sep 2025)

  Changed paths:
    M Source/WebCore/html/HTMLMediaElement.cpp
    M Source/WebCore/platform/cocoa/EffectiveRateChangedListener.h
    M Source/WebCore/platform/cocoa/EffectiveRateChangedListener.mm
    M Source/WebCore/platform/graphics/AudioVideoRenderer.h
    M Source/WebCore/platform/graphics/MediaPlayer.cpp
    M Source/WebCore/platform/graphics/MediaPlayer.h
    M Source/WebCore/platform/graphics/MediaPlayerPrivate.h
    M Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.h
    M Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.mm
    M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h
    M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm
    M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h
    M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm
    M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h
    M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm
    M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp
    M Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp
    M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp
    M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h

  Log Message:
  -----------
  Expand AudioVideoRenderer class so that it fulfils all requirement for the 
MSE player
https://bugs.webkit.org/show_bug.cgi?id=298438
rdar://159930540

Reviewed by Youenn Fablet.

We add several methods to the AudioVideoRenderer class which are functionalities
needed by the MSE player.
We adopt those new methods in the WebM player that had been missing those 
functionalities since
it was first implemented.

* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::updateActiveTextTrackCues):
* Source/WebCore/platform/cocoa/EffectiveRateChangedListener.h:
* Source/WebCore/platform/cocoa/EffectiveRateChangedListener.mm:
(WebCore::EffectiveRateChangedListener::EffectiveRateChangedListener):
(WebCore::EffectiveRateChangedListener::effectiveRateChanged):
* Source/WebCore/platform/graphics/AudioVideoRenderer.h:
(WebCore::AudioInterface::setPreservesPitchAndCorrectionAlgorithm):
(WebCore::VideoInterface::expectMinimumUpcomingPresentationTime):
(WebCore::SynchronizerInterface::stall):
(WebCore::TracksRendererManager::notifyTrackNeedsReenqueuing):
(WebCore::TracksRendererManager::notifyEffectiveRateChanged):
(WebCore::TracksRendererManager::notifyTimeReachedAndStall):
(WebCore::TracksRendererManager::cancelTimeReachedAction):
(WebCore::TracksRendererManager::performTaskAtTime):
(WebCore::AudioInterface::setPreservesPitch): Deleted.
(WebCore::VideoInterface::setMinimumUpcomingPresentationTime): Deleted.
(WebCore::TracksRendererManager::setDuration): Deleted.
* Source/WebCore/platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::performTaskAtTime):
* Source/WebCore/platform/graphics/MediaPlayer.h:
* Source/WebCore/platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::performTaskAtTime):
* Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.h:
* Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.mm:
(WebCore::AudioVideoRendererAVFObjC::AudioVideoRendererAVFObjC):
(WebCore::AudioVideoRendererAVFObjC::~AudioVideoRendererAVFObjC):
(WebCore::AudioVideoRendererAVFObjC::addTrack):
(WebCore::AudioVideoRendererAVFObjC::removeTrack):
(WebCore::AudioVideoRendererAVFObjC::isReadyForMoreSamples):
(WebCore::AudioVideoRendererAVFObjC::notifyTrackNeedsReenqueuing):
(WebCore::AudioVideoRendererAVFObjC::play):
(WebCore::AudioVideoRendererAVFObjC::pause):
(WebCore::AudioVideoRendererAVFObjC::setRate):
(WebCore::AudioVideoRendererAVFObjC::stall):
(WebCore::AudioVideoRendererAVFObjC::notifyTimeReachedAndStall):
(WebCore::AudioVideoRendererAVFObjC::cancelTimeReachedAction):
(WebCore::AudioVideoRendererAVFObjC::performTaskAtTime):
(WebCore::AudioVideoRendererAVFObjC::prepareToSeek):
(WebCore::AudioVideoRendererAVFObjC::notifyEffectiveRateChanged):
(WebCore::AudioVideoRendererAVFObjC::setPreservesPitchAndCorrectionAlgorithm):
(WebCore::AudioVideoRendererAVFObjC::setAudioTimePitchAlgorithm const):
(WebCore::AudioVideoRendererAVFObjC::expectMinimumUpcomingPresentationTime):
(WebCore::AudioVideoRendererAVFObjC::addAudioRenderer):
(WebCore::AudioVideoRendererAVFObjC::removeAudioRenderer):
(WebCore::AudioVideoRendererAVFObjC::maybeCompleteSeek):
(WebCore::AudioVideoRendererAVFObjC::updateAllRenderersHaveAvailableSamples):
(WebCore::AudioVideoRendererAVFObjC::setHasAvailableVideoFrame):
(WebCore::AudioVideoRendererAVFObjC::destroyVideoTrack):
(WebCore::AudioVideoRendererAVFObjC::audioRendererWasAutomaticallyFlushed):
(WebCore::AudioVideoRendererAVFObjC::setSynchronizerRate):
(WebCore::AudioVideoRendererAVFObjC::updateLastPixelBuffer):
(WebCore::AudioVideoRendererAVFObjC::maybePurgeLastPixelBuffer):
(WebCore::AudioVideoRendererAVFObjC::setNeedsPlaceholderImage):
(WebCore::AudioVideoRendererAVFObjC::notifyRequiresFlushToResume):
(WebCore::AudioVideoRendererAVFObjC::setDuration): Deleted.
(WebCore::AudioVideoRendererAVFObjC::notifyDurationReached): Deleted.
(WebCore::AudioVideoRendererAVFObjC::setPreservesPitch): Deleted.
(WebCore::AudioVideoRendererAVFObjC::setMinimumUpcomingPresentationTime): 
Deleted.
* 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
* 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::performTaskAtTime):
* 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::performTaskAtTime):
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h:
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm:
(WebCore::MediaPlayerPrivateWebM::MediaPlayerPrivateWebM):
(WebCore::MediaPlayerPrivateWebM::play):
(WebCore::MediaPlayerPrivateWebM::pause):
(WebCore::MediaPlayerPrivateWebM::paused const):
(WebCore::MediaPlayerPrivateWebM::playAtHostTime):
(WebCore::MediaPlayerPrivateWebM::pauseAtHostTime):
(WebCore::MediaPlayerPrivateWebM::playInternal):
(WebCore::MediaPlayerPrivateWebM::performTaskAtTime):
(WebCore::MediaPlayerPrivateWebM::audioOutputDeviceChanged):
(WebCore::MediaPlayerPrivateWebM::setPageIsVisible):
(WebCore::MediaPlayerPrivateWebM::effectiveRateChanged):
(WebCore::MediaPlayerPrivateWebM::setDuration):
(WebCore::MediaPlayerPrivateWebM::setPreservesPitch):
(WebCore::MediaPlayerPrivateWebM::trackDidChangeEnabled):
(WebCore::MediaPlayerPrivateWebM::trackIdentifierFor const):
(WebCore::MediaPlayerPrivateWebM::trackIdentifierFor): Deleted.
* Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm:
(WebCore::VideoMediaSampleRenderer::setTimebase):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::performTaskAtTime):
* Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
* Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::performTaskAtTime):
* Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::performTaskAtTime):
* Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:

Canonical link: https://commits.webkit.org/299989@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to