CapsFeatures

Added in version 1.2.

class CapsFeatures(*args, **kwargs)

CapsFeatures can optionally be set on a Caps to add requirements for additional features for a specific Structure. Caps structures with the same name but with a non-equal set of caps features are not compatible. If a pad supports multiple sets of features it has to add multiple equal structures with different feature sets to the caps.

Empty CapsFeatures are equivalent with the CapsFeatures that only contain GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY. ANY CapsFeatures as created by new_any() are equal to any other CapsFeatures and can be used to specify that any CapsFeatures would be supported, e.g. for elements that don’t touch buffer memory. Caps with ANY CapsFeatures are considered non-fixed and during negotiation some CapsFeatures have to be selected.

Examples for caps features would be the requirement of a specific Memory types or the requirement of having a specific Meta on the buffer. Features are given as a string of the format memory:GstMemoryTypeName or meta:GstMetaAPIName.

Constructors

class CapsFeatures
classmethod new_any() CapsFeatures

Creates a new, ANY CapsFeatures. This will be equal to any other CapsFeatures but caps with these are unfixed.

Added in version 1.2.

classmethod new_empty() CapsFeatures

Creates a new, empty CapsFeatures.

Added in version 1.2.

classmethod new_single(feature: str) CapsFeatures

Creates a new CapsFeatures with a single feature.

Added in version 1.20.

Parameters:

feature – The feature

Methods

class CapsFeatures
add(feature: str) None

Adds feature to features.

Added in version 1.2.

Parameters:

feature – a feature.

add_id(feature: int) None

Adds feature to features.

Added in version 1.2.

Parameters:

feature – a feature.

contains(feature: str) bool

Checks if features contains feature.

Added in version 1.2.

Parameters:

feature – a feature

contains_id(feature: int) bool

Checks if features contains feature.

Added in version 1.2.

Parameters:

feature – a feature

free() None

Frees a CapsFeatures and all its values. The caps features must not have a parent when this function is called.

Added in version 1.2.

from_string(features: str) CapsFeatures | None

Creates a CapsFeatures from a string representation.

Added in version 1.2.

Parameters:

features – a string representation of a CapsFeatures.

get_nth(i: int) str | None

Returns the i-th feature of features.

Added in version 1.2.

Parameters:

i – index of the feature

get_nth_id(i: int) int

Returns the i-th feature of features.

Added in version 1.2.

Parameters:

i – index of the feature

get_size() int

Returns the number of features in features.

Added in version 1.2.

is_any() bool

Checks if features is %GST_CAPS_FEATURES_ANY.

Added in version 1.2.

is_equal(features2: CapsFeatures) bool

Checks if features1 and features2 are equal.

Added in version 1.2.

Parameters:

features2 – a CapsFeatures.

remove(feature: str) None

Removes feature from features.

Added in version 1.2.

Parameters:

feature – a feature.

remove_id(feature: int) None

Removes feature from features.

Added in version 1.2.

Parameters:

feature – a feature.

set_parent_refcount(refcount: int) bool

Sets the parent_refcount field of CapsFeatures. This field is used to determine whether a caps features is mutable or not. This function should only be called by code implementing parent objects of CapsFeatures, as described in the MT refcounting design document.

Added in version 1.2.

Parameters:

refcount – a pointer to the parent’s refcount

to_string() str

Converts features to a human-readable string representation.

For debugging purposes its easier to do something like this:

GST_LOG ("features is %" GST_PTR_FORMAT, features);

This prints the features in human readable form.

Added in version 1.2.