<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstaudiocdsrc</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
<link rel="home" href="index.html" title="GStreamer Base Plugins 1.0 Library Reference Manual">
<link rel="up" href="gstreamer-audio.html" title="Audio Library">
<link rel="prev" href="gst-plugins-base-libs-gstaudio.html" title="gstaudio">
<link rel="next" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock">
<meta name="generator" content="GTK-Doc V1.18 (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="2">
<tr valign="middle">
<td><a accesskey="p" href="gst-plugins-base-libs-gstaudio.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="gstreamer-audio.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">GStreamer Base Plugins 1.0 Library Reference Manual</th>
<td><a accesskey="n" href="gst-plugins-base-libs-gstaudioclock.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts">
<a href="#gst-plugins-base-libs-gstaudiocdsrc.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#gst-plugins-base-libs-gstaudiocdsrc.description" class="shortcut">Description</a>
                   | 
                  <a href="#gst-plugins-base-libs-gstaudiocdsrc.object-hierarchy" class="shortcut">Object Hierarchy</a>
                   | 
                  <a href="#gst-plugins-base-libs-gstaudiocdsrc.implemented-interfaces" class="shortcut">Implemented Interfaces</a>
                   | 
                  <a href="#gst-plugins-base-libs-gstaudiocdsrc.properties" class="shortcut">Properties</a>
</td></tr>
</table>
<div class="refentry">
<a name="gst-plugins-base-libs-gstaudiocdsrc"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="gst-plugins-base-libs-gstaudiocdsrc.top_of_page"></a>gstaudiocdsrc</span></h2>
<p>gstaudiocdsrc — Base class for Audio CD sources</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="gst-plugins-base-libs-gstaudiocdsrc.synopsis"></a><h2>Synopsis</h2>
<a name="GstAudioCdSrc"></a><pre class="synopsis">
#include &lt;gst/audio/gstaudiocdsrc.h&gt;

struct              <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc-struct" title="struct GstAudioCdSrc">GstAudioCdSrc</a>;
struct              <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcClass" title="struct GstAudioCdSrcClass">GstAudioCdSrcClass</a>;
struct              <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack" title="struct GstAudioCdSrcTrack">GstAudioCdSrcTrack</a>;
enum                <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcMode" title="enum GstAudioCdSrcMode">GstAudioCdSrcMode</a>;
<a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#gst-audio-cd-src-add-track" title="gst_audio_cd_src_add_track ()">gst_audio_cd_src_add_track</a>          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc"><span class="type">GstAudioCdSrc</span></a> *src</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack" title="struct GstAudioCdSrcTrack"><span class="type">GstAudioCdSrcTrack</span></a> *track</code></em>);
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiocdsrc.object-hierarchy"></a><h2>Object Hierarchy</h2>
<pre class="synopsis">
  <a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GObject">GObject</a>
   +----<a href="http://library.gnome.org/devel/gobject/unstable/gobject-The-Base-Object-Type.html#GInitiallyUnowned">GInitiallyUnowned</a>
         +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstObject.html">GstObject</a>
               +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html">GstElement</a>
                     +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstBaseSrc.html">GstBaseSrc</a>
                           +----<a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer-libs/html/GstPushSrc.html">GstPushSrc</a>
                                 +----GstAudioCdSrc
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiocdsrc.implemented-interfaces"></a><h2>Implemented Interfaces</h2>
<p>
GstAudioCdSrc implements
 <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstUriHandler.html#GstURIHandler">GstURIHandler</a>.</p>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiocdsrc.properties"></a><h2>Properties</h2>
<pre class="synopsis">
  "<a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc--device" title='The "device" property'>device</a>"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write
  "<a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc--mode" title='The "mode" property'>mode</a>"                     <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcMode" title="enum GstAudioCdSrcMode"><span class="type">GstAudioCdSrcMode</span></a>     : Read / Write
  "<a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc--track" title='The "track" property'>track</a>"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiocdsrc.description"></a><h2>Description</h2>
<p>
</p>
<p>
Provides a base class for CD digital audio (CDDA) sources, which handles
things like seeking, querying, discid calculation, tags, and buffer
timestamping.
</p>
<p>
</p>
<div class="refsect2">
<a name="idp6939616"></a><h3>Using GstAudioCdSrc-based elements in applications</h3>
<p>
GstAudioCdSrc registers two <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>s of its own, namely
the "track" format and the "sector" format. Applications will usually
only find the "track" format interesting. You can retrieve that <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstFormat.html#GstFormat"><span class="type">GstFormat</span></a>
for use in seek events or queries with gst_format_get_by_nick("track").
</p>
<p>
In order to query the number of tracks, for example, an application would
set the CDDA source element to READY or PAUSED state and then query the
the number of tracks via <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstElement.html#gst-element-query-duration"><code class="function">gst_element_query_duration()</code></a> using the track
format acquired above. Applications can query the currently playing track
in the same way.
</p>
<p>
Alternatively, applications may retrieve the currently playing track and
the total number of tracks from the taglist that will posted on the bus
whenever the CD is opened or the currently playing track changes. The
taglist will contain GST_TAG_TRACK_NUMBER and GST_TAG_TRACK_COUNT tags.
</p>
<p>
Applications playing back CD audio using playbin and cdda://n URIs should
issue a seek command in track format to change between tracks, rather than
setting a new cdda://n+1 URI on playbin (as setting a new URI on playbin
involves closing and re-opening the CD device, which is much much slower).
</p>
<div class="refsect2"><a name="idp7289648"></a></div>
<p>
CDDA sources will automatically emit a number of tags, details about which
can be found in the libgsttag documentation. Those tags are:
<a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-CDDB-DISCID:CAPS" title="GST_TAG_CDDA_CDDB_DISCID"><span class="type">GST_TAG_CDDA_CDDB_DISCID</span></a>, <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-CDDB-DISCID-FULL:CAPS" title="GST_TAG_CDDA_CDDB_DISCID_FULL"><span class="type">GST_TAG_CDDA_CDDB_DISCID_FULL</span></a>,
<a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-MUSICBRAINZ-DISCID:CAPS" title="GST_TAG_CDDA_MUSICBRAINZ_DISCID"><span class="type">GST_TAG_CDDA_MUSICBRAINZ_DISCID</span></a>, <a class="link" href="gst-plugins-base-libs-gsttag.html#GST-TAG-CDDA-MUSICBRAINZ-DISCID-FULL:CAPS" title="GST_TAG_CDDA_MUSICBRAINZ_DISCID_FULL"><span class="type">GST_TAG_CDDA_MUSICBRAINZ_DISCID_FULL</span></a>,
among others.
</p>
</div>
<p>
</p>
<hr>
<div class="refsect2">
<a name="idp7294768"></a><h3>Tracks and Table of Contents (TOC)</h3>
<p>
Applications will be informed of the available tracks via a TOC message
on the pipeline's <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a>. The <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstToc.html#GstToc"><span class="type">GstToc</span></a> will contain a <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstToc.html#GstTocEntry"><span class="type">GstTocEntry</span></a> for
each track, with information about each track. The duration for each
track can be retrieved via the <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GST-TAG-DURATION:CAPS"><span class="type">GST_TAG_DURATION</span></a> tag from each entry's
tag list, or calculated via <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstToc.html#gst-toc-entry-get-start-stop-times"><code class="function">gst_toc_entry_get_start_stop_times()</code></a>.
The track entries in the TOC will be sorted by track number.
</p>
</div>
<p>
</p>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiocdsrc.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GstAudioCdSrc-struct"></a><h3>struct GstAudioCdSrc</h3>
<pre class="programlisting">struct GstAudioCdSrc;</pre>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioCdSrcClass"></a><h3>struct GstAudioCdSrcClass</h3>
<pre class="programlisting">struct GstAudioCdSrcClass {
  GstPushSrcClass pushsrc_class;

  /* open/close the CD device */
  gboolean    (*open)               (GstAudioCdSrc *src, const gchar *device);
  void        (*close)              (GstAudioCdSrc *src);

  /* read one sector (LBA) */
  GstBuffer * (*read_sector)        (GstAudioCdSrc *src, gint sector);

#if 0
  /* return default device or NULL (optional) */
  gchar *     (*get_default_device) (GstAudioCdSrc *src);

  /* return NULL-terminated string array of CD devices, or NULL (optional) */
  /* FIXME 0.11: reconsider for new probing/device discovery API, remove if in doubt */
  gchar **    (*probe_devices)      (GstAudioCdSrc *src);
#endif
};
</pre>
<p>
Audio CD source base class.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><span class="type">GstPushSrcClass</span> <em class="structfield"><code><a name="GstAudioCdSrcClass.pushsrc-class"></a>pushsrc_class</code></em>;</span></p></td>
<td>the parent class</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAudioCdSrcClass.open"></a>open</code></em> ()</span></p></td>
<td>opening the device</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAudioCdSrcClass.close"></a>close</code></em> ()</span></p></td>
<td>closing the device</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAudioCdSrcClass.read-sector"></a>read_sector</code></em> ()</span></p></td>
<td>reading a sector</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAudioCdSrcClass.get-default-device"></a>get_default_device</code></em> ()</span></p></td>
<td>getting the default device</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAudioCdSrcClass.probe-devices"></a>probe_devices</code></em> ()</span></p></td>
<td>probing possible devices</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioCdSrcTrack"></a><h3>struct GstAudioCdSrcTrack</h3>
<pre class="programlisting">struct GstAudioCdSrcTrack {
  gboolean     is_audio;      /* TRUE if this is an audio track             */
  guint        num;           /* real track number (usually starts from 1)  */
  guint        start;         /* first sector of track (LBA, not LSN!)      */
  guint        end;           /* last sector of track  (LBA, not LSN!)      */
  GstTagList  *tags;          /* NULL or tags for track (e.g. from cd-text) */
};
</pre>
<p>
CD track abstraction to communicate TOC entries to the base class.
</p>
<p>
This structure is only for use by sub-classed in connection with
<a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#gst-audio-cd-src-add-track" title="gst_audio_cd_src_add_track ()"><code class="function">gst_audio_cd_src_add_track()</code></a>.
</p>
<p>
Applications will be informed of the available tracks via a TOC message
on the pipeline's <a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/GstBus.html"><span class="type">GstBus</span></a> instead.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<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="GstAudioCdSrcTrack.is-audio"></a>is_audio</code></em>;</span></p></td>
<td>Whether this is an audio track</td>
</tr>
<tr>
<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstAudioCdSrcTrack.num"></a>num</code></em>;</span></p></td>
<td>Track number in TOC (usually starts from 1, but not always)</td>
</tr>
<tr>
<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstAudioCdSrcTrack.start"></a>start</code></em>;</span></p></td>
<td>The first sector of this track (LBA)</td>
</tr>
<tr>
<td><p><span class="term"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a> <em class="structfield"><code><a name="GstAudioCdSrcTrack.end"></a>end</code></em>;</span></p></td>
<td>The last sector of this track (LBA)</td>
</tr>
<tr>
<td><p><span class="term"><a href="http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gstreamer/html/gstreamer-GstTagList.html#GstTagList"><span class="type">GstTagList</span></a> *<em class="structfield"><code><a name="GstAudioCdSrcTrack.tags"></a>tags</code></em>;</span></p></td>
<td>Track-specific tags (e.g. from cd-text information), or NULL</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioCdSrcMode"></a><h3>enum GstAudioCdSrcMode</h3>
<pre class="programlisting">typedef enum {
  GST_AUDIO_CD_SRC_MODE_NORMAL,          /* stream = one track  */
  GST_AUDIO_CD_SRC_MODE_CONTINUOUS       /* stream = whole disc */
} GstAudioCdSrcMode;
</pre>
<p>
Mode in which the CD audio source operates. Influences timestamping,
EOS handling and seeking.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><a name="GST-AUDIO-CD-SRC-MODE-NORMAL:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CD_SRC_MODE_NORMAL</code></span></p></td>
<td>each single track is a stream
</td>
</tr>
<tr>
<td><p><a name="GST-AUDIO-CD-SRC-MODE-CONTINUOUS:CAPS"></a><span class="term"><code class="literal">GST_AUDIO_CD_SRC_MODE_CONTINUOUS</code></span></p></td>
<td>the entire disc is a single stream
</td>
</tr>
</tbody>
</table></div>
</div>
<hr>
<div class="refsect2">
<a name="gst-audio-cd-src-add-track"></a><h3>gst_audio_cd_src_add_track ()</h3>
<pre class="programlisting"><a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gboolean"><span class="returnvalue">gboolean</span></a>            gst_audio_cd_src_add_track          (<em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc"><span class="type">GstAudioCdSrc</span></a> *src</code></em>,
                                                         <em class="parameter"><code><a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack" title="struct GstAudioCdSrcTrack"><span class="type">GstAudioCdSrcTrack</span></a> *track</code></em>);</pre>
<p>
CDDA sources use this function from their start vfunc to announce the
available data and audio tracks to the base source class. The caller
should allocate <em class="parameter"><code>track</code></em> on the stack, the base source will do a shallow
copy of the structure (and take ownership of the taglist if there is one).
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>src</code></em> :</span></p></td>
<td>a <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrc"><span class="type">GstAudioCdSrc</span></a>
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>track</code></em> :</span></p></td>
<td>address of <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcTrack" title="struct GstAudioCdSrcTrack"><span class="type">GstAudioCdSrcTrack</span></a> to add</td>
</tr>
<tr>
<td><p><span class="term"><span class="emphasis"><em>Returns</em></span> :</span></p></td>
<td>FALSE on error, otherwise TRUE.</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiocdsrc.property-details"></a><h2>Property Details</h2>
<div class="refsect2">
<a name="GstAudioCdSrc--device"></a><h3>The <code class="literal">"device"</code> property</h3>
<pre class="programlisting">  "device"                   <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#gchar"><span class="type">gchar</span></a>*                : Read / Write</pre>
<p>CD device location.</p>
<p>Default value: NULL</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioCdSrc--mode"></a><h3>The <code class="literal">"mode"</code> property</h3>
<pre class="programlisting">  "mode"                     <a class="link" href="gst-plugins-base-libs-gstaudiocdsrc.html#GstAudioCdSrcMode" title="enum GstAudioCdSrcMode"><span class="type">GstAudioCdSrcMode</span></a>     : Read / Write</pre>
<p>Mode.</p>
<p>Default value: Stream consists of a single track</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioCdSrc--track"></a><h3>The <code class="literal">"track"</code> property</h3>
<pre class="programlisting">  "track"                    <a href="http://library.gnome.org/devel/glib/unstable/glib-Basic-Types.html#guint"><span class="type">guint</span></a>                 : Read / Write</pre>
<p>Track.</p>
<p>Allowed values: [1,99]</p>
<p>Default value: 1</p>
</div>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.18</div>
</body>
</html>