blob: 77a3fe30a6e37ba4835b74ffcf5480370e6e5657 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>queue2: GStreamer Core Plugins 1.0 Plugins Reference Manual</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="index.html" title="GStreamer Core Plugins 1.0 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gstreamer Elements">
<link rel="prev" href="gstreamer-plugins-output-selector.html" title="output-selector">
<link rel="next" href="gstreamer-plugins-queue.html" title="queue">
<meta name="generator" content="GTK-Doc V1.24 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="5"><tr valign="middle">
<td width="100%" align="left" class="shortcuts">
<a href="#" class="shortcut">Top</a><span id="nav_description">  <span class="dim">|</span> 
<a href="#gstreamer-plugins-queue2.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
<a href="#gstreamer-plugins-queue2.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
<a href="#gstreamer-plugins-queue2.properties" class="shortcut">Properties</a></span><span id="nav_signals">  <span class="dim">|</span> 
<a href="#gstreamer-plugins-queue2.signals" class="shortcut">Signals</a></span>
</td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="16" height="16" border="0" alt="Home"></a></td>
<td><a accesskey="u" href="ch01.html"><img src="up.png" width="16" height="16" border="0" alt="Up"></a></td>
<td><a accesskey="p" href="gstreamer-plugins-output-selector.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gstreamer-plugins-queue.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gstreamer-plugins-queue2"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gstreamer-plugins-queue2.top_of_page"></a>queue2</span></h2>
<p>queue2</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="gstreamer-plugins-queue2.properties"></a><h2>Properties</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="properties_type">
<col width="300px" class="properties_name">
<col width="200px" class="properties_flags">
</colgroup>
<tbody>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--current-level-buffers" title="The “current-level-buffers” property">current-level-buffers</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--current-level-bytes" title="The “current-level-bytes” property">current-level-bytes</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--current-level-time" title="The “current-level-time” property">current-level-time</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--high-percent" title="The “high-percent” property">high-percent</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--low-percent" title="The “low-percent” property">low-percent</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--max-size-buffers" title="The “max-size-buffers” property">max-size-buffers</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--max-size-bytes" title="The “max-size-bytes” property">max-size-bytes</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--max-size-time" title="The “max-size-time” property">max-size-time</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--ring-buffer-max-size" title="The “ring-buffer-max-size” property">ring-buffer-max-size</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--temp-location" title="The “temp-location” property">temp-location</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--temp-remove" title="The “temp-remove” property">temp-remove</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type">
<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--temp-template" title="The “temp-template” property">temp-template</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--use-buffering" title="The “use-buffering” property">use-buffering</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--use-rate-estimate" title="The “use-rate-estimate” property">use-rate-estimate</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--avg-in-rate" title="The “avg-in-rate” property">avg-in-rate</a></td>
<td class="property_flags">Read</td>
</tr>
<tr>
<td class="property_type"><a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--use-tags-bitrate" title="The “use-tags-bitrate” property">use-tags-bitrate</a></td>
<td class="property_flags">Read / Write</td>
</tr>
</tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gstreamer-plugins-queue2.signals"></a><h2>Signals</h2>
<div class="informaltable"><table class="informaltable" border="0">
<colgroup>
<col width="150px" class="signals_return">
<col width="300px" class="signals_name">
<col width="200px" class="signals_flags">
</colgroup>
<tbody><tr>
<td class="signal_type"><span class="returnvalue">void</span></td>
<td class="signal_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2-overrun" title="The “overrun” signal">overrun</a></td>
<td class="signal_flags"><a href="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></td>
</tr></tbody>
</table></div>
</div>
<a name="GstQueue2"></a><div class="refsect1">
<a name="gstreamer-plugins-queue2.other"></a><h2>Types and Values</h2>
<div class="informaltable"><table class="informaltable" width="100%" border="0">
<colgroup>
<col width="150px" class="name">
<col class="description">
</colgroup>
<tbody><tr>
<td class="datatype_keyword">struct</td>
<td class="function_name"><a class="link" href="gstreamer-plugins-queue2.html#GstQueue2-struct" title="struct GstQueue2">GstQueue2</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gstreamer-plugins-queue2.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen"> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
<span class="lineart">╰──</span> <a href="https://developer.gnome.org/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
<span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
<span class="lineart">╰──</span> <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
<span class="lineart">╰──</span> GstQueue2
</pre>
</div>
<div class="refsect1">
<a name="gstreamer-plugins-queue2.description"></a><h2>Description</h2>
<p>Data is queued until one of the limits specified by the
<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--max-size-buffers" title="The “max-size-buffers” property"><span class="type">“max-size-buffers”</span></a>, <a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--max-size-bytes" title="The “max-size-bytes” property"><span class="type">“max-size-bytes”</span></a> and/or
<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--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
more buffers into the queue will block the pushing thread until more space
becomes available.</p>
<p>The queue will create a new thread on the source pad to decouple the
processing on sink and source pad.</p>
<p>You can query how many buffers are queued by reading the
<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2--current-level-buffers" title="The “current-level-buffers” property"><span class="type">“current-level-buffers”</span></a> property.</p>
<p>The default queue size limits are 100 buffers, 2MB of data, or
two seconds worth of data, whichever is reached first.</p>
<p>If you set temp-template to a value such as /tmp/gstreamer-XXXXXX, the element
will allocate a random free filename and buffer data in the file.
By using this, it will buffer the entire stream data on the file independently
of the queue size limits, they will only be used for buffering statistics.</p>
<p>The temp-location property will be used to notify the application of the
allocated filename.</p>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
<a name="id-1.2.16.8.8.1"></a><h3>Element Information</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">plugin</span></p></td>
<td>
<a class="link" href="gstreamer-plugins-plugin-coreelements.html#plugin-coreelements">coreelements</a>
</td>
</tr>
<tr>
<td><p><span class="term">author</span></p></td>
<td>Erik Walthinsen &lt;omega@cse.ogi.edu&gt;, Wim Taymans &lt;wim.taymans@gmail.com&gt;</td>
</tr>
<tr>
<td><p><span class="term">class</span></p></td>
<td>Generic</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="id-1.2.16.8.8.2"></a><h3>Element Pads</h3>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">name</span></p></td>
<td>sink</td>
</tr>
<tr>
<td><p><span class="term">direction</span></p></td>
<td>sink</td>
</tr>
<tr>
<td><p><span class="term">presence</span></p></td>
<td>always</td>
</tr>
<tr>
<td><p><span class="term">details</span></p></td>
<td>ANY</td>
</tr>
</tbody>
</table></div>
<div class="variablelist"><table border="0" class="variablelist">
<colgroup>
<col align="left" valign="top">
<col>
</colgroup>
<tbody>
<tr>
<td><p><span class="term">name</span></p></td>
<td>src</td>
</tr>
<tr>
<td><p><span class="term">direction</span></p></td>
<td>source</td>
</tr>
<tr>
<td><p><span class="term">presence</span></p></td>
<td>always</td>
</tr>
<tr>
<td><p><span class="term">details</span></p></td>
<td>ANY</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="gstreamer-plugins-queue2.functions_details"></a><h2>Functions</h2>
<p></p>
</div>
<div class="refsect1">
<a name="gstreamer-plugins-queue2.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GstQueue2-struct"></a><h3>struct GstQueue2</h3>
<pre class="programlisting">struct GstQueue2;</pre>
</div>
</div>
<div class="refsect1">
<a name="gstreamer-plugins-queue2.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstQueue2--current-level-buffers"></a><h3>The <code class="literal">“current-level-buffers”</code> property</h3>
<pre class="programlisting"> “current-level-buffers” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
<p>Current number of buffers in the queue.</p>
<p>Flags: Read</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--current-level-bytes"></a><h3>The <code class="literal">“current-level-bytes”</code> property</h3>
<pre class="programlisting"> “current-level-bytes” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
<p>Current amount of data in the queue (bytes).</p>
<p>Flags: Read</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--current-level-time"></a><h3>The <code class="literal">“current-level-time”</code> property</h3>
<pre class="programlisting"> “current-level-time” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
<p>Current amount of data in the queue (in ns).</p>
<p>Flags: Read</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--high-percent"></a><h3>The <code class="literal">“high-percent”</code> property</h3>
<pre class="programlisting"> “high-percent” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
<p>High threshold for buffering to finish. Only used if use-buffering is True.</p>
<p>Flags: Read / Write</p>
<p>Allowed values: [0,100]</p>
<p>Default value: 99</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--low-percent"></a><h3>The <code class="literal">“low-percent”</code> property</h3>
<pre class="programlisting"> “low-percent” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
<p>Low threshold for buffering to start. Only used if use-buffering is True.</p>
<p>Flags: Read / Write</p>
<p>Allowed values: [0,100]</p>
<p>Default value: 10</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--max-size-buffers"></a><h3>The <code class="literal">“max-size-buffers”</code> property</h3>
<pre class="programlisting"> “max-size-buffers” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
<p>Max. number of buffers in the queue (0=disable).</p>
<p>Flags: Read / Write</p>
<p>Default value: 100</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--max-size-bytes"></a><h3>The <code class="literal">“max-size-bytes”</code> property</h3>
<pre class="programlisting"> “max-size-bytes” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
<p>Max. amount of data in the queue (bytes, 0=disable).</p>
<p>Flags: Read / Write</p>
<p>Default value: 2097152</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--max-size-time"></a><h3>The <code class="literal">“max-size-time”</code> property</h3>
<pre class="programlisting"> “max-size-time” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
<p>Max. amount of data in the queue (in ns, 0=disable).</p>
<p>Flags: Read / Write</p>
<p>Default value: 2000000000</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--ring-buffer-max-size"></a><h3>The <code class="literal">“ring-buffer-max-size”</code> property</h3>
<pre class="programlisting"> “ring-buffer-max-size” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#guint64"><span class="type">guint64</span></a></pre>
<p>The maximum size of the ring buffer in bytes. If set to 0, the ring
buffer is disabled. Default 0.</p>
<p>Flags: Read / Write</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--temp-location"></a><h3>The <code class="literal">“temp-location”</code> property</h3>
<pre class="programlisting"> “temp-location” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
<p>Location to store temporary files in (Only read this property, use temp-template to configure the name template).</p>
<p>Flags: Read</p>
<p>Default value: NULL</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--temp-remove"></a><h3>The <code class="literal">“temp-remove”</code> property</h3>
<pre class="programlisting"> “temp-remove” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>When temp-template is set, remove the temporary file when going to READY.</p>
<p>Flags: Read / Write</p>
<p>Default value: TRUE</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--temp-template"></a><h3>The <code class="literal">“temp-template”</code> property</h3>
<pre class="programlisting"> “temp-template” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a> *</pre>
<p>File template to store temporary files in, should contain directory and XXXXXX. (NULL == disabled).</p>
<p>Flags: Read / Write</p>
<p>Default value: NULL</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--use-buffering"></a><h3>The <code class="literal">“use-buffering”</code> property</h3>
<pre class="programlisting"> “use-buffering” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>Emit GST_MESSAGE_BUFFERING based on low-/high-percent thresholds.</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--use-rate-estimate"></a><h3>The <code class="literal">“use-rate-estimate”</code> property</h3>
<pre class="programlisting"> “use-rate-estimate” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>Estimate the bitrate of the stream to calculate time level.</p>
<p>Flags: Read / Write</p>
<p>Default value: TRUE</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--avg-in-rate"></a><h3>The <code class="literal">“avg-in-rate”</code> property</h3>
<pre class="programlisting"> “avg-in-rate” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gint64"><span class="type">gint64</span></a></pre>
<p>The average input data rate.</p>
<p>Flags: Read</p>
<p>Allowed values: &gt;= 0</p>
<p>Default value: 0</p>
</div>
<hr>
<div class="refsect2">
<a name="GstQueue2--use-tags-bitrate"></a><h3>The <code class="literal">“use-tags-bitrate”</code> property</h3>
<pre class="programlisting"> “use-tags-bitrate” <a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>Use a bitrate from upstream tags to estimate buffer duration if not provided.</p>
<p>Flags: Read / Write</p>
<p>Default value: FALSE</p>
</div>
</div>
<div class="refsect1">
<a name="gstreamer-plugins-queue2.signal-details"></a><h2>Signal Details</h2>
<div class="refsect2">
<a name="GstQueue2-overrun"></a><h3>The <code class="literal">“overrun”</code> signal</h3>
<pre class="programlisting"><span class="returnvalue">void</span>
user_function (<a class="link" href="gstreamer-plugins-queue2.html#GstQueue2"><span class="type">GstQueue2</span></a> *gstqueue2,
<a href="https://developer.gnome.org/glib/unstable/glib-Basic-Types.html#gpointer"><span class="type">gpointer</span></a> user_data)</pre>
<p>Flags: <a href="https://developer.gnome.org/gobject/unstable/gobject-Signals.html#G-SIGNAL-RUN-FIRST:CAPS">Run First</a></p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.24</div>
</body>
</html>