gst_plugins_base/gst-libs/gst/fft/gstfftf32.c
changeset 16 8e837d1bf446
parent 0 0e761a78d257
child 30 7e817e7e631c
equal deleted inserted replaced
15:4b0c6ed43234 16:8e837d1bf446
    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"
    23 #include "kiss_fftr_f32.h"
    24 #include "kiss_fftr_f32.h"
    24 #include "gstfft.h"
    25 #include "gstfft.h"
    25 #include "gstfftf32.h"
    26 #include "gstfftf32.h"
    26 
    27 
    27 /**
    28 /**
    76 
    77 
    77 GstFFTF32 *
    78 GstFFTF32 *
    78 gst_fft_f32_new (gint len, gboolean inverse)
    79 gst_fft_f32_new (gint len, gboolean inverse)
    79 {
    80 {
    80   GstFFTF32 *self;
    81   GstFFTF32 *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 (GstFFTF32, 1);
    87   kiss_fftr_f32_alloc (len, (inverse) ? 1 : 0, NULL, &subsize);
    86 
    88   memneeded = ALIGN_STRUCT (sizeof (GstFFTF32)) + subsize;
    87   self->cfg = kiss_fftr_f32_alloc (len, (inverse) ? 1 : 0, NULL, NULL);
    89 
       
    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);
    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_f32_free (GstFFTF32 * self)
   175 gst_fft_f32_free (GstFFTF32 * self)
   170 {
   176 {
   171   kiss_fftr_f32_free (self->cfg);
       
   172   g_free (self);
   177   g_free (self);
   173 }
   178 }
   174 
   179 
   175 /**
   180 /**
   176  * gst_fft_f32_window:
   181  * gst_fft_f32_window: