equal
deleted
inserted
replaced
18 */ |
18 */ |
19 |
19 |
20 #include <glib.h> |
20 #include <glib.h> |
21 #include <math.h> |
21 #include <math.h> |
22 |
22 |
23 #include "_kiss_fft_guts_f32.h" |
|
24 #include "kiss_fftr_f32.h" |
23 #include "kiss_fftr_f32.h" |
25 #include "gstfft.h" |
24 #include "gstfft.h" |
26 #include "gstfftf32.h" |
25 #include "gstfftf32.h" |
27 |
26 |
28 /** |
27 /** |
77 |
76 |
78 GstFFTF32 * |
77 GstFFTF32 * |
79 gst_fft_f32_new (gint len, gboolean inverse) |
78 gst_fft_f32_new (gint len, gboolean inverse) |
80 { |
79 { |
81 GstFFTF32 *self; |
80 GstFFTF32 *self; |
82 gsize subsize = 0, memneeded; |
|
83 |
81 |
84 g_return_val_if_fail (len > 0, NULL); |
82 g_return_val_if_fail (len > 0, NULL); |
85 g_return_val_if_fail (len % 2 == 0, NULL); |
83 g_return_val_if_fail (len % 2 == 0, NULL); |
86 |
84 |
87 kiss_fftr_f32_alloc (len, (inverse) ? 1 : 0, NULL, &subsize); |
85 self = g_new (GstFFTF32, 1); |
88 memneeded = ALIGN_STRUCT (sizeof (GstFFTF32)) + subsize; |
86 |
89 |
87 self->cfg = kiss_fftr_f32_alloc (len, (inverse) ? 1 : 0, NULL, NULL); |
90 self = (GstFFTF32 *) g_malloc0 (memneeded); |
|
91 |
|
92 self->cfg = (((guint8 *) self) + ALIGN_STRUCT (sizeof (GstFFTF32))); |
|
93 self->cfg = kiss_fftr_f32_alloc (len, (inverse) ? 1 : 0, self->cfg, &subsize); |
|
94 g_assert (self->cfg); |
88 g_assert (self->cfg); |
95 |
89 |
96 self->inverse = inverse; |
90 self->inverse = inverse; |
97 self->len = len; |
91 self->len = len; |
98 |
92 |
172 #endif |
166 #endif |
173 |
167 |
174 void |
168 void |
175 gst_fft_f32_free (GstFFTF32 * self) |
169 gst_fft_f32_free (GstFFTF32 * self) |
176 { |
170 { |
|
171 kiss_fftr_f32_free (self->cfg); |
177 g_free (self); |
172 g_free (self); |
178 } |
173 } |
179 |
174 |
180 /** |
175 /** |
181 * gst_fft_f32_window: |
176 * gst_fft_f32_window: |