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 }