Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a248b493c70a5fcc281db4bff4b463b53650816a https://github.com/WebKit/WebKit/commit/a248b493c70a5fcc281db4bff4b463b53650816a Author: Youenn Fablet <youe...@gmail.com> Date: 2022-10-12 (Wed, 12 Oct 2022)
Changed paths: M LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoDecoder-codec-specific.https.any.worker_h264_avc-expected.txt M LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoDecoder-codec-specific.https.any_h264_avc-expected.txt 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/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.h M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.mm M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.h M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.h M Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm M Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.h M Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in 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 Log Message: ----------- Add support for AVC H264 WebCodecsVideoDecoder https://bugs.webkit.org/show_bug.cgi?id=246141 rdar://problem/100844377 Reviewed by Eric Carlson. Update RTCVideoDecoderH264 and RTCVideoDecoderH265 to support AVC. To do so, we introduce setAVCFormat to setup the decoder and put it in AVC mode. When receiving data to decode, we skip the AnnexB translation since VTB is AVC based. Update WebKit layer to pass the AVC description data to GPUProcess. Covered by layout tests. * LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoDecoder-codec-specific.https.any.worker_h264_avc-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/webcodecs/videoDecoder-codec-specific.https.any_h264_avc-expected.txt: * Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOS.exp: * Source/ThirdParty/libwebrtc/Configurations/libwebrtc.iOSsim.exp: * Source/ThirdParty/libwebrtc/Configurations/libwebrtc.mac.exp: * Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.h: * Source/ThirdParty/libwebrtc/Source/webrtc/sdk/WebKit/WebKitDecoder.mm: (-[WK_RTCLocalVideoH264H265VP9Decoder setFormat:size:width:height:]): (webrtc::setDecodingFormat): * Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.h: * Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH264.mm: (-[RTCVideoDecoderH264 init]): (H264BufferToCMSampleBuffer): (-[RTCVideoDecoderH264 decodeData:size:timeStamp:]): (-[RTCVideoDecoderH264 setAVCFormat:size:width:height:]): * Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.h: * Source/ThirdParty/libwebrtc/Source/webrtc/sdk/objc/components/video_codec/RTCVideoDecoderH265.mm: (-[RTCVideoDecoderH265 init]): (H265BufferToCMSampleBuffer): (-[RTCVideoDecoderH265 decodeData:size:timeStamp:]): (-[RTCVideoDecoderH265 setAVCFormat:size:width:height:]): * Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.h: * Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.messages.in: * Source/WebKit/GPUProcess/webrtc/LibWebRTCCodecsProxy.mm: (WebKit::LibWebRTCCodecsProxy::setDecoderFormatDescription): * Source/WebKit/WebProcess/GPU/media/RemoteVideoCodecFactory.cpp: (WebKit::RemoteVideoCodecFactory::createDecoder): (WebKit::RemoteVideoDecoder::RemoteVideoDecoder): * Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp: (WebKit::LibWebRTCCodecs::setDecoderFormatDescription): * Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.h: Canonical link: https://commits.webkit.org/255422@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes