Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c946458d447464be29d85328c0173468fdcb00f7 https://github.com/WebKit/WebKit/commit/c946458d447464be29d85328c0173468fdcb00f7 Author: Youenn Fablet <youe...@gmail.com> Date: 2022-10-08 (Sat, 08 Oct 2022)
Changed paths: 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 LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any.worker_h264_annexb-expected.txt M LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any_h264_annexb-expected.txt M LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any_h264_avc-expected.txt M LayoutTests/imported/w3c/web-platform-tests/webcodecs/temporal-svc-encoding.https.any_h264-expected.txt M Source/WebCore/CMakeLists.txt M Source/WebCore/DerivedSources-input.xcfilelist M Source/WebCore/DerivedSources-output.xcfilelist M Source/WebCore/DerivedSources.make A Source/WebCore/Modules/webcodecs/AvcEncoderConfig.h A Source/WebCore/Modules/webcodecs/AvcEncoderConfig.idl M Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.cpp M Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoderConfig.h M Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoderConfig.idl M Source/WebCore/Sources.txt M Source/WebCore/WebCore.xcodeproj/project.pbxproj M Source/WebCore/platform/VideoEncoder.cpp M Source/WebCore/platform/VideoEncoder.h M Source/WebKit/WebProcess/GPU/media/RemoteVideoCodecFactory.cpp M Source/WebKit/WebProcess/GPU/media/RemoteVideoCodecFactory.h M Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp M Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.h M Source/WebKit/WebProcess/GPU/webrtc/SharedVideoFrame.h Log Message: ----------- Implement WebCodecsVideoEncoder with GPUProcess backend https://bugs.webkit.org/show_bug.cgi?id=246068 rdar://problem/100798062 Reviewed by Eric Carlson. Complement RemoteVideoCodecFactory with remote encoder support. Add support for AvcEncoderConfig to make sure we only support AnnexB for now. Make use of libwebrtc remote encoders through RemoteVideoCodecFactory/RemoteVideoEncoder like done for decoders. * 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: * LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any.worker_h264_annexb-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any.worker_h264_avc-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any_h264_annexb-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/webcodecs/reconfiguring-encoder.https.any_h264_avc-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/webcodecs/temporal-svc-encoding.https.any.worker_h264-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/webcodecs/temporal-svc-encoding.https.any_h264-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/webcodecs/video-encoder-config.https.any-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/webcodecs/video-encoder-config.https.any.worker-expected.txt: * Source/WebCore/CMakeLists.txt: * Source/WebCore/DerivedSources-input.xcfilelist: * Source/WebCore/DerivedSources-output.xcfilelist: * Source/WebCore/DerivedSources.make: * Source/WebCore/Modules/webcodecs/AvcEncoderConfig.h: Added. * Source/WebCore/Modules/webcodecs/AvcEncoderConfig.idl: Added. * Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoder.cpp: (WebCore::isValidEncoderConfig): (WebCore::WebCodecsVideoEncoder::configure): * Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoderConfig.h: * Source/WebCore/Modules/webcodecs/WebCodecsVideoEncoderConfig.idl: * Source/WebCore/Sources.txt: * Source/WebCore/WebCore.xcodeproj/project.pbxproj: * Source/WebCore/platform/VideoEncoder.cpp: (WebCore::VideoEncoder::setCreatorCallback): (WebCore::VideoEncoder::create): (WebCore::VideoEncoder::createLocalEncoder): * Source/WebCore/platform/VideoEncoder.h: * Source/WebKit/WebProcess/GPU/media/RemoteVideoCodecFactory.cpp: (WebKit::RemoteVideoEncoderCallbacks::create): (WebKit::RemoteVideoEncoderCallbacks::postTask): (WebKit::RemoteVideoEncoderCallbacks::close): (WebKit::RemoteVideoEncoderCallbacks::addDuration): (WebKit::RemoteVideoCodecFactory::RemoteVideoCodecFactory): (WebKit::RemoteVideoCodecFactory::createDecoder): (WebKit::RemoteVideoCodecFactory::createEncoder): (WebKit::RemoteVideoEncoder::RemoteVideoEncoder): (WebKit::RemoteVideoEncoder::~RemoteVideoEncoder): (WebKit::RemoteVideoEncoder::encode): (WebKit::RemoteVideoEncoder::flush): (WebKit::RemoteVideoEncoder::reset): (WebKit::RemoteVideoEncoder::close): (WebKit::RemoteVideoEncoderCallbacks::RemoteVideoEncoderCallbacks): (WebKit::RemoteVideoEncoderCallbacks::notifyEncodedChunk): * Source/WebKit/WebProcess/GPU/media/RemoteVideoCodecFactory.h: * Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.cpp: (WebKit::LibWebRTCCodecs::createEncoder): (WebKit::LibWebRTCCodecs::createEncoderAndWaitUntilReady): (WebKit::LibWebRTCCodecs::createEncoderInternal): (WebKit::LibWebRTCCodecs::releaseEncoder): (WebKit::LibWebRTCCodecs::encodeFrameInternal): (WebKit::LibWebRTCCodecs::encodeFrame): (WebKit::LibWebRTCCodecs::registerEncodeFrameCallback): (WebKit::LibWebRTCCodecs::registerEncodedVideoFrameCallback): (WebKit::LibWebRTCCodecs::completedEncoding): * Source/WebKit/WebProcess/GPU/webrtc/LibWebRTCCodecs.h: (WebKit::LibWebRTCCodecs::createDecoderInternal): Deleted. * Source/WebKit/WebProcess/GPU/webrtc/SharedVideoFrame.h: Canonical link: https://commits.webkit.org/255316@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes