Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 9677741da3ebf84ab0e8a84acec04e517813ff10 https://github.com/WebKit/WebKit/commit/9677741da3ebf84ab0e8a84acec04e517813ff10 Author: Jean-Yves Avenard <j...@apple.com> Date: 2025-08-21 (Thu, 21 Aug 2025)
Changed paths: M Source/WebCore/platform/graphics/WebMResourceClient.h M Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h M Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm M Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h M Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h 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: ----------- All errors handling should be done through VideoMediaSampleRenderer https://bugs.webkit.org/show_bug.cgi?id=297581 rdar://158665967 Reviewed by Jer Noble. Simplify handling of errors in MSE so that all go through the VideoMediaSampleRenderer. No change in observable behaviour, covered with existing tests. * Source/WebCore/platform/graphics/WebMResourceClient.h: Make inheritance use Abstract * Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: Remove unneeded renderer parametre; it isn't used * Source/WebCore/platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm: (WebCore::CDMSessionMediaSourceAVFObjC::videoRendererDidReceiveError): Update function prototype (WebCore::CDMSessionMediaSourceAVFObjC::audioRendererDidReceiveError): Update function prototype * Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createVideoMediaSampleRendererForRendererer): Remove handling of error, eit will now be managed by the SourceBufferPrivate (like it used to be) * Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: * Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::setCDMSession): (WebCore::SourceBufferPrivateAVFObjC::configureVideoRenderer): (WebCore::SourceBufferPrivateAVFObjC::invalidateVideoRenderer): (WebCore::SourceBufferPrivateAVFObjC::videoRendererDidReceiveError): Deleted. (WebCore::SourceBufferPrivateAVFObjC::outputObscuredDueToInsufficientExternalProtectionChanged): Deleted. (WebCore::SourceBufferPrivateAVFObjC::videoRendererRequiresFlushToResumeDecodingChanged): Deleted. (WebCore::SourceBufferPrivateAVFObjC::videoRendererReadyForDisplayChanged): Deleted. * Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h: * Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm: (WebCore::MediaPlayerPrivateWebM::setVideoRenderer): (WebCore::MediaPlayerPrivateWebM::videoRendererDidReceiveError): Deleted. * Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h: Pass NSError instead of OSStatus This allows for a simpler change. In the future we will want to simplify this further in order to allow cross-process communication. * Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm: (WebCore::m_listener): (WebCore::VideoMediaSampleRenderer::~VideoMediaSampleRenderer): (WebCore::VideoMediaSampleRenderer::changeRenderer): (WebCore::VideoMediaSampleRenderer::decodeNextSampleIfNeeded): (WebCore::VideoMediaSampleRenderer::notifyWhenDecodingErrorOccurred): (WebCore::VideoMediaSampleRenderer::notifyErrorHasOccurred): (WebCore::VideoMediaSampleRenderer::videoRendererDidReceiveError): Add listener, handle case where the error was related to the application being suspended and instead call videoRendererRequiresFlushToResumeDecodingChanged (WebCore::VideoMediaSampleRenderer::videoRendererRequiresFlushToResumeDecodingChanged): (WebCore::VideoMediaSampleRenderer::videoRendererReadyForDisplayChanged): (WebCore::VideoMediaSampleRenderer::outputObscuredDueToInsufficientExternalProtectionChanged): Proxy error to normal error handling by creating a custom NSError with the "obscured" boolean set as userInfo. Canonical link: https://commits.webkit.org/299036@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