static int dx2_decode_slice_410(GetBitContext *gb, AVFrame *frame,

                                int line, int left,

                                uint8_t lru[3][8])

{

    int x, y, i, j;

    int width   = frame->width;



    int ystride = frame->linesize[0];

    int ustride = frame->linesize[1];

    int vstride = frame->linesize[2];



    uint8_t *Y  = frame->data[0] + ystride * line;

    uint8_t *U  = frame->data[1] + (ustride >> 2) * line;

    uint8_t *V  = frame->data[2] + (vstride >> 2) * line;



    for (y = 0; y < left - 3 && get_bits_left(gb) > 16; y += 4) {

        for (x = 0; x < width; x += 4) {

            for (j = 0; j < 4; j++)

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

                    Y[x + i + j * ystride] = decode_sym(gb, lru[0]);

            U[x >> 2] = decode_sym(gb, lru[1]) ^ 0x80;

            V[x >> 2] = decode_sym(gb, lru[2]) ^ 0x80;

        }



        Y += ystride << 2;

        U += ustride;

        V += vstride;

    }



    return y;

}

static int dx2_decode_slice_410(GetBitContext *gb, AVFrame *frame,

                                int line, int left,

                                uint8_t lru[3][8])

{

    int x, y, i, j;

    int width   = frame->width;



    int ystride = frame->linesize[0];

    int ustride = frame->linesize[1];

    int vstride = frame->linesize[2];



    uint8_t *Y  = frame->data[0] + ystride * line;

    uint8_t *U  = frame->data[1] + (ustride >> 2) * line;

    uint8_t *V  = frame->data[2] + (vstride >> 2) * line;



    for (y = 0; y < left - 3 && get_bits_left(gb) > 16; y += 4) {

        for (x = 0; x < width; x += 4) {

            for (j = 0; j < 4; j++)

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

                    Y[x + i + j * ystride] = decode_sym(gb, lru[0]);

            U[x >> 2] = decode_sym(gb, lru[1]) ^ 0x80;

            V[x >> 2] = decode_sym(gb, lru[2]) ^ 0x80;

        }



        Y += ystride << 2;

        U += ustride;

        V += vstride;

    }



    return y;

}

    for (y = 0; y < left - 3 && get_bits_left(gb) > 16; y += 4) {
static int FUNC_0(GetBitContext *VAR_0, AVFrame *VAR_1,

                                int VAR_2, int VAR_3,

                                uint8_t VAR_4[3][8])

{

    int VAR_5, VAR_6, VAR_7, VAR_8;

    int VAR_9   = VAR_1->VAR_9;



    int VAR_10 = VAR_1->linesize[0];

    int VAR_11 = VAR_1->linesize[1];

    int VAR_12 = VAR_1->linesize[2];



    uint8_t *Y  = VAR_1->data[0] + VAR_10 * VAR_2;

    uint8_t *U  = VAR_1->data[1] + (VAR_11 >> 2) * VAR_2;

    uint8_t *V  = VAR_1->data[2] + (VAR_12 >> 2) * VAR_2;



    for (VAR_6 = 0; VAR_6 < VAR_3 - 3 && get_bits_left(VAR_0) > 16; VAR_6 += 4) {

        for (VAR_5 = 0; VAR_5 < VAR_9; VAR_5 += 4) {

            for (VAR_8 = 0; VAR_8 < 4; VAR_8++)

                for (VAR_7 = 0; VAR_7 < 4; VAR_7++)

                    Y[VAR_5 + VAR_7 + VAR_8 * VAR_10] = decode_sym(VAR_0, VAR_4[0]);

            U[VAR_5 >> 2] = decode_sym(VAR_0, VAR_4[1]) ^ 0x80;

            V[VAR_5 >> 2] = decode_sym(VAR_0, VAR_4[2]) ^ 0x80;

        }



        Y += VAR_10 << 2;

        U += VAR_11;

        V += VAR_12;

    }



    return VAR_6;

}

static int FUNC_0(GetBitContext *VAR_0, AVFrame *VAR_1,
int VAR_2, int VAR_3,
uint8_t VAR_4[3][8])
{ int VAR_5, VAR_6, VAR_7, VAR_8; int VAR_9   = VAR_1->VAR_9; int VAR_10 = VAR_1->linesize[0]; int VAR_11 = VAR_1->linesize[1]; int VAR_12 = VAR_1->linesize[2]; uint8_t *Y  = VAR_1->data[0] + VAR_10 * VAR_2; uint8_t *U  = VAR_1->data[1] + (VAR_11 >> 2) * VAR_2; uint8_t *V  = VAR_1->data[2] + (VAR_12 >> 2) * VAR_2; for (VAR_6 = 0; VAR_6 < VAR_3 - 3 && get_bits_left(VAR_0) > 16; VAR_6 += 4) { for (VAR_5 = 0; VAR_5 < VAR_9; VAR_5 += 4) { for (VAR_8 = 0; VAR_8 < 4; VAR_8++) for (VAR_7 = 0; VAR_7 < 4; VAR_7++) Y[VAR_5 + VAR_7 + VAR_8 * VAR_10] = decode_sym(VAR_0, VAR_4[0]); U[VAR_5 >> 2] = decode_sym(VAR_0, VAR_4[1]) ^ 0x80; V[VAR_5 >> 2] = decode_sym(VAR_0, VAR_4[2]) ^ 0x80; } Y += VAR_10 << 2; U += VAR_11; V += VAR_12; } return VAR_6; }