static int vp8_decode_mb_row_sliced(AVCodecContext *avctx, void *tdata,

                                    int jobnr, int threadnr)

{

    VP8Context *s = avctx->priv_data;

    VP8ThreadData *td = &s->thread_data[jobnr];

    VP8ThreadData *next_td = NULL, *prev_td = NULL;

    VP8Frame *curframe = s->curframe;

    int mb_y, num_jobs = s->num_jobs;



    td->thread_nr = threadnr;

    for (mb_y = jobnr; mb_y < s->mb_height; mb_y += num_jobs) {

        if (mb_y >= s->mb_height)

            break;

        td->thread_mb_pos = mb_y << 16;

        vp8_decode_mb_row_no_filter(avctx, tdata, jobnr, threadnr);

        if (s->deblock_filter)

            vp8_filter_mb_row(avctx, tdata, jobnr, threadnr);

        update_pos(td, mb_y, INT_MAX & 0xFFFF);



        s->mv_min.y -= 64;

        s->mv_max.y -= 64;



        if (avctx->active_thread_type == FF_THREAD_FRAME)

            ff_thread_report_progress(&curframe->tf, mb_y, 0);

    }



    return 0;

}

static int vp8_decode_mb_row_sliced(AVCodecContext *avctx, void *tdata,

                                    int jobnr, int threadnr)

{

    VP8Context *s = avctx->priv_data;

    VP8ThreadData *td = &s->thread_data[jobnr];

    VP8ThreadData *next_td = NULL, *prev_td = NULL;

    VP8Frame *curframe = s->curframe;

    int mb_y, num_jobs = s->num_jobs;



    td->thread_nr = threadnr;

    for (mb_y = jobnr; mb_y < s->mb_height; mb_y += num_jobs) {

        if (mb_y >= s->mb_height)

            break;

        td->thread_mb_pos = mb_y << 16;

        vp8_decode_mb_row_no_filter(avctx, tdata, jobnr, threadnr);

        if (s->deblock_filter)

            vp8_filter_mb_row(avctx, tdata, jobnr, threadnr);

        update_pos(td, mb_y, INT_MAX & 0xFFFF);



        s->mv_min.y -= 64;

        s->mv_max.y -= 64;



        if (avctx->active_thread_type == FF_THREAD_FRAME)

            ff_thread_report_progress(&curframe->tf, mb_y, 0);

    }



    return 0;

}

static int vp8_decode_mb_row_sliced(AVCodecContext *avctx, void *tdata,                                     int jobnr, int threadnr)         vp8_decode_mb_row_no_filter(avctx, tdata, jobnr, threadnr);             vp8_filter_mb_row(avctx, tdata, jobnr, threadnr);             break;
static int FUNC_0(AVCodecContext *VAR_0, void *VAR_1,

                                    int VAR_2, int VAR_3)

{

    VP8Context *s = VAR_0->priv_data;

    VP8ThreadData *td = &s->thread_data[VAR_2];

    VP8ThreadData *next_td = NULL, *prev_td = NULL;

    VP8Frame *curframe = s->curframe;

    int VAR_4, VAR_5 = s->VAR_5;



    td->thread_nr = VAR_3;

    for (VAR_4 = VAR_2; VAR_4 < s->mb_height; VAR_4 += VAR_5) {

        if (VAR_4 >= s->mb_height)

            break;

        td->thread_mb_pos = VAR_4 << 16;

        vp8_decode_mb_row_no_filter(VAR_0, VAR_1, VAR_2, VAR_3);

        if (s->deblock_filter)

            vp8_filter_mb_row(VAR_0, VAR_1, VAR_2, VAR_3);

        update_pos(td, VAR_4, INT_MAX & 0xFFFF);



        s->mv_min.y -= 64;

        s->mv_max.y -= 64;



        if (VAR_0->active_thread_type == FF_THREAD_FRAME)

            ff_thread_report_progress(&curframe->tf, VAR_4, 0);

    }



    return 0;

}

static int FUNC_0(AVCodecContext *VAR_0, void *VAR_1,
int VAR_2, int VAR_3)
{ VP8Context *s = VAR_0->priv_data; VP8ThreadData *td = &s->thread_data[VAR_2]; VP8ThreadData *next_td = NULL, *prev_td = NULL; VP8Frame *curframe = s->curframe; int VAR_4, VAR_5 = s->VAR_5; td->thread_nr = VAR_3; for (VAR_4 = VAR_2; VAR_4 < s->mb_height; VAR_4 += VAR_5) { if (VAR_4 >= s->mb_height)
break; td->thread_mb_pos = VAR_4 << 16; vp8_decode_mb_row_no_filter(VAR_0, VAR_1, VAR_2, VAR_3); if (s->deblock_filter)
vp8_filter_mb_row(VAR_0, VAR_1, VAR_2, VAR_3); update_pos(td, VAR_4, INT_MAX & 0xFFFF); s->mv_min.y -= 64; s->mv_max.y -= 64; if (VAR_0->active_thread_type == FF_THREAD_FRAME)
ff_thread_report_progress(&curframe->tf, VAR_4, 0); } return 0; }