static int read_dcs(AVCodecContext *avctx, GetBitContext *gb, Bundle *b,

                    int start_bits, int has_sign)

{

    int i, j, len, len2, bsize, sign, v, v2;

    int16_t *dst = (int16_t*)b->cur_dec;



    CHECK_READ_VAL(gb, b, len);

    v = get_bits(gb, start_bits - has_sign);

    if (v && has_sign) {

        sign = -get_bits1(gb);

        v = (v ^ sign) - sign;

    }

    *dst++ = v;

    len--;

    for (i = 0; i < len; i += 8) {

        len2 = FFMIN(len - i, 8);

        bsize = get_bits(gb, 4);

        if (bsize) {

            for (j = 0; j < len2; j++) {

                v2 = get_bits(gb, bsize);

                if (v2) {

                    sign = -get_bits1(gb);

                    v2 = (v2 ^ sign) - sign;

                }

                v += v2;

                *dst++ = v;

                if (v < -32768 || v > 32767) {

                    av_log(avctx, AV_LOG_ERROR, "DC value went out of bounds: %d\n", v);

                    return -1;

                }

            }

        } else {

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

                *dst++ = v;

        }

    }



    b->cur_dec = (uint8_t*)dst;

    return 0;

}

static int read_dcs(AVCodecContext *avctx, GetBitContext *gb, Bundle *b,

                    int start_bits, int has_sign)

{

    int i, j, len, len2, bsize, sign, v, v2;

    int16_t *dst = (int16_t*)b->cur_dec;



    CHECK_READ_VAL(gb, b, len);

    v = get_bits(gb, start_bits - has_sign);

    if (v && has_sign) {

        sign = -get_bits1(gb);

        v = (v ^ sign) - sign;

    }

    *dst++ = v;

    len--;

    for (i = 0; i < len; i += 8) {

        len2 = FFMIN(len - i, 8);

        bsize = get_bits(gb, 4);

        if (bsize) {

            for (j = 0; j < len2; j++) {

                v2 = get_bits(gb, bsize);

                if (v2) {

                    sign = -get_bits1(gb);

                    v2 = (v2 ^ sign) - sign;

                }

                v += v2;

                *dst++ = v;

                if (v < -32768 || v > 32767) {

                    av_log(avctx, AV_LOG_ERROR, "DC value went out of bounds: %d\n", v);

                    return -1;

                }

            }

        } else {

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

                *dst++ = v;

        }

    }



    b->cur_dec = (uint8_t*)dst;

    return 0;

}

    int16_t *dst = (int16_t*)b->cur_dec;
static int FUNC_0(AVCodecContext *VAR_0, GetBitContext *VAR_1, Bundle *VAR_2,

                    int VAR_3, int VAR_4)

{

    int VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_11, VAR_12;

    int16_t *dst = (int16_t*)VAR_2->cur_dec;



    CHECK_READ_VAL(VAR_1, VAR_2, VAR_7);

    VAR_11 = get_bits(VAR_1, VAR_3 - VAR_4);

    if (VAR_11 && VAR_4) {

        VAR_10 = -get_bits1(VAR_1);

        VAR_11 = (VAR_11 ^ VAR_10) - VAR_10;

    }

    *dst++ = VAR_11;

    VAR_7--;

    for (VAR_5 = 0; VAR_5 < VAR_7; VAR_5 += 8) {

        VAR_8 = FFMIN(VAR_7 - VAR_5, 8);

        VAR_9 = get_bits(VAR_1, 4);

        if (VAR_9) {

            for (VAR_6 = 0; VAR_6 < VAR_8; VAR_6++) {

                VAR_12 = get_bits(VAR_1, VAR_9);

                if (VAR_12) {

                    VAR_10 = -get_bits1(VAR_1);

                    VAR_12 = (VAR_12 ^ VAR_10) - VAR_10;

                }

                VAR_11 += VAR_12;

                *dst++ = VAR_11;

                if (VAR_11 < -32768 || VAR_11 > 32767) {

                    av_log(VAR_0, AV_LOG_ERROR, "DC value went out of bounds: %d\n", VAR_11);

                    return -1;

                }

            }

        } else {

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

                *dst++ = VAR_11;

        }

    }



    VAR_2->cur_dec = (uint8_t*)dst;

    return 0;

}

static int FUNC_0(AVCodecContext *VAR_0, GetBitContext *VAR_1, Bundle *VAR_2,
int VAR_3, int VAR_4)
{ int VAR_5, VAR_6, VAR_7, VAR_8, VAR_9, VAR_10, VAR_11, VAR_12; int16_t *dst = (int16_t*)VAR_2->cur_dec; CHECK_READ_VAL(VAR_1, VAR_2, VAR_7); VAR_11 = get_bits(VAR_1, VAR_3 - VAR_4); if (VAR_11 && VAR_4) { VAR_10 = -get_bits1(VAR_1); VAR_11 = (VAR_11 ^ VAR_10) - VAR_10; } *dst++ = VAR_11; VAR_7--; for (VAR_5 = 0; VAR_5 < VAR_7; VAR_5 += 8) { VAR_8 = FFMIN(VAR_7 - VAR_5, 8); VAR_9 = get_bits(VAR_1, 4); if (VAR_9) { for (VAR_6 = 0; VAR_6 < VAR_8; VAR_6++) { VAR_12 = get_bits(VAR_1, VAR_9); if (VAR_12) { VAR_10 = -get_bits1(VAR_1); VAR_12 = (VAR_12 ^ VAR_10) - VAR_10; } VAR_11 += VAR_12; *dst++ = VAR_11; if (VAR_11 < -32768 || VAR_11 > 32767) { av_log(VAR_0, AV_LOG_ERROR, "DC value went out of bounds: %d\n", VAR_11); return -1; } } } else { for (VAR_6 = 0; VAR_6 < VAR_8; VAR_6++) *dst++ = VAR_11; } } VAR_2->cur_dec = (uint8_t*)dst; return 0; }