# HG changeset patch # User reimar # Date 1178541193 0 # Node ID 794aba782ebd65404b27eb7c5851a9c9200937f6 # Parent f2631612f28b573e7b77970a744bc9ce1e6c5ce0 Fix Gui colors for 32 bit png images after switch to libavcodec decoding diff -r f2631612f28b -r 794aba782ebd gui/bitmap.c --- a/gui/bitmap.c Mon May 07 08:13:22 2007 +0000 +++ b/gui/bitmap.c Mon May 07 12:33:13 2007 +0000 @@ -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 @@ 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 @@ return -1; } if ( conv24to32( bf ) ) return -8; -#ifdef WORDS_BIGENDIAN - swab(bf->Image, bf->Image, bf->ImageSize); -#endif - bgr2rgb( bf ); Normalize( bf ); return 0; }