[libpng15] Added PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED macro, on by default.

This commit is contained in:
Glenn Randers-Pehrson 2015-02-18 13:00:09 -06:00
parent a117d4eacc
commit 014440e6cd
6 changed files with 55 additions and 37 deletions

View File

@ -1,5 +1,5 @@
Libpng 1.5.22beta03 - February 17, 2015
Libpng 1.5.22beta03 - February 18, 2015
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.
@ -41,7 +41,9 @@ Version 1.5.22beta02 [February 17, 2015]
by the user at build time or run time. This provides a more robust
defense against DOS and as-yet undiscovered overflows.
Version 1.5.22beta03 [February 17, 2015]
Version 1.5.22beta03 [February 18, 2015]
Added PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED macro, on by default.
Allow user to call png_get_IHDR() with NULL arguments (Reuben Hawkins).
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit

View File

@ -4305,7 +4305,9 @@ Version 1.5.22beta02 [February 17, 2015]
by the user at build time or run time. This provides a more robust
defense against DOS and as-yet undiscovered overflows.
Version 1.5.22beta03 [February 17, 2015]
Version 1.5.22beta03 [February 18, 2015]
Added PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED macro, on by default.
Allow user to call png_get_IHDR() with NULL arguments (Reuben Hawkins).
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
(subscription required; visit

View File

@ -1,6 +1,6 @@
Libpng-manual.txt - A description on how to use and modify libpng
libpng version 1.5.22beta03 - February 17, 2015
libpng version 1.5.22beta03 - February 18, 2015
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2014 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.5.22beta03 - February 17, 2015
libpng versions 0.97, January 1998, through 1.5.22beta03 - February 18, 2015
Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2014 Glenn Randers-Pehrson
@ -1066,13 +1066,13 @@ in until png_read_end() has read the chunk data following the image.
the PNG datastream is embedded in
a MNG-1.0 datastream)
Any or all of interlace_type, compression_type, or
filter_method can be NULL if you are
not interested in their values.
Any of width, height, color_type, bit_depth,
interlace_type, compression_type, or filter_method can
be NULL if you are not interested in their values.
Note that png_get_IHDR() returns 32-bit data into
the application's width and height variables.
This is an unsafe situation if these are 16-bit
This is an unsafe situation if these are not png_uint_32
variables. In such situations, the
png_get_image_width() and png_get_image_height()
functions described below are safer.
@ -4475,6 +4475,9 @@ exported functions are marked with PNGAPI:
body;
}
The return type and decorations are placed on a separate line
ahead of the function name, as illustrated above.
The prototypes for all exported functions appear in png.h,
above the comment that says
@ -4489,9 +4492,7 @@ We mark all non-exported functions with "/* PRIVATE */"":
}
The prototypes for non-exported functions (except for those in
pngtest) appear in
pngpriv.h
above the comment that says
pngtest) appear in pngpriv.h above the comment that says
/* Maintainer: Put new private prototypes here ^ */
@ -4500,6 +4501,9 @@ functions and variables begin with "png_", and all publicly visible C
preprocessor macros begin with "PNG". We request that applications that
use libpng *not* begin any of their own symbols with either of these strings.
Control keywords if, for, while, and switch are always followed by a space
to distinguish them from function calls, which have no trailing space.
We put a space after each comma and after each semicolon
in "for" statements, and we put spaces before and after each
C binary operator and after "for" or "while", and before
@ -4531,7 +4535,7 @@ Other rules can be inferred by inspecting the libpng source.
XIV. Y2K Compliance in libpng
February 17, 2015
February 18, 2015
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
@ -4540,8 +4544,8 @@ This is your unofficial assurance that libpng from version 0.71 and
upward through 1.5.22beta03 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 that
will hold years up to 65535. The other holds the date in text
Libpng only has two year fields. One is a 2-byte unsigned integer
that will hold years up to 65535. The other holds the date in text
format, and will hold years up to 9999.
The integer is

View File

@ -1,4 +1,4 @@
.TH LIBPNG 3 "February 17, 2015"
.TH LIBPNG 3 "February 18, 2015"
.SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.5.22beta03
.SH SYNOPSIS
@ -492,7 +492,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.5.22beta03 - February 17, 2015
libpng version 1.5.22beta03 - February 18, 2015
Updated and distributed by Glenn Randers-Pehrson
<glennrp at users.sourceforge.net>
Copyright (c) 1998-2014 Glenn Randers-Pehrson
@ -503,7 +503,7 @@ Libpng-manual.txt - A description on how to use and modify libpng
Based on:
libpng versions 0.97, January 1998, through 1.5.22beta03 - February 17, 2015
libpng versions 0.97, January 1998, through 1.5.22beta03 - February 18, 2015
Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2014 Glenn Randers-Pehrson
@ -1558,13 +1558,13 @@ in until png_read_end() has read the chunk data following the image.
the PNG datastream is embedded in
a MNG-1.0 datastream)
Any or all of interlace_type, compression_type, or
filter_method can be NULL if you are
not interested in their values.
Any of width, height, color_type, bit_depth,
interlace_type, compression_type, or filter_method can
be NULL if you are not interested in their values.
Note that png_get_IHDR() returns 32-bit data into
the application's width and height variables.
This is an unsafe situation if these are 16-bit
This is an unsafe situation if these are not png_uint_32
variables. In such situations, the
png_get_image_width() and png_get_image_height()
functions described below are safer.
@ -4967,6 +4967,9 @@ exported functions are marked with PNGAPI:
body;
}
The return type and decorations are placed on a separate line
ahead of the function name, as illustrated above.
The prototypes for all exported functions appear in png.h,
above the comment that says
@ -4981,9 +4984,7 @@ We mark all non-exported functions with "/* PRIVATE */"":
}
The prototypes for non-exported functions (except for those in
pngtest) appear in
pngpriv.h
above the comment that says
pngtest) appear in pngpriv.h above the comment that says
/* Maintainer: Put new private prototypes here ^ */
@ -4992,6 +4993,9 @@ functions and variables begin with "png_", and all publicly visible C
preprocessor macros begin with "PNG". We request that applications that
use libpng *not* begin any of their own symbols with either of these strings.
Control keywords if, for, while, and switch are always followed by a space
to distinguish them from function calls, which have no trailing space.
We put a space after each comma and after each semicolon
in "for" statements, and we put spaces before and after each
C binary operator and after "for" or "while", and before
@ -5023,7 +5027,7 @@ Other rules can be inferred by inspecting the libpng source.
.SH XIV. Y2K Compliance in libpng
February 17, 2015
February 18, 2015
Since the PNG Development group is an ad-hoc body, we can't make
an official declaration.
@ -5032,8 +5036,8 @@ This is your unofficial assurance that libpng from version 0.71 and
upward through 1.5.22beta03 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 that
will hold years up to 65535. The other holds the date in text
Libpng only has two year fields. One is a 2-byte unsigned integer
that will hold years up to 65535. The other holds the date in text
format, and will hold years up to 9999.
The integer is
@ -5330,7 +5334,7 @@ possible without all of you.
Thanks to Frank J. T. Wojcik for helping with the documentation.
Libpng version 1.5.22beta03 - February 17, 2015:
Libpng version 1.5.22beta03 - February 18, 2015:
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
Currently maintained by Glenn Randers-Pehrson (glennrp at users.sourceforge.net).
@ -5353,7 +5357,7 @@ this sentence.
This code is released under the libpng license.
libpng versions 1.2.6, August 15, 2004, through 1.5.22beta03, February 17, 2015, are
libpng versions 1.2.6, August 15, 2004, through 1.5.22beta03, February 18, 2015, are
Copyright (c) 2004,2006-20014 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors
@ -5452,7 +5456,7 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson
glennrp at users.sourceforge.net
February 17, 2015
February 18, 2015
.\" end of man page

16
png.h
View File

@ -1,7 +1,7 @@
/* png.h - header file for PNG reference library
*
* libpng version 1.5.22beta03 - February 17, 2015
* libpng version 1.5.22beta03 - February 18, 2015
* Copyright (c) 1998-2015 Glenn Randers-Pehrson
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
@ -11,7 +11,7 @@
* Authors and maintainers:
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
* libpng versions 0.97, January 1998, through 1.5.22beta03 - February 17, 2015: Glenn
* libpng versions 0.97, January 1998, through 1.5.22beta03 - February 18, 2015: Glenn
* See also "Contributing Authors", below.
*
* Note about libpng version numbers:
@ -237,7 +237,7 @@
*
* This code is released under the libpng license.
*
* libpng versions 1.2.6, August 15, 2004, through 1.5.22beta03, February 17, 2015, are
* libpng versions 1.2.6, August 15, 2004, through 1.5.22beta03, February 18, 2015, are
* Copyright (c) 2004, 2006-2015 Glenn Randers-Pehrson, and are
* distributed according to the same disclaimer and license as libpng-1.2.5
* with the following individual added to the list of Contributing Authors:
@ -349,7 +349,7 @@
* Y2K compliance in libpng:
* =========================
*
* February 17, 2015
* February 18, 2015
*
* Since the PNG Development group is an ad-hoc body, we can't make
* an official declaration.
@ -418,7 +418,7 @@
/* Version information for png.h - this should match the version in png.c */
#define PNG_LIBPNG_VER_STRING "1.5.22beta03"
#define PNG_HEADER_VERSION_STRING \
" libpng version 1.5.22beta03 - February 17, 2015\n"
" libpng version 1.5.22beta03 - February 18, 2015\n"
#define PNG_LIBPNG_VER_SONUM 15
#define PNG_LIBPNG_VER_DLLNUM 15
@ -1050,11 +1050,13 @@ PNG_EXPORTA(5, png_structp, png_create_write_struct,
png_error_ptr warn_fn),
PNG_ALLOCATED);
#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED
PNG_EXPORT(6, png_size_t, png_get_compression_buffer_size,
(png_const_structp png_ptr));
PNG_EXPORT(7, void, png_set_compression_buffer_size, (png_structp png_ptr,
png_size_t size));
#endif /* WRITE_CUSTOMIZE_COMPRESSION */
/* Moved from pngconf.h in 1.4.0 and modified to ensure setjmp/longjmp
* match up.
@ -1720,6 +1722,7 @@ PNG_FIXED_EXPORT(209, void, png_set_filter_heuristics_fixed,
* for PNG images, and do considerably fewer caclulations. In the future,
* these values may not correspond directly to the zlib compression levels.
*/
#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED
PNG_EXPORT(69, void, png_set_compression_level,
(png_structp png_ptr, int level));
@ -1737,7 +1740,7 @@ PNG_EXPORT(72, void, png_set_compression_window_bits, (png_structp png_ptr,
PNG_EXPORT(73, void, png_set_compression_method, (png_structp png_ptr,
int method));
#endif
#endif /* WRITE_CUSTOMIZE_COMPRESSION */
#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED
/* Also set zlib parameters for compressing non-IDAT chunks */
@ -1759,6 +1762,7 @@ PNG_EXPORT(225, void, png_set_text_compression_window_bits, (png_structp
PNG_EXPORT(226, void, png_set_text_compression_method, (png_structp png_ptr,
int method));
#endif /* PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED */
#endif /* WRITE */
/* These next functions are called for input/output, memory, and error
* handling. They are in the file pngrio.c, pngwio.c, and pngerror.c,

View File

@ -1396,6 +1396,7 @@ png_set_filter_heuristics_fixed(png_structp png_ptr, int heuristic_method,
#endif /* FIXED_POINT */
#endif /* PNG_WRITE_WEIGHTED_FILTER_SUPPORTED */
#ifdef PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED
void PNGAPI
png_set_compression_level(png_structp png_ptr, int level)
{
@ -1474,6 +1475,7 @@ png_set_compression_method(png_structp png_ptr, int method)
png_ptr->flags |= PNG_FLAG_ZLIB_CUSTOM_METHOD;
png_ptr->zlib_method = method;
}
#endif /* WRITE_CUSTOMIZE_COMPRESSION */
/* The following were added to libpng-1.5.4 */
#ifdef PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED