blob: 9106cfaa9102dc71307b9e501a0003549b163273 [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>audioresample: GStreamer Base 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 Base Plugins 1.0 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-base Elements">
<link rel="prev" href="gst-plugins-base-plugins-audiorate.html" title="audiorate">
<link rel="next" href="gst-plugins-base-plugins-audiotestsrc.html" title="audiotestsrc">
<meta name="generator" content="GTK-Doc V1.25 (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="#gst-plugins-base-plugins-audioresample.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
<a href="#gst-plugins-base-plugins-audioresample.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
<a href="#gst-plugins-base-plugins-audioresample.properties" class="shortcut">Properties</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="gst-plugins-base-plugins-audiorate.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gst-plugins-base-plugins-audiotestsrc.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gst-plugins-base-plugins-audioresample"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gst-plugins-base-plugins-audioresample.top_of_page"></a>audioresample</span></h2>
<p>audioresample</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-audioresample.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="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></td>
<td class="property_name"><a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--quality" title="The “quality” property">quality</a></td>
<td class="property_flags">Read / Write / Construct</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></td>
<td class="property_name"><a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-auto-threshold" title="The “sinc-filter-auto-threshold” property">sinc-filter-auto-threshold</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">GstAudioResamplerFilterMode</span></td>
<td class="property_name"><a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-mode" title="The “sinc-filter-mode” property">sinc-filter-mode</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">GstAudioResamplerMethod</span></td>
<td class="property_name"><a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--resample-method" title="The “resample-method” property">resample-method</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">GstAudioResamplerFilterInterpolation</span></td>
<td class="property_name"><a class="link" href="gst-plugins-base-plugins-audioresample.html#GstAudioResample--sinc-filter-interpolation" title="The “sinc-filter-interpolation” property">sinc-filter-interpolation</a></td>
<td class="property_flags">Read / Write</td>
</tr>
</tbody>
</table></div>
</div>
<a name="GstAudioResample"></a><div class="refsect1">
<a name="gst-plugins-base-plugins-audioresample.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="gst-plugins-base-plugins-audioresample.html#GstAudioResample-struct" title="struct GstAudioResample">GstAudioResample</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-audioresample.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="screen"> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GObject-struct">GObject</a>
<span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gobjectgobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
<span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstObject.html#GstObject-struct">GstObject</a>
<span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-1.0GstElement.html#GstElement-struct">GstElement</a>
<span class="lineart">╰──</span> <a href="/usr/share/gtk-doc/html/gstreamer-libs-1.0GstBaseTransform.html#GstBaseTransform-struct">GstBaseTransform</a>
<span class="lineart">╰──</span> GstAudioResample
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-audioresample.description"></a><h2>Description</h2>
<p>audioresample resamples raw audio buffers to different sample rates using
a configurable windowing function to enhance quality.</p>
<p>By default, the resampler uses a reduced sinc table, with cubic interpolation filling in
the gaps. This ensures that the table does not become too big. However, the interpolation
increases the CPU usage considerably. As an alternative, a full sinc table can be used.
Doing so can drastically reduce CPU usage (4x faster with 44.1 -&gt; 48 kHz conversions for
example), at the cost of increased memory consumption, plus the sinc table takes longer
to initialize when the element is created. A third mode exists, which uses the full table
unless said table would become too large, in which case the interpolated one is used instead.</p>
<div class="refsect2">
<a name="id-1.2.10.7.4"></a><h3>Example launch line</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1</pre></td>
<td class="listing_code"><pre class="programlisting">gst<span class="gtkdoc opt">-</span>launch<span class="gtkdoc opt">-</span><span class="number">1.0</span> <span class="gtkdoc opt">-</span>v uridecodebin uri<span class="gtkdoc opt">=</span>file<span class="gtkdoc opt">:</span><span class="gtkdoc slc">///path/to/audio.ogg ! audioconvert ! audioresample ! audio/x-raw, rate=8000 ! autoaudiosink</span></pre></td>
</tr>
</tbody>
</table>
</div>
Decode an audio file and downsample it to 8Khz and play sound.
To create the Ogg/Vorbis file refer to the documentation of vorbisenc.
This assumes there is an audio sink that will accept/handle 8kHz audio.
</div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
<a name="id-1.2.10.7.5.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="gst-plugins-base-plugins-plugin-audioresample.html#plugin-audioresample">audioresample</a>
</td>
</tr>
<tr>
<td><p><span class="term">author</span></p></td>
<td>Sebastian Dröge &lt;sebastian.droege@collabora.co.uk&gt;</td>
</tr>
<tr>
<td><p><span class="term">class</span></p></td>
<td>Filter/Converter/Audio</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="id-1.2.10.7.5.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>audio/x-raw, format=(string){ S8, U8, S16LE, S16BE, U16LE, U16BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S32LE, S32BE, U32LE, U32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, F32LE, F32BE, F64LE, F64BE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string){ interleaved, non-interleaved }</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>audio/x-raw, format=(string){ S8, U8, S16LE, S16BE, U16LE, U16BE, S24_32LE, S24_32BE, U24_32LE, U24_32BE, S32LE, S32BE, U32LE, U32BE, S24LE, S24BE, U24LE, U24BE, S20LE, S20BE, U20LE, U20BE, S18LE, S18BE, U18LE, U18BE, F32LE, F32BE, F64LE, F64BE }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], layout=(string){ interleaved, non-interleaved }</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-audioresample.functions_details"></a><h2>Functions</h2>
<p></p>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-audioresample.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GstAudioResample-struct"></a><h3>struct GstAudioResample</h3>
<pre class="programlisting">struct GstAudioResample;</pre>
<p>Opaque data structure.</p>
</div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-plugins-audioresample.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstAudioResample--quality"></a><h3>The <code class="literal">“quality”</code> property</h3>
<pre class="programlisting"> “quality” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
<p>Resample quality with 0 being the lowest and 10 being the best.</p>
<p>Flags: Read / Write / Construct</p>
<p>Allowed values: [0,10]</p>
<p>Default value: 4</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioResample--sinc-filter-auto-threshold"></a><h3>The <code class="literal">“sinc-filter-auto-threshold”</code> property</h3>
<pre class="programlisting"> “sinc-filter-auto-threshold” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#guint"><span class="type">guint</span></a></pre>
<p>Memory usage threshold to use if sinc filter mode is AUTO, given in bytes.</p>
<p>Flags: Read / Write</p>
<p>Default value: 1048576</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioResample--sinc-filter-mode"></a><h3>The <code class="literal">“sinc-filter-mode”</code> property</h3>
<pre class="programlisting"> “sinc-filter-mode” <span class="type">GstAudioResamplerFilterMode</span></pre>
<p>What sinc filter table mode to use.</p>
<p>Flags: Read / Write</p>
<p>Default value: GST_AUDIO_RESAMPLER_FILTER_MODE_AUTO</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioResample--resample-method"></a><h3>The <code class="literal">“resample-method”</code> property</h3>
<pre class="programlisting"> “resample-method” <span class="type">GstAudioResamplerMethod</span></pre>
<p>What resample method to use.</p>
<p>Flags: Read / Write</p>
<p>Default value: GST_AUDIO_RESAMPLER_METHOD_KAISER</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioResample--sinc-filter-interpolation"></a><h3>The <code class="literal">“sinc-filter-interpolation”</code> property</h3>
<pre class="programlisting"> “sinc-filter-interpolation” <span class="type">GstAudioResamplerFilterInterpolation</span></pre>
<p>How to interpolate the sinc filter table.</p>
<p>Flags: Read / Write</p>
<p>Default value: GST_AUDIO_RESAMPLER_FILTER_INTERPOLATION_CUBIC</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25</div>
</body>
</html>