static int tgq_decode_mb(TgqContext *s, AVFrame *frame, int mb_y, int mb_x)

{

    int mode;

    int i;

    int8_t dc[6];



    mode = bytestream2_get_byte(&s->gb);

    if (mode > 12) {

        GetBitContext gb;

        init_get_bits8(&gb, s->gb.buffer, FFMIN(bytestream2_get_bytes_left(&s->gb), mode));

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

            tgq_decode_block(s, s->block[i], &gb);

        tgq_idct_put_mb(s, s->block, frame, mb_x, mb_y);

        bytestream2_skip(&s->gb, mode);

    } else {

        if (mode == 3) {

            memset(dc, bytestream2_get_byte(&s->gb), 4);

            dc[4] = bytestream2_get_byte(&s->gb);

            dc[5] = bytestream2_get_byte(&s->gb);

        } else if (mode == 6) {

            bytestream2_get_buffer(&s->gb, dc, 6);

        } else if (mode == 12) {

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

                dc[i] = bytestream2_get_byte(&s->gb);

                bytestream2_skip(&s->gb, 1);

            }

        } else {

            av_log(s->avctx, AV_LOG_ERROR, "unsupported mb mode %i\n", mode);

            return -1;

        }

        tgq_idct_put_mb_dconly(s, frame, mb_x, mb_y, dc);

    }

    return 0;

}

static int tgq_decode_mb(TgqContext *s, AVFrame *frame, int mb_y, int mb_x)

{

    int mode;

    int i;

    int8_t dc[6];



    mode = bytestream2_get_byte(&s->gb);

    if (mode > 12) {

        GetBitContext gb;

        init_get_bits8(&gb, s->gb.buffer, FFMIN(bytestream2_get_bytes_left(&s->gb), mode));

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

            tgq_decode_block(s, s->block[i], &gb);

        tgq_idct_put_mb(s, s->block, frame, mb_x, mb_y);

        bytestream2_skip(&s->gb, mode);

    } else {

        if (mode == 3) {

            memset(dc, bytestream2_get_byte(&s->gb), 4);

            dc[4] = bytestream2_get_byte(&s->gb);

            dc[5] = bytestream2_get_byte(&s->gb);

        } else if (mode == 6) {

            bytestream2_get_buffer(&s->gb, dc, 6);

        } else if (mode == 12) {

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

                dc[i] = bytestream2_get_byte(&s->gb);

                bytestream2_skip(&s->gb, 1);

            }

        } else {

            av_log(s->avctx, AV_LOG_ERROR, "unsupported mb mode %i\n", mode);

            return -1;

        }

        tgq_idct_put_mb_dconly(s, frame, mb_x, mb_y, dc);

    }

    return 0;

}

        init_get_bits8(&gb, s->gb.buffer, FFMIN(bytestream2_get_bytes_left(&s->gb), mode));
static int FUNC_0(TgqContext *VAR_0, AVFrame *VAR_1, int VAR_2, int VAR_3)

{

    int VAR_4;

    int VAR_5;

    int8_t dc[6];



    VAR_4 = bytestream2_get_byte(&VAR_0->gb);

    if (VAR_4 > 12) {

        GetBitContext gb;

        init_get_bits8(&gb, VAR_0->gb.buffer, FFMIN(bytestream2_get_bytes_left(&VAR_0->gb), VAR_4));

        for (VAR_5 = 0; VAR_5 < 6; VAR_5++)

            tgq_decode_block(VAR_0, VAR_0->block[VAR_5], &gb);

        tgq_idct_put_mb(VAR_0, VAR_0->block, VAR_1, VAR_3, VAR_2);

        bytestream2_skip(&VAR_0->gb, VAR_4);

    } else {

        if (VAR_4 == 3) {

            memset(dc, bytestream2_get_byte(&VAR_0->gb), 4);

            dc[4] = bytestream2_get_byte(&VAR_0->gb);

            dc[5] = bytestream2_get_byte(&VAR_0->gb);

        } else if (VAR_4 == 6) {

            bytestream2_get_buffer(&VAR_0->gb, dc, 6);

        } else if (VAR_4 == 12) {

            for (VAR_5 = 0; VAR_5 < 6; VAR_5++) {

                dc[VAR_5] = bytestream2_get_byte(&VAR_0->gb);

                bytestream2_skip(&VAR_0->gb, 1);

            }

        } else {

            av_log(VAR_0->avctx, AV_LOG_ERROR, "unsupported mb VAR_4 %VAR_5\n", VAR_4);

            return -1;

        }

        tgq_idct_put_mb_dconly(VAR_0, VAR_1, VAR_3, VAR_2, dc);

    }

    return 0;

}

static int FUNC_0(TgqContext *VAR_0, AVFrame *VAR_1, int VAR_2, int VAR_3)
{ int VAR_4; int VAR_5; int8_t dc[6]; VAR_4 = bytestream2_get_byte(&VAR_0->gb); if (VAR_4 > 12) { GetBitContext gb; init_get_bits8(&gb, VAR_0->gb.buffer, FFMIN(bytestream2_get_bytes_left(&VAR_0->gb), VAR_4)); for (VAR_5 = 0; VAR_5 < 6; VAR_5++) tgq_decode_block(VAR_0, VAR_0->block[VAR_5], &gb); tgq_idct_put_mb(VAR_0, VAR_0->block, VAR_1, VAR_3, VAR_2); bytestream2_skip(&VAR_0->gb, VAR_4); } else { if (VAR_4 == 3) { memset(dc, bytestream2_get_byte(&VAR_0->gb), 4); dc[4] = bytestream2_get_byte(&VAR_0->gb); dc[5] = bytestream2_get_byte(&VAR_0->gb); } else if (VAR_4 == 6) { bytestream2_get_buffer(&VAR_0->gb, dc, 6); } else if (VAR_4 == 12) { for (VAR_5 = 0; VAR_5 < 6; VAR_5++) { dc[VAR_5] = bytestream2_get_byte(&VAR_0->gb); bytestream2_skip(&VAR_0->gb, 1); } } else { av_log(VAR_0->avctx, AV_LOG_ERROR, "unsupported mb VAR_4 %VAR_5\n", VAR_4); return -1; } tgq_idct_put_mb_dconly(VAR_0, VAR_1, VAR_3, VAR_2, dc); } return 0; }