Initialize Tizen 2.3
[framework/multimedia/gstreamer0.10.git] / mobile / docs / gst / html / GstBin.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5 <title>GstBin</title>
6 <meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
7 <link rel="home" href="index.html" title="GStreamer 0.10 Core Reference Manual">
8 <link rel="up" href="libgstreamer.html" title="GStreamer Core Library">
9 <link rel="prev" href="gstreamer-GstAtomicQueue.html" title="GstAtomicQueue">
10 <link rel="next" href="gstreamer-GstBuffer.html" title="GstBuffer">
11 <meta name="generator" content="GTK-Doc V1.18 (XML mode)">
12 <link rel="stylesheet" href="style.css" type="text/css">
13 </head>
14 <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
15 <table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
16 <tr valign="middle">
17 <td><a accesskey="p" href="gstreamer-GstAtomicQueue.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
18 <td><a accesskey="u" href="libgstreamer.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
19 <td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
20 <th width="100%" align="center">GStreamer 0.10 Core Reference Manual</th>
21 <td><a accesskey="n" href="gstreamer-GstBuffer.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
22 </tr>
23 <tr><td colspan="5" class="shortcuts">
24 <a href="#GstBin.synopsis" class="shortcut">Top</a>
25                    | 
26                   <a href="#GstBin.description" class="shortcut">Description</a>
27                    | 
28                   <a href="#GstBin.object-hierarchy" class="shortcut">Object Hierarchy</a>
29                    | 
30                   <a href="#GstBin.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
31                    | 
32                   <a href="#GstBin.properties" class="shortcut">Properties</a>
33                    | 
34                   <a href="#GstBin.signals" class="shortcut">Signals</a>
35 </td></tr>
36 </table>
37 <div class="refentry">
38 <a name="GstBin"></a><div class="titlepage"></div>
39 <div class="refnamediv"><table width="100%"><tr>
40 <td valign="top">
41 <h2><span class="refentrytitle"><a name="GstBin.top_of_page"></a>GstBin</span></h2>
42 <p>GstBin — Base class and element that can contain other elements</p>
43 </td>
44 <td valign="top" align="right"></td>
45 </tr></table></div>
46 <div class="refsynopsisdiv">
47 <a name="GstBin.synopsis"></a><h2>Synopsis</h2>
48 <pre class="synopsis">
49 #include &lt;gst/gst.h&gt;
50
51 struct              <a class="link" href="GstBin.html#GstBin-struct" title="struct GstBin">GstBin</a>;
52 struct              <a class="link" href="GstBin.html#GstBinClass" title="struct GstBinClass">GstBinClass</a>;
53 <a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *        <a class="link" href="GstBin.html#gst-bin-new" title="gst_bin_new ()">gst_bin_new</a>                         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
54 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()">gst_bin_add</a>                         (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
55                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
56 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBin.html#gst-bin-remove" title="gst_bin_remove ()">gst_bin_remove</a>                      (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
57                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);
58 <a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *        <a class="link" href="GstBin.html#gst-bin-get-by-name" title="gst_bin_get_by_name ()">gst_bin_get_by_name</a>                 (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
59                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
60 <a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *        <a class="link" href="GstBin.html#gst-bin-get-by-name-recurse-up" title="gst_bin_get_by_name_recurse_up ()">gst_bin_get_by_name_recurse_up</a>      (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
61                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);
62 <a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *        <a class="link" href="GstBin.html#gst-bin-get-by-interface" title="gst_bin_get_by_interface ()">gst_bin_get_by_interface</a>            (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
63                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> iface</code></em>);
64 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstBin.html#gst-bin-iterate-elements" title="gst_bin_iterate_elements ()">gst_bin_iterate_elements</a>            (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);
65 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstBin.html#gst-bin-iterate-recurse" title="gst_bin_iterate_recurse ()">gst_bin_iterate_recurse</a>             (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);
66 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstBin.html#gst-bin-iterate-sinks" title="gst_bin_iterate_sinks ()">gst_bin_iterate_sinks</a>               (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);
67 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstBin.html#gst-bin-iterate-sorted" title="gst_bin_iterate_sorted ()">gst_bin_iterate_sorted</a>              (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);
68 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstBin.html#gst-bin-iterate-sources" title="gst_bin_iterate_sources ()">gst_bin_iterate_sources</a>             (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);
69 <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       <a class="link" href="GstBin.html#gst-bin-iterate-all-by-interface" title="gst_bin_iterate_all_by_interface ()">gst_bin_iterate_all_by_interface</a>    (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
70                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> iface</code></em>);
71 <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="GstBin.html#gst-bin-recalculate-latency" title="gst_bin_recalculate_latency ()">gst_bin_recalculate_latency</a>         (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);
72
73 <span class="returnvalue">void</span>                <a class="link" href="GstBin.html#gst-bin-add-many" title="gst_bin_add_many ()">gst_bin_add_many</a>                    (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
74                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_1</code></em>,
75                                                          <em class="parameter"><code>...</code></em>);
76 <span class="returnvalue">void</span>                <a class="link" href="GstBin.html#gst-bin-remove-many" title="gst_bin_remove_many ()">gst_bin_remove_many</a>                 (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
77                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_1</code></em>,
78                                                          <em class="parameter"><code>...</code></em>);
79 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstBin.html#gst-bin-find-unlinked-pad" title="gst_bin_find_unlinked_pad ()">gst_bin_find_unlinked_pad</a>           (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
80                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadDirection" title="enum GstPadDirection"><span class="type">GstPadDirection</span></a> direction</code></em>);
81 <a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            <a class="link" href="GstBin.html#gst-bin-find-unconnected-pad" title="gst_bin_find_unconnected_pad ()">gst_bin_find_unconnected_pad</a>        (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
82                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadDirection" title="enum GstPadDirection"><span class="type">GstPadDirection</span></a> direction</code></em>);
83
84 enum                <a class="link" href="GstBin.html#GstBinFlags" title="enum GstBinFlags">GstBinFlags</a>;
85 #define             <a class="link" href="GstBin.html#GST-BIN-CHILDREN:CAPS" title="GST_BIN_CHILDREN()">GST_BIN_CHILDREN</a>                    (bin)
86 #define             <a class="link" href="GstBin.html#GST-BIN-CHILDREN-COOKIE:CAPS" title="GST_BIN_CHILDREN_COOKIE()">GST_BIN_CHILDREN_COOKIE</a>             (bin)
87 #define             <a class="link" href="GstBin.html#GST-BIN-NUMCHILDREN:CAPS" title="GST_BIN_NUMCHILDREN()">GST_BIN_NUMCHILDREN</a>                 (bin)
88 </pre>
89 </div>
90 <div class="refsect1">
91 <a name="GstBin.object-hierarchy"></a><h2>Object Hierarchy</h2>
92 <pre class="synopsis">
93   <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
94    +----<a class="link" href="GstObject.html" title="GstObject">GstObject</a>
95          +----<a class="link" href="GstElement.html" title="GstElement">GstElement</a>
96                +----GstBin
97                      +----<a class="link" href="GstPipeline.html" title="GstPipeline">GstPipeline</a>
98 </pre>
99 </div>
100 <div class="refsect1">
101 <a name="GstBin.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
102 <p>
103 GstBin implements
104  <a class="link" href="GstChildProxy.html" title="GstChildProxy">GstChildProxy</a>.</p>
105 </div>
106 <div class="refsect1">
107 <a name="GstBin.properties"></a><h2>Properties</h2>
108 <pre class="synopsis">
109   "<a class="link" href="GstBin.html#GstBin--async-handling" title='The "async-handling" property'>async-handling</a>"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
110   "<a class="link" href="GstBin.html#GstBin--message-forward" title='The "message-forward" property'>message-forward</a>"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write
111 </pre>
112 </div>
113 <div class="refsect1">
114 <a name="GstBin.signals"></a><h2>Signals</h2>
115 <pre class="synopsis">
116   "<a class="link" href="GstBin.html#GstBin-do-latency" title='The "do-latency" signal'>do-latency</a>"                                     : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a>
117   "<a class="link" href="GstBin.html#GstBin-element-added" title='The "element-added" signal'>element-added</a>"                                  : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a>
118   "<a class="link" href="GstBin.html#GstBin-element-removed" title='The "element-removed" signal'>element-removed</a>"                                : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a>
119 </pre>
120 </div>
121 <div class="refsect1">
122 <a name="GstBin.description"></a><h2>Description</h2>
123 <p>
124 <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> is an element that can contain other <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, allowing them to be
125 managed as a group.
126 Pads from the child elements can be ghosted to the bin, see <a class="link" href="GstGhostPad.html" title="GstGhostPad"><span class="type">GstGhostPad</span></a>.
127 This makes the bin look like any other elements and enables creation of
128 higher-level abstraction elements.
129 </p>
130 <p>
131 A new <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> is created with <a class="link" href="GstBin.html#gst-bin-new" title="gst_bin_new ()"><code class="function">gst_bin_new()</code></a>. Use a <a class="link" href="GstPipeline.html" title="GstPipeline"><span class="type">GstPipeline</span></a> instead if you
132 want to create a toplevel bin because a normal bin doesn't have a bus or
133 handle clock distribution of its own.
134 </p>
135 <p>
136 After the bin has been created you will typically add elements to it with
137 <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a>. You can remove elements with <a class="link" href="GstBin.html#gst-bin-remove" title="gst_bin_remove ()"><code class="function">gst_bin_remove()</code></a>.
138 </p>
139 <p>
140 An element can be retrieved from a bin with <a class="link" href="GstBin.html#gst-bin-get-by-name" title="gst_bin_get_by_name ()"><code class="function">gst_bin_get_by_name()</code></a>, using the
141 elements name. <a class="link" href="GstBin.html#gst-bin-get-by-name-recurse-up" title="gst_bin_get_by_name_recurse_up ()"><code class="function">gst_bin_get_by_name_recurse_up()</code></a> is mainly used for internal
142 purposes and will query the parent bins when the element is not found in the
143 current bin.
144 </p>
145 <p>
146 An iterator of elements in a bin can be retrieved with
147 <a class="link" href="GstBin.html#gst-bin-iterate-elements" title="gst_bin_iterate_elements ()"><code class="function">gst_bin_iterate_elements()</code></a>. Various other iterators exist to retrieve the
148 elements in a bin.
149 </p>
150 <p>
151 <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> is used to drop your reference to the bin.
152 </p>
153 <p>
154 The <a class="link" href="GstBin.html#GstBin-element-added" title='The "element-added" signal'><span class="type">"element-added"</span></a> signal is fired whenever a new element is added to
155 the bin. Likewise the <a class="link" href="GstBin.html#GstBin-element-removed" title='The "element-removed" signal'><span class="type">"element-removed"</span></a> signal is fired whenever an
156 element is removed from the bin.
157 </p>
158 <p>
159 </p>
160 <div class="refsect2">
161 <a name="idp5904576"></a><h3>Notes</h3>
162 <p>
163 A <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> internally intercepts every <a class="link" href="gstreamer-GstMessage.html#GstMessage" title="struct GstMessage"><span class="type">GstMessage</span></a> posted by its children and
164 implements the following default behaviour for each of them:
165 </p>
166 <div class="variablelist"><table border="0">
167 <col align="left" valign="top">
168 <tbody>
169 <tr>
170 <td><p><span class="term">GST_MESSAGE_EOS</span></p></td>
171 <td><p>This message is only posted by sinks in the PLAYING
172     state. If all sinks posted the EOS message, this bin will post and EOS
173     message upwards.</p></td>
174 </tr>
175 <tr>
176 <td><p><span class="term">GST_MESSAGE_SEGMENT_START</span></p></td>
177 <td><p>just collected and never forwarded upwards.
178     The messages are used to decide when all elements have completed playback
179     of their segment.</p></td>
180 </tr>
181 <tr>
182 <td><p><span class="term">GST_MESSAGE_SEGMENT_DONE</span></p></td>
183 <td><p> Is posted by <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> when all elements that posted
184     a SEGMENT_START have posted a SEGMENT_DONE.</p></td>
185 </tr>
186 <tr>
187 <td><p><span class="term">GST_MESSAGE_DURATION</span></p></td>
188 <td><p> Is posted by an element that detected a change
189     in the stream duration. The default bin behaviour is to clear any
190     cached duration values so that the next duration query will perform
191     a full duration recalculation. The duration change is posted to the
192     application so that it can refetch the new duration with a duration
193     query. Note that these messages can be posted before the bin is
194     prerolled, in which case the duration query might fail.
195     </p></td>
196 </tr>
197 <tr>
198 <td><p><span class="term">GST_MESSAGE_CLOCK_LOST</span></p></td>
199 <td><p> This message is posted by an element when it
200     can no longer provide a clock. The default bin behaviour is to
201     check if the lost clock was the one provided by the bin. If so and
202     the bin is currently in the PLAYING state, the message is forwarded to
203     the bin parent.
204     This message is also generated when a clock provider is removed from
205     the bin. If this message is received by the application, it should
206     PAUSE the pipeline and set it back to PLAYING to force a new clock
207     distribution.
208     </p></td>
209 </tr>
210 <tr>
211 <td><p><span class="term">GST_MESSAGE_CLOCK_PROVIDE</span></p></td>
212 <td><p> This message is generated when an element
213     can provide a clock. This mostly happens when a new clock
214     provider is added to the bin. The default behaviour of the bin is to
215     mark the currently selected clock as dirty, which will perform a clock
216     recalculation the next time the bin is asked to provide a clock.
217     This message is never sent tot the application but is forwarded to
218     the parent of the bin.
219     </p></td>
220 </tr>
221 <tr>
222 <td><p><span class="term">OTHERS</span></p></td>
223 <td><p> posted upwards.</p></td>
224 </tr>
225 </tbody>
226 </table></div>
227 <p>
228 </p>
229 <p>
230 A <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> implements the following default behaviour for answering to a
231 <a class="link" href="gstreamer-GstQuery.html#GstQuery" title="struct GstQuery"><span class="type">GstQuery</span></a>:
232 </p>
233 <div class="variablelist"><table border="0">
234 <col align="left" valign="top">
235 <tbody>
236 <tr>
237 <td><p><span class="term">GST_QUERY_DURATION</span></p></td>
238 <td><p>If the query has been asked before with the same format
239     and the bin is a toplevel bin (ie. has no parent),
240     use the cached previous value. If no previous value was cached, the
241     query is sent to all sink elements in the bin and the MAXIMUM of all
242     values is returned. If the bin is a toplevel bin the value is cached.
243     If no sinks are available in the bin, the query fails.
244     </p></td>
245 </tr>
246 <tr>
247 <td><p><span class="term">GST_QUERY_POSITION</span></p></td>
248 <td><p>The query is sent to all sink elements in the bin and the
249     MAXIMUM of all values is returned. If no sinks are available in the bin,
250     the query fails.
251     </p></td>
252 </tr>
253 <tr>
254 <td><p><span class="term">OTHERS</span></p></td>
255 <td><p>the query is forwarded to all sink elements, the result
256     of the first sink that answers the query successfully is returned. If no
257     sink is in the bin, the query fails.</p></td>
258 </tr>
259 </tbody>
260 </table></div>
261 <p>
262 </p>
263 <p>
264 A <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> will by default forward any event sent to it to all sink elements.
265 If all the sinks return TRUE, the bin will also return TRUE, else FALSE is
266 returned. If no sinks are in the bin, the event handler will return TRUE.
267 </p>
268 <p>
269 </p>
270 </div>
271 <p>
272 </p>
273 <p>
274 Last reviewed on 2006-04-28 (0.10.6)
275 </p>
276 </div>
277 <div class="refsect1">
278 <a name="GstBin.details"></a><h2>Details</h2>
279 <div class="refsect2">
280 <a name="GstBin-struct"></a><h3>struct GstBin</h3>
281 <pre class="programlisting">struct GstBin {
282   /* our children, subclass are supposed to update these
283    * fields to reflect their state with _iterate_*() */
284   gint           numchildren;
285   GList         *children;
286   guint32        children_cookie;
287
288   GstBus        *child_bus;
289   GList         *messages;
290
291   gboolean       polling;
292   gboolean       state_dirty;
293
294   gboolean       clock_dirty;
295   GstClock *provided_clock;
296   GstElement    *clock_provider;
297 };
298 </pre>
299 <p>
300 The GstBin base class. Subclasses can access these fields provided
301 the LOCK is taken.
302 </p>
303 <div class="variablelist"><table border="0">
304 <col align="left" valign="top">
305 <tbody>
306 <tr>
307 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a> <em class="structfield"><code><a name="GstBin-struct.numchildren"></a>numchildren</code></em>;</span></p></td>
308 <td>the number of children in this bin</td>
309 </tr>
310 <tr>
311 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstBin-struct.children"></a>children</code></em>;</span></p></td>
312 <td>the list of children in this bin</td>
313 </tr>
314 <tr>
315 <td><p><span class="term"><span class="type">guint32</span> <em class="structfield"><code><a name="GstBin-struct.children-cookie"></a>children_cookie</code></em>;</span></p></td>
316 <td>updated whenever <em class="parameter"><code>children</code></em> changes</td>
317 </tr>
318 <tr>
319 <td><p><span class="term"><a class="link" href="GstBus.html" title="GstBus"><span class="type">GstBus</span></a> *<em class="structfield"><code><a name="GstBin-struct.child-bus"></a>child_bus</code></em>;</span></p></td>
320 <td>internal bus for handling child messages</td>
321 </tr>
322 <tr>
323 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Doubly-Linked-Lists.html#GList"><span class="type">GList</span></a> *<em class="structfield"><code><a name="GstBin-struct.messages"></a>messages</code></em>;</span></p></td>
324 <td>queued and cached messages</td>
325 </tr>
326 <tr>
327 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstBin-struct.polling"></a>polling</code></em>;</span></p></td>
328 <td>the bin is currently calculating its state</td>
329 </tr>
330 <tr>
331 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstBin-struct.state-dirty"></a>state_dirty</code></em>;</span></p></td>
332 <td>the bin needs to recalculate its state (deprecated)</td>
333 </tr>
334 <tr>
335 <td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a> <em class="structfield"><code><a name="GstBin-struct.clock-dirty"></a>clock_dirty</code></em>;</span></p></td>
336 <td>the bin needs to select a new clock</td>
337 </tr>
338 <tr>
339 <td><p><span class="term"><a class="link" href="GstClock.html" title="GstClock"><span class="type">GstClock</span></a> *<em class="structfield"><code><a name="GstBin-struct.provided-clock"></a>provided_clock</code></em>;</span></p></td>
340 <td>the last clock selected</td>
341 </tr>
342 <tr>
343 <td><p><span class="term"><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *<em class="structfield"><code><a name="GstBin-struct.clock-provider"></a>clock_provider</code></em>;</span></p></td>
344 <td>the element that provided <em class="parameter"><code>provided_clock</code></em>
345 </td>
346 </tr>
347 </tbody>
348 </table></div>
349 </div>
350 <hr>
351 <div class="refsect2">
352 <a name="GstBinClass"></a><h3>struct GstBinClass</h3>
353 <pre class="programlisting">struct GstBinClass {
354   GstElementClass parent_class;
355
356   /* virtual methods for subclasses */
357   gboolean (*add_element)              (GstBin *bin, GstElement *element);
358   gboolean (*remove_element) (GstBin *bin, GstElement *element);
359
360   void          (*handle_message) (GstBin *bin, GstMessage *message);
361 };
362 </pre>
363 <p>
364 Subclasses can override the <em class="parameter"><code>add_element</code></em> and <em class="parameter"><code>remove_element</code></em> to
365 update the list of children in the bin.
366 </p>
367 <p>
368 The <em class="parameter"><code>handle_message</code></em> method can be overridden to implement custom
369 message handling.  <em class="parameter"><code>handle_message</code></em> takes ownership of the message, just like
370 <a class="link" href="GstElement.html#gst-element-post-message" title="gst_element_post_message ()"><span class="type">gst_element_post_message</span></a>.
371 </p>
372 <div class="variablelist"><table border="0">
373 <col align="left" valign="top">
374 <tbody>
375 <tr>
376 <td><p><span class="term"><a class="link" href="GstElement.html#GstElementClass" title="struct GstElementClass"><span class="type">GstElementClass</span></a> <em class="structfield"><code><a name="GstBinClass.parent-class"></a>parent_class</code></em>;</span></p></td>
377 <td>bin parent class</td>
378 </tr>
379 <tr>
380 <td><p><span class="term"><em class="structfield"><code><a name="GstBinClass.add-element"></a>add_element</code></em> ()</span></p></td>
381 <td>method to add an element to a bin</td>
382 </tr>
383 <tr>
384 <td><p><span class="term"><em class="structfield"><code><a name="GstBinClass.remove-element"></a>remove_element</code></em> ()</span></p></td>
385 <td>method to remove an element from a bin</td>
386 </tr>
387 <tr>
388 <td><p><span class="term"><em class="structfield"><code><a name="GstBinClass.handle-message"></a>handle_message</code></em> ()</span></p></td>
389 <td>method to handle a message from the children</td>
390 </tr>
391 </tbody>
392 </table></div>
393 </div>
394 <hr>
395 <div class="refsect2">
396 <a name="gst-bin-new"></a><h3>gst_bin_new ()</h3>
397 <pre class="programlisting"><a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *        gst_bin_new                         (<em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
398 <p>
399 Creates a new bin with the given name.
400 </p>
401 <div class="variablelist"><table border="0">
402 <col align="left" valign="top">
403 <tbody>
404 <tr>
405 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
406 <td>the name of the new bin</td>
407 </tr>
408 <tr>
409 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
410 <td>a new <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
411 </td>
412 </tr>
413 </tbody>
414 </table></div>
415 </div>
416 <hr>
417 <div class="refsect2">
418 <a name="gst-bin-add"></a><h3>gst_bin_add ()</h3>
419 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_bin_add                         (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
420                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
421 <p>
422 Adds the given element to the bin.  Sets the element's parent, and thus
423 takes ownership of the element. An element can only be added to one bin.
424 </p>
425 <p>
426 If the element's pads are linked to other pads, the pads will be unlinked
427 before the element is added to the bin.
428 </p>
429 <p>
430 </p>
431 <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
432 <h3 class="title">Note</h3>
433 When you add an element to an already-running pipeline, you will have to
434 take care to set the state of the newly-added element to the desired
435 state (usually PLAYING or PAUSED, same you set the pipeline to originally)
436 with <a class="link" href="GstElement.html#gst-element-set-state" title="gst_element_set_state ()"><code class="function">gst_element_set_state()</code></a>, or use <a class="link" href="GstElement.html#gst-element-sync-state-with-parent" title="gst_element_sync_state_with_parent ()"><code class="function">gst_element_sync_state_with_parent()</code></a>.
437 The bin or pipeline will not take care of this for you.
438 </div>
439 <p>
440 </p>
441 <p>
442 MT safe.
443 </p>
444 <div class="variablelist"><table border="0">
445 <col align="left" valign="top">
446 <tbody>
447 <tr>
448 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
449 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
450 </td>
451 </tr>
452 <tr>
453 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
454 <td>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to add. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
455 </td>
456 </tr>
457 <tr>
458 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
459 <td>TRUE if the element could be added, FALSE if
460 the bin does not want to accept the element.</td>
461 </tr>
462 </tbody>
463 </table></div>
464 </div>
465 <hr>
466 <div class="refsect2">
467 <a name="gst-bin-remove"></a><h3>gst_bin_remove ()</h3>
468 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_bin_remove                      (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
469                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element</code></em>);</pre>
470 <p>
471 Removes the element from the bin, unparenting it as well.
472 Unparenting the element means that the element will be dereferenced,
473 so if the bin holds the only reference to the element, the element
474 will be freed in the process of removing it from the bin.  If you
475 want the element to still exist after removing, you need to call
476 <a class="link" href="GstObject.html#gst-object-ref" title="gst_object_ref ()"><code class="function">gst_object_ref()</code></a> before removing it from the bin.
477 </p>
478 <p>
479 If the element's pads are linked to other pads, the pads will be unlinked
480 before the element is removed from the bin.
481 </p>
482 <p>
483 MT safe.
484 </p>
485 <div class="variablelist"><table border="0">
486 <col align="left" valign="top">
487 <tbody>
488 <tr>
489 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
490 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
491 </td>
492 </tr>
493 <tr>
494 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
495 <td>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to remove. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
496 </td>
497 </tr>
498 <tr>
499 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
500 <td>TRUE if the element could be removed, FALSE if
501 the bin does not want to remove the element.</td>
502 </tr>
503 </tbody>
504 </table></div>
505 </div>
506 <hr>
507 <div class="refsect2">
508 <a name="gst-bin-get-by-name"></a><h3>gst_bin_get_by_name ()</h3>
509 <pre class="programlisting"><a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *        gst_bin_get_by_name                 (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
510                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
511 <p>
512 Gets the element with the given name from a bin. This
513 function recurses into child bins.
514 </p>
515 <p>
516 Returns NULL if no element with the given name is found in the bin.
517 </p>
518 <p>
519 MT safe.  Caller owns returned reference.
520 </p>
521 <div class="variablelist"><table border="0">
522 <col align="left" valign="top">
523 <tbody>
524 <tr>
525 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
526 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
527 </td>
528 </tr>
529 <tr>
530 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
531 <td>the element name to search for</td>
532 </tr>
533 <tr>
534 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
535 <td>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> with the given name, or NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
536 </td>
537 </tr>
538 </tbody>
539 </table></div>
540 </div>
541 <hr>
542 <div class="refsect2">
543 <a name="gst-bin-get-by-name-recurse-up"></a><h3>gst_bin_get_by_name_recurse_up ()</h3>
544 <pre class="programlisting"><a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *        gst_bin_get_by_name_recurse_up      (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
545                                                          <em class="parameter"><code>const <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *name</code></em>);</pre>
546 <p>
547 Gets the element with the given name from this bin. If the
548 element is not found, a recursion is performed on the parent bin.
549 </p>
550 <p>
551 Returns NULL if:
552 </p>
553 <div class="itemizedlist"><ul class="itemizedlist" type="disc"><li class="listitem"><p>no element with the given name is found in the bin</p></li></ul></div>
554 <p>
555 </p>
556 <p>
557 MT safe.  Caller owns returned reference.
558 </p>
559 <div class="variablelist"><table border="0">
560 <col align="left" valign="top">
561 <tbody>
562 <tr>
563 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
564 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
565 </td>
566 </tr>
567 <tr>
568 <td><p><span class="term"><em class="parameter"><code>name</code></em> :</span></p></td>
569 <td>the element name to search for</td>
570 </tr>
571 <tr>
572 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
573 <td>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> with the given name, or NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
574 </td>
575 </tr>
576 </tbody>
577 </table></div>
578 </div>
579 <hr>
580 <div class="refsect2">
581 <a name="gst-bin-get-by-interface"></a><h3>gst_bin_get_by_interface ()</h3>
582 <pre class="programlisting"><a class="link" href="GstElement.html" title="GstElement"><span class="returnvalue">GstElement</span></a> *        gst_bin_get_by_interface            (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
583                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> iface</code></em>);</pre>
584 <p>
585 Looks for an element inside the bin that implements the given
586 interface. If such an element is found, it returns the element.
587 You can cast this element to the given interface afterwards.  If you want
588 all elements that implement the interface, use
589 <a class="link" href="GstBin.html#gst-bin-iterate-all-by-interface" title="gst_bin_iterate_all_by_interface ()"><code class="function">gst_bin_iterate_all_by_interface()</code></a>. This function recurses into child bins.
590 </p>
591 <p>
592 MT safe.  Caller owns returned reference.
593 </p>
594 <div class="variablelist"><table border="0">
595 <col align="left" valign="top">
596 <tbody>
597 <tr>
598 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
599 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
600 </td>
601 </tr>
602 <tr>
603 <td><p><span class="term"><em class="parameter"><code>iface</code></em> :</span></p></td>
604 <td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of an interface</td>
605 </tr>
606 <tr>
607 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
608 <td>A <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> inside the bin implementing the interface. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
609 </td>
610 </tr>
611 </tbody>
612 </table></div>
613 </div>
614 <hr>
615 <div class="refsect2">
616 <a name="gst-bin-iterate-elements"></a><h3>gst_bin_iterate_elements ()</h3>
617 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_bin_iterate_elements            (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
618 <p>
619 Gets an iterator for the elements in this bin.
620 </p>
621 <p>
622 Each element yielded by the iterator will have its refcount increased, so
623 unref after use.
624 </p>
625 <p>
626 MT safe.  Caller owns returned value.
627 </p>
628 <div class="variablelist"><table border="0">
629 <col align="left" valign="top">
630 <tbody>
631 <tr>
632 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
633 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
634 </td>
635 </tr>
636 <tr>
637 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
638 <td>a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, or NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
639 </td>
640 </tr>
641 </tbody>
642 </table></div>
643 </div>
644 <hr>
645 <div class="refsect2">
646 <a name="gst-bin-iterate-recurse"></a><h3>gst_bin_iterate_recurse ()</h3>
647 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_bin_iterate_recurse             (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
648 <p>
649 Gets an iterator for the elements in this bin.
650 This iterator recurses into GstBin children.
651 </p>
652 <p>
653 Each element yielded by the iterator will have its refcount increased, so
654 unref after use.
655 </p>
656 <p>
657 MT safe.  Caller owns returned value.
658 </p>
659 <div class="variablelist"><table border="0">
660 <col align="left" valign="top">
661 <tbody>
662 <tr>
663 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
664 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
665 </td>
666 </tr>
667 <tr>
668 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
669 <td>a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, or NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
670 </td>
671 </tr>
672 </tbody>
673 </table></div>
674 </div>
675 <hr>
676 <div class="refsect2">
677 <a name="gst-bin-iterate-sinks"></a><h3>gst_bin_iterate_sinks ()</h3>
678 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_bin_iterate_sinks               (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
679 <p>
680 Gets an iterator for all elements in the bin that have the
681 <a class="link" href="GstElement.html#GST-ELEMENT-IS-SINK:CAPS"><span class="type">GST_ELEMENT_IS_SINK</span></a> flag set.
682 </p>
683 <p>
684 Each element yielded by the iterator will have its refcount increased, so
685 unref after use.
686 </p>
687 <p>
688 MT safe.  Caller owns returned value.
689 </p>
690 <div class="variablelist"><table border="0">
691 <col align="left" valign="top">
692 <tbody>
693 <tr>
694 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
695 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
696 </td>
697 </tr>
698 <tr>
699 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
700 <td>a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, or NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
701 </td>
702 </tr>
703 </tbody>
704 </table></div>
705 </div>
706 <hr>
707 <div class="refsect2">
708 <a name="gst-bin-iterate-sorted"></a><h3>gst_bin_iterate_sorted ()</h3>
709 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_bin_iterate_sorted              (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
710 <p>
711 Gets an iterator for the elements in this bin in topologically
712 sorted order. This means that the elements are returned from
713 the most downstream elements (sinks) to the sources.
714 </p>
715 <p>
716 This function is used internally to perform the state changes
717 of the bin elements and for clock selection.
718 </p>
719 <p>
720 Each element yielded by the iterator will have its refcount increased, so
721 unref after use.
722 </p>
723 <p>
724 MT safe.  Caller owns returned value.
725 </p>
726 <div class="variablelist"><table border="0">
727 <col align="left" valign="top">
728 <tbody>
729 <tr>
730 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
731 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
732 </td>
733 </tr>
734 <tr>
735 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
736 <td>a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, or NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
737 </td>
738 </tr>
739 </tbody>
740 </table></div>
741 </div>
742 <hr>
743 <div class="refsect2">
744 <a name="gst-bin-iterate-sources"></a><h3>gst_bin_iterate_sources ()</h3>
745 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_bin_iterate_sources             (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
746 <p>
747 Gets an iterator for all elements in the bin that have the
748 <a class="link" href="GstElement.html#GST-ELEMENT-IS-SOURCE:CAPS"><span class="type">GST_ELEMENT_IS_SOURCE</span></a> flag set.
749 </p>
750 <p>
751 Each element yielded by the iterator will have its refcount increased, so
752 unref after use.
753 </p>
754 <p>
755 MT safe.  Caller owns returned value.
756 </p>
757 <div class="variablelist"><table border="0">
758 <col align="left" valign="top">
759 <tbody>
760 <tr>
761 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
762 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
763 </td>
764 </tr>
765 <tr>
766 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
767 <td>a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a>, or NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
768 </td>
769 </tr>
770 </tbody>
771 </table></div>
772 </div>
773 <hr>
774 <div class="refsect2">
775 <a name="gst-bin-iterate-all-by-interface"></a><h3>gst_bin_iterate_all_by_interface ()</h3>
776 <pre class="programlisting"><a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="returnvalue">GstIterator</span></a> *       gst_bin_iterate_all_by_interface    (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
777                                                          <em class="parameter"><code><a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> iface</code></em>);</pre>
778 <p>
779 Looks for all elements inside the bin that implements the given
780 interface. You can safely cast all returned elements to the given interface.
781 The function recurses inside child bins. The iterator will yield a series
782 of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> that should be unreffed after use.
783 </p>
784 <p>
785 Each element yielded by the iterator will have its refcount increased, so
786 unref after use.
787 </p>
788 <p>
789 MT safe.  Caller owns returned value.
790 </p>
791 <div class="variablelist"><table border="0">
792 <col align="left" valign="top">
793 <tbody>
794 <tr>
795 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
796 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
797 </td>
798 </tr>
799 <tr>
800 <td><p><span class="term"><em class="parameter"><code>iface</code></em> :</span></p></td>
801 <td>the <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Type-Information.html#GType"><span class="type">GType</span></a> of an interface</td>
802 </tr>
803 <tr>
804 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
805 <td>a <a class="link" href="gstreamer-GstIterator.html#GstIterator" title="struct GstIterator"><span class="type">GstIterator</span></a> of <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> for all elements
806 in the bin implementing the given interface, or NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
807 </td>
808 </tr>
809 </tbody>
810 </table></div>
811 </div>
812 <hr>
813 <div class="refsect2">
814 <a name="gst-bin-recalculate-latency"></a><h3>gst_bin_recalculate_latency ()</h3>
815 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_bin_recalculate_latency         (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>);</pre>
816 <p>
817 Query <em class="parameter"><code>bin</code></em> for the current latency using and reconfigures this latency to all the
818 elements with a LATENCY event.
819 </p>
820 <p>
821 This method is typically called on the pipeline when a <a class="link" href="gstreamer-GstMessage.html#GST-MESSAGE-LATENCY:CAPS"><span class="type">GST_MESSAGE_LATENCY</span></a>
822 is posted on the bus.
823 </p>
824 <p>
825 This function simply emits the 'do-latency' signal so any custom latency
826 calculations will be performed.
827 </p>
828 <div class="variablelist"><table border="0">
829 <col align="left" valign="top">
830 <tbody>
831 <tr>
832 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
833 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
834 </td>
835 </tr>
836 <tr>
837 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
838 <td>
839 <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><code class="literal">TRUE</code></a> if the latency could be queried and reconfigured.</td>
840 </tr>
841 </tbody>
842 </table></div>
843 <p class="since">Since 0.10.22.</p>
844 </div>
845 <hr>
846 <div class="refsect2">
847 <a name="gst-bin-add-many"></a><h3>gst_bin_add_many ()</h3>
848 <pre class="programlisting"><span class="returnvalue">void</span>                gst_bin_add_many                    (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
849                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_1</code></em>,
850                                                          <em class="parameter"><code>...</code></em>);</pre>
851 <p>
852 Adds a NULL-terminated list of elements to a bin.  This function is
853 equivalent to calling <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> for each member of the list. The return
854 value of each <a class="link" href="GstBin.html#gst-bin-add" title="gst_bin_add ()"><code class="function">gst_bin_add()</code></a> is ignored.
855 </p>
856 <div class="variablelist"><table border="0">
857 <col align="left" valign="top">
858 <tbody>
859 <tr>
860 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
861 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
862 </td>
863 </tr>
864 <tr>
865 <td><p><span class="term"><em class="parameter"><code>element_1</code></em> :</span></p></td>
866 <td>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> element to add to the bin. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
867 </td>
868 </tr>
869 <tr>
870 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
871 <td>additional elements to add to the bin. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
872 </td>
873 </tr>
874 </tbody>
875 </table></div>
876 </div>
877 <hr>
878 <div class="refsect2">
879 <a name="gst-bin-remove-many"></a><h3>gst_bin_remove_many ()</h3>
880 <pre class="programlisting"><span class="returnvalue">void</span>                gst_bin_remove_many                 (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
881                                                          <em class="parameter"><code><a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element_1</code></em>,
882                                                          <em class="parameter"><code>...</code></em>);</pre>
883 <p>
884 Remove a list of elements from a bin. This function is equivalent
885 to calling <a class="link" href="GstBin.html#gst-bin-remove" title="gst_bin_remove ()"><code class="function">gst_bin_remove()</code></a> with each member of the list.
886 </p>
887 <div class="variablelist"><table border="0">
888 <col align="left" valign="top">
889 <tbody>
890 <tr>
891 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
892 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
893 </td>
894 </tr>
895 <tr>
896 <td><p><span class="term"><em class="parameter"><code>element_1</code></em> :</span></p></td>
897 <td>the first <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> to remove from the bin. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
898 </td>
899 </tr>
900 <tr>
901 <td><p><span class="term"><em class="parameter"><code>...</code></em> :</span></p></td>
902 <td>NULL-terminated list of elements to remove from the bin. <span class="annotation">[<acronym title="Don't free data after the code is done."><span class="acronym">transfer none</span></acronym>]</span>
903 </td>
904 </tr>
905 </tbody>
906 </table></div>
907 </div>
908 <hr>
909 <div class="refsect2">
910 <a name="gst-bin-find-unlinked-pad"></a><h3>gst_bin_find_unlinked_pad ()</h3>
911 <pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            gst_bin_find_unlinked_pad           (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
912                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadDirection" title="enum GstPadDirection"><span class="type">GstPadDirection</span></a> direction</code></em>);</pre>
913 <p>
914 Recursively looks for elements with an unlinked pad of the given
915 direction within the specified bin and returns an unlinked pad
916 if one is found, or NULL otherwise. If a pad is found, the caller
917 owns a reference to it and should use <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> on the
918 pad when it is not needed any longer.
919 </p>
920 <div class="variablelist"><table border="0">
921 <col align="left" valign="top">
922 <tbody>
923 <tr>
924 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
925 <td>bin in which to look for elements with unlinked pads</td>
926 </tr>
927 <tr>
928 <td><p><span class="term"><em class="parameter"><code>direction</code></em> :</span></p></td>
929 <td>whether to look for an unlinked source or sink pad</td>
930 </tr>
931 <tr>
932 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
933 <td>unlinked pad of the given direction, or NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
934 </td>
935 </tr>
936 </tbody>
937 </table></div>
938 <p class="since">Since 0.10.20</p>
939 </div>
940 <hr>
941 <div class="refsect2">
942 <a name="gst-bin-find-unconnected-pad"></a><h3>gst_bin_find_unconnected_pad ()</h3>
943 <pre class="programlisting"><a class="link" href="GstPad.html" title="GstPad"><span class="returnvalue">GstPad</span></a> *            gst_bin_find_unconnected_pad        (<em class="parameter"><code><a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a> *bin</code></em>,
944                                                          <em class="parameter"><code><a class="link" href="GstPad.html#GstPadDirection" title="enum GstPadDirection"><span class="type">GstPadDirection</span></a> direction</code></em>);</pre>
945 <div class="warning" style="margin-left: 0.5in; margin-right: 0.5in;">
946 <h3 class="title">Warning</h3>
947 <p><code class="literal">gst_bin_find_unconnected_pad</code> is deprecated and should not be used in newly-written code. use <a class="link" href="GstBin.html#gst-bin-find-unlinked-pad" title="gst_bin_find_unlinked_pad ()"><code class="function">gst_bin_find_unlinked_pad()</code></a> instead.</p>
948 </div>
949 <p>
950 Recursively looks for elements with an unlinked pad of the given
951 direction within the specified bin and returns an unlinked pad
952 if one is found, or NULL otherwise. If a pad is found, the caller
953 owns a reference to it and should use <a class="link" href="GstObject.html#gst-object-unref" title="gst_object_unref ()"><code class="function">gst_object_unref()</code></a> on the
954 pad when it is not needed any longer.
955 </p>
956 <div class="variablelist"><table border="0">
957 <col align="left" valign="top">
958 <tbody>
959 <tr>
960 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
961 <td>bin in which to look for elements with unlinked pads</td>
962 </tr>
963 <tr>
964 <td><p><span class="term"><em class="parameter"><code>direction</code></em> :</span></p></td>
965 <td>whether to look for an unlinked source or sink pad</td>
966 </tr>
967 <tr>
968 <td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
969 <td>unlinked pad of the given direction, or NULL. <span class="annotation">[<acronym title="Free data after the code is done."><span class="acronym">transfer full</span></acronym>]</span>
970 </td>
971 </tr>
972 </tbody>
973 </table></div>
974 <p class="since">Since 0.10.3</p>
975 </div>
976 <hr>
977 <div class="refsect2">
978 <a name="GstBinFlags"></a><h3>enum GstBinFlags</h3>
979 <pre class="programlisting">typedef enum {
980   /* padding */
981   GST_BIN_FLAG_LAST             = (GST_ELEMENT_FLAG_LAST &lt;&lt; 5)
982 } GstBinFlags;
983 </pre>
984 <p>
985 GstBinFlags are a set of flags specific to bins. Most are set/used
986 internally. They can be checked using the <a class="link" href="GstObject.html#GST-OBJECT-FLAG-IS-SET:CAPS" title="GST_OBJECT_FLAG_IS_SET()"><code class="function">GST_OBJECT_FLAG_IS_SET()</code></a> macro,
987 and (un)set using <a class="link" href="GstObject.html#GST-OBJECT-FLAG-SET:CAPS" title="GST_OBJECT_FLAG_SET()"><code class="function">GST_OBJECT_FLAG_SET()</code></a> and <a class="link" href="GstObject.html#GST-OBJECT-FLAG-UNSET:CAPS" title="GST_OBJECT_FLAG_UNSET()"><code class="function">GST_OBJECT_FLAG_UNSET()</code></a>.
988 </p>
989 <div class="variablelist"><table border="0">
990 <col align="left" valign="top">
991 <tbody><tr>
992 <td><p><a name="GST-BIN-FLAG-LAST:CAPS"></a><span class="term"><code class="literal">GST_BIN_FLAG_LAST</code></span></p></td>
993 <td>the last enum in the series of flags for bins.
994 Derived classes can use this as first value in a list of flags.
995 </td>
996 </tr></tbody>
997 </table></div>
998 </div>
999 <hr>
1000 <div class="refsect2">
1001 <a name="GST-BIN-CHILDREN:CAPS"></a><h3>GST_BIN_CHILDREN()</h3>
1002 <pre class="programlisting">#define GST_BIN_CHILDREN(bin)               (GST_BIN_CAST(bin)-&gt;children)
1003 </pre>
1004 <p>
1005 Gets the list with children in a bin.
1006 </p>
1007 <div class="variablelist"><table border="0">
1008 <col align="left" valign="top">
1009 <tbody><tr>
1010 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
1011 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
1012 </td>
1013 </tr></tbody>
1014 </table></div>
1015 </div>
1016 <hr>
1017 <div class="refsect2">
1018 <a name="GST-BIN-CHILDREN-COOKIE:CAPS"></a><h3>GST_BIN_CHILDREN_COOKIE()</h3>
1019 <pre class="programlisting">#define GST_BIN_CHILDREN_COOKIE(bin) (GST_BIN_CAST(bin)-&gt;children_cookie)
1020 </pre>
1021 <p>
1022 Gets the children cookie that watches the children list.
1023 </p>
1024 <div class="variablelist"><table border="0">
1025 <col align="left" valign="top">
1026 <tbody><tr>
1027 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
1028 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
1029 </td>
1030 </tr></tbody>
1031 </table></div>
1032 </div>
1033 <hr>
1034 <div class="refsect2">
1035 <a name="GST-BIN-NUMCHILDREN:CAPS"></a><h3>GST_BIN_NUMCHILDREN()</h3>
1036 <pre class="programlisting">#define GST_BIN_NUMCHILDREN(bin) (GST_BIN_CAST(bin)-&gt;numchildren)
1037 </pre>
1038 <p>
1039 Gets the number of children in a bin.
1040 </p>
1041 <div class="variablelist"><table border="0">
1042 <col align="left" valign="top">
1043 <tbody><tr>
1044 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
1045 <td>a <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
1046 </td>
1047 </tr></tbody>
1048 </table></div>
1049 </div>
1050 </div>
1051 <div class="refsect1">
1052 <a name="GstBin.property-details"></a><h2>Property Details</h2>
1053 <div class="refsect2">
1054 <a name="GstBin--async-handling"></a><h3>The <code class="literal">"async-handling"</code> property</h3>
1055 <pre class="programlisting">  "async-handling"           <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
1056 <p>
1057 If set to <a href="http://library.gnome.org/devel/glib/unstable/glib-Standard-Macros.html#TRUE:CAPS"><span class="type">TRUE</span></a>, the bin will handle asynchronous state changes.
1058 This should be used only if the bin subclass is modifying the state
1059 of its children on its own.
1060 </p>
1061 <p>Default value: FALSE</p>
1062 <p class="since">Since 0.10.13</p>
1063 </div>
1064 <hr>
1065 <div class="refsect2">
1066 <a name="GstBin--message-forward"></a><h3>The <code class="literal">"message-forward"</code> property</h3>
1067 <pre class="programlisting">  "message-forward"          <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a>              : Read / Write</pre>
1068 <p>
1069 Forward all children messages, even those that would normally be filtered by
1070 the bin. This can be interesting when one wants to be notified of the EOS
1071 state of individual elements, for example.
1072 </p>
1073 <p>
1074 The messages are converted to an ELEMENT message with the bin as the
1075 source. The structure of the message is named 'GstBinForwarded' and contains
1076 a field named 'message' of type GST_TYPE_MESSAGE that contains the original
1077 forwarded message.
1078 </p>
1079 <p>Default value: FALSE</p>
1080 <p class="since">Since 0.10.31</p>
1081 </div>
1082 </div>
1083 <div class="refsect1">
1084 <a name="GstBin.signal-details"></a><h2>Signal Details</h2>
1085 <div class="refsect2">
1086 <a name="GstBin-do-latency"></a><h3>The <code class="literal">"do-latency"</code> signal</h3>
1087 <pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            user_function                      (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>  *bin,
1088                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-LAST:CAPS"><code class="literal">Run Last</code></a></pre>
1089 <p>
1090 Will be emitted when the bin needs to perform latency calculations. This
1091 signal is only emited for toplevel bins or when async-handling is
1092 enabled.
1093 </p>
1094 <p>
1095 Only one signal handler is invoked. If no signals are connected, the
1096 default handler is invoked, which will query and distribute the lowest
1097 possible latency to all sinks.
1098 </p>
1099 <p>
1100 Connect to this signal if the default latency calculations are not
1101 sufficient, like when you need different latencies for different sinks in
1102 the same pipeline.
1103 </p>
1104 <div class="variablelist"><table border="0">
1105 <col align="left" valign="top">
1106 <tbody>
1107 <tr>
1108 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
1109 <td>the <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
1110 </td>
1111 </tr>
1112 <tr>
1113 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
1114 <td>user data set when the signal handler was connected.</td>
1115 </tr>
1116 </tbody>
1117 </table></div>
1118 <p class="since">Since 0.10.22</p>
1119 </div>
1120 <hr>
1121 <div class="refsect2">
1122 <a name="GstBin-element-added"></a><h3>The <code class="literal">"element-added"</code> signal</h3>
1123 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *bin,
1124                                                         <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element,
1125                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a></pre>
1126 <p>
1127 Will be emitted after the element was added to the bin.
1128 </p>
1129 <div class="variablelist"><table border="0">
1130 <col align="left" valign="top">
1131 <tbody>
1132 <tr>
1133 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
1134 <td>the <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
1135 </td>
1136 </tr>
1137 <tr>
1138 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1139 <td>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> that was added to the bin</td>
1140 </tr>
1141 <tr>
1142 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
1143 <td>user data set when the signal handler was connected.</td>
1144 </tr>
1145 </tbody>
1146 </table></div>
1147 </div>
1148 <hr>
1149 <div class="refsect2">
1150 <a name="GstBin-element-removed"></a><h3>The <code class="literal">"element-removed"</code> signal</h3>
1151 <pre class="programlisting"><span class="returnvalue">void</span>                user_function                      (<a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>     *bin,
1152                                                         <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> *element,
1153                                                         <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>    user_data)      : <a href="http://library.gnome.org/devel/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS"><code class="literal">Run First</code></a></pre>
1154 <p>
1155 Will be emitted after the element was removed from the bin.
1156 </p>
1157 <div class="variablelist"><table border="0">
1158 <col align="left" valign="top">
1159 <tbody>
1160 <tr>
1161 <td><p><span class="term"><em class="parameter"><code>bin</code></em> :</span></p></td>
1162 <td>the <a class="link" href="GstBin.html" title="GstBin"><span class="type">GstBin</span></a>
1163 </td>
1164 </tr>
1165 <tr>
1166 <td><p><span class="term"><em class="parameter"><code>element</code></em> :</span></p></td>
1167 <td>the <a class="link" href="GstElement.html" title="GstElement"><span class="type">GstElement</span></a> that was removed from the bin</td>
1168 </tr>
1169 <tr>
1170 <td><p><span class="term"><em class="parameter"><code>user_data</code></em> :</span></p></td>
1171 <td>user data set when the signal handler was connected.</td>
1172 </tr>
1173 </tbody>
1174 </table></div>
1175 </div>
1176 </div>
1177 </div>
1178 <div class="footer">
1179 <hr>
1180           Generated by GTK-Doc V1.18</div>
1181 </body>
1182 </html>