Revision fe20bdf9

View differences:

libavcodec/fft.c
107 107
    if (HAVE_ALTIVEC) ff_fft_init_altivec(s);
108 108
    if (HAVE_MMX)     ff_fft_init_mmx(s);
109 109

  
110
        for(j=4; j<=nbits; j++) {
111
            ff_init_ff_cos_tabs(j);
112
        }
113
        for(i=0; i<n; i++)
114
            s->revtab[-split_radix_permutation(i, n, s->inverse) & (n-1)] = i;
110
    for(j=4; j<=nbits; j++) {
111
        ff_init_ff_cos_tabs(j);
112
    }
113
    for(i=0; i<n; i++)
114
        s->revtab[-split_radix_permutation(i, n, s->inverse) & (n-1)] = i;
115 115

  
116 116
    return 0;
117 117
 fail:
......
125 125
    int j, np;
126 126
    const uint16_t *revtab = s->revtab;
127 127
    np = 1 << s->nbits;
128
        /* TODO: handle split-radix permute in a more optimal way, probably in-place */
129
        for(j=0;j<np;j++) s->tmp_buf[revtab[j]] = z[j];
130
        memcpy(z, s->tmp_buf, np * sizeof(FFTComplex));
128
    /* TODO: handle split-radix permute in a more optimal way, probably in-place */
129
    for(j=0;j<np;j++) s->tmp_buf[revtab[j]] = z[j];
130
    memcpy(z, s->tmp_buf, np * sizeof(FFTComplex));
131 131
}
132 132

  
133 133
av_cold void ff_fft_end(FFTContext *s)

Also available in: Unified diff