From 9e9ea966373d3858668f6a29d8ba91a5807c8dd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20Maillart?= Date: Fri, 8 Nov 2024 09:50:53 -0800 Subject: [PATCH] [GStreamer] Video dimensions are wrong since GStreamer 1.24.9 https://bugs.webkit.org/show_bug.cgi?id=282749 Reviewed by Philippe Normand. With the latest version of GStreamer, if the source is not selectable, uridecodebin3 will drop the stream collection emitted from this element As we only consider stream collection from the source element, we will never set the stream collection internally, this will produce faulty behaviour such as using wrong video dimensions To avoid that, we reply true to the selectable query * Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp: (webKitMediaSrcQuery): Canonical link: https://commits.webkit.org/286347@main --- .../graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp index c0a67c5f23f25..45b4f160e5630 100644 --- a/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp +++ b/Source/WebCore/platform/graphics/gstreamer/mse/WebKitMediaSourceGStreamer.cpp @@ -255,6 +255,13 @@ static const char* streamTypeToString(TrackPrivateBaseGStreamer::TrackType type) static gboolean webKitMediaSrcQuery(GstElement* element, GstQuery* query) { +#if GST_CHECK_VERSION(1, 22, 0) + if (GST_QUERY_TYPE(query) == GST_QUERY_SELECTABLE) { + gst_query_set_selectable(query, TRUE); + return TRUE; + } +#endif + gboolean result = GST_ELEMENT_CLASS(parent_class)->query(element, query); if (GST_QUERY_TYPE(query) != GST_QUERY_SCHEDULING)