[devel] Updated documentation about libpng-1.2 to 1.4 differences.

This commit is contained in:
Glenn Randers-Pehrson 2009-12-30 08:37:29 -06:00
parent f81b50bf9d
commit 45af819322
4 changed files with 95 additions and 99 deletions

View File

@ -1,5 +1,5 @@
Libpng 1.4.0rc06 - December 29, 2009 Libpng 1.4.0rc07 - December 30, 2009
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.
@ -9,20 +9,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.4.0rc06.tar.xz (LZMA-compressed, recommended) 1.4.0rc07.tar.xz (LZMA-compressed, recommended)
1.4.0rc06.tar.gz 1.4.0rc07.tar.gz
1.4.0rc06.tar.bz2 1.4.0rc07.tar.bz2
Source files with CRLF line endings (for Windows), without the Source files with CRLF line endings (for Windows), without the
"configure" script "configure" script
lp140r06.zip lp140r07.zip
lp140r06.7z lp140r07.7z
Other information: Other information:
1.4.0rc06-README.txt 1.4.0rc07-README.txt
1.4.0rc06-LICENSE.txt 1.4.0rc07-LICENSE.txt
Changes since the last public release (1.2.10): Changes since the last public release (1.2.10):
@ -759,7 +759,10 @@ version 1.4.0rc06 [December 29, 2009]
Reverted the gamma_table changes from libpng-1.4.0beta109. Reverted the gamma_table changes from libpng-1.4.0beta109.
Fixed some indentation errors. Fixed some indentation errors.
version 1.4.0 [December 29, 2009] version 1.4.0rc07 [December 30, 2009]
Revised libpng*.txt and libpng.3 about 1.2.x->1.4.x differences.
version 1.4.0 [December 30, 2009]
No changes. No changes.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net Send comments/corrections/commendations to png-mng-implement at lists.sf.net

View File

@ -2446,7 +2446,10 @@ version 1.4.0rc06 [December 29, 2009]
Reverted the gamma_table changes from libpng-1.4.0beta109. Reverted the gamma_table changes from libpng-1.4.0beta109.
Fixed some indentation errors. Fixed some indentation errors.
version 1.4.0 [December 29, 2009] version 1.4.0rc07 [December 30, 2009]
Revised libpng*.txt and libpng.3 about 1.2.x->1.4.x differences.
version 1.4.0 [December 30, 2009]
No changes. No changes.
Send comments/corrections/commendations to png-mng-implement at lists.sf.net Send comments/corrections/commendations to png-mng-implement at lists.sf.net

View File

@ -1,6 +1,6 @@
libpng.txt - A description on how to use and modify libpng libpng.txt - A description on how to use and modify libpng
libpng version 1.4.0rc06 - December 29, 2009 libpng version 1.4.0rc07 - December 30, 2009
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-2009 Glenn Randers-Pehrson Copyright (c) 1998-2009 Glenn Randers-Pehrson
@ -11,7 +11,7 @@ libpng.txt - A description on how to use and modify libpng
Based on: Based on:
libpng versions 0.97, January 1998, through 1.4.0rc06 - December 29, 2009 libpng versions 0.97, January 1998, through 1.4.0rc07 - December 30, 2009
Updated and distributed by Glenn Randers-Pehrson Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2009 Glenn Randers-Pehrson Copyright (c) 1998-2009 Glenn Randers-Pehrson
@ -878,7 +878,7 @@ things.
As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
added. It expands the sample depth without changing tRNS to alpha. added. It expands the sample depth without changing tRNS to alpha.
As of libpng version 1.4.0rc06, not all possible expansions are supported. As of libpng version 1.4.0rc07, not all possible expansions are supported.
In the following table, the 01 means grayscale with depth<8, 31 means In the following table, the 01 means grayscale with depth<8, 31 means
indexed with depth<8, other numerals represent the color type, "T" means indexed with depth<8, other numerals represent the color type, "T" means
@ -2999,20 +2999,6 @@ IX. Changes to Libpng from version 1.0.x/1.2.x to 1.4.x
Private libpng prototypes and macro definitions were moved from Private libpng prototypes and macro definitions were moved from
png.h and pngconf.h into a new pngpriv.h header file. png.h and pngconf.h into a new pngpriv.h header file.
Support for global arrays was removed.
Some obsolete/deprecated macros and functions have been removed.
Typecasted NULL definitions such as
#define png_voidp_NULL (png_voidp)NULL
were eliminated. If you used these in your application, just use
NULL instead.
The obsolete, unused pnggccrd.c and pngvcrd.c files and related makefiles
%were removed.
The PNG_1_0_X and PNG_1_2_X macros were eliminated.
Functions png_set_benign_errors(), png_benign_error(), and Functions png_set_benign_errors(), png_benign_error(), and
png_chunk_benign_error() were added. png_chunk_benign_error() were added.
@ -3024,23 +3010,28 @@ were added to the library.
We implemented support for I/O states by adding png_ptr member io_state We implemented support for I/O states by adding png_ptr member io_state
and functions png_get_io_chunk_name() and png_get_io_state() in pngget.c and functions png_get_io_chunk_name() and png_get_io_state() in pngget.c
The png_calloc() function was added and is used in place of
of "png_malloc(); png_memset();" except in the case in png_read_png()
where the array consists of pointers; in this case a "for" loop is used
after the png_malloc() to set the pointers to NULL.
We added PNG_TRANSFORM_GRAY_TO_RGB to the available high-level We added PNG_TRANSFORM_GRAY_TO_RGB to the available high-level
input transforms. input transforms.
The call to png_do_chop() in pngrtran.c, which reduces 16-bit input
files to 8-bit bit depth, was relocated ahead of the building
of gamma tables. This allows us to build 8-bit tables instead
of 16-bit tables, when only 8-bit tables are needed. This avoids
wasting some computing resources when the application has called
the png_set_strip_16() function and encounters a 16-bit PNG file.
Checking for and reporting of errors in the IHDR chunk is more thorough. Checking for and reporting of errors in the IHDR chunk is more thorough.
Support for global arrays was removed, to improve thread safety.
Some obsolete/deprecated macros and functions have been removed.
Typecasted NULL definitions such as
#define png_voidp_NULL (png_voidp)NULL
were eliminated. If you used these in your application, just use
NULL instead.
The png_struct and info_struct members "trans" and "trans_values" were
changed to "trans_alpha" and "trans_color", respectively.
The obsolete, unused pnggccrd.c and pngvcrd.c files and related makefiles
%were removed.
The PNG_1_0_X and PNG_1_2_X macros were eliminated.
The PNG_LEGACY_SUPPORTED macro was eliminated. The PNG_LEGACY_SUPPORTED macro was eliminated.
Many WIN32_WCE #ifdefs were removed. Many WIN32_WCE #ifdefs were removed.
@ -3049,10 +3040,6 @@ The functions png_read_init(info_ptr), png_write_init(info_ptr),
png_info_init(info_ptr), png_read_destroy(), and png_write_destroy() png_info_init(info_ptr), png_read_destroy(), and png_write_destroy()
have been removed. They have been deprecated since libpng-0.95. have been removed. They have been deprecated since libpng-0.95.
Support for numbered error messages was removed by default, since we
never got around to actually numbering the error messages. The function
png_set_strip_error_numbers() was removed from the library by default.
The png_permit_empty_plte() was removed. It has been deprecated The png_permit_empty_plte() was removed. It has been deprecated
since libpng-1.0.9. Use png_permit_mng_features() instead. since libpng-1.0.9. Use png_permit_mng_features() instead.
@ -3061,28 +3048,36 @@ png_set_mmx_thresholds(), png_get_asm_flags(),
png_get_mmx_bitdepth_threshold(), png_get_mmx_rowbytes_threshold(), png_get_mmx_bitdepth_threshold(), png_get_mmx_rowbytes_threshold(),
png_set_asm_flags(), and png_mmx_supported() png_set_asm_flags(), and png_mmx_supported()
We removed the png_check_sig(), png_memcpy_check(), and We removed the obsolete png_check_sig(), png_memcpy_check(), and
png_memset_check() functions. png_memset_check() functions. Instead use !png_sig_cmp(), png_memcpy(),
and png_memset(), respectively.
We changed the prototype for png_malloc() from We changed the prototype for png_malloc() from
png_malloc(png_structp png_ptr, png_uint_32 size) png_malloc(png_structp png_ptr, png_uint_32 size)
to to
png_malloc(png_structp png_ptr, png_alloc_size_t size) png_malloc(png_structp png_ptr, png_alloc_size_t size)
The png_calloc() function was added and is used in place of
of "png_malloc(); png_memset();" except in the case in png_read_png()
where the array consists of pointers; in this case a "for" loop is used
after the png_malloc() to set the pointers to NULL, to give robust.
behavior in case the application runs out of memory part-way through
the process.
We changed the prototypes of png_get_compression_buffer_size() and We changed the prototypes of png_get_compression_buffer_size() and
png_set_compression_buffer_size() to work with png_size_t instead of png_set_compression_buffer_size() to work with png_size_t instead of
png_uint_32. png_uint_32.
Support for numbered error messages was removed by default, since we
never got around to actually numbering the error messages. The function
png_set_strip_error_numbers() was removed from the library by default.
The png_zalloc() and png_zfree() functions are no longer exported.
The png_zalloc() function no longer zeroes out the memory that it The png_zalloc() function no longer zeroes out the memory that it
allocates. allocates.
The png_zalloc() and png_zfree() functions are no longer exported.
We removed the trailing '.' from the warning and error messages. We removed the trailing '.' from the warning and error messages.
The png_struct and info_struct members "trans" and "trans_values" were
changed to "trans_alpha" and "trans_color", respectively.
X. Detecting libpng X. Detecting libpng
The png_get_io_ptr() function has been present since libpng-0.88, has never The png_get_io_ptr() function has been present since libpng-0.88, has never
@ -3221,13 +3216,13 @@ Other rules can be inferred by inspecting the libpng source.
XIII. Y2K Compliance in libpng XIII. Y2K Compliance in libpng
December 29, 2009 December 30, 2009
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.4.0rc06 are Y2K compliant. It is my belief that earlier upward through 1.4.0rc07 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant. versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer that Libpng only has three year fields. One is a 2-byte unsigned integer that

View File

@ -1,6 +1,6 @@
.TH LIBPNG 3 "December 29, 2009" .TH LIBPNG 3 "December 30, 2009"
.SH NAME .SH NAME
libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0rc06 libpng \- Portable Network Graphics (PNG) Reference Library 1.4.0rc07
.SH SYNOPSIS .SH SYNOPSIS
\fI\fB \fI\fB
@ -777,7 +777,7 @@ Following is a copy of the libpng.txt file that accompanies libpng.
.SH LIBPNG.TXT .SH LIBPNG.TXT
libpng.txt - A description on how to use and modify libpng libpng.txt - A description on how to use and modify libpng
libpng version 1.4.0rc06 - December 29, 2009 libpng version 1.4.0rc07 - December 30, 2009
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-2009 Glenn Randers-Pehrson Copyright (c) 1998-2009 Glenn Randers-Pehrson
@ -788,7 +788,7 @@ libpng.txt - A description on how to use and modify libpng
Based on: Based on:
libpng versions 0.97, January 1998, through 1.4.0rc06 - December 29, 2009 libpng versions 0.97, January 1998, through 1.4.0rc07 - December 30, 2009
Updated and distributed by Glenn Randers-Pehrson Updated and distributed by Glenn Randers-Pehrson
Copyright (c) 1998-2009 Glenn Randers-Pehrson Copyright (c) 1998-2009 Glenn Randers-Pehrson
@ -1655,7 +1655,7 @@ things.
As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was As of libpng version 1.2.9, png_set_expand_gray_1_2_4_to_8() was
added. It expands the sample depth without changing tRNS to alpha. added. It expands the sample depth without changing tRNS to alpha.
As of libpng version 1.4.0rc06, not all possible expansions are supported. As of libpng version 1.4.0rc07, not all possible expansions are supported.
In the following table, the 01 means grayscale with depth<8, 31 means In the following table, the 01 means grayscale with depth<8, 31 means
indexed with depth<8, other numerals represent the color type, "T" means indexed with depth<8, other numerals represent the color type, "T" means
@ -3776,20 +3776,6 @@ which does not. It has been deprecated since libpng-1.0.18 and 1.2.9.
Private libpng prototypes and macro definitions were moved from Private libpng prototypes and macro definitions were moved from
png.h and pngconf.h into a new pngpriv.h header file. png.h and pngconf.h into a new pngpriv.h header file.
Support for global arrays was removed.
Some obsolete/deprecated macros and functions have been removed.
Typecasted NULL definitions such as
#define png_voidp_NULL (png_voidp)NULL
were eliminated. If you used these in your application, just use
NULL instead.
The obsolete, unused pnggccrd.c and pngvcrd.c files and related makefiles
%were removed.
The PNG_1_0_X and PNG_1_2_X macros were eliminated.
Functions png_set_benign_errors(), png_benign_error(), and Functions png_set_benign_errors(), png_benign_error(), and
png_chunk_benign_error() were added. png_chunk_benign_error() were added.
@ -3801,23 +3787,28 @@ were added to the library.
We implemented support for I/O states by adding png_ptr member io_state We implemented support for I/O states by adding png_ptr member io_state
and functions png_get_io_chunk_name() and png_get_io_state() in pngget.c and functions png_get_io_chunk_name() and png_get_io_state() in pngget.c
The png_calloc() function was added and is used in place of
of "png_malloc(); png_memset();" except in the case in png_read_png()
where the array consists of pointers; in this case a "for" loop is used
after the png_malloc() to set the pointers to NULL.
We added PNG_TRANSFORM_GRAY_TO_RGB to the available high-level We added PNG_TRANSFORM_GRAY_TO_RGB to the available high-level
input transforms. input transforms.
The call to png_do_chop() in pngrtran.c, which reduces 16-bit input
files to 8-bit bit depth, was relocated ahead of the building
of gamma tables. This allows us to build 8-bit tables instead
of 16-bit tables, when only 8-bit tables are needed. This avoids
wasting some computing resources when the application has called
the png_set_strip_16() function and encounters a 16-bit PNG file.
Checking for and reporting of errors in the IHDR chunk is more thorough. Checking for and reporting of errors in the IHDR chunk is more thorough.
Support for global arrays was removed, to improve thread safety.
Some obsolete/deprecated macros and functions have been removed.
Typecasted NULL definitions such as
#define png_voidp_NULL (png_voidp)NULL
were eliminated. If you used these in your application, just use
NULL instead.
The png_struct and info_struct members "trans" and "trans_values" were
changed to "trans_alpha" and "trans_color", respectively.
The obsolete, unused pnggccrd.c and pngvcrd.c files and related makefiles
%were removed.
The PNG_1_0_X and PNG_1_2_X macros were eliminated.
The PNG_LEGACY_SUPPORTED macro was eliminated. The PNG_LEGACY_SUPPORTED macro was eliminated.
Many WIN32_WCE #ifdefs were removed. Many WIN32_WCE #ifdefs were removed.
@ -3826,10 +3817,6 @@ The functions png_read_init(info_ptr), png_write_init(info_ptr),
png_info_init(info_ptr), png_read_destroy(), and png_write_destroy() png_info_init(info_ptr), png_read_destroy(), and png_write_destroy()
have been removed. They have been deprecated since libpng-0.95. have been removed. They have been deprecated since libpng-0.95.
Support for numbered error messages was removed by default, since we
never got around to actually numbering the error messages. The function
png_set_strip_error_numbers() was removed from the library by default.
The png_permit_empty_plte() was removed. It has been deprecated The png_permit_empty_plte() was removed. It has been deprecated
since libpng-1.0.9. Use png_permit_mng_features() instead. since libpng-1.0.9. Use png_permit_mng_features() instead.
@ -3838,28 +3825,36 @@ png_set_mmx_thresholds(), png_get_asm_flags(),
png_get_mmx_bitdepth_threshold(), png_get_mmx_rowbytes_threshold(), png_get_mmx_bitdepth_threshold(), png_get_mmx_rowbytes_threshold(),
png_set_asm_flags(), and png_mmx_supported() png_set_asm_flags(), and png_mmx_supported()
We removed the png_check_sig(), png_memcpy_check(), and We removed the obsolete png_check_sig(), png_memcpy_check(), and
png_memset_check() functions. png_memset_check() functions. Instead use !png_sig_cmp(), png_memcpy(),
and png_memset(), respectively.
We changed the prototype for png_malloc() from We changed the prototype for png_malloc() from
png_malloc(png_structp png_ptr, png_uint_32 size) png_malloc(png_structp png_ptr, png_uint_32 size)
to to
png_malloc(png_structp png_ptr, png_alloc_size_t size) png_malloc(png_structp png_ptr, png_alloc_size_t size)
The png_calloc() function was added and is used in place of
of "png_malloc(); png_memset();" except in the case in png_read_png()
where the array consists of pointers; in this case a "for" loop is used
after the png_malloc() to set the pointers to NULL, to give robust.
behavior in case the application runs out of memory part-way through
the process.
We changed the prototypes of png_get_compression_buffer_size() and We changed the prototypes of png_get_compression_buffer_size() and
png_set_compression_buffer_size() to work with png_size_t instead of png_set_compression_buffer_size() to work with png_size_t instead of
png_uint_32. png_uint_32.
Support for numbered error messages was removed by default, since we
never got around to actually numbering the error messages. The function
png_set_strip_error_numbers() was removed from the library by default.
The png_zalloc() and png_zfree() functions are no longer exported.
The png_zalloc() function no longer zeroes out the memory that it The png_zalloc() function no longer zeroes out the memory that it
allocates. allocates.
The png_zalloc() and png_zfree() functions are no longer exported.
We removed the trailing '.' from the warning and error messages. We removed the trailing '.' from the warning and error messages.
The png_struct and info_struct members "trans" and "trans_values" were
changed to "trans_alpha" and "trans_color", respectively.
.SH X. Detecting libpng .SH X. Detecting libpng
The png_get_io_ptr() function has been present since libpng-0.88, has never The png_get_io_ptr() function has been present since libpng-0.88, has never
@ -3998,13 +3993,13 @@ Other rules can be inferred by inspecting the libpng source.
.SH XIII. Y2K Compliance in libpng .SH XIII. Y2K Compliance in libpng
December 29, 2009 December 30, 2009
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.4.0rc06 are Y2K compliant. It is my belief that earlier upward through 1.4.0rc07 are Y2K compliant. It is my belief that earlier
versions were also Y2K compliant. versions were also Y2K compliant.
Libpng only has three year fields. One is a 2-byte unsigned integer that Libpng only has three year fields. One is a 2-byte unsigned integer that
@ -4232,7 +4227,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.4.0rc06 - December 29, 2009: Libpng version 1.4.0rc07 - December 30, 2009:
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).
@ -4255,7 +4250,7 @@ this sentence.
This code is released under the libpng license. This code is released under the libpng license.
libpng versions 1.2.6, August 15, 2004, through 1.4.0rc06, December 29, 2009, are libpng versions 1.2.6, August 15, 2004, through 1.4.0rc07, December 30, 2009, are
Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are Copyright (c) 2004,2006-2007 Glenn Randers-Pehrson, and are
distributed according to the same disclaimer and license as libpng-1.2.5 distributed according to the same disclaimer and license as libpng-1.2.5
with the following individual added to the list of Contributing Authors with the following individual added to the list of Contributing Authors
@ -4354,7 +4349,7 @@ certification mark of the Open Source Initiative.
Glenn Randers-Pehrson Glenn Randers-Pehrson
glennrp at users.sourceforge.net glennrp at users.sourceforge.net
December 29, 2009 December 30, 2009
.\" end of man page .\" end of man page