libavcodec/h264.h:1247: error: Integer Overflow L2
  ([0, 65535] × 16843009):unsigned32 by call to `fill_rectangle`.

libavcodec/h264.h:1247:72: Call
1245. 
1246.             if(!USES_LIST(mb_type, list)){
1247.                 fill_rectangle(  h->mv_cache[list][scan8[0]], 4, 4, 8, pack16to32(0,0), 4);
                                                                             ^
1248.                 AV_WN32A(&h->ref_cache[list][scan8[ 0]], ((LIST_NOT_USED)&0xFF)*0x01010101u);
1249.                 AV_WN32A(&h->ref_cache[list][scan8[ 2]], ((LIST_NOT_USED)&0xFF)*0x01010101u);

libavcodec/h264.h:727:1: Parameter `a`
  725. };
  726. 
  727. static av_always_inline uint32_t pack16to32(int a, int b){
       ^
  728. #if HAVE_BIGENDIAN
  729.    return (b&0xFFFF) + (a<<16);

libavcodec/h264.h:731:4: Assignment
  729.    return (b&0xFFFF) + (a<<16);
  730. #else
  731.    return (a&0xFFFF) + (b<<16);
          ^
  732. #endif
  733. }

libavcodec/h264.h:1247:17: Call
1245. 
1246.             if(!USES_LIST(mb_type, list)){
1247.                 fill_rectangle(  h->mv_cache[list][scan8[0]], 4, 4, 8, pack16to32(0,0), 4);
                      ^
1248.                 AV_WN32A(&h->ref_cache[list][scan8[ 0]], ((LIST_NOT_USED)&0xFF)*0x01010101u);
1249.                 AV_WN32A(&h->ref_cache[list][scan8[ 2]], ((LIST_NOT_USED)&0xFF)*0x01010101u);

libavcodec/rectangle.h:42:1: <LHS trace>
40.  * @param size the size of val (1, 2 or 4), should be a constant
41.  */
42. static av_always_inline void fill_rectangle(void *vp, int w, int h, int stride, uint32_t val, int size){
    ^
43.     uint8_t *p= (uint8_t*)vp;
44.     assert(size==1 || size==2 || size==4);

libavcodec/rectangle.h:42:1: Parameter `val`
  40.  * @param size the size of val (1, 2 or 4), should be a constant
  41.  */
  42. static av_always_inline void fill_rectangle(void *vp, int w, int h, int stride, uint32_t val, int size){
      ^
  43.     uint8_t *p= (uint8_t*)vp;
  44.     assert(size==1 || size==2 || size==4);

libavcodec/rectangle.h:61:43: Binary operation: ([0, 65535] × 16843009):unsigned32 by call to `fill_rectangle` 
  59.         *(uint16_t*)(p + 3*stride)= v;
  60.     }else if(w==4){
  61.         const uint32_t v= size==4 ? val : size==2 ? val*0x00010001 : val*0x01010101;
                                                ^
  62.         *(uint32_t*)(p + 0*stride)= v;
  63.         if(h==1) return;

static av_always_inline void fill_rectangle(void *vp, int w, int h, int stride, uint32_t val, int size){
    uint8_t *p= (uint8_t*)vp;
    assert(size==1 || size==2 || size==4);
    assert(w<=4);
    w      *= size;
    stride *= size;
    assert((((long)vp)&(FFMIN(w, STRIDE_ALIGN)-1)) == 0);
    assert((stride&(w-1))==0);
    if(w==2){
        const uint16_t v= size==4 ? val : val*0x0101;
        *(uint16_t*)(p + 0*stride)= v;
        if(h==1) return;
        *(uint16_t*)(p + 1*stride)= v;
        if(h==2) return;
        *(uint16_t*)(p + 2*stride)= v;
        *(uint16_t*)(p + 3*stride)= v;
    }else if(w==4){
        const uint32_t v= size==4 ? val : size==2 ? val*0x00010001 : val*0x01010101;
        *(uint32_t*)(p + 0*stride)= v;
        if(h==1) return;
        *(uint32_t*)(p + 1*stride)= v;
        if(h==2) return;
        *(uint32_t*)(p + 2*stride)= v;
        *(uint32_t*)(p + 3*stride)= v;
    }else if(w==8){
#if HAVE_FAST_64BIT
        const uint64_t v=  size==2 ? val*0x0001000100010001ULL : val*0x0100000001ULL;
        *(uint64_t*)(p + 0*stride)= v;
        if(h==1) return;
        *(uint64_t*)(p + 1*stride)= v;
        if(h==2) return;
        *(uint64_t*)(p + 2*stride)= v;
        *(uint64_t*)(p + 3*stride)= v;
    }else if(w==16){
        const uint64_t v= val*0x0100000001ULL;
        *(uint64_t*)(p + 0+0*stride)= v;
        *(uint64_t*)(p + 8+0*stride)= v;
        *(uint64_t*)(p + 0+1*stride)= v;
        *(uint64_t*)(p + 8+1*stride)= v;
        if(h==2) return;
        *(uint64_t*)(p + 0+2*stride)= v;
        *(uint64_t*)(p + 8+2*stride)= v;
        *(uint64_t*)(p + 0+3*stride)= v;
        *(uint64_t*)(p + 8+3*stride)= v;
#else
        const uint32_t v= size==2 ? val*0x00010001 : val;
        *(uint32_t*)(p + 0+0*stride)= v;
        *(uint32_t*)(p + 4+0*stride)= v;
        if(h==1) return;
        *(uint32_t*)(p + 0+1*stride)= v;
        *(uint32_t*)(p + 4+1*stride)= v;
        if(h==2) return;
        *(uint32_t*)(p + 0+2*stride)= v;
        *(uint32_t*)(p + 4+2*stride)= v;
        *(uint32_t*)(p + 0+3*stride)= v;
        *(uint32_t*)(p + 4+3*stride)= v;
    }else if(w==16){
        *(uint32_t*)(p + 0+0*stride)= val;
        *(uint32_t*)(p + 4+0*stride)= val;
        *(uint32_t*)(p + 8+0*stride)= val;
        *(uint32_t*)(p +12+0*stride)= val;
        *(uint32_t*)(p + 0+1*stride)= val;
        *(uint32_t*)(p + 4+1*stride)= val;
        *(uint32_t*)(p + 8+1*stride)= val;
        *(uint32_t*)(p +12+1*stride)= val;
        if(h==2) return;
        *(uint32_t*)(p + 0+2*stride)= val;
        *(uint32_t*)(p + 4+2*stride)= val;
        *(uint32_t*)(p + 8+2*stride)= val;
        *(uint32_t*)(p +12+2*stride)= val;
        *(uint32_t*)(p + 0+3*stride)= val;
        *(uint32_t*)(p + 4+3*stride)= val;
        *(uint32_t*)(p + 8+3*stride)= val;
        *(uint32_t*)(p +12+3*stride)= val;
#endif
    }else
        assert(0);
    assert(h==4);
}
['static int fill_filter_caches(H264Context *h, int mb_type){\n    MpegEncContext * const s = &h->s;\n    const int mb_xy= h->mb_xy;\n    int top_xy, left_xy[2];\n    int top_type, left_type[2];\n    top_xy     = mb_xy  - (s->mb_stride << MB_FIELD);\n    left_xy[1] = left_xy[0] = mb_xy-1;\n    if(FRAME_MBAFF){\n        const int left_mb_field_flag     = IS_INTERLACED(s->current_picture.mb_type[mb_xy-1]);\n        const int curr_mb_field_flag     = IS_INTERLACED(mb_type);\n        if(s->mb_y&1){\n            if (left_mb_field_flag != curr_mb_field_flag) {\n                left_xy[0] -= s->mb_stride;\n            }\n        }else{\n            if(curr_mb_field_flag){\n                top_xy      += s->mb_stride & (((s->current_picture.mb_type[top_xy    ]>>7)&1)-1);\n            }\n            if (left_mb_field_flag != curr_mb_field_flag) {\n                left_xy[1] += s->mb_stride;\n            }\n        }\n    }\n    h->top_mb_xy = top_xy;\n    h->left_mb_xy[0] = left_xy[0];\n    h->left_mb_xy[1] = left_xy[1];\n    {\n        int qp_thresh = h->qp_thresh;\n        int qp = s->current_picture.qscale_table[mb_xy];\n        if(qp <= qp_thresh\n           && (left_xy[0]<0 || ((qp + s->current_picture.qscale_table[left_xy[0]] + 1)>>1) <= qp_thresh)\n           && (top_xy   < 0 || ((qp + s->current_picture.qscale_table[top_xy    ] + 1)>>1) <= qp_thresh)){\n            if(!FRAME_MBAFF)\n                return 1;\n            if(   (left_xy[0]< 0            || ((qp + s->current_picture.qscale_table[left_xy[1]             ] + 1)>>1) <= qp_thresh)\n               && (top_xy    < s->mb_stride || ((qp + s->current_picture.qscale_table[top_xy    -s->mb_stride] + 1)>>1) <= qp_thresh))\n                return 1;\n        }\n    }\n    if(h->deblocking_filter == 2){\n        h->top_type    = top_type     = h->slice_table[top_xy     ] == h->slice_num ? s->current_picture.mb_type[top_xy]     : 0;\n        h->left_type[0]= left_type[0] = h->slice_table[left_xy[0] ] == h->slice_num ? s->current_picture.mb_type[left_xy[0]] : 0;\n        h->left_type[1]= left_type[1] = h->slice_table[left_xy[1] ] == h->slice_num ? s->current_picture.mb_type[left_xy[1]] : 0;\n    }else{\n        h->top_type    = top_type     = h->slice_table[top_xy     ] < 0xFFFF ? s->current_picture.mb_type[top_xy]     : 0;\n        h->left_type[0]= left_type[0] = h->slice_table[left_xy[0] ] < 0xFFFF ? s->current_picture.mb_type[left_xy[0]] : 0;\n        h->left_type[1]= left_type[1] = h->slice_table[left_xy[1] ] < 0xFFFF ? s->current_picture.mb_type[left_xy[1]] : 0;\n    }\n    if(IS_INTRA(mb_type))\n        return 0;\n    AV_COPY64(&h->non_zero_count_cache[0+8*1], &h->non_zero_count[mb_xy][ 0]);\n    AV_COPY64(&h->non_zero_count_cache[0+8*2], &h->non_zero_count[mb_xy][ 8]);\n    AV_COPY32(&h->non_zero_count_cache[0+8*5], &h->non_zero_count[mb_xy][16]);\n    AV_COPY32(&h->non_zero_count_cache[4+8*3], &h->non_zero_count[mb_xy][20]);\n    AV_COPY64(&h->non_zero_count_cache[0+8*4], &h->non_zero_count[mb_xy][24]);\n    h->cbp= h->cbp_table[mb_xy];\n    {\n        int list;\n        for(list=0; list<h->list_count; list++){\n            int8_t *ref;\n            int y, b_stride;\n            int16_t (*mv_dst)[2];\n            int16_t (*mv_src)[2];\n            if(!USES_LIST(mb_type, list)){\n                fill_rectangle(  h->mv_cache[list][scan8[0]], 4, 4, 8, pack16to32(0,0), 4);\n                AV_WN32A(&h->ref_cache[list][scan8[ 0]], ((LIST_NOT_USED)&0xFF)*0x01010101u);\n                AV_WN32A(&h->ref_cache[list][scan8[ 2]], ((LIST_NOT_USED)&0xFF)*0x01010101u);\n                AV_WN32A(&h->ref_cache[list][scan8[ 8]], ((LIST_NOT_USED)&0xFF)*0x01010101u);\n                AV_WN32A(&h->ref_cache[list][scan8[10]], ((LIST_NOT_USED)&0xFF)*0x01010101u);\n                continue;\n            }\n            ref = &s->current_picture.ref_index[list][h->mb2b8_xy[mb_xy]];\n            {\n                int (*ref2frm)[64] = h->ref2frm[ h->slice_num&(MAX_SLICES-1) ][0] + (MB_MBAFF ? 20 : 2);\n                AV_WN32A(&h->ref_cache[list][scan8[ 0]], (pack16to32(ref2frm[list][ref[0]],ref2frm[list][ref[1]])&0x00FF00FF)*0x0101);\n                AV_WN32A(&h->ref_cache[list][scan8[ 2]], (pack16to32(ref2frm[list][ref[0]],ref2frm[list][ref[1]])&0x00FF00FF)*0x0101);\n                ref += h->b8_stride;\n                AV_WN32A(&h->ref_cache[list][scan8[ 8]], (pack16to32(ref2frm[list][ref[0]],ref2frm[list][ref[1]])&0x00FF00FF)*0x0101);\n                AV_WN32A(&h->ref_cache[list][scan8[10]], (pack16to32(ref2frm[list][ref[0]],ref2frm[list][ref[1]])&0x00FF00FF)*0x0101);\n            }\n            b_stride = h->b_stride;\n            mv_dst   = &h->mv_cache[list][scan8[0]];\n            mv_src   = &s->current_picture.motion_val[list][4*s->mb_x + 4*s->mb_y*b_stride];\n            for(y=0; y<4; y++){\n                AV_COPY128(mv_dst + 8*y, mv_src + y*b_stride);\n            }\n        }\n    }\n    if(top_type){\n        AV_COPY32(&h->non_zero_count_cache[4+8*0], &h->non_zero_count[top_xy][4+3*8]);\n    }\n    if(left_type[0]){\n        h->non_zero_count_cache[3+8*1]= h->non_zero_count[left_xy[0]][7+0*8];\n        h->non_zero_count_cache[3+8*2]= h->non_zero_count[left_xy[0]][7+1*8];\n        h->non_zero_count_cache[3+8*3]= h->non_zero_count[left_xy[0]][7+2*8];\n        h->non_zero_count_cache[3+8*4]= h->non_zero_count[left_xy[0]][7+3*8];\n    }\n    if(!CABAC && h->pps.transform_8x8_mode){\n        if(IS_8x8DCT(top_type)){\n            h->non_zero_count_cache[4+8*0]=\n            h->non_zero_count_cache[5+8*0]= h->cbp_table[top_xy] & 4;\n            h->non_zero_count_cache[6+8*0]=\n            h->non_zero_count_cache[7+8*0]= h->cbp_table[top_xy] & 8;\n        }\n        if(IS_8x8DCT(left_type[0])){\n            h->non_zero_count_cache[3+8*1]=\n            h->non_zero_count_cache[3+8*2]= h->cbp_table[left_xy[0]]&2;\n        }\n        if(IS_8x8DCT(left_type[1])){\n            h->non_zero_count_cache[3+8*3]=\n            h->non_zero_count_cache[3+8*4]= h->cbp_table[left_xy[1]]&8;\n        }\n        if(IS_8x8DCT(mb_type)){\n            h->non_zero_count_cache[scan8[0   ]]= h->non_zero_count_cache[scan8[1   ]]=\n            h->non_zero_count_cache[scan8[2   ]]= h->non_zero_count_cache[scan8[3   ]]= h->cbp & 1;\n            h->non_zero_count_cache[scan8[0+ 4]]= h->non_zero_count_cache[scan8[1+ 4]]=\n            h->non_zero_count_cache[scan8[2+ 4]]= h->non_zero_count_cache[scan8[3+ 4]]= h->cbp & 2;\n            h->non_zero_count_cache[scan8[0+ 8]]= h->non_zero_count_cache[scan8[1+ 8]]=\n            h->non_zero_count_cache[scan8[2+ 8]]= h->non_zero_count_cache[scan8[3+ 8]]= h->cbp & 4;\n            h->non_zero_count_cache[scan8[0+12]]= h->non_zero_count_cache[scan8[1+12]]=\n            h->non_zero_count_cache[scan8[2+12]]= h->non_zero_count_cache[scan8[3+12]]= h->cbp & 8;\n        }\n    }\n    if(IS_INTER(mb_type) || IS_DIRECT(mb_type)){\n        int list;\n        for(list=0; list<h->list_count; list++){\n            if(USES_LIST(top_type, list)){\n                const int b_xy= h->mb2b_xy[top_xy] + 3*h->b_stride;\n                const int b8_xy= h->mb2b8_xy[top_xy] + h->b8_stride;\n                int (*ref2frm)[64] = h->ref2frm[ h->slice_table[top_xy]&(MAX_SLICES-1) ][0] + (MB_MBAFF ? 20 : 2);\n                AV_COPY128(h->mv_cache[list][scan8[0] + 0 - 1*8], s->current_picture.motion_val[list][b_xy + 0]);\n                h->ref_cache[list][scan8[0] + 0 - 1*8]=\n                h->ref_cache[list][scan8[0] + 1 - 1*8]= ref2frm[list][s->current_picture.ref_index[list][b8_xy + 0]];\n                h->ref_cache[list][scan8[0] + 2 - 1*8]=\n                h->ref_cache[list][scan8[0] + 3 - 1*8]= ref2frm[list][s->current_picture.ref_index[list][b8_xy + 1]];\n            }else{\n                AV_ZERO128(h->mv_cache[list][scan8[0] + 0 - 1*8]);\n                AV_WN32A(&h->ref_cache[list][scan8[0] + 0 - 1*8], ((LIST_NOT_USED)&0xFF)*0x01010101u);\n            }\n            if(!IS_INTERLACED(mb_type^left_type[0])){\n                if(USES_LIST(left_type[0], list)){\n                    const int b_xy= h->mb2b_xy[left_xy[0]] + 3;\n                    const int b8_xy= h->mb2b8_xy[left_xy[0]] + 1;\n                    int (*ref2frm)[64] = h->ref2frm[ h->slice_table[left_xy[0]]&(MAX_SLICES-1) ][0] + (MB_MBAFF ? 20 : 2);\n                    AV_COPY32(h->mv_cache[list][scan8[0] - 1 + 0 ], s->current_picture.motion_val[list][b_xy + h->b_stride*0]);\n                    AV_COPY32(h->mv_cache[list][scan8[0] - 1 + 8 ], s->current_picture.motion_val[list][b_xy + h->b_stride*1]);\n                    AV_COPY32(h->mv_cache[list][scan8[0] - 1 +16 ], s->current_picture.motion_val[list][b_xy + h->b_stride*2]);\n                    AV_COPY32(h->mv_cache[list][scan8[0] - 1 +24 ], s->current_picture.motion_val[list][b_xy + h->b_stride*3]);\n                    h->ref_cache[list][scan8[0] - 1 + 0 ]=\n                    h->ref_cache[list][scan8[0] - 1 + 8 ]= ref2frm[list][s->current_picture.ref_index[list][b8_xy + h->b8_stride*0]];\n                    h->ref_cache[list][scan8[0] - 1 +16 ]=\n                    h->ref_cache[list][scan8[0] - 1 +24 ]= ref2frm[list][s->current_picture.ref_index[list][b8_xy + h->b8_stride*1]];\n                }else{\n                    AV_ZERO32(h->mv_cache [list][scan8[0] - 1 + 0 ]);\n                    AV_ZERO32(h->mv_cache [list][scan8[0] - 1 + 8 ]);\n                    AV_ZERO32(h->mv_cache [list][scan8[0] - 1 +16 ]);\n                    AV_ZERO32(h->mv_cache [list][scan8[0] - 1 +24 ]);\n                    h->ref_cache[list][scan8[0] - 1 + 0  ]=\n                    h->ref_cache[list][scan8[0] - 1 + 8  ]=\n                    h->ref_cache[list][scan8[0] - 1 + 16 ]=\n                    h->ref_cache[list][scan8[0] - 1 + 24 ]= LIST_NOT_USED;\n                }\n            }\n        }\n    }\n    return 0;\n}', 'static av_always_inline uint32_t pack16to32(int a, int b){\n#if HAVE_BIGENDIAN\n   return (b&0xFFFF) + (a<<16);\n#else\n   return (a&0xFFFF) + (b<<16);\n#endif\n}', 'static av_always_inline void fill_rectangle(void *vp, int w, int h, int stride, uint32_t val, int size){\n    uint8_t *p= (uint8_t*)vp;\n    assert(size==1 || size==2 || size==4);\n    assert(w<=4);\n    w      *= size;\n    stride *= size;\n    assert((((long)vp)&(FFMIN(w, STRIDE_ALIGN)-1)) == 0);\n    assert((stride&(w-1))==0);\n    if(w==2){\n        const uint16_t v= size==4 ? val : val*0x0101;\n        *(uint16_t*)(p + 0*stride)= v;\n        if(h==1) return;\n        *(uint16_t*)(p + 1*stride)= v;\n        if(h==2) return;\n        *(uint16_t*)(p + 2*stride)= v;\n        *(uint16_t*)(p + 3*stride)= v;\n    }else if(w==4){\n        const uint32_t v= size==4 ? val : size==2 ? val*0x00010001 : val*0x01010101;\n        *(uint32_t*)(p + 0*stride)= v;\n        if(h==1) return;\n        *(uint32_t*)(p + 1*stride)= v;\n        if(h==2) return;\n        *(uint32_t*)(p + 2*stride)= v;\n        *(uint32_t*)(p + 3*stride)= v;\n    }else if(w==8){\n#if HAVE_FAST_64BIT\n        const uint64_t v=  size==2 ? val*0x0001000100010001ULL : val*0x0100000001ULL;\n        *(uint64_t*)(p + 0*stride)= v;\n        if(h==1) return;\n        *(uint64_t*)(p + 1*stride)= v;\n        if(h==2) return;\n        *(uint64_t*)(p + 2*stride)= v;\n        *(uint64_t*)(p + 3*stride)= v;\n    }else if(w==16){\n        const uint64_t v= val*0x0100000001ULL;\n        *(uint64_t*)(p + 0+0*stride)= v;\n        *(uint64_t*)(p + 8+0*stride)= v;\n        *(uint64_t*)(p + 0+1*stride)= v;\n        *(uint64_t*)(p + 8+1*stride)= v;\n        if(h==2) return;\n        *(uint64_t*)(p + 0+2*stride)= v;\n        *(uint64_t*)(p + 8+2*stride)= v;\n        *(uint64_t*)(p + 0+3*stride)= v;\n        *(uint64_t*)(p + 8+3*stride)= v;\n#else\n        const uint32_t v= size==2 ? val*0x00010001 : val;\n        *(uint32_t*)(p + 0+0*stride)= v;\n        *(uint32_t*)(p + 4+0*stride)= v;\n        if(h==1) return;\n        *(uint32_t*)(p + 0+1*stride)= v;\n        *(uint32_t*)(p + 4+1*stride)= v;\n        if(h==2) return;\n        *(uint32_t*)(p + 0+2*stride)= v;\n        *(uint32_t*)(p + 4+2*stride)= v;\n        *(uint32_t*)(p + 0+3*stride)= v;\n        *(uint32_t*)(p + 4+3*stride)= v;\n    }else if(w==16){\n        *(uint32_t*)(p + 0+0*stride)= val;\n        *(uint32_t*)(p + 4+0*stride)= val;\n        *(uint32_t*)(p + 8+0*stride)= val;\n        *(uint32_t*)(p +12+0*stride)= val;\n        *(uint32_t*)(p + 0+1*stride)= val;\n        *(uint32_t*)(p + 4+1*stride)= val;\n        *(uint32_t*)(p + 8+1*stride)= val;\n        *(uint32_t*)(p +12+1*stride)= val;\n        if(h==2) return;\n        *(uint32_t*)(p + 0+2*stride)= val;\n        *(uint32_t*)(p + 4+2*stride)= val;\n        *(uint32_t*)(p + 8+2*stride)= val;\n        *(uint32_t*)(p +12+2*stride)= val;\n        *(uint32_t*)(p + 0+3*stride)= val;\n        *(uint32_t*)(p + 4+3*stride)= val;\n        *(uint32_t*)(p + 8+3*stride)= val;\n        *(uint32_t*)(p +12+3*stride)= val;\n#endif\n    }else\n        assert(0);\n    assert(h==4);\n}']