summaryrefslogtreecommitdiffstats
path: root/gst/filter/iir.h
diff options
context:
space:
mode:
authorThomas Vander Stichele <thomas@apestaart.org>2002-06-04 12:28:03 +0000
committerThomas Vander Stichele <thomas@apestaart.org>2002-06-04 12:28:03 +0000
commitdeeaf69ed4cc283a099528f03a7a527f66a1c3da (patch)
tree05146ea56830f3313a8e00076cca69c0f4c0474b /gst/filter/iir.h
parente47f76f8d067fd67f5f76bac9807dba0e742f698 (diff)
downloadgst-plugins-bad-deeaf69ed4cc283a099528f03a7a527f66a1c3da.tar.gz
gst-plugins-bad-deeaf69ed4cc283a099528f03a7a527f66a1c3da.tar.bz2
gst-plugins-bad-deeaf69ed4cc283a099528f03a7a527f66a1c3da.zip
new filter subdir for standard audio filters first filter uses code from vorbis to implement an iir filter not optimi...
Original commit message from CVS: new filter subdir for standard audio filters first filter uses code from vorbis to implement an iir filter not optimized yet, iir code uses doubles and plugin uses float
Diffstat (limited to 'gst/filter/iir.h')
-rw-r--r--gst/filter/iir.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/gst/filter/iir.h b/gst/filter/iir.h
new file mode 100644
index 00000000..241cc1d2
--- /dev/null
+++ b/gst/filter/iir.h
@@ -0,0 +1,37 @@
+/********************************************************************
+ * *
+ * 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 <monty@xiph.org> 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