[webkit-changes] [WebKit/WebKit] b45ae0: Add support for I420A VideoFrames
youennf
noreply at github.com
Tue Jun 13 04:35:20 PDT 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b45ae084ce9d0f82c5fd7a395c44ac2e81f051dc
https://github.com/WebKit/WebKit/commit/b45ae084ce9d0f82c5fd7a395c44ac2e81f051dc
Author: Youenn Fablet <youennf at gmail.com>
Date: 2023-06-13 (Tue, 13 Jun 2023)
Changed paths:
A LayoutTests/http/wpt/webcodecs/I420A-and-canvas-expected.txt
A LayoutTests/http/wpt/webcodecs/I420A-and-canvas.html
M LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-construction.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-construction.any.worker-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-copyTo.any-expected.txt
M LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-copyTo.any.worker-expected.txt
M LayoutTests/platform/glib/TestExpectations
M Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp
M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitUtilities.h
M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitUtilities.mm
M Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.cpp
M Source/WebCore/Modules/webcodecs/WebCodecsVideoFrameAlgorithms.cpp
M Source/WebCore/platform/VideoFrame.cpp
M Source/WebCore/platform/VideoFrame.h
M Source/WebCore/platform/cocoa/SharedVideoFrameInfo.h
M Source/WebCore/platform/cocoa/SharedVideoFrameInfo.mm
M Source/WebCore/platform/graphics/cv/VideoFrameCV.mm
M Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp
Log Message:
-----------
Add support for I420A VideoFrames
https://bugs.webkit.org/show_bug.cgi?id=257863
rdar://110484519
Reviewed by Eric Carlson.
We add support for creation of I420A video frames and add support for copyTo.
We update SharedVideoFrameInfo to be able to send these frames to GPUProcess.
We validate canvas drawing of these frames correctly handle alpha information.
* LayoutTests/http/wpt/webcodecs/I420A-and-canvas-expected.txt: Added.
* LayoutTests/http/wpt/webcodecs/I420A-and-canvas.html: Added.
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-construction.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-construction.any.worker-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-copyTo.any-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoFrame-copyTo.any.worker-expected.txt:
* Source/ThirdParty/libwebrtc/Configurations/libwebrtc.exp:
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitUtilities.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitUtilities.mm:
(webrtc::pixelBufferFromI420ABuffer):
* Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.cpp:
(WebCore::validateI420Sizes):
(WebCore::WebCodecsVideoFrame::create):
(WebCore::computeVideoPixelFormat):
* Source/WebCore/Modules/webcodecs/WebCodecsVideoFrameAlgorithms.cpp:
(WebCore::videoPixelFormatToPlaneCount):
(WebCore::videoPixelFormatToSubSampling):
* Source/WebCore/platform/VideoFrame.cpp:
(WebCore::VideoFrame::createI420A):
* Source/WebCore/platform/VideoFrame.h:
* Source/WebCore/platform/cocoa/SharedVideoFrameInfo.h:
(WebCore::SharedVideoFrameInfo::SharedVideoFrameInfo):
* Source/WebCore/platform/cocoa/SharedVideoFrameInfo.mm:
(WebCore::SharedVideoFrameInfo::fromCVPixelBuffer):
(WebCore::SharedVideoFrameInfo::isReadWriteSupported const):
(WebCore::SharedVideoFrameInfo::storageSize const):
(WebCore::SharedVideoFrameInfo::encode):
(WebCore::SharedVideoFrameInfo::decode):
(WebCore::SharedVideoFrameInfo::createPixelBufferFromMemory):
(WebCore::SharedVideoFrameInfo::writePixelBuffer):
* Source/WebCore/platform/graphics/cv/VideoFrameCV.mm:
(WebCore::VideoFrame::createI420A):
(WebCore::copyI420OrI420A):
(WebCore::VideoFrame::copyTo):
(WebCore::copyI420): Deleted.
* Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp:
(WebCore::VideoFrame::createI420A):
Canonical link: https://commits.webkit.org/265115@main
More information about the webkit-changes
mailing list