blob: 9aea9a4fa198aacb6f6df1f13f5160c24e9c1bb9 [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>rawaudioparse: GStreamer Bad 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 Bad Plugins 1.0 Plugins Reference Manual">
<link rel="up" href="ch01.html" title="gst-plugins-bad Elements">
<link rel="prev" href="gst-plugins-bad-plugins-pinch.html" title="pinch">
<link rel="next" href="gst-plugins-bad-plugins-rawvideoparse.html" title="rawvideoparse">
<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-bad-plugins-rawaudioparse.description" class="shortcut">Description</a></span><span id="nav_hierarchy">  <span class="dim">|</span> 
<a href="#gst-plugins-bad-plugins-rawaudioparse.object-hierarchy" class="shortcut">Object Hierarchy</a></span><span id="nav_properties">  <span class="dim">|</span> 
<a href="#gst-plugins-bad-plugins-rawaudioparse.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-bad-plugins-pinch.html"><img src="left.png" width="16" height="16" border="0" alt="Prev"></a></td>
<td><a accesskey="n" href="gst-plugins-bad-plugins-rawvideoparse.html"><img src="right.png" width="16" height="16" border="0" alt="Next"></a></td>
</tr></table>
<div class="refentry">
<a name="gst-plugins-bad-plugins-rawaudioparse"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gst-plugins-bad-plugins-rawaudioparse.top_of_page"></a>rawaudioparse</span></h2>
<p>rawaudioparse</p>
</td>
<td class="gallery_image" valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1">
<a name="gst-plugins-bad-plugins-rawaudioparse.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/gobjectgobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawaudioparse.html#GstRawAudioParse--channel-positions" title="The “channel-positions” property">channel-positions</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><span class="type">GstRawAudioParseFormat</span></td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawaudioparse.html#GstRawAudioParse--format" title="The “format” property">format</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawaudioparse.html#GstRawAudioParse--interleaved" title="The “interleaved” property">interleaved</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<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-bad-plugins-rawaudioparse.html#GstRawAudioParse--num-channels" title="The “num-channels” property">num-channels</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<tr>
<td class="property_type"><a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstaudio.html#GstAudioFormat"><span class="type">GstAudioFormat</span></a></td>
<td class="property_name"><a class="link" href="gst-plugins-bad-plugins-rawaudioparse.html#GstRawAudioParse--pcm-format" title="The “pcm-format” property">pcm-format</a></td>
<td class="property_flags">Read / Write</td>
</tr>
<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-bad-plugins-rawaudioparse.html#GstRawAudioParse--sample-rate" title="The “sample-rate” property">sample-rate</a></td>
<td class="property_flags">Read / Write</td>
</tr>
</tbody>
</table></div>
</div>
<a name="GstRawAudioParse"></a><div class="refsect1">
<a name="gst-plugins-bad-plugins-rawaudioparse.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-bad-plugins-rawaudioparse.html#GstRawAudioParse-struct" title="struct GstRawAudioParse">GstRawAudioParse</a></td>
</tr></tbody>
</table></div>
</div>
<div class="refsect1">
<a name="gst-plugins-bad-plugins-rawaudioparse.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.0GstBaseParse.html#GstBaseParse-struct">GstBaseParse</a>
<span class="lineart">╰──</span> GstRawBaseParse
<span class="lineart">╰──</span> GstRawAudioParse
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-bad-plugins-rawaudioparse.description"></a><h2>Description</h2>
<p>This element parses incoming data as raw audio samples and timestamps it.
It also handles seek queries in said raw audio data, and ensures that output
buffers contain an integer number of samples, even if the input buffers don't.
For example, with sample format S16LE and 2 channels, an input buffer of 411
bytes contains 102.75 samples. rawaudioparse will then output 102 samples
(= 408 bytes) and keep the remaining 3 bytes. These will then be prepended to
the next input data.</p>
<p>The element implements the properties and sink caps configuration as specified
in the <span class="type">GstRawBaseParse</span> documentation. The properties configuration can be
modified by using the sample-rate, num-channels, channel-positions, format,
and pcm-format properties.</p>
<p>Currently, this parser supports raw data in a-law, mu-law, or linear PCM format.</p>
<p>To facilitate operation with the unalignedaudioparse element, rawaudioparse
supports the "audio/x-unaligned-raw" media type. This is treated identically to
"audio/x-raw", except that it is used by source elements which do not guarantee
that the buffers they push out are timestamped and contain an integer amount of
samples (see the 411 bytes example above). By using a different media type, it
is guaranteed that unalignedaudioparse is autoplugged, making sure that the
autoplugged chain does not push unparsed content downstream. The source caps'
media type with linear PCM data is always "audio/x-raw", even if the sink caps
use "audio/x-unaligned-raw".</p>
<p>The channel-positions property can be used to set explicit position information
for each channel. If the array that is passed to this property does not match
the number of channels indicated by num-channels, then said number of channels
is updated to the array length. If channel-positions is NULL, then the default
GStreamer positioning is used. This property is also useful for swapping left
and right in a stereo signal for example.</p>
<div class="refsect2">
<a name="id-1.2.106.7.7"></a><h3>Example pipelines</h3>
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2</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> souphttpsrc http<span class="gtkdoc opt">:</span><span class="gtkdoc slc">//my-dlna-server/track.l16 \</span>
rawaudioparse <span class="gtkdoc opt">!</span> audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
</tr>
</tbody>
</table>
</div>
Receive L16 data from a DLNA server, parse and timestamp it with
rawaudioparse, and play it. use-sink-caps is set to true since souphttpsrc
will set its source pad's caps to audio/x-unaligned-raw for the L16 stream.
<div class="informalexample">
<table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<td class="listing_lines" align="right"><pre>1
2
3</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> filesrc location<span class="gtkdoc opt">=</span>audio<span class="gtkdoc opt">.</span>raw <span class="gtkdoc opt">!</span> rawaudioparse use<span class="gtkdoc opt">-</span>sink<span class="gtkdoc opt">-</span>caps<span class="gtkdoc opt">=</span><span class="keyword">false</span> \
format<span class="gtkdoc opt">=</span>pcm pcm<span class="gtkdoc opt">-</span>format<span class="gtkdoc opt">=</span>s16le sample<span class="gtkdoc opt">-</span>rate<span class="gtkdoc opt">=</span><span class="number">48000</span> num<span class="gtkdoc opt">-</span>channels<span class="gtkdoc opt">=</span><span class="number">2</span> \
audioconvert <span class="gtkdoc opt">!</span> audioresample <span class="gtkdoc opt">!</span> autoaudiosink</pre></td>
</tr>
</tbody>
</table>
</div>
Read raw data from a local file and parse it as PCM data with 48000 Hz sample
rate, signed 16 bit integer samples, and 2 channels. use-sink-caps is set to
false to ensure the property information is used and the parser does not expect
audio/x-raw or audio/x-unaligned-raw caps.
</div>
<div class="refsynopsisdiv">
<h2>Synopsis</h2>
<div class="refsect2">
<a name="id-1.2.106.7.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="gst-plugins-bad-plugins-plugin-rawparse.html#plugin-rawparse">rawparse</a>
</td>
</tr>
<tr>
<td><p><span class="term">author</span></p></td>
<td>Carlos Rafael Giani &lt;dv@pseudoterminal.org&gt;</td>
</tr>
<tr>
<td><p><span class="term">class</span></p></td>
<td>Codec/Parser/Audio</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="id-1.2.106.7.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>audio/x-unaligned-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>
<tr>
<td><p><span class="term"></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>
<tr>
<td><p><span class="term"></span></p></td>
<td> audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
<td> audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</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>
<tr>
<td><p><span class="term"></span></p></td>
<td> audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
</tr>
<tr>
<td><p><span class="term"></span></p></td>
<td> audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]</td>
</tr>
</tbody>
</table></div>
</div>
</div>
</div>
<div class="refsect1">
<a name="gst-plugins-bad-plugins-rawaudioparse.functions_details"></a><h2>Functions</h2>
<p></p>
</div>
<div class="refsect1">
<a name="gst-plugins-bad-plugins-rawaudioparse.other_details"></a><h2>Types and Values</h2>
<div class="refsect2">
<a name="GstRawAudioParse-struct"></a><h3>struct GstRawAudioParse</h3>
<pre class="programlisting">struct GstRawAudioParse;</pre>
</div>
</div>
<div class="refsect1">
<a name="gst-plugins-bad-plugins-rawaudioparse.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstRawAudioParse--channel-positions"></a><h3>The <code class="literal">“channel-positions”</code> property</h3>
<pre class="programlisting"> “channel-positions” <a href="/usr/share/gtk-doc/html/gobjectgobject-Value-arrays.html#GValueArray"><span class="type">GValueArray</span></a> *</pre>
<p>Channel positions used on the output.</p>
<p>Flags: Read / Write</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawAudioParse--format"></a><h3>The <code class="literal">“format”</code> property</h3>
<pre class="programlisting"> “format” <span class="type">GstRawAudioParseFormat</span></pre>
<p>Format of the raw audio stream.</p>
<p>Flags: Read / Write</p>
<p>Default value: PCM</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawAudioParse--interleaved"></a><h3>The <code class="literal">“interleaved”</code> property</h3>
<pre class="programlisting"> “interleaved” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gboolean"><span class="type">gboolean</span></a></pre>
<p>True if audio has interleaved layout.</p>
<p>Flags: Read / Write</p>
<p>Default value: TRUE</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawAudioParse--num-channels"></a><h3>The <code class="literal">“num-channels”</code> property</h3>
<pre class="programlisting"> “num-channels” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
<p>Number of channels in raw stream.</p>
<p>Flags: Read / Write</p>
<p>Allowed values: &gt;= 1</p>
<p>Default value: 2</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawAudioParse--pcm-format"></a><h3>The <code class="literal">“pcm-format”</code> property</h3>
<pre class="programlisting"> “pcm-format” <a href="/usr/share/gtk-doc/html/gst-plugins-base-libs-1.0gst-plugins-base-libs-gstaudio.html#GstAudioFormat"><span class="type">GstAudioFormat</span></a></pre>
<p>Format of audio samples in PCM stream (ignored if format property is not set to pcm).</p>
<p>Flags: Read / Write</p>
<p>Default value: GST_AUDIO_FORMAT_UNKNOWN</p>
</div>
<hr>
<div class="refsect2">
<a name="GstRawAudioParse--sample-rate"></a><h3>The <code class="literal">“sample-rate”</code> property</h3>
<pre class="programlisting"> “sample-rate” <a href="/usr/share/gtk-doc/html/glibglib-Basic-Types.html#gint"><span class="type">gint</span></a></pre>
<p>Rate of audio samples in raw stream.</p>
<p>Flags: Read / Write</p>
<p>Allowed values: &gt;= 1</p>
<p>Default value: 44100</p>
</div>
</div>
</div>
<div class="footer">
<hr>Generated by GTK-Doc V1.25</div>
</body>
</html>