Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 2ee09856dcfda8b1b4237947f991ff7d8f77894b https://github.com/WebKit/WebKit/commit/2ee09856dcfda8b1b4237947f991ff7d8f77894b Author: Jean-Yves Avenard <j...@apple.com> Date: 2025-09-11 (Thu, 11 Sep 2025)
Changed paths: M Source/WebCore/platform/graphics/AudioVideoRenderer.h M Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.h M Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.mm M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm Log Message: ----------- Add supports for scenarios where WebCoreDecompression can't be used to AudioVideoRendererAVFObjC https://bugs.webkit.org/show_bug.cgi?id=298177 rdar://159572175 Reviewed by Jer Noble and Youenn Fablet. When the WebCoreDecompressionSession isn't in used in the VideoMediaSampleRenderer, operations such as switching from protected<->clear, docking the video or switching from an AVSampleBufferDisplayLayer to AVSampleBufferVideoRenderer requires to first flush the renderer and re-enqueue content. This change handles those scenarios. It is similar to what the MediaPlayerPrivateMediaSourceAVFObjC is already doing but we allow for simplifications as the AudioVideoRenderer only has to deal with a single VideoMediaSampleRenderer. Manually tested by disabling the decompressionsession in the WebM player. No change in observable behaviour. * Source/WebCore/platform/graphics/AudioVideoRenderer.h: (WebCore::TracksRendererManager::setPreferences): (WebCore::TracksRendererManager::setHasProtectedVideoContent): * Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.h: * Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.mm: (WebCore::AudioVideoRendererAVFObjC::AudioVideoRendererAVFObjC): (WebCore::AudioVideoRendererAVFObjC::~AudioVideoRendererAVFObjC): (WebCore::AudioVideoRendererAVFObjC::setPreferences): (WebCore::AudioVideoRendererAVFObjC::setHasProtectedVideoContent): (WebCore::AudioVideoRendererAVFObjC::notifyWhenHasAvailableVideoFrame): (WebCore::AudioVideoRendererAVFObjC::setVideoRenderer): (WebCore::AudioVideoRendererAVFObjC::canUseDecompressionSession const): (WebCore::AudioVideoRendererAVFObjC::isUsingDecompressionSession const): (WebCore::AudioVideoRendererAVFObjC::willUseDecompressionSessionIfNeeded const): (WebCore::AudioVideoRendererAVFObjC::stageVideoRenderer): (WebCore::AudioVideoRendererAVFObjC::flushVideo): (WebCore::AudioVideoRendererAVFObjC::notifyRequiresFlushToResume): * Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm: (WebCore::MediaPlayerPrivateWebM::MediaPlayerPrivateWebM): (WebCore::MediaPlayerPrivateWebM::play): (WebCore::MediaPlayerPrivateWebM::flushVideoIfNeeded): (WebCore::MediaPlayerPrivateWebM::setLayerRequiresFlush): * Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h: * Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm: (WebCore::VideoMediaSampleRenderer::~VideoMediaSampleRenderer): (WebCore::VideoMediaSampleRenderer::changeRenderer): (WebCore::VideoMediaSampleRenderer::flush): (WebCore::VideoMediaSampleRenderer::shutdown): Canonical link: https://commits.webkit.org/299875@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes