mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-26 19:51:11 +00:00
626cbdc8b2
Original commit message from CVS: cleanup of unused and forgoten sections fixed links from the manual and the pwg to the API docs added more notes to README
83 lines
2.3 KiB
XML
83 lines
2.3 KiB
XML
<chapter id="chapter-links-api">
|
|
<title>Linking elements</title>
|
|
<sect1 id="section-link-basic">
|
|
<title>Making simple links</title>
|
|
<para>
|
|
You can link two pads with:
|
|
</para>
|
|
<programlisting>
|
|
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);
|
|
|
|
</programlisting>
|
|
<para>
|
|
A convenient shortcut for the above code is done with the gst_element_link_pads ()
|
|
function:
|
|
</para>
|
|
<programlisting>
|
|
|
|
// link them
|
|
gst_element_link_pads (element1, "src", element2, "sink");
|
|
....
|
|
// and unlink them
|
|
gst_element_unlink_pads (element1, "src", element2, "sink");
|
|
|
|
</programlisting>
|
|
<para>
|
|
An even more convenient shortcut but only works for single-source, single-sink elements is the
|
|
gst_element_link () function:
|
|
</para>
|
|
<programlisting>
|
|
|
|
// link them
|
|
gst_element_link (element1, element2);
|
|
....
|
|
// and unlink them
|
|
gst_element_unlink (element1, element2);
|
|
|
|
</programlisting>
|
|
<para>
|
|
If you have more than one element to link, the gst_element_link_many () function takes
|
|
a NULL-terminated list of elements. Again this only works for single-source single-sink
|
|
elements:
|
|
</para>
|
|
<programlisting>
|
|
|
|
// link them
|
|
gst_element_link_many (element1, element2, element3, element4, NULL);
|
|
....
|
|
// and unlink them
|
|
gst_element_unlink_many (element1, element2, element3, element4, NULL);
|
|
|
|
</programlisting>
|
|
<para>
|
|
You can query if a pad is linked with
|
|
<function>GST_PAD_IS_LINKED (pad)</function>.
|
|
</para>
|
|
<para>
|
|
To query for the <ulink type="http"
|
|
url="../../gstreamer/html/GstPad.html"><classname>GstPad</classname></ulink>
|
|
a pad is linked to, use <function>gst_pad_get_peer (pad)</function>.
|
|
</para>
|
|
</sect1>
|
|
|
|
<sect1 id="section-link-filtered">
|
|
<title>Making filtered links</title>
|
|
<para>
|
|
You can also force a specific media type on the link by using
|
|
<function>gst_pad_link_filtered ()</function>
|
|
and <function>gst_element_link_filtered ()</function> with capabilities.
|
|
See <xref linkend="section-caps"/> for
|
|
an explanation of capabilities.
|
|
</para>
|
|
</sect1>
|
|
|
|
</chapter>
|