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`.