
Known bugs and suggested enhancements in libpng-1.0.8

0: November 3, 2000 -- BUG -- incorrect iCCP chunk is written

   The compression_type byte in the iCCP chunk written by libpng is
   usually incorrect.

   Status: Fixed in libpng-1.0.9beta1

1. October 12, 2000 -- BUG -- pngtest fails

   The three WRITEFILE calls in pngtest.c are incorrect.  They must be
   changed to read

   WRITEFILE((png_FILE_p)png_ptr->io_ptr,  data, length, check);
   WRITEFILE(io_ptr, near_data, length, check);
   WRITEFILE(io_ptr, buf, written, err);

2. August 28, 2000 -- BUG -- pnggccrd.c

   The interlacing() function has still not been fully converted and
   will not compile under gcc-2.95.2; it is currently ifdef'ed out.

   STATUS: Fixed in libpng-1.0.9.  There were also bugs in pngvcrd.c
   which have been fixed.  The replacement files are available at the
   PNG web site (http://www.libpng.org/pub/png).

3. March 15, 1998 -- OPTIMIZATION -- Kevin Bracey

   Loops need to be optimized everywhere

   Make them count down instead of up -- Kevin Bracey

   Optimizing compilers don't need this, and making
   the change would be error prone -- Tom Lane, Glenn R-P

   Question whether i-- or --i is better.

   STATUS: Under investigation, postponed until after
   libpng-2.0.0.  About 160 loops will be turned around
   in libpng-2.0.x betaxx, for testing.

4. July 4, 1998 -- ENHANCEMENT -- Glenn R-P

   libpng-1.0.5 and earlier transform colors to gamma=1.0 space for
   merging with background, and then back to the image's gamma.  The
   bit_depth of the intermediate (gamma=1.0) representation is probably
   not sufficient.  In the typical gamma=1/2.2 situation, the linear
   pixels need about 4 more bits than the gamma-encoded ones, to avoid
   loss of precision.  A similar situation exists with the rgb_to_gray
   operation.

   STATUS: under development.

5. September 1999 -- ENHANCEMENT --

   It should be possible to use libpng without floating-point arithmetic.

   STATUS: Under investigation, implementation postponed until after
   libpng-2.0.0.

   Much of this was completed in libpng-1.0.6, but gamma compensation
   is not yet done in fixed-point arithmetic.

