gst_plugins_base/gst-libs/gst/fft/kiss_fftr_f64.c
branchRCL_3
changeset 30 7e817e7e631c
parent 29 567bb019e3e3
equal deleted inserted replaced
29:567bb019e3e3 30:7e817e7e631c
    41     return NULL;
    41     return NULL;
    42   }
    42   }
    43   nfft >>= 1;
    43   nfft >>= 1;
    44 
    44 
    45   kiss_fft_f64_alloc (nfft, inverse_fft, NULL, &subsize);
    45   kiss_fft_f64_alloc (nfft, inverse_fft, NULL, &subsize);
    46   memneeded = ALIGN_STRUCT (sizeof (struct kiss_fftr_f64_state))
    46   memneeded =
    47       + ALIGN_STRUCT (subsize)
    47       sizeof (struct kiss_fftr_f64_state) + subsize +
    48       + sizeof (kiss_fft_f64_cpx) * (nfft * 2);
    48       sizeof (kiss_fft_f64_cpx) * (nfft * 2);
    49 
    49 
    50   if (lenmem == NULL) {
    50   if (lenmem == NULL) {
    51     st = (kiss_fftr_f64_cfg) KISS_FFT_F64_MALLOC (memneeded);
    51     st = (kiss_fftr_f64_cfg) KISS_FFT_F64_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_f64_cfg) (((char *) st) + ALIGN_STRUCT (sizeof (struct kiss_fftr_f64_state)));       /*just beyond kiss_fftr_f64_state struct */
    60   st->substate = (kiss_fft_f64_cfg) (st + 1);   /*just beyond kiss_fftr_f64_state struct */
    61   st->tmpbuf =
    61   st->tmpbuf = (kiss_fft_f64_cpx *) (((char *) st->substate) + subsize);
    62       (kiss_fft_f64_cpx *) (((char *) st->substate) + ALIGN_STRUCT (subsize));
       
    63   st->super_twiddles = st->tmpbuf + nfft;
    62   st->super_twiddles = st->tmpbuf + nfft;
    64   kiss_fft_f64_alloc (nfft, inverse_fft, st->substate, &subsize);
    63   kiss_fft_f64_alloc (nfft, inverse_fft, st->substate, &subsize);
    65 
    64 
    66   for (i = 0; i < nfft; ++i) {
    65   for (i = 0; i < nfft; ++i) {
    67     double phase = -3.14159265358979323846264338327 * ((double) i / nfft + .5);
    66     double phase = -3.14159265358979323846264338327 * ((double) i / nfft + .5);