Dominique Leuenberger
a69f4899c6
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
42 lines
1.8 KiB
Diff
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)
|