Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 3bfb17abf725a8e30298903bee04565968697bdd
https://github.com/WebKit/WebKit/commit/3bfb17abf725a8e30298903bee04565968697bdd
Author: Kimmo Kinnunen <[email protected]>
Date: 2026-02-26 (Thu, 26 Feb 2026)
Changed paths:
M Source/WebCore/platform/cocoa/CoreVideoSoftLink.cpp
M Source/WebCore/platform/cocoa/CoreVideoSoftLink.h
M Source/WebCore/platform/graphics/cv/CVUtilities.h
M Source/WebCore/platform/graphics/cv/CVUtilities.mm
M Source/WebCore/platform/graphics/cv/ImageTransferSessionVT.h
M Source/WebCore/platform/graphics/cv/ImageTransferSessionVT.mm
M Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.cpp
M Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.h
M Source/WebCore/platform/graphics/cv/VideoFrameCV.mm
M
Source/WebKit/WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp
Log Message:
-----------
VideoFrameCV is not able to create NativeImage in WebContent process
https://bugs.webkit.org/show_bug.cgi?id=307664
rdar://170219081
Reviewed by Youenn Fablet.
VideoFrameCV::copyNativeImage() would use VTPixelBufferConformer
to change the video frame CVPixelBuffer to BGRA CVPixelBuffer.
VTPixelBufferConformer forces use of IOKit. This makes the
implementation less than useful, as copyNativeImage() cannot be used
in general, polymorphic code because it would need to special-case
fetching the converted data from GPUP in GPUP cases.
Prepare for removing the special-casing by implementing copyNativeImage()
via VTPixelTransferSession. This supports configuring the use of
IOKit.
The VTPixelTransferSession is also useful in the way that it is an API,
VTPixelBufferConformer is a SPI.
* Source/WebCore/platform/graphics/cv/CVUtilities.h:
* Source/WebCore/platform/graphics/cv/CVUtilities.mm:
(WebCore::createImageFrom32BGRAPixelBuffer):
* Source/WebCore/platform/graphics/cv/ImageTransferSessionVT.h:
* Source/WebCore/platform/graphics/cv/ImageTransferSessionVT.mm:
(WebCore::createTransferSession):
(WebCore::ImageTransferSessionVT::ImageTransferSessionVT):
(WebCore::ImageTransferSessionVT::convertPixelBuffer):
* Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.cpp:
(WebCore::PixelBufferConformerCV::createImageFromPixelBuffer):
(WebCore::logStackTrace): Deleted.
(): Deleted.
(WebCore::CVPixelBufferGetBytePointerCallback): Deleted.
(WebCore::CVPixelBufferReleaseBytePointerCallback): Deleted.
(WebCore::CVPixelBufferReleaseInfoCallback): Deleted.
(WebCore::PixelBufferConformerCV::imageFrom32BGRAPixelBuffer): Deleted.
* Source/WebCore/platform/graphics/cv/PixelBufferConformerCV.h:
* Source/WebCore/platform/graphics/cv/VideoFrameCV.mm:
(WebCore::VideoFrame::copyNativeImage const):
*
Source/WebKit/WebProcess/GPU/webrtc/RemoteVideoFrameObjectHeapProxyProcessor.cpp:
(WebKit::RemoteVideoFrameObjectHeapProxyProcessor::getNativeImage):
Canonical link: https://commits.webkit.org/308288@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications