GstCaps Capabilities of pads GstCaps is used to attach capabilities to a pad. Capabilities are made of a mime-type and a set of properties. GstCaps can be named and chained into a list, which is then a GstCaps on its own. GstCaps are created with gst_caps_new(), which takes a name, a mime type and a pointer to a #GstProps. A convenience macro with a cleaner syntax is available to create a caps with GST_CAPS_NEW(). The following example shows how to create a GstCaps. GstCaps *caps; caps = gst_caps_new ( "my_caps", /* capability name */ "audio/raw", /* mime type */ gst_props_new ( /* properties */ "format", GST_PROPS_STRING ("float"), "channels", GST_PROPS_INT (5), NULL)); The following code example is equivalent to the above example: GstCaps *caps; caps = GST_CAPS_NEW ( "my_caps", /* capability name */ "audio/raw", /* mime type */ "format", GST_PROPS_STRING ("float"), "channels", GST_PROPS_INT (5) ); GstCaps are refcounted with gst_caps_ref() and gst_caps_unref(). GstCaps can be chained with the gst_caps_append(), gst_caps_prepend() and gst_caps_chain() functions. Use gst_caps_get_by_name() to get a named caps structure from a chained list. To get the properties of a caps structure the functions gst_caps_get_boolean(), gst_caps_get_fourcc_int(), gst_caps_get_int(), gst_caps_get_string(), gst_caps_get_float(), which all take a property name as an argument. The properties of the caps structure can be modified with gst_caps_set, which takes a list of key value pairs in the #GstProps syntax as shown by this example: GstCaps *caps; .... gst_caps_set (caps, "format", GST_PROPS_STRING ("int"), NULL); gst_caps_set (caps, "channels", GST_PROPS_INT (20), NULL); before modifying a GstCaps, it is a good idea to make a copy if it first with gst_caps_copy_on_write(). This will copy the GstCaps if the refcount is >1. If you need a unique instance of a GstCaps you can use the convenient GST_CAPS_FACTORY() macro as shown below. GST_CAPS_FACTORY (my_caps, GST_CAPS_NEW ( "caps1", "audio/raw", "format", GST_PROPS_STRING ("float"), "channels", GST_PROPS_INT (5) ), GST_CAPS_NEW ( "caps2", "audio/raw", "format", GST_PROPS_STRING ("int"), "channels", GST_PROPS_INT (5) ) ) void some_function (void) { GstCaps *caps = GST_CAPS_GET (my_caps); ... } If you want to check if a link between source and destination caps is always possible, use gst_caps_is_always_compatible(), which returns a boolean. If you want to check if a link between source and destination caps might be possible, use gst_caps_intersect(), which returns an intersection of the capabilities. #GstProps, #GstPad The GType of the caps boxed type, for use in GValues. The gstcaps structure @type: @flags: @structs: @caps: @Returns: @caps: @Returns: @caps1: @caps2: @caps: @capstoadd: @Returns: @caps: @newcaps: @oldcaps: @caps1: @caps2: @Returns: @fromcaps: @tocaps: @caps: @Returns: @caps1: @caps2: @Returns: @caps: @parent: @Returns: @parent: @Returns: @caps1: @caps2: @Returns: