Top |
GstCapsFeatures can optionally be set on a GstCaps to add requirements for additional features for a specific GstStructure. 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 GstCapsFeatures are equivalent with the GstCapsFeatures that only
contain GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY. ANY GstCapsFeatures as
created by gst_caps_features_new_any()
are equal to any other GstCapsFeatures
and can be used to specify that any GstCapsFeatures would be supported, e.g.
for elements that don't touch buffer memory. GstCaps with ANY GstCapsFeatures
are considered non-fixed and during negotiation some GstCapsFeatures have
to be selected.
Examples for caps features would be the requirement of a specific GstMemory types or the requirement of having a specific GstMeta on the buffer. Features are given as a string of the format "memory:GstMemoryTypeName" or "meta:GstMetaAPIName".
GstCapsFeatures * gst_caps_features_new (const gchar *feature1
,...
);
Creates a new GstCapsFeatures with the given features.
The last argument must be NULL
.
Free-function: gst_caps_features_free
Since: 1.2
GstCapsFeatures *
gst_caps_features_new_empty (void
);
Creates a new, empty GstCapsFeatures.
Free-function: gst_caps_features_free
Since: 1.2
GstCapsFeatures *
gst_caps_features_new_any (void
);
Creates a new, ANY GstCapsFeatures. This will be equal to any other GstCapsFeatures but caps with these are unfixed.
Free-function: gst_caps_features_free
Since: 1.2
GstCapsFeatures * gst_caps_features_new_id (GQuark feature1
,...
);
Creates a new GstCapsFeatures with the given features. The last argument must be 0.
Free-function: gst_caps_features_free
Since: 1.2
GstCapsFeatures * gst_caps_features_new_id_valist (GQuark feature1
,va_list varargs
);
Creates a new GstCapsFeatures with the given features.
Free-function: gst_caps_features_free
Since: 1.2
GstCapsFeatures * gst_caps_features_new_valist (const gchar *feature1
,va_list varargs
);
Creates a new GstCapsFeatures with the given features.
Free-function: gst_caps_features_free
Since: 1.2
GstCapsFeatures *
gst_caps_features_copy (const GstCapsFeatures *features
);
Duplicates a GstCapsFeatures and all its values.
Free-function: gst_caps_features_free
Since: 1.2
void
gst_caps_features_free (GstCapsFeatures *features
);
Frees a GstCapsFeatures and all its values. The caps features must not have a parent when this function is called.
Since: 1.2
GstCapsFeatures *
gst_caps_features_from_string (const gchar *features
);
Creates a GstCapsFeatures from a string representation.
Free-function: gst_caps_features_free
a new GstCapsFeatures or
NULL
when the string could not be parsed. Free with
gst_caps_features_free()
after use.
[transfer full][nullable]
Since: 1.2
gchar *
gst_caps_features_to_string (const GstCapsFeatures *features
);
Converts features
to a human-readable string representation.
For debugging purposes its easier to do something like this:
1 |
GST_LOG ("features is %" GST_PTR_FORMAT, features); |
This prints the features in human readable form.
Free-function: g_free
Since: 1.2
gboolean gst_caps_features_set_parent_refcount (GstCapsFeatures *features
,gint *refcount
);
Sets the parent_refcount field of GstCapsFeatures. 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 GstCapsFeatures, as described in the MT Refcounting section of the design documents.
Since: 1.2
gboolean gst_caps_features_is_equal (const GstCapsFeatures *features1
,const GstCapsFeatures *features2
);
Check if features1
and features2
are equal.
Since: 1.2
gboolean
gst_caps_features_is_any (const GstCapsFeatures *features
);
Check if features
is GST_CAPS_FEATURES_ANY
.
Since: 1.2
gboolean gst_caps_features_contains (const GstCapsFeatures *features
,const gchar *feature
);
Check if features
contains feature
.
Since: 1.2
gboolean gst_caps_features_contains_id (const GstCapsFeatures *features
,GQuark feature
);
Check if features
contains feature
.
Since: 1.2
guint
gst_caps_features_get_size (const GstCapsFeatures *features
);
Returns the number of features in features
.
Since: 1.2
const gchar * gst_caps_features_get_nth (const GstCapsFeatures *features
,guint i
);
Returns the i
-th feature of features
.
Since: 1.2
GQuark gst_caps_features_get_nth_id (const GstCapsFeatures *features
,guint i
);
Returns the i
-th feature of features
.
Since: 1.2
void gst_caps_features_add (GstCapsFeatures *features
,const gchar *feature
);
Adds feature
to features
.
Since: 1.2
void gst_caps_features_add_id (GstCapsFeatures *features
,GQuark feature
);
Adds feature
to features
.
Since: 1.2
void gst_caps_features_remove (GstCapsFeatures *features
,const gchar *feature
);
Removes feature
from features
.
Since: 1.2
void gst_caps_features_remove_id (GstCapsFeatures *features
,GQuark feature
);
Removes feature
from features
.
Since: 1.2