libavcodec/mlpdec.c:620: error: Integer Overflow L2
  ([1, +oo] - 4):unsigned32 by call to `bitstream_read`.

libavcodec/mlpdec.c:620:13: Call
618.     }
619. 
620.     order = bitstream_read(bc, 4);
                 ^
621.     if (order > max_order) {
622.         av_log(m->avctx, AV_LOG_ERROR,

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] - 4):unsigned32 by call to `bitstream_read` 
    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 read_filter_params(MLPDecodeContext *m, BitstreamContext *bc,\n                              unsigned int substr, unsigned int channel,\n                              unsigned int filter)\n{\n    SubStream *s = &m->substream[substr];\n    FilterParams *fp = &s->channel_params[channel].filter_params[filter];\n    const int max_order = filter ? MAX_IIR_ORDER : MAX_FIR_ORDER;\n    const char fchar = filter ? \'I\' : \'F\';\n    int i, order;\n    assert(filter < 2);\n    if (m->filter_changed[channel][filter]++ > 1) {\n        av_log(m->avctx, AV_LOG_ERROR, "Filters may change only once per access unit.\\n");\n        return AVERROR_INVALIDDATA;\n    }\n    order = bitstream_read(bc, 4);\n    if (order > max_order) {\n        av_log(m->avctx, AV_LOG_ERROR,\n               "%cIR filter order %d is greater than maximum %d.\\n",\n               fchar, order, max_order);\n        return AVERROR_INVALIDDATA;\n    }\n    fp->order = order;\n    if (order > 0) {\n        int32_t *fcoeff = s->channel_params[channel].coeff[filter];\n        int coeff_bits, coeff_shift;\n        fp->shift = bitstream_read(bc, 4);\n        coeff_bits  = bitstream_read(bc, 5);\n        coeff_shift = bitstream_read(bc, 3);\n        if (coeff_bits < 1 || coeff_bits > 16) {\n            av_log(m->avctx, AV_LOG_ERROR,\n                   "%cIR filter coeff_bits must be between 1 and 16.\\n",\n                   fchar);\n            return AVERROR_INVALIDDATA;\n        }\n        if (coeff_bits + coeff_shift > 16) {\n            av_log(m->avctx, AV_LOG_ERROR,\n                   "Sum of coeff_bits and coeff_shift for %cIR filter must be 16 or less.\\n",\n                   fchar);\n            return AVERROR_INVALIDDATA;\n        }\n        for (i = 0; i < order; i++)\n            fcoeff[i] = bitstream_read_signed(bc, coeff_bits) << coeff_shift;\n        if (bitstream_read_bit(bc)) {\n            int state_bits, state_shift;\n            if (filter == FIR) {\n                av_log(m->avctx, AV_LOG_ERROR,\n                       "FIR filter has state data specified.\\n");\n                return AVERROR_INVALIDDATA;\n            }\n            state_bits  = bitstream_read(bc, 4);\n            state_shift = bitstream_read(bc, 4);\n            for (i = 0; i < order; i++)\n                fp->state[i] = bitstream_read_signed(bc, state_bits) << state_shift;\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}']