<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>gstaudiosink</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-gstaudiomixerutils.html" title="gstaudiomixerutils">
<link rel="next" href="gst-plugins-base-libs-gstaudiosrc.html" title="gstaudiosrc">
<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-gstaudiomixerutils.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-gstaudiosrc.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-gstaudiosink.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#gst-plugins-base-libs-gstaudiosink.description" class="shortcut">Description</a>
                   | 
                  <a href="#gst-plugins-base-libs-gstaudiosink.object-hierarchy" class="shortcut">Object Hierarchy</a>
</td></tr>
</table>
<div class="refentry">
<a name="gst-plugins-base-libs-gstaudiosink"></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-gstaudiosink.top_of_page"></a>gstaudiosink</span></h2>
<p>gstaudiosink — Simple base class for audio sinks</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsynopsisdiv">
<a name="gst-plugins-base-libs-gstaudiosink.synopsis"></a><h2>Synopsis</h2>
<a name="GstAudioSink"></a><pre class="synopsis">
#include &lt;gst/audio/gstaudiosink.h&gt;

struct              <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink-struct" title="struct GstAudioSink">GstAudioSink</a>;
struct              <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSinkClass" title="struct GstAudioSinkClass">GstAudioSinkClass</a>;
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiosink.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/GstBaseSink.html">GstBaseSink</a>
                           +----<a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink">GstAudioBaseSink</a>
                                 +----GstAudioSink
</pre>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiosink.description"></a><h2>Description</h2>
<p>
This is the most simple base class for audio sinks that only requires
subclasses to implement a set of simple functions:
</p>
<p>
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><code class="function">open()</code></span></p></td>
<td><p>Open the device.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="function">prepare()</code></span></p></td>
<td><p>Configure the device with the specified format.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="function">write()</code></span></p></td>
<td><p>Write samples to the device.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="function">reset()</code></span></p></td>
<td><p>Unblock writes and flush the device.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="function">delay()</code></span></p></td>
<td><p>Get the number of samples written but not yet played 
    by the device.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="function">unprepare()</code></span></p></td>
<td><p>Undo operations done by prepare.</p></td>
</tr>
<tr>
<td><p><span class="term"><code class="function">close()</code></span></p></td>
<td><p>Close the device.</p></td>
</tr>
</tbody>
</table></div>
<p>
</p>
<p>
All scheduling of samples and timestamps is done in this base class
together with <a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a> using a default implementation of a
<a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a> that uses threads.
</p>
<p>
Last reviewed on 2006-09-27 (0.10.12)
</p>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiosink.details"></a><h2>Details</h2>
<div class="refsect2">
<a name="GstAudioSink-struct"></a><h3>struct GstAudioSink</h3>
<pre class="programlisting">struct GstAudioSink;</pre>
<p>
Opaque <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a>.
</p>
</div>
<hr>
<div class="refsect2">
<a name="GstAudioSinkClass"></a><h3>struct GstAudioSinkClass</h3>
<pre class="programlisting">struct GstAudioSinkClass {
  GstAudioBaseSinkClass parent_class;

  /* vtable */

  /* open the device with given specs */
  gboolean (*open)      (GstAudioSink *sink);
  /* prepare resources and state to operate with the given specs */
  gboolean (*prepare)   (GstAudioSink *sink, GstAudioRingBufferSpec *spec);
  /* undo anything that was done in prepare() */
  gboolean (*unprepare) (GstAudioSink *sink);
  /* close the device */
  gboolean (*close)     (GstAudioSink *sink);
  /* write samples to the device */
  gint     (*write)     (GstAudioSink *sink, gpointer data, guint length);
  /* get number of samples queued in the device */
  guint    (*delay)     (GstAudioSink *sink);
  /* reset the audio device, unblock from a write */
  void     (*reset)     (GstAudioSink *sink);
};
</pre>
<p>
<a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a> class. Override the vmethods to implement functionality.
</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSinkClass" title="struct GstAudioBaseSinkClass"><span class="type">GstAudioBaseSinkClass</span></a> <em class="structfield"><code><a name="GstAudioSinkClass.parent-class"></a>parent_class</code></em>;</span></p></td>
<td>the parent class structure.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.open"></a>open</code></em> ()</span></p></td>
<td>Open the device. No configuration needs to be done at this point.
This function is also used to check if the device is available.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.prepare"></a>prepare</code></em> ()</span></p></td>
<td>Prepare the device to operate with the specified parameters.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.unprepare"></a>unprepare</code></em> ()</span></p></td>
<td>Undo operations done in prepare.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.close"></a>close</code></em> ()</span></p></td>
<td>Close the device.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.write"></a>write</code></em> ()</span></p></td>
<td>Write data to the device.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.delay"></a>delay</code></em> ()</span></p></td>
<td>Return how many samples are still in the device. This is used to
drive the synchronisation.</td>
</tr>
<tr>
<td><p><span class="term"><em class="structfield"><code><a name="GstAudioSinkClass.reset"></a>reset</code></em> ()</span></p></td>
<td>Returns as quickly as possible from a write and flush any pending
samples from the device.</td>
</tr>
</tbody>
</table></div>
</div>
</div>
<div class="refsect1">
<a name="gst-plugins-base-libs-gstaudiosink.see-also"></a><h2>See Also</h2>
<a class="link" href="gst-plugins-base-libs-gstaudiobasesink.html#GstAudioBaseSink"><span class="type">GstAudioBaseSink</span></a>, <a class="link" href="gst-plugins-base-libs-gstaudioringbuffer.html#GstAudioRingBuffer"><span class="type">GstAudioRingBuffer</span></a>, <a class="link" href="gst-plugins-base-libs-gstaudiosink.html#GstAudioSink"><span class="type">GstAudioSink</span></a>.
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.18</div>
</body>
</html>