static void apply_window_and_mdct(AVCodecContext *avctx, const AVFrame *frame)

{

    WMACodecContext *s = avctx->priv_data;

    float **audio      = (float **) frame->extended_data;

    int len            = frame->nb_samples;

    int window_index   = s->frame_len_bits - s->block_len_bits;

    FFTContext *mdct   = &s->mdct_ctx[window_index];

    int ch;

    const float *win   = s->windows[window_index];

    int window_len     = 1 << s->block_len_bits;

    float n            = 2.0 * 32768.0 / window_len;



    for (ch = 0; ch < avctx->channels; ch++) {

        memcpy(s->output, s->frame_out[ch], window_len * sizeof(*s->output));

        s->fdsp->vector_fmul_scalar(s->frame_out[ch], audio[ch], n, len);

        s->fdsp->vector_fmul_reverse(&s->output[window_len], s->frame_out[ch],

                                    win, len);

        s->fdsp->vector_fmul(s->frame_out[ch], s->frame_out[ch], win, len);

        mdct->mdct_calc(mdct, s->coefs[ch], s->output);

    }

}

static void apply_window_and_mdct(AVCodecContext *avctx, const AVFrame *frame)

{

    WMACodecContext *s = avctx->priv_data;

    float **audio      = (float **) frame->extended_data;

    int len            = frame->nb_samples;

    int window_index   = s->frame_len_bits - s->block_len_bits;

    FFTContext *mdct   = &s->mdct_ctx[window_index];

    int ch;

    const float *win   = s->windows[window_index];

    int window_len     = 1 << s->block_len_bits;

    float n            = 2.0 * 32768.0 / window_len;



    for (ch = 0; ch < avctx->channels; ch++) {

        memcpy(s->output, s->frame_out[ch], window_len * sizeof(*s->output));

        s->fdsp->vector_fmul_scalar(s->frame_out[ch], audio[ch], n, len);

        s->fdsp->vector_fmul_reverse(&s->output[window_len], s->frame_out[ch],

                                    win, len);

        s->fdsp->vector_fmul(s->frame_out[ch], s->frame_out[ch], win, len);

        mdct->mdct_calc(mdct, s->coefs[ch], s->output);

    }

}

static void FUNC_0(AVCodecContext *VAR_0, const AVFrame *VAR_1)

{

    WMACodecContext *s = VAR_0->priv_data;

    float **VAR_2      = (float **) VAR_1->extended_data;

    int VAR_3            = VAR_1->nb_samples;

    int VAR_4   = s->frame_len_bits - s->block_len_bits;

    FFTContext *mdct   = &s->mdct_ctx[VAR_4];

    int VAR_5;

    const float *VAR_6   = s->windows[VAR_4];

    int VAR_7     = 1 << s->block_len_bits;

    float VAR_8            = 2.0 * 32768.0 / VAR_7;



    for (VAR_5 = 0; VAR_5 < VAR_0->channels; VAR_5++) {

        memcpy(s->output, s->frame_out[VAR_5], VAR_7 * sizeof(*s->output));

        s->fdsp->vector_fmul_scalar(s->frame_out[VAR_5], VAR_2[VAR_5], VAR_8, VAR_3);

        s->fdsp->vector_fmul_reverse(&s->output[VAR_7], s->frame_out[VAR_5],

                                    VAR_6, VAR_3);

        s->fdsp->vector_fmul(s->frame_out[VAR_5], s->frame_out[VAR_5], VAR_6, VAR_3);

        mdct->mdct_calc(mdct, s->coefs[VAR_5], s->output);

    }

}

static void FUNC_0(AVCodecContext *VAR_0, const AVFrame *VAR_1)
{ WMACodecContext *s = VAR_0->priv_data; float **VAR_2      = (float **) VAR_1->extended_data; int VAR_3            = VAR_1->nb_samples; int VAR_4   = s->frame_len_bits - s->block_len_bits; FFTContext *mdct   = &s->mdct_ctx[VAR_4]; int VAR_5; const float *VAR_6   = s->windows[VAR_4]; int VAR_7     = 1 << s->block_len_bits; float VAR_8            = 2.0 * 32768.0 / VAR_7; for (VAR_5 = 0; VAR_5 < VAR_0->channels; VAR_5++) { memcpy(s->output, s->frame_out[VAR_5], VAR_7 * sizeof(*s->output)); s->fdsp->vector_fmul_scalar(s->frame_out[VAR_5], VAR_2[VAR_5], VAR_8, VAR_3); s->fdsp->vector_fmul_reverse(&s->output[VAR_7], s->frame_out[VAR_5],
VAR_6, VAR_3); s->fdsp->vector_fmul(s->frame_out[VAR_5], s->frame_out[VAR_5], VAR_6, VAR_3); mdct->mdct_calc(mdct, s->coefs[VAR_5], s->output); } }