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
CAPS_FEATURE_MEMORY_SYSTEM_MEMORY. ANY
CapsFeatures as created by CapsFeatures.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`.