Mercurial > libavcodec.hg
comparison ac3dec.c @ 5324:33e13333dc4d libavcodec
AC-3 decoder, soc revision 148, Sep 28 18:38:27 2006 UTC by banan
Enable sse imdct, patch by Loren Merrit.
author | jbr |
---|---|
date | Sat, 14 Jul 2007 16:05:39 +0000 |
parents | 4ba6d8132f36 |
children | 0d963101e0d7 |
comparison
equal
deleted
inserted
replaced
5323:4ba6d8132f36 | 5324:33e13333dc4d |
---|---|
1615 for (k = 0; k < N / 4; k++) { | 1615 for (k = 0; k < N / 4; k++) { |
1616 x1[k] = ctx->transform_coeffs[chindex][2 * k]; | 1616 x1[k] = ctx->transform_coeffs[chindex][2 * k]; |
1617 x2[k] = ctx->transform_coeffs[chindex][2 * k + 1]; | 1617 x2[k] = ctx->transform_coeffs[chindex][2 * k + 1]; |
1618 } | 1618 } |
1619 | 1619 |
1620 ff_imdct_calc(&ctx->imdct_256, ctx->tmp_output, x1, ctx->tmp_imdct); | 1620 ctx->imdct_256.fft.imdct_calc(&ctx->imdct_256, ctx->tmp_output, x1, ctx->tmp_imdct); |
1621 ff_imdct_calc(&ctx->imdct_256, ctx->tmp_output + 256, x2, ctx->tmp_imdct); | 1621 ctx->imdct_256.fft.imdct_calc(&ctx->imdct_256, ctx->tmp_output + 256, x2, ctx->tmp_imdct); |
1622 | 1622 |
1623 o_ptr = ctx->output[chindex]; | 1623 o_ptr = ctx->output[chindex]; |
1624 d_ptr = ctx->delay[chindex]; | 1624 d_ptr = ctx->delay[chindex]; |
1625 ptr1 = (FFTComplex *)ctx->tmp_output; | 1625 ptr1 = (FFTComplex *)ctx->tmp_output; |
1626 ptr2 = (FFTComplex *)ctx->tmp_output + 256; | 1626 ptr2 = (FFTComplex *)ctx->tmp_output + 256; |
1644 */ | 1644 */ |
1645 static void do_imdct_512(AC3DecodeContext *ctx, int chindex) | 1645 static void do_imdct_512(AC3DecodeContext *ctx, int chindex) |
1646 { | 1646 { |
1647 float *ptr; | 1647 float *ptr; |
1648 | 1648 |
1649 ff_imdct_calc(&ctx->imdct_512, ctx->tmp_output, | 1649 ctx->imdct_512.fft.imdct_calc(&ctx->imdct_512, ctx->tmp_output, |
1650 ctx->transform_coeffs[chindex], ctx->tmp_imdct); | 1650 ctx->transform_coeffs[chindex], ctx->tmp_imdct); |
1651 ptr = ctx->output[chindex]; | 1651 ptr = ctx->output[chindex]; |
1652 ctx->dsp.vector_fmul_add_add(ptr, ctx->tmp_output, ctx->window, ctx->delay[chindex], 384, BLOCK_SIZE, 1); | 1652 ctx->dsp.vector_fmul_add_add(ptr, ctx->tmp_output, ctx->window, ctx->delay[chindex], 384, BLOCK_SIZE, 1); |
1653 ptr = ctx->delay[chindex]; | 1653 ptr = ctx->delay[chindex]; |
1654 ctx->dsp.vector_fmul_reverse(ptr, ctx->tmp_output + 256, ctx->window, BLOCK_SIZE); | 1654 ctx->dsp.vector_fmul_reverse(ptr, ctx->tmp_output + 256, ctx->window, BLOCK_SIZE); |
1655 } | 1655 } |