static av_cold int on2avc_decode_init(AVCodecContext *avctx)

{

    On2AVCContext *c = avctx->priv_data;

    int i;



    c->avctx = avctx;

    avctx->sample_fmt     = AV_SAMPLE_FMT_FLTP;

    avctx->channel_layout = (avctx->channels == 2) ? AV_CH_LAYOUT_STEREO

                                                   : AV_CH_LAYOUT_MONO;



    c->is_av500 = (avctx->codec_tag == 0x500);

    if (c->is_av500 && avctx->channels == 2) {

        av_log(avctx, AV_LOG_ERROR, "0x500 version should be mono\n");

        return AVERROR_INVALIDDATA;






    if (avctx->channels == 2)

        av_log(avctx, AV_LOG_WARNING,

               "Stereo mode support is not good, patch is welcome\n");



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

        c->scale_tab[i] = ceil(pow(10.0, i * 0.1) * 16) / 32;

    for (; i < 128; i++)

        c->scale_tab[i] = ceil(pow(10.0, i * 0.1) * 0.5);



    if (avctx->sample_rate < 32000 || avctx->channels == 1)

        memcpy(c->long_win, ff_on2avc_window_long_24000,

               1024 * sizeof(*c->long_win));

    else

        memcpy(c->long_win, ff_on2avc_window_long_32000,

               1024 * sizeof(*c->long_win));

    memcpy(c->short_win, ff_on2avc_window_short, 128 * sizeof(*c->short_win));



    c->modes = (avctx->sample_rate <= 40000) ? ff_on2avc_modes_40

                                             : ff_on2avc_modes_44;

    c->wtf   = (avctx->sample_rate <= 40000) ? wtf_40

                                             : wtf_44;



    ff_mdct_init(&c->mdct,       11, 1, 1.0 / (32768.0 * 1024.0));

    ff_mdct_init(&c->mdct_half,  10, 1, 1.0 / (32768.0 * 512.0));

    ff_mdct_init(&c->mdct_small,  8, 1, 1.0 / (32768.0 * 128.0));

    ff_fft_init(&c->fft128,  6, 0);

    ff_fft_init(&c->fft256,  7, 0);

    ff_fft_init(&c->fft512,  8, 1);

    ff_fft_init(&c->fft1024, 9, 1);

    avpriv_float_dsp_init(&c->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);



    if (init_vlc(&c->scale_diff, 9, ON2AVC_SCALE_DIFFS,

                 ff_on2avc_scale_diff_bits,  1, 1,

                 ff_on2avc_scale_diff_codes, 4, 4, 0)) {

        av_log(avctx, AV_LOG_ERROR, "Cannot init VLC\n");

        return AVERROR(ENOMEM);


    for (i = 1; i < 9; i++) {

        int idx = i - 1;

        if (ff_init_vlc_sparse(&c->cb_vlc[i], 9, ff_on2avc_quad_cb_elems[idx],

                               ff_on2avc_quad_cb_bits[idx],  1, 1,

                               ff_on2avc_quad_cb_codes[idx], 4, 4,

                               ff_on2avc_quad_cb_syms[idx],  2, 2, 0)) {

            av_log(avctx, AV_LOG_ERROR, "Cannot init VLC\n");

            on2avc_free_vlcs(c);

            return AVERROR(ENOMEM);



    for (i = 9; i < 16; i++) {

        int idx = i - 9;

        if (ff_init_vlc_sparse(&c->cb_vlc[i], 9, ff_on2avc_pair_cb_elems[idx],

                               ff_on2avc_pair_cb_bits[idx],  1, 1,

                               ff_on2avc_pair_cb_codes[idx], 2, 2,

                               ff_on2avc_pair_cb_syms[idx],  2, 2, 0)) {

            av_log(avctx, AV_LOG_ERROR, "Cannot init VLC\n");

            on2avc_free_vlcs(c);

            return AVERROR(ENOMEM);





    return 0;

static av_cold int on2avc_decode_init(AVCodecContext *avctx)

{

    On2AVCContext *c = avctx->priv_data;

    int i;



    c->avctx = avctx;

    avctx->sample_fmt     = AV_SAMPLE_FMT_FLTP;

    avctx->channel_layout = (avctx->channels == 2) ? AV_CH_LAYOUT_STEREO

                                                   : AV_CH_LAYOUT_MONO;



    c->is_av500 = (avctx->codec_tag == 0x500);

    if (c->is_av500 && avctx->channels == 2) {

        av_log(avctx, AV_LOG_ERROR, "0x500 version should be mono\n");

        return AVERROR_INVALIDDATA;






    if (avctx->channels == 2)

        av_log(avctx, AV_LOG_WARNING,

               "Stereo mode support is not good, patch is welcome\n");



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

        c->scale_tab[i] = ceil(pow(10.0, i * 0.1) * 16) / 32;

    for (; i < 128; i++)

        c->scale_tab[i] = ceil(pow(10.0, i * 0.1) * 0.5);



    if (avctx->sample_rate < 32000 || avctx->channels == 1)

        memcpy(c->long_win, ff_on2avc_window_long_24000,

               1024 * sizeof(*c->long_win));

    else

        memcpy(c->long_win, ff_on2avc_window_long_32000,

               1024 * sizeof(*c->long_win));

    memcpy(c->short_win, ff_on2avc_window_short, 128 * sizeof(*c->short_win));



    c->modes = (avctx->sample_rate <= 40000) ? ff_on2avc_modes_40

                                             : ff_on2avc_modes_44;

    c->wtf   = (avctx->sample_rate <= 40000) ? wtf_40

                                             : wtf_44;



    ff_mdct_init(&c->mdct,       11, 1, 1.0 / (32768.0 * 1024.0));

    ff_mdct_init(&c->mdct_half,  10, 1, 1.0 / (32768.0 * 512.0));

    ff_mdct_init(&c->mdct_small,  8, 1, 1.0 / (32768.0 * 128.0));

    ff_fft_init(&c->fft128,  6, 0);

    ff_fft_init(&c->fft256,  7, 0);

    ff_fft_init(&c->fft512,  8, 1);

    ff_fft_init(&c->fft1024, 9, 1);

    avpriv_float_dsp_init(&c->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);



    if (init_vlc(&c->scale_diff, 9, ON2AVC_SCALE_DIFFS,

                 ff_on2avc_scale_diff_bits,  1, 1,

                 ff_on2avc_scale_diff_codes, 4, 4, 0)) {

        av_log(avctx, AV_LOG_ERROR, "Cannot init VLC\n");

        return AVERROR(ENOMEM);


    for (i = 1; i < 9; i++) {

        int idx = i - 1;

        if (ff_init_vlc_sparse(&c->cb_vlc[i], 9, ff_on2avc_quad_cb_elems[idx],

                               ff_on2avc_quad_cb_bits[idx],  1, 1,

                               ff_on2avc_quad_cb_codes[idx], 4, 4,

                               ff_on2avc_quad_cb_syms[idx],  2, 2, 0)) {

            av_log(avctx, AV_LOG_ERROR, "Cannot init VLC\n");

            on2avc_free_vlcs(c);

            return AVERROR(ENOMEM);



    for (i = 9; i < 16; i++) {

        int idx = i - 9;

        if (ff_init_vlc_sparse(&c->cb_vlc[i], 9, ff_on2avc_pair_cb_elems[idx],

                               ff_on2avc_pair_cb_bits[idx],  1, 1,

                               ff_on2avc_pair_cb_codes[idx], 2, 2,

                               ff_on2avc_pair_cb_syms[idx],  2, 2, 0)) {

            av_log(avctx, AV_LOG_ERROR, "Cannot init VLC\n");

            on2avc_free_vlcs(c);

            return AVERROR(ENOMEM);





    return 0;

static av_cold int FUNC_0(AVCodecContext *avctx)

{

    On2AVCContext *c = avctx->priv_data;

    int VAR_0;



    c->avctx = avctx;

    avctx->sample_fmt     = AV_SAMPLE_FMT_FLTP;

    avctx->channel_layout = (avctx->channels == 2) ? AV_CH_LAYOUT_STEREO

                                                   : AV_CH_LAYOUT_MONO;



    c->is_av500 = (avctx->codec_tag == 0x500);

    if (c->is_av500 && avctx->channels == 2) {

        av_log(avctx, AV_LOG_ERROR, "0x500 version should be mono\n");

        return AVERROR_INVALIDDATA;






    if (avctx->channels == 2)

        av_log(avctx, AV_LOG_WARNING,

               "Stereo mode support is not good, patch is welcome\n");



    for (VAR_0 = 0; VAR_0 < 20; VAR_0++)

        c->scale_tab[VAR_0] = ceil(pow(10.0, VAR_0 * 0.1) * 16) / 32;

    for (; VAR_0 < 128; VAR_0++)

        c->scale_tab[VAR_0] = ceil(pow(10.0, VAR_0 * 0.1) * 0.5);



    if (avctx->sample_rate < 32000 || avctx->channels == 1)

        memcpy(c->long_win, ff_on2avc_window_long_24000,

               1024 * sizeof(*c->long_win));

    else

        memcpy(c->long_win, ff_on2avc_window_long_32000,

               1024 * sizeof(*c->long_win));

    memcpy(c->short_win, ff_on2avc_window_short, 128 * sizeof(*c->short_win));



    c->modes = (avctx->sample_rate <= 40000) ? ff_on2avc_modes_40

                                             : ff_on2avc_modes_44;

    c->wtf   = (avctx->sample_rate <= 40000) ? wtf_40

                                             : wtf_44;



    ff_mdct_init(&c->mdct,       11, 1, 1.0 / (32768.0 * 1024.0));

    ff_mdct_init(&c->mdct_half,  10, 1, 1.0 / (32768.0 * 512.0));

    ff_mdct_init(&c->mdct_small,  8, 1, 1.0 / (32768.0 * 128.0));

    ff_fft_init(&c->fft128,  6, 0);

    ff_fft_init(&c->fft256,  7, 0);

    ff_fft_init(&c->fft512,  8, 1);

    ff_fft_init(&c->fft1024, 9, 1);

    avpriv_float_dsp_init(&c->fdsp, avctx->flags & CODEC_FLAG_BITEXACT);



    if (init_vlc(&c->scale_diff, 9, ON2AVC_SCALE_DIFFS,

                 ff_on2avc_scale_diff_bits,  1, 1,

                 ff_on2avc_scale_diff_codes, 4, 4, 0)) {

        av_log(avctx, AV_LOG_ERROR, "Cannot init VLC\n");

        return AVERROR(ENOMEM);


    for (VAR_0 = 1; VAR_0 < 9; VAR_0++) {

        int VAR_2 = VAR_0 - 1;

        if (ff_init_vlc_sparse(&c->cb_vlc[VAR_0], 9, ff_on2avc_quad_cb_elems[VAR_2],

                               ff_on2avc_quad_cb_bits[VAR_2],  1, 1,

                               ff_on2avc_quad_cb_codes[VAR_2], 4, 4,

                               ff_on2avc_quad_cb_syms[VAR_2],  2, 2, 0)) {

            av_log(avctx, AV_LOG_ERROR, "Cannot init VLC\n");

            on2avc_free_vlcs(c);

            return AVERROR(ENOMEM);



    for (VAR_0 = 9; VAR_0 < 16; VAR_0++) {

        int VAR_2 = VAR_0 - 9;

        if (ff_init_vlc_sparse(&c->cb_vlc[VAR_0], 9, ff_on2avc_pair_cb_elems[VAR_2],

                               ff_on2avc_pair_cb_bits[VAR_2],  1, 1,

                               ff_on2avc_pair_cb_codes[VAR_2], 2, 2,

                               ff_on2avc_pair_cb_syms[VAR_2],  2, 2, 0)) {

            av_log(avctx, AV_LOG_ERROR, "Cannot init VLC\n");

            on2avc_free_vlcs(c);

            return AVERROR(ENOMEM);





    return 0;

static av_cold int FUNC_0(AVCodecContext *avctx)
{ On2AVCContext *c = avctx->priv_data; int VAR_0; c->avctx = avctx; avctx->sample_fmt     = AV_SAMPLE_FMT_FLTP; avctx->channel_layout = (avctx->channels == 2) ? AV_CH_LAYOUT_STEREO
: AV_CH_LAYOUT_MONO; c->is_av500 = (avctx->codec_tag == 0x500); if (c->is_av500 && avctx->channels == 2) { av_log(avctx, AV_LOG_ERROR, "0x500 version should be mono\n"); return AVERROR_INVALIDDATA; if (avctx->channels == 2)
av_log(avctx, AV_LOG_WARNING,
"Stereo mode support is not good, patch is welcome\n"); for (VAR_0 = 0; VAR_0 < 20; VAR_0++) c->scale_tab[VAR_0] = ceil(pow(10.0, VAR_0 * 0.1) * 16) / 32; for (; VAR_0 < 128; VAR_0++) c->scale_tab[VAR_0] = ceil(pow(10.0, VAR_0 * 0.1) * 0.5); if (avctx->sample_rate < 32000 || avctx->channels == 1)
memcpy(c->long_win, ff_on2avc_window_long_24000,
1024 * sizeof(*c->long_win)); else
memcpy(c->long_win, ff_on2avc_window_long_32000,
1024 * sizeof(*c->long_win)); memcpy(c->short_win, ff_on2avc_window_short, 128 * sizeof(*c->short_win)); c->modes = (avctx->sample_rate <= 40000) ? ff_on2avc_modes_40
: ff_on2avc_modes_44; c->wtf   = (avctx->sample_rate <= 40000) ? wtf_40
: wtf_44; ff_mdct_init(&c->mdct,       11, 1, 1.0 / (32768.0 * 1024.0)); ff_mdct_init(&c->mdct_half,  10, 1, 1.0 / (32768.0 * 512.0)); ff_mdct_init(&c->mdct_small,  8, 1, 1.0 / (32768.0 * 128.0)); ff_fft_init(&c->fft128,  6, 0); ff_fft_init(&c->fft256,  7, 0); ff_fft_init(&c->fft512,  8, 1); ff_fft_init(&c->fft1024, 9, 1); avpriv_float_dsp_init(&c->fdsp, avctx->flags & CODEC_FLAG_BITEXACT); if (init_vlc(&c->scale_diff, 9, ON2AVC_SCALE_DIFFS,
ff_on2avc_scale_diff_bits,  1, 1,
ff_on2avc_scale_diff_codes, 4, 4, 0)) { av_log(avctx, AV_LOG_ERROR, "Cannot init VLC\n"); return AVERROR(ENOMEM); for (VAR_0 = 1; VAR_0 < 9; VAR_0++) { int VAR_2 = VAR_0 - 1; if (ff_init_vlc_sparse(&c->cb_vlc[VAR_0], 9, ff_on2avc_quad_cb_elems[VAR_2],
ff_on2avc_quad_cb_bits[VAR_2],  1, 1,
ff_on2avc_quad_cb_codes[VAR_2], 4, 4,
ff_on2avc_quad_cb_syms[VAR_2],  2, 2, 0)) { av_log(avctx, AV_LOG_ERROR, "Cannot init VLC\n"); on2avc_free_vlcs(c); return AVERROR(ENOMEM); for (VAR_0 = 9; VAR_0 < 16; VAR_0++) { int VAR_2 = VAR_0 - 9; if (ff_init_vlc_sparse(&c->cb_vlc[VAR_0], 9, ff_on2avc_pair_cb_elems[VAR_2],
ff_on2avc_pair_cb_bits[VAR_2],  1, 1,
ff_on2avc_pair_cb_codes[VAR_2], 2, 2,
ff_on2avc_pair_cb_syms[VAR_2],  2, 2, 0)) { av_log(avctx, AV_LOG_ERROR, "Cannot init VLC\n"); on2avc_free_vlcs(c); return AVERROR(ENOMEM); return 0;