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_f64.h" |
23 #include "kiss_fftr_f64.h" |
24 #include "kiss_fftr_f64.h" |
24 #include "gstfft.h" |
25 #include "gstfft.h" |
25 #include "gstfftf64.h" |
26 #include "gstfftf64.h" |
26 |
27 |
27 /** |
28 /** |
76 |
77 |
77 GstFFTF64 * |
78 GstFFTF64 * |
78 gst_fft_f64_new (gint len, gboolean inverse) |
79 gst_fft_f64_new (gint len, gboolean inverse) |
79 { |
80 { |
80 GstFFTF64 *self; |
81 GstFFTF64 *self; |
|
82 gsize subsize = 0, memneeded; |
81 |
83 |
82 g_return_val_if_fail (len > 0, NULL); |
84 g_return_val_if_fail (len > 0, NULL); |
83 g_return_val_if_fail (len % 2 == 0, NULL); |
85 g_return_val_if_fail (len % 2 == 0, NULL); |
84 |
86 |
85 self = g_new (GstFFTF64, 1); |
87 kiss_fftr_f64_alloc (len, (inverse) ? 1 : 0, NULL, &subsize); |
86 |
88 memneeded = ALIGN_STRUCT (sizeof (GstFFTF64)) + subsize; |
87 self->cfg = kiss_fftr_f64_alloc (len, (inverse) ? 1 : 0, NULL, NULL); |
89 |
|
90 self = (GstFFTF64 *) g_malloc0 (memneeded); |
|
91 |
|
92 self->cfg = (((guint8 *) self) + ALIGN_STRUCT (sizeof (GstFFTF64))); |
|
93 self->cfg = kiss_fftr_f64_alloc (len, (inverse) ? 1 : 0, self->cfg, &subsize); |
88 g_assert (self->cfg); |
94 g_assert (self->cfg); |
89 |
95 |
90 self->inverse = inverse; |
96 self->inverse = inverse; |
91 self->len = len; |
97 self->len = len; |
92 |
98 |
166 #endif |
172 #endif |
167 |
173 |
168 void |
174 void |
169 gst_fft_f64_free (GstFFTF64 * self) |
175 gst_fft_f64_free (GstFFTF64 * self) |
170 { |
176 { |
171 kiss_fftr_f64_free (self->cfg); |
|
172 g_free (self); |
177 g_free (self); |
173 } |
178 } |
174 |
179 |
175 /** |
180 /** |
176 * gst_fft_f64_window: |
181 * gst_fft_f64_window: |