diff options
author | Baptiste Coudurier <baptiste.coudurier@gmail.com> | 2011-04-27 21:49:45 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2011-04-27 21:49:45 +0200 |
commit | dbfdb288c1921eeb9fef5bca20eee33da7fcdd71 (patch) | |
tree | c0b99795fee3fa4a48c8ed4af6a165bc58f5b261 | |
parent | e91946ed23dfbb9a6341266020ed8475ec15697d (diff) | |
download | ffmpeg-dbfdb288c1921eeb9fef5bca20eee33da7fcdd71.tar.gz |
Set alpha of palettes to 0xff.
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
-rw-r--r-- | libavcodec/bmp.c | 2 | ||||
-rw-r--r-- | libavcodec/targa.c | 6 | ||||
-rw-r--r-- | libavcodec/tiff.c | 3 | ||||
-rw-r--r-- | libswscale/swscale.c | 12 |
4 files changed, 12 insertions, 11 deletions
diff --git a/libavcodec/bmp.c b/libavcodec/bmp.c index c02aac6cb7..f4a6b769c5 100644 --- a/libavcodec/bmp.c +++ b/libavcodec/bmp.c @@ -245,7 +245,7 @@ static int bmp_decode_frame(AVCodecContext *avctx, buf = buf0 + 14 + ihsize; //palette location if((hsize-ihsize-14) < (colors << 2)){ // OS/2 bitmap, 3 bytes per palette entry for(i = 0; i < colors; i++) - ((uint32_t*)p->data[1])[i] = bytestream_get_le24(&buf); + ((uint32_t*)p->data[1])[i] = (0xff<<24) | bytestream_get_le24(&buf); }else{ for(i = 0; i < colors; i++) ((uint32_t*)p->data[1])[i] = bytestream_get_le32(&buf); diff --git a/libavcodec/targa.c b/libavcodec/targa.c index 5514304929..07173c7bc5 100644 --- a/libavcodec/targa.c +++ b/libavcodec/targa.c @@ -189,10 +189,10 @@ static int decode_frame(AVCodecContext *avctx, int r, g, b, t; int32_t *pal = ((int32_t*)p->data[1]) + first_clr; for(t = 0; t < colors; t++){ - r = *buf++; - g = *buf++; b = *buf++; - *pal++ = (b << 16) | (g << 8) | r; + g = *buf++; + r = *buf++; + *pal++ = (0xff<<24) | (r << 16) | (g << 8) | b; } p->palette_has_changed = 1; } diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index 8295a4b4c0..d43999b2f0 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -429,7 +429,8 @@ static int tiff_decode_tag(TiffContext *s, const uint8_t *start, const uint8_t * bp = buf + count / 3 * off * 2; off = (type_sizes[type] - 1) << 3; for(i = 0; i < count / 3; i++){ - j = (tget(&rp, type, s->le) >> off) << 16; + j = 0xff << 24; + j |= (tget(&rp, type, s->le) >> off) << 16; j |= (tget(&gp, type, s->le) >> off) << 8; j |= tget(&bp, type, s->le) >> off; pal[i] = j; diff --git a/libswscale/swscale.c b/libswscale/swscale.c index 51882e4035..54515c8206 100644 --- a/libswscale/swscale.c +++ b/libswscale/swscale.c @@ -1999,7 +1999,7 @@ int sws_scale(SwsContext *c, const uint8_t* const src[], const int srcStride[], if (usePal(c->srcFormat)) { for (i=0; i<256; i++) { - int p, r, g, b,y,u,v; + int p, r, g, b, y, u, v, a = 0xff; if(c->srcFormat == PIX_FMT_PAL8) { p=((const uint32_t*)(src[1]))[i]; r= (p>>16)&0xFF; @@ -2028,33 +2028,33 @@ int sws_scale(SwsContext *c, const uint8_t* const src[], const int srcStride[], 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); 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); + c->pal_yuv[i]= y + (u<<8) + (v<<16) + (a<<24); switch(c->dstFormat) { case PIX_FMT_BGR32: #if !HAVE_BIGENDIAN case PIX_FMT_RGB24: #endif - c->pal_rgb[i]= r + (g<<8) + (b<<16); + c->pal_rgb[i]= r + (g<<8) + (b<<16) + (a<<24); break; case PIX_FMT_BGR32_1: #if HAVE_BIGENDIAN case PIX_FMT_BGR24: #endif - c->pal_rgb[i]= (r + (g<<8) + (b<<16)) << 8; + c->pal_rgb[i]= a + (r<<8) + (g<<16) + (b<<24); break; case PIX_FMT_RGB32_1: #if HAVE_BIGENDIAN case PIX_FMT_RGB24: #endif - c->pal_rgb[i]= (b + (g<<8) + (r<<16)) << 8; + c->pal_rgb[i]= a + (b<<8) + (g<<16) + (r<<24); break; case PIX_FMT_RGB32: #if !HAVE_BIGENDIAN case PIX_FMT_BGR24: #endif default: - c->pal_rgb[i]= b + (g<<8) + (r<<16); + c->pal_rgb[i]= b + (g<<8) + (r<<16) + (a<<24); } } } |