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