GstMeta
The GstMeta structure should be included as the first member of a GstBuffer metadata structure. The structure defines the API of the metadata and should be accessible to all elements using the metadata.
A metadata API is registered with gst_meta_api_type_register which takes a name for the metadata API and some tags associated with the metadata. With gst_meta_api_type_has_tag one can check if a certain metadata API contains a given tag.
Multiple implementations of a metadata API can be registered. To implement a metadata API, gst_meta_register should be used. This function takes all parameters needed to create, free and transform metadata along with the size of the metadata. The function returns a GstMetaInfo structure that contains the information for the implementation of the API.
A specific implementation can be retrieved by name with gst_meta_get_info.
See GstBuffer for how the metadata can be added, retrieved and removed from buffers.
GstCustomMeta
Extra custom metadata. The structure field is the same as returned by gst_custom_meta_get_structure.
Members
structure
(GstStructure *)
–
GstStructure containing custom metadata.
Since : 1.20
Gst.CustomMeta
Extra custom metadata. The structure field is the same as returned by Gst.CustomMeta.prototype.get_structure.
Members
structure
(Gst.Structure)
–
Gst.Structure containing custom metadata.
Since : 1.20
Gst.CustomMeta
Extra custom metadata. The structure field is the same as returned by Gst.CustomMeta.get_structure.
Members
structure
(Gst.Structure)
–
Gst.Structure containing custom metadata.
Since : 1.20
Methods
gst_custom_meta_get_structure
GstStructure * gst_custom_meta_get_structure (GstCustomMeta * meta)
Retrieve the GstStructure backing a custom meta, the structure's mutability is conditioned to the writability of the GstBuffer meta is attached to.
Parameters:
meta
–
the GstStructure backing meta
Since : 1.20
Gst.CustomMeta.prototype.get_structure
function Gst.CustomMeta.prototype.get_structure(): {
// javascript wrapper for 'gst_custom_meta_get_structure'
}
Retrieve the Gst.Structure backing a custom meta, the structure's mutability is conditioned to the writability of the Gst.Buffer meta is attached to.
Parameters:
the Gst.Structure backing meta
Since : 1.20
Gst.CustomMeta.get_structure
def Gst.CustomMeta.get_structure (self):
#python wrapper for 'gst_custom_meta_get_structure'
Retrieve the Gst.Structure backing a custom meta, the structure's mutability is conditioned to the writability of the Gst.Buffer meta is attached to.
Parameters:
the Gst.Structure backing meta
Since : 1.20
gst_custom_meta_has_name
gboolean gst_custom_meta_has_name (GstCustomMeta * meta, const gchar * name)
Checks whether the name of the custom meta is name
Parameters:
meta
–
name
–
Whether name is the name of the custom meta
Since : 1.20
Gst.CustomMeta.prototype.has_name
function Gst.CustomMeta.prototype.has_name(name: String): {
// javascript wrapper for 'gst_custom_meta_has_name'
}
Checks whether the name of the custom meta is name
Parameters:
Whether name is the name of the custom meta
Since : 1.20
Gst.CustomMeta.has_name
def Gst.CustomMeta.has_name (self, name):
#python wrapper for 'gst_custom_meta_has_name'
Checks whether the name of the custom meta is name
Whether name is the name of the custom meta
Since : 1.20
GstMeta
Base structure for metadata. Custom metadata will put this structure as the first member of their structure.
Members
flags
(GstMetaFlags)
–
extra flags for the metadata
info
(const GstMetaInfo *)
–
pointer to the GstMetaInfo
Gst.Meta
Base structure for metadata. Custom metadata will put this structure as the first member of their structure.
Members
flags
(Gst.MetaFlags)
–
extra flags for the metadata
info
(Gst.MetaInfo)
–
pointer to the Gst.MetaInfo
Gst.Meta
Base structure for metadata. Custom metadata will put this structure as the first member of their structure.
Members
flags
(Gst.MetaFlags)
–
extra flags for the metadata
info
(Gst.MetaInfo)
–
pointer to the Gst.MetaInfo
Methods
gst_meta_compare_seqnum
gint gst_meta_compare_seqnum (const GstMeta * meta1, const GstMeta * meta2)
Meta sequence number compare function. Can be used as GCompareFunc or a GCompareDataFunc.
a negative number if meta1 comes before meta2, 0 if both metas have an equal sequence number, or a positive integer if meta1 comes after meta2.
Since : 1.16
Gst.Meta.prototype.compare_seqnum
function Gst.Meta.prototype.compare_seqnum(meta2: Gst.Meta): {
// javascript wrapper for 'gst_meta_compare_seqnum'
}
Meta sequence number compare function. Can be used as GLib.CompareFunc or a GLib.CompareDataFunc.
a negative number if meta1 comes before meta2, 0 if both metas have an equal sequence number, or a positive integer if meta1 comes after meta2.
Since : 1.16
Gst.Meta.compare_seqnum
def Gst.Meta.compare_seqnum (self, meta2):
#python wrapper for 'gst_meta_compare_seqnum'
Meta sequence number compare function. Can be used as GLib.CompareFunc or a GLib.CompareDataFunc.
a negative number if meta1 comes before meta2, 0 if both metas have an equal sequence number, or a positive integer if meta1 comes after meta2.
Since : 1.16
gst_meta_get_seqnum
guint64 gst_meta_get_seqnum (const GstMeta * meta)
Gets seqnum for this meta.
Parameters:
meta
–
a GstMeta
Since : 1.16
Gst.Meta.prototype.get_seqnum
function Gst.Meta.prototype.get_seqnum(): {
// javascript wrapper for 'gst_meta_get_seqnum'
}
Gets seqnum for this meta.
Since : 1.16
Functions
gst_meta_api_type_get_tags
const gchar*const ** gst_meta_api_type_get_tags (GType api)
Parameters:
api
–
an API
an array of tags as strings.
Since : 1.2
Gst.prototype.meta_api_type_get_tags
function Gst.prototype.meta_api_type_get_tags(api: GObject.Type): {
// javascript wrapper for 'gst_meta_api_type_get_tags'
}
Parameters:
an API
an array of tags as strings.
Since : 1.2
Gst.meta_api_type_get_tags
def Gst.meta_api_type_get_tags (api):
#python wrapper for 'gst_meta_api_type_get_tags'
Parameters:
an API
an array of tags as strings.
Since : 1.2
gst_meta_api_type_has_tag
gboolean gst_meta_api_type_has_tag (GType api, GQuark tag)
Check if api was registered with tag.
Parameters:
api
–
an API
tag
–
the tag to check
TRUE if api was registered with tag.
Gst.prototype.meta_api_type_has_tag
function Gst.prototype.meta_api_type_has_tag(api: GObject.Type, tag: GLib.Quark): {
// javascript wrapper for 'gst_meta_api_type_has_tag'
}
Check if api was registered with tag.
Gst.meta_api_type_has_tag
def Gst.meta_api_type_has_tag (api, tag):
#python wrapper for 'gst_meta_api_type_has_tag'
Check if api was registered with tag.
gst_meta_api_type_register
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.
Parameters:
api
–
an API to register
tags
(
[arrayzero-terminated=1])
–
tags for api
a unique GType for api.
Gst.prototype.meta_api_type_register
function Gst.prototype.meta_api_type_register(api: String, tags: [ String ]): {
// javascript wrapper for 'gst_meta_api_type_register'
}
Register and return a GType for the api and associate it with tags.
a unique GType for api.
Gst.meta_api_type_register
def Gst.meta_api_type_register (api, tags):
#python wrapper for 'gst_meta_api_type_register'
Register and return a GType for the api and associate it with tags.
a unique GType for api.
gst_meta_get_info
const GstMetaInfo * gst_meta_get_info (const gchar * impl)
Lookup a previously registered meta info structure by its implementation name impl.
Parameters:
impl
–
the name
a GstMetaInfo with impl, or NULL when no such metainfo exists.
Gst.prototype.meta_get_info
function Gst.prototype.meta_get_info(impl: String): {
// javascript wrapper for 'gst_meta_get_info'
}
Lookup a previously registered meta info structure by its implementation name impl.
Parameters:
the name
a Gst.MetaInfo with impl, or null when no such metainfo exists.
Gst.meta_get_info
def Gst.meta_get_info (impl):
#python wrapper for 'gst_meta_get_info'
Lookup a previously registered meta info structure by its implementation name impl.
Parameters:
the name
a Gst.MetaInfo with impl, or None when no such metainfo exists.
gst_meta_register
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.
Parameters:
api
–
the type of the GstMeta API
impl
–
the name of the GstMeta implementation
size
–
the size of the GstMeta structure
init_func
(
[scope async])
–
free_func
(
[scope async])
–
transform_func
(
[scope async])
–
a GstMetaInfo that can be used to access metadata.
Gst.prototype.meta_register
function Gst.prototype.meta_register(api: GObject.Type, impl: String, size: Number, init_func: Gst.MetaInitFunction, free_func: Gst.MetaFreeFunction, transform_func: Gst.MetaTransformFunction): {
// javascript wrapper for 'gst_meta_register'
}
Register a new Gst.Meta implementation.
The same info can be retrieved later with Gst.prototype.meta_get_info by using impl as the key.
a Gst.MetaInfo that can be used to access metadata.
Gst.meta_register
def Gst.meta_register (api, impl, size, init_func, free_func, transform_func):
#python wrapper for 'gst_meta_register'
Register a new Gst.Meta implementation.
The same info can be retrieved later with Gst.meta_get_info by using impl as the key.
a Gst.MetaInfo that can be used to access metadata.
gst_meta_register_custom
const GstMetaInfo * gst_meta_register_custom (const gchar * name, const gchar ** tags, GstCustomMetaTransformFunction transform_func, gpointer user_data, GDestroyNotify destroy_data)
Register a new custom GstMeta implementation, backed by an opaque structure holding a GstStructure.
The registered info can be retrieved later with gst_meta_get_info by using name as the key.
The backing GstStructure can be retrieved with gst_custom_meta_get_structure, its mutability is conditioned by the writability of the buffer the meta is attached to.
When transform_func is NULL, the meta and its backing GstStructure will always be copied when the transform operation is copy, other operations are discarded, copy regions are ignored.
Parameters:
name
–
the name of the GstMeta implementation
tags
(
[arrayzero-terminated=1])
–
tags for api
transform_func
(
[scope notified][nullable])
–
user_data
(
[closure])
–
user data passed to transform_func
destroy_data
–
GDestroyNotify for user_data
a GstMetaInfo that can be used to access metadata.
Since : 1.20
Gst.prototype.meta_register_custom
function Gst.prototype.meta_register_custom(name: String, tags: [ String ], transform_func: Gst.CustomMetaTransformFunction, user_data: Object): {
// javascript wrapper for 'gst_meta_register_custom'
}
Register a new custom Gst.Meta implementation, backed by an opaque structure holding a Gst.Structure.
The registered info can be retrieved later with Gst.prototype.meta_get_info by using name as the key.
The backing Gst.Structure can be retrieved with Gst.CustomMeta.prototype.get_structure, its mutability is conditioned by the writability of the buffer the meta is attached to.
When transform_func is null, the meta and its backing Gst.Structure will always be copied when the transform operation is copy, other operations are discarded, copy regions are ignored.
Parameters:
tags for api
user data passed to transform_func
a Gst.MetaInfo that can be used to access metadata.
Since : 1.20
Gst.meta_register_custom
def Gst.meta_register_custom (name, tags, transform_func, *user_data):
#python wrapper for 'gst_meta_register_custom'
Register a new custom Gst.Meta implementation, backed by an opaque structure holding a Gst.Structure.
The registered info can be retrieved later with Gst.meta_get_info by using name as the key.
The backing Gst.Structure can be retrieved with Gst.CustomMeta.get_structure, its mutability is conditioned by the writability of the buffer the meta is attached to.
When transform_func is None, the meta and its backing Gst.Structure will always be copied when the transform operation is copy, other operations are discarded, copy regions are ignored.
Parameters:
tags for api
user data passed to transform_func
a Gst.MetaInfo that can be used to access metadata.
Since : 1.20
gst_meta_register_custom_simple
const GstMetaInfo * gst_meta_register_custom_simple (const gchar * name)
Simplified version of gst_meta_register_custom, with no tags and no transform function.
Parameters:
name
–
the name of the GstMeta implementation
a GstMetaInfo that can be used to access metadata.
Since : 1.24
Gst.prototype.meta_register_custom_simple
function Gst.prototype.meta_register_custom_simple(name: String): {
// javascript wrapper for 'gst_meta_register_custom_simple'
}
Simplified version of Gst.prototype.meta_register_custom, with no tags and no transform function.
a Gst.MetaInfo that can be used to access metadata.
Since : 1.24
Gst.meta_register_custom_simple
def Gst.meta_register_custom_simple (name):
#python wrapper for 'gst_meta_register_custom_simple'
Simplified version of Gst.meta_register_custom, with no tags and no transform function.
a Gst.MetaInfo that can be used to access metadata.
Since : 1.24
GstMetaInfo
The GstMetaInfo provides information about a specific metadata structure.
Members
api
(GType)
–
tag identifying the metadata structure and api
type
(GType)
–
type identifying the implementor of the api
size
(gsize)
–
size of the metadata
init_func
(GstMetaInitFunction)
–
function for initializing the metadata
free_func
(GstMetaFreeFunction)
–
function for freeing the metadata
transform_func
(GstMetaTransformFunction)
–
function for transforming the metadata
Gst.MetaInfo
The Gst.MetaInfo provides information about a specific metadata structure.
Members
api
(GObject.Type)
–
tag identifying the metadata structure and api
type
(GObject.Type)
–
type identifying the implementor of the api
size
(Number)
–
size of the metadata
init_func
(Gst.MetaInitFunction)
–
function for initializing the metadata
free_func
(Gst.MetaFreeFunction)
–
function for freeing the metadata
transform_func
(Gst.MetaTransformFunction)
–
function for transforming the metadata
Gst.MetaInfo
The Gst.MetaInfo provides information about a specific metadata structure.
Members
api
(GObject.Type)
–
tag identifying the metadata structure and api
type
(GObject.Type)
–
type identifying the implementor of the api
size
(int)
–
size of the metadata
init_func
(Gst.MetaInitFunction)
–
function for initializing the metadata
free_func
(Gst.MetaFreeFunction)
–
function for freeing the metadata
transform_func
(Gst.MetaTransformFunction)
–
function for transforming the metadata
Methods
gst_meta_info_is_custom
gboolean gst_meta_info_is_custom (const GstMetaInfo * info)
Parameters:
info
–
whether info was registered as a GstCustomMeta with gst_meta_register_custom
Since : 1.20
Gst.MetaInfo.prototype.is_custom
function Gst.MetaInfo.prototype.is_custom(): {
// javascript wrapper for 'gst_meta_info_is_custom'
}
Parameters:
whether info was registered as a Gst.CustomMeta with Gst.prototype.meta_register_custom
Since : 1.20
Gst.MetaInfo.is_custom
def Gst.MetaInfo.is_custom (self):
#python wrapper for 'gst_meta_info_is_custom'
Parameters:
whether info was registered as a Gst.CustomMeta with Gst.meta_register_custom
Since : 1.20
Gst.MetaTransformCopy
Extra data passed to a "gst-copy" transform Gst.MetaTransformFunction.
Members
Function Macros
GST_META_CAST
#define GST_META_CAST(meta) ((GstMeta *)(meta))
GST_META_FLAGS
#define GST_META_FLAGS(meta) (GST_META_CAST (meta)->flags)
A flags word containing GstMetaFlags flags set on meta
Parameters:
meta
–
a GstMeta.
GST_META_FLAG_IS_SET
#define GST_META_FLAG_IS_SET(meta,flag) !!(GST_META_FLAGS (meta) & (flag))
Gives the status of a specific flag on a metadata.
GST_META_FLAG_SET
#define GST_META_FLAG_SET(meta,flag) (GST_META_FLAGS (meta) |= (flag))
Sets a metadata flag on a metadata.
GST_META_FLAG_UNSET
#define GST_META_FLAG_UNSET(meta,flag) (GST_META_FLAGS (meta) &= ~(flag))
Clears a metadata flag.
GST_META_TRANSFORM_IS_COPY
#define GST_META_TRANSFORM_IS_COPY(type) ((type) == _gst_meta_transform_copy)
Check if the transform type is a copy transform
Parameters:
type
–
a transform type
Enumerations
GstMetaFlags
Extra metadata flags.
Members
GST_META_FLAG_NONE
(0)
–
no flags
GST_META_FLAG_READONLY
(1)
–
metadata should not be modified
GST_META_FLAG_POOLED
(2)
–
metadata is managed by a bufferpool
GST_META_FLAG_LOCKED
(4)
–
metadata should not be removed
GST_META_FLAG_LAST
(65536)
–
additional flags can be added starting from this flag.
Gst.MetaFlags
Extra metadata flags.
Members
Gst.MetaFlags.NONE
(0)
–
no flags
Gst.MetaFlags.READONLY
(1)
–
metadata should not be modified
Gst.MetaFlags.POOLED
(2)
–
metadata is managed by a bufferpool
Gst.MetaFlags.LOCKED
(4)
–
metadata should not be removed
Gst.MetaFlags.LAST
(65536)
–
additional flags can be added starting from this flag.
Gst.MetaFlags
Extra metadata flags.
Members
Gst.MetaFlags.NONE
(0)
–
no flags
Gst.MetaFlags.READONLY
(1)
–
metadata should not be modified
Gst.MetaFlags.POOLED
(2)
–
metadata is managed by a bufferpool
Gst.MetaFlags.LOCKED
(4)
–
metadata should not be removed
Gst.MetaFlags.LAST
(65536)
–
additional flags can be added starting from this flag.
Constants
GST_META_TAG_MEMORY
#define GST_META_TAG_MEMORY (_gst_meta_tag_memory)
Metadata tagged with this tag depends on the particular memory or buffer that it is on.
deprecated : The GQuarks are not exported by any public API, use GST_META_TAG_MEMORY_STR instead.
GST_META_TAG_MEMORY_REFERENCE_STR
#define GST_META_TAG_MEMORY_REFERENCE_STR "memory-reference"
This metadata stays relevant until a deep copy is made.
Since : 1.20.4
Gst.META_TAG_MEMORY_REFERENCE_STR
This metadata stays relevant until a deep copy is made.
Since : 1.20.4
Gst.META_TAG_MEMORY_REFERENCE_STR
This metadata stays relevant until a deep copy is made.
Since : 1.20.4
GST_META_TAG_MEMORY_STR
#define GST_META_TAG_MEMORY_STR "memory"
This metadata stays relevant as long as memory layout is unchanged. In hindsight, this tag should have been called "memory-layout".
Since : 1.2
Gst.META_TAG_MEMORY_STR
This metadata stays relevant as long as memory layout is unchanged. In hindsight, this tag should have been called "memory-layout".
Since : 1.2
Gst.META_TAG_MEMORY_STR
This metadata stays relevant as long as memory layout is unchanged. In hindsight, this tag should have been called "memory-layout".
Since : 1.2
Callbacks
GstCustomMetaTransformFunction
gboolean (*GstCustomMetaTransformFunction) (GstBuffer * transbuf, GstCustomMeta * meta, GstBuffer * buffer, GQuark type, gpointer data, gpointer user_data)
Function called for each meta in buffer as a result of performing a transformation that yields 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.
Parameters:
transbuf
–
meta
–
buffer
–
type
–
the transform type
data
–
transform specific data.
user_data
–
user data passed when registering the meta
TRUE if the transform could be performed
Since : 1.20
Gst.CustomMetaTransformFunction
function Gst.CustomMetaTransformFunction(transbuf: Gst.Buffer, meta: Gst.CustomMeta, buffer: Gst.Buffer, type: GLib.Quark, data: Object, user_data: Object): {
// javascript wrapper for 'GstCustomMetaTransformFunction'
}
Function called for each meta in buffer as a result of performing a transformation that yields 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.
Parameters:
the transform type
transform specific data.
user data passed when registering the meta
Since : 1.20
Gst.CustomMetaTransformFunction
def Gst.CustomMetaTransformFunction (transbuf, meta, buffer, type, data, *user_data):
#python wrapper for 'GstCustomMetaTransformFunction'
Function called for each meta in buffer as a result of performing a transformation that yields 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.
Parameters:
the transform type
transform specific data.
user data passed when registering the meta
Since : 1.20
GstMetaFreeFunction
(*GstMetaFreeFunction) (GstMeta * meta, GstBuffer * buffer)
Function called when meta is freed in buffer.
Gst.MetaFreeFunction
function Gst.MetaFreeFunction(meta: Gst.Meta, buffer: Gst.Buffer): {
// javascript wrapper for 'GstMetaFreeFunction'
}
Function called when meta is freed in buffer.
Gst.MetaFreeFunction
def Gst.MetaFreeFunction (meta, buffer):
#python wrapper for 'GstMetaFreeFunction'
Function called when meta is freed in buffer.
GstMetaInitFunction
gboolean (*GstMetaInitFunction) (GstMeta * meta, gpointer params, GstBuffer * buffer)
Function called when meta is initialized in buffer.
Gst.MetaInitFunction
function Gst.MetaInitFunction(meta: Gst.Meta, params: Object, buffer: Gst.Buffer): {
// javascript wrapper for 'GstMetaInitFunction'
}
Function called when meta is initialized in buffer.
Parameters:
parameters passed to the init function
Gst.MetaInitFunction
def Gst.MetaInitFunction (meta, params, buffer):
#python wrapper for 'GstMetaInitFunction'
Function called when meta is initialized in buffer.
Parameters:
parameters passed to the init function
GstMetaTransformFunction
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.
Parameters:
transbuf
–
meta
–
a GstMeta
buffer
–
type
–
the transform type
data
–
transform specific data.
TRUE if the transform could be performed
Gst.MetaTransformFunction
function Gst.MetaTransformFunction(transbuf: Gst.Buffer, meta: Gst.Meta, buffer: Gst.Buffer, type: GLib.Quark, data: Object): {
// javascript wrapper for 'GstMetaTransformFunction'
}
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.
Parameters:
the transform type
transform specific data.
Gst.MetaTransformFunction
def Gst.MetaTransformFunction (transbuf, meta, buffer, type, data):
#python wrapper for 'GstMetaTransformFunction'
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.
Parameters:
the transform type
transform specific data.
The results of the search are