|
|
|
@ -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); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|