From 6b8dfb15a61a87d0defccf755a53f5ea7e77e0e8 Mon Sep 17 00:00:00 2001 From: reimar Date: Mon, 7 May 2007 12:33:13 +0000 Subject: [PATCH] Fix Gui colors for 32 bit png images after switch to libavcodec decoding git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23243 b3059339-0415-0410-9bf9-f77b7e298cf2 --- gui/bitmap.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/gui/bitmap.c b/gui/bitmap.c index c0e693da9e..63427783f4 100644 --- a/gui/bitmap.c +++ b/gui/bitmap.c @@ -10,6 +10,7 @@ #else #include "libavcodec/avcodec.h" #endif +#include "libavutil/intreadwrite.h" #include "libvo/fastmemcpy.h" static int pngRead( unsigned char * fname,txSample * bf ) @@ -80,11 +81,9 @@ static int conv24to32( txSample * bf ) mp_dbg( MSGT_GPLAYER,MSGL_DBG2,"[bitmap] not enough memory for image\n" ); return 1; } - for ( c=0,i=0; c < bf->ImageSize; ) + for ( c=0,i=0; c < bf->ImageSize; c += 4, i += 3) { - bf->Image[c++]=tmpImage[i++]; //red - bf->Image[c++]=tmpImage[i++]; //green - bf->Image[c++]=tmpImage[i++]; c++; //blue + *(uint32_t *)&bf->Image[c] = AV_RB24(&tmpImage[i]); } free( tmpImage ); } @@ -151,10 +150,6 @@ int bpRead( char * fname, txSample * bf ) return -1; } if ( conv24to32( bf ) ) return -8; -#ifdef WORDS_BIGENDIAN - swab(bf->Image, bf->Image, bf->ImageSize); -#endif - bgr2rgb( bf ); Normalize( bf ); return 0; }