From f9617bf3f42d0a7f52842e50ea3767639e77e45e Mon Sep 17 00:00:00 2001 From: Guillaume Desmottes Date: Mon, 22 Jul 2019 16:55:04 +0530 Subject: [PATCH] x(v)image: use gst_video_meta_set_alignment() Use the new API to tell buffer consumers about alignment details. This change is backward compatible as non ported elements can safely ignore the alignment information and keep processing buffers as they use to, copying if necessary. --- sys/ximage/ximagepool.c | 6 +++++- sys/xvimage/xvimagepool.c | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/sys/ximage/ximagepool.c b/sys/ximage/ximagepool.c index c79b2e851d..3f95e84511 100644 --- a/sys/ximage/ximagepool.c +++ b/sys/ximage/ximagepool.c @@ -648,12 +648,16 @@ ximage_buffer_pool_alloc (GstBufferPool * pool, GstBuffer ** buffer, gst_buffer_append_memory (ximage, mem); if (xpool->add_metavideo) { + GstVideoMeta *meta; + GST_DEBUG_OBJECT (pool, "adding GstVideoMeta"); /* these are just the defaults for now */ - gst_buffer_add_video_meta_full (ximage, GST_VIDEO_FRAME_FLAG_NONE, + meta = gst_buffer_add_video_meta_full (ximage, GST_VIDEO_FRAME_FLAG_NONE, GST_VIDEO_INFO_FORMAT (info), GST_VIDEO_INFO_WIDTH (info), GST_VIDEO_INFO_HEIGHT (info), GST_VIDEO_INFO_N_PLANES (info), info->offset, info->stride); + + gst_video_meta_set_alignment (meta, xpool->align); } *buffer = ximage; diff --git a/sys/xvimage/xvimagepool.c b/sys/xvimage/xvimagepool.c index 116c6d1dce..8a62c8b1a1 100644 --- a/sys/xvimage/xvimagepool.c +++ b/sys/xvimage/xvimagepool.c @@ -183,11 +183,15 @@ xvimage_buffer_pool_alloc (GstBufferPool * pool, GstBuffer ** buffer, gst_buffer_append_memory (xvimage, mem); if (xvpool->add_metavideo) { + GstVideoMeta *meta; + GST_DEBUG_OBJECT (pool, "adding GstVideoMeta"); - gst_buffer_add_video_meta_full (xvimage, GST_VIDEO_FRAME_FLAG_NONE, + meta = gst_buffer_add_video_meta_full (xvimage, GST_VIDEO_FRAME_FLAG_NONE, GST_VIDEO_INFO_FORMAT (info), GST_VIDEO_INFO_WIDTH (info), GST_VIDEO_INFO_HEIGHT (info), GST_VIDEO_INFO_N_PLANES (info), info->offset, info->stride); + + gst_video_meta_set_alignment (meta, xvpool->align); } *buffer = xvimage;