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

Reply via email to