webkit2gtk3/9e9ea966373d3858668f6a29d8ba91a5807c8dd8.patch
Dominique Leuenberger a69f4899c6 - Update to version 2.46.4
Also fix a typo in a CVE ref, and remove some mistakenly-added bugs/CVEs that
don't affect Linux.

OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/webkit2gtk3?expand=0&rev=498
2024-11-28 09:07:48 +00:00

42 lines
1.8 KiB
Diff

From 9e9ea966373d3858668f6a29d8ba91a5807c8dd8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Th=C3=A9o=20Maillart?= <tmaillart@freebox.fr>
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)