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