From be8aeaafd2599097cda73a59db963fe9c8afd22d Mon Sep 17 00:00:00 2001 From: Michael Scherle Date: Wed, 11 Jun 2025 11:47:30 +0200 Subject: [PATCH] gstreamer-encoder: Add video metadata for DMA-BUF MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Include video metadata when using DMA-BUF to provide stride and offset. Without this metadata, GStreamer may incorrectly interpret the buffer layout, leading to corrupted image output—especially when the framebuffer includes padding. --- server/gstreamer-encoder.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/server/gstreamer-encoder.c b/server/gstreamer-encoder.c index dcae2f48..cdccb6af 100644 --- a/server/gstreamer-encoder.c +++ b/server/gstreamer-encoder.c @@ -1805,6 +1805,15 @@ spice_gst_encoder_encode_dmabuf(VideoEncoder *video_encoder, } gst_buffer_append_memory(buffer, mem); } + + gst_buffer_add_video_meta_full(buffer, + GST_VIDEO_FRAME_FLAG_NONE, + encoder->format->gst_format, + dmabuf_data->width, + dmabuf_data->height, + dmabuf_data->num_planes, + dmabuf_data->offset, + dmabuf_data->stride); gst_mini_object_weak_ref(GST_MINI_OBJECT(buffer), (GstMiniObjectNotify)spice_gst_mem_free_cb,