summaryrefslogtreecommitdiffstats
path: root/gst/filter/gstbpwsinc.h
diff options
context:
space:
mode:
Diffstat (limited to 'gst/filter/gstbpwsinc.h')
-rw-r--r--gst/filter/gstbpwsinc.h20
1 files changed, 10 insertions, 10 deletions
diff --git a/gst/filter/gstbpwsinc.h b/gst/filter/gstbpwsinc.h
index af5938d5..3bbb3e01 100644
--- a/gst/filter/gstbpwsinc.h
+++ b/gst/filter/gstbpwsinc.h
@@ -25,10 +25,6 @@
* chapter 16
* available at http://www.dspguide.com/
*
- * FIXME:
- * - this filter is totally unoptimized !
- * - we do not destroy the allocated memory for filters and residue
- * - this might be improved upon with bytestream
*/
#ifndef __GST_BPWSINC_H__
@@ -54,6 +50,8 @@ G_BEGIN_DECLS
typedef struct _GstBPWSinc GstBPWSinc;
typedef struct _GstBPWSincClass GstBPWSincClass;
+typedef void (*GstBPWSincProcessFunc) (GstBPWSinc *, guint8 *, guint8 *, guint);
+
/**
* GstBPWSinc:
*
@@ -62,13 +60,15 @@ typedef struct _GstBPWSincClass GstBPWSincClass;
struct _GstBPWSinc {
GstAudioFilter element;
- double frequency;
- double lower_frequency, upper_frequency;
- int wing_size; /* length of a "wing" of the filter;
- actual length is 2 * wing_size + 1 */
+ GstBPWSincProcessFunc process;
+
+ gdouble frequency;
+ gdouble lower_frequency, upper_frequency;
+ gint kernel_length; /* length of the filter kernel */
- gfloat *residue; /* buffer for left-over samples from previous buffer */
- double *kernel;
+ gdouble *residue; /* buffer for left-over samples from previous buffer */
+ gdouble *kernel;
+ gboolean have_kernel;
};
struct _GstBPWSincClass {