Commit daa57641 authored by Michael Niedermayer's avatar Michael Niedermayer

fixing bgr15&16 on big_endian

i doubt that that will fix all big endian problems though, we very likely will have to support RGB & BGR output formats as either bgr32 or bgr15 is rgb depending upon the way rgb/bgr is defined

Originally committed as revision 5247 to svn://svn.mplayerhq.hu/mplayer/trunk/postproc
parent af469427
...@@ -1125,12 +1125,12 @@ static void globalInit(){ ...@@ -1125,12 +1125,12 @@ static void globalInit(){
for(i=0; i<768; i++) for(i=0; i<768; i++)
{ {
int v= clip_table[i]; int v= clip_table[i];
clip_table16b[i]= le2me_16( v>>3); clip_table16b[i]= v>>3;
clip_table16g[i]= le2me_16((v<<3)&0x07E0); clip_table16g[i]= (v<<3)&0x07E0;
clip_table16r[i]= le2me_16((v<<8)&0xF800); clip_table16r[i]= (v<<8)&0xF800;
clip_table15b[i]= le2me_16( v>>3); clip_table15b[i]= v>>3;
clip_table15g[i]= le2me_16((v<<2)&0x03E0); clip_table15g[i]= (v<<2)&0x03E0;
clip_table15r[i]= le2me_16((v<<7)&0x7C00); clip_table15r[i]= (v<<7)&0x7C00;
} }
cpuCaps= gCpuCaps; cpuCaps= gCpuCaps;
...@@ -1420,7 +1420,10 @@ SwsContext *getSwsContext(int srcW, int srcH, int srcFormat, int dstW, int dstH, ...@@ -1420,7 +1420,10 @@ SwsContext *getSwsContext(int srcW, int srcH, int srcFormat, int dstW, int dstH,
{ {
// FIXME multiple yuv2rgb converters wont work that way cuz that thing is full of globals&statics // FIXME multiple yuv2rgb converters wont work that way cuz that thing is full of globals&statics
#ifdef WORDS_BIGENDIAN #ifdef WORDS_BIGENDIAN
if(dstFormat==IMGFMT_BGR32)
yuv2rgb_init( dstFormat&0xFF /* =bpp */, MODE_BGR); yuv2rgb_init( dstFormat&0xFF /* =bpp */, MODE_BGR);
else
yuv2rgb_init( dstFormat&0xFF /* =bpp */, MODE_RGB);
#else #else
yuv2rgb_init( dstFormat&0xFF /* =bpp */, MODE_RGB); yuv2rgb_init( dstFormat&0xFF /* =bpp */, MODE_RGB);
#endif #endif
......
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