mirror of
https://git.code.sf.net/p/libpng/code.git
synced 2025-07-10 18:04:09 +02:00
246 lines
13 KiB
Plaintext
246 lines
13 KiB
Plaintext
|
|
Libpng 1.7.0beta06 - March 13, 2013
|
|
|
|
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.
|
|
|
|
Files available for download:
|
|
|
|
Source files with LF line endings (for Unix/Linux) and with a
|
|
"configure" script
|
|
|
|
1.7.0beta06.tar.xz (LZMA-compressed, recommended)
|
|
1.7.0beta06.tar.gz
|
|
|
|
Source files with CRLF line endings (for Windows), without the
|
|
"configure" script
|
|
|
|
lp170b06.7z (LZMA-compressed, recommended)
|
|
lp170b06.zip
|
|
|
|
Other information:
|
|
|
|
1.7.0beta06-README.txt
|
|
1.7.0beta06-LICENSE.txt
|
|
|
|
Changes since the last public release (1.6.0):
|
|
|
|
Version 1.7.0alpha01 [December 15, 2012]
|
|
Started 1.7.0 branch from libpng-1.6.0beta33.
|
|
Made 8-bit compose and rgb_to_grayscale accuracy improvements. These
|
|
changes cause 16-bit arithmetic to be used for 8-bit data in the gamma
|
|
corrected compose and grayscale operations. The arithmetic errors have
|
|
three sources all of which are fixed in this commit:
|
|
1) 8-bit linear calculations produce massive errors for lower intensity
|
|
values.
|
|
2) The old 16-bit "16 to 8" gamma table code erroneously wrote the lowest
|
|
output value into a table entry which corresponded to multiple output
|
|
values (so where the value written should have been the closest to the
|
|
transformed input value.)
|
|
3) In a number of cases the code to access the 16-bit table did not round;
|
|
it did a simple shift, which was wrong and made the side effects of (2)
|
|
even worse.
|
|
The new gamma code does not have the 16-to-8 problem at the cost of slightly
|
|
more calculations and the algorithm used to minimize the number of
|
|
calculations has been extended to all the 16-bit tables; it has advantages
|
|
for any significant gamma correction.
|
|
Rearranged png_struct, remove unused members, change png_set_filter handling
|
|
png_struct members rearranged - partly to reorder to avoid packing, partly
|
|
to put frequently accessed members at the start and partly to make
|
|
the grouping more clear. png_set_filter code has been rewritten and the
|
|
code shared with png_write_start_row moved to a common function. Comments
|
|
in png.h have been made more clear. Minor fixes to
|
|
contrib/libtests/timepng.c and some of the png_*_tRNS logic, including
|
|
more error detection in png_set_tRNS.
|
|
Cleaned up USER_LIMITS feature, removing members from png_struct when not
|
|
required.
|
|
Rearranged ARM-NEON optimizations to isolate the machine specific code to
|
|
the hardware subdirectory, and add comments to pngrutil.c so that
|
|
implementors of other optimizations will know what to do.
|
|
Fixed cases of unquoted DESTDIR in Makefile.am.
|
|
Rebuilt Makefile.in, configure, etc., with autoconf-2.69 and automake-1.12.5.
|
|
|
|
Version 1.7.0alpha02 [December 17, 2012]
|
|
Removed functions that were deprecated in libpng-1.6.0:
|
|
png_reset_zstream(), png_info_init_3(), and png_data_freer() and its
|
|
associated flags.
|
|
Removed some duplicated lines from contrib/tools/scale.c and png.c.
|
|
Changed some instances of png_warning() to png_app_error().
|
|
Updated some left over "1.6.0beta32" in code sources.
|
|
Fixed a "png_structp" prototype (should be png_structrp) in arm_init.c
|
|
Updated the version-number hack in pngvalid.c
|
|
|
|
Version 1.7.0alpha03 [December 19, 2012]
|
|
Cleaned up and enhanced the configure option; libpng now correctly
|
|
links and tests against zlib with a prefix; tests have been clarified; and
|
|
irrelevant or obsolete things (as defined by the autotools man page) have
|
|
been removed.
|
|
Documented new PNG_ABORT behavior in the manual and commentary in pngerror.c
|
|
Cleaned up whitespace in the synopsis portion of the manpage "libpng.3"
|
|
Fixed previous support for Z_PREFIX in configure builds, corrected sCAL APIs;
|
|
some of these use floating point arithmetic so they need to be disabled if
|
|
floating point arithmetic is switched off. This is a quiet API change -
|
|
previously it appeared that the APIs were supported if fixed point
|
|
arithmetic was used internally, however they required certain APIs (floor,
|
|
modf, frexp, atof) that are part of C floating point support. Changed
|
|
png_fixed and the gamma code specific version of the same to avoid floor(),
|
|
which may be a library function (not an intrinsic). Removed unused #if 0
|
|
code.
|
|
Disassembled the version number in scripts/options.awk (necessary for
|
|
building on SunOs).
|
|
|
|
Version 1.7.0alpha04 [December 23, 2012]
|
|
Added scripts/makefile.msys contributed by Christopher M. Wheeler
|
|
Made default Zlib compression settings be configurable. This adds #defines to
|
|
pnglibconf.h to control the defaults.
|
|
Fixed Windows build issues, enabled ARM compilation. Various warnings issued
|
|
by earlier versions of GCC fixed for Cygwin and Min/GW (which both use old
|
|
GCCs.) ARM support is enabled by default in zlib.props (unsupported by
|
|
Microsoft) and ARM compilation is made possible by deleting the check for
|
|
x86. The test programs cannot be run because they are not signed.
|
|
|
|
Version 1.7.0alpha05 [December 24, 2012]
|
|
Discontinued distributing libpng-1.x.x.tar.bz2.
|
|
Discontinued distributing libpng-1.7.0-1.6.0-diff.txt and similar.
|
|
|
|
Version 1.7.0alpha06 [January 1, 2013]
|
|
Fixed 'make distcheck' on SUN OS - libpng.so was not being removed
|
|
|
|
Version 1.7.0alpha07 [January 10, 2013]
|
|
Fixed conceivable but difficult to repro overflow. Also added two test
|
|
programs to generate and test a PNG which should have the problem.
|
|
|
|
Version 1.7.0alpha08 [January 17, 2013]
|
|
Corrected previous attempt at overflow detection in png_set_unknown_chunks().
|
|
|
|
Version 1.7.0alpha09 [January 21, 2013]
|
|
Pulled changes to multi-chunk handling from libpng-1.6.0beta40.
|
|
|
|
Version 1.7.0alpha10 [February 5, 2013]
|
|
Make symbol prefixing work with the ARM neon optimizations. Also
|
|
allow pngpriv.h to be included for preprocessor definitions only, so
|
|
it can be used in non-C/C++ files.
|
|
Added png_get_palette_max() function.
|
|
Changed png_size_t to size_t throughout headers, make sRGB check numbers
|
|
consistent.
|
|
Fixed ARM support (Mans Rullgard).
|
|
Removed stray out-of-order #endif and #ifdef (Mans Rullgard).
|
|
Ported libpng 1.5 options.awk/dfn file handling to 1.7, fixed one bug.
|
|
Rebuilt Makefile.in, configure, etc., with autoconf-2.69 and automake-1.13.
|
|
Minor fixes to assembler changes, verified with a dummy .S file
|
|
Removed cc -E workround, corrected png_get_palette_max API. Tested on
|
|
SUN OS cc 5.9, which demonstrates the tokenization problem previously
|
|
avoided by using /lib/cpp. Since all .dfn output is now protected
|
|
in double quotes unless it is to be macro substituted the fix should work
|
|
everywhere.
|
|
|
|
Version 1.7.0beta01 [February 15, 2013]
|
|
Enable parallel tests and rearrange TESTS order to take advantage of
|
|
the massive speed improvements use a make capable of parallel builds
|
|
on a multi-CPU machine and pass the right arguments to make (-j10000
|
|
for GNU make) to get the build to run in parallel.
|
|
Fixed previous support for Z_PREFIX in configure builds, corrected
|
|
sCAL APIs; some of these use floating point arithmetic so need to be
|
|
disabled if floating point arithmetic is switched off. This is a quiet API
|
|
change - previously it appeared that the APIs were supported if fixed point
|
|
arithmetic was used internally, however they required certain APIs (floor,
|
|
modf, frexp, atof) that are part of C floating point support. Changed
|
|
png_fixed and the gamma code specific version of the same to avoid floor(),
|
|
which may be a library function (not an intrinsic). Removed unused #if 0
|
|
code.
|
|
Fixed make distcheck to skip over the test result files. They were
|
|
being included because the whole of the 'tests' directory is included,
|
|
fixed to just include the actual test files and tests/pngstest. Also
|
|
reverted the previous erroneous change to remove the ${srcdir} from the
|
|
front of contrib, scripts, projects and added an explanation of what is
|
|
going on to Makefile.am
|
|
Fixed missing dependency in --prefix builds. The intermediate
|
|
internal 'prefix.h' file can only be generated correctly after pnglibconf.h,
|
|
however the dependency was not in Makefile.am. The symptoms are
|
|
unpredictable depending on the order make chooses to build pngprefix.h and
|
|
pnglibconf.h, often the error goes unnoticed because there is a system
|
|
pnglibconf.h to use instead.
|
|
Accept "," as a separator in pnglibconf.dfa and allow for
|
|
continuation lines. This adds to the syntax of "option" and "chunk" lines,
|
|
allowing the elements to be separated by a "," at the end of an element and
|
|
interpreting a "," at end of line as a continuation - so the following line
|
|
is read. The new syntax is optional and solely provided for readability.
|
|
Enclosed the new png_get_palette_max in #ifdef PNG_GET_PALETTE_MAX_SUPPORTED
|
|
block, and revised pnglibconf.h and pnglibconf.h.prebuilt accordingly.
|
|
|
|
Version 1.7.0beta02 [February 18, 2013]
|
|
Fixed a race condition in the creation of the build 'scripts' directory
|
|
while building with a parallel make.
|
|
Use approved/supported Android method to check for NEON, use Linux/POSIX
|
|
1003.1 API to check /proc/self/auxv avoiding buffer allocation and other
|
|
library calls (ported from libpng15).
|
|
Use parentheses more consistently in "#if defined(MACRO)" tests.
|
|
Folded long lines.
|
|
|
|
Version 1.7.0beta03 [February 22, 2013]
|
|
Reenabled code to allow zero length PLTE chunks for MNG.
|
|
Fixed ALIGNED_MEMORY support.
|
|
Allow run-time ARM NEON checking to be disabled. A new configure option:
|
|
--enable-arm-neon=always will stop the run-time checks. New checks
|
|
within arm/arm_init.c will cause the code not to be compiled unless
|
|
__ARM_NEON__ is set. This should make it fail safe (if someone asks
|
|
for it on then the build will fail if it can't be done.)
|
|
Updated the INSTALL document.
|
|
|
|
Version 1.7.0beta04 [February 27, 2013]
|
|
Revised INSTALL to recommend using CPPFLAGS instead of INCLUDES.
|
|
Revised scripts/makefile.freebsd to respect ZLIBLIB and ZLIBINC.
|
|
Revised scripts/dfn.awk to work with the buggy MSYS awk that has trouble
|
|
with CRLF line endings.
|
|
|
|
Version 1.7.0beta05 [March 5, 2013]
|
|
Avoid a possible memory leak in contrib/gregbook/readpng.c
|
|
Changed user chunk callback API to respect global and per chunk defaults.
|
|
Previously a return of 0 from a user chunk callback would result in the
|
|
chunk being saved (if this was safe, even if the chunk was unsafe-to-copy);
|
|
this change respects the defaults set by the application, so unknown chunks
|
|
can be discarded by default and known-safe ones preserved.
|
|
Corrected Android builds and corrected libpng.vers with symbol
|
|
prefixing. This adds an API to set optimization options externally,
|
|
providing an alternative and general solution for the non-portable
|
|
run-time tests used by the ARM Neon code. It also makes those tests
|
|
compile and link on Android. The order of settings vs options in
|
|
pnglibconf.h is reversed to allow settings to depend on options and
|
|
options can now set (or override) the defaults for settings.
|
|
|
|
Version 1.7.0beta06 [March 13, 2013]
|
|
Corrected simplified API default gamma for color-mapped output, added
|
|
a flag to change default. In 1.6.0 when the simplified API was used
|
|
to produce color-mapped output from an input image with no gamma
|
|
information the gamma assumed for the input could be different from
|
|
that assumed for non-color-mapped output. In particular 16-bit depth
|
|
input files were assumed to be sRGB encoded, whereas in the 'direct'
|
|
case they were assumed to have linear data. This was an error. The
|
|
fix makes the simplified API treat all input files the same way and
|
|
adds a new flag to the png_image::flags member to allow the
|
|
application/user to specify that 16-bit files contain sRGB data
|
|
rather than the default linear.
|
|
Fixed bugs in the pngpixel and makepng test programs.
|
|
Fixed CMakelists.txt to allow building a single variant of the library
|
|
(Claudio Bley):
|
|
Introduced a PNG_LIB_TARGETS variable that lists all activated library
|
|
targets. It is an error if this variable ends up empty, ie. you have
|
|
to build at least one library variant.
|
|
Made the *_COPY targets only depend on library targets actually being build.
|
|
Use PNG_LIB_TARGETS to unify a code path.
|
|
Changed the CREATE_SYMLINK macro to expect the full path to a file as the
|
|
first argument. When symlinking the filename component of that path is
|
|
determined and used as the link target.
|
|
Use copy_if_different in the CREATE_SYMLINK macro.
|
|
Eliminated two warnings from the Intel C compiler. The warnings are
|
|
technically valid, although a reasonable treatment of division would
|
|
show it to be incorrect.
|
|
|
|
Send comments/corrections/commendations to png-mng-implement at lists.sf.net
|
|
(subscription required; visit
|
|
https://lists.sourceforge.net/lists/listinfo/png-mng-implement
|
|
to subscribe)
|
|
or to glennrp at users.sourceforge.net
|
|
|
|
Glenn R-P
|