<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"> <title>gstaudiofilter</title> <meta name="generator" content="DocBook XSL Stylesheets V1.72.0"> <link rel="start" href="index.html" title="GStreamer Base Plugins 0.10 Library Reference Manual"> <link rel="up" href="gstreamer-audio.html" title="Audio Library"> <link rel="prev" href="gst-plugins-base-libs-gstaudioclock.html" title="gstaudioclock"> <link rel="next" href="gst-plugins-base-libs-gstaudiomixerutils.html" title="gstaudiomixerutils"> <meta name="generator" content="GTK-Doc V1.8 (XML mode)"> <link rel="stylesheet" href="style.css" type="text/css"> <link rel="part" href="gstreamer-plugins-base.html" title="Part I. GStreamer Base Plugins Libraries"> <link rel="chapter" href="gstreamer-audio.html" title="Audio Library"> <link rel="chapter" href="gstreamer-cdda.html" title="CDDA Library"> <link rel="chapter" href="gstreamer-ffft.html" title="FFT Library"> <link rel="chapter" href="gstreamer-floatcast.html" title="FloatCast Library"> <link rel="chapter" href="gstreamer-interfaces.html" title="Interfaces Library"> <link rel="chapter" href="gstreamer-netbuffer.html" title="Network Buffer Library"> <link rel="chapter" href="gstreamer-riff.html" title="Riff Media Library"> <link rel="chapter" href="gstreamer-rtp.html" title="RTP Library"> <link rel="chapter" href="gstreamer-rtsp.html" title="RTSP Library"> <link rel="chapter" href="gstreamer-sdp.html" title="SDP Library"> <link rel="chapter" href="gstreamer-tag.html" title="Tag Support Library"> <link rel="chapter" href="gstreamer-base-utils.html" title="Base Utils Library"> <link rel="chapter" href="gstreamer-video.html" title="Video Library"> <link rel="part" href="gstreamer-libs-hierarchy.html" title="Part II. Object Hierarchy"> <link rel="index" href="api-index.html" title="Index"> </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-gstaudioclock.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 0.10 Library Reference Manual</th> <td><a accesskey="n" href="gst-plugins-base-libs-gstaudiomixerutils.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td> </tr> <tr><td colspan="5" class="shortcuts"><nobr><a href="#id2560439" class="shortcut">Top</a>  |  <a href="#id2560555" class="shortcut">Description</a>  |  <a href="#id2560507" class="shortcut">Object Hierarchy</a></nobr></td></tr> </table> <div class="refentry" lang="en"> <a name="gst-plugins-base-libs-gstaudiofilter"></a><div class="titlepage"></div> <div class="refnamediv"><table width="100%"><tr> <td valign="top"> <h2> <a name="id2560439"></a><span class="refentrytitle">gstaudiofilter</span> </h2> <p>gstaudiofilter — Base class for simple audio filters</p> </td> <td valign="top" align="right"></td> </tr></table></div> <div class="refsynopsisdiv"> <h2>Synopsis</h2> <a name="GstAudioFilter"></a><pre class="synopsis"> #include <gst/audio/gstaudiofilter.h> <a href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter-struct">GstAudioFilter</a>; <a href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass">GstAudioFilterClass</a>; void <a href="gst-plugins-base-libs-gstaudiofilter.html#gst-audio-filter-class-add-pad-templates">gst_audio_filter_class_add_pad_templates</a> (<a href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass">GstAudioFilterClass</a> *klass, const GstCaps *allowed_caps); </pre> </div> <div class="refsect1" lang="en"> <a name="id2560507"></a><h2>Object Hierarchy</h2> <pre class="synopsis"> GObject +----GstObject +----GstElement +----GstBaseTransform +----GstAudioFilter </pre> </div> <div class="refsect1" lang="en"> <a name="id2560555"></a><h2>Description</h2> <p> <a href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter"><span class="type">GstAudioFilter</span></a> is a <span class="type">GstBaseTransform-derived</span> base class for simple audio filters, ie. those that output the same format that they get as input. </p> <p> <a href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter"><span class="type">GstAudioFilter</span></a> will parse the input format for you (with error checking) before calling your setup function. Also, elements deriving from <a href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilter"><span class="type">GstAudioFilter</span></a> may use <a href="gst-plugins-base-libs-gstaudiofilter.html#gst-audio-filter-class-add-pad-templates"><code class="function">gst_audio_filter_class_add_pad_templates()</code></a> from their base_init function to easily configure the set of caps/formats that the element is able to handle. </p> <p> Derived classes should override the GstAudioFilter::<code class="function">setup()</code> and GstBaseTransform::<code class="function">transform_ip()</code> and/or GstBaseTransform::<code class="function">transform()</code> virtual functions in their class_init function.</p> <p> </p> </div> <div class="refsect1" lang="en"> <a name="id2560669"></a><h2>Details</h2> <div class="refsect2" lang="en"> <a name="id2560679"></a><h3> <a name="GstAudioFilter-struct"></a>GstAudioFilter</h3> <a class="indexterm" name="id2560692"></a><pre class="programlisting">typedef struct _GstAudioFilter GstAudioFilter;</pre> <p> Base class for audio filters with the same format for input and output.</p> <p> </p> <p class="since">Since 0.10.12 </p> </div> <hr> <div class="refsect2" lang="en"> <a name="id2560719"></a><h3> <a name="GstAudioFilterClass"></a>GstAudioFilterClass</h3> <a class="indexterm" name="id2560734"></a><pre class="programlisting">typedef struct { GstBaseTransformClass basetransformclass; /* virtual function, called whenever the format changes */ gboolean (*setup) (GstAudioFilter * filter, GstRingBufferSpec * format); } GstAudioFilterClass; </pre> <p> In addition to the <em class="parameter"><code>setup</code></em> virtual function, you should also override the GstBaseTransform::transform and/or GstBaseTransform::transform_ip virtual function.</p> <p> </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><span class="term">GstBaseTransformClass <em class="structfield"><code>basetransformclass</code></em>;</span></td> <td> </td> </tr> <tr> <td><span class="term"><em class="structfield"><code>setup</code></em> ()</span></td> <td> virtual function called whenever the format changes </td> </tr> </tbody> </table></div> <p class="since">Since 0.10.12 </p> </div> <hr> <div class="refsect2" lang="en"> <a name="id2560812"></a><h3> <a name="gst-audio-filter-class-add-pad-templates"></a>gst_audio_filter_class_add_pad_templates ()</h3> <a class="indexterm" name="id2560828"></a><pre class="programlisting">void gst_audio_filter_class_add_pad_templates (<a href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass">GstAudioFilterClass</a> *klass, const GstCaps *allowed_caps);</pre> <p> Convenience function to add pad templates to this element class, with <em class="parameter"><code>allowed_caps</code></em> as the caps that can be handled. </p> <p> This function is usually used from within a GObject base_init function.</p> <p> </p> <div class="variablelist"><table border="0"> <col align="left" valign="top"> <tbody> <tr> <td><span class="term"><em class="parameter"><code>klass</code></em> :</span></td> <td> an <a href="gst-plugins-base-libs-gstaudiofilter.html#GstAudioFilterClass"><span class="type">GstAudioFilterClass</span></a> </td> </tr> <tr> <td><span class="term"><em class="parameter"><code>allowed_caps</code></em> :</span></td> <td> what formats the filter can handle, as <span class="type">GstCaps</span> </td> </tr> </tbody> </table></div> <p class="since">Since 0.10.12 </p> </div> </div> </div> </body> </html>