Merge branch 'libpng16' of ../../libpng into libpng16

This commit is contained in:
John Bowler 2016-04-05 18:52:26 -07:00
commit 76531da252
29 changed files with 172 additions and 98 deletions

View File

@ -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 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. 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 Source files with LF line endings (for Unix/Linux) and with a
"configure" script "configure" script
1.6.22beta04.tar.xz (LZMA-compressed, recommended) 1.6.22beta05.tar.xz (LZMA-compressed, recommended)
1.6.22beta04.tar.gz 1.6.22beta05.tar.gz
Source files with CRLF line endings (for Windows), without the Source files with CRLF line endings (for Windows), without the
"configure" script "configure" script
lp1622b04.7z (LZMA-compressed, recommended) lp1622b05.7z (LZMA-compressed, recommended)
lp1622b04.zip lp1622b05.zip
Other information: Other information:
1.6.22beta04-README.txt 1.6.22beta05-README.txt
1.6.22beta04-LICENSE.txt 1.6.22beta05-LICENSE.txt
libpng-1.6.22beta04-*.asc (armored detached GPG signatures) libpng-1.6.22beta05-*.asc (armored detached GPG signatures)
Changes since the last public release (1.6.21): Changes since the last public release (1.6.21):
@ -77,8 +77,13 @@ Version 1.6.22beta03 [March 9, 2016]
meaningful fashion (John Bowler). meaningful fashion (John Bowler).
Fixed some misleading indentation (Krishnaraj Bhat). 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). 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 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit (subscription required; visit

View File

@ -5537,8 +5537,13 @@ Version 1.6.22beta03 [March 9, 2016]
meaningful fashion (John Bowler). meaningful fashion (John Bowler).
Fixed some misleading indentation (Krishnaraj Bhat). 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). 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 Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit (subscription required; visit

View File

@ -696,7 +696,7 @@ endif(NOT WIN32 OR CYGWIN OR MINGW)
# SET UP LINKS # SET UP LINKS
if(PNG_SHARED) if(PNG_SHARED)
set_target_properties(png PROPERTIES set_target_properties(png PROPERTIES
# VERSION 16.${PNGLIB_RELEASE}.1.6.22beta04 # VERSION 16.${PNGLIB_RELEASE}.1.6.22beta05
VERSION 16.${PNGLIB_RELEASE}.0 VERSION 16.${PNGLIB_RELEASE}.0
SOVERSION 16 SOVERSION 16
CLEAN_DIRECT_OUTPUT 1) CLEAN_DIRECT_OUTPUT 1)

View File

@ -10,7 +10,7 @@ this sentence.
This code is released under the libpng license. 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 Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are
derived from libpng-1.0.6, and are distributed according to the same 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 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 Glenn Randers-Pehrson
glennrp at users.sourceforge.net glennrp at users.sourceforge.net
March 9, 2016 April 5, 2016

View File

@ -12,7 +12,7 @@ PNGLIB_BASENAME= libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@
ACLOCAL_AMFLAGS = -I scripts ACLOCAL_AMFLAGS = -I scripts
# test programs - run on make check, make distcheck # 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 # Utilities - installed
bin_PROGRAMS= pngfix png-fix-itxt 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_SOURCES = contrib/libtests/pngimage.c
pngimage_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la 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_SOURCES = contrib/tools/pngfix.c
pngfix_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la pngfix_LDADD = libpng@PNGLIB_MAJOR@@PNGLIB_MINOR@.la

2
README
View File

@ -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 the note about version numbers near the top of png.h
See INSTALL for instructions on how to install libpng. See INSTALL for instructions on how to install libpng.

View File

@ -25,7 +25,7 @@ AC_PREREQ([2.68])
dnl Version number stuff here: 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]) AC_CONFIG_MACRO_DIR([scripts])
# libpng does not follow GNU file name conventions (hence 'foreign') # 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 AM_PREREQ([1.11.2])
dnl stop configure from automagically running automake dnl stop configure from automagically running automake
PNGLIB_VERSION=1.6.22beta04 PNGLIB_VERSION=1.6.22beta05
PNGLIB_MAJOR=1 PNGLIB_MAJOR=1
PNGLIB_MINOR=6 PNGLIB_MINOR=6
PNGLIB_RELEASE=22 PNGLIB_RELEASE=22

View File

@ -1,7 +1,9 @@
Enabling SSE support Enabling SSE support
Copyright (c) 2016 Google, Inc. 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 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 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 make maintainer-clean
./autogen.sh --maintainer --clean ./autogen.sh --maintainer --clean
Finally, configure libpng with -DPNG_INTEL_SSE in CPPFLAGS. If you only Finally, configure libpng with -DPNG_INTEL_SSE in CPPFLAGS:
want to optimize reading 4bpp images, also use -DPNG_NO_INTEL_SSE_3BPP:
./autogen.sh --maintainer ./autogen.sh --maintainer
CPPFLAGS="-DPNG_INTEL_SSE -DPNG_NO_INTEL_SSE_3BPP" ./configure [options] CPPFLAGS="-DPNG_INTEL_SSE" ./configure [options]
make make
II. Using a custom makefile: II. Using a custom makefile:
If you are using a custom makefile makefile, you will have to update it 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 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: III. Using manually updated "configure" scripts:
If you prefer, manually edit configure.ac and Makefile.am, following the If you prefer, manually edit configure.ac and Makefile.am, following the
instructions below, then follow the instructions in section II of INSTALL instructions below, then follow the instructions in section II of INSTALL
in the main libpng directory, then configure libpng with -DPNG_INTEL_SSE 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 in CPPFLAGS.
-DPNG_NO_INTEL_SSE_3BPP.
1. Insert the following lines above the copyright line near the top of 1. Insert the following lines above the copyright line near the top of
configure.ac: configure.ac:

View File

@ -29,30 +29,39 @@
* whichever of a, b, or c is closest to p=a+b-c. * 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) { static __m128i load4(const void* p) {
return _mm_cvtsi32_si128(*(const int*)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) { static void store4(void* p, __m128i v) {
*(int*)p = _mm_cvtsi128_si32(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, void png_read_filter_row_sub3_sse2(png_row_infop row_info, png_bytep row,
png_const_bytep prev) 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(); __m128i a, d = _mm_setzero_si128();
int rb = row_info->rowbytes; 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); a = d; d = load3(row);
d = _mm_add_epi8(d, a); d = _mm_add_epi8(d, a);
store3(row, d); store3(row, d);
@ -73,7 +90,6 @@ void png_read_filter_row_sub3_sse2(png_row_infop row_info, png_bytep row,
rb -= 3; rb -= 3;
} }
} }
#endif
void png_read_filter_row_sub4_sse2(png_row_infop row_info, png_bytep row, void png_read_filter_row_sub4_sse2(png_row_infop row_info, png_bytep row,
png_const_bytep prev) 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, void png_read_filter_row_avg3_sse2(png_row_infop row_info, png_bytep row,
png_const_bytep prev) 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; __m128i a, d = zero;
int rb = row_info->rowbytes; 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); b = load3(prev);
a = d; d = load3(row ); 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; rb -= 3;
} }
} }
#endif
void png_read_filter_row_avg4_sse2(png_row_infop row_info, png_bytep row, void png_read_filter_row_avg4_sse2(png_row_infop row_info, png_bytep row,
png_const_bytep prev) png_const_bytep prev)
@ -192,7 +222,6 @@ static __m128i if_then_else(__m128i c, __m128i t, __m128i e) {
#endif #endif
} }
#ifndef PNG_NO_INTEL_SSE_3BPP
void png_read_filter_row_paeth3_sse2(png_row_infop row_info, png_bytep row, void png_read_filter_row_paeth3_sse2(png_row_infop row_info, png_bytep row,
png_const_bytep prev) 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; a, d = zero;
int rb = row_info->rowbytes; 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 /* It's easiest to do this math (particularly, deal with pc) with 16-bit
* intermediates. * intermediates.
*/ */
@ -251,7 +315,6 @@ void png_read_filter_row_paeth3_sse2(png_row_infop row_info, png_bytep row,
rb -= 3; rb -= 3;
} }
} }
#endif
void png_read_filter_row_paeth4_sse2(png_row_infop row_info, png_bytep row, void png_read_filter_row_paeth4_sse2(png_row_infop row_info, png_bytep row,
png_const_bytep prev) png_const_bytep prev)

View File

@ -32,12 +32,10 @@ png_init_filter_functions_sse2(png_structp pp, unsigned int bpp)
png_debug(1, "in png_init_filter_functions_sse2"); png_debug(1, "in png_init_filter_functions_sse2");
if (bpp == 3) 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_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_AVG-1] = png_read_filter_row_avg3_sse2;
pp->read_filter[PNG_FILTER_VALUE_PAETH-1] = pp->read_filter[PNG_FILTER_VALUE_PAETH-1] =
png_read_filter_row_paeth3_sse2; png_read_filter_row_paeth3_sse2;
#endif
} }
else if (bpp == 4) else if (bpp == 4)
{ {

View File

@ -1,6 +1,6 @@
libpng-manual.txt - A description on how to use and modify libpng 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 Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net> <glennrp at users.sourceforge.net>
Copyright (c) 1998-2016 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: 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 Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2016 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. an official declaration.
This is your unofficial assurance that libpng from version 0.71 and 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. versions were also Y2K compliant.
Libpng only has two year fields. One is a 2-byte unsigned integer Libpng only has two year fields. One is a 2-byte unsigned integer

View File

@ -1,6 +1,6 @@
.TH LIBPNG 3 "March 9, 2016" .TH LIBPNG 3 "April 5, 2016"
.SH NAME .SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.22beta04 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.22beta05
.SH SYNOPSIS .SH SYNOPSIS
\fB \fB
#include <png.h>\fP #include <png.h>\fP
@ -510,7 +510,7 @@ Following is a copy of the libpng-manual.txt file that accompanies libpng.
.SH LIBPNG.TXT .SH LIBPNG.TXT
libpng-manual.txt - A description on how to use and modify libpng 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 Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net> <glennrp at users.sourceforge.net>
Copyright (c) 1998-2016 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: 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 Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2016 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. an official declaration.
This is your unofficial assurance that libpng from version 0.71 and 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. versions were also Y2K compliant.
Libpng only has two year fields. One is a 2-byte unsigned integer 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.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] 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. 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. Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net). 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. 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 Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are
derived from libpng-1.0.6, and are distributed according to the same 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 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 Glenn Randers-Pehrson
glennrp at users.sourceforge.net glennrp at users.sourceforge.net
March 9, 2016 April 5, 2016
.\" end of man page .\" end of man page

View File

@ -1,6 +1,6 @@
.TH LIBPNGPF 3 "March 9, 2016" .TH LIBPNGPF 3 "April 5, 2016"
.SH NAME .SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.6.22beta04 libpng \- Portable Network Graphics (PNG) Reference Library 1.6.22beta05
(private functions) (private functions)
.SH SYNOPSIS .SH SYNOPSIS
\fB#include \fI"pngpriv.h" \fB#include \fI"pngpriv.h"

2
png.5
View File

@ -1,4 +1,4 @@
.TH PNG 5 "March 9, 2016" .TH PNG 5 "April 5, 2016"
.SH NAME .SH NAME
png \- Portable Network Graphics (PNG) format png \- Portable Network Graphics (PNG) format
.SH DESCRIPTION .SH DESCRIPTION

6
png.c
View File

@ -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_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 /* 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
@ -775,14 +775,14 @@ png_get_copyright(png_const_structrp png_ptr)
#else #else
# ifdef __STDC__ # ifdef __STDC__
return PNG_STRING_NEWLINE \ 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" \ "Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson" \
PNG_STRING_NEWLINE \ PNG_STRING_NEWLINE \
"Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \
"Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \ "Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc." \
PNG_STRING_NEWLINE; PNG_STRING_NEWLINE;
# else # 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) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson\
Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1996-1997 Andreas Dilger\
Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."; Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.";

22
png.h
View File

@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library /* 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 * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
@ -12,7 +12,7 @@
* Authors and maintainers: * Authors and maintainers:
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * 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.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. * Glenn Randers-Pehrson.
* See also "Contributing Authors", below. * See also "Contributing Authors", below.
*/ */
@ -29,7 +29,7 @@
* files that are distributed with libpng have other copyright owners and * files that are distributed with libpng have other copyright owners and
* are released under other open source licenses. * 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 * Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are
* derived from libpng-1.0.6, and are distributed according to the same * 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 * 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.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] * 1.6.22 16 10622 16.so.16.22[.0]
* *
@ -245,13 +245,13 @@
* Y2K compliance in libpng: * Y2K compliance in libpng:
* ========================= * =========================
* *
* March 9, 2016 * April 5, 2016
* *
* Since the PNG Development group is an ad-hoc body, we can't make * Since the PNG Development group is an ad-hoc body, we can't make
* an official declaration. * an official declaration.
* *
* This is your unofficial assurance that libpng from version 0.71 and * 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. * earlier versions were also Y2K compliant.
* *
* Libpng only has two year fields. One is a 2-byte unsigned integer * 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 */ /* 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 \ #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_SONUM 16
#define PNG_LIBPNG_VER_DLLNUM 16 #define PNG_LIBPNG_VER_DLLNUM 16
@ -329,7 +329,7 @@
* PNG_LIBPNG_VER_STRING, omitting any leading zero: * PNG_LIBPNG_VER_STRING, omitting any leading zero:
*/ */
#define PNG_LIBPNG_VER_BUILD 04 #define PNG_LIBPNG_VER_BUILD 05
/* Release Status */ /* Release Status */
#define PNG_LIBPNG_BUILD_ALPHA 1 #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 /* 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_22beta04; typedef char* png_libpng_version_1_6_22beta05;
/* 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.
* *

View File

@ -1,7 +1,7 @@
/* pngconf.h - machine configurable file for libpng /* 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 * Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)

View File

@ -2079,4 +2079,4 @@ main(void)
#endif #endif
/* 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_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;

View File

@ -1,7 +1,7 @@
VisualStudio instructions 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 Copyright (c) 2010,2013,2015 Glenn Randers-Pehrson

View File

@ -2,7 +2,7 @@
<!-- <!--
* zlib.props - location of zlib source * zlib.props - location of zlib source
* *
* libpng version 1.6.22beta04 - March 9, 2016 * libpng version 1.6.22beta05 - April 5, 2016
* *
* Copyright (c) 1998-2011 Glenn Randers-Pehrson * Copyright (c) 1998-2011 Glenn Randers-Pehrson
* *

View File

@ -1,9 +1,9 @@
Makefiles for libpng version 1.6.22beta04 - March 9, 2016 Makefiles for libpng version 1.6.22beta05 - April 5, 2016
pnglibconf.h.prebuilt => Stores configuration settings pnglibconf.h.prebuilt => Stores configuration settings
makefile.linux => Linux/ELF makefile makefile.linux => Linux/ELF makefile
(gcc, creates libpng16.so.16.1.6.22beta04) (gcc, creates libpng16.so.16.1.6.22beta05)
makefile.gcc => Generic makefile (gcc, creates static libpng.a) makefile.gcc => Generic makefile (gcc, creates static libpng.a)
makefile.knr => Archaic UNIX Makefile that converts files with makefile.knr => Archaic UNIX Makefile that converts files with
ansi2knr (Requires ansi2knr.c from ansi2knr (Requires ansi2knr.c from
@ -33,12 +33,12 @@ pnglibconf.h.prebuilt => Stores configuration settings
makefile.os2 => OS/2 Makefile (gcc and emx, requires libpng.def) makefile.os2 => OS/2 Makefile (gcc and emx, requires libpng.def)
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
makefile.sggcc => Silicon Graphics (gcc, makefile.sggcc => Silicon Graphics (gcc,
creates libpng16.so.16.1.6.22beta04) creates libpng16.so.16.1.6.22beta05)
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib) makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
makefile.solaris => Solaris 2.X makefile (gcc, makefile.solaris => Solaris 2.X makefile (gcc,
creates libpng16.so.16.1.6.22beta04) creates libpng16.so.16.1.6.22beta05)
makefile.so9 => Solaris 9 makefile (gcc, makefile.so9 => Solaris 9 makefile (gcc,
creates libpng16.so.16.1.6.22beta04) creates libpng16.so.16.1.6.22beta05)
makefile.std => Generic UNIX makefile (cc, creates static libpng.a) makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
makefile.sunos => Sun makefile makefile.sunos => Sun makefile
makefile.32sunu => Sun Ultra 32-bit makefile makefile.32sunu => Sun Ultra 32-bit makefile

View File

@ -21,7 +21,7 @@ PNG_DFN "OS2 DESCRIPTION "PNG image compression library""
PNG_DFN "OS2 CODE PRELOAD MOVEABLE DISCARDABLE" PNG_DFN "OS2 CODE PRELOAD MOVEABLE DISCARDABLE"
PNG_DFN "" PNG_DFN ""
PNG_DFN "EXPORTS" PNG_DFN "EXPORTS"
PNG_DFN ";Version 1.6.22beta04" PNG_DFN ";Version 1.6.22beta05"
#define PNG_EXPORTA(ordinal, type, name, args, attributes)\ #define PNG_EXPORTA(ordinal, type, name, args, attributes)\
PNG_DFN "@" SYMBOL_PREFIX "@@" name "@" PNG_DFN "@" SYMBOL_PREFIX "@@" name "@"

View File

@ -11,7 +11,7 @@
# Modeled after libxml-config. # Modeled after libxml-config.
version=1.6.22beta04 version=1.6.22beta05
prefix="" prefix=""
libdir="" libdir=""
libs="" libs=""

View File

@ -5,6 +5,6 @@ includedir=@includedir@/libpng16
Name: libpng Name: libpng
Description: Loads and saves PNG files Description: Loads and saves PNG files
Version: 1.6.22beta04 Version: 1.6.22beta05
Libs: -L${libdir} -lpng16 Libs: -L${libdir} -lpng16
Cflags: -I${includedir} Cflags: -I${includedir}

View File

@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include/libpng16
LIB= png16 LIB= png16
SHLIB_MAJOR= 0 SHLIB_MAJOR= 0
SHLIB_MINOR= 1.6.22beta04 SHLIB_MINOR= 1.6.22beta05
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
pngwtran.c pngmem.c pngerror.c pngpread.c pngwtran.c pngmem.c pngerror.c pngpread.c

View File

@ -17,7 +17,7 @@ INCSDIR=${LOCALBASE}/include
LIB= png LIB= png
SHLIB_MAJOR= 16 SHLIB_MAJOR= 16
SHLIB_MINOR= 1.6.22beta04 SHLIB_MINOR= 1.6.22beta05
SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \ SRCS= png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \ pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
pngwtran.c pngmem.c pngerror.c pngpread.c pngwtran.c pngmem.c pngerror.c pngpread.c

View File

@ -11,7 +11,7 @@ LIBDIR= ${PREFIX}/lib
MANDIR= ${PREFIX}/man/cat MANDIR= ${PREFIX}/man/cat
SHLIB_MAJOR= 16 SHLIB_MAJOR= 16
SHLIB_MINOR= 1.6.22beta04 SHLIB_MINOR= 1.6.22beta05
LIB= png LIB= png
SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \ SRCS= png.c pngerror.c pngget.c pngmem.c pngpread.c \

View File

@ -1,8 +1,8 @@
/* libpng 1.6.22beta04 STANDARD API DEFINITION */ /* libpng 1.6.22beta05 STANDARD API DEFINITION */
/* pnglibconf.h - library build configuration */ /* pnglibconf.h - library build configuration */
/* Libpng version 1.6.22beta04 - March 9, 2016 */ /* Libpng version 1.6.22beta05 - April 5, 2016 */
/* Copyright (c) 1998-2015 Glenn Randers-Pehrson */ /* Copyright (c) 1998-2015 Glenn Randers-Pehrson */

View File

@ -1,4 +1,4 @@
;Version 1.6.22beta04 ;Version 1.6.22beta05
;-------------------------------------------------------------- ;--------------------------------------------------------------
; LIBPNG symbol list as a Win32 DEF file ; LIBPNG symbol list as a Win32 DEF file
; Contains all the symbols that can be exported from libpng ; Contains all the symbols that can be exported from libpng