[webkit-changes] [WebKit/WebKit] a65cb6: [GStreamer] Video encoder configuration using code...
Philippe Normand
noreply at github.com
Thu May 2 08:59:04 PDT 2024
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a65cb6426ce7d364e4f0c462533bf67e5d0abb5f
https://github.com/WebKit/WebKit/commit/a65cb6426ce7d364e4f0c462533bf67e5d0abb5f
Author: Philippe Normand <philn at 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
More information about the webkit-changes
mailing list