http://bugs.gentoo.org/319113 http://repos.archlinux.org/wsvn/community/xbmc/trunk/libpng14.patch diff -Nur xbmc-9.11.orig/xbmc/lib/cximage-6.0/CxImage/ximapng.cpp xbmc-9.11/xbmc/lib/cximage-6.0/CxImage/ximapng.cpp --- xbmc-9.11.orig/xbmc/lib/cximage-6.0/CxImage/ximapng.cpp 2008-07-18 23:40:53.000000000 +0300 +++ xbmc-9.11/xbmc/lib/cximage-6.0/CxImage/ximapng.cpp 2010-01-20 21:55:11.000000000 +0200 @@ -142,9 +142,9 @@ if (info_ptr->num_trans!=0){ //palette transparency if (info_ptr->num_trans==1){ if (info_ptr->color_type == PNG_COLOR_TYPE_PALETTE){ - info.nBkgndIndex = info_ptr->trans_values.index; + info.nBkgndIndex = info_ptr->trans_color.index; } else{ - info.nBkgndIndex = info_ptr->trans_values.gray>>nshift; + info.nBkgndIndex = info_ptr->trans_color.gray>>nshift; } } if (info_ptr->num_trans>1){ @@ -152,7 +152,7 @@ if (pal){ DWORD ip; for (ip=0;ipnum_trans);ip++) - pal[ip].rgbReserved=info_ptr->trans[ip]; + pal[ip].rgbReserved=info_ptr->trans_alpha[ip]; for (ip=info_ptr->num_trans;iptrans_values.red>>nshift); - info.nBkgndColor.rgbGreen = (BYTE)(info_ptr->trans_values.green>>nshift); - info.nBkgndColor.rgbBlue = (BYTE)(info_ptr->trans_values.blue>>nshift); + info.nBkgndColor.rgbRed = (BYTE)(info_ptr->trans_color.red>>nshift); + info.nBkgndColor.rgbGreen = (BYTE)(info_ptr->trans_color.green>>nshift); + info.nBkgndColor.rgbBlue = (BYTE)(info_ptr->trans_color.blue>>nshift); info.nBkgndColor.rgbReserved = 0; info.nBkgndIndex = 0; } @@ -417,12 +417,12 @@ if (info.nBkgndIndex >= 0){ info_ptr->num_trans = 1; info_ptr->valid |= PNG_INFO_tRNS; - info_ptr->trans = trans; - info_ptr->trans_values.index = (BYTE)info.nBkgndIndex; - info_ptr->trans_values.red = tc.rgbRed; - info_ptr->trans_values.green = tc.rgbGreen; - info_ptr->trans_values.blue = tc.rgbBlue; - info_ptr->trans_values.gray = info_ptr->trans_values.index; + info_ptr->trans_alpha = trans; + info_ptr->trans_color.index = (BYTE)info.nBkgndIndex; + info_ptr->trans_color.red = tc.rgbRed; + info_ptr->trans_color.green = tc.rgbGreen; + info_ptr->trans_color.blue = tc.rgbBlue; + info_ptr->trans_color.gray = info_ptr->trans_color.index; // the transparency indexes start from 0 for non grayscale palette if (!bGrayScale && head.biClrUsed && info.nBkgndIndex) @@ -443,7 +443,7 @@ trans[ip]=GetPaletteColor((BYTE)ip).rgbReserved; info_ptr->num_trans = (WORD)nc; info_ptr->valid |= PNG_INFO_tRNS; - info_ptr->trans = trans; + info_ptr->trans_alpha = trans; } // copy the palette colors diff -Nur xbmc-9.11.orig/xbmc/screensavers/rsxs-0.9/src/pngimage.cc xbmc-9.11/xbmc/screensavers/rsxs-0.9/src/pngimage.cc --- xbmc-9.11.orig/xbmc/screensavers/rsxs-0.9/src/pngimage.cc 2008-07-30 23:35:38.000000000 +0300 +++ xbmc-9.11/xbmc/screensavers/rsxs-0.9/src/pngimage.cc 2010-01-20 22:21:01.000000000 +0200 @@ -65,7 +65,7 @@ (png_get_color_type(png, pngInfo) == PNG_COLOR_TYPE_GRAY) && png_get_bit_depth(png, pngInfo) < 8 ) - png_set_gray_1_2_4_to_8(png); + png_set_expand_gray_1_2_4_to_8(png); if (png_get_valid(png, pngInfo, PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png); if (fullColor) diff -Nur xbmc-9.11.orig/xbmc/visualizations/Goom/goom2k4-0/src/pngload.c xbmc-9.11/xbmc/visualizations/Goom/goom2k4-0/src/pngload.c --- xbmc-9.11.orig/xbmc/visualizations/Goom/goom2k4-0/src/pngload.c 2008-08-04 05:05:51.000000000 +0300 +++ xbmc-9.11/xbmc/visualizations/Goom/goom2k4-0/src/pngload.c 2010-01-20 22:16:23.000000000 +0200 @@ -94,7 +94,7 @@ png_set_palette_to_rgb (png_ptr); if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8) - png_set_gray_1_2_4_to_8 (png_ptr); + png_set_expand_gray_1_2_4_to_8 (png_ptr); else if (color_type == PNG_COLOR_TYPE_GRAY || color_type == PNG_COLOR_TYPE_GRAY_ALPHA) png_set_gray_to_rgb (png_ptr);