swscale: fix signed shift overflows in ff_yuv2rgb_c_init_tables()
authorMans Rullgard <mans@mansr.com>
Fri, 21 Oct 2011 19:36:11 +0000 (20:36 +0100)
committerMans Rullgard <mans@mansr.com>
Fri, 21 Oct 2011 19:56:59 +0000 (20:56 +0100)
Signed-off-by: Mans Rullgard <mans@mansr.com>
libswscale/yuv2rgb.c

index cad09338d317c436c3db1fdd0cc5b8ed2e0cd75d..39c8b9c6fbd6be4f524647f3163624c3aaa93e66 100644 (file)
@@ -788,8 +788,8 @@ av_cold int ff_yuv2rgb_c_init_tables(SwsContext *c, const int inv_table[4], int
         y_table32 = c->yuvTable;
         yb = -(384<<16) - oy;
         for (i = 0; i < 1024; i++) {
-            uint8_t yval = av_clip_uint8((yb + 0x8000) >> 16);
-            y_table32[i     ] = (yval << rbase) + (needAlpha ? 0 : (255 << abase));
+            unsigned yval = av_clip_uint8((yb + 0x8000) >> 16);
+            y_table32[i     ] = (yval << rbase) + (needAlpha ? 0 : (255u << abase));
             y_table32[i+1024] = yval << gbase;
             y_table32[i+2048] = yval << bbase;
             yb += cy;