h264: fix signed overflows in x*0x01010101 expressions
authorMans Rullgard <mans@mansr.com>
Sat, 8 Oct 2011 20:19:51 +0000 (21:19 +0100)
committerMans Rullgard <mans@mansr.com>
Sun, 9 Oct 2011 11:27:19 +0000 (12:27 +0100)
Signed-off-by: Mans Rullgard <mans@mansr.com>
libavcodec/h264.c
libavcodec/h264_mvpred.h

index 83c26ef..aac1a15 100644 (file)
@@ -1668,7 +1668,7 @@ static av_always_inline void hl_decode_mb_predict_luma(H264Context *h, int mb_ty
                                     tr_high= ((uint16_t*)ptr)[3 - linesize/2]*0x0001000100010001ULL;
                                     topright= (uint8_t*) &tr_high;
                                 } else {
-                                    tr= ptr[3 - linesize]*0x01010101;
+                                    tr= ptr[3 - linesize]*0x01010101u;
                                     topright= (uint8_t*) &tr;
                                 }
                             }else
index 4751928..7c7086d 100644 (file)
@@ -588,7 +588,7 @@ static void fill_decode_caches(H264Context *h, int mb_type){
                 ref_cache[3 - 1*8]= ref[4*top_xy + 3];
             }else{
                 AV_ZERO128(mv_cache[0 - 1*8]);
-                AV_WN32A(&ref_cache[0 - 1*8], ((top_type ? LIST_NOT_USED : PART_NOT_AVAILABLE)&0xFF)*0x01010101);
+                AV_WN32A(&ref_cache[0 - 1*8], ((top_type ? LIST_NOT_USED : PART_NOT_AVAILABLE)&0xFF)*0x01010101u);
             }
 
             if(mb_type & (MB_TYPE_16x8|MB_TYPE_8x8)){