diff --git a/ANNOUNCE b/ANNOUNCE index 771412f81..3c0c8fff1 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.7.0beta81 - May 31, 2016 +Libpng 1.7.0beta81 - June 7, 2016 This is not intended to be a public release. It will be replaced within a few weeks by a public version or by another test version. @@ -1290,7 +1290,7 @@ Version 1.7.0beta80 [May 6, 2016] unreachable code in pz_default_settings and eliminated a spurious warning in pngcp for small files. -Version 1.7.0beta81 [May 31, 2016] +Version 1.7.0beta81 [June 7, 2016] Check for CLOCK_PROCESS_CPUTIME_ID when building /contrib/libtests/timepng. Otherwise it does not build on platforms that don't supply clock_gettime(). Add check for clock_gettime() in Makefile.am and configure.ac @@ -1329,6 +1329,33 @@ Version 1.7.0beta81 [May 31, 2016] selection algorithm is being refined (the overall results are worse than not doing any filtering). Port contrib/libtests/pngvalid.c from libpng16. + PNG compression level setting API: this allows the various compression + settings controlling deflate, fitlering, and so on to be set via a single + setting with six values. This is currently documented in png.h ("Write + compression settings"). + Internally the compression settings have been tuned both for the overall + setting and for any specific settings made by the original APIs. + APIs to control iCCP chunk compression separately have been added. + contrib/examples/pngcp.c has been modified to accomodate the new compression + setting and to include options for separate control of iCCP chunk + compression. + The new "png_setting" ABI has been modified to accomodate a wider range of + settings and most of the old compression control ABIs have been replaced by + function-like macros with the same API which call png_setting. This is an + API check in 1.7.0 for png_setting (alone). png_setting now handles all + of png_set_option. This eliminates 19 ABIs at the cost of adding 1 + (png_setting). + CRC and benign error checking has been updated internally to use bit-fields + and the CRC calculation skip when the CRC is not used has been improved + slightly to avoid the initialization of the CRC. A new png_setting based + API allows more detailed control of benign error/warning messages (this + may change, the internal error handling seems too complex.) The + ERROR_NUMBERS support has been removed with the intent of implementing + proper i18n. + The memcpy-size-0 issue in png_push_fill_buffer has been fixed, with an + appropriate debug() assert if a fill for 0 bytes occurs. + Most PNG_FLAG_ values for png_struct::flags have been eliminated (as a + result of the benign error handling changes). Only one remains. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index e61f493e8..125e34852 100644 --- a/CHANGES +++ b/CHANGES @@ -5590,7 +5590,7 @@ Version 1.7.0beta80 [May 6, 2016] unreachable code in pz_default_settings and eliminated a spurious warning in pngcp for small files. -Version 1.7.0beta81 [May 31, 2016] +Version 1.7.0beta81 [June 7, 2016] Check for CLOCK_PROCESS_CPUTIME_ID when building /contrib/libtests/timepng. Otherwise it does not build on platforms that don't supply clock_gettime(). Add check for clock_gettime() in Makefile.am and configure.ac @@ -5629,6 +5629,33 @@ Version 1.7.0beta81 [May 31, 2016] selection algorithm is being refined (the overall results are worse than not doing any filtering). Port contrib/libtests/pngvalid.c from libpng16. + PNG compression level setting API: this allows the various compression + settings controlling deflate, fitlering, and so on to be set via a single + setting with six values. This is currently documented in png.h ("Write + compression settings"). + Internally the compression settings have been tuned both for the overall + setting and for any specific settings made by the original APIs. + APIs to control iCCP chunk compression separately have been added. + contrib/examples/pngcp.c has been modified to accomodate the new compression + setting and to include options for separate control of iCCP chunk + compression. + The new "png_setting" ABI has been modified to accomodate a wider range of + settings and most of the old compression control ABIs have been replaced by + function-like macros with the same API which call png_setting. This is an + API check in 1.7.0 for png_setting (alone). png_setting now handles all + of png_set_option. This eliminates 19 ABIs at the cost of adding 1 + (png_setting). + CRC and benign error checking has been updated internally to use bit-fields + and the CRC calculation skip when the CRC is not used has been improved + slightly to avoid the initialization of the CRC. A new png_setting based + API allows more detailed control of benign error/warning messages (this + may change, the internal error handling seems too complex.) The + ERROR_NUMBERS support has been removed with the intent of implementing + proper i18n. + The memcpy-size-0 issue in png_push_fill_buffer has been fixed, with an + appropriate debug() assert if a fill for 0 bytes occurs. + Most PNG_FLAG_ values for png_struct::flags have been eliminated (as a + result of the benign error handling changes). Only one remains. Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/png.h b/png.h index b2c0072a0..b96856abe 100644 --- a/png.h +++ b/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.7.0beta81, May 21, 2016 + * libpng version 1.7.0beta81, June 7, 2016 * * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -12,7 +12,7 @@ * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.7.0beta81, May 21, 2016: + * libpng versions 0.97, January 1998, through 1.7.0beta81, June 7, 2016: * Glenn Randers-Pehrson. * See also "Contributing Authors", below. */ @@ -25,7 +25,7 @@ * * This code is released under the libpng license. * - * libpng versions 1.0.7, July 1, 2000, through 1.7.0beta81, May 21, 2016, are + * libpng versions 1.0.7, July 1, 2000, through 1.7.0beta81, June 7, 2016, are * Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are * derived from libpng-1.0.6, and are distributed according to the same * disclaimer and license as libpng-1.0.6 with the following individuals @@ -217,7 +217,7 @@ * Y2K compliance in libpng: * ========================= * - * May 21, 2016 + * June 7, 2016 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. @@ -287,7 +287,7 @@ /* Version information for png.h - this should match the version in png.c */ #define PNG_LIBPNG_VER_STRING "1.7.0beta81" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.7.0beta81 - May 21, 2016\n" + " libpng version 1.7.0beta81 - June 7, 2016\n" #define PNG_LIBPNG_VER_SONUM 17 #define PNG_LIBPNG_VER_DLLNUM 17 @@ -1768,7 +1768,7 @@ PNG_REMOVED(66, void, png_set_crc_action, (png_structrp png_ptr, * less of an issue than the overheads on reading a PNG file. * * Use this option when producing PNG files that are not expected to be - * distributed widely or where read speed is more important that size. + * distributed widely or where read speed is more important than size. * This is also a good default for small images where the slight increase * in size of the compressed data doesn't change the file size much. */ @@ -1880,7 +1880,7 @@ PNG_REMOVED(66, void, png_set_crc_action, (png_structrp png_ptr, * next row written. * * The 'method' must match that passed to png_set_IHDR; it cannot be changed and - * is ignore in 1.7 and later. + * is ignored in 1.7 and later. * * If multiple filters are enabled libpng will select one according to the * following rules: diff --git a/pngconf.h b/pngconf.h index ff1924b95..1085501b0 100644 --- a/pngconf.h +++ b/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.7.0beta81, May 21, 2016 + * libpng version 1.7.0beta81, June 7, 2016 * * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngwutil.c b/pngwutil.c index 23159308a..21f34f25e 100644 --- a/pngwutil.c +++ b/pngwutil.c @@ -1288,7 +1288,7 @@ pz_default_settings(png_uint_32 settings, const png_uint_32 owner, case PNG_COMPRESSION_LOW: case PNG_COMPRESSION_MEDIUM: /* Z_FILTERED is almost as good as the default and can be - * significantly faster, it biases the algorithm towards smaller + * significantly faster. It biases the algorithm towards smaller * byte values. * * Using Z_DEFAULT_STRATEGY here, rather than Z_FILTERED, benefits @@ -3632,7 +3632,7 @@ set_filter(png_zlib_statep ps, unsigned int filtersIn) /* Notice that PNG_NO_FILTERS is 0 and passes this test; this is OK because * filters then gets set to PNG_FILTER_NONE, as is required. * - * The argument to this routine is actually an (int), but convertion to + * The argument to this routine is actually an (int), but conversion to * (unsigned int) is safe because it leaves the top bits set which results in * PNG_EDOM below. */