1 --- DirectFB-1.4.15/tools/directfb-csource.c.orig 2011-09-29 11:51:21.000000000 +0200
2 +++ DirectFB-1.4.15/tools/directfb-csource.c 2011-12-31 11:45:40.123082173 +0100
7 - if (setjmp (png_ptr->jmpbuf)) {
8 + if (setjmp (png_jmpbuf(png_ptr))) {
9 if (desc->preallocated[0].data) {
10 free (desc->preallocated[0].data);
11 desc->preallocated[0].data = NULL;
16 - if (info_ptr->num_palette) {
18 + png_colorp png_palette;
20 + if (png_get_PLTE(png_ptr, info_ptr, &png_palette, &num_palette) && (num_palette > 0)) {
24 - *palette_size = MIN (info_ptr->num_palette, 256);
25 + *palette_size = MIN (num_palette, 256);
26 for (i = 0; i < *palette_size; i++) {
28 - palette[i].r = info_ptr->palette[i].red;
29 - palette[i].g = info_ptr->palette[i].green;
30 - palette[i].b = info_ptr->palette[i].blue;
31 + palette[i].r = png_palette[i].red;
32 + palette[i].g = png_palette[i].green;
33 + palette[i].b = png_palette[i].blue;
35 if (png_get_valid (png_ptr, info_ptr, PNG_INFO_tRNS)) {
36 png_get_tRNS (png_ptr, info_ptr, &alpha, &num, NULL);
38 palette[i].a = alpha[i];
44 png_set_filler (png_ptr, 0xFF,
45 --- DirectFB-1.4.15/tools/mkdfiff.c.orig 2011-09-29 11:51:21.000000000 +0200
46 +++ DirectFB-1.4.15/tools/mkdfiff.c 2011-12-31 11:54:59.336434230 +0100
51 - if (setjmp (png_ptr->jmpbuf)) {
52 + if (setjmp (png_jmpbuf(png_ptr))) {
53 if (desc->preallocated[0].data) {
54 free (desc->preallocated[0].data);
55 desc->preallocated[0].data = NULL;
56 --- DirectFB-1.4.15/tools/mkdgifft.cpp.orig 2011-09-29 11:51:21.000000000 +0200
57 +++ DirectFB-1.4.15/tools/mkdgifft.cpp 2011-12-31 12:04:10.586452688 +0100
62 - if (setjmp (png_ptr->jmpbuf)) {
63 + if (setjmp (png_jmpbuf(png_ptr))) {
64 if (desc->preallocated[0].data) {
65 free (desc->preallocated[0].data);
66 desc->preallocated[0].data = NULL;
67 --- DirectFB-1.4.15/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c.orig 2011-09-29 11:51:21.000000000 +0200
68 +++ DirectFB-1.4.15/interfaces/IDirectFBImageProvider/idirectfbimageprovider_png.c 2011-12-31 13:45:31.339989628 +0100
73 - if (setjmp( data->png_ptr->jmpbuf )) {
74 + if (setjmp( png_jmpbuf(data->png_ptr) )) {
75 D_ERROR( "ImageProvider/PNG: Error reading header!\n" );
79 rect = dst_data->area.wanted;
82 - if (setjmp( data->png_ptr->jmpbuf )) {
83 + if (setjmp( png_jmpbuf(data->png_ptr) )) {
84 D_ERROR( "ImageProvider/PNG: Error during decoding!\n" );
86 if (data->stage < STAGE_IMAGE)
89 switch (data->color_type) {
90 case PNG_COLOR_TYPE_PALETTE:
91 - if (dst_surface->config.format == DSPF_LUT8 && data->info_ptr->bit_depth == 8) {
92 + if (dst_surface->config.format == DSPF_LUT8 && png_get_bit_depth(data->png_ptr, data->info_ptr) == 8) {
94 * Special indexed PNG to LUT8 loading.
99 if (data->color_type == PNG_COLOR_TYPE_GRAY) {
100 - int num = 1 << data->info_ptr->bit_depth;
101 + int num = 1 << png_get_bit_depth(data->png_ptr, data->info_ptr);
103 for (x=0; x<num; x++) {
104 int value = x * 255 / (num - 1);
109 - switch (data->info_ptr->bit_depth) {
110 + switch (png_get_bit_depth(data->png_ptr, data->info_ptr)) {
112 for (y=0; y<data->height; y++) {
113 u8 *S = data->image + data->pitch * y;
117 D_ERROR( "ImageProvider/PNG: Unsupported indexed bit depth %d!\n",
118 - data->info_ptr->bit_depth );
119 + png_get_bit_depth(data->png_ptr, data->info_ptr) );
122 dfb_scale_linear_32( image_argb, data->width, data->height,
123 @@ -616,12 +616,16 @@
124 /* generate color key based on palette... */
125 if (data->color_type == PNG_COLOR_TYPE_PALETTE) {
127 - png_colorp palette = data->info_ptr->palette;
128 - png_bytep trans = data->info_ptr->trans_alpha;
129 - int num_colors = MIN( MAXCOLORMAPSIZE,
130 - data->info_ptr->num_palette );
131 - u8 cmap[3][num_colors];
133 + png_colorp palette;
135 + png_color_16p trans_color;
136 + int num_palette, num_colors, num_trans;
138 + png_get_PLTE(data->png_ptr, data->info_ptr, &palette, &num_palette);
139 + png_get_tRNS(data->png_ptr, data->info_ptr, &trans, &num_trans, &trans_color);
140 + num_colors = MIN (MAXCOLORMAPSIZE, num_palette);
142 + u8 cmap[3][num_colors];
143 for (i=0; i<num_colors; i++) {
144 cmap[0][i] = palette[i].red;
145 cmap[1][i] = palette[i].green;
149 key = FindColorKey( num_colors, &cmap[0][0] );
152 - for (i=0; i<data->info_ptr->num_trans; i++) {
153 + for (i=0; i<num_trans; i++) {
155 palette[i].red = (key & 0xff0000) >> 16;
156 palette[i].green = (key & 0x00ff00) >> 8;
159 else if (data->color_type == PNG_COLOR_TYPE_GRAY) {
160 /* ...or based on trans gray value */
161 - png_color_16p trans = &data->info_ptr->trans_color;
162 + png_bytep trans_alpha;
163 + png_color_16p trans;
165 + png_get_tRNS(data->png_ptr, data->info_ptr, &trans_alpha, &num_trans, &trans);
172 /* ...or based on trans rgb value */
173 - png_color_16p trans = &data->info_ptr->trans_color;
174 + png_bytep trans_alpha;
175 + png_color_16p trans;
177 + png_get_tRNS(data->png_ptr, data->info_ptr, &trans_alpha, &num_trans, &trans);
181 @@ -710,10 +721,14 @@
183 switch (data->color_type) {
184 case PNG_COLOR_TYPE_PALETTE: {
185 - png_colorp palette = data->info_ptr->palette;
186 - png_bytep trans = data->info_ptr->trans_alpha;
187 - int num_trans = data->info_ptr->num_trans;
188 - int num_colors = MIN( MAXCOLORMAPSIZE, data->info_ptr->num_palette );
189 + png_colorp palette;
191 + png_color_16p trans_color;
192 + int num_trans, num_palette, num_colors;
194 + png_get_PLTE(data->png_ptr, data->info_ptr, &palette, &num_palette);
195 + png_get_tRNS(data->png_ptr, data->info_ptr, &trans, &num_trans, &trans_color);
196 + num_colors = MIN( MAXCOLORMAPSIZE, num_palette );
198 for (i=0; i<num_colors; i++) {
199 data->colors[i].a = (i < num_trans) ? trans[i] : 0xff;
204 - png_color_16p trans = &data->info_ptr->trans_color;
206 + png_bytep trans_alpha;
207 + png_color_16p trans;
208 + png_get_tRNS(data->png_ptr, data->info_ptr, &trans_alpha, &num_trans, &trans);
209 u16 *src16 = (u16*)src + src16_initial_offset;
210 u32 *dst32 = (u32*)dst + dst32_initial_offset;