mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
Merge branch 'libpng17' into libpng17-buffer-enhancements
This commit is contained in:
commit
a42416de9c
32
ANNOUNCE
32
ANNOUNCE
@ -972,6 +972,38 @@ Version 1.7.0beta69 [November 23, 2015]
|
|||||||
by flaviommedeiros).
|
by flaviommedeiros).
|
||||||
Fixed bug recently introduced in png_set_PLTE() that uses png_ptr
|
Fixed bug recently introduced in png_set_PLTE() that uses png_ptr
|
||||||
not info_ptr.
|
not info_ptr.
|
||||||
|
Added pngvalid --transform --interlace test. This increases code
|
||||||
|
coverage by generating test cases with smaller length rows as a
|
||||||
|
result of the interlacing. Without this packswap handling was
|
||||||
|
incompletely tested.
|
||||||
|
Fixed NO_WRITE_INTERLACE in pngvalid.c. The support for writing
|
||||||
|
interlaced images directly from libpng 1.7 was unintentionally
|
||||||
|
disabled (INTERLACE_LAST was defined incorrectly, excluding the
|
||||||
|
interlaced images). This obscured the fact that the transform and
|
||||||
|
error test case generators lacked the support for writing interlaced
|
||||||
|
images from libpng.
|
||||||
|
Transform rewrite: perform transforms in small chunks. The intent
|
||||||
|
of this change is to reduce the memory footprint during transform
|
||||||
|
sequences by performing transforms in fixed (small) sized blocks of
|
||||||
|
pixels. The change is incomplete; the filter code still works
|
||||||
|
row-by-row, so the whole tranform also works row-by-row. The intent
|
||||||
|
is to fix this so that everything works in small(ish) chunks.
|
||||||
|
At present the change has no discernable effect on pngvalid --speed
|
||||||
|
or pngstest with (e.g.) rgb-8-1.8.png; user time and (minor) page
|
||||||
|
faults are the same in old and new versions. The same applies to
|
||||||
|
real-world 15MP PNG images; even on these the presence of the filter
|
||||||
|
code causes a cyclical progress through memory which will interfere
|
||||||
|
with any caching otherwise possible (useful word, 'otherwise'.)
|
||||||
|
Read row buffer changes. The read code now allocates one row buffer
|
||||||
|
of the size of the input PNG row and, only if required, one buffer of
|
||||||
|
the size of the output. The output buffer is required for the
|
||||||
|
progressive reader (always) and for the sequential reader if libpng
|
||||||
|
is de-interlacing an image (because the output row is used multiple
|
||||||
|
times if png_read_row is called with a display row parameter.) This
|
||||||
|
should reduce memory utilization by libpng significantly, but it has no
|
||||||
|
detectable effect on overall performance figures of the test programs;
|
||||||
|
these are probably dominated by memory allocations for the whole image
|
||||||
|
within the test programs.
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
33
CHANGES
33
CHANGES
@ -5271,6 +5271,39 @@ Version 1.7.0beta69 [November 23, 2015]
|
|||||||
by flaviommedeiros).
|
by flaviommedeiros).
|
||||||
Fixed bug recently introduced in png_set_PLTE() that uses png_ptr
|
Fixed bug recently introduced in png_set_PLTE() that uses png_ptr
|
||||||
not info_ptr.
|
not info_ptr.
|
||||||
|
Added pngvalid --transform --interlace test. This increases code
|
||||||
|
coverage by generating test cases with smaller length rows as a
|
||||||
|
result of the interlacing. Without this packswap handling was
|
||||||
|
incompletely tested.
|
||||||
|
Fixed NO_WRITE_INTERLACE in pngvalid.c. The support for writing
|
||||||
|
interlaced images directly from libpng 1.7 was unintentionally
|
||||||
|
disabled (INTERLACE_LAST was defined incorrectly, excluding the
|
||||||
|
interlaced images). This obscured the fact that the transform and
|
||||||
|
error test case generators lacked the support for writing interlaced
|
||||||
|
images from libpng.
|
||||||
|
Transform rewrite: perform transforms in small chunks. The intent
|
||||||
|
of this change is to reduce the memory footprint during transform
|
||||||
|
sequences by performing transforms in fixed (small) sized blocks of
|
||||||
|
pixels. The change is incomplete; the filter code still works
|
||||||
|
row-by-row, so the whole tranform also works row-by-row. The intent
|
||||||
|
is to fix this so that everything works in small(ish) chunks.
|
||||||
|
At present the change has no discernable effect on pngvalid --speed
|
||||||
|
or pngstest with (e.g.) rgb-8-1.8.png; user time and (minor) page
|
||||||
|
faults are the same in old and new versions. The same applies to
|
||||||
|
real-world 15MP PNG images; even on these the presence of the filter
|
||||||
|
code causes a cyclical progress through memory which will interfere
|
||||||
|
with any caching otherwise possible (useful word, 'otherwise'.)
|
||||||
|
Read row buffer changes. The read code now allocates one row buffer
|
||||||
|
of the size of the input PNG row and, only if required, one buffer of
|
||||||
|
the size of the output. The output buffer is required for the
|
||||||
|
progressive reader (always) and for the sequential reader if libpng
|
||||||
|
is de-interlacing an image (because the output row is used multiple
|
||||||
|
times if png_read_row is called with a display row parameter.) This
|
||||||
|
should reduce memory utilization by libpng significantly, but it has no
|
||||||
|
detectable effect on overall performance figures of the test programs;
|
||||||
|
these are probably dominated by memory allocations for the whole image
|
||||||
|
within the test programs.
|
||||||
|
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
4
png.c
4
png.c
@ -711,13 +711,13 @@ 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.7.0beta69 - November 22, 2015" PNG_STRING_NEWLINE \
|
"libpng version 1.7.0beta69 - November 23, 2015" PNG_STRING_NEWLINE \
|
||||||
"Copyright (c) 1998-2015 Glenn Randers-Pehrson" PNG_STRING_NEWLINE \
|
"Copyright (c) 1998-2015 Glenn Randers-Pehrson" 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.7.0beta69 - November 22, 2015\
|
return "libpng version 1.7.0beta69 - November 23, 2015\
|
||||||
Copyright (c) 1998-2015 Glenn Randers-Pehrson\
|
Copyright (c) 1998-2015 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.";
|
||||||
|
|||||||
10
png.h
10
png.h
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* png.h - header file for PNG reference library
|
/* png.h - header file for PNG reference library
|
||||||
*
|
*
|
||||||
* libpng version 1.7.0beta69, November 13, 2015
|
* libpng version 1.7.0beta69, November 23, 2015
|
||||||
*
|
*
|
||||||
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2015 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.7.0beta69, November 13, 2015:
|
* libpng versions 0.97, January 1998, through 1.7.0beta69, November 23, 2015:
|
||||||
* Glenn Randers-Pehrson.
|
* Glenn Randers-Pehrson.
|
||||||
* See also "Contributing Authors", below.
|
* See also "Contributing Authors", below.
|
||||||
*/
|
*/
|
||||||
@ -25,7 +25,7 @@
|
|||||||
*
|
*
|
||||||
* 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.7.0beta69, November 13, 2015, are
|
* libpng versions 1.0.7, July 1, 2000, through 1.7.0beta69, November 23, 2015, are
|
||||||
* Copyright (c) 2000-2002, 2004, 2006-2015 Glenn Randers-Pehrson, are
|
* Copyright (c) 2000-2002, 2004, 2006-2015 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
|
||||||
@ -218,7 +218,7 @@
|
|||||||
* Y2K compliance in libpng:
|
* Y2K compliance in libpng:
|
||||||
* =========================
|
* =========================
|
||||||
*
|
*
|
||||||
* November 13, 2015
|
* November 23, 2015
|
||||||
*
|
*
|
||||||
* 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.
|
||||||
@ -288,7 +288,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.7.0beta69"
|
#define PNG_LIBPNG_VER_STRING "1.7.0beta69"
|
||||||
#define PNG_HEADER_VERSION_STRING \
|
#define PNG_HEADER_VERSION_STRING \
|
||||||
" libpng version 1.7.0beta69 - November 13, 2015\n"
|
" libpng version 1.7.0beta69 - November 23, 2015\n"
|
||||||
|
|
||||||
#define PNG_LIBPNG_VER_SONUM 17
|
#define PNG_LIBPNG_VER_SONUM 17
|
||||||
#define PNG_LIBPNG_VER_DLLNUM 17
|
#define PNG_LIBPNG_VER_DLLNUM 17
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngconf.h - machine configurable file for libpng
|
/* pngconf.h - machine configurable file for libpng
|
||||||
*
|
*
|
||||||
* libpng version 1.7.0beta69, November 13, 2015
|
* libpng version 1.7.0beta69, November 23, 2015
|
||||||
*
|
*
|
||||||
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
|||||||
@ -958,7 +958,7 @@ option WRITE_PNG requires WRITE WRITE_TRANSFORMS enables INFO_IMAGE
|
|||||||
# Disabled by -DPNG_NO_CHECK_FOR_INVALID_INDEX
|
# Disabled by -DPNG_NO_CHECK_FOR_INVALID_INDEX
|
||||||
#
|
#
|
||||||
# 2) {READ,WRITE}_GET_PALETTE_MAX: returns the largest pixel value in a
|
# 2) {READ,WRITE}_GET_PALETTE_MAX: returns the largest pixel value in a
|
||||||
# color mapped PNG. Disbaled by -DPNG_NO_GET_PALETTE_MAX
|
# color mapped PNG. Disabled by -DPNG_NO_GET_PALETTE_MAX
|
||||||
#
|
#
|
||||||
# All of this stuff can be removed by "option PALETTE_MAX off" but using
|
# All of this stuff can be removed by "option PALETTE_MAX off" but using
|
||||||
# -DPNG_NO_ defines on the command line just sets the relevant option to
|
# -DPNG_NO_ defines on the command line just sets the relevant option to
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
/* pnglibconf.h - library build configuration */
|
/* pnglibconf.h - library build configuration */
|
||||||
|
|
||||||
/* Libpng version 1.7.0beta69 - November 13, 2015 */
|
/* Libpng version 1.7.0beta69 - November 23, 2015 */
|
||||||
|
|
||||||
/* Copyright (c) 1998-2015 Glenn Randers-Pehrson */
|
/* Copyright (c) 1998-2015 Glenn Randers-Pehrson */
|
||||||
|
|
||||||
@ -136,6 +136,7 @@
|
|||||||
#define PNG_WRITE_FILTER_SUPPORTED
|
#define PNG_WRITE_FILTER_SUPPORTED
|
||||||
#define PNG_WRITE_FLUSH_SUPPORTED
|
#define PNG_WRITE_FLUSH_SUPPORTED
|
||||||
#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED
|
#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED
|
||||||
|
#define PNG_WRITE_INTERLACE_SUPPORTED
|
||||||
#define PNG_WRITE_INTERLACING_SUPPORTED
|
#define PNG_WRITE_INTERLACING_SUPPORTED
|
||||||
#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED
|
#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED
|
||||||
#define PNG_WRITE_INVERT_ALPHA_SUPPORTED
|
#define PNG_WRITE_INVERT_ALPHA_SUPPORTED
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user