This commit is contained in:
parent
6add102f1b
commit
3636a5eef3
59
9d5844679af8f84036f1b800307e799bd7ab73ba.patch
Normal file
59
9d5844679af8f84036f1b800307e799bd7ab73ba.patch
Normal file
@ -0,0 +1,59 @@
|
||||
From 9d5844679af8f84036f1b800307e799bd7ab73ba Mon Sep 17 00:00:00 2001
|
||||
From: Philippe Normand <philn@igalia.com>
|
||||
Date: Thu, 20 Jun 2024 12:39:27 -0700
|
||||
Subject: [PATCH] [GTK][GStreamer] VA+DMABuf videos flicker
|
||||
https://bugs.webkit.org/show_bug.cgi?id=253807
|
||||
|
||||
Reviewed by Xabier Rodriguez-Calvar.
|
||||
|
||||
By requesting a video frame allocation pool containing at least 3 frames, the risks of flickering
|
||||
when rendering should be reduced.
|
||||
|
||||
* Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp:
|
||||
(WebKitVideoSinkProbe::doProbe):
|
||||
|
||||
Canonical link: https://commits.webkit.org/280210@main
|
||||
---
|
||||
.../gstreamer/GStreamerVideoSinkCommon.cpp | 29 +++++++++++++++++--
|
||||
1 file changed, 27 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp b/Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp
|
||||
index dc3f912e11d8..b2ddaad303e8 100644
|
||||
--- a/Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp
|
||||
+++ b/Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp
|
||||
@@ -73,8 +73,33 @@ class WebKitVideoSinkProbe {
|
||||
player->updateVideoOrientation(tagList);
|
||||
}
|
||||
|
||||
- if (info->type & GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM && GST_QUERY_TYPE(GST_PAD_PROBE_INFO_QUERY(info)) == GST_QUERY_ALLOCATION)
|
||||
- gst_query_add_allocation_meta(GST_PAD_PROBE_INFO_QUERY(info), GST_VIDEO_META_API_TYPE, nullptr);
|
||||
+ if (info->type & GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM && GST_QUERY_TYPE(GST_PAD_PROBE_INFO_QUERY(info)) == GST_QUERY_ALLOCATION) {
|
||||
+ auto query = GST_PAD_PROBE_INFO_QUERY(info);
|
||||
+ gst_query_add_allocation_meta(query, GST_VIDEO_META_API_TYPE, nullptr);
|
||||
+
|
||||
+ GstCaps* caps;
|
||||
+ gboolean needPool;
|
||||
+ gst_query_parse_allocation(query, &caps, &needPool);
|
||||
+ if (UNLIKELY(!caps) || !needPool)
|
||||
+ return GST_PAD_PROBE_OK;
|
||||
+
|
||||
+ unsigned size;
|
||||
+#if GST_CHECK_VERSION(1, 24, 0)
|
||||
+ if (gst_video_is_dma_drm_caps(caps)) {
|
||||
+ GstVideoInfoDmaDrm drmInfo;
|
||||
+ if (!gst_video_info_dma_drm_from_caps(&drmInfo, caps))
|
||||
+ return GST_PAD_PROBE_OK;
|
||||
+ size = GST_VIDEO_INFO_SIZE(&drmInfo.vinfo);
|
||||
+ } else
|
||||
+#endif
|
||||
+ {
|
||||
+ GstVideoInfo info;
|
||||
+ if (!gst_video_info_from_caps(&info, caps))
|
||||
+ return GST_PAD_PROBE_OK;
|
||||
+ size = GST_VIDEO_INFO_SIZE(&info);
|
||||
+ }
|
||||
+ gst_query_add_allocation_pool(query, nullptr, size, 3, 0);
|
||||
+ }
|
||||
|
||||
#if USE(GSTREAMER_GL)
|
||||
// FIXME: Verify the following comment. Investigate what actually should be done here.
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Tue Jul 2 21:39:04 UTC 2024 - Bjørn Lie <bjorn.lie@gmail.com>
|
||||
|
||||
- Add 9d5844679af8f84036f1b800307e799bd7ab73ba.patch VA+DMABuf
|
||||
videos flicker
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri May 17 20:40:00 UTC 2024 - Michael Gorse <mgorse@suse.com>
|
||||
|
||||
|
@ -91,6 +91,8 @@ Source99: webkit2gtk3.keyring
|
||||
Patch0: reproducibility.patch
|
||||
# PATCH-FIX-UPSTREAM webkit2gtk3-disable-dmabuf-nvidia.patch boo#1216778 mgorse@suse.com -- disable the DMABuf renderer for NVIDIA proprietary drivers.
|
||||
Patch2: webkit2gtk3-disable-dmabuf-nvidia.patch
|
||||
# PATCH-FIX-UPSTREAM 9d5844679af8f84036f1b800307e799bd7ab73ba -- VA+DMABuf videos flicker
|
||||
Patch3: https://github.com/WebKit/WebKit/commit/9d5844679af8f84036f1b800307e799bd7ab73ba.patch
|
||||
|
||||
BuildRequires: Mesa-libEGL-devel
|
||||
BuildRequires: Mesa-libGL-devel
|
||||
|
Loading…
x
Reference in New Issue
Block a user