pngstruct.h


Log

Author Commit Date CI Message
Cosmin Truta 9cb84c4c 2022-09-14T08:54:57 Delete vestigial declarations formerly used on 16-bit platforms Delete the structure members used in the 16-bit Turbo C memory models. Delete the PNG_ABORT declaration used in the 16-bit Windows build. Stop checking macros (e.g. _WINDOWS) predefined by 16-bit Windows compilers (but do check the __NT__ macro, which was the only one predefined by ancient Windows NT compilers).
Cosmin Truta 70d122aa 2019-02-03T19:51:18 Fix a memory leak in the riffled palette optimization on ARM; refactor Move deallocation of riffled_palette from png_write_destroy to png_read_destroy. The reader (not the writer) is the owner of riffled_palette. Move allocation and initialization of riffled_palette from png_do_read_transformations to png_init_palette_transformations. Allow riffled_palette inside png_struct only if the ARM Neon optimizations are enabled. Rename png_riffle_palette_rgba to png_riffle_palette_rgba8, etc., to better indicate the strict applicability of these routines. Fix an unused parameter warning in the build configurations where riffled palette optimization is not enabled. Fix indentation.
Cosmin Truta 85acd919 2018-12-01T09:36:00 [master] Imported from libpng-1.6.36.tar
Richard Townsend 7734cda2 2018-01-25T19:03:04 Optimize png_do_expand_palette for ARM ARM-specific optimization processes 8 or 4 pixels at once. Improves performance by around 10-22% on a recent ARM Chromebook.
Cosmin Truta a8738932 2018-07-28T18:47:21 Remove the "last changed" version information from source comments This information is maintained by the version control system.
Cosmin Truta 8da39742 2018-07-15T23:58:00 [master] Imported from libpng-1.6.35.tar
Cosmin Truta 46aedd89 2018-07-15T23:58:00 Release libpng version 1.6.35
Cosmin Truta a74aa9a0 2018-06-17T22:37:44 [libpng16] Replace the remaining uses of png_size_t with size_t In v1.6.0, size_t became a required type. It should be used consistently. To maintain backwards compatibility, png_size_t is still maintained in deprecated form.
luz.paz eb91c0e4 2018-02-09T06:57:29 More misc. typos found via `codespell-q 3` please review
Unknown f23b41d7 2017-11-03T00:52:06 Misc. typos Some are user facing. Some are in actual code. Most are in source comments. Also, please double check the changes in contrib/tools/pngfix.c
Glenn Randers-Pehrson 58720d3c 2017-08-29T12:23:18 [libpng16] Fix "last changed" dates
Glenn Randers-Pehrson f6ca33d4 2017-08-25T18:52:39 [libpng16] Bump version to 1.6.33beta01
Glenn Randers-Pehrson f8110669 2017-08-24T14:44:52 [master] Imported from libpng-1.6.32.tar
Glenn Randers-Pehrson df7e9dae 2017-08-24T14:44:52 [libpng16] Imported from libpng-1.6.32.tar
Glenn Randers-Pehrson 3524b0d2 2017-07-31T17:03:17 [libpng16] Update "Last changed" dates and some copyright years
Glenn Randers-Pehrson fbff8986 2017-07-27T05:25:33 [master] Imported from libpng-1.6.31.tar
Glenn Randers-Pehrson d2fcc41e 2017-07-17T06:08:01 [libpng16] Imported from libpng-1.6.31beta06.tar
Glenn Randers-Pehrson 68cb0aae 2017-07-13T11:19:53 [libpng16] Implement eXIf chunk support
Glenn Randers-Pehrson 8c6c9e6d 2017-01-05T18:11:59 [libpng16] Update credits to include Google Inc, for the Intel/SSE patch.
Glenn Randers-Pehrson 4ddac468 2017-01-05T11:25:42 [libpng16] Bump version to 1.6.29beta01
Glenn Randers-Pehrson 0a181e16 2017-01-05T08:52:09 [master] Imported from libpng-1.6.28.tar
Glenn Randers-Pehrson 17ad597d 2017-01-05T07:52:09 [libpng16] Imported from libpng-1.6.28.tar
Glenn Randers-Pehrson f8bdbd4d 2017-01-02T19:03:36 [libpng16] Changed png_ptr->options from a png_byte to png_uint_32, to accomodate up to 16 options.
Glenn Randers-Pehrson 35cbe764 2016-10-19T19:07:25 [master] Imported from libpng-1.6.26.tar
Glenn Randers-Pehrson 7835716c 2016-09-19T16:46:54 [libpng16] Changed PNG_ZLIB_VERNUM to ZLIB_VERNUM in pngpriv.h, pngstruct.h, and pngrutil.c.
Glenn Randers-Pehrson 0c29ab2b 2016-08-03T21:16:26 [master] Imported from libpng-1.6.24.tar
Glenn Randers-Pehrson b50d5cea 2016-08-03T21:16:26 [libpng16] Imported from libpng-1.6.24.tar
Glenn Randers-Pehrson 4b4a9583 2016-06-23T10:58:24 [libpng16] Imported from libpng-1.6.24beta02.tar
Glenn Randers-Pehrson 5756fcab 2016-01-15T09:52:13 [master] Imported from libpng-1.6.21.tar
Glenn Randers-Pehrson 4d8de339 2015-12-13T22:41:17 [libpng16] Update copyright uears in source files.
Glenn Randers-Pehrson 04773749 2015-12-02T19:50:48 [master] Imported from libpng-1.6.20.tar
John Bowler 28a1cdfc 2015-11-27T23:57:39 Fix inconsistent handling of invalid zlib data In libpng 1.6 zlib initialization was changed to use the window size in the zlib stream, not a fixed value. This causes some invalid images, ones where CINFO is too large, to display 'correctly' if the rest of the data is valid. This provides a work-round for zlib versions where the error arises (ones that support the API change to use the window size in the stream). Signed-off-by: John Bowler <jbowler@acm.org>
Glenn Randers-Pehrson 287fb892 2015-07-22T22:36:43 [master] Imported from libpng-1.6.18.tar
Glenn Randers-Pehrson e6172809 2015-07-22T22:36:43 [libpng16] Imported from libpng-1.6.18.tar
Glenn Randers-Pehrson 81487c8b 2015-06-10T07:06:42 [libpng16] Removed some unused WEIGHTED_FILTER macros from png.h and pngstruct.h
Glenn Randers-Pehrson 20a2f9b9 2015-05-31T10:08:58 [libpng16] Imported from libpng-1.6.18beta05.tar
Glenn Randers-Pehrson e6877671 2015-05-30T11:54:45 [libpng16] Backported filter selection code from libpng-1.7.0beta51, to combine sub_row, up_row, avg_row, and paeth_row into try_row and tst_row.
Glenn Randers-Pehrson 2b667e49 2015-03-26T08:06:25 [master] Imported from libpng-1.6.17.tar
Glenn Randers-Pehrson 43d90b16 2015-02-17T10:44:26 [libpng16] Bump version to 1.6.17beta04
Glenn Randers-Pehrson 6ef579df 2015-01-27T07:02:46 [libpng16] Imported from libpng-1.6.17beta01.tar
Glenn Randers-Pehrson da7a1e79 2014-11-20T09:33:25 [master] Imported from libpng-1.6.15.tar
Glenn Randers-Pehrson 05e11008 2014-11-07T07:41:16 [libpng16] More "#endif" housecleaning, in *.h
Glenn Randers-Pehrson 41db297e 2013-03-27T20:31:36 [master] Imported from libpng-1.6.1.tar
Glenn Randers-Pehrson 5087805e 2013-03-27T20:31:36 [libpng16] Imported from libpng-1.6.1.tar
John Bowler f3728100 2013-03-04T16:26:31 [libpng16] 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.
Glenn Randers-Pehrson 871b1d0f 2013-03-02T14:58:22 [libpng16] Bump version to 1.6.1beta05
Glenn Randers-Pehrson f3af706c 2012-02-02T23:11:45 [libpng16] Imported from libpng-1.6.0beta05.tar
Glenn Randers-Pehrson adb96136 2013-02-18T21:10:40 [libpng16] Imported from libpng-1.6.1beta02.tar
Glenn Randers-Pehrson 9e8fd50d 2013-02-17T14:31:00 [libpng16] Use parentheses consistently in "#if defined()" tests.
Glenn Randers-Pehrson 3b8e7e86 2013-02-16T10:15:57 [libpng16] Imported from libpng-1.6.1beta01.tar
Glenn Randers-Pehrson 0da9cf38 2013-02-13T22:49:19 [master] Imported from libpng-1.6.0.tar
Glenn Randers-Pehrson c53778ff 2013-02-13T22:49:09 [libpng16] Imported from libpng-1.6.0.tar
John Bowler 2414bd99 2013-01-19T23:18:59 [libpng16] Use consistent handling of overflows in text, sPLT and unknown png_set_* APIs
Glenn Randers-Pehrson e208108d 2013-01-19T08:44:05 [libpng16] Imported from libpng-1.6.0beta39.tar
Glenn Randers-Pehrson 9477ecdf 2013-01-01T07:45:42 [libpng16] Updated copyright year to 2013 in newly-changed files
John Bowler 520803d5 2012-11-01T08:12:47 [libpng16] Removed non-working ICC profile support code. There was too much code for too little gain; implementing full ICC color correction is maybe desireable but is left up to applications.
John Bowler f8dfd123 2012-10-25T19:30:02 [libpng16] Changed ICC profile support to allow use of an external color management system (CMS). In practice it is not possible to obtain cHRM information reliably using just the end-point tags because they do not exist in the vast majority of profiles. Instead it is necessary to run the endpoints through the ICC colorimetric intent transform (as described in the v4 spec). Since this is likely to be too much code inside libpng for too little gain (it implies a fairly complete CMS implementation) the code has been changed to allow an external CMS to be used. This code is temporarily disabled until a suitable set of test cases using one or more external CMS implementations have been implemented.
Glenn Randers-Pehrson 933bc842 2012-09-04T20:16:25 [libpng16] Fix confusion between "adopted" and "adapted" in new comments. Glenn thought the "adopted" were typos and changed them all to "adapted". This reverts the spelling and adds parenthetical comments when each word first appears in png.h.
Glenn Randers-Pehrson 9c06d784 2012-09-04T16:47:25 [libpng16] Imported from libpng-1.6.0beta29.tar
John Bowler b98681b4 2012-09-04T11:19:00 [libpng16] Improved ICC profile handling including cHRM chunk generation and fixed Cygwin+MSVC build errors. The ICC profile handling now includes more checking. Several errors that caused rejection of the profile are now handled with a warning in such a way that the invalid profiles will be read by default in release (but not pre-RC) builds but will not be written by default. The easy part of handling a cHRM chunk is written, where the ICC profile contains the required data. The more difficult part plus guessing a gAMA value requires code to pass selected RGB values through the profile.
Glenn Randers-Pehrson 702053d1 2012-08-17T21:23:06 [libpng16] Bump version to 1.6.0beta28
John Bowler e9567514 2012-08-15T22:53:00 [libpng16] Unknown handling fixes and clean up. This adds more correct option control of the unknown handling, corrects the pre-existing bug where the per-chunk 'keep' setting is ignored and makes it possible to skip IDAT chunks in the sequential reader (broken in earlier 1.6 versions). There is a new test program, test-unknown.c, which is a work in progress (not currently part of the test suite). Comments in the header files now explain how the unknown handling works.
John Bowler dff6f4c4 2012-08-09T21:17:56 [libpng16Cleanup of png_set_filler(). This function does very different things on read and write. In libpng 1.6 the two cases can be distinguished and considerable code cleanup, and extra error checking, is possible. This makes calls on the write side that have no effect be ignored with a png_app_error(), which can be disabled in the app using png_set_benign_errors(), and removes the spurious use of usr_channels on the read side.
Glenn Randers-Pehrson 981560ae 2012-06-14T06:28:09 [master] Imported from libpng-1.5.11.tar
Glenn Randers-Pehrson 0546e4e5 2012-06-12T13:06:52 [libpng16] Document deprecation of png_convert_to_rfc1123() and its replacement with png_convert_to_rfc1123_buffer().
Glenn Randers-Pehrson d5a80e09 2012-03-29T00:07:04 [master] Imported from libpng-1.5.10.tar
John Bowler b11b31ae 2012-03-21T07:55:46 [libpng16] Changed chunk handler warnings into benign errors, incrementally load iCCP
John Bowler b5d0051d 2012-03-09T09:15:18 [libpng16] Deflate/inflate was reworked to move common zlib calls into single functions [rw]util.c. A new shared keyword check routine was also added and the 'zbuf' is no longer allocated on progressive read. It is now possible to call png_inflate() incrementally.
Glenn Randers-Pehrson 187694b9 2012-03-04T22:25:10 [master] Imported from libpng-1.5.10beta03.tar
John Bowler 6225b0e6 2012-03-05T21:26:57 [libpng16] Added code to validate the windowBits value passed to deflateInit2(). If the call to deflateInit2() is wrong a png_warning will be issued (in fact this is harmless, but the PNG data produced may be sub-optimal).
John Bowler 42a2b556 2012-03-05T20:57:40 [libpng16] Made read 'inflate' handling like write 'deflate' handling. The read code now claims and releases png_ptr->zstream, like the write code. The bug whereby the progressive reader failed to release the zstream is now fixed, all initialization is delayed, and the code checks for changed parameters on deflate rather than always calling deflatedEnd/deflateInit.
Glenn Randers-Pehrson eeb1bb67 2012-03-02T22:10:15 [libng16] Added palette-index checking while writing. Relocated palette-index checking function from pngrutil.c to pngtrans.c
Glenn Randers-Pehrson 363ae65e 2012-03-01T21:39:29 [libpng16] Added tests for invalid palette index while reading and writing (work in progress, the latter isn't finished).
Glenn Randers-Pehrson f9accb9d 2012-02-18T22:14:22 [libpng15] Bump version to 1.5.10beta01
Glenn Randers-Pehrson 7a4e497b 2012-02-18T14:31:24 [libpng15] Imported from libpng-1.5.9.tar
Glenn Randers-Pehrson 0207529f 2012-02-17T13:30:33 [libpng15] Imported from libpng-1.5.9rc01.tar
Glenn Randers-Pehrson c737b7cf 2012-02-16T20:07:15 [libpng16] Imported from libpng-1.6.0beta11.tar
Glenn Randers-Pehrson a08f6035 2012-02-11T07:27:34 [libpng15] Removed tests for no-longer-used *_EMPTY_PLTE_SUPPORTED from pngstruct.h
Glenn Randers-Pehrson 1531bd61 2012-01-01T14:45:04 [libpng16] Updated copyright year to 2012
John Bowler fcd301da 2011-12-28T21:34:27 [libpng16] Changed png_memcpy to C assignment where appropriate. Changed all those uses of png_memcpy that were doing a simple assignment to assignments (all those cases where the thing being copied is a non-array C L-value.) Added some error checking to png_set_*() routines and removed the reference to the non-exported function png_memcpy() from example.c. Fixed the Visual C 64-bit build - it requires jmp_buf to be aligned, but it had become misaligned.
John Bowler 4f67e408 2011-12-28T08:43:37 [libpng16] Add 'const' to png_structrp arguments of png_set_*() APIs. Because these APIs store to the png_info they can take a png_const_structrp now that the error routines also accept one of these.
Glenn Randers-Pehrson 67ee8cee 2011-12-22T08:21:00 [libpng16] bump version to 1.6.0beta04
John Bowler 40b26036 2011-12-22T08:09:15 [libpng16] Start-up code size improvements, error handler flexibility. These changes alter how the tricky allocation of the initial png_struct and png_info structures are handled. png_info is now handled in pretty much the same way as everything else, except that the allocations handle NULL return silently. png_struct is changed in a similar way on allocation and on deallocation a 'safety' error handler is put in place (which should never be required). The error handler itself is changed to permit mismatches in the application and libpng error buffer size; however, this means a silent change to the API to return the jmp_buf if the size doesn't match the size from the libpng compilation; libpng now allocates the memory and this may fail. Overall these changes result in slight code size reductions; however, this is a reduction in code that is always executed so is particularly valuable. Overall on a 64-bit system the libpng DLL decreases in code size by 1733 bytes. pngerror.o increases in size by about 465 bytes because of the new functionality.
John Bowler d332c67d 2011-12-21T17:36:12 [libpng16] Start-up code size improvements, error handler flexibility. These changes alter how the tricky allocation of the initial png_struct and png_info structures are handled. png_info is now handled in pretty much the same way as everything else, except that the allocations handle NULL return silently. png_struct is changed in a similar way on allocation and on deallocation a 'safety' error handler is put in place (which should never be required). The error handler itself is changed to permit mismatches in the application and libpng error buffer size; however, this means a silent change to the API to return the jmp_buf if the size doesn't match the size from the libpng compilation; libpng now allocates the memory and this may fail. Overall these changes result in slight code size reductions; however, this is a reduction in code that is always executed so is particularly valuable. Overall on a 64-bit system the libpng DLL decreases in code size by 1733 bytes. pngerror.o increases in size by about 465 bytes because of the new functionality.
Mans Rullgard d3a94802 2011-11-03T00:47:55 [libpng15] Added support for ARM processor (Mans Rullgard)
Mans Rullgard 1c42276a 2011-10-17T16:52:19 [libpng15] New png_struct member png_ptr->old_prev_row
John Bowler 07772cba 2011-10-14T18:19:47 [libpng15] Fixes for multiple calls to png_read_update_info. These fixes attend to most of the errors revealed in pngvalid, however doing the gamma work twice results in inaccuracies that can't be easily fixed. There is now a warning in the code if this is going to happen.
Glenn Randers-Pehrson 997b193f 2011-09-28T07:20:10 [libpng15] Imported from libpng-1.5.6beta03.tar
Glenn Randers-Pehrson bb5cb147 2011-09-22T12:41:58 [libpng15] Bump version to libpng-1.5.6beta02
Glenn Randers-Pehrson 115020d9 2011-09-22T09:08:31 [libpng15] Imported from libpng-1.5.6beta01.tar
Glenn Randers-Pehrson 3e2263ab 2011-09-22T08:40:32 [libpng15] Imported from libpng-1.5.5.tar
Glenn Randers-Pehrson 4ae29786 2011-08-26T06:03:09 [devel] Bump version to libpng-1.5.5beta07
John Bowler 736f40f4 2011-08-25T16:19:44 [devel] Fixes to rgb_to_gray and cHRM XYZ APIs
Glenn Randers-Pehrson d404b6d4 2011-07-07T06:24:57 [devel] Imported from libpng-1.5.4.tar
Glenn Randers-Pehrson ef217b76 2011-06-15T12:58:27 [devel] Updated comments that mention 1.5.3; changed them to 1.5.4.
John Bowler 550bab03 2011-06-14T06:17:26 [devel] Removed the ACCURATE and LEGACY options (they are no longer useable) Fixed some compiliation problems with scaling options.
John Bowler b2bee337 2011-06-10T23:24:58 [devel] 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.
Glenn Randers-Pehrson 73904f52 2011-05-15T19:38:06 [devel] Minor revisions to comments on pngstruct.h and pngvalid.c
John Bowler 9994f257 2011-05-15T18:52:39 [devel] pngvalid: add memory overwrite and palette image checks also minor cleanup in the libpng code itself (pngrtran.c and pngrutil.c) and some extra checking there.
John Bowler d273ad2d 2011-05-07T21:00:28 [devel] Implementation of premultiplied alpha support: png_set_alpha_mode (libpng-manual.txt still to be updated, see png.h for documentation.)