| |
| Libpng 1.5.4beta04 - June 15, 2011 |
| |
| 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.5.4beta04.tar.xz (LZMA-compressed, recommended) |
| 1.5.4beta04.tar.gz |
| 1.5.4beta04.tar.bz2 |
| |
| Source files with CRLF line endings (for Windows), without the |
| "configure" script |
| |
| lp154b04.7z (LZMA-compressed, recommended) |
| lp154b04.zip |
| |
| Other information: |
| |
| 1.5.4beta04-README.txt |
| 1.5.4beta04-LICENSE.txt |
| |
| Changes since the last public release (1.5.2): |
| |
| Version 1.5.3beta01 [April 1, 2011] |
| Re-initialize the zlib compressor before compressing non-IDAT chunks. |
| Added API functions to set parameters for zlib compression of non-IDAT |
| chunks. |
| |
| Version 1.5.3beta02 [April 3, 2011] |
| Updated scripts/symbols.def with new API functions. |
| Only compile the new zlib re-initializing code when text or iCCP is |
| supported, using PNG_WRITE_COMPRESSED_TEXT_SUPPORTED macro. |
| Improved the optimization of the zlib CMF byte (see libpng-1.2.6beta03). |
| Optimize the zlib CMF byte in non-IDAT compressed chunks |
| |
| Version 1.5.3beta03 [April 16, 2011] |
| Fixed gcc -ansi -pedantic compile. A strict ANSI system does not have |
| snprintf, and the "__STRICT_ANSI__" detects that condition more reliably |
| than __STDC__ (John Bowler). |
| Removed the PNG_PTR_NORETURN attribute because it too dangerous. It tells |
| the compiler that a user supplied callback (the error handler) does not |
| return, yet there is no guarantee in practice that the application code |
| will correctly implement the error handler because the compiler only |
| issues a warning if there is a mistake (John Bowler). |
| Removed the no-longer-used PNG_DEPSTRUCT macro. |
| Updated the zlib version to 1.2.5 in the VStudio project. |
| Fixed 64-bit builds where png_uint_32 is smaller than png_size_t in |
| pngwutil.c (John Bowler). |
| Fixed bug with stripping the filler or alpha channel when writing, that |
| was introduced in libpng-1.5.2beta01 (bug report by Andrew Church). |
| |
| Version 1.5.3beta04 [April 27, 2011] |
| Updated pngtest.png with the new zlib CMF optimization. |
| Cleaned up conditional compilation code and of background/gamma handling |
| Internal changes only except a new option to avoid compiling the |
| png_build_grayscale_palette API (which is not used at all internally.) |
| The main change is to move the transform tests (READ_TRANSFORMS, |
| WRITE_TRANSFORMS) up one level to the caller of the APIs. This avoids |
| calls to spurious functions if all transforms are disabled and slightly |
| simplifies those functions. Pngvalid modified to handle this. |
| A minor change is to stop the strip_16 and expand_16 interfaces from |
| disabling each other; this allows the future alpha premultiplication |
| code to use 16-bit intermediate values while still producing 8-bit output. |
| png_do_background and png_do_gamma have been simplified to take a single |
| pointer to the png_struct rather than pointers to every item required |
| from the png_struct. This makes no practical difference to the internal |
| code. |
| A serious bug in the pngvalid internal routine 'standard_display_init' has |
| been fixed - this failed to initialize the red channel and accidentally |
| initialized the alpha channel twice. |
| Changed png_struct jmp_buf member name from png_jmpbuf to tmp_jmpbuf to |
| avoid a clash with the png_jmpbuf macro on some platforms. |
| |
| Version 1.5.3beta05 [May 6, 2011] |
| Added appropriate feature test macros to ensure libpng sees the correct API |
| _POSIX_SOURCE is defined in pngpriv.h, pngtest.c and pngvalid.c to ensure |
| that POSIX conformant systems disable non-POSIX APIs. _ISOC99_SOURCE is |
| defined in pngpriv.h to obtain the ISO C99 snprintf definition, when |
| available. |
| Removed png_snprintf and added formatted warning messages. This change adds |
| internal APIs to allow png_warning messages to have parameters without |
| requiring the host OS to implement snprintf. As a side effect the |
| dependency of the tIME-supporting RFC1132 code on stdio is removed and |
| PNG_NO_WARNINGS does actually work now. |
| Added PNG_WRITE_OPTIMIZE_CMF_SUPPORTED macro to make the zlib "CMF" byte |
| optimization configureable. |
| IDAT compression failed if preceded by a compressed text chunk (bug |
| introduced in libpng-1.5.3beta01-02). This was because the attempt to |
| reset the zlib stream in png_write_IDAT happened after the first IDAT |
| chunk had been deflated - much too late. In this change internal |
| functions were added to claim/release the z_stream and, hopefully, make |
| the code more robust. Also deflateEnd checking is added - previously |
| libpng would ignore an error at the end of the stream. |
| |
| Version 1.5.3beta06 [May 8, 2011] |
| Removed the -D_ALL_SOURCE from definitions for AIX in CMakeLists.txt |
| Implemented premultiplied alpha support: png_set_alpha_mode API |
| |
| Version 1.5.3beta07 [May 11, 2011] |
| Added expand_16 support to the high level interface. |
| Added named value and 'flag' gamma support to png_set_gamma. Made a minor |
| change from the previous (unreleased) ABI/API to hide the exact value used |
| for Macs - it's not a good idea to embed this in the ABI! |
| Moved macro definitions for PNG_HAVE_IHDR, PNG_HAVE_PLTE, and PNG_AFTER_IDAT |
| from pngpriv.h to png.h because they must be visible to applications |
| that call png_set_unknown_chunks(). |
| Check for up->location !PNG_AFTER_IDAT when writing unknown chunks |
| before IDAT. |
| |
| Version 1.5.3beta08 [May 16, 2011] |
| Improved "pngvalid --speed" to exclude more of pngvalid from the time. |
| Documented png_set_alpha_mode(), other changes in libpng.3/libpng-manual.txt |
| The cHRM chunk now sets the defaults for png_set_rgb_to_gray() (when negative |
| parameters are supplied by the caller), while in the absence of cHRM |
| sRGB/Rec 709 values are still used. |
| The bKGD chunk no longer overwrites the background value set by |
| png_set_background(), allowing the latter to be used before the file |
| header is read. It never performed any useful function to override |
| the default anyway. |
| Added memory overwrite and palette image checks to pngvalid.c |
| Previously palette image code was poorly checked. Since the transformation |
| code has a special palette path in most cases this was a severe weakness. |
| Minor cleanup and some extra checking in pngrutil.c and pngrtran.c. When |
| expanding an indexed image, always expand to RGBA if transparency is |
| present. |
| |
| Version 1.5.3beta09 [May 17, 2011] |
| Reversed earlier 1.5.3 change of transformation order; move png_expand_16 back. |
| The change doesn't work because it requires 16-bit gamma tables when the code |
| only generates 8-bit ones. This fails silently; the libpng code just doesn't |
| do any gamma correction. Moving the tests back leaves the old, inaccurate, |
| 8-bit gamma calculations, but these are clearly better than none! |
| |
| Version 1.5.3beta10 [May 20, 2011] |
| png_set_background() and png_expand_16() did not work together correctly. |
| This problem is present in 1.5.2; if png_set_background is called with |
| need_expand false and the matching 16 bit color libpng erroneously just |
| treats it as an 8-bit color because of where png_do_expand_16 is in the |
| transform list. This simple fix reduces the supplied colour to 8-bits, |
| so it gets smashed, but this is better than the current behavior. |
| Added tests for expand16, more fixes for palette image tests to pngvalid. |
| Corrects the code for palette image tests and disables attempts to |
| validate palette colors. |
| |
| Version 1.5.3rc01 [June 3, 2011] |
| No changes. |
| |
| Version 1.5.3rc02 [June 8, 2011] |
| Fixed uninitialized memory read in png_format_buffer() (Bug report by |
| Frank Busse, related to CVE-2004-0421). |
| |
| Version 1.5.3beta11 [June 11, 2011] |
| Fixed png_handle_sCAL which is broken in 1.5; added sCAL to pngtest.png |
| Revised documentation about png_set_user_limits() to say that it also affects |
| png writing. |
| Revised handling of png_set_user_limits() so that it can increase the |
| limit beyond the PNG_USER_WIDTH|HEIGHT_MAX; previously it could only |
| reduce it. |
| Make the 16-to-8 scaling accurate. Dividing by 256 with no rounding is |
| wrong (high by one) 25% of the time. Dividing by 257 with rounding is |
| wrong in 128 out of 65536 cases. Getting the right answer all the time |
| without division is easy. |
| Added "_SUPPORTED" to the PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION macro. |
| Added projects/owatcom, an IDE project for OpenWatcom to replace |
| scripts/makefile.watcom. This project works with OpenWatcom 1.9. The |
| IDE autogenerates appropriate makefiles (libpng.mk) for batch processing. |
| The project is configurable, unlike the Visual Studio project, so long |
| as the developer has an awk. |
| Changed png_set_gAMA to limit the gamma value range so that the inverse |
| of the stored value cannot overflow the fixed point representation, |
| and changed other things OpenWatcom warns about. |
| Revised pngvalid.c to test PNG_ALPHA_MODE_SUPPORTED correctly. This allows |
| pngvalid to build when ALPHA_MODE is not supported, which is required if |
| it is to build on libpng 1.4. |
| Removed string/memory macros that are no longer used and are not |
| necessarily fully supportable, particularly png_strncpy and png_snprintf. |
| Added log option to pngvalid.c and attempted to improve gamma messages. |
| |
| Version 1.5.3 [omitted] |
| People found the presence of a beta release following an rc release |
| to be confusing; therefore we bump the version to libpng-1.5.4beta01 |
| and there will be no libpng-1.5.3 release. |
| |
| Version 1.5.4beta01 [June 14, 2011] |
| Made it possible to undefine PNG_READ_16_TO_8_ACCURATE_SCALE_SUPPORTED |
| to get the same (inaccurate) output as libpng-1.5.2 and earlier. |
| Moved definitions of PNG_HAVE_IHDR, PNG_AFTER_IDAT, and PNG_HAVE_PLTE |
| outside of an unknown-chunk block in png.h because they are also |
| needed for other uses. |
| |
| Version 1.5.4beta02 [June 14, 2011] |
| Fixed and clarified LEGACY 16-to-8 scaling code. |
| Added png_set_chop_16() API, to match inaccurate results from previous |
| libpng versions. |
| Removed the ACCURATE and LEGACY options (they are no longer useable) |
| Use the old scaling method for background if png_set_chop_16() was |
| called. |
| Made png_set_chop_16() API removeable by disabling PNG_CHOP_16_TO_8_SUPPORTED |
| |
| Version 1.5.4beta03 [June 15, 2011] |
| Fixed a problem in png_do_expand_palette() exposed by optimization in |
| 1.5.3beta06 |
| Also removed a spurious (totally unused and confusing) member from png_info. |
| The palette expand optimization prevented expansion to an intermediate RGBA |
| form if tRNS was present but alpha was marked to be stripped; this exposed |
| a check for tRNS in png_do_expand_palette() which is inconsistent with the |
| code elsewhere in libpng. |
| Correction to the expand_16 code; removed extra instance of |
| png_set_scale_16_to_8 from pngpriv.h |
| |
| Version 1.5.4beta04 [June 15, 2011] |
| Added a missing "#ifdef PNG_READ_BACKGROUND_SUPPORTED/#endif" in pngrtran.c |
| Added PNG_TRANSFORM_CHOP_16 to the high-level read transforms. |
| |
| 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 |