Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: a65cb6426ce7d364e4f0c462533bf67e5d0abb5f
https://github.com/WebKit/WebKit/commit/a65cb6426ce7d364e4f0c462533bf67e5d0abb5f
Author: Philippe Normand <[email protected]>
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
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes