static int h261_decode_gob(H261Context *h){

    MpegEncContext * const s = &h->s;

    int v;

    

    ff_set_qscale(s, s->qscale);



    /* check for empty gob */

    v= show_bits(&s->gb, 15);



    if(get_bits_count(&s->gb) + 15 > s->gb.size_in_bits){

        v>>= get_bits_count(&s->gb) + 15 - s->gb.size_in_bits;

    }



    if(v==0){

        h261_decode_mb_skipped(h, 0, 33);

        return 0;

    }



    /* decode mb's */

    while(h->current_mba <= MAX_MBA)

    {

        int ret;

        /* DCT & quantize */

        ret= h261_decode_mb(h, s->block);

        if(ret<0){

            const int xy= s->mb_x + s->mb_y*s->mb_stride;

            if(ret==SLICE_END){

                MPV_decode_mb(s, s->block);

                if(h->loop_filter){

                    ff_h261_loop_filter(h);

                }

                h->loop_filter = 0;

                h261_decode_mb_skipped(h, h->current_mba-h->mba_diff, h->current_mba-1);

                h261_decode_mb_skipped(h, h->current_mba, 33);                

                return 0;

            }else if(ret==SLICE_NOEND){

                av_log(s->avctx, AV_LOG_ERROR, "Slice mismatch at MB: %d\n", xy);

                return -1;

            }

            av_log(s->avctx, AV_LOG_ERROR, "Error at MB: %d\n", xy);

            return -1;

        }

        MPV_decode_mb(s, s->block);

        if(h->loop_filter){

            ff_h261_loop_filter(h);

        }



        h->loop_filter = 0;

        h261_decode_mb_skipped(h, h->current_mba-h->mba_diff, h->current_mba-1);

    }

    

    return -1;

}

static int h261_decode_gob(H261Context *h){

    MpegEncContext * const s = &h->s;

    int v;

    

    ff_set_qscale(s, s->qscale);



    

    v= show_bits(&s->gb, 15);



    if(get_bits_count(&s->gb) + 15 > s->gb.size_in_bits){

        v>>= get_bits_count(&s->gb) + 15 - s->gb.size_in_bits;

    }



    if(v==0){

        h261_decode_mb_skipped(h, 0, 33);

        return 0;

    }



    

    while(h->current_mba <= MAX_MBA)

    {

        int ret;

        

        ret= h261_decode_mb(h, s->block);

        if(ret<0){

            const int xy= s->mb_x + s->mb_y*s->mb_stride;

            if(ret==SLICE_END){

                MPV_decode_mb(s, s->block);

                if(h->loop_filter){

                    ff_h261_loop_filter(h);

                }

                h->loop_filter = 0;

                h261_decode_mb_skipped(h, h->current_mba-h->mba_diff, h->current_mba-1);

                h261_decode_mb_skipped(h, h->current_mba, 33);                

                return 0;

            }else if(ret==SLICE_NOEND){

                av_log(s->avctx, AV_LOG_ERROR, "Slice mismatch at MB: %d\n", xy);

                return -1;

            }

            av_log(s->avctx, AV_LOG_ERROR, "Error at MB: %d\n", xy);

            return -1;

        }

        MPV_decode_mb(s, s->block);

        if(h->loop_filter){

            ff_h261_loop_filter(h);

        }



        h->loop_filter = 0;

        h261_decode_mb_skipped(h, h->current_mba-h->mba_diff, h->current_mba-1);

    }

    

    return -1;

}

                return -1;     int v;     v= show_bits(&s->gb, 15);     if(get_bits_count(&s->gb) + 15 > s->gb.size_in_bits){         v>>= get_bits_count(&s->gb) + 15 - s->gb.size_in_bits;     if(v==0){         h261_decode_mb_skipped(h, 0, 33);         return 0;     while(h->current_mba <= MAX_MBA)         ret= h261_decode_mb(h, s->block);             const int xy= s->mb_x + s->mb_y*s->mb_stride;                 MPV_decode_mb(s, s->block);                 if(h->loop_filter){                     ff_h261_loop_filter(h);                 h->loop_filter = 0;                 h261_decode_mb_skipped(h, h->current_mba-h->mba_diff, h->current_mba-1);             }else if(ret==SLICE_NOEND){                 av_log(s->avctx, AV_LOG_ERROR, "Slice mismatch at MB: %d\n", xy);                 return -1;             av_log(s->avctx, AV_LOG_ERROR, "Error at MB: %d\n", xy);         MPV_decode_mb(s, s->block);         if(h->loop_filter){             ff_h261_loop_filter(h);         h->loop_filter = 0;
static int FUNC_0(H261Context *VAR_0){

    MpegEncContext * const s = &VAR_0->s;

    int VAR_1;

    

    ff_set_qscale(s, s->qscale);



    

    VAR_1= show_bits(&s->gb, 15);



    if(get_bits_count(&s->gb) + 15 > s->gb.size_in_bits){

        VAR_1>>= get_bits_count(&s->gb) + 15 - s->gb.size_in_bits;

    }



    if(VAR_1==0){

        h261_decode_mb_skipped(VAR_0, 0, 33);

        return 0;

    }



    

    while(VAR_0->current_mba <= MAX_MBA)

    {

        int VAR_2;

        

        VAR_2= h261_decode_mb(VAR_0, s->block);

        if(VAR_2<0){

            const int VAR_3= s->mb_x + s->mb_y*s->mb_stride;

            if(VAR_2==SLICE_END){

                MPV_decode_mb(s, s->block);

                if(VAR_0->loop_filter){

                    ff_h261_loop_filter(VAR_0);

                }

                VAR_0->loop_filter = 0;

                h261_decode_mb_skipped(VAR_0, VAR_0->current_mba-VAR_0->mba_diff, VAR_0->current_mba-1);

                h261_decode_mb_skipped(VAR_0, VAR_0->current_mba, 33);                

                return 0;

            }else if(VAR_2==SLICE_NOEND){

                av_log(s->avctx, AV_LOG_ERROR, "Slice mismatch at MB: %d\n", VAR_3);

                return -1;

            }

            av_log(s->avctx, AV_LOG_ERROR, "Error at MB: %d\n", VAR_3);

            return -1;

        }

        MPV_decode_mb(s, s->block);

        if(VAR_0->loop_filter){

            ff_h261_loop_filter(VAR_0);

        }



        VAR_0->loop_filter = 0;

        h261_decode_mb_skipped(VAR_0, VAR_0->current_mba-VAR_0->mba_diff, VAR_0->current_mba-1);

    }

    

    return -1;

}

static int FUNC_0(H261Context *VAR_0){ MpegEncContext * const s = &VAR_0->s; int VAR_1; ff_set_qscale(s, s->qscale); VAR_1= show_bits(&s->gb, 15); if(get_bits_count(&s->gb) + 15 > s->gb.size_in_bits){ VAR_1>>= get_bits_count(&s->gb) + 15 - s->gb.size_in_bits; } if(VAR_1==0){ h261_decode_mb_skipped(VAR_0, 0, 33); return 0; } while(VAR_0->current_mba <= MAX_MBA)
{ int VAR_2; VAR_2= h261_decode_mb(VAR_0, s->block); if(VAR_2<0){ const int VAR_3= s->mb_x + s->mb_y*s->mb_stride; if(VAR_2==SLICE_END){ MPV_decode_mb(s, s->block); if(VAR_0->loop_filter){ ff_h261_loop_filter(VAR_0); } VAR_0->loop_filter = 0; h261_decode_mb_skipped(VAR_0, VAR_0->current_mba-VAR_0->mba_diff, VAR_0->current_mba-1); h261_decode_mb_skipped(VAR_0, VAR_0->current_mba, 33); return 0; }else if(VAR_2==SLICE_NOEND){ av_log(s->avctx, AV_LOG_ERROR, "Slice mismatch at MB: %d\n", VAR_3); return -1; } av_log(s->avctx, AV_LOG_ERROR, "Error at MB: %d\n", VAR_3); return -1; } MPV_decode_mb(s, s->block); if(VAR_0->loop_filter){ ff_h261_loop_filter(VAR_0); } VAR_0->loop_filter = 0; h261_decode_mb_skipped(VAR_0, VAR_0->current_mba-VAR_0->mba_diff, VAR_0->current_mba-1); } return -1; }