]> git.sesse.net Git - ffmpeg/commitdiff
swscale: fix some undefined signed left shifts
authorJustin Ruggles <justin.ruggles@gmail.com>
Sat, 5 Apr 2014 18:46:22 +0000 (14:46 -0400)
committerJustin Ruggles <justin.ruggles@gmail.com>
Sat, 12 Apr 2014 17:24:47 +0000 (13:24 -0400)
Based on a patch by Michael Niedermayer <michaelni@gmx.at>

libswscale/swscale_unscaled.c

index daa6f5f7c62b5d188320cb54900c16c9de294d02..9e50d48ac3520d09ba1e839c6994fd5d5db6108f 100644 (file)
@@ -1230,13 +1230,13 @@ int attribute_align_arg sws_scale(struct SwsContext *c,
 #if HAVE_BIGENDIAN
             case AV_PIX_FMT_BGR24:
 #endif
-                c->pal_rgb[i] = (r + (g << 8) + (b << 16)) << 8;
+                c->pal_rgb[i] = (r << 8) + (g << 16) + ((unsigned)b << 24);
                 break;
             case AV_PIX_FMT_RGB32_1:
 #if HAVE_BIGENDIAN
             case AV_PIX_FMT_RGB24:
 #endif
-                c->pal_rgb[i] = (b + (g << 8) + (r << 16)) << 8;
+                c->pal_rgb[i] = (b << 8) + (g << 16) + ((unsigned)r << 24);
                 break;
             case AV_PIX_FMT_RGB32:
 #if !HAVE_BIGENDIAN