libavcodec/dirac.c:152: error: Integer Overflow L2
  (32 - [-1+min(64, `bc->bits_left`), -1+max(64, `bc->bits_left`)]):unsigned32 by call to `get_interleaved_ue_golomb`.

libavcodec/dirac.c:142:1: Parameter `bc->bits_left`
140. /* [DIRAC_STD] 10.3 Parse Source Parameters.
141.  * source_parameters(base_video_format) */
142. static int parse_source_parameters(AVDiracSeqHeader *dsh, BitstreamContext *bc,
     ^
143.                                    void *log_ctx)
144. {

libavcodec/dirac.c:151:9: Call
149.     /* [DIRAC_STD] 10.3.2 Frame size. frame_size(video_params) */
150.     /* [DIRAC_STD] custom_dimensions_flag */
151.     if (bitstream_read_bit(bc)) {
             ^
152.         dsh->width  = get_interleaved_ue_golomb(bc); /* [DIRAC_STD] FRAME_WIDTH  */
153.         dsh->height = get_interleaved_ue_golomb(bc); /* [DIRAC_STD] FRAME_HEIGHT */

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

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

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: Assignment
    137.     bc->bits <<= n;
    138. #endif
    139.     bc->bits_left -= n;
             ^
    140. 
    141.     return ret;

libavcodec/dirac.c:152:23: Call
150.     /* [DIRAC_STD] custom_dimensions_flag */
151.     if (bitstream_read_bit(bc)) {
152.         dsh->width  = get_interleaved_ue_golomb(bc); /* [DIRAC_STD] FRAME_WIDTH  */
                           ^
153.         dsh->height = get_interleaved_ue_golomb(bc); /* [DIRAC_STD] FRAME_HEIGHT */
154.     }

libavcodec/golomb.h:104:1: Parameter `bc->bits_left`
  102. }
  103. 
  104. static inline unsigned get_interleaved_ue_golomb(BitstreamContext *bc)
       ^
  105. {
  106.     uint32_t buf;

libavcodec/golomb.h:108:11: Call
  106.     uint32_t buf;
  107. 
  108.     buf = bitstream_peek(bc, 32);
                 ^
  109. 
  110.     if (buf & 0xAA800000) {

libavcodec/bitstream.h:215:1: Parameter `n`
    213. /* Return n bits from the buffer, but do not change the buffer state.
    214.  * n has to be in the 0-32 range. */
    215. static inline unsigned bitstream_peek(BitstreamContext *bc, unsigned n)
         ^
    216. {
    217.     if (n > bc->bits_left)

libavcodec/bitstream.h:218:9: Call
    216. {
    217.     if (n > bc->bits_left)
    218.         refill_32(bc);
                 ^
    219. 
    220.     return show_val(bc, n);

libavcodec/bitstream.h:60:1: <RHS trace>
58. }
59. 
60. static inline void refill_32(BitstreamContext *bc)
    ^
61. {
62.     if (bc->ptr >= bc->buffer_end)

libavcodec/bitstream.h:60:1: Parameter `bc->bits_left`
      58. }
      59. 
      60. static inline void refill_32(BitstreamContext *bc)
          ^
      61. {
      62.     if (bc->ptr >= bc->buffer_end)

libavcodec/bitstream.h:68:5: Binary operation: (32 - [-1+min(64, bc->bits_left), -1+max(64, bc->bits_left)]):unsigned32 by call to `get_interleaved_ue_golomb` 
      66.     bc->bits       = (uint64_t)AV_RL32(bc->ptr) << bc->bits_left | bc->bits;
      67. #else
      68.     bc->bits       = bc->bits | (uint64_t)AV_RB32(bc->ptr) << (32 - bc->bits_left);
              ^
      69. #endif
      70.     bc->ptr       += 4;

static inline void refill_32(BitstreamContext *bc)
{
    if (bc->ptr >= bc->buffer_end)
        return;
#ifdef BITSTREAM_READER_LE
    bc->bits       = (uint64_t)AV_RL32(bc->ptr) << bc->bits_left | bc->bits;
#else
    bc->bits       = bc->bits | (uint64_t)AV_RB32(bc->ptr) << (32 - bc->bits_left);
#endif
    bc->ptr       += 4;
    bc->bits_left += 32;
}
['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 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}', '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 unsigned bitstream_peek(BitstreamContext *bc, unsigned n)\n{\n    if (n > bc->bits_left)\n        refill_32(bc);\n    return show_val(bc, n);\n}', 'static inline void refill_32(BitstreamContext *bc)\n{\n    if (bc->ptr >= bc->buffer_end)\n        return;\n#ifdef BITSTREAM_READER_LE\n    bc->bits       = (uint64_t)AV_RL32(bc->ptr) << bc->bits_left | bc->bits;\n#else\n    bc->bits       = bc->bits | (uint64_t)AV_RB32(bc->ptr) << (32 - bc->bits_left);\n#endif\n    bc->ptr       += 4;\n    bc->bits_left += 32;\n}']