
Libpng 1.7.0alpha04 - December 22, 2012

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.0alpha04.tar.xz (LZMA-compressed, recommended)
   1.7.0alpha04.tar.gz
   1.7.0alpha04.tar.bz2

Source files with CRLF line endings (for Windows), without the
"configure" script

   lp170a04.7z  (LZMA-compressed, recommended)
   lp170a04.zip

Other information:

   1.7.0alpha04-README.txt
   1.7.0alpha04-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 22, 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.

  ===========================================================================
                       NOTICE November 17, 2012:
     The location of the git repository at SourceForge has changed.
               Visit http://libpng.sf.net/ for details.
  ===========================================================================

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
