Partially based on a patch by Michael Niedermayer <michae...@gmx.at> --- libswscale/swscale_unscaled.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/libswscale/swscale_unscaled.c b/libswscale/swscale_unscaled.c index 3a956f4..9e50d48 100644 --- a/libswscale/swscale_unscaled.c +++ b/libswscale/swscale_unscaled.c @@ -1187,9 +1187,9 @@ int attribute_align_arg sws_scale(struct SwsContext *c, if (usePal(c->srcFormat)) { for (i = 0; i < 256; i++) { - int p, r, g, b, y, u, v; + int r, g, b, y, u, v; if (c->srcFormat == AV_PIX_FMT_PAL8) { - p = ((const uint32_t *)(srcSlice[1]))[i]; + uint32_t p = ((const uint32_t *)(srcSlice[1]))[i]; r = (p >> 16) & 0xFF; g = (p >> 8) & 0xFF; b = p & 0xFF; @@ -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 -- 1.7.1 _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel