[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