diff --git a/gst/filter/Makefile.am b/gst/filter/Makefile.am deleted file mode 100644 index 8d9d8a49fd..0000000000 --- a/gst/filter/Makefile.am +++ /dev/null @@ -1,17 +0,0 @@ - -plugin_LTLIBRARIES = libgstfilter.la - -libgstfilter_la_SOURCES = gstfilter.c gstiir.c iir.c -libgstfilter_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GST_CONTROLLER_CFLAGS) -libgstfilter_la_LIBADD = \ - $(GST_BASE_LIBS) \ - $(GST_LIBS) \ - $(GST_CONTROLLER_LIBS) \ - $(GST_PLUGINS_BASE_LIBS) \ - -lgstaudio-$(GST_MAJORMINOR) \ - $(LIBM) - -libgstfilter_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -libgstfilter_la_LIBTOOLFLAGS = --tag=disable-static - -noinst_HEADERS = gstfilter.h gstiir.h iir.h diff --git a/gst/filter/filter.vcproj b/gst/filter/filter.vcproj deleted file mode 100644 index 5b8f312446..0000000000 --- a/gst/filter/filter.vcproj +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/gst/filter/gstfilter.c b/gst/filter/gstfilter.c deleted file mode 100644 index 11c43cc517..0000000000 --- a/gst/filter/gstfilter.c +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- c-basic-offset: 2 -*- - * - * GStreamer - * Copyright (C) 1999,2000 Erik Walthinsen - * 2000 Wim Taymans - * 2006 Dreamlab Technologies Ltd. - * - * gstfilter.c: element for filter plug-ins - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include "gstfilter.h" -#include -#include - -struct _elements_entry -{ - gchar *name; - GType (*type) (void); -}; - -static struct _elements_entry _elements[] = { - {"iir", gst_iir_get_type}, - {NULL, 0}, -}; - -static gboolean -plugin_init (GstPlugin * plugin) -{ - gint i = 0; - - /* initialize gst controller library */ - gst_controller_init (NULL, NULL); - - while (_elements[i].name) { - if (!gst_element_register (plugin, _elements[i].name, GST_RANK_NONE, - _elements[i].type ())) - return FALSE; - - i++; - } - - return TRUE; -} - -GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, - GST_VERSION_MINOR, - "filter", - "IIR audio filter element", - plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); diff --git a/gst/filter/gstfilter.h b/gst/filter/gstfilter.h deleted file mode 100644 index d676fa3b5b..0000000000 --- a/gst/filter/gstfilter.h +++ /dev/null @@ -1,33 +0,0 @@ -/* -*- c-basic-offset: 2 -*- - * - * GStreamer - * Copyright (C) 1999,2000 Erik Walthinsen - * 2000 Wim Taymans - * 2006 Dreamlab Technologies Ltd. - * - * gstfilter.h: element for filter plug-ins - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - - -#ifndef __GST_FILTER_H__ -#define __GST_FILTER_H__ - -#include -GType gst_iir_get_type (void); - -#endif /* __GST_FILTER_H__ */ diff --git a/gst/filter/gstiir.c b/gst/filter/gstiir.c deleted file mode 100644 index 513650cba2..0000000000 --- a/gst/filter/gstiir.c +++ /dev/null @@ -1,253 +0,0 @@ -/* -*- c-basic-offset: 2 -*- - * - * GStreamer - * Copyright (C) 1999-2001 Erik Walthinsen - * 2006 Dreamlab Technologies Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include -#include - -#include "gstiir.h" - -#define GST_CAT_DEFAULT gst_iir_debug -GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); - -/* Filter signals and args */ -enum -{ - /* FILL ME */ - LAST_SIGNAL -}; - -enum -{ - PROP_0, - PROP_A, - PROP_B, - PROP_GAIN, - PROP_STAGES -}; - -static GstStaticPadTemplate iir_sink_template = GST_STATIC_PAD_TEMPLATE ("sink", - GST_PAD_SINK, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-raw-float, " - "rate = (int) [ 1, MAX ], " - "channels = (int) [ 1, MAX ], " - "endianness = (int) BYTE_ORDER, " "width = (int) 32") - ); - -static GstStaticPadTemplate iir_src_template = GST_STATIC_PAD_TEMPLATE ("src", - GST_PAD_SRC, - GST_PAD_ALWAYS, - GST_STATIC_CAPS ("audio/x-raw-float, " - "rate = (int) [ 1, MAX ], " - "channels = (int) [ 1, MAX ], " - "endianness = (int) BYTE_ORDER, " "width = (int) 32") - ); - -#define DEBUG_INIT(bla) \ - GST_DEBUG_CATEGORY_INIT (gst_iir_debug, "iir", 0, "Infinite Impulse Response (IIR) filter plugin"); - -GST_BOILERPLATE_FULL (GstIIR, gst_iir, GstBaseTransform, - GST_TYPE_BASE_TRANSFORM, DEBUG_INIT); - -static void iir_set_property (GObject * object, guint prop_id, - const GValue * value, GParamSpec * pspec); -static void iir_get_property (GObject * object, guint prop_id, - GValue * value, GParamSpec * pspec); - -static GstFlowReturn iir_transform_ip (GstBaseTransform * base, - GstBuffer * outbuf); -static gboolean iir_set_caps (GstBaseTransform * base, GstCaps * incaps, - GstCaps * outcaps); - -/* Element class */ - -static void -gst_iir_dispose (GObject * object) -{ - G_OBJECT_CLASS (parent_class)->dispose (object); -} - -static void -gst_iir_base_init (gpointer g_class) -{ - GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); - - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&iir_src_template)); - gst_element_class_add_pad_template (element_class, - gst_static_pad_template_get (&iir_sink_template)); - gst_element_class_set_details_simple (element_class, - "Infinite Impulse Response (IIR) filter", "Filter/Effect/Audio", - "IIR filter based on vorbis code", - "Monty , " - "Thomas Vander Stichele , " - "Dreamlab Technologies Ltd. "); -} - -static void -gst_iir_class_init (GstIIRClass * klass) -{ - GObjectClass *gobject_class; - GstBaseTransformClass *trans_class; - - gobject_class = (GObjectClass *) klass; - trans_class = (GstBaseTransformClass *) klass; - - gobject_class->set_property = iir_set_property; - gobject_class->get_property = iir_get_property; - gobject_class->dispose = gst_iir_dispose; - - g_object_class_install_property (gobject_class, PROP_A, - g_param_spec_double ("A", "A", "A filter coefficient", - -G_MAXDOUBLE, G_MAXDOUBLE, 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, PROP_B, - g_param_spec_double ("B", "B", "B filter coefficient", - -G_MAXDOUBLE, G_MAXDOUBLE, 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, PROP_GAIN, - g_param_spec_double ("gain", "Gain", "Filter gain", - -G_MAXDOUBLE, G_MAXDOUBLE, 0, - G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - g_object_class_install_property (gobject_class, PROP_STAGES, - g_param_spec_int ("stages", "Stages", "Number of filter stages", - 1, G_MAXINT, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); - - trans_class->transform_ip = GST_DEBUG_FUNCPTR (iir_transform_ip); - trans_class->set_caps = GST_DEBUG_FUNCPTR (iir_set_caps); -} - -static void -gst_iir_init (GstIIR * this, GstIIRClass * g_class) -{ - this->A = 0.0; - this->B = 0.0; - this->gain = 1.0; /* unity gain as default */ - this->stages = 1; - this->state = NULL; -} - - -/* GstBaseTransform vmethod implementations */ - -/* get notified of caps and plug in the correct process function */ -static gboolean -iir_set_caps (GstBaseTransform * base, GstCaps * incaps, GstCaps * outcaps) -{ - GstIIR *this = GST_IIR (base); - - GST_DEBUG_OBJECT (this, - "set_caps: in %" GST_PTR_FORMAT " out %" GST_PTR_FORMAT, incaps, outcaps); - - /* FIXME: remember to free it */ - this->state = (IIR_state *) g_malloc (sizeof (IIR_state)); - IIR_init (this->state, this->stages, this->gain, &(this->A), &(this->B)); - - return TRUE; -} - -static GstFlowReturn -iir_transform_ip (GstBaseTransform * base, GstBuffer * outbuf) -{ - GstIIR *this = GST_IIR (base); - GstClockTime timestamp; - - gfloat *src; - int i; - - /* don't process data in passthrough-mode */ - if (gst_base_transform_is_passthrough (base)) - return GST_FLOW_OK; - - /* FIXME: subdivide GST_BUFFER_SIZE into small chunks for smooth fades */ - timestamp = GST_BUFFER_TIMESTAMP (outbuf); - - if (GST_CLOCK_TIME_IS_VALID (timestamp)) - gst_object_sync_values (G_OBJECT (this), timestamp); - - src = (gfloat *) GST_BUFFER_DATA (outbuf); - - /* do an in-place edit */ - for (i = 0; i < GST_BUFFER_SIZE (outbuf) / sizeof (gfloat); ++i) - *(src + i) = (gfloat) IIR_filter (this->state, (double) *(src + i)); - - return GST_FLOW_OK; -} - -static void -iir_set_property (GObject * object, guint prop_id, const GValue * value, - GParamSpec * pspec) -{ - GstIIR *this = GST_IIR (object); - - g_return_if_fail (GST_IS_IIR (this)); - - switch (prop_id) { - case PROP_A: - this->A = g_value_get_double (value); - break; - case PROP_B: - this->B = g_value_get_double (value); - break; - case PROP_GAIN: - this->gain = g_value_get_double (value); - break; - case PROP_STAGES: - this->stages = g_value_get_int (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -iir_get_property (GObject * object, guint prop_id, GValue * value, - GParamSpec * pspec) -{ - GstIIR *this = GST_IIR (object); - - switch (prop_id) { - case PROP_A: - g_value_set_double (value, this->A); - break; - case PROP_B: - g_value_set_double (value, this->B); - break; - case PROP_GAIN: - g_value_set_double (value, this->gain); - break; - case PROP_STAGES: - g_value_set_int (value, this->stages); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} diff --git a/gst/filter/gstiir.h b/gst/filter/gstiir.h deleted file mode 100644 index 5a9a0c0ef5..0000000000 --- a/gst/filter/gstiir.h +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- c-basic-offset: 2 -*- - * - * GStreamer - * Copyright (C) 1999-2001 Erik Walthinsen - * 2006 Dreamlab Technologies Ltd. - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef __GST_IIR_H__ -#define __GST_IIR_H__ - -#include "gstfilter.h" -#include "iir.h" -#include -#include - -G_BEGIN_DECLS - -#define GST_TYPE_IIR \ - (gst_iir_get_type()) -#define GST_IIR(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_IIR,GstIIR)) -#define GST_IIR_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_IIR,GstIIRClass)) -#define GST_IS_IIR(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_IIR)) -#define GST_IS_IIR_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_IIR)) - -typedef struct _GstIIR GstIIR; -typedef struct _GstIIRClass GstIIRClass; - -/** - * GstIIR: - * - * Opaque data structure. - */ -struct _GstIIR { - GstBaseTransform element; - - double A, B; - double gain; - int stages; - IIR_state *state; -}; - -struct _GstIIRClass { - GstBaseTransformClass parent_class; -}; - -G_END_DECLS - -#endif /* __GST_IIR_H__ */ diff --git a/gst/filter/iir.c b/gst/filter/iir.c deleted file mode 100644 index 8bf629b6a4..0000000000 --- a/gst/filter/iir.c +++ /dev/null @@ -1,348 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-2000 * - * by Monty and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: Direct Form I, II IIR filters, plus some specializations - last mod: $Id$ - - ********************************************************************/ - -/* LPC is actually a degenerate case of form I/II filters, but we need - both */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include -#include -#include "iir.h" - -void -IIR_init (IIR_state * s, int stages, double gain, double *A, double *B) -{ - memset (s, 0, sizeof (IIR_state)); - s->stages = stages; - s->gain = gain; - s->coeff_A = malloc (stages * sizeof (double)); - s->coeff_B = malloc ((stages + 1) * sizeof (double)); - s->z_A = calloc (stages * 2, sizeof (double)); - s->z_B = calloc (stages * 2, sizeof (double)); - - memcpy (s->coeff_A, A, stages * sizeof (double)); - memcpy (s->coeff_B, B, (stages + 1) * sizeof (double)); -} - -void -IIR_clear (IIR_state * s) -{ - if (s) { - free (s->coeff_A); - free (s->coeff_B); - free (s->z_A); - free (s->z_B); - memset (s, 0, sizeof (IIR_state)); - } -} - -double -IIR_filter (IIR_state * s, double in) -{ - int stages = s->stages, i; - double newA; - double newB = 0; - double *zA = s->z_A + s->ring; - - newA = in /= s->gain; - for (i = 0; i < stages; i++) { - newA += s->coeff_A[i] * zA[i]; - newB += s->coeff_B[i] * zA[i]; - } - newB += newA * s->coeff_B[stages]; - - zA[0] = zA[stages] = newA; - if (++s->ring >= stages) - s->ring = 0; - - return (newB); -} - -/* this assumes the symmetrical structure of the feed-forward stage of - a Chebyshev bandpass to save multiplies */ -double -IIR_filter_ChebBand (IIR_state * s, double in) -{ - int stages = s->stages, i; - double newA; - double newB = 0; - double *zA = s->z_A + s->ring; - - newA = in /= s->gain; - - newA += s->coeff_A[0] * zA[0]; - for (i = 1; i < (stages >> 1); i++) { - newA += s->coeff_A[i] * zA[i]; - newB += s->coeff_B[i] * (zA[i] - zA[stages - i]); - } - newB += s->coeff_B[i] * zA[i]; - for (; i < stages; i++) - newA += s->coeff_A[i] * zA[i]; - - newB += newA - zA[0]; - - zA[0] = zA[stages] = newA; - if (++s->ring >= stages) - s->ring = 0; - - return (newB); -} - -#ifdef _V_SELFTEST - -/* z^-stage, z^-stage+1... */ -static double cheb_bandpass_B[] = - { -1., 0., 5., 0., -10., 0., 10., 0., -5., 0., 1 }; -static double cheb_bandpass_A[] = { -0.6665900311, - 1.0070146601, - -3.1262875409, - 3.5017171569, - -6.2779211945, - 5.2966481740, - -6.7570216587, - 4.0760335768, - -3.9134284363, - 1.3997338886 -}; - -static double data[128] = { - 0.0426331, - 0.0384521, - 0.0345764, - 0.0346069, - 0.0314636, - 0.0310059, - 0.0318604, - 0.0336304, - 0.036438, - 0.0348511, - 0.0354919, - 0.0343628, - 0.0325623, - 0.0318909, - 0.0263367, - 0.0225525, - 0.0195618, - 0.0160828, - 0.0168762, - 0.0145569, - 0.0126343, - 0.0127258, - 0.00820923, - 0.00787354, - 0.00558472, - 0.00204468, - 3.05176e-05, - -0.00357056, - -0.00570679, - -0.00991821, - -0.0101013, - -0.00881958, - -0.0108948, - -0.0110168, - -0.0119324, - -0.0161438, - -0.0194702, - -0.0229187, - -0.0260315, - -0.0282288, - -0.0306091, - -0.0330505, - -0.0364685, - -0.0385742, - -0.0428772, - -0.043457, - -0.0425415, - -0.0462341, - -0.0467529, - -0.0489807, - -0.0520325, - -0.0558167, - -0.0596924, - -0.0591431, - -0.0612793, - -0.0618591, - -0.0615845, - -0.0634155, - -0.0639648, - -0.0683594, - -0.0718079, - -0.0729675, - -0.0791931, - -0.0860901, - -0.0885315, - -0.088623, - -0.089386, - -0.0899353, - -0.0886841, - -0.0910645, - -0.0948181, - -0.0919495, - -0.0891418, - -0.0916443, - -0.096344, - -0.100464, - -0.105499, - -0.108612, - -0.112213, - -0.117676, - -0.120911, - -0.124329, - -0.122162, - -0.120605, - -0.12326, - -0.12619, - -0.128998, - -0.13205, - -0.134247, - -0.137939, - -0.143555, - -0.14389, - -0.14859, - -0.153717, - -0.159851, - -0.164551, - -0.162811, - -0.164276, - -0.156952, - -0.140564, - -0.123291, - -0.10321, - -0.0827637, - -0.0652466, - -0.053772, - -0.0509949, - -0.0577698, - -0.0818176, - -0.114929, - -0.148895, - -0.181122, - -0.200714, - -0.21048, - -0.203644, - -0.179413, - -0.145325, - -0.104492, - -0.0658264, - -0.0332031, - -0.0106201, - -0.00363159, - -0.00909424, - -0.0244141, - -0.0422058, - -0.0537415, - -0.0610046, - -0.0609741, - -0.0547791 -}; - -/* comparison test code from http://www-users.cs.york.ac.uk/~fisher/mkfilter/ - (the above page kicks ass, BTW)*/ - -#define NZEROS 10 -#define NPOLES 10 -#define GAIN 4.599477515e+02 - -static float xv[NZEROS + 1], yv[NPOLES + 1]; - -static double -filterloop (double next) -{ - xv[0] = xv[1]; - xv[1] = xv[2]; - xv[2] = xv[3]; - xv[3] = xv[4]; - xv[4] = xv[5]; - xv[5] = xv[6]; - xv[6] = xv[7]; - xv[7] = xv[8]; - xv[8] = xv[9]; - xv[9] = xv[10]; - xv[10] = next / GAIN; - yv[0] = yv[1]; - yv[1] = yv[2]; - yv[2] = yv[3]; - yv[3] = yv[4]; - yv[4] = yv[5]; - yv[5] = yv[6]; - yv[6] = yv[7]; - yv[7] = yv[8]; - yv[8] = yv[9]; - yv[9] = yv[10]; - yv[10] = (xv[10] - xv[0]) + 5 * (xv[2] - xv[8]) + 10 * (xv[6] - xv[4]) - + (-0.6665900311 * yv[0]) + (1.0070146601 * yv[1]) - + (-3.1262875409 * yv[2]) + (3.5017171569 * yv[3]) - + (-6.2779211945 * yv[4]) + (5.2966481740 * yv[5]) - + (-6.7570216587 * yv[6]) + (4.0760335768 * yv[7]) - + (-3.9134284363 * yv[8]) + (1.3997338886 * yv[9]); - return (yv[10]); -} - -#include -int -main () -{ - - /* run the pregenerated Chebyshev filter, then our own distillation - through the generic and specialized code */ - double *work = malloc (128 * sizeof (double)); - IIR_state iir; - int i; - - for (i = 0; i < 128; i++) - work[i] = filterloop (data[i]); - { - FILE *out = fopen ("IIR_ref.m", "w"); - - for (i = 0; i < 128; i++) - fprintf (out, "%g\n", work[i]); - fclose (out); - } - - IIR_init (&iir, NPOLES, GAIN, cheb_bandpass_A, cheb_bandpass_B); - for (i = 0; i < 128; i++) - work[i] = IIR_filter (&iir, data[i]); - { - FILE *out = fopen ("IIR_gen.m", "w"); - - for (i = 0; i < 128; i++) - fprintf (out, "%g\n", work[i]); - fclose (out); - } - IIR_clear (&iir); - - IIR_init (&iir, NPOLES, GAIN, cheb_bandpass_A, cheb_bandpass_B); - for (i = 0; i < 128; i++) - work[i] = IIR_filter_ChebBand (&iir, data[i]); - { - FILE *out = fopen ("IIR_cheb.m", "w"); - - for (i = 0; i < 128; i++) - fprintf (out, "%g\n", work[i]); - fclose (out); - } - IIR_clear (&iir); - - return (0); -} - -#endif diff --git a/gst/filter/iir.h b/gst/filter/iir.h deleted file mode 100644 index 241cc1d2d9..0000000000 --- a/gst/filter/iir.h +++ /dev/null @@ -1,37 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg Vorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS SOURCE IS GOVERNED BY * - * THE GNU PUBLIC LICENSE 2, WHICH IS INCLUDED WITH THIS SOURCE. * - * PLEASE READ THESE TERMS DISTRIBUTING. * - * * - * THE OggSQUISH SOURCE CODE IS (C) COPYRIGHT 1994-2000 * - * by Monty and The XIPHOPHORUS Company * - * http://www.xiph.org/ * - * * - ******************************************************************** - - function: Direct Form I, II IIR filters, plus some specializations - last mod: $Id$ - - ********************************************************************/ - -#ifndef _V_IIR_H_ -#define _V_IIR_H_ - -typedef struct { - int stages; - double *coeff_A; - double *coeff_B; - double *z_A; - double *z_B; - int ring; - double gain; -} IIR_state; - -void IIR_init(IIR_state *s,int stages,double gain, double *A, double *B); -void IIR_clear(IIR_state *s); -double IIR_filter(IIR_state *s,double in); -double IIR_filter_ChebBand(IIR_state *s,double in); - -#endif