[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