[webkit-changes] [WebKit/WebKit] f9e9fc: [Cocoa] Expose colorSpace in HW encoders VideoDeco...

youennf noreply at github.com
Wed Jun 7 01:37:24 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f9e9fc8f8b1b89d88194a1fc76dd13031749b87f
      https://github.com/WebKit/WebKit/commit/f9e9fc8f8b1b89d88194a1fc76dd13031749b87f
  Author: Youenn Fablet <youennf at gmail.com>
  Date:   2023-06-07 (Wed, 07 Jun 2023)

  Changed paths:
    M LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any.worker_h264_annexb-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any.worker_h264_avc-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_h264_annexb-expected.txt
    M LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_h264_avc-expected.txt
    M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/base/RTCVideoEncoder.h
    M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/platform/VideoEncoder.h
    A Source/WebCore/platform/VideoEncoderActiveConfiguration.h
    M Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm
    M Source/WebKit/WebProcess/GPU/media/RemoteVideoCodecFactory.cpp
    M Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp
    M Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.h
    M Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in

  Log Message:
  -----------
  [Cocoa] Expose colorSpace in HW encoders VideoDecoderConfig
https://bugs.webkit.org/show_bug.cgi?id=257742
rdar://problem/110310512

Reviewed by Eric Carlson.

We were setting colorSpace for libvpx encoders but not for remote encoders.
Add support for this in LibWebRTCCodecsProxy.
We make changes to RTCVideoEncoderH264 to trigger the description callback in the annexB case too so that we can send the color space.
In the future, RTCVideoEncoderH264 and others might send themselves their color space.

Update WebProcess side to create the VideoEncoderActiveConfiguration with colorSpace in LibWebRTCCodecs.
We separate VideoEncoderActiveConfiguration in its own file to reduce header and it might be useful in
the future to directly send VideoEncoderActiveConfiguration from GPUProcess to WebProcess.

* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any.worker_h264_annexb-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any.worker_h264_avc-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_h264_annexb-expected.txt:
* LayoutTests/imported/w3c/web-platform-tests/webcodecs/full-cycle-test.https.any_h264_avc-expected.txt:
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/base/RTCVideoEncoder.h:
* Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoEncoderH264.mm:
(-[RTCVideoEncoderH264 initWithCodecInfo:]):
(-[RTCVideoEncoderH264 setUseAnnexB:]):
(-[RTCVideoEncoderH264 frameWasEncoded:flags:sampleBuffer:codecSpecificInfo:width:height:renderTimeMs:timestamp:rotation:isKeyFrameRequired:]):
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/platform/VideoEncoder.h:
* Source/WebCore/platform/VideoEncoderActiveConfiguration.h: Added.
* Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm:
(WebKit::LibWebRTCCodecsProxy::createEncoder):
* Source/WebKit/WebProcess/GPU/media/RemoteVideoCodecFactory.cpp:
(WebKit::RemoteVideoEncoder::RemoteVideoEncoder):
(WebKit::RemoteVideoEncoderCallbacks::notifyEncoderDescription):
* Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp:
(WebKit::LibWebRTCCodecs::setEncodingConfiguration):
(WebKit::LibWebRTCCodecs::setEncodingDescription): Deleted.
* Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.h:
* Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.messages.in:

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




More information about the webkit-changes mailing list