gst_plugins_base/gst-libs/gst/fft/gstffts32.c
branchRCL_3
changeset 29 567bb019e3e3
parent 0 0e761a78d257
child 30 7e817e7e631c
equal deleted inserted replaced
6:9b2c3c7a1a9c 29:567bb019e3e3
    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: