libavcodec/mpegvideo.c:858: error: Uninitialized Value
  The value read from mb_array_size was never initialized.

libavcodec/mpegvideo.c:858:13: 
856. 
857.             /* cbp, ac_pred, pred_dir */
858.             FF_ALLOCZ_OR_GOTO(s->avctx, s->cbp_table,
                 ^
859.                               mb_array_size * sizeof(uint8_t), fail);
860.             FF_ALLOCZ_OR_GOTO(s->avctx, s->pred_dir_table,

int MPV_common_init(MpegEncContext *s)
{
    int y_size, c_size, yc_size, i, mb_array_size, mv_table_size, x, y,
        threads = (s->encoding ||
                   (HAVE_THREADS &&
                    s->avctx->active_thread_type & FF_THREAD_SLICE)) ?
                  s->avctx->thread_count : 1;
    if (s->codec_id == CODEC_ID_MPEG2VIDEO && !s->progressive_sequence)
        s->mb_height = (s->height + 31) / 32 * 2;
    else if (s->codec_id != CODEC_ID_H264)
        s->mb_height = (s->height + 15) / 16;
    if (s->avctx->pix_fmt == PIX_FMT_NONE) {
        av_log(s->avctx, AV_LOG_ERROR,
               "decoding to PIX_FMT_NONE is not supported.\n");
        return -1;
    }
    if ((s->encoding || (s->avctx->active_thread_type & FF_THREAD_SLICE)) &&
        (s->avctx->thread_count > MAX_THREADS ||
         (s->avctx->thread_count > s->mb_height && s->mb_height))) {
        int max_threads = FFMIN(MAX_THREADS, s->mb_height);
        av_log(s->avctx, AV_LOG_WARNING,
               "too many threads (%d), reducing to %d\n",
               s->avctx->thread_count, max_threads);
        threads = max_threads;
    }
    if ((s->width || s->height) &&
        av_image_check_size(s->width, s->height, 0, s->avctx))
        return -1;
    ff_dct_common_init(s);
    s->flags  = s->avctx->flags;
    s->flags2 = s->avctx->flags2;
    if (s->width && s->height) {
        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;
        avcodec_get_chroma_sub_sample(s->avctx->pix_fmt,&(s->chroma_x_shift),
                                      &(s->chroma_y_shift) );
        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;
        s->codec_tag          = avpriv_toupper4(s->avctx->codec_tag);
        s->stream_codec_tag   = avpriv_toupper4(s->avctx->stream_codec_tag);
        s->avctx->coded_frame = (AVFrame *)&s->current_picture;
        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;
            if (s->msmpeg4_version) {
                FF_ALLOCZ_OR_GOTO(s->avctx, s->ac_stats,
                                  2 * 2 * (MAX_LEVEL + 1) *
                                  (MAX_RUN + 1) * 2 * sizeof(int), fail);
            }
            FF_ALLOCZ_OR_GOTO(s->avctx, s->avctx->stats_out, 256, fail);
            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_ALLOCZ_OR_GOTO(s->avctx, s->q_intra_matrix,
                              64 * 32   * sizeof(int), fail);
            FF_ALLOCZ_OR_GOTO(s->avctx, s->q_inter_matrix,
                              64 * 32   * sizeof(int), fail);
            FF_ALLOCZ_OR_GOTO(s->avctx, s->q_intra_matrix16,
                              64 * 32 * 2 * sizeof(uint16_t), fail);
            FF_ALLOCZ_OR_GOTO(s->avctx, s->q_inter_matrix16,
                              64 * 32 * 2 * sizeof(uint16_t), fail);
            FF_ALLOCZ_OR_GOTO(s->avctx, s->input_picture,
                              MAX_PICTURE_COUNT * sizeof(Picture *), fail);
            FF_ALLOCZ_OR_GOTO(s->avctx, s->reordered_input_picture,
                              MAX_PICTURE_COUNT * sizeof(Picture *), fail);
            if (s->avctx->noise_reduction) {
                FF_ALLOCZ_OR_GOTO(s->avctx, s->dct_offset,
                                  2 * 64 * sizeof(uint16_t), fail);
            }
        }
    }
    s->picture_count = MAX_PICTURE_COUNT * FFMAX(1, s->avctx->thread_count);
    FF_ALLOCZ_OR_GOTO(s->avctx, s->picture,
                      s->picture_count * sizeof(Picture), fail);
    for (i = 0; i < s->picture_count; i++) {
        avcodec_get_frame_defaults((AVFrame *) &s->picture[i]);
    }
    if (s->width && s->height) {
        FF_ALLOCZ_OR_GOTO(s->avctx, s->error_status_table,
                          mb_array_size * sizeof(uint8_t), fail);
        if (s->codec_id == 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, 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);
        FF_ALLOCZ_OR_GOTO(s->avctx, s->prev_pict_types,
                          PREV_PICT_TYPES_BUFFER_SIZE, fail);
        s->parse_context.state = -1;
        if ((s->avctx->debug & (FF_DEBUG_VIS_QP | FF_DEBUG_VIS_MB_TYPE)) ||
            s->avctx->debug_mv) {
            s->visualization_buffer[0] = av_malloc((s->mb_width * 16 +
                        2 * EDGE_WIDTH) * s->mb_height * 16 + 2 * EDGE_WIDTH);
            s->visualization_buffer[1] = av_malloc((s->mb_width * 16 +
                        2 * EDGE_WIDTH) * s->mb_height * 16 + 2 * EDGE_WIDTH);
            s->visualization_buffer[2] = av_malloc((s->mb_width * 16 +
                        2 * EDGE_WIDTH) * s->mb_height * 16 + 2 * EDGE_WIDTH);
        }
    }
    s->context_initialized = 1;
    s->thread_context[0]   = s;
    if (s->width && s->height) {
        if (s->encoding || (HAVE_THREADS &&
                            s->avctx->active_thread_type&FF_THREAD_SLICE)) {
            for (i = 1; i < threads; i++) {
                s->thread_context[i] = av_malloc(sizeof(MpegEncContext));
                memcpy(s->thread_context[i], s, sizeof(MpegEncContext));
            }
            for (i = 0; i < threads; i++) {
                if (init_duplicate_context(s->thread_context[i], s) < 0)
                    goto fail;
                    s->thread_context[i]->start_mb_y =
                        (s->mb_height * (i) + s->avctx->thread_count / 2) /
                        s->avctx->thread_count;
                    s->thread_context[i]->end_mb_y   =
                        (s->mb_height * (i + 1) + s->avctx->thread_count / 2) /
                        s->avctx->thread_count;
            }
        } else {
            if (init_duplicate_context(s, s) < 0)
                goto fail;
            s->start_mb_y = 0;
            s->end_mb_y   = s->mb_height;
        }
    }
    return 0;
 fail:
    MPV_common_end(s);
    return -1;
}
['int MPV_common_init(MpegEncContext *s)\n{\n    int y_size, c_size, yc_size, i, mb_array_size, mv_table_size, x, y,\n        threads = (s->encoding ||\n                   (HAVE_THREADS &&\n                    s->avctx->active_thread_type & FF_THREAD_SLICE)) ?\n                  s->avctx->thread_count : 1;\n    if (s->codec_id == CODEC_ID_MPEG2VIDEO && !s->progressive_sequence)\n        s->mb_height = (s->height + 31) / 32 * 2;\n    else if (s->codec_id != CODEC_ID_H264)\n        s->mb_height = (s->height + 15) / 16;\n    if (s->avctx->pix_fmt == PIX_FMT_NONE) {\n        av_log(s->avctx, AV_LOG_ERROR,\n               "decoding to PIX_FMT_NONE is not supported.\\n");\n        return -1;\n    }\n    if ((s->encoding || (s->avctx->active_thread_type & FF_THREAD_SLICE)) &&\n        (s->avctx->thread_count > MAX_THREADS ||\n         (s->avctx->thread_count > s->mb_height && s->mb_height))) {\n        int max_threads = FFMIN(MAX_THREADS, s->mb_height);\n        av_log(s->avctx, AV_LOG_WARNING,\n               "too many threads (%d), reducing to %d\\n",\n               s->avctx->thread_count, max_threads);\n        threads = max_threads;\n    }\n    if ((s->width || s->height) &&\n        av_image_check_size(s->width, s->height, 0, s->avctx))\n        return -1;\n    ff_dct_common_init(s);\n    s->flags  = s->avctx->flags;\n    s->flags2 = s->avctx->flags2;\n    if (s->width && s->height) {\n        s->mb_width   = (s->width + 15) / 16;\n        s->mb_stride  = s->mb_width + 1;\n        s->b8_stride  = s->mb_width * 2 + 1;\n        s->b4_stride  = s->mb_width * 4 + 1;\n        mb_array_size = s->mb_height * s->mb_stride;\n        mv_table_size = (s->mb_height + 2) * s->mb_stride + 1;\n        avcodec_get_chroma_sub_sample(s->avctx->pix_fmt,&(s->chroma_x_shift),\n                                      &(s->chroma_y_shift) );\n        s->h_edge_pos = s->mb_width * 16;\n        s->v_edge_pos = s->mb_height * 16;\n        s->mb_num     = s->mb_width * s->mb_height;\n        s->block_wrap[0] =\n        s->block_wrap[1] =\n        s->block_wrap[2] =\n        s->block_wrap[3] = s->b8_stride;\n        s->block_wrap[4] =\n        s->block_wrap[5] = s->mb_stride;\n        y_size  = s->b8_stride * (2 * s->mb_height + 1);\n        c_size  = s->mb_stride * (s->mb_height + 1);\n        yc_size = y_size + 2   * c_size;\n        s->codec_tag          = avpriv_toupper4(s->avctx->codec_tag);\n        s->stream_codec_tag   = avpriv_toupper4(s->avctx->stream_codec_tag);\n        s->avctx->coded_frame = (AVFrame *)&s->current_picture;\n        FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_index2xy, (s->mb_num + 1) * sizeof(int),\n                          fail);\n        for (y = 0; y < s->mb_height; y++)\n            for (x = 0; x < s->mb_width; x++)\n                s->mb_index2xy[x + y * s->mb_width] = x + y * s->mb_stride;\n        s->mb_index2xy[s->mb_height * s->mb_width] =\n                       (s->mb_height - 1) * s->mb_stride + s->mb_width;\n        if (s->encoding) {\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->p_mv_table_base,\n                              mv_table_size * 2 * sizeof(int16_t), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->b_forw_mv_table_base,\n                              mv_table_size * 2 * sizeof(int16_t), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->b_back_mv_table_base,\n                              mv_table_size * 2 * sizeof(int16_t), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->b_bidir_forw_mv_table_base,\n                              mv_table_size * 2 * sizeof(int16_t), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->b_bidir_back_mv_table_base,\n                              mv_table_size * 2 * sizeof(int16_t), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->b_direct_mv_table_base,\n                              mv_table_size * 2 * sizeof(int16_t), fail);\n            s->p_mv_table            = s->p_mv_table_base +\n                                       s->mb_stride + 1;\n            s->b_forw_mv_table       = s->b_forw_mv_table_base +\n                                       s->mb_stride + 1;\n            s->b_back_mv_table       = s->b_back_mv_table_base +\n                                       s->mb_stride + 1;\n            s->b_bidir_forw_mv_table = s->b_bidir_forw_mv_table_base +\n                                       s->mb_stride + 1;\n            s->b_bidir_back_mv_table = s->b_bidir_back_mv_table_base +\n                                       s->mb_stride + 1;\n            s->b_direct_mv_table     = s->b_direct_mv_table_base +\n                                       s->mb_stride + 1;\n            if (s->msmpeg4_version) {\n                FF_ALLOCZ_OR_GOTO(s->avctx, s->ac_stats,\n                                  2 * 2 * (MAX_LEVEL + 1) *\n                                  (MAX_RUN + 1) * 2 * sizeof(int), fail);\n            }\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->avctx->stats_out, 256, fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->mb_type, mb_array_size *\n                              sizeof(uint16_t), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->lambda_table, mb_array_size *\n                              sizeof(int), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->q_intra_matrix,\n                              64 * 32   * sizeof(int), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->q_inter_matrix,\n                              64 * 32   * sizeof(int), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->q_intra_matrix16,\n                              64 * 32 * 2 * sizeof(uint16_t), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->q_inter_matrix16,\n                              64 * 32 * 2 * sizeof(uint16_t), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->input_picture,\n                              MAX_PICTURE_COUNT * sizeof(Picture *), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->reordered_input_picture,\n                              MAX_PICTURE_COUNT * sizeof(Picture *), fail);\n            if (s->avctx->noise_reduction) {\n                FF_ALLOCZ_OR_GOTO(s->avctx, s->dct_offset,\n                                  2 * 64 * sizeof(uint16_t), fail);\n            }\n        }\n    }\n    s->picture_count = MAX_PICTURE_COUNT * FFMAX(1, s->avctx->thread_count);\n    FF_ALLOCZ_OR_GOTO(s->avctx, s->picture,\n                      s->picture_count * sizeof(Picture), fail);\n    for (i = 0; i < s->picture_count; i++) {\n        avcodec_get_frame_defaults((AVFrame *) &s->picture[i]);\n    }\n    if (s->width && s->height) {\n        FF_ALLOCZ_OR_GOTO(s->avctx, s->error_status_table,\n                          mb_array_size * sizeof(uint8_t), fail);\n        if (s->codec_id == CODEC_ID_MPEG4 ||\n            (s->flags & CODEC_FLAG_INTERLACED_ME)) {\n            for (i = 0; i < 2; i++) {\n                int j, k;\n                for (j = 0; j < 2; j++) {\n                    for (k = 0; k < 2; k++) {\n                        FF_ALLOCZ_OR_GOTO(s->avctx,\n                                          s->b_field_mv_table_base[i][j][k],\n                                          mv_table_size * 2 * sizeof(int16_t),\n                                          fail);\n                        s->b_field_mv_table[i][j][k] = s->b_field_mv_table_base[i][j][k] +\n                                                       s->mb_stride + 1;\n                    }\n                    FF_ALLOCZ_OR_GOTO(s->avctx, s->b_field_select_table [i][j],\n                                      mb_array_size * 2 * sizeof(uint8_t),\n                                      fail);\n                    FF_ALLOCZ_OR_GOTO(s->avctx, s->p_field_mv_table_base[i][j],\n                                      mv_table_size * 2 * sizeof(int16_t),\n                                      fail);\n                    s->p_field_mv_table[i][j] = s->p_field_mv_table_base[i][j]\n                                                + s->mb_stride + 1;\n                }\n                FF_ALLOCZ_OR_GOTO(s->avctx, s->p_field_select_table[i],\n                                  mb_array_size * 2 * sizeof(uint8_t),\n                                  fail);\n            }\n        }\n        if (s->out_format == FMT_H263) {\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->coded_block_base, y_size, fail);\n            s->coded_block = s->coded_block_base + s->b8_stride + 1;\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->cbp_table,\n                              mb_array_size * sizeof(uint8_t), fail);\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->pred_dir_table,\n                              mb_array_size * sizeof(uint8_t), fail);\n        }\n        if (s->h263_pred || s->h263_plus || !s->encoding) {\n            FF_ALLOCZ_OR_GOTO(s->avctx, s->dc_val_base,\n                              yc_size * sizeof(int16_t), fail);\n            s->dc_val[0] = s->dc_val_base + s->b8_stride + 1;\n            s->dc_val[1] = s->dc_val_base + y_size + s->mb_stride + 1;\n            s->dc_val[2] = s->dc_val[1] + c_size;\n            for (i = 0; i < yc_size; i++)\n                s->dc_val_base[i] = 1024;\n        }\n        FF_ALLOCZ_OR_GOTO(s->avctx, s->mbintra_table, mb_array_size, fail);\n        memset(s->mbintra_table, 1, mb_array_size);\n        FF_ALLOCZ_OR_GOTO(s->avctx, s->mbskip_table, mb_array_size + 2, fail);\n        FF_ALLOCZ_OR_GOTO(s->avctx, s->prev_pict_types,\n                          PREV_PICT_TYPES_BUFFER_SIZE, fail);\n        s->parse_context.state = -1;\n        if ((s->avctx->debug & (FF_DEBUG_VIS_QP | FF_DEBUG_VIS_MB_TYPE)) ||\n            s->avctx->debug_mv) {\n            s->visualization_buffer[0] = av_malloc((s->mb_width * 16 +\n                        2 * EDGE_WIDTH) * s->mb_height * 16 + 2 * EDGE_WIDTH);\n            s->visualization_buffer[1] = av_malloc((s->mb_width * 16 +\n                        2 * EDGE_WIDTH) * s->mb_height * 16 + 2 * EDGE_WIDTH);\n            s->visualization_buffer[2] = av_malloc((s->mb_width * 16 +\n                        2 * EDGE_WIDTH) * s->mb_height * 16 + 2 * EDGE_WIDTH);\n        }\n    }\n    s->context_initialized = 1;\n    s->thread_context[0]   = s;\n    if (s->width && s->height) {\n        if (s->encoding || (HAVE_THREADS &&\n                            s->avctx->active_thread_type&FF_THREAD_SLICE)) {\n            for (i = 1; i < threads; i++) {\n                s->thread_context[i] = av_malloc(sizeof(MpegEncContext));\n                memcpy(s->thread_context[i], s, sizeof(MpegEncContext));\n            }\n            for (i = 0; i < threads; i++) {\n                if (init_duplicate_context(s->thread_context[i], s) < 0)\n                    goto fail;\n                    s->thread_context[i]->start_mb_y =\n                        (s->mb_height * (i) + s->avctx->thread_count / 2) /\n                        s->avctx->thread_count;\n                    s->thread_context[i]->end_mb_y   =\n                        (s->mb_height * (i + 1) + s->avctx->thread_count / 2) /\n                        s->avctx->thread_count;\n            }\n        } else {\n            if (init_duplicate_context(s, s) < 0)\n                goto fail;\n            s->start_mb_y = 0;\n            s->end_mb_y   = s->mb_height;\n        }\n    }\n    return 0;\n fail:\n    MPV_common_end(s);\n    return -1;\n}']