diff options
author | Thomas Vander Stichele <thomas@apestaart.org> | 2002-06-04 12:28:03 +0000 |
---|---|---|
committer | Thomas Vander Stichele <thomas@apestaart.org> | 2002-06-04 12:28:03 +0000 |
commit | deeaf69ed4cc283a099528f03a7a527f66a1c3da (patch) | |
tree | 05146ea56830f3313a8e00076cca69c0f4c0474b /gst/filter/iir.h | |
parent | e47f76f8d067fd67f5f76bac9807dba0e742f698 (diff) | |
download | gst-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.h | 37 |
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 |