Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: fa9c6d7fd22bb76f2a4b349e899025e72dfdfb3a https://github.com/WebKit/WebKit/commit/fa9c6d7fd22bb76f2a4b349e899025e72dfdfb3a Author: Youenn Fablet <you...@apple.com> Date: 2024-03-18 (Mon, 18 Mar 2024)
Changed paths: M Source/WebCore/platform/VideoDecoder.h M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm M Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h M Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.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.mm M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h M Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm M Source/WebCore/platform/graphics/cocoa/WebCoreDecompressionSession.h M Source/WebCore/platform/graphics/cocoa/WebCoreDecompressionSession.mm M Source/WebCore/platform/libwebrtc/LibWebRTCVPXVideoDecoder.cpp Log Message: ----------- VP8 WebCoreDecompressionSession should attribute its IOSurfaces to the media player resource owner https://bugs.webkit.org/show_bug.cgi?id=271144 rdar://123795173 Reviewed by Jean-Yves Avenard. When WebCoreDecompressionSession uses a VideoDecoder to do its decoding, it uses an IOSurface pixel buffer pool. We then need to attribute these buffers to the corresponding resource owner. To do so, we are setting a resourceOwner in WebCoreDecompressionSession from VideoMediaSampleRenderer, which gets it from MediaPlayerPrivateWebM. The WebCoreDecompressionSession is creating a VideoDecoder that is given the resourceOwner so that, everytime we have a pixel buffer coming from the buffer pool, we then do the attribution. We also do this for MediaPlayerPrivateMediaSourceAVFObjC's session. This means piping the resource owner to MediaSourcePrivate -> SourceBufferPrivate. * Source/WebCore/platform/VideoDecoder.h: * Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::ensureDecompressionSession): * Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h: * Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm: (WebCore::MediaSourcePrivateAVFObjC::addSourceBuffer): * Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h: * Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: (WebCore::SourceBufferPrivateAVFObjC::setVideoRenderer): * Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm: (WebCore::MediaPlayerPrivateWebM::ensureLayer): (WebCore::MediaPlayerPrivateWebM::ensureDecompressionSession): * Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.h: (WebCore::VideoMediaSampleRenderer::setResourceOwner): * Source/WebCore/platform/graphics/cocoa/VideoMediaSampleRenderer.mm: (WebCore::VideoMediaSampleRenderer::initializeDecompressionSession): * Source/WebCore/platform/graphics/cocoa/WebCoreDecompressionSession.h: * Source/WebCore/platform/graphics/cocoa/WebCoreDecompressionSession.mm: (WebCore::WebCoreDecompressionSession::initializeVideoDecoder): * Source/WebCore/platform/libwebrtc/LibWebRTCVPXVideoDecoder.cpp: (WebCore::LibWebRTCVPXInternalVideoDecoder::LibWebRTCVPXInternalVideoDecoder): (WebCore::LibWebRTCVPXInternalVideoDecoder::Decoded): Canonical link: https://commits.webkit.org/276270@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