OSDN Git Service

preserve alpha channel when converting rgb32 to bgr32 in plain C
authorIvo van Poorten <ivop@euronet.nl>
Wed, 18 Apr 2007 16:40:58 +0000 (16:40 +0000)
committerIvo van Poorten <ivop@euronet.nl>
Wed, 18 Apr 2007 16:40:58 +0000 (16:40 +0000)
Originally committed as revision 23022 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale

libswscale/rgb2rgb_template.c

index f06e4ed..989b5bb 100644 (file)
@@ -1423,7 +1423,7 @@ static inline void RENAME(rgb32tobgr32)(const uint8_t *src, uint8_t *dst, long s
                : "memory");
 #endif
        for (; idx<15; idx+=4) {
-               register int v = *(uint32_t *)&s[idx], g = v & 0xff00;
+               register int v = *(uint32_t *)&s[idx], g = v & 0xff00ff00;
                v &= 0xff00ff;
                *(uint32_t *)&d[idx] = (v>>16) + g + (v<<16);
        }