Partially based on a patch by Michael Niedermayer <[email protected]>
---
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
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel