libavcodec/ralf.c:371: error: Integer Overflow L2
  ([1, +oo] - [16, 17]):unsigned32 by call to `decode_channel`.

libavcodec/ralf.c:367:5: Assignment
365.     mode[0] = (dmode == 4) ? 1 : 0;
366.     mode[1] = (dmode >= 2) ? 2 : 0;
367.     bits[0] = 16;
         ^
368.     bits[1] = (mode[1] == 2) ? 17 : 16;
369. 

libavcodec/ralf.c:371:20: Call
369. 
370.     for (ch = 0; ch < avctx->channels; ch++) {
371.         if ((ret = decode_channel(ctx, bc, ch, len, mode[ch], bits[ch])) < 0)
                        ^
372.             return ret;
373.         if (ctx->filter_params > 1 && ctx->filter_params != FILTER_RAW) {

libavcodec/ralf.c:229:1: Parameter `bits`
  227. }
  228. 
  229. static int decode_channel(RALFContext *ctx, BitstreamContext *bc, int ch,
       ^
  230.                           int length, int mode, int bits)
  231. {

libavcodec/ralf.c:244:22: Call
  242.     if (ctx->filter_params == FILTER_RAW) {
  243.         for (i = 0; i < length; i++)
  244.             dst[i] = bitstream_read(bc, bits);
                            ^
  245.         ctx->bias[ch] = 0;
  246.         return 0;

libavcodec/bitstream.h:183:1: Parameter `n`
    181. 
    182. /* Return n bits from the buffer. n has to be in the 0-32 range. */
    183. static inline uint32_t bitstream_read(BitstreamContext *bc, unsigned n)
         ^
    184. {
    185.     if (!n)

libavcodec/bitstream.h:194:12: Call
    192.     }
    193. 
    194.     return get_val(bc, n);
                    ^
    195. }
    196. 

libavcodec/bitstream.h:130:1: <LHS trace>
128. }
129. 
130. static inline uint64_t get_val(BitstreamContext *bc, unsigned n)
     ^
131. {
132. #ifdef BITSTREAM_READER_LE

libavcodec/bitstream.h:130:1: Parameter `bc->bits_left`
      128. }
      129. 
      130. static inline uint64_t get_val(BitstreamContext *bc, unsigned n)
           ^
      131. {
      132. #ifdef BITSTREAM_READER_LE

libavcodec/bitstream.h:130:1: <RHS trace>
128. }
129. 
130. static inline uint64_t get_val(BitstreamContext *bc, unsigned n)
     ^
131. {
132. #ifdef BITSTREAM_READER_LE

libavcodec/bitstream.h:130:1: Parameter `n`
      128. }
      129. 
      130. static inline uint64_t get_val(BitstreamContext *bc, unsigned n)
           ^
      131. {
      132. #ifdef BITSTREAM_READER_LE

libavcodec/bitstream.h:139:5: Binary operation: ([1, +oo] - [16, 17]):unsigned32 by call to `decode_channel` 
      137.     bc->bits <<= n;
      138. #endif
      139.     bc->bits_left -= n;
               ^
      140. 
      141.     return ret;

static inline uint64_t get_val(BitstreamContext *bc, unsigned n)
{
#ifdef BITSTREAM_READER_LE
    uint64_t ret = bc->bits & ((UINT64_C(1) << n) - 1);
    bc->bits >>= n;
#else
    uint64_t ret = bc->bits >> (64 - n);
    bc->bits <<= n;
#endif
    bc->bits_left -= n;
    return ret;
}
['static int decode_block(AVCodecContext *avctx, BitstreamContext *bc,\n                        int16_t *dst0, int16_t *dst1)\n{\n    RALFContext *ctx = avctx->priv_data;\n    int len, ch, ret;\n    int dmode, mode[2], bits[2];\n    int *ch0, *ch1;\n    int i, t, t2;\n    len = 12 - get_unary(bc, 0, 6);\n    if (len <= 7) len ^= 1;\n    len = 1 << len;\n    if (ctx->sample_offset + len > ctx->max_frame_size) {\n        av_log(avctx, AV_LOG_ERROR,\n               "Decoder\'s stomach is crying, it ate too many samples\\n");\n        return AVERROR_INVALIDDATA;\n    }\n    if (avctx->channels > 1)\n        dmode = bitstream_read(bc, 2) + 1;\n    else\n        dmode = 0;\n    mode[0] = (dmode == 4) ? 1 : 0;\n    mode[1] = (dmode >= 2) ? 2 : 0;\n    bits[0] = 16;\n    bits[1] = (mode[1] == 2) ? 17 : 16;\n    for (ch = 0; ch < avctx->channels; ch++) {\n        if ((ret = decode_channel(ctx, bc, ch, len, mode[ch], bits[ch])) < 0)\n            return ret;\n        if (ctx->filter_params > 1 && ctx->filter_params != FILTER_RAW) {\n            ctx->filter_bits += 3;\n            apply_lpc(ctx, ch, len, bits[ch]);\n        }\n        if (bitstream_bits_left(bc) < 0)\n            return AVERROR_INVALIDDATA;\n    }\n    ch0 = ctx->channel_data[0];\n    ch1 = ctx->channel_data[1];\n    switch (dmode) {\n    case 0:\n        for (i = 0; i < len; i++)\n            dst0[i] = ch0[i] + ctx->bias[0];\n        break;\n    case 1:\n        for (i = 0; i < len; i++) {\n            dst0[i] = ch0[i] + ctx->bias[0];\n            dst1[i] = ch1[i] + ctx->bias[1];\n        }\n        break;\n    case 2:\n        for (i = 0; i < len; i++) {\n            ch0[i] += ctx->bias[0];\n            dst0[i] = ch0[i];\n            dst1[i] = ch0[i] - (ch1[i] + ctx->bias[1]);\n        }\n        break;\n    case 3:\n        for (i = 0; i < len; i++) {\n            t  = ch0[i] + ctx->bias[0];\n            t2 = ch1[i] + ctx->bias[1];\n            dst0[i] = t + t2;\n            dst1[i] = t;\n        }\n        break;\n    case 4:\n        for (i = 0; i < len; i++) {\n            t  =   ch1[i] + ctx->bias[1];\n            t2 = ((ch0[i] + ctx->bias[0]) << 1) | (t & 1);\n            dst0[i] = (t2 + t) / 2;\n            dst1[i] = (t2 - t) / 2;\n        }\n        break;\n    }\n    ctx->sample_offset += len;\n    return 0;\n}', 'static int decode_channel(RALFContext *ctx, BitstreamContext *bc, int ch,\n                          int length, int mode, int bits)\n{\n    int i, t;\n    int code_params;\n    VLCSet *set = ctx->sets + mode;\n    VLC *code_vlc; int range, range2, add_bits;\n    int *dst = ctx->channel_data[ch];\n    ctx->filter_params = bitstream_read_vlc(bc, set->filter_params.table, 9, 2);\n    ctx->filter_bits   = (ctx->filter_params - 2) >> 6;\n    ctx->filter_length = ctx->filter_params - (ctx->filter_bits << 6) - 1;\n    if (ctx->filter_params == FILTER_RAW) {\n        for (i = 0; i < length; i++)\n            dst[i] = bitstream_read(bc, bits);\n        ctx->bias[ch] = 0;\n        return 0;\n    }\n    ctx->bias[ch] = bitstream_read_vlc(bc, set->bias.table, 9, 2);\n    ctx->bias[ch] = extend_code(bc, ctx->bias[ch], 127, 4);\n    if (ctx->filter_params == FILTER_NONE) {\n        memset(dst, 0, sizeof(*dst) * length);\n        return 0;\n    }\n    if (ctx->filter_params > 1) {\n        int cmode = 0, coeff = 0;\n        VLC *vlc = set->filter_coeffs[ctx->filter_bits] + 5;\n        add_bits = ctx->filter_bits;\n        for (i = 0; i < ctx->filter_length; i++) {\n            t = bitstream_read_vlc(bc, vlc[cmode].table, vlc[cmode].bits, 2);\n            t = extend_code(bc, t, 21, add_bits);\n            if (!cmode)\n                coeff -= 12 << add_bits;\n            coeff = t - coeff;\n            ctx->filter[i] = coeff;\n            cmode = coeff >> add_bits;\n            if (cmode < 0) {\n                cmode = -1 - av_log2(-cmode);\n                if (cmode < -5)\n                    cmode = -5;\n            } else if (cmode > 0) {\n                cmode =  1 + av_log2(cmode);\n                if (cmode > 5)\n                    cmode = 5;\n            }\n        }\n    }\n    code_params = bitstream_read_vlc(bc, set->coding_mode.table, set->coding_mode.bits, 2);\n    if (code_params >= 15) {\n        add_bits = av_clip((code_params / 5 - 3) / 2, 0, 10);\n        if (add_bits > 9 && (code_params % 5) != 2)\n            add_bits--;\n        range    = 10;\n        range2   = 21;\n        code_vlc = set->long_codes + code_params - 15;\n    } else {\n        add_bits = 0;\n        range    = 6;\n        range2   = 13;\n        code_vlc = set->short_codes + code_params;\n    }\n    for (i = 0; i < length; i += 2) {\n        int code1, code2;\n        t = bitstream_read_vlc(bc, code_vlc->table, code_vlc->bits, 2);\n        code1 = t / range2;\n        code2 = t % range2;\n        dst[i]     = extend_code(bc, code1, range, 0) << add_bits;\n        dst[i + 1] = extend_code(bc, code2, range, 0) << add_bits;\n        if (add_bits) {\n            dst[i]     |= bitstream_read(bc, add_bits);\n            dst[i + 1] |= bitstream_read(bc, add_bits);\n        }\n    }\n    return 0;\n}', 'static inline uint32_t bitstream_read(BitstreamContext *bc, unsigned n)\n{\n    if (!n)\n        return 0;\n    if (n > bc->bits_left) {\n        refill_32(bc);\n        if (bc->bits_left < 32)\n            bc->bits_left = n;\n    }\n    return get_val(bc, n);\n}', 'static inline uint64_t get_val(BitstreamContext *bc, unsigned n)\n{\n#ifdef BITSTREAM_READER_LE\n    uint64_t ret = bc->bits & ((UINT64_C(1) << n) - 1);\n    bc->bits >>= n;\n#else\n    uint64_t ret = bc->bits >> (64 - n);\n    bc->bits <<= n;\n#endif\n    bc->bits_left -= n;\n    return ret;\n}']