static int init_context_frame(MpegEncContext *s)

{

    int y_size, c_size, yc_size, i, mb_array_size, mv_table_size, x, y;



    s->mb_width   = (s->width + 15) / 16;

    s->mb_stride  = s->mb_width + 1;

    s->b8_stride  = s->mb_width * 2 + 1;

    s->b4_stride  = s->mb_width * 4 + 1;

    mb_array_size = s->mb_height * s->mb_stride;

    mv_table_size = (s->mb_height + 2) * s->mb_stride + 1;



    /* set default edge pos, will be overriden

     * in decode_header if needed */

    s->h_edge_pos = s->mb_width * 16;

    s->v_edge_pos = s->mb_height * 16;



    s->mb_num     = s->mb_width * s->mb_height;



    s->block_wrap[0] =

    s->block_wrap[1] =

    s->block_wrap[2] =

    s->block_wrap[3] = s->b8_stride;

    s->block_wrap[4] =

    s->block_wrap[5] = s->mb_stride;



    y_size  = s->b8_stride * (2 * s->mb_height + 1);

    c_size  = s->mb_stride * (s->mb_height + 1);

    yc_size = y_size + 2   * c_size;



    if (s->mb_height & 1)

        yc_size += 2*s->b8_stride + 2*s->mb_stride;



    FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_index2xy, (s->mb_num + 1) * sizeof(int), fail); // error ressilience code looks cleaner with this

    for (y = 0; y < s->mb_height; y++)

        for (x = 0; x < s->mb_width; x++)

            s->mb_index2xy[x + y * s->mb_width] = x + y * s->mb_stride;



    s->mb_index2xy[s->mb_height * s->mb_width] = (s->mb_height - 1) * s->mb_stride + s->mb_width; // FIXME really needed?



    if (s->encoding) {

        /* Allocate MV tables */

        FF_ALLOCZ_OR_GOTO(s->avctx, s->p_mv_table_base,                 mv_table_size * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(s->avctx, s->b_forw_mv_table_base,            mv_table_size * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(s->avctx, s->b_back_mv_table_base,            mv_table_size * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(s->avctx, s->b_bidir_forw_mv_table_base,      mv_table_size * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(s->avctx, s->b_bidir_back_mv_table_base,      mv_table_size * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(s->avctx, s->b_direct_mv_table_base,          mv_table_size * 2 * sizeof(int16_t), fail)

        s->p_mv_table            = s->p_mv_table_base + s->mb_stride + 1;

        s->b_forw_mv_table       = s->b_forw_mv_table_base + s->mb_stride + 1;

        s->b_back_mv_table       = s->b_back_mv_table_base + s->mb_stride + 1;

        s->b_bidir_forw_mv_table = s->b_bidir_forw_mv_table_base + s->mb_stride + 1;

        s->b_bidir_back_mv_table = s->b_bidir_back_mv_table_base + s->mb_stride + 1;

        s->b_direct_mv_table     = s->b_direct_mv_table_base + s->mb_stride + 1;



        /* Allocate MB type table */

        FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_type, mb_array_size * sizeof(uint16_t), fail) // needed for encoding



        FF_ALLOCZ_OR_GOTO(s->avctx, s->lambda_table, mb_array_size * sizeof(int), fail)



        FF_ALLOC_OR_GOTO(s->avctx, s->cplx_tab,

                         mb_array_size * sizeof(float), fail);

        FF_ALLOC_OR_GOTO(s->avctx, s->bits_tab,

                         mb_array_size * sizeof(float), fail);



    }



    if (s->codec_id == AV_CODEC_ID_MPEG4 ||

        (s->flags & CODEC_FLAG_INTERLACED_ME)) {

        /* interlaced direct mode decoding tables */

        for (i = 0; i < 2; i++) {

            int j, k;

            for (j = 0; j < 2; j++) {

                for (k = 0; k < 2; k++) {

                    FF_ALLOCZ_OR_GOTO(s->avctx,

                                      s->b_field_mv_table_base[i][j][k],

                                      mv_table_size * 2 * sizeof(int16_t),

                                      fail);

                    s->b_field_mv_table[i][j][k] = s->b_field_mv_table_base[i][j][k] +

                                                   s->mb_stride + 1;

                }

                FF_ALLOCZ_OR_GOTO(s->avctx, s->b_field_select_table [i][j], mb_array_size * 2 * sizeof(uint8_t), fail)

                FF_ALLOCZ_OR_GOTO(s->avctx, s->p_field_mv_table_base[i][j], mv_table_size * 2 * sizeof(int16_t), fail)

                s->p_field_mv_table[i][j] = s->p_field_mv_table_base[i][j] + s->mb_stride + 1;

            }

            FF_ALLOCZ_OR_GOTO(s->avctx, s->p_field_select_table[i], mb_array_size * 2 * sizeof(uint8_t), fail)

        }

    }

    if (s->out_format == FMT_H263) {

        /* cbp values */

        FF_ALLOCZ_OR_GOTO(s->avctx, s->coded_block_base, y_size + (s->mb_height&1)*2*s->b8_stride, fail);

        s->coded_block = s->coded_block_base + s->b8_stride + 1;



        /* cbp, ac_pred, pred_dir */

        FF_ALLOCZ_OR_GOTO(s->avctx, s->cbp_table     , mb_array_size * sizeof(uint8_t), fail);

        FF_ALLOCZ_OR_GOTO(s->avctx, s->pred_dir_table, mb_array_size * sizeof(uint8_t), fail);

    }



    if (s->h263_pred || s->h263_plus || !s->encoding) {

        /* dc values */

        // MN: we need these for  error resilience of intra-frames

        FF_ALLOCZ_OR_GOTO(s->avctx, s->dc_val_base, yc_size * sizeof(int16_t), fail);

        s->dc_val[0] = s->dc_val_base + s->b8_stride + 1;

        s->dc_val[1] = s->dc_val_base + y_size + s->mb_stride + 1;

        s->dc_val[2] = s->dc_val[1] + c_size;

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

            s->dc_val_base[i] = 1024;

    }



    /* which mb is a intra block */

    FF_ALLOCZ_OR_GOTO(s->avctx, s->mbintra_table, mb_array_size, fail);

    memset(s->mbintra_table, 1, mb_array_size);



    /* init macroblock skip table */

    FF_ALLOCZ_OR_GOTO(s->avctx, s->mbskip_table, mb_array_size + 2, fail);

    // Note the + 1 is for  a quicker mpeg4 slice_end detection



    return init_er(s);

fail:

    return AVERROR(ENOMEM);

}

static int init_context_frame(MpegEncContext *s)

{

    int y_size, c_size, yc_size, i, mb_array_size, mv_table_size, x, y;



    s->mb_width   = (s->width + 15) / 16;

    s->mb_stride  = s->mb_width + 1;

    s->b8_stride  = s->mb_width * 2 + 1;

    s->b4_stride  = s->mb_width * 4 + 1;

    mb_array_size = s->mb_height * s->mb_stride;

    mv_table_size = (s->mb_height + 2) * s->mb_stride + 1;



    



    s->h_edge_pos = s->mb_width * 16;

    s->v_edge_pos = s->mb_height * 16;



    s->mb_num     = s->mb_width * s->mb_height;



    s->block_wrap[0] =

    s->block_wrap[1] =

    s->block_wrap[2] =

    s->block_wrap[3] = s->b8_stride;

    s->block_wrap[4] =

    s->block_wrap[5] = s->mb_stride;



    y_size  = s->b8_stride * (2 * s->mb_height + 1);

    c_size  = s->mb_stride * (s->mb_height + 1);

    yc_size = y_size + 2   * c_size;



    if (s->mb_height & 1)

        yc_size += 2*s->b8_stride + 2*s->mb_stride;



    FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_index2xy, (s->mb_num + 1) * sizeof(int), fail); 

    for (y = 0; y < s->mb_height; y++)

        for (x = 0; x < s->mb_width; x++)

            s->mb_index2xy[x + y * s->mb_width] = x + y * s->mb_stride;



    s->mb_index2xy[s->mb_height * s->mb_width] = (s->mb_height - 1) * s->mb_stride + s->mb_width; 



    if (s->encoding) {

        

        FF_ALLOCZ_OR_GOTO(s->avctx, s->p_mv_table_base,                 mv_table_size * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(s->avctx, s->b_forw_mv_table_base,            mv_table_size * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(s->avctx, s->b_back_mv_table_base,            mv_table_size * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(s->avctx, s->b_bidir_forw_mv_table_base,      mv_table_size * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(s->avctx, s->b_bidir_back_mv_table_base,      mv_table_size * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(s->avctx, s->b_direct_mv_table_base,          mv_table_size * 2 * sizeof(int16_t), fail)

        s->p_mv_table            = s->p_mv_table_base + s->mb_stride + 1;

        s->b_forw_mv_table       = s->b_forw_mv_table_base + s->mb_stride + 1;

        s->b_back_mv_table       = s->b_back_mv_table_base + s->mb_stride + 1;

        s->b_bidir_forw_mv_table = s->b_bidir_forw_mv_table_base + s->mb_stride + 1;

        s->b_bidir_back_mv_table = s->b_bidir_back_mv_table_base + s->mb_stride + 1;

        s->b_direct_mv_table     = s->b_direct_mv_table_base + s->mb_stride + 1;



        

        FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_type, mb_array_size * sizeof(uint16_t), fail) 



        FF_ALLOCZ_OR_GOTO(s->avctx, s->lambda_table, mb_array_size * sizeof(int), fail)



        FF_ALLOC_OR_GOTO(s->avctx, s->cplx_tab,

                         mb_array_size * sizeof(float), fail);

        FF_ALLOC_OR_GOTO(s->avctx, s->bits_tab,

                         mb_array_size * sizeof(float), fail);



    }



    if (s->codec_id == AV_CODEC_ID_MPEG4 ||

        (s->flags & CODEC_FLAG_INTERLACED_ME)) {

        

        for (i = 0; i < 2; i++) {

            int j, k;

            for (j = 0; j < 2; j++) {

                for (k = 0; k < 2; k++) {

                    FF_ALLOCZ_OR_GOTO(s->avctx,

                                      s->b_field_mv_table_base[i][j][k],

                                      mv_table_size * 2 * sizeof(int16_t),

                                      fail);

                    s->b_field_mv_table[i][j][k] = s->b_field_mv_table_base[i][j][k] +

                                                   s->mb_stride + 1;

                }

                FF_ALLOCZ_OR_GOTO(s->avctx, s->b_field_select_table [i][j], mb_array_size * 2 * sizeof(uint8_t), fail)

                FF_ALLOCZ_OR_GOTO(s->avctx, s->p_field_mv_table_base[i][j], mv_table_size * 2 * sizeof(int16_t), fail)

                s->p_field_mv_table[i][j] = s->p_field_mv_table_base[i][j] + s->mb_stride + 1;

            }

            FF_ALLOCZ_OR_GOTO(s->avctx, s->p_field_select_table[i], mb_array_size * 2 * sizeof(uint8_t), fail)

        }

    }

    if (s->out_format == FMT_H263) {

        

        FF_ALLOCZ_OR_GOTO(s->avctx, s->coded_block_base, y_size + (s->mb_height&1)*2*s->b8_stride, fail);

        s->coded_block = s->coded_block_base + s->b8_stride + 1;



        

        FF_ALLOCZ_OR_GOTO(s->avctx, s->cbp_table     , mb_array_size * sizeof(uint8_t), fail);

        FF_ALLOCZ_OR_GOTO(s->avctx, s->pred_dir_table, mb_array_size * sizeof(uint8_t), fail);

    }



    if (s->h263_pred || s->h263_plus || !s->encoding) {

        

        

        FF_ALLOCZ_OR_GOTO(s->avctx, s->dc_val_base, yc_size * sizeof(int16_t), fail);

        s->dc_val[0] = s->dc_val_base + s->b8_stride + 1;

        s->dc_val[1] = s->dc_val_base + y_size + s->mb_stride + 1;

        s->dc_val[2] = s->dc_val[1] + c_size;

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

            s->dc_val_base[i] = 1024;

    }



    

    FF_ALLOCZ_OR_GOTO(s->avctx, s->mbintra_table, mb_array_size, fail);

    memset(s->mbintra_table, 1, mb_array_size);



    

    FF_ALLOCZ_OR_GOTO(s->avctx, s->mbskip_table, mb_array_size + 2, fail);

    



    return init_er(s);

fail:

    return AVERROR(ENOMEM);

}

static int FUNC_0(MpegEncContext *VAR_0)

{

    int VAR_1, VAR_2, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8;



    VAR_0->mb_width   = (VAR_0->width + 15) / 16;

    VAR_0->mb_stride  = VAR_0->mb_width + 1;

    VAR_0->b8_stride  = VAR_0->mb_width * 2 + 1;

    VAR_0->b4_stride  = VAR_0->mb_width * 4 + 1;

    VAR_5 = VAR_0->mb_height * VAR_0->mb_stride;

    VAR_6 = (VAR_0->mb_height + 2) * VAR_0->mb_stride + 1;



    



    VAR_0->h_edge_pos = VAR_0->mb_width * 16;

    VAR_0->v_edge_pos = VAR_0->mb_height * 16;



    VAR_0->mb_num     = VAR_0->mb_width * VAR_0->mb_height;



    VAR_0->block_wrap[0] =

    VAR_0->block_wrap[1] =

    VAR_0->block_wrap[2] =

    VAR_0->block_wrap[3] = VAR_0->b8_stride;

    VAR_0->block_wrap[4] =

    VAR_0->block_wrap[5] = VAR_0->mb_stride;



    VAR_1  = VAR_0->b8_stride * (2 * VAR_0->mb_height + 1);

    VAR_2  = VAR_0->mb_stride * (VAR_0->mb_height + 1);

    VAR_3 = VAR_1 + 2   * VAR_2;



    if (VAR_0->mb_height & 1)

        VAR_3 += 2*VAR_0->b8_stride + 2*VAR_0->mb_stride;



    FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->mb_index2xy, (VAR_0->mb_num + 1) * sizeof(int), fail); 

    for (VAR_8 = 0; VAR_8 < VAR_0->mb_height; VAR_8++)

        for (VAR_7 = 0; VAR_7 < VAR_0->mb_width; VAR_7++)

            VAR_0->mb_index2xy[VAR_7 + VAR_8 * VAR_0->mb_width] = VAR_7 + VAR_8 * VAR_0->mb_stride;



    VAR_0->mb_index2xy[VAR_0->mb_height * VAR_0->mb_width] = (VAR_0->mb_height - 1) * VAR_0->mb_stride + VAR_0->mb_width; 



    if (VAR_0->encoding) {

        

        FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->p_mv_table_base,                 VAR_6 * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->b_forw_mv_table_base,            VAR_6 * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->b_back_mv_table_base,            VAR_6 * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->b_bidir_forw_mv_table_base,      VAR_6 * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->b_bidir_back_mv_table_base,      VAR_6 * 2 * sizeof(int16_t), fail)

        FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->b_direct_mv_table_base,          VAR_6 * 2 * sizeof(int16_t), fail)

        VAR_0->p_mv_table            = VAR_0->p_mv_table_base + VAR_0->mb_stride + 1;

        VAR_0->b_forw_mv_table       = VAR_0->b_forw_mv_table_base + VAR_0->mb_stride + 1;

        VAR_0->b_back_mv_table       = VAR_0->b_back_mv_table_base + VAR_0->mb_stride + 1;

        VAR_0->b_bidir_forw_mv_table = VAR_0->b_bidir_forw_mv_table_base + VAR_0->mb_stride + 1;

        VAR_0->b_bidir_back_mv_table = VAR_0->b_bidir_back_mv_table_base + VAR_0->mb_stride + 1;

        VAR_0->b_direct_mv_table     = VAR_0->b_direct_mv_table_base + VAR_0->mb_stride + 1;



        

        FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->mb_type, VAR_5 * sizeof(uint16_t), fail) 



        FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->lambda_table, VAR_5 * sizeof(int), fail)



        FF_ALLOC_OR_GOTO(VAR_0->avctx, VAR_0->cplx_tab,

                         VAR_5 * sizeof(float), fail);

        FF_ALLOC_OR_GOTO(VAR_0->avctx, VAR_0->bits_tab,

                         VAR_5 * sizeof(float), fail);



    }



    if (VAR_0->codec_id == AV_CODEC_ID_MPEG4 ||

        (VAR_0->flags & CODEC_FLAG_INTERLACED_ME)) {

        

        for (VAR_4 = 0; VAR_4 < 2; VAR_4++) {

            int VAR_9, VAR_10;

            for (VAR_9 = 0; VAR_9 < 2; VAR_9++) {

                for (VAR_10 = 0; VAR_10 < 2; VAR_10++) {

                    FF_ALLOCZ_OR_GOTO(VAR_0->avctx,

                                      VAR_0->b_field_mv_table_base[VAR_4][VAR_9][VAR_10],

                                      VAR_6 * 2 * sizeof(int16_t),

                                      fail);

                    VAR_0->b_field_mv_table[VAR_4][VAR_9][VAR_10] = VAR_0->b_field_mv_table_base[VAR_4][VAR_9][VAR_10] +

                                                   VAR_0->mb_stride + 1;

                }

                FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->b_field_select_table [VAR_4][VAR_9], VAR_5 * 2 * sizeof(uint8_t), fail)

                FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->p_field_mv_table_base[VAR_4][VAR_9], VAR_6 * 2 * sizeof(int16_t), fail)

                VAR_0->p_field_mv_table[VAR_4][VAR_9] = VAR_0->p_field_mv_table_base[VAR_4][VAR_9] + VAR_0->mb_stride + 1;

            }

            FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->p_field_select_table[VAR_4], VAR_5 * 2 * sizeof(uint8_t), fail)

        }

    }

    if (VAR_0->out_format == FMT_H263) {

        

        FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->coded_block_base, VAR_1 + (VAR_0->mb_height&1)*2*VAR_0->b8_stride, fail);

        VAR_0->coded_block = VAR_0->coded_block_base + VAR_0->b8_stride + 1;



        

        FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->cbp_table     , VAR_5 * sizeof(uint8_t), fail);

        FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->pred_dir_table, VAR_5 * sizeof(uint8_t), fail);

    }



    if (VAR_0->h263_pred || VAR_0->h263_plus || !VAR_0->encoding) {

        

        

        FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->dc_val_base, VAR_3 * sizeof(int16_t), fail);

        VAR_0->dc_val[0] = VAR_0->dc_val_base + VAR_0->b8_stride + 1;

        VAR_0->dc_val[1] = VAR_0->dc_val_base + VAR_1 + VAR_0->mb_stride + 1;

        VAR_0->dc_val[2] = VAR_0->dc_val[1] + VAR_2;

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

            VAR_0->dc_val_base[VAR_4] = 1024;

    }



    

    FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->mbintra_table, VAR_5, fail);

    memset(VAR_0->mbintra_table, 1, VAR_5);



    

    FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->mbskip_table, VAR_5 + 2, fail);

    



    return init_er(VAR_0);

fail:

    return AVERROR(ENOMEM);

}

static int FUNC_0(MpegEncContext *VAR_0)
{ int VAR_1, VAR_2, VAR_3, VAR_4, VAR_5, VAR_6, VAR_7, VAR_8; VAR_0->mb_width   = (VAR_0->width + 15) / 16; VAR_0->mb_stride  = VAR_0->mb_width + 1; VAR_0->b8_stride  = VAR_0->mb_width * 2 + 1; VAR_0->b4_stride  = VAR_0->mb_width * 4 + 1; VAR_5 = VAR_0->mb_height * VAR_0->mb_stride; VAR_6 = (VAR_0->mb_height + 2) * VAR_0->mb_stride + 1; VAR_0->h_edge_pos = VAR_0->mb_width * 16; VAR_0->v_edge_pos = VAR_0->mb_height * 16; VAR_0->mb_num     = VAR_0->mb_width * VAR_0->mb_height; VAR_0->block_wrap[0] =
VAR_0->block_wrap[1] =
VAR_0->block_wrap[2] =
VAR_0->block_wrap[3] = VAR_0->b8_stride; VAR_0->block_wrap[4] =
VAR_0->block_wrap[5] = VAR_0->mb_stride; VAR_1  = VAR_0->b8_stride * (2 * VAR_0->mb_height + 1); VAR_2  = VAR_0->mb_stride * (VAR_0->mb_height + 1); VAR_3 = VAR_1 + 2   * VAR_2; if (VAR_0->mb_height & 1)
VAR_3 += 2*VAR_0->b8_stride + 2*VAR_0->mb_stride; FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->mb_index2xy, (VAR_0->mb_num + 1) * sizeof(int), fail); for (VAR_8 = 0; VAR_8 < VAR_0->mb_height; VAR_8++) for (VAR_7 = 0; VAR_7 < VAR_0->mb_width; VAR_7++) VAR_0->mb_index2xy[VAR_7 + VAR_8 * VAR_0->mb_width] = VAR_7 + VAR_8 * VAR_0->mb_stride; VAR_0->mb_index2xy[VAR_0->mb_height * VAR_0->mb_width] = (VAR_0->mb_height - 1) * VAR_0->mb_stride + VAR_0->mb_width; if (VAR_0->encoding) { FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->p_mv_table_base,                 VAR_6 * 2 * sizeof(int16_t), fail)
FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->b_forw_mv_table_base,            VAR_6 * 2 * sizeof(int16_t), fail)
FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->b_back_mv_table_base,            VAR_6 * 2 * sizeof(int16_t), fail)
FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->b_bidir_forw_mv_table_base,      VAR_6 * 2 * sizeof(int16_t), fail)
FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->b_bidir_back_mv_table_base,      VAR_6 * 2 * sizeof(int16_t), fail)
FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->b_direct_mv_table_base,          VAR_6 * 2 * sizeof(int16_t), fail)
VAR_0->p_mv_table            = VAR_0->p_mv_table_base + VAR_0->mb_stride + 1; VAR_0->b_forw_mv_table       = VAR_0->b_forw_mv_table_base + VAR_0->mb_stride + 1; VAR_0->b_back_mv_table       = VAR_0->b_back_mv_table_base + VAR_0->mb_stride + 1; VAR_0->b_bidir_forw_mv_table = VAR_0->b_bidir_forw_mv_table_base + VAR_0->mb_stride + 1; VAR_0->b_bidir_back_mv_table = VAR_0->b_bidir_back_mv_table_base + VAR_0->mb_stride + 1; VAR_0->b_direct_mv_table     = VAR_0->b_direct_mv_table_base + VAR_0->mb_stride + 1; FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->mb_type, VAR_5 * sizeof(uint16_t), fail)
FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->lambda_table, VAR_5 * sizeof(int), fail)
FF_ALLOC_OR_GOTO(VAR_0->avctx, VAR_0->cplx_tab,
VAR_5 * sizeof(float), fail); FF_ALLOC_OR_GOTO(VAR_0->avctx, VAR_0->bits_tab,
VAR_5 * sizeof(float), fail); } if (VAR_0->codec_id == AV_CODEC_ID_MPEG4 ||
(VAR_0->flags & CODEC_FLAG_INTERLACED_ME)) { for (VAR_4 = 0; VAR_4 < 2; VAR_4++) { int VAR_9, VAR_10; for (VAR_9 = 0; VAR_9 < 2; VAR_9++) { for (VAR_10 = 0; VAR_10 < 2; VAR_10++) { FF_ALLOCZ_OR_GOTO(VAR_0->avctx,
VAR_0->b_field_mv_table_base[VAR_4][VAR_9][VAR_10],
VAR_6 * 2 * sizeof(int16_t),
fail); VAR_0->b_field_mv_table[VAR_4][VAR_9][VAR_10] = VAR_0->b_field_mv_table_base[VAR_4][VAR_9][VAR_10] +
VAR_0->mb_stride + 1; } FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->b_field_select_table [VAR_4][VAR_9], VAR_5 * 2 * sizeof(uint8_t), fail)
FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->p_field_mv_table_base[VAR_4][VAR_9], VAR_6 * 2 * sizeof(int16_t), fail)
VAR_0->p_field_mv_table[VAR_4][VAR_9] = VAR_0->p_field_mv_table_base[VAR_4][VAR_9] + VAR_0->mb_stride + 1; } FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->p_field_select_table[VAR_4], VAR_5 * 2 * sizeof(uint8_t), fail)
} } if (VAR_0->out_format == FMT_H263) { FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->coded_block_base, VAR_1 + (VAR_0->mb_height&1)*2*VAR_0->b8_stride, fail); VAR_0->coded_block = VAR_0->coded_block_base + VAR_0->b8_stride + 1; FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->cbp_table     , VAR_5 * sizeof(uint8_t), fail); FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->pred_dir_table, VAR_5 * sizeof(uint8_t), fail); } if (VAR_0->h263_pred || VAR_0->h263_plus || !VAR_0->encoding) { FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->dc_val_base, VAR_3 * sizeof(int16_t), fail); VAR_0->dc_val[0] = VAR_0->dc_val_base + VAR_0->b8_stride + 1; VAR_0->dc_val[1] = VAR_0->dc_val_base + VAR_1 + VAR_0->mb_stride + 1; VAR_0->dc_val[2] = VAR_0->dc_val[1] + VAR_2; for (VAR_4 = 0; VAR_4 < VAR_3; VAR_4++) VAR_0->dc_val_base[VAR_4] = 1024; } FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->mbintra_table, VAR_5, fail); memset(VAR_0->mbintra_table, 1, VAR_5); FF_ALLOCZ_OR_GOTO(VAR_0->avctx, VAR_0->mbskip_table, VAR_5 + 2, fail); return init_er(VAR_0); fail:
return AVERROR(ENOMEM); }