static inline void do_imdct(AC3DecodeContext *s, int channels)

{

    int ch;



    for (ch=1; ch<=channels; ch++) {

        if (s->block_switch[ch]) {

            int i;

            float *x = s->tmp_output+128;

            for(i=0; i<128; i++)

                x[i] = s->transform_coeffs[ch][2*i];

            ff_imdct_half(&s->imdct_256, s->tmp_output, x);

            s->dsp.vector_fmul_window(s->output[ch-1], s->delay[ch-1], s->tmp_output, s->window, s->add_bias, 128);

            for(i=0; i<128; i++)

                x[i] = s->transform_coeffs[ch][2*i+1];

            ff_imdct_half(&s->imdct_256, s->delay[ch-1], x);

        } else {

            ff_imdct_half(&s->imdct_512, s->tmp_output, s->transform_coeffs[ch]);

            s->dsp.vector_fmul_window(s->output[ch-1], s->delay[ch-1], s->tmp_output, s->window, s->add_bias, 128);

            memcpy(s->delay[ch-1], s->tmp_output+128, 128*sizeof(float));

        }

    }

}

static inline void do_imdct(AC3DecodeContext *s, int channels)

{

    int ch;



    for (ch=1; ch<=channels; ch++) {

        if (s->block_switch[ch]) {

            int i;

            float *x = s->tmp_output+128;

            for(i=0; i<128; i++)

                x[i] = s->transform_coeffs[ch][2*i];

            ff_imdct_half(&s->imdct_256, s->tmp_output, x);

            s->dsp.vector_fmul_window(s->output[ch-1], s->delay[ch-1], s->tmp_output, s->window, s->add_bias, 128);

            for(i=0; i<128; i++)

                x[i] = s->transform_coeffs[ch][2*i+1];

            ff_imdct_half(&s->imdct_256, s->delay[ch-1], x);

        } else {

            ff_imdct_half(&s->imdct_512, s->tmp_output, s->transform_coeffs[ch]);

            s->dsp.vector_fmul_window(s->output[ch-1], s->delay[ch-1], s->tmp_output, s->window, s->add_bias, 128);

            memcpy(s->delay[ch-1], s->tmp_output+128, 128*sizeof(float));

        }

    }

}

static inline void FUNC_0(AC3DecodeContext *VAR_0, int VAR_1)

{

    int VAR_2;



    for (VAR_2=1; VAR_2<=VAR_1; VAR_2++) {

        if (VAR_0->block_switch[VAR_2]) {

            int VAR_3;

            float *VAR_4 = VAR_0->tmp_output+128;

            for(VAR_3=0; VAR_3<128; VAR_3++)

                VAR_4[VAR_3] = VAR_0->transform_coeffs[VAR_2][2*VAR_3];

            ff_imdct_half(&VAR_0->imdct_256, VAR_0->tmp_output, VAR_4);

            VAR_0->dsp.vector_fmul_window(VAR_0->output[VAR_2-1], VAR_0->delay[VAR_2-1], VAR_0->tmp_output, VAR_0->window, VAR_0->add_bias, 128);

            for(VAR_3=0; VAR_3<128; VAR_3++)

                VAR_4[VAR_3] = VAR_0->transform_coeffs[VAR_2][2*VAR_3+1];

            ff_imdct_half(&VAR_0->imdct_256, VAR_0->delay[VAR_2-1], VAR_4);

        } else {

            ff_imdct_half(&VAR_0->imdct_512, VAR_0->tmp_output, VAR_0->transform_coeffs[VAR_2]);

            VAR_0->dsp.vector_fmul_window(VAR_0->output[VAR_2-1], VAR_0->delay[VAR_2-1], VAR_0->tmp_output, VAR_0->window, VAR_0->add_bias, 128);

            memcpy(VAR_0->delay[VAR_2-1], VAR_0->tmp_output+128, 128*sizeof(float));

        }

    }

}

static inline void FUNC_0(AC3DecodeContext *VAR_0, int VAR_1)
{ int VAR_2; for (VAR_2=1; VAR_2<=VAR_1; VAR_2++) { if (VAR_0->block_switch[VAR_2]) { int VAR_3; float *VAR_4 = VAR_0->tmp_output+128; for(VAR_3=0; VAR_3<128; VAR_3++) VAR_4[VAR_3] = VAR_0->transform_coeffs[VAR_2][2*VAR_3]; ff_imdct_half(&VAR_0->imdct_256, VAR_0->tmp_output, VAR_4); VAR_0->dsp.vector_fmul_window(VAR_0->output[VAR_2-1], VAR_0->delay[VAR_2-1], VAR_0->tmp_output, VAR_0->window, VAR_0->add_bias, 128); for(VAR_3=0; VAR_3<128; VAR_3++) VAR_4[VAR_3] = VAR_0->transform_coeffs[VAR_2][2*VAR_3+1]; ff_imdct_half(&VAR_0->imdct_256, VAR_0->delay[VAR_2-1], VAR_4); } else { ff_imdct_half(&VAR_0->imdct_512, VAR_0->tmp_output, VAR_0->transform_coeffs[VAR_2]); VAR_0->dsp.vector_fmul_window(VAR_0->output[VAR_2-1], VAR_0->delay[VAR_2-1], VAR_0->tmp_output, VAR_0->window, VAR_0->add_bias, 128); memcpy(VAR_0->delay[VAR_2-1], VAR_0->tmp_output+128, 128*sizeof(float)); } } }