gst_plugins_base/gst-libs/gst/fft/gstffts16.c
changeset 8 4a7fac7dd34a
parent 0 0e761a78d257
child 30 7e817e7e631c
equal deleted inserted replaced
7:71e347f905f2 8:4a7fac7dd34a
    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_s16.h"
    23 #include "kiss_fftr_s16.h"
    24 #include "kiss_fftr_s16.h"
    24 #include "gstfft.h"
    25 #include "gstfft.h"
    25 #include "gstffts16.h"
    26 #include "gstffts16.h"
    26 
    27 
    27 /**
    28 /**
    76 
    77 
    77 GstFFTS16 *
    78 GstFFTS16 *
    78 gst_fft_s16_new (gint len, gboolean inverse)
    79 gst_fft_s16_new (gint len, gboolean inverse)
    79 {
    80 {
    80   GstFFTS16 *self;
    81   GstFFTS16 *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 (GstFFTS16, 1);
    87   kiss_fftr_s16_alloc (len, (inverse) ? 1 : 0, NULL, &subsize);
    86 
    88   memneeded = ALIGN_STRUCT (sizeof (GstFFTS16)) + subsize;
    87   self->cfg = kiss_fftr_s16_alloc (len, (inverse) ? 1 : 0, NULL, NULL);
    89 
       
    90   self = (GstFFTS16 *) g_malloc0 (memneeded);
       
    91 
       
    92   self->cfg = (((guint8 *) self) + ALIGN_STRUCT (sizeof (GstFFTS16)));
       
    93   self->cfg = kiss_fftr_s16_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_s16_free (GstFFTS16 * self)
   175 gst_fft_s16_free (GstFFTS16 * self)
   170 {
   176 {
   171   kiss_fftr_s16_free (self->cfg);
       
   172   g_free (self);
   177   g_free (self);
   173 }
   178 }
   174 
   179 
   175 /**
   180 /**
   176  * gst_fft_s16_window:
   181  * gst_fft_s16_window: