Commit 57f46706 authored by pacman's avatar pacman

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.


git-svn-id: file:///var/local/repositories/mplayer/trunk/postproc@17671 b3059339-0415-0410-9bf9-f77b7e298cf2
parent df067911
......@@ -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);
}
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment