summaryrefslogtreecommitdiffstats
path: root/gst/audiofx/audiochebband.h
diff options
context:
space:
mode:
authorSebastian Dröge <slomo@circular-chaos.org>2009-01-05 10:13:29 +0000
committerSebastian Dröge <slomo@circular-chaos.org>2009-01-05 10:13:29 +0000
commit4c7c4c00dacff24aaef55b46a8bc31687d833ca7 (patch)
treefaf0ffeb8a97888d8132e2c03ca89dd7b34d155b /gst/audiofx/audiochebband.h
parent17bb67f873a0bd3c4e631ed510a15799c253fc18 (diff)
gst/audiofx/: Implement a base class for IIR filters.
Original commit message from CVS: * gst/audiofx/Makefile.am: * gst/audiofx/audiofxbaseiirfilter.c: (gst_audio_fx_base_iir_filter_base_init), (gst_audio_fx_base_iir_filter_dispose), (gst_audio_fx_base_iir_filter_class_init), (gst_audio_fx_base_iir_filter_init), (gst_audio_fx_base_iir_filter_calculate_gain), (gst_audio_fx_base_iir_filter_set_coefficients), (gst_audio_fx_base_iir_filter_setup), (process), (gst_audio_fx_base_iir_filter_transform_ip), (gst_audio_fx_base_iir_filter_stop): * gst/audiofx/audiofxbaseiirfilter.h: Implement a base class for IIR filters. * gst/audiofx/audiochebband.c: (gst_audio_cheb_band_base_init), (gst_audio_cheb_band_class_init), (gst_audio_cheb_band_init), (generate_coefficients), (gst_audio_cheb_band_set_property), (gst_audio_cheb_band_setup): * gst/audiofx/audiochebband.h: * gst/audiofx/audiocheblimit.c: (gst_audio_cheb_limit_base_init), (gst_audio_cheb_limit_class_init), (gst_audio_cheb_limit_init), (generate_coefficients), (gst_audio_cheb_limit_set_property), (gst_audio_cheb_limit_setup): * gst/audiofx/audiocheblimit.h: Use the IIR filter base class for the chebyshev filters.
Diffstat (limited to 'gst/audiofx/audiochebband.h')
-rw-r--r--gst/audiofx/audiochebband.h28
1 files changed, 5 insertions, 23 deletions
diff --git a/gst/audiofx/audiochebband.h b/gst/audiofx/audiochebband.h
index ece011ab..fae1a0c6 100644
--- a/gst/audiofx/audiochebband.h
+++ b/gst/audiofx/audiochebband.h
@@ -1,6 +1,6 @@
/*
* GStreamer
- * Copyright (C) 2007 Sebastian Dröge <slomo@circular-chaos.org>
+ * Copyright (C) 2007-2009 Sebastian Dröge <sebastian.droege@collabora.co.uk>
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
@@ -26,6 +26,8 @@
#include <gst/audio/audio.h>
#include <gst/audio/gstaudiofilter.h>
+#include "audiofxbaseiirfilter.h"
+
G_BEGIN_DECLS
#define GST_TYPE_AUDIO_CHEB_BAND (gst_audio_cheb_band_get_type())
#define GST_AUDIO_CHEB_BAND(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_AUDIO_CHEB_BAND,GstAudioChebBand))
@@ -36,19 +38,9 @@ G_BEGIN_DECLS
typedef struct _GstAudioChebBand GstAudioChebBand;
typedef struct _GstAudioChebBandClass GstAudioChebBandClass;
-typedef void (*GstAudioChebBandProcessFunc) (GstAudioChebBand *, guint8 *, guint);
-
-typedef struct
-{
- gdouble *x;
- gint x_pos;
- gdouble *y;
- gint y_pos;
-} GstAudioChebBandChannelCtx;
-
struct _GstAudioChebBand
{
- GstAudioFilter audiofilter;
+ GstAudioFXBaseIIRFilter parent;
gint mode;
gint type;
@@ -56,21 +48,11 @@ struct _GstAudioChebBand
gfloat lower_frequency;
gfloat upper_frequency;
gfloat ripple;
-
- /* < private > */
- GstAudioChebBandProcessFunc process;
-
- gboolean have_coeffs;
- gdouble *a;
- gint num_a;
- gdouble *b;
- gint num_b;
- GstAudioChebBandChannelCtx *channels;
};
struct _GstAudioChebBandClass
{
- GstAudioFilterClass parent;
+ GstAudioFXBaseIIRFilterClass parent;
};
GType gst_audio_cheb_band_get_type (void);