From 1d58c7138e0ef81fd2333e82242c5ad722d3063f Mon Sep 17 00:00:00 2001 From: Christophe Priouzeau Date: Wed, 12 Feb 2025 13:01:41 +0100 Subject: [PATCH] stm-st-stm32mp: gstreamer-plugins-bad: revert part of (gtk)waylandsink: fix QVGA YUV420 planar This cause issue with gst-launch-1.0 libcamerasrc ! video/x-raw, format=RGB16, width=800, height=600 ! queue ! waylandsink zwp_linux_buffer_params_v1@14: error 6: invalid buffer stride or height for plane 0 ERROR: from element /GstPipeline:pipeline0/GstWaylandSink:waylandsink0: Video memory can not be read from userspace. https://onedigi.atlassian.net/browse/DEL-9546 Change-Id: Ic82e3787dd74642426baea3d35c2d778f4b1da14 Signed-off-by: Hugues Fruchet Reviewed-on: https://gerrit.st.com/c/oeivi/oe/st/meta-opensdk/+/435172 ACI: CITOOLS Tested-by: Christophe PRIOUZEAU Reviewed-by: Christophe PRIOUZEAU Signed-off-by: Arturo Buzarra --- ...nk-match-drm-kernel-driver-alignment.patch | 45 ++++++++++++++++++ ...dsink-match-drm-kernel-driver-alignm.patch | 46 +++++++++++++++++++ .../gstreamer1.0-plugins-bad_1.22.12.bbappend | 2 + 3 files changed, 93 insertions(+) create mode 100644 meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0082-Revert-waylandsink-match-drm-kernel-driver-alignment.patch create mode 100644 meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0083-Revert-gtkwaylandsink-match-drm-kernel-driver-alignm.patch diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0082-Revert-waylandsink-match-drm-kernel-driver-alignment.patch b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0082-Revert-waylandsink-match-drm-kernel-driver-alignment.patch new file mode 100644 index 000000000..4fff06632 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0082-Revert-waylandsink-match-drm-kernel-driver-alignment.patch @@ -0,0 +1,45 @@ +From be6728ba8e66dfc2f50d1af21eb0579e785765bb Mon Sep 17 00:00:00 2001 +From: Hugues Fruchet +Date: Tue, 3 Dec 2024 14:37:29 +0100 +Subject: [PATCH 1/2] Revert "waylandsink: match drm kernel driver alignment" + +This reverts commit 9468d8cb21818d7fcdbc569119f6056806673cc3. + +Upstream-Status: Pending +--- + ext/wayland/gstwaylandsink.c | 12 ------------ + 1 file changed, 12 deletions(-) + +diff --git a/ext/wayland/gstwaylandsink.c b/ext/wayland/gstwaylandsink.c +index 066f05e..c93fec9 100644 +--- a/ext/wayland/gstwaylandsink.c ++++ b/ext/wayland/gstwaylandsink.c +@@ -692,8 +692,6 @@ gst_wayland_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) + GstWaylandSink *self = GST_WAYLAND_SINK (bsink);; + gboolean use_dmabuf; + GstVideoFormat format; +- GstVideoAlignment alignment; +- guint width; + + GST_DEBUG_OBJECT (self, "set caps %" GST_PTR_FORMAT, caps); + +@@ -701,16 +699,6 @@ gst_wayland_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) + if (!gst_video_info_from_caps (&self->video_info, caps)) + goto invalid_format; + +- /* +- * stick to DRM kernel driver alignment (128 bytes) to avoid +- * any board effects due to size mismatch when switching +- * later-on with DRM dumb allocated buffers +- */ +- gst_video_alignment_reset (&alignment); +- width = GST_VIDEO_INFO_WIDTH (&self->video_info); +- alignment.padding_right = GST_ROUND_UP_128 (width) - width; +- gst_video_info_align (&self->video_info, &alignment); +- + format = GST_VIDEO_INFO_FORMAT (&self->video_info); + self->video_info_changed = TRUE; + self->skip_dumb_buffer_copy = FALSE; +-- +2.25.1 + diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0083-Revert-gtkwaylandsink-match-drm-kernel-driver-alignm.patch b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0083-Revert-gtkwaylandsink-match-drm-kernel-driver-alignm.patch new file mode 100644 index 000000000..5017bd496 --- /dev/null +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad/0083-Revert-gtkwaylandsink-match-drm-kernel-driver-alignm.patch @@ -0,0 +1,46 @@ +From 658760663e957a688b9e4a7791438556e464dcdc Mon Sep 17 00:00:00 2001 +From: Hugues Fruchet +Date: Wed, 4 Dec 2024 09:15:11 +0100 +Subject: [PATCH 2/2] Revert "gtkwaylandsink: match drm kernel driver + alignment" + +This reverts commit cc4d700ec4e9737974cd2945119b100dd075b8e3. + +Upstream-Status: Pending +--- + ext/gtk/gstgtkwaylandsink.c | 12 ------------ + 1 file changed, 12 deletions(-) + +diff --git a/ext/gtk/gstgtkwaylandsink.c b/ext/gtk/gstgtkwaylandsink.c +index fbe05be..658effd 100644 +--- a/ext/gtk/gstgtkwaylandsink.c ++++ b/ext/gtk/gstgtkwaylandsink.c +@@ -949,8 +949,6 @@ gst_gtk_wayland_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) + gst_gtk_wayland_sink_get_instance_private (self); + gboolean use_dmabuf; + GstVideoFormat format; +- GstVideoAlignment alignment; +- guint width; + + GST_DEBUG_OBJECT (self, "set caps %" GST_PTR_FORMAT, caps); + +@@ -958,16 +956,6 @@ gst_gtk_wayland_sink_set_caps (GstBaseSink * bsink, GstCaps * caps) + if (!gst_video_info_from_caps (&priv->video_info, caps)) + goto invalid_format; + +- /* +- * stick to DRM kernel driver alignment (128 bytes) to avoid +- * any board effects due to size mismatch when switching +- * later-on with DRM dumb allocated buffers +- */ +- gst_video_alignment_reset (&alignment); +- width = GST_VIDEO_INFO_WIDTH (&priv->video_info); +- alignment.padding_right = GST_ROUND_UP_128 (width) - width; +- gst_video_info_align (&priv->video_info, &alignment); +- + format = GST_VIDEO_INFO_FORMAT (&priv->video_info); + priv->video_info_changed = TRUE; + priv->skip_dumb_buffer_copy = FALSE; +-- +2.25.1 + diff --git a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.12.bbappend b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.12.bbappend index b160980e7..137040930 100644 --- a/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.12.bbappend +++ b/meta-digi-arm/dynamic-layers/stm-st-stm32mp/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad_1.22.12.bbappend @@ -76,6 +76,8 @@ SRC_URI:append = " \ file://0079-waylandsink-config-buffer-pool-with-query-size-when-.patch \ file://0080-gtkwaylandsink-config-buffer-pool-with-query-size-wh.patch \ file://0081-v4l2codecs-add-support-of-encoding-from-RGBA.patch \ + file://0082-Revert-waylandsink-match-drm-kernel-driver-alignment.patch \ + file://0083-Revert-gtkwaylandsink-match-drm-kernel-driver-alignm.patch \ " PACKAGECONFIG_GL ?= "${@bb.utils.contains('DISTRO_FEATURES', 'opengl', 'gles2 egl', '', d)}"