diff --git a/ANNOUNCE b/ANNOUNCE index d51e19b36..258b3f0c2 100644 --- a/ANNOUNCE +++ b/ANNOUNCE @@ -1,4 +1,4 @@ -Libpng 1.6.22beta04 - March 15, 2016 +Libpng 1.6.22beta05 - April 5, 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. @@ -8,20 +8,20 @@ Files available for download: Source files with LF line endings (for Unix/Linux) and with a "configure" script - 1.6.22beta04.tar.xz (LZMA-compressed, recommended) - 1.6.22beta04.tar.gz + 1.6.22beta05.tar.xz (LZMA-compressed, recommended) + 1.6.22beta05.tar.gz Source files with CRLF line endings (for Windows), without the "configure" script - lp1622b04.7z (LZMA-compressed, recommended) - lp1622b04.zip + lp1622b05.7z (LZMA-compressed, recommended) + lp1622b05.zip Other information: - 1.6.22beta04-README.txt - 1.6.22beta04-LICENSE.txt - libpng-1.6.22beta04-*.asc (armored detached GPG signatures) + 1.6.22beta05-README.txt + 1.6.22beta05-LICENSE.txt + libpng-1.6.22beta05-*.asc (armored detached GPG signatures) Changes since the last public release (1.6.21): @@ -77,8 +77,13 @@ Version 1.6.22beta03 [March 9, 2016] meaningful fashion (John Bowler). Fixed some misleading indentation (Krishnaraj Bhat). -Version 1.6.22beta04 [March 15, 2016] +Version 1.6.22beta04 [April 5, 2016] Force GCC compilation to C89 if needed (Dagobert Michelsen). + SSE filter speed improvements for bpp=3: + memcpy-free implementations of load3() / store3(). + call load3() only when needed at the end of a scanline. + +Version 1.6.22beta05 [April 5, 2016] Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CHANGES b/CHANGES index 3a40300c6..2c6540f8d 100644 --- a/CHANGES +++ b/CHANGES @@ -5537,8 +5537,13 @@ Version 1.6.22beta03 [March 9, 2016] meaningful fashion (John Bowler). Fixed some misleading indentation (Krishnaraj Bhat). -Version 1.6.22beta04 [March 15, 2016] +Version 1.6.22beta04 [April 5, 2016] Force GCC compilation to C89 if needed (Dagobert Michelsen). + SSE filter speed improvements for bpp=3: + memcpy-free implementations of load3() / store3(). + call load3() only when needed at the end of a scanline. + +Version 1.6.22beta05 [April 5, 2016] Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit diff --git a/CMakeLists.txt b/CMakeLists.txt index 40f406b02..2a1ae8842 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -696,7 +696,7 @@ endif(NOT WIN32 OR CYGWIN OR MINGW) # SET UP LINKS if(PNG_SHARED) set_target_properties(png PROPERTIES -# VERSION 16.${PNGLIB_RELEASE}.1.6.22beta04 +# VERSION 16.${PNGLIB_RELEASE}.1.6.22beta05 VERSION 16.${PNGLIB_RELEASE}.0 SOVERSION 16 CLEAN_DIRECT_OUTPUT 1) diff --git a/LICENSE b/LICENSE index 5f8384414..d14cef4e9 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.6.22beta04, March 9, 2016 are +libpng versions 1.0.7, July 1, 2000 through 1.6.22beta05, April 5, 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 @@ -127,4 +127,4 @@ any encryption software. See the EAR, paragraphs 734.3(b)(3) and Glenn Randers-Pehrson glennrp at users.sourceforge.net -March 9, 2016 +April 5, 2016 diff --git a/Makefile.am b/Makefile.am index 5c517b993..51685ce8d 100644 --- a/Makefile.am +++ b/Makefile.am @@ -12,7 +12,7 @@ PNGLIB_BASENAME= libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@ ACLOCAL_AMFLAGS = -I scripts # test programs - run on make check, make distcheck -check_PROGRAMS= pngtest pngunknown pngstest pngvalid pngimage +check_PROGRAMS= pngtest pngunknown pngstest pngvalid pngimage timepng # Utilities - installed bin_PROGRAMS= pngfix png-fix-itxt @@ -42,6 +42,9 @@ pngunknown_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la pngimage_SOURCES = contrib/libtests/pngimage.c pngimage_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la +timepng_SOURCES = contrib/libtests/timepng.c +timepng_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la + pngfix_SOURCES = contrib/tools/pngfix.c pngfix_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la diff --git a/README b/README index 77b8f4c5e..7f6e0ddf2 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -README for libpng version 1.6.22beta04 - March 9, 2016 (shared library 16.0) +README for libpng version 1.6.22beta05 - April 5, 2016 (shared library 16.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/configure.ac b/configure.ac index 2dad641c2..9cb349041 100644 --- a/configure.ac +++ b/configure.ac @@ -25,7 +25,7 @@ AC_PREREQ([2.68]) dnl Version number stuff here: -AC_INIT([libpng],[1.6.22beta04],[png-mng-implement@lists.sourceforge.net]) +AC_INIT([libpng],[1.6.22beta05],[png-mng-implement@lists.sourceforge.net]) AC_CONFIG_MACRO_DIR([scripts]) # libpng does not follow GNU file name conventions (hence 'foreign') @@ -46,7 +46,7 @@ dnl automake, so the following is not necessary (and is not defined anyway): dnl AM_PREREQ([1.11.2]) dnl stop configure from automagically running automake -PNGLIB_VERSION=1.6.22beta04 +PNGLIB_VERSION=1.6.22beta05 PNGLIB_MAJOR=1 PNGLIB_MINOR=6 PNGLIB_RELEASE=22 diff --git a/contrib/intel/INSTALL b/contrib/intel/INSTALL index e4d56777f..f57467fe2 100644 --- a/contrib/intel/INSTALL +++ b/contrib/intel/INSTALL @@ -1,7 +1,9 @@ Enabling SSE support Copyright (c) 2016 Google, Inc. -Written by Mike Klein and Matt Sarett +Written by Mike Klein, Matt Sarett + +This INSTALL file written by Glenn Randers-Pehrson, 2016. If you have moved intel_init.c and filter_sse2_intrinsics.c to a different directory, be sure to update the '#include "../../pngpriv.h"' line in both @@ -24,26 +26,24 @@ distribution, remove any existing pre-built configure scripts: make maintainer-clean ./autogen.sh --maintainer --clean -Finally, configure libpng with -DPNG_INTEL_SSE in CPPFLAGS. If you only -want to optimize reading 4bpp images, also use -DPNG_NO_INTEL_SSE_3BPP: +Finally, configure libpng with -DPNG_INTEL_SSE in CPPFLAGS: ./autogen.sh --maintainer - CPPFLAGS="-DPNG_INTEL_SSE -DPNG_NO_INTEL_SSE_3BPP" ./configure [options] + CPPFLAGS="-DPNG_INTEL_SSE" ./configure [options] make II. Using a custom makefile: If you are using a custom makefile makefile, you will have to update it manually to include contrib/intel/*.o in the dependencies, and to define -PNG_INTEL_SSE and possibly PNG_NO_INTEL_SSE_3BPP. +PNG_INTEL_SSE. III. Using manually updated "configure" scripts: If you prefer, manually edit configure.ac and Makefile.am, following the instructions below, then follow the instructions in section II of INSTALL in the main libpng directory, then configure libpng with -DPNG_INTEL_SSE -in CPPFLAGS. If you only want to optimize reading 4bpp images, also use --DPNG_NO_INTEL_SSE_3BPP. +in CPPFLAGS. 1. Insert the following lines above the copyright line near the top of configure.ac: diff --git a/contrib/intel/filter_sse2_intrinsics.c b/contrib/intel/filter_sse2_intrinsics.c index e7b317159..92dcd7e4a 100644 --- a/contrib/intel/filter_sse2_intrinsics.c +++ b/contrib/intel/filter_sse2_intrinsics.c @@ -29,30 +29,39 @@ * whichever of a, b, or c is closest to p=a+b-c. */ -#ifndef PNG_NO_INTEL_SSE_3BPP -static __m128i load3(const void* p) { - png_uint_32 packed; - memcpy(&packed, p, 3); - return _mm_cvtsi32_si128(packed); -} -#endif - static __m128i load4(const void* p) { return _mm_cvtsi32_si128(*(const int*)p); } -#ifndef PNG_NO_INTEL_SSE_3BPP -static void store3(void* p, __m128i v) { - png_uint_32 packed = _mm_cvtsi128_si32(v); - memcpy(p, &packed, 3); -} -#endif - static void store4(void* p, __m128i v) { *(int*)p = _mm_cvtsi128_si32(v); } -#ifndef PNG_NO_INTEL_SSE_3BPP +static __m128i load3(const void* p) { + /* We'll load 2 bytes, then 1 byte, + * then mask them together, and finally load into SSE. + */ + const png_uint_16* p01 = p; + const png_byte* p2 = (const png_byte*)(p01+1); + + png_uint_32 v012 = (png_uint_32)(*p01) + | (png_uint_32)(*p2) << 16; + return load4(&v012); +} + +static void store3(void* p, __m128i v) { + /* We'll pull from SSE as a 32-bit int, then write + * its bottom two bytes, then its third byte. + */ + png_uint_32 v012; + store4(&v012, v); + + png_uint_16* p01 = p; + png_byte* p2 = (png_byte*)(p01+1); + *p01 = v012; + *p2 = v012 >> 16; +} + void png_read_filter_row_sub3_sse2(png_row_infop row_info, png_bytep row, png_const_bytep prev) { @@ -64,7 +73,15 @@ void png_read_filter_row_sub3_sse2(png_row_infop row_info, png_bytep row, __m128i a, d = _mm_setzero_si128(); int rb = row_info->rowbytes; - while (rb > 0) { + while (rb >= 4) { + a = d; d = load4(row); + d = _mm_add_epi8(d, a); + store3(row, d); + + row += 3; + rb -= 3; + } + if (rb > 0) { a = d; d = load3(row); d = _mm_add_epi8(d, a); store3(row, d); @@ -73,7 +90,6 @@ void png_read_filter_row_sub3_sse2(png_row_infop row_info, png_bytep row, rb -= 3; } } -#endif void png_read_filter_row_sub4_sse2(png_row_infop row_info, png_bytep row, png_const_bytep prev) @@ -96,7 +112,6 @@ void png_read_filter_row_sub4_sse2(png_row_infop row_info, png_bytep row, } } -#ifndef PNG_NO_INTEL_SSE_3BPP void png_read_filter_row_avg3_sse2(png_row_infop row_info, png_bytep row, png_const_bytep prev) { @@ -111,7 +126,23 @@ void png_read_filter_row_avg3_sse2(png_row_infop row_info, png_bytep row, __m128i a, d = zero; int rb = row_info->rowbytes; - while (rb > 0) { + while (rb >= 4) { + b = load4(prev); + a = d; d = load4(row ); + + /* PNG requires a truncating average, so we can't just use _mm_avg_epu8 */ + __m128i avg = _mm_avg_epu8(a,b); + /* ...but we can fix it up by subtracting off 1 if it rounded up. */ + avg = _mm_sub_epi8(avg, _mm_and_si128(_mm_xor_si128(a,b), + _mm_set1_epi8(1))); + d = _mm_add_epi8(d, avg); + store3(row, d); + + prev += 3; + row += 3; + rb -= 3; + } + if (rb > 0) { b = load3(prev); a = d; d = load3(row ); @@ -129,7 +160,6 @@ void png_read_filter_row_avg3_sse2(png_row_infop row_info, png_bytep row, rb -= 3; } } -#endif void png_read_filter_row_avg4_sse2(png_row_infop row_info, png_bytep row, png_const_bytep prev) @@ -192,7 +222,6 @@ static __m128i if_then_else(__m128i c, __m128i t, __m128i e) { #endif } -#ifndef PNG_NO_INTEL_SSE_3BPP void png_read_filter_row_paeth3_sse2(png_row_infop row_info, png_bytep row, png_const_bytep prev) { @@ -215,7 +244,42 @@ void png_read_filter_row_paeth3_sse2(png_row_infop row_info, png_bytep row, a, d = zero; int rb = row_info->rowbytes; - while (rb > 0) { + while (rb >= 4) { + /* It's easiest to do this math (particularly, deal with pc) with 16-bit + * intermediates. + */ + c = b; b = _mm_unpacklo_epi8(load4(prev), zero); + a = d; d = _mm_unpacklo_epi8(load4(row ), zero); + + /* (p-a) == (a+b-c - a) == (b-c) */ + __m128i pa = _mm_sub_epi16(b,c); + + /* (p-b) == (a+b-c - b) == (a-c) */ + __m128i pb = _mm_sub_epi16(a,c); + + /* (p-c) == (a+b-c - c) == (a+b-c-c) == (b-c)+(a-c) */ + __m128i pc = _mm_add_epi16(pa,pb); + + pa = abs_i16(pa); /* |p-a| */ + pb = abs_i16(pb); /* |p-b| */ + pc = abs_i16(pc); /* |p-c| */ + + __m128i smallest = _mm_min_epi16(pc, _mm_min_epi16(pa, pb)); + + /* Paeth breaks ties favoring a over b over c. */ + __m128i nearest = if_then_else(_mm_cmpeq_epi16(smallest, pa), a, + if_then_else(_mm_cmpeq_epi16(smallest, pb), b, + c)); + + /* Note `_epi8`: we need addition to wrap modulo 255. */ + d = _mm_add_epi8(d, nearest); + store3(row, _mm_packus_epi16(d,d)); + + prev += 3; + row += 3; + rb -= 3; + } + if (rb > 0) { /* It's easiest to do this math (particularly, deal with pc) with 16-bit * intermediates. */ @@ -251,7 +315,6 @@ void png_read_filter_row_paeth3_sse2(png_row_infop row_info, png_bytep row, rb -= 3; } } -#endif void png_read_filter_row_paeth4_sse2(png_row_infop row_info, png_bytep row, png_const_bytep prev) diff --git a/contrib/intel/intel_init.c b/contrib/intel/intel_init.c index d0918d1bb..357e147b9 100644 --- a/contrib/intel/intel_init.c +++ b/contrib/intel/intel_init.c @@ -32,12 +32,10 @@ png_init_filter_functions_sse2(png_structp pp, unsigned int bpp) png_debug(1, "in png_init_filter_functions_sse2"); if (bpp == 3) { -#ifndef PNG_NO_INTEL_SSE_3BPP pp->read_filter[PNG_FILTER_VALUE_SUB-1] = png_read_filter_row_sub3_sse2; pp->read_filter[PNG_FILTER_VALUE_AVG-1] = png_read_filter_row_avg3_sse2; pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = png_read_filter_row_paeth3_sse2; -#endif } else if (bpp == 4) { diff --git a/libpng-manual.txt b/libpng-manual.txt index 1bb94850e..3aeee653e 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.6.22beta04 - March 9, 2016 + libpng version 1.6.22beta05 - April 5, 2016 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2016 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.6.22beta04 - March 9, 2016 + libpng versions 0.97, January 1998, through 1.6.22beta05 - April 5, 2016 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2016 Glenn Randers-Pehrson @@ -5337,7 +5337,7 @@ Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.6.22beta04 are Y2K compliant. It is my belief that earlier +upward through 1.6.22beta05 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has two year fields. One is a 2-byte unsigned integer diff --git a/libpng.3 b/libpng.3 index 1a01b4724..b89b5bccf 100644 --- a/libpng.3 +++ b/libpng.3 @@ -1,6 +1,6 @@ -.TH LIBPNG 3 "March 9, 2016" +.TH LIBPNG 3 "April 5, 2016" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.6.22beta04 +libpng \- Portable Network Graphics (PNG) Reference Library 1.6.22beta05 .SH SYNOPSIS \fB #include \fP @@ -510,7 +510,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.6.22beta04 - March 9, 2016 + libpng version 1.6.22beta05 - April 5, 2016 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2016 Glenn Randers-Pehrson @@ -521,7 +521,7 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.6.22beta04 - March 9, 2016 + libpng versions 0.97, January 1998, through 1.6.22beta05 - April 5, 2016 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2016 Glenn Randers-Pehrson @@ -5847,7 +5847,7 @@ Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.6.22beta04 are Y2K compliant. It is my belief that earlier +upward through 1.6.22beta05 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has two year fields. One is a 2-byte unsigned integer @@ -5945,9 +5945,9 @@ 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 10256 12.so.0.56[.0] ... - 1.5.23 15 10523 15.so.15.23[.0] + 1.5.25 15 10525 15.so.15.25[.0] ... 1.6.22 16 10622 16.so.16.22[.0] @@ -6005,7 +6005,7 @@ possible without all of you. Thanks to Frank J. T. Wojcik for helping with the documentation. -Libpng version 1.6.22beta04 - March 9, 2016: +Libpng version 1.6.22beta05 - April 5, 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). @@ -6030,7 +6030,7 @@ this sentence. This code is released under the libpng license. -libpng versions 1.0.7, July 1, 2000 through 1.6.22beta04, March 9, 2016 are +libpng versions 1.0.7, July 1, 2000 through 1.6.22beta05, April 5, 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 @@ -6155,7 +6155,7 @@ files "pngbar.png" and "pngbar.jpg (88x31) and "pngnow.png" (98x31). Glenn Randers-Pehrson glennrp at users.sourceforge.net -March 9, 2016 +April 5, 2016 .\" end of man page diff --git a/libpngpf.3 b/libpngpf.3 index 6f18b8aa1..feacb5c14 100644 --- a/libpngpf.3 +++ b/libpngpf.3 @@ -1,6 +1,6 @@ -.TH LIBPNGPF 3 "March 9, 2016" +.TH LIBPNGPF 3 "April 5, 2016" .SH NAME -libpng \- Portable Network Graphics (PNG) Reference Library 1.6.22beta04 +libpng \- Portable Network Graphics (PNG) Reference Library 1.6.22beta05 (private functions) .SH SYNOPSIS \fB#include \fI"pngpriv.h" diff --git a/png.5 b/png.5 index e9d82c2a2..36d0181fd 100644 --- a/png.5 +++ b/png.5 @@ -1,4 +1,4 @@ -.TH PNG 5 "March 9, 2016" +.TH PNG 5 "April 5, 2016" .SH NAME png \- Portable Network Graphics (PNG) format .SH DESCRIPTION diff --git a/png.c b/png.c index c625df6d5..675a521bf 100644 --- a/png.c +++ b/png.c @@ -14,7 +14,7 @@ #include "pngpriv.h" /* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_22beta04 Your_png_h_is_not_version_1_6_22beta04; +typedef png_libpng_version_1_6_22beta05 Your_png_h_is_not_version_1_6_22beta05; /* 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 @@ -775,14 +775,14 @@ png_get_copyright(png_const_structrp png_ptr) #else # ifdef __STDC__ return PNG_STRING_NEWLINE \ - "libpng version 1.6.22beta04 - March 9, 2016" PNG_STRING_NEWLINE \ + "libpng version 1.6.22beta05 - April 5, 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.6.22beta04 - March 9, 2016\ + return "libpng version 1.6.22beta05 - April 5, 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 0e3dd3070..67a31aaaa 100644 --- a/png.h +++ b/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.6.22beta04, March 9, 2016 + * libpng version 1.6.22beta05, April 5, 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.6.22beta04, March 9, 2016: + * libpng versions 0.97, January 1998, through 1.6.22beta05, April 5, 2016: * Glenn Randers-Pehrson. * See also "Contributing Authors", below. */ @@ -29,7 +29,7 @@ * files that are distributed with libpng have other copyright owners and * are released under other open source licenses. * - * libpng versions 1.0.7, July 1, 2000 through 1.6.22beta04, March 9, 2016 are + * libpng versions 1.0.7, July 1, 2000 through 1.6.22beta05, April 5, 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 @@ -213,9 +213,9 @@ * ... * 1.0.19 10 10019 10.so.0.19[.0] * ... - * 1.2.53 13 10253 12.so.0.53[.0] + * 1.2.56 13 10256 12.so.0.56[.0] * ... - * 1.5.23 15 10523 15.so.15.23[.0] + * 1.5.25 15 10525 15.so.15.25[.0] * ... * 1.6.22 16 10622 16.so.16.22[.0] * @@ -245,13 +245,13 @@ * Y2K compliance in libpng: * ========================= * - * March 9, 2016 + * April 5, 2016 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. * * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.6.22beta04 are Y2K compliant. It is my belief that + * upward through 1.6.22beta05 are Y2K compliant. It is my belief that * earlier versions were also Y2K compliant. * * Libpng only has two year fields. One is a 2-byte unsigned integer @@ -313,9 +313,9 @@ */ /* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.6.22beta04" +#define PNG_LIBPNG_VER_STRING "1.6.22beta05" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.6.22beta04 - March 9, 2016\n" + " libpng version 1.6.22beta05 - April 5, 2016\n" #define PNG_LIBPNG_VER_SONUM 16 #define PNG_LIBPNG_VER_DLLNUM 16 @@ -329,7 +329,7 @@ * PNG_LIBPNG_VER_STRING, omitting any leading zero: */ -#define PNG_LIBPNG_VER_BUILD 04 +#define PNG_LIBPNG_VER_BUILD 05 /* Release Status */ #define PNG_LIBPNG_BUILD_ALPHA 1 @@ -464,7 +464,7 @@ extern "C" { /* This triggers a compiler error in png.c, if png.c and png.h * do not agree upon the version number. */ -typedef char* png_libpng_version_1_6_22beta04; +typedef char* png_libpng_version_1_6_22beta05; /* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. * diff --git a/pngconf.h b/pngconf.h index 03ec615ae..b9c4cc2d5 100644 --- a/pngconf.h +++ b/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.6.22beta04, March 9, 2016 + * libpng version 1.6.22beta05, April 5, 2016 * * Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/pngtest.c b/pngtest.c index a14db14ba..4168f4c32 100644 --- a/pngtest.c +++ b/pngtest.c @@ -2079,4 +2079,4 @@ main(void) #endif /* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_22beta04 Your_png_h_is_not_version_1_6_22beta04; +typedef png_libpng_version_1_6_22beta05 Your_png_h_is_not_version_1_6_22beta05; diff --git a/projects/vstudio/README.txt b/projects/vstudio/README.txt index 8547af489..3b82a9776 100644 --- a/projects/vstudio/README.txt +++ b/projects/vstudio/README.txt @@ -1,7 +1,7 @@ VisualStudio instructions -libpng version 1.6.22beta04 - March 9, 2016 +libpng version 1.6.22beta05 - April 5, 2016 Copyright (c) 2010,2013,2015 Glenn Randers-Pehrson diff --git a/projects/vstudio/zlib.props b/projects/vstudio/zlib.props index b7d0ab1bd..43f763352 100644 --- a/projects/vstudio/zlib.props +++ b/projects/vstudio/zlib.props @@ -2,7 +2,7 @@