Mercurial > mplayer.hg
comparison postproc/rgb2rgb_template.c @ 14982:49dd10a86b23
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>
author | diego |
---|---|
date | Tue, 22 Mar 2005 10:11:42 +0000 |
parents | 821f464b4d90 |
children | e91f944f6ed9 |
comparison
equal
deleted
inserted
replaced
14981:293d3dee2eae | 14982:49dd10a86b23 |
---|---|
401 __asm __volatile(SFENCE:::"memory"); | 401 __asm __volatile(SFENCE:::"memory"); |
402 __asm __volatile(EMMS:::"memory"); | 402 __asm __volatile(EMMS:::"memory"); |
403 #endif | 403 #endif |
404 while(s < end) | 404 while(s < end) |
405 { | 405 { |
406 // FIXME on bigendian | 406 register int rgb = *(uint32_t*)s; s += 4; |
407 const int src= *s; s += 4; | 407 *d++ = ((rgb&0xFF)>>3) + ((rgb&0xFC00)>>5) + ((rgb&0xF80000)>>8); |
408 *d++ = ((src&0xFF)>>3) + ((src&0xFC00)>>5) + ((src&0xF80000)>>8); | |
409 // *d++ = ((src>>3)&0x1F) + ((src>>5)&0x7E0) + ((src>>8)&0xF800); | |
410 } | 408 } |
411 } | 409 } |
412 | 410 |
413 static inline void RENAME(rgb32tobgr16)(const uint8_t *src, uint8_t *dst, unsigned int src_size) | 411 static inline void RENAME(rgb32tobgr16)(const uint8_t *src, uint8_t *dst, unsigned int src_size) |
414 { | 412 { |