Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: fbd28f975e493904d6b5de1e4531a8993a396c5f
https://github.com/WebKit/WebKit/commit/fbd28f975e493904d6b5de1e4531a8993a396c5f
Author: Xabier Rodriguez-Calvar <[email protected]>
Date: 2026-06-23 (Tue, 23 Jun 2026)
Changed paths:
M
Source/WebCore/platform/mediastream/libwebrtc/gstreamer/GStreamerVideoCommon.cpp
M
Source/WebCore/platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoderFactory.cpp
Log Message:
-----------
[GStreamer][WebRTC] Advertise additional H.264 profiles and levels for
encoding
https://bugs.webkit.org/show_bug.cgi?id=317630
Reviewed by Philippe Normand.
Patch by Krishna Priya Kanagaraj <[email protected]> on
2026-06-23
Previously the GStreamer-based WebRTC encoder factory only advertised a
single Constrained Baseline (level 3.1) H.264 format, which limited
negotiation to the most basic profile, while the decoder factory already
exposed the full set.
Make the encoder factory reuse the shared supportedH264Formats() helper
(already used by the decoder factory) instead of pushing a lone
SdpVideoFormat::H264(), so both ends advertise the same Baseline,
Constrained Baseline, Main, Constrained High, High and Predictive High
4:4:4 profiles, each at levels 3.1 and 4, and can negotiate
higher-quality H.264 streams.
The profile-level-id strings are derived from the webrtc H264Profile and
H264Level enums via H264ProfileLevelIdToString(), so no changes to the
imported libwebrtc sources are needed and the patch survives a libwebrtc
resync.
*
Source/WebCore/platform/mediastream/libwebrtc/gstreamer/GStreamerVideoCommon.cpp:
(WebCore::supportedH264Formats):
*
Source/WebCore/platform/mediastream/libwebrtc/gstreamer/GStreamerVideoEncoderFactory.cpp:
(WebCore::GStreamerVideoEncoderFactory::GetSupportedFormats const):
Canonical link: https://commits.webkit.org/315666@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications