Browse Source

Fix segfault with rgb24 and full_internal_chrome due to non existing alpha

byte being written after the array.

Originally committed as revision 27628 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
tags/v0.5
Michael Niedermayer 16 years ago
parent
commit
d616c8ae3d
1 changed files with 7 additions and 2 deletions
  1. +7
    -2
      libswscale/swscale.c

+ 7
- 2
libswscale/swscale.c View File

@@ -905,29 +905,34 @@ static inline void yuv2rgbXinC_full(SwsContext *c, int16_t *lumFilter, int16_t *
{
int i;
int step= fmt_depth(c->dstFormat)/8;
int aidx= 3;

switch(c->dstFormat){
case PIX_FMT_ARGB:
dest++;
aidx= 0;
case PIX_FMT_RGB24:
aidx--;
case PIX_FMT_RGBA:
YSCALE_YUV_2_RGBX_FULL_C(1<<21)
dest[aidx]= 0;
dest[0]= R>>22;
dest[1]= G>>22;
dest[2]= B>>22;
dest[3]= 0;
dest+= step;
}
break;
case PIX_FMT_ABGR:
dest++;
aidx= 0;
case PIX_FMT_BGR24:
aidx--;
case PIX_FMT_BGRA:
YSCALE_YUV_2_RGBX_FULL_C(1<<21)
dest[aidx]= 0;
dest[0]= B>>22;
dest[1]= G>>22;
dest[2]= R>>22;
dest[3]= 0;
dest+= step;
}
break;


Loading…
Cancel
Save