unscaled yuv2rgb fix for big-endian systems

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4792 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
michael 2002-02-21 16:57:35 +00:00
parent 2423d041c2
commit 50657061a8
2 changed files with 9 additions and 4 deletions

View File

@ -427,7 +427,7 @@ static uint32_t config( uint32_t width,uint32_t height,uint32_t d_width,uint32_t
// return -1;
}
if(mode==MODE_BGR)
if((mode==MODE_BGR) == (myximage->byte_order == LSBFirst) )
{
printf("hmm, arpi said that isnt used, contact the developers, thats weird\n" );
return -1;

View File

@ -35,11 +35,12 @@ tested special converters
YV12/I420 -> BGR16
YV12 -> YV12
BGR15 -> BGR16
BGR16 -> BGR16
untested special converters
YV12/I420/IYUV -> BGR15/BGR24/BGR32 (its the yuv2rgb stuff, so it should be ok)
YV12/I420/IYUV -> YV12/I420/IYUV
YUY2/BGR15/BGR16/BGR24/BGR32/RGB24/RGB32 -> same format
YV12/I420 -> BGR15/BGR24/BGR32 (its the yuv2rgb stuff, so it should be ok)
YV12/I420 -> YV12/I420
YUY2/BGR15/BGR24/BGR32/RGB24/RGB32 -> same format
BGR24 -> BGR32 & RGB24 -> RGB32
BGR32 -> BGR24 & RGB32 -> RGB24
BGR24 -> YV12
@ -1408,7 +1409,11 @@ SwsContext *getSwsContext(int srcW, int srcH, int srcFormat, int dstW, int dstH,
if(isPlanarYUV(srcFormat) && isBGR(dstFormat))
{
// FIXME multiple yuv2rgb converters wont work that way cuz that thing is full of globals&statics
#ifdef WORDS_BIGENDIAN
yuv2rgb_init( dstFormat&0xFF /* =bpp */, MODE_BGR);
#else
yuv2rgb_init( dstFormat&0xFF /* =bpp */, MODE_RGB);
#endif
c->swScale= planarYuvToBgr;
if(flags&SWS_PRINT_INFO)