diff --git a/ANNOUNCE b/ANNOUNCE index 0fe628e43..b54a318fc 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,5 +1,5 @@ -Libpng 1.7.0beta81 - May 17, 2016 +Libpng 1.7.0beta81 - May 21, 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,9 +1290,44 @@ 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 16, 2016] +Version 1.7.0beta81 [May 21, 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 + Reenabled filter selection (dummy). This implements the code for + row-by-row filter selection but does not provide an actual implementation; + the selection function just chooses the lowest set filter bit. + Fixed a signed/unsigned warning (GCC 4.8.5) in pngwutil.c + Implemented base filter selection with row buffering and a crude code-count + algorithm. + Added filter selection, palette index checks. Palette index checking: + checking on read was erroneously skipped. pngcp can now turn off the + palette index checking or fix the errors (mainly to allow comparison with + libpng 1.6, which defaulted to ignoring it). The API now documents how + the 'enabled' parameter works. On read the check is on by default (it + was apparently off in libpng 1.6) however now if explicitly turned on the + warning message is stopped; this provides better interaction with + get_palette_max at the cost of a small API change (may need to be reviewed.) + Palette size errors: invalid entries in the palette are now set to #beaded to + make the errors more obvious and allow easy detection in memory. + Read transform pipeline caching: changes to fix the palette index check + (which are erroneously cached), the pipeline can now contain multiple + caches, e.g., caching of packing of palette indices can be combined with + caching of palette RGB transforms. + Read code now checks for callbacks to read 0 data (and faults them). + Fixed the reading of PNGs with multiple 0 length IDATs that failed as a + result plus the handling of zero length unknown (which occurs, validly; + the spurious warning has been removed). + Filter selection: the 1.6 and earlier sum of absolute differences algorithm + has been reintroduced with an option to disfavor some filters over others + where the sums are close (not yet exposed). The selection code also logs + the last known occurence of each possible byte code across multiple lines. + This allows detection of PNG images with lower bit depth than the format + implies and, therefore, allows the filtering to be turned off in those + cases as well. + The default write zlib settings are still lower than libpng16. The + selection algorithm is being refined (the overall results are worse than + not doing any filtering). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index c9b83da0c..2179548ea 100644 --- a/CHANGES +++ b/CHANGES @@ -5590,9 +5590,44 @@ 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 16, 2016] +Version 1.7.0beta81 [May 21, 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 + Reenabled filter selection (dummy). This implements the code for + row-by-row filter selection but does not provide an actual implementation; + the selection function just chooses the lowest set filter bit. + Fixed a signed/unsigned warning (GCC 4.8.5) in pngwutil.c + Implemented base filter selection with row buffering and a crude code-count + algorithm. + Added filter selection, palette index checks. Palette index checking: + checking on read was erroneously skipped. pngcp can now turn off the + palette index checking or fix the errors (mainly to allow comparison with + libpng 1.6, which defaulted to ignoring it). The API now documents how + the 'enabled' parameter works. On read the check is on by default (it + was apparently off in libpng 1.6) however now if explicitly turned on the + warning message is stopped; this provides better interaction with + get_palette_max at the cost of a small API change (may need to be reviewed.) + Palette size errors: invalid entries in the palette are now set to #beaded to + make the errors more obvious and allow easy detection in memory. + Read transform pipeline caching: changes to fix the palette index check + (which are erroneously cached), the pipeline can now contain multiple + caches, e.g., caching of packing of palette indices can be combined with + caching of palette RGB transforms. + Read code now checks for callbacks to read 0 data (and faults them). + Fixed the reading of PNGs with multiple 0 length IDATs that failed as a + result plus the handling of zero length unknown (which occurs, validly; + the spurious warning has been removed). + Filter selection: the 1.6 and earlier sum of absolute differences algorithm + has been reintroduced with an option to disfavor some filters over others + where the sums are close (not yet exposed). The selection code also logs + the last known occurence of each possible byte code across multiple lines. + This allows detection of PNG images with lower bit depth than the format + implies and, therefore, allows the filtering to be turned off in those + cases as well. + The default write zlib settings are still lower than libpng16. The + selection algorithm is being refined (the overall results are worse than + not doing any filtering). Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/LICENSE b/LICENSE index 28d9b4631..c7d45ab2b 100644 --- a/LICENSE +++ b/LICENSE @@ -10,7 +10,7 @@ this sentence. This code is released under the libpng license. -libpng versions 1.0.7, July 1, 2000, through 1.7.0beta81, May 7, 2016, are +libpng versions 1.0.7, July 1, 2000, through 1.7.0beta81, May 21, 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 @@ -109,4 +109,4 @@ the additional disclaimers inserted at version 1.0.7. Glenn Randers-Pehrson glennrp at users.sourceforge.net -May 7, 2016 +May 21, 2016 diff --git a/README b/README index 0db1f419e..68aa5de38 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -README for libpng version 1.7.0beta81 - May 7, 2016 (shared library 17.0) +README for libpng version 1.7.0beta81 - May 21, 2016 (shared library 17.0) See the note about version numbers near the top of png.h See INSTALL for instructions on how to install libpng. diff --git a/libpng-manual.txt b/libpng-manual.txt index e7c158736..8eef39723 100644 --- a/libpng-manual.txt +++ b/libpng-manual.txt @@ -1,6 +1,6 @@ libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.7.0beta81 - May 7, 2016 + libpng version 1.7.0beta81 - May 21, 2016 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2015 Glenn Randers-Pehrson @@ -11,7 +11,7 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.7.0beta81 - May 7, 2016 + libpng versions 0.97, January 1998, through 1.7.0beta81 - May 21, 2016 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2015 Glenn Randers-Pehrson diff --git a/libpng.3 b/libpng.3 index 8a5598bd9..930f9d4a5 100644 --- a/libpng.3 +++ b/libpng.3 @@ -1,4 +1,4 @@ -.TH LIBPNG 3 "May 7, 2016" +.TH LIBPNG 3 "May 21, 2016" .SH NAME libpng \- Portable Network Graphics (PNG) Reference Library 1.7.0beta81 .SH SYNOPSIS @@ -500,7 +500,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng. .SH LIBPNG.TXT libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.7.0beta81 - May 7, 2016 + libpng version 1.7.0beta81 - May 21, 2016 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2015 Glenn Randers-Pehrson @@ -511,7 +511,7 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.7.0beta81 - May 7, 2016 + libpng versions 0.97, January 1998, through 1.7.0beta81 - May 21, 2016 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2015 Glenn Randers-Pehrson @@ -5940,12 +5940,11 @@ the first widely used release: ... 1.0.19 10 10019 10.so.0.19[.0] ... - 1.2.53 13 10253 12.so.0.53[.0] + 1.2.56 13 10253 12.so.0.53[.0] ... - 1.5.23 15 10523 15.so.15.23[.0] + 1.5.27 15 10523 15.so.15.23[.0] ... - 1.6.19beta01-04 16 10619 16.so.16.19[.0] - 1.6.19rc01-03 16 10619 16.so.16.19[.0] + 1.6.22 16 10622 16.so.16.22[.0] ... 1.7.0alpha01-10 17 10700 17.so.17.0[.0] 1.7.0beta01-81 17 10700 17.so.17.0[.0] @@ -6004,7 +6003,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.7.0beta81 - May 7, 2016: +Libpng version 1.7.0beta81 - May 21, 2016: Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc. Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). @@ -6029,7 +6028,7 @@ this sentence. This code is released under the libpng license. -libpng versions 1.0.7, July 1, 2000, through 1.7.0beta81, May 7, 2016, are +libpng versions 1.0.7, July 1, 2000, through 1.7.0beta81, May 21, 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 @@ -6128,7 +6127,7 @@ the additional disclaimers inserted at version 1.0.7. Glenn Randers-Pehrson glennrp at users.sourceforge.net -May 7, 2016 +May 21, 2016 .\" end of man page diff --git a/libpngpf.3 b/libpngpf.3 index 833c5ef74..c9d828211 100644 --- a/libpngpf.3 +++ b/libpngpf.3 @@ -1,4 +1,4 @@ -.TH LIBPNGPF 3 "May 7, 2016" +.TH LIBPNGPF 3 "May 21, 2016" .SH NAME libpng \- Portable Network Graphics (PNG) Reference Library 1.7.0beta81 (private functions) diff --git a/png.5 b/png.5 index 0fa41e806..71c4ac6d3 100644 --- a/png.5 +++ b/png.5 @@ -1,4 +1,4 @@ -.TH PNG 5 "May 7, 2016" +.TH PNG 5 "May 21, 2016" .SH NAME png \- Portable Network Graphics (PNG) format .SH DESCRIPTION diff --git a/png.c b/png.c index aa2f467ec..3dbbbb7ba 100644 --- a/png.c +++ b/png.c @@ -705,14 +705,14 @@ png_get_copyright(png_const_structrp png_ptr) #else # ifdef __STDC__ return PNG_STRING_NEWLINE \ - "libpng version 1.7.0beta81 - May 7, 2016" PNG_STRING_NEWLINE \ + "libpng version 1.7.0beta81 - May 21, 2016" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson" \ PNG_STRING_NEWLINE \ "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ PNG_STRING_NEWLINE; # else - return "libpng version 1.7.0beta81 - May 7, 2016\ + return "libpng version 1.7.0beta81 - May 21, 2016\ Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson\ Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."; diff --git a/png.h b/png.h index e0818e62d..44b5f5cb4 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 7, 2016 + * libpng version 1.7.0beta81, May 21, 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 7, 2016: + * libpng versions 0.97, January 1998, through 1.7.0beta81, May 21, 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 7, 2016, are + * libpng versions 1.0.7, July 1, 2000, through 1.7.0beta81, May 21, 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 @@ -182,12 +182,11 @@ * ... * 1.0.19 10 10019 10.so.0.19[.0] * ... - * 1.2.53 13 10253 12.so.0.53[.0] + * 1.2.56 13 10253 12.so.0.53[.0] * ... - * 1.5.23 15 10523 15.so.15.23[.0] + * 1.5.27 15 10523 15.so.15.23[.0] * ... - * 1.6.19beta01-04 16 10619 16.so.16.19[.0] - * 1.6.19rc01-03 16 10619 16.so.16.19[.0] + * 1.6.22 16 10622 16.so.16.22[.0] * ... * 1.7.0alpha01-10 17 10700 17.so.17.0[.0] * 1.7.0beta01-81 17 10700 17.so.17.0[.0] @@ -218,7 +217,7 @@ * Y2K compliance in libpng: * ========================= * - * May 7, 2016 + * May 21, 2016 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. @@ -288,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 7, 2016\n" + " libpng version 1.7.0beta81 - May 21, 2016\n" #define PNG_LIBPNG_VER_SONUM 17 #define PNG_LIBPNG_VER_DLLNUM 17 diff --git a/pngconf.h b/pngconf.h index 988b214f5..ff1924b95 100644 --- a/pngconf.h +++ b/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.7.0beta81, May 7, 2016 + * libpng version 1.7.0beta81, May 21, 2016 * * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/projects/vstudio/README.txt b/projects/vstudio/README.txt index 78e7bfe7c..eb330b82f 100644 --- a/projects/vstudio/README.txt +++ b/projects/vstudio/README.txt @@ -1,7 +1,7 @@ VisualStudio instructions -libpng version 1.7.0beta81 - May 7, 2016 +libpng version 1.7.0beta81 - May 21, 2016 Copyright (c) 2010,2013,2015 Glenn Randers-Pehrson diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props index 966b2728b..5a8ac7f1a 100644 --- a/projects/vstudio/zlib.props +++ b/projects/vstudio/zlib.props @@ -2,7 +2,7 @@