Gst.Meta

Fields

Name

Type

Access

Description

flags

Gst.MetaFlags

r/w

extra flags for the metadata

info

Gst.MetaInfo

r/w

pointer to the Gst.MetaInfo

Methods

class

api_type_get_tags (api)

class

api_type_has_tag (api, tag)

class

api_type_register (api, tags)

class

deserialize (buffer, data, size)

class

get_info (impl)

class

register_custom (name, tags, transform_func, *user_data)

class

register_custom_simple (name)

compare_seqnum (meta2)

get_seqnum ()

serialize (data)

serialize_simple (data)

Details

class Gst.Meta

The Gst.Meta structure should be included as the first member of a Gst.Buffer 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 Gst.MetaInfo 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 Gst.Buffer for how the metadata can be added, retrieved and removed from buffers.

classmethod api_type_get_tags(api)[source]
Parameters:

api (GObject.GType) – an API

Returns:

an array of tags as strings.

Return type:

[str]

New in version 1.2.

classmethod api_type_has_tag(api, tag)[source]
Parameters:
Returns:

True if api was registered with tag.

Return type:

bool

Check if api was registered with tag.

classmethod api_type_register(api, tags)[source]
Parameters:
  • api (str) – an API to register

  • tags ([str]) – tags for api

Returns:

a unique GObject.GType for api.

Return type:

GObject.GType

Register and return a GObject.GType for the api and associate it with tags.

classmethod deserialize(buffer, data, size)[source]
Parameters:
Returns:

the metadata owned by buffer, or None.

consumed:

total size used by this meta, could be less than size

Return type:

(Gst.Meta or None, consumed: int)

Recreate a Gst.Meta from serialized data returned by Gst.Meta.serialize() and add it to buffer.

Note that the meta must have been previously registered by calling one of gst_*_meta_get_info () functions.

consumed is set to the number of bytes that can be skipped from data to find the next meta serialization, if any. In case of parsing error that does not allow to determine that size, consumed is set to 0.

New in version 1.24.

classmethod get_info(impl)[source]
Parameters:

impl (str) – the name

Returns:

a Gst.MetaInfo with impl, or None when no such metainfo exists.

Return type:

Gst.MetaInfo or None

Lookup a previously registered meta info structure by its implementation name impl.

classmethod register_custom(name, tags, transform_func, *user_data)[source]
Parameters:
Returns:

a Gst.MetaInfo that can be used to access metadata.

Return type:

Gst.MetaInfo

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.

New in version 1.20.

classmethod register_custom_simple(name)[source]
Parameters:

name (str) – the name of the Gst.Meta implementation

Returns:

a Gst.MetaInfo that can be used to access metadata.

Return type:

Gst.MetaInfo

Simplified version of Gst.Meta.register_custom(), with no tags and no transform function.

New in version 1.24.

compare_seqnum(meta2)[source]
Parameters:

meta2 (Gst.Meta) – a Gst.Meta

Returns:

a negative number if self comes before meta2, 0 if both metas have an equal sequence number, or a positive integer if self comes after meta2.

Return type:

int

Meta sequence number compare function. Can be used as GLib.CompareFunc or a GLib.CompareDataFunc.

New in version 1.16.

get_seqnum()[source]
Return type:

int

Gets seqnum for this meta.

New in version 1.16.

serialize(data)[source]
Parameters:

data (Gst.ByteArrayInterface) – Gst.ByteArrayInterface to append serialization data

Returns:

True on success, False otherwise.

Return type:

bool

Serialize self into a format that can be stored or transmitted and later deserialized by Gst.Meta.deserialize().

This is only supported for meta that implements Gst.MetaInfo.serialize_func, False is returned otherwise.

Upon failure, data->data pointer could have been reallocated, but data->len won’t be modified. This is intended to be able to append multiple metas into the same GLib.ByteArray.

Since serialization size is often the same for every buffer, caller may want to remember the size of previous data to preallocate the next.

New in version 1.24.

serialize_simple(data)[source]
Parameters:

data (bytes) – GLib.ByteArray to append serialization data

Returns:

True on success, False otherwise.

Return type:

bool

Same as Gst.Meta.serialize() but with a GLib.ByteArray instead of Gst.ByteArrayInterface.

New in version 1.24.