Known bugs and suggested enhancements in libpng-1.0.7 1. July 2, 2000 -- BUG -- pnggccrd.c Some programs compiled with PNG_USE_PNGGCCRD crash in pnggccrd.c. Also, pnggccrd.c will not compile under gcc-2.95-2. STATUS: Under investigation. Experts on MMX assembler code are invited to help with the debugging. Note that pngvcrd.c works fine. Update: fixed in libpng-1.0.8beta1. It compiles under gcc-2.7.2.3 and seems to work; under gcc-2.7.2.1 it compiles but crashes in execution. It is recommended that people use 2.95.2 or later. The png_read_filter() function has still not been fully converted and will not compile under gcc-2.95.2; it is currently ifdef'ed out. 2. July 3, 2000 -- BUG -- MEMORY LEAK There is a memory leak in pngpread.c; it doesn't free "key". STATUS: Fixed in libpng-1.0.8beta1, by adding. png_free(png_ptr, text_ptr); after lines 1221 and 1038 in pngpread.c 3. July 3, 2000 -- BUG -- PNG_EXPORT_VAR The definition of PNG_EXPORT_VAR, in pngconf.h, should be # define PNG_EXPORT_VAR(type) extern PNG_IMPEXP type STATUS: Fixed in libpng-1.0.8beta1. 4. July 3, 2000 -- BUG -- PNG_NO_STDIO Several places in pngrutil.c and pngwutil.c, there are printf statements inside PNG_NO_STDIO blocks (should be PNG_NO_CONSOLE_IO) STATUS: Fixed in libpng-1.0.8beta1. 5. July 3, 2000 -- ENHANCEMENT -- WindowsCE support Libpng-1.0.7 does not support WindowsCE. STATUS: Libpng-1.0.8 and libpng-2.0.0 will support WindowsCE. A new typedef, png_FILE_p, will be added which is normally FILE * but will be HANDLE if libpng is being built for WindowsCE. Other patches required for WindowsCE support have been provided and will be applied. Finished in libpng-1.0.8beta3. 6. July 13, 2000 -- ENHANCEMENT -- Cygwin support Libpng-1.0.7 does not support building DLLs under Cygwin STATUS: Cygwin support has been added to libpng-1.0.8beta4. 7. 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-1.1.0. About 160 loops will be turned around in libpng-2.0.x betaxx, for testing. 8. 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. 9. September 1999 -- ENHANCEMENT -- It should be possible to use libpng without floating-point aritmetic. STATUS: Under investigation, implementation postponed until after libpng-1.0.7. Much of this was completed in libpng-1.0.6, but gamma compensation is not yet done in fixed-point arithmetic.