videometa: document how the meta can be used to negotiate buffers layout
authorGuillaume Desmottes <guillaume.desmottes@collabora.com>
Sat, 25 May 2019 17:23:35 +0000 (19:23 +0200)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 4 Nov 2019 12:59:31 +0000 (12:59 +0000)
I'm going to use this new API in gst-omx so an encoder can request
v4l2src to produce buffers matching the encoder stride and slice heights
preventing copies of incoming buffers.

gst-libs/gst/video/gstvideometa.h

index 3519a54..4abf173 100644 (file)
@@ -59,6 +59,21 @@ typedef struct _GstVideoCropMeta GstVideoCropMeta;
  * to no padding and no alignment. Since: 1.18
  *
  * Extra buffer metadata describing image properties
+ *
+ * This meta can also be used by downstream elements to specifiy their
+ * buffer layout requirements for upstream. Upstream should try to
+ * fit those requirements, if possible, in order to prevent buffer copies.
+ *
+ * This is done by passing a custom #GstStructure to
+ * gst_query_add_allocation_meta() when handling the ALLOCATION query.
+ * This structure should be named 'video-meta' and can have the following
+ * fields:
+ * - padding-top (uint): extra pixels on the top
+ * - padding-bottom (uint): extra pixels on the bottom
+ * - padding-left (uint): extra pixels on the left side
+ * - padding-right (uint): extra pixels on the right side
+ * The padding fields have the same semantic as #GstVideoMeta.alignment
+ * and so represent the paddings requested on produced video buffers.
  */
 struct _GstVideoMeta {
   GstMeta            meta;