sws: avoid signed C99 overflows

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
pull/6/head
Michael Niedermayer 12 years ago
parent 555f352f99
commit 3ee8eefbf2
  1. 10
      libswscale/swscale.c

@ -848,33 +848,33 @@ int attribute_align_arg sws_scale(struct SwsContext *c,
y = av_clip_uint8((RY * r + GY * g + BY * b + ( 33 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT); y = av_clip_uint8((RY * r + GY * g + BY * b + ( 33 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT);
u = av_clip_uint8((RU * r + GU * g + BU * b + (257 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT); u = av_clip_uint8((RU * r + GU * g + BU * b + (257 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT);
v = av_clip_uint8((RV * r + GV * g + BV * b + (257 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT); v = av_clip_uint8((RV * r + GV * g + BV * b + (257 << (RGB2YUV_SHIFT - 1))) >> RGB2YUV_SHIFT);
c->pal_yuv[i]= y + (u<<8) + (v<<16) + (a<<24); c->pal_yuv[i]= y + (u<<8) + (v<<16) + (a<<24U);
switch (c->dstFormat) { switch (c->dstFormat) {
case AV_PIX_FMT_BGR32: case AV_PIX_FMT_BGR32:
#if !HAVE_BIGENDIAN #if !HAVE_BIGENDIAN
case AV_PIX_FMT_RGB24: case AV_PIX_FMT_RGB24:
#endif #endif
c->pal_rgb[i]= r + (g<<8) + (b<<16) + (a<<24); c->pal_rgb[i]= r + (g<<8) + (b<<16) + (a<<24U);
break; break;
case AV_PIX_FMT_BGR32_1: case AV_PIX_FMT_BGR32_1:
#if HAVE_BIGENDIAN #if HAVE_BIGENDIAN
case AV_PIX_FMT_BGR24: case AV_PIX_FMT_BGR24:
#endif #endif
c->pal_rgb[i]= a + (r<<8) + (g<<16) + (b<<24); c->pal_rgb[i]= a + (r<<8) + (g<<16) + (b<<24U);
break; break;
case AV_PIX_FMT_RGB32_1: case AV_PIX_FMT_RGB32_1:
#if HAVE_BIGENDIAN #if HAVE_BIGENDIAN
case AV_PIX_FMT_RGB24: case AV_PIX_FMT_RGB24:
#endif #endif
c->pal_rgb[i]= a + (b<<8) + (g<<16) + (r<<24); c->pal_rgb[i]= a + (b<<8) + (g<<16) + (r<<24U);
break; break;
case AV_PIX_FMT_RGB32: case AV_PIX_FMT_RGB32:
#if !HAVE_BIGENDIAN #if !HAVE_BIGENDIAN
case AV_PIX_FMT_BGR24: case AV_PIX_FMT_BGR24:
#endif #endif
default: default:
c->pal_rgb[i]= b + (g<<8) + (r<<16) + (a<<24); c->pal_rgb[i]= b + (g<<8) + (r<<16) + (a<<24U);
} }
} }
} }

Loading…
Cancel
Save