Update bundled libpng to version 1.6.42
[ChangeLog][Third-Party Code] libpng was updated to version 1.6.42 Change-Id: Ie41c2df610fcd456af2bc4dee05dde90c426602b Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> (cherry picked from commit a046bc19e451f6f2e42ac1fcddaf5ef3efc81f0d) Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org> (cherry picked from commit cd59980f726b5254bd56197acc6f0cbe6d5f1f46) (cherry picked from commit 85ac5cb9796f40cd01cf585978a7ad54cc75f23d)
This commit is contained in:
parent
f9537eda1d
commit
303586dd18
18
src/3rdparty/libpng/ANNOUNCE
vendored
18
src/3rdparty/libpng/ANNOUNCE
vendored
@ -1,4 +1,4 @@
|
|||||||
libpng 1.6.41 - January 24, 2024
|
libpng 1.6.42 - January 29, 2024
|
||||||
================================
|
================================
|
||||||
|
|
||||||
This is a public release of libpng, intended for use in production code.
|
This is a public release of libpng, intended for use in production code.
|
||||||
@ -9,13 +9,13 @@ Files available for download
|
|||||||
|
|
||||||
Source files with LF line endings (for Unix/Linux):
|
Source files with LF line endings (for Unix/Linux):
|
||||||
|
|
||||||
* libpng-1.6.41.tar.xz (LZMA-compressed, recommended)
|
* libpng-1.6.42.tar.xz (LZMA-compressed, recommended)
|
||||||
* libpng-1.6.41.tar.gz (deflate-compressed)
|
* libpng-1.6.42.tar.gz (deflate-compressed)
|
||||||
|
|
||||||
Source files with CRLF line endings (for Windows):
|
Source files with CRLF line endings (for Windows):
|
||||||
|
|
||||||
* lpng1641.7z (LZMA-compressed, recommended)
|
* lpng1642.7z (LZMA-compressed, recommended)
|
||||||
* lpng1641.zip (deflate-compressed)
|
* lpng1642.zip (deflate-compressed)
|
||||||
|
|
||||||
Other information:
|
Other information:
|
||||||
|
|
||||||
@ -25,6 +25,14 @@ Other information:
|
|||||||
* TRADEMARK.md
|
* TRADEMARK.md
|
||||||
|
|
||||||
|
|
||||||
|
Changes from version 1.6.41 to version 1.6.42
|
||||||
|
---------------------------------------------
|
||||||
|
|
||||||
|
* Fixed the implementation of the macro function `png_check_sig`.
|
||||||
|
This was an API regression, introduced in libpng-1.6.41.
|
||||||
|
(Reported by Matthieu Darbois)
|
||||||
|
|
||||||
|
|
||||||
Changes from version 1.6.40 to version 1.6.41
|
Changes from version 1.6.40 to version 1.6.41
|
||||||
---------------------------------------------
|
---------------------------------------------
|
||||||
|
|
||||||
|
7
src/3rdparty/libpng/CHANGES
vendored
7
src/3rdparty/libpng/CHANGES
vendored
@ -6134,7 +6134,7 @@ Version 1.6.41 [January 24, 2024]
|
|||||||
(Contributed by GuXiWei, JinBo and ZhangLixia)
|
(Contributed by GuXiWei, JinBo and ZhangLixia)
|
||||||
Fixed the run-time discovery of MIPS MSA hardware.
|
Fixed the run-time discovery of MIPS MSA hardware.
|
||||||
(Contributed by Sui Jingfeng)
|
(Contributed by Sui Jingfeng)
|
||||||
Fixed an off-by-one error in the function `png_do_check_palette_indexes`,
|
Fixed an off-by-one error in the function png_do_check_palette_indexes(),
|
||||||
which failed to recognize errors that might have existed in the first
|
which failed to recognize errors that might have existed in the first
|
||||||
column of a broken palette-encoded image. This was a benign regression
|
column of a broken palette-encoded image. This was a benign regression
|
||||||
accidentally introduced in libpng-1.6.33. No pixel was harmed.
|
accidentally introduced in libpng-1.6.33. No pixel was harmed.
|
||||||
@ -6161,6 +6161,11 @@ Version 1.6.41 [January 24, 2024]
|
|||||||
Improved the test coverage.
|
Improved the test coverage.
|
||||||
(Contributed by John Bowler)
|
(Contributed by John Bowler)
|
||||||
|
|
||||||
|
Version 1.6.42 [January 29, 2024]
|
||||||
|
Fixed the implementation of the macro function png_check_sig().
|
||||||
|
This was an API regression, introduced in libpng-1.6.41.
|
||||||
|
(Reported by Matthieu Darbois)
|
||||||
|
|
||||||
Send comments/corrections/commendations to png-mng-implement at lists.sf.net.
|
Send comments/corrections/commendations to png-mng-implement at lists.sf.net.
|
||||||
Subscription is required; visit
|
Subscription is required; visit
|
||||||
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
||||||
|
2
src/3rdparty/libpng/README
vendored
2
src/3rdparty/libpng/README
vendored
@ -1,4 +1,4 @@
|
|||||||
README for libpng version 1.6.41
|
README for libpng version 1.6.42
|
||||||
================================
|
================================
|
||||||
|
|
||||||
See the note about version numbers near the top of `png.h`.
|
See the note about version numbers near the top of `png.h`.
|
||||||
|
139
src/3rdparty/libpng/libpng-manual.txt
vendored
139
src/3rdparty/libpng/libpng-manual.txt
vendored
@ -9,7 +9,7 @@ libpng-manual.txt - A description on how to use and modify libpng
|
|||||||
|
|
||||||
Based on:
|
Based on:
|
||||||
|
|
||||||
libpng version 1.6.36, December 2018, through 1.6.41 - January 2024
|
libpng version 1.6.36, December 2018, through 1.6.42 - January 2024
|
||||||
Updated and distributed by Cosmin Truta
|
Updated and distributed by Cosmin Truta
|
||||||
Copyright (c) 2018-2024 Cosmin Truta
|
Copyright (c) 2018-2024 Cosmin Truta
|
||||||
|
|
||||||
@ -357,7 +357,7 @@ Customizing libpng.
|
|||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
is_png = !png_sig_cmp(header, 0, number);
|
is_png = (png_sig_cmp(header, 0, number) == 0);
|
||||||
if (!is_png)
|
if (!is_png)
|
||||||
{
|
{
|
||||||
return NOT_PNG;
|
return NOT_PNG;
|
||||||
@ -385,8 +385,7 @@ create the structure, so your application should check for that.
|
|||||||
|
|
||||||
if (!info_ptr)
|
if (!info_ptr)
|
||||||
{
|
{
|
||||||
png_destroy_read_struct(&png_ptr,
|
png_destroy_read_struct(&png_ptr, NULL, NULL);
|
||||||
(png_infopp)NULL, (png_infopp)NULL);
|
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -419,14 +418,13 @@ free any memory.
|
|||||||
|
|
||||||
if (setjmp(png_jmpbuf(png_ptr)))
|
if (setjmp(png_jmpbuf(png_ptr)))
|
||||||
{
|
{
|
||||||
png_destroy_read_struct(&png_ptr, &info_ptr,
|
png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
|
||||||
&end_info);
|
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
Pass (png_infopp)NULL instead of &end_info if you didn't create
|
Pass NULL instead of &end_info if you didn't create an end_info
|
||||||
an end_info structure.
|
structure.
|
||||||
|
|
||||||
If you would rather avoid the complexity of setjmp/longjmp issues,
|
If you would rather avoid the complexity of setjmp/longjmp issues,
|
||||||
you can compile libpng with PNG_NO_SETJMP, in which case
|
you can compile libpng with PNG_NO_SETJMP, in which case
|
||||||
@ -496,7 +494,7 @@ You can set up a callback function to handle any unknown chunks in the
|
|||||||
input stream. You must supply the function
|
input stream. You must supply the function
|
||||||
|
|
||||||
read_chunk_callback(png_structp png_ptr,
|
read_chunk_callback(png_structp png_ptr,
|
||||||
png_unknown_chunkp chunk);
|
png_unknown_chunkp chunk)
|
||||||
{
|
{
|
||||||
/* The unknown chunk structure contains your
|
/* The unknown chunk structure contains your
|
||||||
chunk data, along with similar data for any other
|
chunk data, along with similar data for any other
|
||||||
@ -547,9 +545,9 @@ a progress meter or the like. It's demonstrated in pngtest.c.
|
|||||||
You must supply a function
|
You must supply a function
|
||||||
|
|
||||||
void read_row_callback(png_structp png_ptr,
|
void read_row_callback(png_structp png_ptr,
|
||||||
png_uint_32 row, int pass);
|
png_uint_32 row, int pass)
|
||||||
{
|
{
|
||||||
/* put your code here */
|
/* put your code here */
|
||||||
}
|
}
|
||||||
|
|
||||||
(You can give it another name that you like instead of "read_row_callback")
|
(You can give it another name that you like instead of "read_row_callback")
|
||||||
@ -1181,21 +1179,21 @@ If you know your image size and pixel size ahead of time, you can allocate
|
|||||||
row_pointers prior to calling png_read_png() with
|
row_pointers prior to calling png_read_png() with
|
||||||
|
|
||||||
if (height > PNG_UINT_32_MAX/(sizeof (png_byte)))
|
if (height > PNG_UINT_32_MAX/(sizeof (png_byte)))
|
||||||
png_error (png_ptr,
|
png_error(png_ptr,
|
||||||
"Image is too tall to process in memory");
|
"Image is too tall to process in memory");
|
||||||
|
|
||||||
if (width > PNG_UINT_32_MAX/pixel_size)
|
if (width > PNG_UINT_32_MAX/pixel_size)
|
||||||
png_error (png_ptr,
|
png_error(png_ptr,
|
||||||
"Image is too wide to process in memory");
|
"Image is too wide to process in memory");
|
||||||
|
|
||||||
row_pointers = png_malloc(png_ptr,
|
row_pointers = png_malloc(png_ptr,
|
||||||
height*(sizeof (png_bytep)));
|
height*(sizeof (png_bytep)));
|
||||||
|
|
||||||
for (int i=0; i<height, i++)
|
for (int i = 0; i < height, i++)
|
||||||
row_pointers[i]=NULL; /* security precaution */
|
row_pointers[i] = NULL; /* security precaution */
|
||||||
|
|
||||||
for (int i=0; i<height, i++)
|
for (int i = 0; i < height, i++)
|
||||||
row_pointers[i]=png_malloc(png_ptr,
|
row_pointers[i] = png_malloc(png_ptr,
|
||||||
width*pixel_size);
|
width*pixel_size);
|
||||||
|
|
||||||
png_set_rows(png_ptr, info_ptr, &row_pointers);
|
png_set_rows(png_ptr, info_ptr, &row_pointers);
|
||||||
@ -1205,14 +1203,14 @@ row_pointers[i] to point into the proper places in your block, but first
|
|||||||
be sure that your platform is able to allocate such a large buffer:
|
be sure that your platform is able to allocate such a large buffer:
|
||||||
|
|
||||||
/* Guard against integer overflow */
|
/* Guard against integer overflow */
|
||||||
if (height > PNG_SIZE_MAX/(width*pixel_size)) {
|
if (height > PNG_SIZE_MAX/(width*pixel_size))
|
||||||
png_error(png_ptr,"image_data buffer would be too large");
|
png_error(png_ptr, "image_data buffer would be too large");
|
||||||
}
|
|
||||||
|
|
||||||
png_bytep buffer=png_malloc(png_ptr,height*width*pixel_size);
|
png_bytep buffer = png_malloc(png_ptr,
|
||||||
|
height*width*pixel_size);
|
||||||
|
|
||||||
for (int i=0; i<height, i++)
|
for (int i = 0; i < height, i++)
|
||||||
row_pointers[i]=buffer+i*width*pixel_size;
|
row_pointers[i] = buffer + i*width*pixel_size;
|
||||||
|
|
||||||
png_set_rows(png_ptr, info_ptr, &row_pointers);
|
png_set_rows(png_ptr, info_ptr, &row_pointers);
|
||||||
|
|
||||||
@ -1465,25 +1463,24 @@ png_set_rgb_to_gray()).
|
|||||||
non-paletted images (PNG_INFO_tRNS)
|
non-paletted images (PNG_INFO_tRNS)
|
||||||
|
|
||||||
png_get_eXIf_1(png_ptr, info_ptr, &num_exif, &exif);
|
png_get_eXIf_1(png_ptr, info_ptr, &num_exif, &exif);
|
||||||
(PNG_INFO_eXIf)
|
|
||||||
|
|
||||||
exif - Exif profile (array of png_byte)
|
exif - Exif profile (array of png_byte)
|
||||||
|
(PNG_INFO_eXIf)
|
||||||
|
|
||||||
png_get_hIST(png_ptr, info_ptr, &hist);
|
png_get_hIST(png_ptr, info_ptr, &hist);
|
||||||
(PNG_INFO_hIST)
|
|
||||||
|
|
||||||
hist - histogram of palette (array of
|
hist - histogram of palette (array of
|
||||||
png_uint_16)
|
png_uint_16) (PNG_INFO_hIST)
|
||||||
|
|
||||||
png_get_tIME(png_ptr, info_ptr, &mod_time);
|
png_get_tIME(png_ptr, info_ptr, &mod_time);
|
||||||
|
|
||||||
mod_time - time image was last modified
|
mod_time - time image was last modified
|
||||||
(PNG_VALID_tIME)
|
(PNG_INFO_tIME)
|
||||||
|
|
||||||
png_get_bKGD(png_ptr, info_ptr, &background);
|
png_get_bKGD(png_ptr, info_ptr, &background);
|
||||||
|
|
||||||
background - background color (of type
|
background - background color (of type
|
||||||
png_color_16p) (PNG_VALID_bKGD)
|
png_color_16p) (PNG_INFO_bKGD)
|
||||||
valid 16-bit red, green and blue
|
valid 16-bit red, green and blue
|
||||||
values, regardless of color_type
|
values, regardless of color_type
|
||||||
|
|
||||||
@ -1743,13 +1740,13 @@ grayscale images with bit depths of 2 or 4 or if there is a multiple-image
|
|||||||
viewing application that wishes to treat all images in the same way.
|
viewing application that wishes to treat all images in the same way.
|
||||||
|
|
||||||
if (color_type == PNG_COLOR_TYPE_PALETTE)
|
if (color_type == PNG_COLOR_TYPE_PALETTE)
|
||||||
png_set_palette_to_rgb(png_ptr);
|
png_set_palette_to_rgb(png_ptr);
|
||||||
|
|
||||||
if (png_get_valid(png_ptr, info_ptr,
|
if (png_get_valid(png_ptr, info_ptr, PNG_INFO_tRNS))
|
||||||
PNG_INFO_tRNS)) png_set_tRNS_to_alpha(png_ptr);
|
png_set_tRNS_to_alpha(png_ptr);
|
||||||
|
|
||||||
if (color_type == PNG_COLOR_TYPE_GRAY &&
|
if (color_type == PNG_COLOR_TYPE_GRAY && bit_depth < 8)
|
||||||
bit_depth < 8) png_set_expand_gray_1_2_4_to_8(png_ptr);
|
png_set_expand_gray_1_2_4_to_8(png_ptr);
|
||||||
|
|
||||||
The first two functions are actually aliases for png_set_expand(), added
|
The first two functions are actually aliases for png_set_expand(), added
|
||||||
in libpng version 1.0.4, with the function names expanded to improve code
|
in libpng version 1.0.4, with the function names expanded to improve code
|
||||||
@ -1764,18 +1761,20 @@ png_set_expand(); however, the resultant channels have 16 bits rather than 8.
|
|||||||
Use this when the output color or gray channels are made linear to avoid fairly
|
Use this when the output color or gray channels are made linear to avoid fairly
|
||||||
severe accuracy loss.
|
severe accuracy loss.
|
||||||
|
|
||||||
if (bit_depth < 16)
|
if (bit_depth < 16)
|
||||||
png_set_expand_16(png_ptr);
|
png_set_expand_16(png_ptr);
|
||||||
|
|
||||||
PNG can have files with 16 bits per channel. If you only can handle
|
PNG can have files with 16 bits per channel. If you only can handle
|
||||||
8 bits per channel, this will strip the pixels down to 8-bit.
|
8 bits per channel, this will strip the pixels down to 8-bit.
|
||||||
|
|
||||||
if (bit_depth == 16)
|
if (bit_depth == 16)
|
||||||
|
{
|
||||||
#if PNG_LIBPNG_VER >= 10504
|
#if PNG_LIBPNG_VER >= 10504
|
||||||
png_set_scale_16(png_ptr);
|
png_set_scale_16(png_ptr);
|
||||||
#else
|
#else
|
||||||
png_set_strip_16(png_ptr);
|
png_set_strip_16(png_ptr);
|
||||||
#endif
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
(The more accurate "png_set_scale_16()" API became available in libpng version
|
(The more accurate "png_set_scale_16()" API became available in libpng version
|
||||||
1.5.4).
|
1.5.4).
|
||||||
@ -1901,7 +1900,7 @@ Note that png_set_filler() does not change the color type. If you want
|
|||||||
to do that, you can add a true alpha channel with
|
to do that, you can add a true alpha channel with
|
||||||
|
|
||||||
if (color_type == PNG_COLOR_TYPE_RGB ||
|
if (color_type == PNG_COLOR_TYPE_RGB ||
|
||||||
color_type == PNG_COLOR_TYPE_GRAY)
|
color_type == PNG_COLOR_TYPE_GRAY)
|
||||||
png_set_add_alpha(png_ptr, filler, PNG_FILLER_AFTER);
|
png_set_add_alpha(png_ptr, filler, PNG_FILLER_AFTER);
|
||||||
|
|
||||||
where "filler" contains the alpha value to assign to each pixel.
|
where "filler" contains the alpha value to assign to each pixel.
|
||||||
@ -1926,7 +1925,7 @@ with alpha.
|
|||||||
if (color_type == PNG_COLOR_TYPE_RGB ||
|
if (color_type == PNG_COLOR_TYPE_RGB ||
|
||||||
color_type == PNG_COLOR_TYPE_RGB_ALPHA)
|
color_type == PNG_COLOR_TYPE_RGB_ALPHA)
|
||||||
png_set_rgb_to_gray(png_ptr, error_action,
|
png_set_rgb_to_gray(png_ptr, error_action,
|
||||||
double red_weight, double green_weight);
|
(double)red_weight, (double)green_weight);
|
||||||
|
|
||||||
error_action = 1: silently do the conversion
|
error_action = 1: silently do the conversion
|
||||||
|
|
||||||
@ -1949,8 +1948,8 @@ In the corresponding fixed point API the red_weight and green_weight values are
|
|||||||
simply scaled by 100,000:
|
simply scaled by 100,000:
|
||||||
|
|
||||||
png_set_rgb_to_gray(png_ptr, error_action,
|
png_set_rgb_to_gray(png_ptr, error_action,
|
||||||
png_fixed_point red_weight,
|
(png_fixed_point)red_weight,
|
||||||
png_fixed_point green_weight);
|
(png_fixed_point)green_weight);
|
||||||
|
|
||||||
If you have set error_action = 1 or 2, you can
|
If you have set error_action = 1 or 2, you can
|
||||||
later check whether the image really was gray, after processing
|
later check whether the image really was gray, after processing
|
||||||
@ -2186,9 +2185,8 @@ do your own check for number_of_rows*width*pixel_size if you are using
|
|||||||
a multiple-row buffer:
|
a multiple-row buffer:
|
||||||
|
|
||||||
/* Guard against integer overflow */
|
/* Guard against integer overflow */
|
||||||
if (number_of_rows > PNG_SIZE_MAX/(width*pixel_size)) {
|
if (number_of_rows > PNG_SIZE_MAX/(width*pixel_size))
|
||||||
png_error(png_ptr,"image_data buffer would be too large");
|
png_error(png_ptr, "image_data buffer would be too large");
|
||||||
}
|
|
||||||
|
|
||||||
Remember: Before you call png_read_update_info(), the png_get_*()
|
Remember: Before you call png_read_update_info(), the png_get_*()
|
||||||
functions return the values corresponding to the original PNG image.
|
functions return the values corresponding to the original PNG image.
|
||||||
@ -2408,12 +2406,11 @@ separate.
|
|||||||
|
|
||||||
if (!end_info)
|
if (!end_info)
|
||||||
{
|
{
|
||||||
png_destroy_read_struct(&png_ptr, &info_ptr,
|
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
|
||||||
(png_infopp)NULL);
|
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
png_read_end(png_ptr, end_info);
|
png_read_end(png_ptr, end_info);
|
||||||
|
|
||||||
If you are not interested, you should still call png_read_end()
|
If you are not interested, you should still call png_read_end()
|
||||||
but you can pass NULL, avoiding the need to create an end_info structure.
|
but you can pass NULL, avoiding the need to create an end_info structure.
|
||||||
@ -2421,7 +2418,7 @@ If you do this, libpng will not process any chunks after IDAT other than
|
|||||||
skipping over them and perhaps (depending on whether you have called
|
skipping over them and perhaps (depending on whether you have called
|
||||||
png_set_crc_action) checking their CRCs while looking for the IEND chunk.
|
png_set_crc_action) checking their CRCs while looking for the IEND chunk.
|
||||||
|
|
||||||
png_read_end(png_ptr, (png_infop)NULL);
|
png_read_end(png_ptr, NULL);
|
||||||
|
|
||||||
If you don't call png_read_end(), then your file pointer will be
|
If you don't call png_read_end(), then your file pointer will be
|
||||||
left pointing to the first chunk after the last IDAT, which is probably
|
left pointing to the first chunk after the last IDAT, which is probably
|
||||||
@ -2430,13 +2427,11 @@ the PNG datastream.
|
|||||||
|
|
||||||
When you are done, you can free all memory allocated by libpng like this:
|
When you are done, you can free all memory allocated by libpng like this:
|
||||||
|
|
||||||
png_destroy_read_struct(&png_ptr, &info_ptr,
|
png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
|
||||||
&end_info);
|
|
||||||
|
|
||||||
or, if you didn't create an end_info structure,
|
or, if you didn't create an end_info structure,
|
||||||
|
|
||||||
png_destroy_read_struct(&png_ptr, &info_ptr,
|
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
|
||||||
(png_infopp)NULL);
|
|
||||||
|
|
||||||
It is also possible to individually free the info_ptr members that
|
It is also possible to individually free the info_ptr members that
|
||||||
point to libpng-allocated storage with the following function:
|
point to libpng-allocated storage with the following function:
|
||||||
@ -2556,15 +2551,13 @@ png_infop info_ptr;
|
|||||||
|
|
||||||
if (!info_ptr)
|
if (!info_ptr)
|
||||||
{
|
{
|
||||||
png_destroy_read_struct(&png_ptr,
|
png_destroy_read_struct(&png_ptr, NULL, NULL);
|
||||||
(png_infopp)NULL, (png_infopp)NULL);
|
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (setjmp(png_jmpbuf(png_ptr)))
|
if (setjmp(png_jmpbuf(png_ptr)))
|
||||||
{
|
{
|
||||||
png_destroy_read_struct(&png_ptr, &info_ptr,
|
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
|
||||||
(png_infopp)NULL);
|
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2597,8 +2590,7 @@ png_infop info_ptr;
|
|||||||
{
|
{
|
||||||
if (setjmp(png_jmpbuf(png_ptr)))
|
if (setjmp(png_jmpbuf(png_ptr)))
|
||||||
{
|
{
|
||||||
png_destroy_read_struct(&png_ptr, &info_ptr,
|
png_destroy_read_struct(&png_ptr, &info_ptr, NULL);
|
||||||
(png_infopp)NULL);
|
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2763,8 +2755,7 @@ both "png_ptr"; you can call them anything you like, such as
|
|||||||
png_infop info_ptr = png_create_info_struct(png_ptr);
|
png_infop info_ptr = png_create_info_struct(png_ptr);
|
||||||
if (!info_ptr)
|
if (!info_ptr)
|
||||||
{
|
{
|
||||||
png_destroy_write_struct(&png_ptr,
|
png_destroy_write_struct(&png_ptr, NULL);
|
||||||
(png_infopp)NULL);
|
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2790,7 +2781,7 @@ section below for more information on the libpng error handling.
|
|||||||
|
|
||||||
if (setjmp(png_jmpbuf(png_ptr)))
|
if (setjmp(png_jmpbuf(png_ptr)))
|
||||||
{
|
{
|
||||||
png_destroy_write_struct(&png_ptr, &info_ptr);
|
png_destroy_write_struct(&png_ptr, &info_ptr);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
return ERROR;
|
return ERROR;
|
||||||
}
|
}
|
||||||
@ -2844,9 +2835,9 @@ a progress meter or the like. It's demonstrated in pngtest.c.
|
|||||||
You must supply a function
|
You must supply a function
|
||||||
|
|
||||||
void write_row_callback(png_structp png_ptr, png_uint_32 row,
|
void write_row_callback(png_structp png_ptr, png_uint_32 row,
|
||||||
int pass);
|
int pass)
|
||||||
{
|
{
|
||||||
/* put your code here */
|
/* put your code here */
|
||||||
}
|
}
|
||||||
|
|
||||||
(You can give it another name that you like instead of "write_row_callback")
|
(You can give it another name that you like instead of "write_row_callback")
|
||||||
@ -3116,8 +3107,8 @@ width, height, bit_depth, and color_type must be the same in each call.
|
|||||||
|
|
||||||
png_set_eXIf_1(png_ptr, info_ptr, num_exif, exif);
|
png_set_eXIf_1(png_ptr, info_ptr, num_exif, exif);
|
||||||
|
|
||||||
exif - Exif profile (array of
|
exif - Exif profile (array of png_byte)
|
||||||
png_byte) (PNG_INFO_eXIf)
|
(PNG_INFO_eXIf)
|
||||||
|
|
||||||
png_set_hIST(png_ptr, info_ptr, hist);
|
png_set_hIST(png_ptr, info_ptr, hist);
|
||||||
|
|
||||||
@ -3127,12 +3118,12 @@ width, height, bit_depth, and color_type must be the same in each call.
|
|||||||
png_set_tIME(png_ptr, info_ptr, mod_time);
|
png_set_tIME(png_ptr, info_ptr, mod_time);
|
||||||
|
|
||||||
mod_time - time image was last modified
|
mod_time - time image was last modified
|
||||||
(PNG_VALID_tIME)
|
(PNG_INFO_tIME)
|
||||||
|
|
||||||
png_set_bKGD(png_ptr, info_ptr, background);
|
png_set_bKGD(png_ptr, info_ptr, background);
|
||||||
|
|
||||||
background - background color (of type
|
background - background color (of type
|
||||||
png_color_16p) (PNG_VALID_bKGD)
|
png_color_16p) (PNG_INFO_bKGD)
|
||||||
|
|
||||||
png_set_text(png_ptr, info_ptr, text_ptr, num_text);
|
png_set_text(png_ptr, info_ptr, text_ptr, num_text);
|
||||||
|
|
||||||
@ -4218,7 +4209,7 @@ png_create_read_struct_2() or png_create_write_struct_2() to register your
|
|||||||
own functions as described above. These functions also provide a void
|
own functions as described above. These functions also provide a void
|
||||||
pointer that can be retrieved via
|
pointer that can be retrieved via
|
||||||
|
|
||||||
mem_ptr=png_get_mem_ptr(png_ptr);
|
mem_ptr = png_get_mem_ptr(png_ptr);
|
||||||
|
|
||||||
Your replacement memory functions must have prototypes as follows:
|
Your replacement memory functions must have prototypes as follows:
|
||||||
|
|
||||||
@ -4515,7 +4506,7 @@ When PNG_DEBUG is defined but is zero, the macros aren't defined, but you
|
|||||||
can still use PNG_DEBUG to control your own debugging:
|
can still use PNG_DEBUG to control your own debugging:
|
||||||
|
|
||||||
#ifdef PNG_DEBUG
|
#ifdef PNG_DEBUG
|
||||||
fprintf(stderr, ...
|
fprintf(stderr, ...);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
When PNG_DEBUG = 1, the macros are defined, but only png_debug statements
|
When PNG_DEBUG = 1, the macros are defined, but only png_debug statements
|
||||||
@ -4692,7 +4683,7 @@ deprecated since libpng-1.0.16 and libpng-1.2.6.
|
|||||||
The function
|
The function
|
||||||
png_check_sig(sig, num)
|
png_check_sig(sig, num)
|
||||||
was replaced with
|
was replaced with
|
||||||
!png_sig_cmp(sig, 0, num)
|
png_sig_cmp(sig, 0, num) == 0
|
||||||
It has been deprecated since libpng-0.90.
|
It has been deprecated since libpng-0.90.
|
||||||
|
|
||||||
The function
|
The function
|
||||||
@ -4756,8 +4747,8 @@ png_get_mmx_bitdepth_threshold(), png_get_mmx_rowbytes_threshold(),
|
|||||||
png_set_asm_flags(), and png_mmx_supported()
|
png_set_asm_flags(), and png_mmx_supported()
|
||||||
|
|
||||||
We removed the obsolete png_check_sig(), png_memcpy_check(), and
|
We removed the obsolete png_check_sig(), png_memcpy_check(), and
|
||||||
png_memset_check() functions. Instead use !png_sig_cmp(), memcpy(),
|
png_memset_check() functions. Instead use png_sig_cmp() == 0,
|
||||||
and memset(), respectively.
|
memcpy(), and memset(), respectively.
|
||||||
|
|
||||||
The function png_set_gray_1_2_4_to_8() was removed. It has been
|
The function png_set_gray_1_2_4_to_8() was removed. It has been
|
||||||
deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with
|
deprecated since libpng-1.0.18 and 1.2.9, when it was replaced with
|
||||||
@ -5239,7 +5230,7 @@ changed, and is unaffected by conditional compilation macros. It is the
|
|||||||
best choice for use in configure scripts for detecting the presence of any
|
best choice for use in configure scripts for detecting the presence of any
|
||||||
libpng version since 0.88. In an autoconf "configure.in" you could use
|
libpng version since 0.88. In an autoconf "configure.in" you could use
|
||||||
|
|
||||||
AC_CHECK_LIB(png, png_get_io_ptr, ...
|
AC_CHECK_LIB(png, png_get_io_ptr, ...)
|
||||||
|
|
||||||
XV. Source code repository
|
XV. Source code repository
|
||||||
|
|
||||||
@ -5248,12 +5239,12 @@ control. The git repository was built from old libpng-x.y.z.tar.gz files
|
|||||||
going back to version 0.70. You can access the git repository (read only)
|
going back to version 0.70. You can access the git repository (read only)
|
||||||
at
|
at
|
||||||
|
|
||||||
https://github.com/glennrp/libpng or
|
https://github.com/pnggroup/libpng or
|
||||||
https://git.code.sf.net/p/libpng/code.git
|
https://git.code.sf.net/p/libpng/code.git
|
||||||
|
|
||||||
or you can browse it with a web browser at
|
or you can browse it with a web browser at
|
||||||
|
|
||||||
https://github.com/glennrp/libpng or
|
https://github.com/pnggroup/libpng or
|
||||||
https://sourceforge.net/p/libpng/code/ci/libpng16/tree/
|
https://sourceforge.net/p/libpng/code/ci/libpng16/tree/
|
||||||
|
|
||||||
Patches can be sent to png-mng-implement at lists.sourceforge.net or
|
Patches can be sent to png-mng-implement at lists.sourceforge.net or
|
||||||
@ -5263,7 +5254,7 @@ uploaded to the libpng bug tracker at
|
|||||||
|
|
||||||
or as a "pull request" to
|
or as a "pull request" to
|
||||||
|
|
||||||
https://github.com/glennrp/libpng/pulls
|
https://github.com/pnggroup/libpng/pulls
|
||||||
|
|
||||||
We also accept patches built from the tar or zip distributions, and
|
We also accept patches built from the tar or zip distributions, and
|
||||||
simple verbal descriptions of bug fixes, reported either to the
|
simple verbal descriptions of bug fixes, reported either to the
|
||||||
|
4
src/3rdparty/libpng/png.c
vendored
4
src/3rdparty/libpng/png.c
vendored
@ -14,7 +14,7 @@
|
|||||||
#include "pngpriv.h"
|
#include "pngpriv.h"
|
||||||
|
|
||||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||||
typedef png_libpng_version_1_6_41 Your_png_h_is_not_version_1_6_41;
|
typedef png_libpng_version_1_6_42 Your_png_h_is_not_version_1_6_42;
|
||||||
|
|
||||||
/* Tells libpng that we have already handled the first "num_bytes" bytes
|
/* Tells libpng that we have already handled the first "num_bytes" bytes
|
||||||
* of the PNG file signature. If the PNG data is embedded into another
|
* of the PNG file signature. If the PNG data is embedded into another
|
||||||
@ -794,7 +794,7 @@ png_get_copyright(png_const_structrp png_ptr)
|
|||||||
return PNG_STRING_COPYRIGHT
|
return PNG_STRING_COPYRIGHT
|
||||||
#else
|
#else
|
||||||
return PNG_STRING_NEWLINE \
|
return PNG_STRING_NEWLINE \
|
||||||
"libpng version 1.6.41" PNG_STRING_NEWLINE \
|
"libpng version 1.6.42" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 2018-2024 Cosmin Truta" PNG_STRING_NEWLINE \
|
"Copyright (c) 2018-2024 Cosmin Truta" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \
|
"Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson" \
|
||||||
PNG_STRING_NEWLINE \
|
PNG_STRING_NEWLINE \
|
||||||
|
16
src/3rdparty/libpng/png.h
vendored
16
src/3rdparty/libpng/png.h
vendored
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* png.h - header file for PNG reference library
|
/* png.h - header file for PNG reference library
|
||||||
*
|
*
|
||||||
* libpng version 1.6.41
|
* libpng version 1.6.42
|
||||||
*
|
*
|
||||||
* Copyright (c) 2018-2024 Cosmin Truta
|
* Copyright (c) 2018-2024 Cosmin Truta
|
||||||
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson
|
||||||
@ -15,7 +15,7 @@
|
|||||||
* libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
|
* libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger
|
||||||
* libpng versions 0.97, January 1998, through 1.6.35, July 2018:
|
* libpng versions 0.97, January 1998, through 1.6.35, July 2018:
|
||||||
* Glenn Randers-Pehrson
|
* Glenn Randers-Pehrson
|
||||||
* libpng versions 1.6.36, December 2018, through 1.6.41, January 2024:
|
* libpng versions 1.6.36, December 2018, through 1.6.42, January 2024:
|
||||||
* Cosmin Truta
|
* Cosmin Truta
|
||||||
* See also "Contributing Authors", below.
|
* See also "Contributing Authors", below.
|
||||||
*/
|
*/
|
||||||
@ -239,7 +239,7 @@
|
|||||||
* ...
|
* ...
|
||||||
* 1.5.30 15 10530 15.so.15.30[.0]
|
* 1.5.30 15 10530 15.so.15.30[.0]
|
||||||
* ...
|
* ...
|
||||||
* 1.6.41 16 10641 16.so.16.41[.0]
|
* 1.6.42 16 10641 16.so.16.41[.0]
|
||||||
*
|
*
|
||||||
* Henceforth the source version will match the shared-library major and
|
* Henceforth the source version will match the shared-library major and
|
||||||
* minor numbers; the shared-library major version number will be used for
|
* minor numbers; the shared-library major version number will be used for
|
||||||
@ -278,7 +278,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Version information for png.h - this should match the version in png.c */
|
/* Version information for png.h - this should match the version in png.c */
|
||||||
#define PNG_LIBPNG_VER_STRING "1.6.41"
|
#define PNG_LIBPNG_VER_STRING "1.6.42"
|
||||||
#define PNG_HEADER_VERSION_STRING " libpng version " PNG_LIBPNG_VER_STRING "\n"
|
#define PNG_HEADER_VERSION_STRING " libpng version " PNG_LIBPNG_VER_STRING "\n"
|
||||||
|
|
||||||
#define PNG_LIBPNG_VER_SONUM 16
|
#define PNG_LIBPNG_VER_SONUM 16
|
||||||
@ -318,7 +318,7 @@
|
|||||||
* From version 1.0.1 it is:
|
* From version 1.0.1 it is:
|
||||||
* XXYYZZ, where XX=major, YY=minor, ZZ=release
|
* XXYYZZ, where XX=major, YY=minor, ZZ=release
|
||||||
*/
|
*/
|
||||||
#define PNG_LIBPNG_VER 10641 /* 1.6.41 */
|
#define PNG_LIBPNG_VER 10641 /* 1.6.42 */
|
||||||
|
|
||||||
/* Library configuration: these options cannot be changed after
|
/* Library configuration: these options cannot be changed after
|
||||||
* the library has been built.
|
* the library has been built.
|
||||||
@ -428,7 +428,7 @@ extern "C" {
|
|||||||
/* This triggers a compiler error in png.c, if png.c and png.h
|
/* This triggers a compiler error in png.c, if png.c and png.h
|
||||||
* do not agree upon the version number.
|
* do not agree upon the version number.
|
||||||
*/
|
*/
|
||||||
typedef char* png_libpng_version_1_6_41;
|
typedef char* png_libpng_version_1_6_42;
|
||||||
|
|
||||||
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
|
/* Basic control structions. Read libpng-manual.txt or libpng.3 for more info.
|
||||||
*
|
*
|
||||||
@ -914,9 +914,9 @@ PNG_EXPORT(3, int, png_sig_cmp, (png_const_bytep sig, size_t start,
|
|||||||
size_t num_to_check));
|
size_t num_to_check));
|
||||||
|
|
||||||
/* Simple signature checking function. This is the same as calling
|
/* Simple signature checking function. This is the same as calling
|
||||||
* png_check_sig(sig, n) := (png_sig_cmp(sig, 0, n) != 0).
|
* png_check_sig(sig, n) := (png_sig_cmp(sig, 0, n) == 0).
|
||||||
*/
|
*/
|
||||||
#define png_check_sig(sig, n) (png_sig_cmp((sig), 0, (n)) != 0)
|
#define png_check_sig(sig, n) (png_sig_cmp((sig), 0, (n)) == 0) /* DEPRECATED */
|
||||||
|
|
||||||
/* Allocate and initialize png_ptr struct for reading, and any other memory. */
|
/* Allocate and initialize png_ptr struct for reading, and any other memory. */
|
||||||
PNG_EXPORTA(4, png_structp, png_create_read_struct,
|
PNG_EXPORTA(4, png_structp, png_create_read_struct,
|
||||||
|
2
src/3rdparty/libpng/pngconf.h
vendored
2
src/3rdparty/libpng/pngconf.h
vendored
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngconf.h - machine-configurable file for libpng
|
/* pngconf.h - machine-configurable file for libpng
|
||||||
*
|
*
|
||||||
* libpng version 1.6.41
|
* libpng version 1.6.42
|
||||||
*
|
*
|
||||||
* Copyright (c) 2018-2024 Cosmin Truta
|
* Copyright (c) 2018-2024 Cosmin Truta
|
||||||
* Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2002,2004,2006-2016,2018 Glenn Randers-Pehrson
|
||||||
|
2
src/3rdparty/libpng/pnglibconf.h
vendored
2
src/3rdparty/libpng/pnglibconf.h
vendored
@ -1,6 +1,6 @@
|
|||||||
/* pnglibconf.h - library build configuration */
|
/* pnglibconf.h - library build configuration */
|
||||||
|
|
||||||
/* libpng version 1.6.41 */
|
/* libpng version 1.6.42 */
|
||||||
|
|
||||||
/* Copyright (c) 2018-2024 Cosmin Truta */
|
/* Copyright (c) 2018-2024 Cosmin Truta */
|
||||||
/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */
|
/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */
|
||||||
|
10
src/3rdparty/libpng/pngpriv.h
vendored
10
src/3rdparty/libpng/pngpriv.h
vendored
@ -36,7 +36,7 @@
|
|||||||
* still required (as of 2011-05-02.)
|
* still required (as of 2011-05-02.)
|
||||||
*/
|
*/
|
||||||
#ifndef _POSIX_SOURCE
|
#ifndef _POSIX_SOURCE
|
||||||
# define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */
|
# define _POSIX_SOURCE 1 /* Just the POSIX 1003.1 and C89 APIs */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef PNG_VERSION_INFO_ONLY
|
#ifndef PNG_VERSION_INFO_ONLY
|
||||||
@ -190,7 +190,8 @@
|
|||||||
#endif /* PNG_ARM_NEON_OPT > 0 */
|
#endif /* PNG_ARM_NEON_OPT > 0 */
|
||||||
|
|
||||||
#ifndef PNG_MIPS_MSA_OPT
|
#ifndef PNG_MIPS_MSA_OPT
|
||||||
# if defined(__mips_msa) && (__mips_isa_rev >= 5) && defined(PNG_ALIGNED_MEMORY_SUPPORTED)
|
# if defined(__mips_msa) && (__mips_isa_rev >= 5) && \
|
||||||
|
defined(PNG_ALIGNED_MEMORY_SUPPORTED)
|
||||||
# define PNG_MIPS_MSA_OPT 2
|
# define PNG_MIPS_MSA_OPT 2
|
||||||
# else
|
# else
|
||||||
# define PNG_MIPS_MSA_OPT 0
|
# define PNG_MIPS_MSA_OPT 0
|
||||||
@ -199,7 +200,8 @@
|
|||||||
|
|
||||||
#ifndef PNG_MIPS_MMI_OPT
|
#ifndef PNG_MIPS_MMI_OPT
|
||||||
# ifdef PNG_MIPS_MMI
|
# ifdef PNG_MIPS_MMI
|
||||||
# if defined(__mips_loongson_mmi) && (_MIPS_SIM == _ABI64) && defined(PNG_ALIGNED_MEMORY_SUPPORTED)
|
# if defined(__mips_loongson_mmi) && (_MIPS_SIM == _ABI64) && \
|
||||||
|
defined(PNG_ALIGNED_MEMORY_SUPPORTED)
|
||||||
# define PNG_MIPS_MMI_OPT 1
|
# define PNG_MIPS_MMI_OPT 1
|
||||||
# else
|
# else
|
||||||
# define PNG_MIPS_MMI_OPT 0
|
# define PNG_MIPS_MMI_OPT 0
|
||||||
@ -231,7 +233,7 @@
|
|||||||
* enable SSE optimizations. This means that these optimizations will
|
* enable SSE optimizations. This means that these optimizations will
|
||||||
* be off by default. See contrib/intel for more details.
|
* be off by default. See contrib/intel for more details.
|
||||||
*/
|
*/
|
||||||
# if defined(__SSE4_1__) || defined(__AVX__) || defined(__SSSE3__) || \
|
# if defined(__SSE4_1__) || defined(__AVX__) || defined(__SSSE3__) || \
|
||||||
defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \
|
defined(__SSE2__) || defined(_M_X64) || defined(_M_AMD64) || \
|
||||||
(defined(_M_IX86_FP) && _M_IX86_FP >= 2)
|
(defined(_M_IX86_FP) && _M_IX86_FP >= 2)
|
||||||
# define PNG_INTEL_SSE_OPT 1
|
# define PNG_INTEL_SSE_OPT 1
|
||||||
|
4
src/3rdparty/libpng/qt_attribution.json
vendored
4
src/3rdparty/libpng/qt_attribution.json
vendored
@ -7,8 +7,8 @@
|
|||||||
|
|
||||||
"Description": "libpng is the official PNG reference library.",
|
"Description": "libpng is the official PNG reference library.",
|
||||||
"Homepage": "http://www.libpng.org/pub/png/libpng.html",
|
"Homepage": "http://www.libpng.org/pub/png/libpng.html",
|
||||||
"Version": "1.6.41",
|
"Version": "1.6.42",
|
||||||
"DownloadLocation": "https://download.sourceforge.net/libpng/libpng-1.6.41.tar.xz",
|
"DownloadLocation": "https://download.sourceforge.net/libpng/libpng-1.6.42.tar.xz",
|
||||||
|
|
||||||
"License": "libpng License and PNG Reference Library version 2",
|
"License": "libpng License and PNG Reference Library version 2",
|
||||||
"LicenseId": "Libpng AND libpng-2.0",
|
"LicenseId": "Libpng AND libpng-2.0",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user