• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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>multiqueue: GStreamer Core Plugins 1.0 Plugins Reference Manual</title>
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
8<link rel="up" href="ch01.html" title="gstreamer Elements">
9<link rel="prev" href="gstreamer-plugins-input-selector.html" title="input-selector">
10<link rel="next" href="gstreamer-plugins-output-selector.html" title="output-selector">
11<meta name="generator" content="GTK-Doc V1.28 (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="5"><tr valign="middle">
16<td width="100%" align="left" class="shortcuts">
17<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span18                  <a href="#gstreamer-plugins-multiqueue.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span19                  <a href="#gstreamer-plugins-multiqueue.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span20                  <a href="#gstreamer-plugins-multiqueue.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span21                  <a href="#gstreamer-plugins-multiqueue.signals" class="shortcut">Signals</a></span>
22</td>
23<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
24<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
25<td><a accesskey="p" href="gstreamer-plugins-input-selector.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
26<td><a accesskey="n" href="gstreamer-plugins-output-selector.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
27</tr></table>
28<div class="refentry">
29<a name="gstreamer-plugins-multiqueue"></a><div class="titlepage"></div>
30<div class="refnamediv"><table width="100%"><tr>
31<td valign="top">
32<h2><span class="refentrytitle"><a name="gstreamer-plugins-multiqueue.top_of_page"></a>multiqueue</span></h2>
33<p>multiqueue</p>
34</td>
35<td class="gallery_image" valign="top" align="right"></td>
36</tr></table></div>
37<div class="refsect1">
38<a name="gstreamer-plugins-multiqueue.properties"></a><h2>Properties</h2>
39<div class="informaltable"><table class="informaltable" border="0">
40<colgroup>
41<col width="150px" class="properties_type">
42<col width="300px" class="properties_name">
43<col width="200px" class="properties_flags">
44</colgroup>
45<tbody>
46<tr>
47<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
48<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-buffers" title="The “extra-size-buffers” property">extra-size-buffers</a></td>
49<td class="property_flags">Read / Write</td>
50</tr>
51<tr>
52<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
53<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-bytes" title="The “extra-size-bytes” property">extra-size-bytes</a></td>
54<td class="property_flags">Read / Write</td>
55</tr>
56<tr>
57<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
58<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-time" title="The “extra-size-time” property">extra-size-time</a></td>
59<td class="property_flags">Read / Write</td>
60</tr>
61<tr>
62<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
63<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--high-percent" title="The “high-percent” property">high-percent</a></td>
64<td class="property_flags">Read / Write</td>
65</tr>
66<tr>
67<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
68<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--low-percent" title="The “low-percent” property">low-percent</a></td>
69<td class="property_flags">Read / Write</td>
70</tr>
71<tr>
72<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
73<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-buffers" title="The “max-size-buffers” property">max-size-buffers</a></td>
74<td class="property_flags">Read / Write</td>
75</tr>
76<tr>
77<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
78<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-bytes" title="The “max-size-bytes” property">max-size-bytes</a></td>
79<td class="property_flags">Read / Write</td>
80</tr>
81<tr>
82<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
83<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-time" title="The “max-size-time” property">max-size-time</a></td>
84<td class="property_flags">Read / Write</td>
85</tr>
86<tr>
87<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
88<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--sync-by-running-time" title="The “sync-by-running-time” property">sync-by-running-time</a></td>
89<td class="property_flags">Read / Write</td>
90</tr>
91<tr>
92<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
93<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--use-buffering" title="The “use-buffering” property">use-buffering</a></td>
94<td class="property_flags">Read / Write</td>
95</tr>
96<tr>
97<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
98<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--unlinked-cache-time" title="The “unlinked-cache-time” property">unlinked-cache-time</a></td>
99<td class="property_flags">Read / Write</td>
100</tr>
101<tr>
102<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
103<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--use-interleave" title="The “use-interleave” property">use-interleave</a></td>
104<td class="property_flags">Read / Write</td>
105</tr>
106<tr>
107<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
108<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--high-watermark" title="The “high-watermark” property">high-watermark</a></td>
109<td class="property_flags">Read / Write</td>
110</tr>
111<tr>
112<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></td>
113<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--low-watermark" title="The “low-watermark” property">low-watermark</a></td>
114<td class="property_flags">Read / Write</td>
115</tr>
116<tr>
117<td class="property_type"><a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
118<td class="property_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--min-interleave-time" title="The “min-interleave-time” property">min-interleave-time</a></td>
119<td class="property_flags">Read / Write</td>
120</tr>
121</tbody>
122</table></div>
123</div>
124<div class="refsect1">
125<a name="gstreamer-plugins-multiqueue.signals"></a><h2>Signals</h2>
126<div class="informaltable"><table class="informaltable" border="0">
127<colgroup>
128<col width="150px" class="signals_return">
129<col width="300px" class="signals_name">
130<col width="200px" class="signals_flags">
131</colgroup>
132<tbody>
133<tr>
134<td class="signal_type"><span class="returnvalue">void</span></td>
135<td class="signal_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue-overrun" title="The “overrun” signal">overrun</a></td>
136<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
137</tr>
138<tr>
139<td class="signal_type"><span class="returnvalue">void</span></td>
140<td class="signal_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue-underrun" title="The “underrun” signal">underrun</a></td>
141<td class="signal_flags"><a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
142</tr>
143</tbody>
144</table></div>
145</div>
146<a name="GstMultiQueue"></a><div class="refsect1">
147<a name="gstreamer-plugins-multiqueue.other"></a><h2>Types and Values</h2>
148<div class="informaltable"><table class="informaltable" width="100%" border="0">
149<colgroup>
150<col width="150px" class="name">
151<col class="description">
152</colgroup>
153<tbody><tr>
154<td class="datatype_keyword">struct</td>
155<td class="function_name"><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue-struct" title="struct GstMultiQueue">GstMultiQueue</a></td>
156</tr></tbody>
157</table></div>
158</div>
159<div class="refsect1">
160<a name="gstreamer-plugins-multiqueue.object-hierarchy"></a><h2>Object Hierarchy</h2>
161<pre class="screen">    <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
162    <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
163        <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstObject.html#GstObject-struct">GstObject</a>
164            <span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#GstElement-struct">GstElement</a>
165                <span class="lineart">╰──</span> GstMultiQueue
166</pre>
167</div>
168<div class="refsect1">
169<a name="gstreamer-plugins-multiqueue.description"></a><h2>Description</h2>
170<p>Multiqueue is similar to a normal <a class="link" href="gstreamer-plugins-queue.html#GstQueue"><span class="type">GstQueue</span></a> with the following additional
171features:</p>
172<p>1) Multiple streamhandling</p>
173<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>The element handles queueing data on more than one stream at once. To
174achieve such a feature it has request sink pads (sink<code class="literal">u</code>) and
175'sometimes' src pads (src<code class="literal">u</code>). When requesting a given sinkpad with <a href="/usr/share/gtk-doc/html/gstreamer-1.0/GstElement.html#gst-element-request-pad"><code class="function">gst_element_request_pad()</code></a>,
176the associated srcpad for that stream will be created.
177Example: requesting sink1 will generate src1.</p></li></ul></div>
178<p>2) Non-starvation on multiple stream</p>
179<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>If more than one stream is used with the element, the streams' queues
180will be dynamically grown (up to a limit), in order to ensure that no
181stream is risking data starvation. This guarantees that at any given
182time there are at least N bytes queued and available for each individual
183stream. If an EOS event comes through a srcpad, the associated queue will be
184considered as 'not-empty' in the queue-size-growing algorithm.</p></li></ul></div>
185<p>3) Non-linked srcpads graceful handling</p>
186<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>In order to better support dynamic switching between streams, the multiqueue
187(unlike the current GStreamer queue) continues to push buffers on non-linked
188pads rather than shutting down. In addition, to prevent a non-linked stream from very quickly consuming all
189available buffers and thus 'racing ahead' of the other streams, the element
190must ensure that buffers and inlined events for a non-linked stream are pushed
191in the same order as they were received, relative to the other streams
192controlled by the element. This means that a buffer cannot be pushed to a
193non-linked pad any sooner than buffers in any other stream which were received
194before it.</p></li></ul></div>
195<p>Data is queued until one of the limits specified by the
196<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-buffers" title="The “max-size-buffers” property"><span class="type">“max-size-buffers”</span></a>, <a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-bytes" title="The “max-size-bytes” property"><span class="type">“max-size-bytes”</span></a> and/or
197<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--max-size-time" title="The “max-size-time” property"><span class="type">“max-size-time”</span></a> properties has been reached. Any attempt to push
198more buffers into the queue will block the pushing thread until more space
199becomes available. <a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-buffers" title="The “extra-size-buffers” property"><span class="type">“extra-size-buffers”</span></a>,</p>
200<p><a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-bytes" title="The “extra-size-bytes” property"><span class="type">“extra-size-bytes”</span></a> and <a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--extra-size-time" title="The “extra-size-time” property"><span class="type">“extra-size-time”</span></a> are
201currently unused.</p>
202<p>The default queue size limits are 5 buffers, 10MB of data, or
203two second worth of data, whichever is reached first. Note that the number
204of buffers will dynamically grow depending on the fill level of
205other queues.</p>
206<p>The <a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue-underrun" title="The “underrun” signal"><span class="type">“underrun”</span></a> signal is emitted when all of the queues
207are empty. The <a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue-overrun" title="The “overrun” signal"><span class="type">“overrun”</span></a> signal is emitted when one of the
208queues is filled.
209Both signals are emitted from the context of the streaming thread.</p>
210<p>When using <a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue--sync-by-running-time" title="The “sync-by-running-time” property"><span class="type">“sync-by-running-time”</span></a> the unlinked streams will
211be throttled by the highest running-time of linked streams. This allows
212further relinking of those unlinked streams without them being in the
213future (i.e. to achieve gapless playback).
214When dealing with streams which have got different consumption requirements
215downstream (ex: video decoders which will consume more buffer (in time) than
216audio decoders), it is recommended to group streams of the same type
217by using the pad "group-id" property. This will further throttle streams
218in time within that group.</p>
219<div class="refsynopsisdiv">
220<h2>Synopsis</h2>
221<div class="refsect2">
222<a name="id-1.2.15.8.14.1"></a><h3>Element Information</h3>
223<div class="variablelist"><table border="0" class="variablelist">
224<colgroup>
225<col align="left" valign="top">
226<col>
227</colgroup>
228<tbody>
229<tr>
230<td><p><span class="term">plugin</span></p></td>
231<td>
232            <a class="link" href="gstreamer-plugins-plugin-coreelements.html#plugin-coreelements">coreelements</a>
233          </td>
234</tr>
235<tr>
236<td><p><span class="term">author</span></p></td>
237<td>Edward Hervey &lt;edward@fluendo.com&gt;</td>
238</tr>
239<tr>
240<td><p><span class="term">class</span></p></td>
241<td>Generic</td>
242</tr>
243</tbody>
244</table></div>
245</div>
246<hr>
247<div class="refsect2">
248<a name="id-1.2.15.8.14.2"></a><h3>Element Pads</h3>
249<div class="variablelist"><table border="0" class="variablelist">
250<colgroup>
251<col align="left" valign="top">
252<col>
253</colgroup>
254<tbody>
255<tr>
256<td><p><span class="term">name</span></p></td>
257<td>sink_%u</td>
258</tr>
259<tr>
260<td><p><span class="term">direction</span></p></td>
261<td>sink</td>
262</tr>
263<tr>
264<td><p><span class="term">presence</span></p></td>
265<td>request</td>
266</tr>
267<tr>
268<td><p><span class="term">details</span></p></td>
269<td>ANY</td>
270</tr>
271</tbody>
272</table></div>
273<div class="variablelist"><table border="0" class="variablelist">
274<colgroup>
275<col align="left" valign="top">
276<col>
277</colgroup>
278<tbody>
279<tr>
280<td><p><span class="term">name</span></p></td>
281<td>src_%u</td>
282</tr>
283<tr>
284<td><p><span class="term">direction</span></p></td>
285<td>source</td>
286</tr>
287<tr>
288<td><p><span class="term">presence</span></p></td>
289<td>sometimes</td>
290</tr>
291<tr>
292<td><p><span class="term">details</span></p></td>
293<td>ANY</td>
294</tr>
295</tbody>
296</table></div>
297</div>
298</div>
299</div>
300<div class="refsect1">
301<a name="gstreamer-plugins-multiqueue.functions_details"></a><h2>Functions</h2>
302<p></p>
303</div>
304<div class="refsect1">
305<a name="gstreamer-plugins-multiqueue.other_details"></a><h2>Types and Values</h2>
306<div class="refsect2">
307<a name="GstMultiQueue-struct"></a><h3>struct GstMultiQueue</h3>
308<pre class="programlisting">struct GstMultiQueue;</pre>
309<p>Opaque <a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue"><span class="type">GstMultiQueue</span></a> structure.</p>
310</div>
311</div>
312<div class="refsect1">
313<a name="gstreamer-plugins-multiqueue.property-details"></a><h2>Property Details</h2>
314<div class="refsect2">
315<a name="GstMultiQueue--extra-size-buffers"></a><h3>The <code class="literal">“extra-size-buffers”</code> property</h3>
316<pre class="programlisting">  “extra-size-buffers”       <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
317<p>Amount of buffers the queues can grow if one of them is empty (0=disable) (NOT IMPLEMENTED).</p>
318<p>Flags: Read / Write</p>
319<p>Default value: 5</p>
320</div>
321<hr>
322<div class="refsect2">
323<a name="GstMultiQueue--extra-size-bytes"></a><h3>The <code class="literal">“extra-size-bytes”</code> property</h3>
324<pre class="programlisting">  “extra-size-bytes”         <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
325<p>Amount of data the queues can grow if one of them is empty (bytes, 0=disable) (NOT IMPLEMENTED).</p>
326<p>Flags: Read / Write</p>
327<p>Default value: 10485760</p>
328</div>
329<hr>
330<div class="refsect2">
331<a name="GstMultiQueue--extra-size-time"></a><h3>The <code class="literal">“extra-size-time”</code> property</h3>
332<pre class="programlisting">  “extra-size-time”          <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
333<p>Amount of time the queues can grow if one of them is empty (in ns, 0=disable) (NOT IMPLEMENTED).</p>
334<p>Flags: Read / Write</p>
335<p>Default value: 3000000000</p>
336</div>
337<hr>
338<div class="refsect2">
339<a name="GstMultiQueue--high-percent"></a><h3>The <code class="literal">“high-percent”</code> property</h3>
340<pre class="programlisting">  “high-percent”             <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
341<p>High threshold percent for buffering to finish.</p>
342<p>Flags: Read / Write</p>
343<p>Allowed values: [0,100]</p>
344<p>Default value: 99</p>
345</div>
346<hr>
347<div class="refsect2">
348<a name="GstMultiQueue--low-percent"></a><h3>The <code class="literal">“low-percent”</code> property</h3>
349<pre class="programlisting">  “low-percent”              <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
350<p>Low threshold percent for buffering to start.</p>
351<p>Flags: Read / Write</p>
352<p>Allowed values: [0,100]</p>
353<p>Default value: 1</p>
354</div>
355<hr>
356<div class="refsect2">
357<a name="GstMultiQueue--max-size-buffers"></a><h3>The <code class="literal">“max-size-buffers”</code> property</h3>
358<pre class="programlisting">  “max-size-buffers”         <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
359<p>Max. number of buffers in the queue (0=disable).</p>
360<p>Flags: Read / Write</p>
361<p>Default value: 5</p>
362</div>
363<hr>
364<div class="refsect2">
365<a name="GstMultiQueue--max-size-bytes"></a><h3>The <code class="literal">“max-size-bytes”</code> property</h3>
366<pre class="programlisting">  “max-size-bytes”           <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
367<p>Max. amount of data in the queue (bytes, 0=disable).</p>
368<p>Flags: Read / Write</p>
369<p>Default value: 10485760</p>
370</div>
371<hr>
372<div class="refsect2">
373<a name="GstMultiQueue--max-size-time"></a><h3>The <code class="literal">“max-size-time”</code> property</h3>
374<pre class="programlisting">  “max-size-time”            <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
375<p>Max. amount of data in the queue (in ns, 0=disable).</p>
376<p>Flags: Read / Write</p>
377<p>Default value: 2000000000</p>
378</div>
379<hr>
380<div class="refsect2">
381<a name="GstMultiQueue--sync-by-running-time"></a><h3>The <code class="literal">“sync-by-running-time”</code> property</h3>
382<pre class="programlisting">  “sync-by-running-time”     <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
383<p>If enabled multiqueue will synchronize deactivated or not-linked streams
384to the activated and linked streams by taking the running time.
385Otherwise multiqueue will synchronize the deactivated or not-linked
386streams by keeping the order in which buffers and events arrived compared
387to active and linked streams.</p>
388<p>Flags: Read / Write</p>
389<p>Default value: FALSE</p>
390</div>
391<hr>
392<div class="refsect2">
393<a name="GstMultiQueue--use-buffering"></a><h3>The <code class="literal">“use-buffering”</code> property</h3>
394<pre class="programlisting">  “use-buffering”            <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
395<p>Enable the buffering option in multiqueue so that BUFFERING messages are
396emitted based on low-/high-percent thresholds.</p>
397<p>Flags: Read / Write</p>
398<p>Default value: FALSE</p>
399</div>
400<hr>
401<div class="refsect2">
402<a name="GstMultiQueue--unlinked-cache-time"></a><h3>The <code class="literal">“unlinked-cache-time”</code> property</h3>
403<pre class="programlisting">  “unlinked-cache-time”      <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
404<p>Extra buffering in time for unlinked streams (if 'sync-by-running-time').</p>
405<p>Flags: Read / Write</p>
406<p>Default value: 250000000</p>
407</div>
408<hr>
409<div class="refsect2">
410<a name="GstMultiQueue--use-interleave"></a><h3>The <code class="literal">“use-interleave”</code> property</h3>
411<pre class="programlisting">  “use-interleave”           <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
412<p>Adjust time limits based on input interleave.</p>
413<p>Flags: Read / Write</p>
414<p>Default value: FALSE</p>
415</div>
416<hr>
417<div class="refsect2">
418<a name="GstMultiQueue--high-watermark"></a><h3>The <code class="literal">“high-watermark”</code> property</h3>
419<pre class="programlisting">  “high-watermark”           <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
420<p>High threshold watermark for buffering to finish.</p>
421<p>Flags: Read / Write</p>
422<p>Allowed values: [0,1]</p>
423<p>Default value: 0.99</p>
424<p class="since">Since: 1.10</p>
425</div>
426<hr>
427<div class="refsect2">
428<a name="GstMultiQueue--low-watermark"></a><h3>The <code class="literal">“low-watermark”</code> property</h3>
429<pre class="programlisting">  “low-watermark”            <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gdouble"><span class="type">gdouble</span></a></pre>
430<p>Low threshold watermark for buffering to start.</p>
431<p>Flags: Read / Write</p>
432<p>Allowed values: [0,1]</p>
433<p>Default value: 0.01</p>
434<p class="since">Since: 1.10</p>
435</div>
436<hr>
437<div class="refsect2">
438<a name="GstMultiQueue--min-interleave-time"></a><h3>The <code class="literal">“min-interleave-time”</code> property</h3>
439<pre class="programlisting">  “min-interleave-time”      <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
440<p>Minimum extra buffering for deinterleaving (size of the queues) when use-interleave=true.</p>
441<p>Flags: Read / Write</p>
442<p>Default value: 250000000</p>
443</div>
444</div>
445<div class="refsect1">
446<a name="gstreamer-plugins-multiqueue.signal-details"></a><h2>Signal Details</h2>
447<div class="refsect2">
448<a name="GstMultiQueue-overrun"></a><h3>The <code class="literal">“overrun”</code> signal</h3>
449<pre class="programlisting"><span class="returnvalue">void</span>
450user_function (<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue"><span class="type">GstMultiQueue</span></a> *multiqueue,
451               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
452<p>Reports that one of the queues in the multiqueue is full (overrun).
453A queue is full if the total amount of data inside it (num-buffers, time,
454size) is higher than the boundary values which can be set through the
455GObject properties.</p>
456<p>This can be used as an indicator of pre-roll.</p>
457<div class="refsect3">
458<a name="GstMultiQueue-overrun.parameters"></a><h4>Parameters</h4>
459<div class="informaltable"><table class="informaltable" width="100%" border="0">
460<colgroup>
461<col width="150px" class="parameters_name">
462<col class="parameters_description">
463<col width="200px" class="parameters_annotations">
464</colgroup>
465<tbody>
466<tr>
467<td class="parameter_name"><p>multiqueue</p></td>
468<td class="parameter_description"><p>the multiqueue instance</p></td>
469<td class="parameter_annotations"> </td>
470</tr>
471<tr>
472<td class="parameter_name"><p>user_data</p></td>
473<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
474<td class="parameter_annotations"> </td>
475</tr>
476</tbody>
477</table></div>
478</div>
479<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
480</div>
481<hr>
482<div class="refsect2">
483<a name="GstMultiQueue-underrun"></a><h3>The <code class="literal">“underrun”</code> signal</h3>
484<pre class="programlisting"><span class="returnvalue">void</span>
485user_function (<a class="link" href="gstreamer-plugins-multiqueue.html#GstMultiQueue"><span class="type">GstMultiQueue</span></a> *multiqueue,
486               <a href="/usr/share/gtk-doc/html/glib/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a>       user_data)</pre>
487<p>This signal is emitted from the streaming thread when there is
488no data in any of the queues inside the multiqueue instance (underrun).</p>
489<p>This indicates either starvation or EOS from the upstream data sources.</p>
490<div class="refsect3">
491<a name="GstMultiQueue-underrun.parameters"></a><h4>Parameters</h4>
492<div class="informaltable"><table class="informaltable" width="100%" border="0">
493<colgroup>
494<col width="150px" class="parameters_name">
495<col class="parameters_description">
496<col width="200px" class="parameters_annotations">
497</colgroup>
498<tbody>
499<tr>
500<td class="parameter_name"><p>multiqueue</p></td>
501<td class="parameter_description"><p>the multiqueue instance</p></td>
502<td class="parameter_annotations"> </td>
503</tr>
504<tr>
505<td class="parameter_name"><p>user_data</p></td>
506<td class="parameter_description"><p>user data set when the signal handler was connected.</p></td>
507<td class="parameter_annotations"> </td>
508</tr>
509</tbody>
510</table></div>
511</div>
512<p>Flags: <a href="/usr/share/gtk-doc/html/gobject/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
513</div>
514</div>
515<div class="refsect1">
516<a name="gstreamer-plugins-multiqueue.see-also"></a><h2>See Also</h2>
517<p><a class="link" href="gstreamer-plugins-queue.html#GstQueue"><span class="type">GstQueue</span></a></p>
518</div>
519</div>
520<div class="footer">
521<hr>Generated by GTK-Doc V1.28</div>
522</body>
523</html>