diff options
author | Wim Taymans <wim.taymans@collabora.co.uk> | 2012-08-20 11:19:37 +0200 |
---|---|---|
committer | Wim Taymans <wim.taymans@collabora.co.uk> | 2012-08-20 11:19:37 +0200 |
commit | bc9c1685c285e134909c00e915602a88c468a327 (patch) | |
tree | 525405d51464a5993f8cdcf85080fcd7d87a576e /sys/ximage | |
parent | 9583d1bfc9d4a249c6c1d5b82432cefec269bc9b (diff) |
X11: use new alignment function
Remove some custom padding and alignment functions and replace with the new
align function from the video library.
Diffstat (limited to 'sys/ximage')
-rw-r--r-- | sys/ximage/ximagepool.c | 27 |
1 files changed, 8 insertions, 19 deletions
diff --git a/sys/ximage/ximagepool.c b/sys/ximage/ximagepool.c index 85f7d2d79..decdbaffc 100644 --- a/sys/ximage/ximagepool.c +++ b/sys/ximage/ximagepool.c @@ -502,8 +502,6 @@ ximage_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config) if (!gst_video_info_from_caps (&info, caps)) goto wrong_caps; - priv->info = info; - GST_LOG_OBJECT (pool, "%dx%d, caps %" GST_PTR_FORMAT, info.width, info.height, caps); @@ -528,6 +526,9 @@ ximage_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config) priv->align.padding_left, priv->align.padding_left, priv->align.padding_bottom); + /* do padding and alignment */ + gst_video_info_align (&info, &priv->align); + /* we need the video metadata too now */ priv->add_metavideo = TRUE; } else { @@ -542,6 +543,8 @@ ximage_buffer_pool_set_config (GstBufferPool * pool, GstStructure * config) GST_VIDEO_INFO_HEIGHT (&info) + priv->align.padding_top + priv->align.padding_bottom; + priv->info = info; + return GST_BUFFER_POOL_CLASS (parent_class)->set_config (pool, config); /* ERRORS */ @@ -583,25 +586,11 @@ ximage_buffer_pool_alloc (GstBufferPool * pool, GstBuffer ** buffer, goto no_buffer; } if (priv->add_metavideo) { - GstVideoMeta *meta; - GST_DEBUG_OBJECT (pool, "adding GstVideoMeta"); /* these are just the defaults for now */ - meta = gst_buffer_add_video_meta (ximage, GST_VIDEO_FRAME_FLAG_NONE, - GST_VIDEO_INFO_FORMAT (info), priv->padded_width, priv->padded_height); - - if (priv->need_alignment) { - gint vpad, hpad, pstride; - - vpad = priv->align.padding_left; - hpad = priv->align.padding_top; - - meta->width = GST_VIDEO_INFO_WIDTH (&priv->info); - meta->height = GST_VIDEO_INFO_HEIGHT (&priv->info); - pstride = GST_VIDEO_INFO_COMP_PSTRIDE (&priv->info, 0); - - meta->offset[0] += (vpad * meta->stride[0]) + (hpad * pstride); - } + gst_buffer_add_video_meta_full (ximage, GST_VIDEO_FRAME_FLAG_NONE, + GST_VIDEO_INFO_FORMAT (info), priv->padded_width, priv->padded_height, + GST_VIDEO_INFO_N_PLANES (info), info->offset, info->stride); } *buffer = ximage; |