![]() |
![]() |
![]() |
GStreamer 0.11 Core Reference Manual | ![]() |
---|---|---|---|---|
Top | Description |
#include <gst/gst.h> struct GstMeta; enum GstMetaFlags; #define GST_META_FLAGS (meta) #define GST_META_FLAG_IS_SET (meta, flag) #define GST_META_FLAG_SET (meta, flag) #define GST_META_FLAG_UNSET (meta, flag) struct GstMetaInfo; gboolean (*GstMetaInitFunction) (GstMeta *meta
,gpointer params
,GstBuffer *buffer
); void (*GstMetaFreeFunction) (GstMeta *meta
,GstBuffer *buffer
); gboolean (*GstMetaTransformFunction) (GstBuffer *transbuf
,GstMeta *meta
,GstBuffer *buffer
,GQuark type
,gpointer data
); GType gst_meta_api_type_register (const gchar *api
,const gchar **tags
); gboolean gst_meta_api_type_has_tag (GType api
,GQuark tag
); const GstMetaInfo * gst_meta_register (GType api
,const gchar *impl
,gsize size
,GstMetaInitFunction init_func
,GstMetaFreeFunction free_func
,GstMetaTransformFunction transform_func
); const GstMetaInfo * gst_meta_get_info (const gchar *impl
);
struct GstMeta { GstMetaFlags flags; const GstMetaInfo *info; };
Base structure for metadata. Custom metadata will put this structure as the first member of their structure.
GstMetaFlags |
extra flags for the metadata |
const GstMetaInfo * |
pointer to the GstMetaInfo |
typedef enum { GST_META_FLAG_NONE = 0, GST_META_FLAG_READONLY = (1 << 0), GST_META_FLAG_POOLED = (1 << 1), GST_META_FLAG_LAST = (1 << 16) } GstMetaFlags;
Extra metadata flags.
#define GST_META_FLAGS(meta) (GST_META_CAST (meta)->flags)
A flags word containing GstMetaFlags flags set on meta
|
a GstMeta. |
#define GST_META_FLAG_IS_SET(meta,flag) !!(GST_META_FLAGS (meta) & (flag))
Gives the status of a specific flag on a metadata.
|
a GstMeta. |
|
the GstMetaFlags to check. |
#define GST_META_FLAG_SET(meta,flag) (GST_META_FLAGS (meta) |= (flag))
Sets a metadata flag on a metadata.
|
a GstMeta. |
|
the GstMetaFlags to set. |
#define GST_META_FLAG_UNSET(meta,flag) (GST_META_FLAGS (meta) &= ~(flag))
Clears a metadata flag.
|
a GstMeta. |
|
the GstMetaFlags to clear. |
struct GstMetaInfo { GType api; GType type; gsize size; GstMetaInitFunction init_func; GstMetaFreeFunction free_func; GstMetaTransformFunction transform_func; };
The GstMetaInfo provides information about a specific metadata structure.
tag indentifying the metadata structure and api | |
type indentifying the implementor of the api | |
size of the metadata | |
GstMetaInitFunction |
function for initializing the metadata |
GstMetaFreeFunction |
function for freeing the metadata |
GstMetaTransformFunction |
function for transforming the metadata |
gboolean (*GstMetaInitFunction) (GstMeta *meta
,gpointer params
,GstBuffer *buffer
);
Function called when meta
is initialized in buffer
.
void (*GstMetaFreeFunction) (GstMeta *meta
,GstBuffer *buffer
);
Function called when meta
is freed in buffer
.
gboolean (*GstMetaTransformFunction) (GstBuffer *transbuf
,GstMeta *meta
,GstBuffer *buffer
,GQuark type
,gpointer data
);
Function called for each meta
in buffer
as a result of performing a
transformation on transbuf
. Additional type
specific transform data
is passed to the function as data
.
Implementations should check the type
of the transform and parse
additional type specific fields in data
that should be used to update
the metadata on transbuf
.
GType gst_meta_api_type_register (const gchar *api
,const gchar **tags
);
Register and return a GType for the api
and associate it with
tags
.
|
an API to register |
|
tags for api
|
Returns : |
a unique GType for api . |
gboolean gst_meta_api_type_has_tag (GType api
,GQuark tag
);
Check if api
was registered with tag
.
|
an API |
|
the tag to check |
Returns : |
TRUE if api was registered with tag . |
const GstMetaInfo * gst_meta_register (GType api
,const gchar *impl
,gsize size
,GstMetaInitFunction init_func
,GstMetaFreeFunction free_func
,GstMetaTransformFunction transform_func
);
Register a new GstMeta implementation.
The same info
can be retrieved later with gst_meta_get_info()
by using
impl
as the key.
|
the type of the GstMeta API |
|
the name of the GstMeta implementation |
|
the size of the GstMeta structure |
|
a GstMetaInitFunction |
|
a GstMetaFreeFunction |
|
a GstMetaTransformFunction |
Returns : |
a GstMetaInfo that can be used to access metadata. [transfer none] |
const GstMetaInfo * gst_meta_get_info (const gchar *impl
);
Lookup a previously registered meta info structure by its implementation name
impl
.
|
the name |
Returns : |
a GstMetaInfo with impl , or NULL when no such
metainfo exists. [transfer none]
|