|  |  |  | GStreamer Base Plugins 1.0 Library Reference Manual |  | 
|---|---|---|---|---|
| Top | Description | ||||
#include <gst/video/gstvideometa.h> struct GstVideoMeta; GstVideoMetaTransform; gboolean gst_video_meta_map (GstVideoMeta *meta,guint plane,GstMapInfo *info,gpointer *data,gint *stride,GstMapFlags flags); gboolean gst_video_meta_unmap (GstVideoMeta *meta,guint plane,GstMapInfo *info); const GstMetaInfo * gst_video_meta_get_info (void); GstVideoMeta * gst_buffer_add_video_meta (GstBuffer *buffer,GstVideoFrameFlags flags,GstVideoFormat format,guint width,guint height); GstVideoMeta * gst_buffer_add_video_meta_full (GstBuffer *buffer,GstVideoFrameFlags flags,GstVideoFormat format,guint width,guint height,guint n_planes,gsize offset[GST_VIDEO_MAX_PLANES],gint stride[GST_VIDEO_MAX_PLANES]); #define gst_buffer_get_video_meta (b) GstVideoMeta * gst_buffer_get_video_meta_id (GstBuffer *buffer,gint id); struct GstVideoCropMeta; #define gst_buffer_add_video_crop_meta (b) #define gst_buffer_get_video_crop_meta (b) GstVideoRegionOfInterestMeta; GstVideoRegionOfInterestMeta * gst_buffer_add_video_region_of_interest_meta (GstBuffer *buffer,const gchar *roi_type,guint x,guint y,guint w,guint h); GstVideoRegionOfInterestMeta * gst_buffer_add_video_region_of_interest_meta_id (GstBuffer *buffer,GQuark roi_type,guint x,guint y,guint w,guint h); #define gst_buffer_get_video_region_of_interest_meta(b) GstVideoRegionOfInterestMeta * gst_buffer_get_video_region_of_interest_meta_id (GstBuffer *buffer,gint id); gboolean (*GstVideoGLTextureUpload) (GstVideoGLTextureUploadMeta *meta,guint texture_id[4]); struct GstVideoGLTextureUploadMeta; GstVideoGLTextureUploadMeta * gst_buffer_add_video_gl_texture_upload_meta (GstBuffer *buffer,GstVideoGLTextureOrientation texture_orientation,guint n_textures,GstVideoGLTextureType texture_type[4],GstVideoGLTextureUpload upload,gpointer user_data,GBoxedCopyFunc user_data_copy,GBoxedFreeFunc user_data_free); #define gst_buffer_get_video_gl_texture_upload_meta(b) gboolean gst_video_gl_texture_upload_meta_upload (GstVideoGLTextureUploadMeta *meta,guint texture_id[4]);
struct GstVideoMeta {
  GstMeta            meta;
  GstBuffer         *buffer;
  GstVideoFrameFlags flags;
  GstVideoFormat     format;
  gint               id;
  guint              width;
  guint              height;
  guint              n_planes;
  gsize              offset[GST_VIDEO_MAX_PLANES];
  gint               stride[GST_VIDEO_MAX_PLANES];
  gboolean (*map)    (GstVideoMeta *meta, guint plane, GstMapInfo *info,
                      gpointer *data, gint * stride, GstMapFlags flags);
  gboolean (*unmap)  (GstVideoMeta *meta, guint plane, GstMapInfo *info);
};
Extra buffer metadata describing image properties
| GstMeta  | parent GstMeta | 
| GstBuffer * | the buffer this metadata belongs to | 
| GstVideoFrameFlags  | additional video flags | 
| GstVideoFormat  | the video format | 
| gint  | identifier of the frame | 
| guint  | the video width | 
| guint  | the video height | 
| guint  | the number of planes in the image | 
| array of offsets for the planes. This field might not always be
valid, it is used by the default implementation of map. | |
| gint  | array of strides for the planes. This field might not always be
valid, it is used by the default implementation of map. | 
| map the memory of a plane | |
| unmap the memory of a plane | 
typedef struct {
  GstVideoInfo *in_info;
  GstVideoInfo *out_info;
} GstVideoMetaTransform;
Extra data passed to a video transform GstMetaTransformFunction such as: "gst-video-scale".
| GstVideoInfo * | the input GstVideoInfo | 
| GstVideoInfo * | the output GstVideoInfo | 
gboolean gst_video_meta_map (GstVideoMeta *meta,guint plane,GstMapInfo *info,gpointer *data,gint *stride,GstMapFlags flags);
Map the video plane with index plane in meta and return a pointer to the
first byte of the plane and the stride of the plane.
| 
 | a GstVideoMeta | 
| 
 | a plane | 
| 
 | a GstMapInfo | 
| 
 | the data of plane | 
| 
 | the stride of plane | 
| 
 | GstMapFlags | 
| Returns : | TRUE if the map operation was successful. | 
gboolean gst_video_meta_unmap (GstVideoMeta *meta,guint plane,GstMapInfo *info);
Unmap a previously mapped plane with gst_video_meta_map().
| 
 | a GstVideoMeta | 
| 
 | a plane | 
| 
 | a GstMapInfo | 
| Returns : | TRUE if the memory was successfully unmapped. | 
GstVideoMeta * gst_buffer_add_video_meta (GstBuffer *buffer,GstVideoFrameFlags flags,GstVideoFormat format,guint width,guint height);
Attaches GstVideoMeta metadata to buffer with the given parameters and the
default offsets and strides for format and width x height.
This function calculates the default offsets and strides and then calls
gst_buffer_add_video_meta_full() with them.
| 
 | a GstBuffer | 
| 
 | GstVideoFrameFlags | 
| 
 | a GstVideoFormat | 
| 
 | the width | 
| 
 | the height | 
| Returns : | the GstVideoMeta on buffer. | 
GstVideoMeta * gst_buffer_add_video_meta_full (GstBuffer *buffer,GstVideoFrameFlags flags,GstVideoFormat format,guint width,guint height,guint n_planes,gsize offset[GST_VIDEO_MAX_PLANES],gint stride[GST_VIDEO_MAX_PLANES]);
Attaches GstVideoMeta metadata to buffer with the given parameters.
| 
 | a GstBuffer | 
| 
 | GstVideoFrameFlags | 
| 
 | a GstVideoFormat | 
| 
 | the width | 
| 
 | the height | 
| 
 | number of planes | 
| 
 | offset of each plane | 
| 
 | stride of each plane | 
| Returns : | the GstVideoMeta on buffer. | 
#define gst_buffer_get_video_meta(b) ((GstVideoMeta*)gst_buffer_get_meta((b),GST_VIDEO_META_API_TYPE))
GstVideoMeta * gst_buffer_get_video_meta_id (GstBuffer *buffer,gint id);
Find the GstVideoMeta on buffer with the given id.
Buffers can contain multiple GstVideoMeta metadata items when dealing with multiview buffers.
| 
 | a GstBuffer | 
| 
 | a metadata id | 
| Returns : | the GstVideoMeta with idorNULLwhen there is no such metadata
onbuffer. | 
struct GstVideoCropMeta {
  GstMeta       meta;
  guint         x;
  guint         y;
  guint         width;
  guint         height;
};
Extra buffer metadata describing image cropping.
#define gst_buffer_add_video_crop_meta(b) ((GstVideoCropMeta*)gst_buffer_add_meta((b),GST_VIDEO_CROP_META_INFO, NULL))
#define gst_buffer_get_video_crop_meta(b) ((GstVideoCropMeta*)gst_buffer_get_meta((b),GST_VIDEO_CROP_META_API_TYPE))
typedef struct {
  GstMeta meta;
  GQuark roi_type;
  gint id;
  gint parent_id;
  guint x;
  guint y;
  guint w;
  guint h;
} GstVideoRegionOfInterestMeta;
Extra buffer metadata describing an image region of interest
| GstMeta  | parent GstMeta | 
| GQuark  | GQuark describing the semantic of the Roi (f.i. a face, a pedestrian) | 
| gint  | identifier of this particular ROI | 
| gint  | identifier of its parent ROI, used f.i. for ROI hierarchisation. | 
| guint  | x component of upper-left corner | 
| guint  | y component of upper-left corner | 
| guint  | |
| guint  | 
GstVideoRegionOfInterestMeta * gst_buffer_add_video_region_of_interest_meta (GstBuffer *buffer,const gchar *roi_type,guint x,guint y,guint w,guint h);
Attaches GstVideoRegionOfInterestMeta metadata to buffer with the given
parameters.
| 
 | a GstBuffer | 
| 
 | Type of the region of interest (e.g. "face") | 
| 
 | X position | 
| 
 | Y position | 
| 
 | width | 
| 
 | height | 
| Returns : | the GstVideoRegionOfInterestMeta on buffer. | 
GstVideoRegionOfInterestMeta * gst_buffer_add_video_region_of_interest_meta_id (GstBuffer *buffer,GQuark roi_type,guint x,guint y,guint w,guint h);
Attaches GstVideoRegionOfInterestMeta metadata to buffer with the given
parameters.
| 
 | a GstBuffer | 
| 
 | Type of the region of interest (e.g. "face") | 
| 
 | X position | 
| 
 | Y position | 
| 
 | width | 
| 
 | height | 
| Returns : | the GstVideoRegionOfInterestMeta on buffer. | 
#define gst_buffer_get_video_region_of_interest_meta(b)
GstVideoRegionOfInterestMeta * gst_buffer_get_video_region_of_interest_meta_id (GstBuffer *buffer,gint id);
Find the GstVideoRegionOfInterestMeta on buffer with the given id.
Buffers can contain multiple GstVideoRegionOfInterestMeta metadata items if multiple regions of interests are marked on a frame.
gboolean (*GstVideoGLTextureUpload) (GstVideoGLTextureUploadMeta *meta,guint texture_id[4]);
struct GstVideoGLTextureUploadMeta {
  GstMeta       meta;
  GstVideoGLTextureOrientation texture_orientation;
  guint n_textures;
  GstVideoGLTextureType texture_type[4];
};
Extra buffer metadata for uploading a buffer to an OpenGL texture
ID. The caller of gst_video_gl_texture_upload_meta_upload() must
have OpenGL set up and call this from a thread where it is valid
to upload something to an OpenGL texture.
GstVideoGLTextureUploadMeta * gst_buffer_add_video_gl_texture_upload_meta (GstBuffer *buffer,GstVideoGLTextureOrientation texture_orientation,guint n_textures,GstVideoGLTextureType texture_type[4],GstVideoGLTextureUpload upload,gpointer user_data,GBoxedCopyFunc user_data_copy,GBoxedFreeFunc user_data_free);
Attaches GstVideoGLTextureUploadMeta metadata to buffer with the given
parameters.
| 
 | a GstBuffer | 
| 
 | the function to upload the buffer to a specific texture ID | 
| 
 | user data for the implementor of upload | 
| 
 | function to copy user_data | 
| 
 | function to free user_data | 
| Returns : | the GstVideoGLTextureUploadMeta on buffer. | 
#define gst_buffer_get_video_gl_texture_upload_meta(b) ((GstVideoGLTextureUploadMeta*)gst_buffer_get_meta((b),GST_VIDEO_GL_TEXTURE_UPLOAD_META_API_TYPE))
gboolean gst_video_gl_texture_upload_meta_upload (GstVideoGLTextureUploadMeta *meta,guint texture_id[4]);
Uploads the buffer which owns the meta to a specific texture ID.
| 
 | a GstVideoGLTextureUploadMeta | 
| 
 | the texture IDs to upload to | 
| Returns : | TRUEif uploading succeeded,FALSEotherwise. |