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