Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: a65cb6426ce7d364e4f0c462533bf67e5d0abb5f https://github.com/WebKit/WebKit/commit/a65cb6426ce7d364e4f0c462533bf67e5d0abb5f Author: Philippe Normand <ph...@igalia.com> Date: 2024-05-02 (Thu, 02 May 2024)
Changed paths: M LayoutTests/platform/glib/TestExpectations M Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp M Source/WebCore/platform/graphics/gstreamer/VideoEncoderGStreamer.cpp M Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.cpp M Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.h M Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.cpp M Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.h M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp M Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.h M Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp M Tools/TestWebKitAPI/Tests/WebCore/gstreamer/GStreamerTest.cpp Log Message: ----------- [GStreamer] Video encoder configuration using codec strings https://bugs.webkit.org/show_bug.cgi?id=273398 Reviewed by Xabier Rodriguez-Calvar. The video encoder used to be configurable with output caps, but that wasn't sufficient so later on it was extended with some support for codec string handling, which made the code more complex. By dropping GstCaps configuration support and by relying only on codec string parsing, the input/output caps logic is now decided in the GStreamerCodecUtilities. So modules making use of codec strings (MediaRecorder, WebCodecs) pass their configuration directly to the encoder. For WebRTC we forge a codec string according to the negotiated video encoding-name. Later on for simulcast the codec strings from the RtpSender parameters will be leveraged. * LayoutTests/platform/glib/TestExpectations: * Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp: (WebCore::GStreamerRegistryScanner::fillVideoRtpCapabilities): * Source/WebCore/platform/graphics/gstreamer/VideoEncoderGStreamer.cpp: (WebCore::GStreamerInternalVideoEncoder::initialize): * Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.cpp: (WebCore::h264CapsFromCodecString): (WebCore::h265CapsFromCodecString): (WebCore::vpxCapsFromCodecString): (WebCore::av1CapsFromCodecString): (WebCore::GStreamerCodecUtilities::capsFromCodecString): * Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.h: * Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.cpp: (videoEncoderGetProperty): (videoEncoderSetEncoder): (videoEncoderFindForCodec): (videoEncoderSupportsCodec): (videoEncoderSetCodec): (videoEncoderSetProperty): (webkit_video_encoder_class_init): (videoEncoderSupportsFormat): Deleted. (videoEncoderSetFormat): Deleted. * Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.h: * Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp: (WebCore::MediaRecorderPrivateBackend::containerProfile): (WebCore::MediaRecorderPrivateBackend::configureVideoEncoder): * Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.h: * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp: (WebCore::RealtimeOutgoingVideoSourceGStreamer::setPayloadType): * Tools/TestWebKitAPI/Tests/WebCore/gstreamer/GStreamerTest.cpp: (TestWebKitAPI::TEST_F): Canonical link: https://commits.webkit.org/278266@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes