summaryrefslogtreecommitdiffstats
path: root/gst/spectrum/gstspectrum.h
diff options
context:
space:
mode:
Diffstat (limited to 'gst/spectrum/gstspectrum.h')
-rw-r--r--gst/spectrum/gstspectrum.h23
1 files changed, 15 insertions, 8 deletions
diff --git a/gst/spectrum/gstspectrum.h b/gst/spectrum/gstspectrum.h
index 70ab25c9..a32d4ccf 100644
--- a/gst/spectrum/gstspectrum.h
+++ b/gst/spectrum/gstspectrum.h
@@ -25,6 +25,7 @@
#include <gst/gst.h>
#include <gst/base/gstadapter.h>
#include <gst/base/gstbasetransform.h>
+#include <gst/audio/gstaudiofilter.h>
#ifdef __cplusplus
extern "C" {
@@ -39,9 +40,11 @@ extern "C" {
typedef struct _GstSpectrum GstSpectrum;
typedef struct _GstSpectrumClass GstSpectrumClass;
+typedef void (*GstSpectrumProcessFunc) (GstSpectrum *, const guint8 *);
+typedef void (*GstSpectrumFFTFreeFunc) (void *);
struct _GstSpectrum {
- GstBaseTransform element;
+ GstAudioFilter element;
GstPad *sinkpad,*srcpad;
GstAdapter *adapter;
@@ -49,24 +52,28 @@ struct _GstSpectrum {
/* properties */
gboolean message; /* whether or not to post messages */
+ gboolean message_magnitude;
+ gboolean message_phase;
guint64 interval; /* how many seconds between emits */
guint bands; /* number of spectrum bands */
gint threshold; /* energy level treshold */
gint num_frames; /* frame count (1 sample per channel)
* since last emit */
+ gint num_fft; /* number of FFTs since last emit */
- gint rate; /* caps variables */
- gint channels;
-
/* <private> */
- gint base, len;
- gint16 *re, *im, *loud;
- guchar *spect;
+ gfloat *spect_magnitude;
+ gfloat *spect_phase;
+ GstSpectrumProcessFunc process;
+ void *fft_ctx;
+ GstSpectrumFFTFreeFunc fft_free_func;
+ void *in;
+ void *freqdata;
};
struct _GstSpectrumClass {
- GstBaseTransformClass parent_class;
+ GstAudioFilterClass parent_class;
};
GType gst_spectrum_get_type (void);