[webkit-changes] [WebKit/WebKit] 4f5245: [WebCodecs] Expose decoded video frames colorSpace

youennf noreply at github.com
Thu Oct 27 09:02:47 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 4f5245c3949d20a65be88d92a1ea84e6364e7373
      https://github.com/WebKit/WebKit/commit/4f5245c3949d20a65be88d92a1ea84e6364e7373
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2022-10-27 (Thu, 27 Oct 2022)

  Changed paths:
    A LayoutTests/http/wpt/webcodecs/videoFrame-colorSpace-expected.txt
    A LayoutTests/http/wpt/webcodecs/videoFrame-colorSpace.html
    M Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp
    M Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp
    M Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoDecoder.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.cpp
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h
    M Source/WebCore/Modules/webcodecs/WebCodecsVideoFrameData.h
    M Source/WebCore/platform/LibWebRTCVPXVideoDecoder.cpp
    M Source/WebCore/platform/VideoFrame.cpp
    M Source/WebCore/platform/VideoFrame.h
    M Source/WebCore/platform/graphics/cv/VideoFrameCV.h
    M Source/WebCore/platform/graphics/cv/VideoFrameCV.mm
    M Source/WebCore/platform/mediastream/libwebrtc/VideoFrameLibWebRTC.cpp
    M Source/WebCore/platform/mediastream/libwebrtc/VideoFrameLibWebRTC.h
    M Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm
    M Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameProxy.cpp
    M Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameProxy.h

  Log Message:
  -----------
  [WebCodecs] Expose decoded video frames colorSpace
https://bugs.webkit.org/show_bug.cgi?id=247060
rdar://problem/101584578

Reviewed by Eric Carlson.

Add colorSpace information to VideoFrame and allow to pass it through IPC in VideoFrameCV and RemoteVideoFrameProxy.
Compute color space from CVPixelBuffer or from rtc VideoFrame.
For rtc vpx frames, use the default 601 profile if none is provided.

* LayoutTests/http/wpt/webcodecs/videoFrame-colorSpace-expected.txt: Added.
* LayoutTests/http/wpt/webcodecs/videoFrame-colorSpace.html: Added.
* Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp:
* Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp:
* Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp:
* Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.cpp:
(WebCore::WebCodecsVideoFrame::colorSpace const):
* Source/WebCore/platform/LibWebRTCVPXVideoDecoder.cpp:
(WebCore::LibWebRTCVPXInternalVideoDecoder::Decoded):
* Source/WebCore/platform/VideoFrame.cpp:
(WebCore::VideoFrame::VideoFrame):
* Source/WebCore/platform/VideoFrame.h:
(WebCore::VideoFrame::colorSpace const):
(WebCore::VideoFrame::VideoFrame):
* Source/WebCore/platform/graphics/cv/VideoFrameCV.h:
(WebCore::VideoFrameCV::encode const):
(WebCore::VideoFrameCV::decode):
* Source/WebCore/platform/graphics/cv/VideoFrameCV.mm:
(WebCore::computeVideoFrameColorSpace):
(WebCore::VideoFrameCV::VideoFrameCV):
* Source/WebCore/platform/mediastream/libwebrtc/VideoFrameLibWebRTC.cpp:
(WebCore::defaultVPXColorSpace):
(WebCore::VideoFrameLibWebRTC::create):
(WebCore::VideoFrameLibWebRTC::colorSpaceFromFrame):
(WebCore::VideoFrameLibWebRTC::VideoFrameLibWebRTC):
* Source/WebCore/platform/mediastream/libwebrtc/VideoFrameLibWebRTC.h:
* Source/WebCore/platform/mediastream/mac/RealtimeIncomingVideoSourceCocoa.mm:
(WebCore::RealtimeIncomingVideoSourceCocoa::toVideoFrame):
* Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameProxy.cpp:
(WebKit::RemoteVideoFrameProxy::RemoteVideoFrameProxy):
* Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameProxy.h:
(WebKit::RemoteVideoFrameProxy::Properties::encode const):
(WebKit::RemoteVideoFrameProxy::Properties::decode):

Canonical link: https://commits.webkit.org/256068@main




More information about the webkit-changes mailing list