libavcodec/dirac.c:203: error: Integer Overflow L2
  ([0, +oo] - 1):unsigned32 by call to `bitstream_read_bit`.

libavcodec/dirac.c:179:33: Call
177.     /* [DIRAC_STD] 10.3.5 Frame Rate. frame_rate(video_params) */
178.     if (bitstream_read_bit(bc)) { /* [DIRAC_STD] custom_frame_rate_flag */
179.         dsh->frame_rate_index = get_interleaved_ue_golomb(bc);
                                     ^
180. 
181.         if (dsh->frame_rate_index > 10)

libavcodec/golomb.h:112:9: Call
  110.     if (buf & 0xAA800000) {
  111.         buf >>= 32 - 8;
  112.         bitstream_skip(bc, ff_interleaved_golomb_vlc_len[buf]);
               ^
  113. 
  114.         return ff_interleaved_ue_golomb_vlc_code[buf];

libavcodec/bitstream.h:247:9: Assignment
    245.         n -= bc->bits_left;
    246.         bc->bits      = 0;
    247.         bc->bits_left = 0;
                 ^
    248. 
    249.         if (n >= 64) {

libavcodec/bitstream.h:255:9: Call
    253.             bc->ptr += skip;
    254.         }
    255.         refill_64(bc);
                 ^
    256.         if (n)
    257.             skip_remaining(bc, n);

libavcodec/bitstream.h:45:1: Parameter `bc->bits_left`
      43. } BitstreamContext;
      44. 
      45. static inline void refill_64(BitstreamContext *bc)
          ^
      46. {
      47.     if (bc->ptr >= bc->buffer_end)

libavcodec/dirac.c:203:9: Call
201.     /* [DIRAC_STD] 10.3.6 Pixel Aspect Ratio.
202.      * pixel_aspect_ratio(video_params) */
203.     if (bitstream_read_bit(bc)) { /* [DIRAC_STD] custom_pixel_aspect_ratio_flag */
             ^
204.         /* [DIRAC_STD] index */
205.         dsh->aspect_ratio_index = get_interleaved_ue_golomb(bc);

libavcodec/bitstream.h:144:1: Parameter `bc->bits_left`
  142. 
  143. /* Return one bit from the buffer. */
  144. static inline unsigned bitstream_read_bit(BitstreamContext *bc)
       ^
  145. {
  146.     if (!bc->bits_left)

libavcodec/bitstream.h:149:12: Call
  147.         refill_64(bc);
  148. 
  149.     return get_val(bc, 1);
                  ^
  150. }
  151. 

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

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

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

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

libavcodec/bitstream.h:138:5: Binary operation: ([0, +oo] - 1):unsigned32 by call to `bitstream_read_bit` 
    136.     bc->bits <<= n;
    137. #endif
    138.     bc->bits_left -= n;
             ^
    139. 
    140.     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 parse_source_parameters(AVDiracSeqHeader *dsh, BitstreamContext *bc,\n                                   void *log_ctx)\n{\n    AVRational frame_rate = { 0, 0 };\n    unsigned luma_depth = 8, luma_offset = 16;\n    int idx;\n    if (bitstream_read_bit(bc)) {\n        dsh->width  = get_interleaved_ue_golomb(bc);\n        dsh->height = get_interleaved_ue_golomb(bc);\n    }\n    if (bitstream_read_bit(bc))\n        dsh->chroma_format = get_interleaved_ue_golomb(bc);\n    if (dsh->chroma_format > 2) {\n        if (log_ctx)\n            av_log(log_ctx, AV_LOG_ERROR, "Unknown chroma format %d\\n",\n                   dsh->chroma_format);\n        return AVERROR_INVALIDDATA;\n    }\n    if (bitstream_read_bit(bc))\n        dsh->interlaced = get_interleaved_ue_golomb(bc);\n    if (dsh->interlaced > 1)\n        return AVERROR_INVALIDDATA;\n    if (bitstream_read_bit(bc)) {\n        dsh->frame_rate_index = get_interleaved_ue_golomb(bc);\n        if (dsh->frame_rate_index > 10)\n            return AVERROR_INVALIDDATA;\n        if (!dsh->frame_rate_index) {\n            frame_rate.num = get_interleaved_ue_golomb(bc);\n            frame_rate.den = get_interleaved_ue_golomb(bc);\n        }\n    }\n    if (dsh->frame_rate_index > 0) {\n        if (dsh->frame_rate_index <= 8)\n            frame_rate = ff_mpeg12_frame_rate_tab[dsh->frame_rate_index];\n        else\n            frame_rate = dirac_frame_rate[dsh->frame_rate_index - 9];\n    }\n    dsh->framerate = frame_rate;\n    if (bitstream_read_bit(bc)) {\n        dsh->aspect_ratio_index = get_interleaved_ue_golomb(bc);\n        if (dsh->aspect_ratio_index > 6)\n            return AVERROR_INVALIDDATA;\n        if (!dsh->aspect_ratio_index) {\n            dsh->sample_aspect_ratio.num = get_interleaved_ue_golomb(bc);\n            dsh->sample_aspect_ratio.den = get_interleaved_ue_golomb(bc);\n        }\n    }\n    if (dsh->aspect_ratio_index > 0)\n        dsh->sample_aspect_ratio =\n            dirac_preset_aspect_ratios[dsh->aspect_ratio_index - 1];\n    if (bitstream_read_bit(bc)) {\n        dsh->clean_width = get_interleaved_ue_golomb(bc);\n        dsh->clean_height = get_interleaved_ue_golomb(bc);\n        dsh->clean_left_offset = get_interleaved_ue_golomb(bc);\n        dsh->clean_right_offset = get_interleaved_ue_golomb(bc);\n    }\n    if (bitstream_read_bit(bc)) {\n        dsh->pixel_range_index = get_interleaved_ue_golomb(bc);\n        if (dsh->pixel_range_index > 4)\n            return AVERROR_INVALIDDATA;\n        if (!dsh->pixel_range_index) {\n            luma_offset = get_interleaved_ue_golomb(bc);\n            luma_depth  = av_log2(get_interleaved_ue_golomb(bc)) + 1;\n            get_interleaved_ue_golomb(bc);\n            get_interleaved_ue_golomb(bc);\n            dsh->color_range = luma_offset ? AVCOL_RANGE_MPEG\n                                           : AVCOL_RANGE_JPEG;\n        }\n    }\n    if (dsh->pixel_range_index > 0) {\n        idx                = dsh->pixel_range_index - 1;\n        luma_depth         = pixel_range_presets[idx].bitdepth;\n        dsh->color_range   = pixel_range_presets[idx].color_range;\n    }\n    if (luma_depth > 8 && log_ctx)\n        av_log(log_ctx, AV_LOG_WARNING, "Bitdepth greater than 8");\n    dsh->pix_fmt = dirac_pix_fmt[!luma_offset][dsh->chroma_format];\n    if (bitstream_read_bit(bc)) {\n        idx = dsh->color_spec_index = get_interleaved_ue_golomb(bc);\n        if (dsh->color_spec_index > 4)\n            return AVERROR_INVALIDDATA;\n        dsh->color_primaries = dirac_color_presets[idx].color_primaries;\n        dsh->colorspace      = dirac_color_presets[idx].colorspace;\n        dsh->color_trc       = dirac_color_presets[idx].color_trc;\n        if (!dsh->color_spec_index) {\n            if (bitstream_read_bit(bc)) {\n                idx = get_interleaved_ue_golomb(bc);\n                if (idx < 3)\n                    dsh->color_primaries = dirac_primaries[idx];\n            }\n            if (bitstream_read_bit(bc)) {\n                idx = get_interleaved_ue_golomb(bc);\n                if (!idx)\n                    dsh->colorspace = AVCOL_SPC_BT709;\n                else if (idx == 1)\n                    dsh->colorspace = AVCOL_SPC_BT470BG;\n            }\n            if (bitstream_read_bit(bc) && !get_interleaved_ue_golomb(bc))\n                dsh->color_trc = AVCOL_TRC_BT709;\n        }\n    } else {\n        idx                    = dsh->color_spec_index;\n        dsh->color_primaries = dirac_color_presets[idx].color_primaries;\n        dsh->colorspace      = dirac_color_presets[idx].colorspace;\n        dsh->color_trc       = dirac_color_presets[idx].color_trc;\n    }\n    return 0;\n}', 'static inline unsigned get_interleaved_ue_golomb(BitstreamContext *bc)\n{\n    uint32_t buf;\n    buf = bitstream_peek(bc, 32);\n    if (buf & 0xAA800000) {\n        buf >>= 32 - 8;\n        bitstream_skip(bc, ff_interleaved_golomb_vlc_len[buf]);\n        return ff_interleaved_ue_golomb_vlc_code[buf];\n    } else {\n        unsigned ret = 1;\n        do {\n            buf >>= 32 - 8;\n            bitstream_skip(bc, FFMIN(ff_interleaved_golomb_vlc_len[buf], 8));\n            if (ff_interleaved_golomb_vlc_len[buf] != 9) {\n                ret <<= (ff_interleaved_golomb_vlc_len[buf] - 1) >> 1;\n                ret  |= ff_interleaved_dirac_golomb_vlc_code[buf];\n                break;\n            }\n            ret = (ret << 4) | ff_interleaved_dirac_golomb_vlc_code[buf];\n            buf = bitstream_peek(bc, 32);\n        } while (bitstream_bits_left(bc) > 0);\n        return ret - 1;\n    }\n}', 'static inline void bitstream_skip(BitstreamContext *bc, unsigned n)\n{\n    if (n < bc->bits_left)\n        skip_remaining(bc, n);\n    else {\n        n -= bc->bits_left;\n        bc->bits      = 0;\n        bc->bits_left = 0;\n        if (n >= 64) {\n            unsigned skip = n / 8;\n            n -= skip * 8;\n            bc->ptr += skip;\n        }\n        refill_64(bc);\n        if (n)\n            skip_remaining(bc, n);\n    }\n}', 'static inline void refill_64(BitstreamContext *bc)\n{\n    if (bc->ptr >= bc->buffer_end)\n        return;\n#ifdef BITSTREAM_READER_LE\n    bc->bits       = AV_RL64(bc->ptr);\n#else\n    bc->bits       = AV_RB64(bc->ptr);\n#endif\n    bc->ptr       += 8;\n    bc->bits_left  = 64;\n}', 'static inline unsigned bitstream_read_bit(BitstreamContext *bc)\n{\n    if (!bc->bits_left)\n        refill_64(bc);\n    return get_val(bc, 1);\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}']