diff options
author | Alan Curry <pacman@TheWorld.com> | 2006-02-24 09:52:59 +0000 |
---|---|---|
committer | Alan Curry <pacman@TheWorld.com> | 2006-02-24 09:52:59 +0000 |
commit | 1d773cfde0434de267e94e9aa37cf807b6d077a7 (patch) | |
tree | 7906c6ef076caa68a739114eb2be6a80f19d3bf0 | |
parent | 7bdb4f67bc17fd0c673a1b811d81935fbcfbee60 (diff) | |
download | ffmpeg-1d773cfde0434de267e94e9aa37cf807b6d077a7.tar.gz |
Fix rgb32tobgr16, rgb32to15, and rgb32tobgr15. All had the same problem that
was fixed in rgb32to16 about a year ago: using only the first 8 bits of the
32-bit pixel.
Originally committed as revision 17671 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
-rw-r--r-- | postproc/rgb2rgb_template.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/postproc/rgb2rgb_template.c b/postproc/rgb2rgb_template.c index fbb4021011..d611debca2 100644 --- a/postproc/rgb2rgb_template.c +++ b/postproc/rgb2rgb_template.c @@ -468,8 +468,8 @@ static inline void RENAME(rgb32tobgr16)(const uint8_t *src, uint8_t *dst, long s #endif while(s < end) { - const int src= *s; s += 4; - *d++ = ((src&0xF8)<<8) + ((src&0xFC00)>>5) + ((src&0xF80000)>>19); + register int rgb = *(uint32_t*)s; s += 4; + *d++ = ((rgb&0xF8)<<8) + ((rgb&0xFC00)>>5) + ((rgb&0xF80000)>>19); } } @@ -564,8 +564,8 @@ static inline void RENAME(rgb32to15)(const uint8_t *src, uint8_t *dst, long src_ #endif while(s < end) { - const int src= *s; s += 4; - *d++ = ((src&0xFF)>>3) + ((src&0xF800)>>6) + ((src&0xF80000)>>9); + register int rgb = *(uint32_t*)s; s += 4; + *d++ = ((rgb&0xFF)>>3) + ((rgb&0xF800)>>6) + ((rgb&0xF80000)>>9); } } @@ -625,8 +625,8 @@ static inline void RENAME(rgb32tobgr15)(const uint8_t *src, uint8_t *dst, long s #endif while(s < end) { - const int src= *s; s += 4; - *d++ = ((src&0xF8)<<7) + ((src&0xF800)>>6) + ((src&0xF80000)>>19); + register int rgb = *(uint32_t*)s; s += 4; + *d++ = ((rgb&0xF8)<<7) + ((rgb&0xF800)>>6) + ((rgb&0xF80000)>>19); } } |