[FFmpeg-devel] [PATCH] RDFT for Bink audio

Alex Converse alex.converse
Fri Jan 16 20:19:15 CET 2009


On Thu, Jan 15, 2009 at 2:03 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> On Thu, Jan 15, 2009 at 11:52:20AM -0500, Alex Converse wrote:
> [...]
>> +int ff_rdft_init(RDFTContext *s, int nbits, int inverse)
>> +{
>> +    int n = 1 << nbits;
>> +    int i;
>> +    const double theta = (1-2*inverse)*2*M_PI/n;
>> +
>> +    s->nbits = nbits;
>> +    s->inverse = inverse;
>> +
>> +    if (ff_fft_init(&s->fft, nbits-1, !inverse) < 0)
>> +        goto fail;
>> +
>> +    s->tcos = av_malloc((n>>2) * sizeof(FFTSample));
>> +    if (!s->tcos)
>> +        goto fail;
>> +    s->tsin = av_malloc((n>>2) * sizeof(FFTSample));
>> +    if (!s->tsin)
>> +        goto fail;
>> +    for (i = 0; i < (n>>2); i++) {
>> +        s->tcos[i] = cos(i*theta);
>> +        s->tsin[i] = sin(i*theta);
>> +    }
>
> we have a large number of sin and cos tables already
> see ff_sine_* / ff_cos_*, no need to duplicate them in each context
>

I agree with that in principle, but in practice It doesn't seem
practical at the moment.  They are defined in different files,
available in different sizes. The sines seem to be at half at a half
sample offset from what I need.

--Alex




More information about the ffmpeg-devel mailing list