summaryrefslogtreecommitdiff
path: root/gst/audiofx/audiofxbasefirfilter.h
diff options
context:
space:
mode:
Diffstat (limited to 'gst/audiofx/audiofxbasefirfilter.h')
-rw-r--r--gst/audiofx/audiofxbasefirfilter.h22
1 files changed, 16 insertions, 6 deletions
diff --git a/gst/audiofx/audiofxbasefirfilter.h b/gst/audiofx/audiofxbasefirfilter.h
index aa03b1c7d..fd3c3bd4a 100644
--- a/gst/audiofx/audiofxbasefirfilter.h
+++ b/gst/audiofx/audiofxbasefirfilter.h
@@ -27,6 +27,7 @@
#include <gst/gst.h>
#include <gst/audio/gstaudiofilter.h>
+#include <gst/fft/gstfftf64.h>
G_BEGIN_DECLS
@@ -54,17 +55,26 @@ typedef guint (*GstAudioFXBaseFIRFilterProcessFunc) (GstAudioFXBaseFIRFilter *,
struct _GstAudioFXBaseFIRFilter {
GstAudioFilter element;
- /* < private > */
- GstAudioFXBaseFIRFilterProcessFunc process;
-
+ /* properties */
gdouble *kernel; /* filter kernel -- time domain */
guint kernel_length; /* length of the filter kernel -- time domain */
+ guint64 latency; /* pre-latency of the filter kernel */
+
+ /* < private > */
+ GstAudioFXBaseFIRFilterProcessFunc process;
+
gdouble *buffer; /* buffer for storing samples of previous buffers */
guint buffer_fill; /* fill level of buffer */
- guint buffer_length; /* length of the buffer */
-
- guint64 latency;
+ guint buffer_length; /* length of the buffer -- meaning depends on processing mode */
+
+ /* FFT convolution specific data */
+ GstFFTF64 *fft;
+ GstFFTF64 *ifft;
+ GstFFTF64Complex *frequency_response; /* filter kernel -- frequency domain */
+ guint frequency_response_length; /* length of filter kernel -- frequency domain */
+ GstFFTF64Complex *fft_buffer; /* FFT buffer, has the length of the frequency response */
+ guint block_length; /* Length of the processing blocks -- time domain */
GstClockTime start_ts; /* start timestamp after a discont */
guint64 start_off; /* start offset after a discont */