gst_plugins_base/gst-libs/gst/fft/kiss_fftr_s16.c
changeset 8 4a7fac7dd34a
parent 0 0e761a78d257
child 30 7e817e7e631c
equal deleted inserted replaced
7:71e347f905f2 8:4a7fac7dd34a
    41     return NULL;
    41     return NULL;
    42   }
    42   }
    43   nfft >>= 1;
    43   nfft >>= 1;
    44 
    44 
    45   kiss_fft_s16_alloc (nfft, inverse_fft, NULL, &subsize);
    45   kiss_fft_s16_alloc (nfft, inverse_fft, NULL, &subsize);
    46   memneeded =
    46   memneeded = ALIGN_STRUCT (sizeof (struct kiss_fftr_s16_state))
    47       sizeof (struct kiss_fftr_s16_state) + subsize +
    47       + ALIGN_STRUCT (subsize)
    48       sizeof (kiss_fft_s16_cpx) * (nfft * 2);
    48       + sizeof (kiss_fft_s16_cpx) * (nfft * 2);
    49 
    49 
    50   if (lenmem == NULL) {
    50   if (lenmem == NULL) {
    51     st = (kiss_fftr_s16_cfg) KISS_FFT_S16_MALLOC (memneeded);
    51     st = (kiss_fftr_s16_cfg) KISS_FFT_S16_MALLOC (memneeded);
    52   } else {
    52   } else {
    53     if (*lenmem >= memneeded)
    53     if (*lenmem >= memneeded)
    55     *lenmem = memneeded;
    55     *lenmem = memneeded;
    56   }
    56   }
    57   if (!st)
    57   if (!st)
    58     return NULL;
    58     return NULL;
    59 
    59 
    60   st->substate = (kiss_fft_s16_cfg) (st + 1);   /*just beyond kiss_fftr_s16_state struct */
    60   st->substate = (kiss_fft_s16_cfg) (((char *) st) + ALIGN_STRUCT (sizeof (struct kiss_fftr_s16_state)));       /*just beyond kiss_fftr_s16_state struct */
    61   st->tmpbuf = (kiss_fft_s16_cpx *) (((char *) st->substate) + subsize);
    61   st->tmpbuf =
       
    62       (kiss_fft_s16_cpx *) (((char *) st->substate) + ALIGN_STRUCT (subsize));
    62   st->super_twiddles = st->tmpbuf + nfft;
    63   st->super_twiddles = st->tmpbuf + nfft;
    63   kiss_fft_s16_alloc (nfft, inverse_fft, st->substate, &subsize);
    64   kiss_fft_s16_alloc (nfft, inverse_fft, st->substate, &subsize);
    64 
    65 
    65   for (i = 0; i < nfft; ++i) {
    66   for (i = 0; i < nfft; ++i) {
    66     double phase = -3.14159265358979323846264338327 * ((double) i / nfft + .5);
    67     double phase = -3.14159265358979323846264338327 * ((double) i / nfft + .5);