GStreamer Application Development Manual | ||
---|---|---|
<<< Previous | Next >>> |
You can link the different pads of elements together so that the elements form a chain.
By linking these three elements, we have created a very simple chain. The effect of this will be that the output of the source element (element1) will be used as input for the filter element (element2). The filter element will do something with the data and send the result to the final sink element (element3).
Imagine the above graph as a simple MPEG audio decoder. The source element is a disk source, the filter element is the MPEG decoder and the sink element is your audiocard. We will use this simple graph to construct an MPEG player later in this manual.
You can link two pads with:
GstPad *srcpad, *sinkpad; srcpad = gst_element_get_pad (element1, "src"); sinpad = gst_element_get_pad (element2, "sink"); // link them gst_pad_link (srcpad, sinkpad); .... // and unlink them gst_pad_unlink (srcpad, sinkpad); |
A convenient shortcut for the above code is done with the gst_element_link_pads () function:
// link them gst_element_link_pads (element1, "src", element2, "sink"); .... // and unlink them gst_element_unlink_pads (element1, "src", element2, "sink"); |
An even more convenient shortcut for single-source, single-sink elements is the gst_element_link () function:
// link them gst_element_link (element1, element2); .... // and unlink them gst_element_unlink (element1, element2); |
If you have more than one element to link, the gst_element_link_many () function takes a NULL-terminated list of elements:
// link them gst_element_link_many (element1, element2, element3, element4, NULL); .... // and unlink them gst_element_unlink_many (element1, element2, element3, element4, NULL); |
You can query if a pad is linked with GST_PAD_IS_LINKED (pad).
To query for the GstPad
a pad is linked to, use
gst_pad_get_peer (pad).
<<< Previous | Home | Next >>> |
Capabilities of a GstPad | Up | Making filtered links |