summaryrefslogtreecommitdiff
path: root/postproc/rgb2rgb_template.c
diff options
context:
space:
mode:
authorRene Rebe <rene@exactcode.de>2005-03-22 10:11:42 +0000
committerDiego Biurrun <diego@biurrun.de>2005-03-22 10:11:42 +0000
commitd07355da771006e7cd4c5461e74e15c9717d13e1 (patch)
tree0fdbb5f24efd1a332afc9ed25fe6a1da0614f29d /postproc/rgb2rgb_template.c
parent02dc898338da27af258ee72285c60cf5e85839a5 (diff)
Fixes rgb32to16 conversion for I think all platforms since the int8
cast should never have worked. Tested on PowerPC and fixes the black GUI to show the content. patch by Rene Rebe <rene at exactcode dot de> Originally committed as revision 14983 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
Diffstat (limited to 'postproc/rgb2rgb_template.c')
-rw-r--r--postproc/rgb2rgb_template.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/postproc/rgb2rgb_template.c b/postproc/rgb2rgb_template.c
index 8993178d08..e7571b40c1 100644
--- a/postproc/rgb2rgb_template.c
+++ b/postproc/rgb2rgb_template.c
@@ -403,10 +403,8 @@ static inline void RENAME(rgb32to16)(const uint8_t *src, uint8_t *dst, unsigned
#endif
while(s < end)
{
- // FIXME on bigendian
- const int src= *s; s += 4;
- *d++ = ((src&0xFF)>>3) + ((src&0xFC00)>>5) + ((src&0xF80000)>>8);
-// *d++ = ((src>>3)&0x1F) + ((src>>5)&0x7E0) + ((src>>8)&0xF800);
+ register int rgb = *(uint32_t*)s; s += 4;
+ *d++ = ((rgb&0xFF)>>3) + ((rgb&0xFC00)>>5) + ((rgb&0xF80000)>>8);
}
}