blob: b29c65b1c48a8a3c22ddb2f3cefba74827539cc8 [file] [log] [blame]
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -06001CHANGES - changes for libpng
Guy Schalnat0d580581995-07-20 02:43:20 -05002
3version 0.2
Guy Schalnatb2e01bd1996-01-26 01:38:47 -06004 added reader into png.h
5 fixed small problems in stub file
Guy Schalnat0d580581995-07-20 02:43:20 -05006version 0.3
Guy Schalnatb2e01bd1996-01-26 01:38:47 -06007 added pull reader
8 split up pngwrite.c to several files
9 added pnglib.txt
10 added example.c
11 cleaned up writer, adding a few new tranformations
12 fixed some bugs in writer
13 interfaced with zlib 0.5
14 added K&R support
15 added check for 64 KB blocks for 16 bit machines
Guy Schalnat0d580581995-07-20 02:43:20 -050016version 0.4
Guy Schalnatb2e01bd1996-01-26 01:38:47 -060017 cleaned up code and commented code
18 simplified time handling into png_time
19 created png_color_16 and png_color_8 to handle color needs
20 cleaned up color type defines
21 fixed various bugs
22 made various names more consistant
23 interfaced with zlib 0.71
24 cleaned up zTXt reader and writer (using zlib's Reset functions)
25 split transformations into pngrtran.c and pngwtran.c
Guy Schalnat0d580581995-07-20 02:43:20 -050026version 0.5
Guy Schalnatb2e01bd1996-01-26 01:38:47 -060027 interfaced with zlib 0.8
28 fixed many reading and writing bugs
Guy Schalnat0d580581995-07-20 02:43:20 -050029 saved using 3 spaces instead of tabs
30version 0.6
31 added png_large_malloc() and png_large_free()
32 added png_size_t
33 cleaned up some compiler warnings
34 added png_start_read_image()
35version 0.7
36 cleaned up lots of bugs
37 finished dithering and other stuff
38 added test program
39 changed name from pnglib to libpng
Andreas Dilger47a0c421997-05-16 02:46:07 -050040version 0.71 [June, 1995]
Guy Schalnat0d580581995-07-20 02:43:20 -050041 changed pngtest.png for zlib 0.93
42 fixed error in libpng.txt and example.c
Guy Schalnat51f0eb41995-09-26 05:22:39 -050043version 0.8
44 cleaned up some bugs
45 added png_set_filler()
46 split up pngstub.c into pngmem.c, pngio.c, and pngerror.c
47 added #define's to remove unwanted code
48 moved png_info_init() to png.c
49 added old_size into png_realloc()
50 added functions to manually set filtering and compression info
51 changed compression parameters based on image type
52 optimized filter selection code
53 added version info
54 changed external functions passing floats to doubles (k&r problems?)
55 put all the configurable stuff in pngconf.h
56 enabled png_set_shift to work with paletted images on read
Guy Schalnatb2e01bd1996-01-26 01:38:47 -060057 added png_read_update_info() - updates info structure with
58 transformations
Andreas Dilger47a0c421997-05-16 02:46:07 -050059version 0.81 [August, 1995]
Guy Schalnat6d764711995-12-19 03:22:19 -060060 incorporated Tim Wegner's medium model code (thanks, Tim)
Andreas Dilger47a0c421997-05-16 02:46:07 -050061version 0.82 [September, 1995]
62 [unspecified changes]
63version 0.85 [December, 1995]
64 added more medium model code (almost everything's a far)
Guy Schalnat6d764711995-12-19 03:22:19 -060065 added i/o, error, and memory callback functions
66 fixed some bugs (16 bit, 4 bit interlaced, etc.)
67 added first run progressive reader (barely tested)
Andreas Dilger47a0c421997-05-16 02:46:07 -050068version 0.86 [January, 1996]
Guy Schalnat69b14481996-01-10 02:56:49 -060069 fixed bugs
70 improved documentation
Andreas Dilger47a0c421997-05-16 02:46:07 -050071version 0.87 [January, 1996]
Guy Schalnatb2e01bd1996-01-26 01:38:47 -060072 fixed medium model bugs
73 fixed other bugs introduced in 0.85 and 0.86
Guy Schalnat4ee97b01996-01-16 01:51:56 -060074 added some minor documentation
Andreas Dilger47a0c421997-05-16 02:46:07 -050075version 0.88 [January, 1996]
Guy Schalnatb2e01bd1996-01-26 01:38:47 -060076 fixed progressive bugs
77 replaced tabs with spaces
78 cleaned up documentation
Guy Schalnate5a37791996-06-05 15:50:50 -050079 added callbacks for read/write and warning/error functions
Andreas Dilger47a0c421997-05-16 02:46:07 -050080version 0.89 [July, 1996]
Guy Schalnate5a37791996-06-05 15:50:50 -050081 added new initialization API to make libpng work better with shared libs
82 we now have png_create_read_struct(), png_create_write_struct(),
83 png_create_info_struct(), png_destroy_read_struct(), and
84 png_destroy_write_struct() instead of the separate calls to
85 malloc and png_read_init(), png_info_init(), and png_write_init()
86 changed warning/error callback functions to fix bug - this means you
87 should use the new initialization API if you were using the old
88 png_set_message_fn() calls, and that the old API no longer exists
89 so that people are aware that they need to change their code
90 changed filter selection API to allow selection of multiple filters
91 since it didn't work in previous versions of libpng anyways
92 optimized filter selection code
93 fixed png_set_background() to allow using an arbitrary RGB color for
94 paletted images
95 fixed gamma and background correction for paletted images, so
96 png_correct_palette is not needed unless you are correcting an
97 external palette (you will need to #define PNG_CORRECT_PALETTE_SUPPORTED
Andreas Dilger02ad0ef1997-01-17 01:34:35 -060098 in pngconf.h) - if nobody uses this, it may disappear in the future.
Guy Schalnate5a37791996-06-05 15:50:50 -050099 fixed bug with Borland 64K memory allocation (Alexander Lehmann)
Andreas Dilger02ad0ef1997-01-17 01:34:35 -0600100 fixed bug in interlace handling (Smarasderagd, I think)
Guy Schalnate5a37791996-06-05 15:50:50 -0500101 added more error checking for writing and image to reduce invalid files
102 separated read and write functions so that they won't both be linked
103 into a binary when only reading or writing functionality is used
104 new pngtest image also has interlacing and zTXt
Andreas Dilger02ad0ef1997-01-17 01:34:35 -0600105 updated documentation to reflect new API
Andreas Dilger47a0c421997-05-16 02:46:07 -0500106version 0.90 [January, 1997]
Andreas Dilger02ad0ef1997-01-17 01:34:35 -0600107 made CRC errors/warnings on critical and ancillary chunks configurable
108 libpng will use the zlib CRC routines by (compile-time) default
109 changed DOS small/medium model memory support - needs zlib 1.04 (Tim Wegner)
110 added external C++ wrapper statements to png.h (Gilles Dauphin)
111 allow PNG file to be read when some or all of file signature has already
Andreas Dilger47a0c421997-05-16 02:46:07 -0500112 been read from the beginning of the stream. ****This affects the size
113 of info_struct and invalidates all programs that use a shared libpng****
Andreas Dilger02ad0ef1997-01-17 01:34:35 -0600114 fixed png_filler() declarations
115 fixed? background color conversions
116 fixed order of error function pointers to match documentation
117 current chunk name is now available in png_struct to reduce the number
118 of nearly identical error messages (will simplify multi-lingual
119 support when available)
120 try to get ready for unknown-chunk callback functions:
121 - previously read critical chunks are flagged, so the chunk handling
122 routines can determine if the chunk is in the right place
123 - all chunk handling routines have the same prototypes, so we will
124 be able to handle all chunks via a callback mechanism
Andreas Dilger47a0c421997-05-16 02:46:07 -0500125 try to fix Linux "setjmp" buffer size problems
126version 0.95 [March, 1997]
127 fixed bug in pngwutil.c allocating "up_row" twice and "avg_row" never
128 fixed bug in PNG file signature compares when start != 0
129 changed parameter type of png_set_filler(...filler...) from png_byte
130 to png_uint_32
131 added test for MACOS to ensure that both math.h and fp.h are not #included
132 added macros for libpng to be compiled as a Windows DLL (Andreas Kupries)
133 added "packswap" transformation, which changes the endianness of
134 packed-pixel bytes (Kevin Bracey)
135 added "strip_alpha" transformation, which removes the alpha channel of
136 input images without using it (not neccesarily a good idea)
137 added "swap_alpha" transformation, which puts the alpha channel in front
138 of the color bytes instead of after
139 removed all implicit variable tests which assume NULL == 0 (I think)
140 changed several variables to "png_size_t" to show 16/32-bit limitations
141 added new pCAL chunk read/write support
142 added experimental filter selection weighting (Greg Roelofs)
143 removed old png_set_rgbx() and png_set_xrgb() functions that have been
144 obsolete for about 2 years now (use png_set_filler() instead)
145 added macros to read 16- and 32-bit ints directly from buffer, to be
146 used only on those systems that support it (namely PowerPC and 680x0)
147 With some testing, this may become the default for MACOS/PPC systems.
148 only calculate CRC on data if we are going to use it
149 added macros for zTXt compression type PNG_zTXt_COMPRESSION_???
150 added macros for simple libpng debugging output selectable at compile time
151 removed PNG_READ_END_MODE in progressive reader (Smarasderagd)
152 more description of info_struct in libpng.txt and png.h
153 more instructions in example.c
154 more chunk types tested in pngtest.c
155 renamed pngrcb.c to pngset.c, and all png_read_<chunk> functions to be
156 png_set_<chunk>. We now have corresponding png_get_<chunk>
157 functions in pngget.c to get infomation in info_ptr. This isolates
158 the application from the internal organization of png_info_struct
159 (good for shared library implementations).
160version 0.96 [May, 1997]
161 fixed serious bug with < 8bpp images introduced in 0.95
162 fixed 256-color transparency bug (Greg Roelofs)
163 fixed up documentation (Greg Roelofs, Laszlo Nyul)
164 fixed "error" in pngconf.h for Linux setjmp() behaviour
165 fixed DOS medium model support (Tim Wegner)
166 fixed png_check_keyword() for case with error in static string text
167 added read of CRC after IEND chunk for embedded PNGs (Laszlo Nyul)
168 added typecasts to quiet compiler errors
169 added more debugging info
Glenn Randers-Pehrson2687fcc1998-01-07 20:54:20 -0600170version 0.97 [January, 1998]
Glenn Randers-Pehrsonb6ce43d1998-01-01 07:13:13 -0600171 removed PNG_USE_OWN_CRC capability
172 relocated png_set_crc_action from pngrutil.c to pngrtran.c
Glenn Randers-Pehrsonc4a2ae61998-01-16 22:06:18 -0600173 fixed typecasts of "new_key", etc. (Andreas Dilger)
174 added RFC 1152 [sic] date support
Glenn Randers-Pehrsonb6ce43d1998-01-01 07:13:13 -0600175 fixed bug in gamma handling of 4-bit grayscale
Glenn Randers-Pehrsonc4a2ae61998-01-16 22:06:18 -0600176 added 2-bit grayscale gamma handling (Glenn R-P)
177 added more typecasts. 65536L becomes (png_uint_32)65536L, etc. (Glenn R-P)
Glenn Randers-Pehrsonb6ce43d1998-01-01 07:13:13 -0600178 minor corrections in libpng.txt
Glenn Randers-Pehrsonc4a2ae61998-01-16 22:06:18 -0600179 added simple sRGB support (Glenn R-P)
180 easier conditional compiling, e.g. define PNG_READ/WRITE_NOT_FULLY_SUPPORTED;
181 all configurable options can be selected from command-line instead
182 of having to edit pngconf.h (Glenn R-P)
183 fixed memory leak in pngwrite.c (free info_ptr->text) (Glenn R-P)
Glenn Randers-Pehrsonb6ce43d1998-01-01 07:13:13 -0600184 added more conditions for png_do_background, to avoid changing
185 black pixels to background when a background is supplied and
186 no pixels are transparent
Glenn Randers-Pehrson2687fcc1998-01-07 20:54:20 -0600187 repaired PNG_NO_STDIO behaviour
Glenn Randers-Pehrsonc4a2ae61998-01-16 22:06:18 -0600188 tested NODIV support and made it default behaviour (Greg Roelofs)
189 added "-m" option and PNGTEST_DEBUG_MEMORY to pngtest (John Bowler)
Glenn Randers-Pehrson2687fcc1998-01-07 20:54:20 -0600190 regularized version numbering scheme and bumped shared-library major
Glenn Randers-Pehrsonc4a2ae61998-01-16 22:06:18 -0600191 version number to 2 to avoid problems with libpng 0.89 apps (Greg Roelofs)
192version 0.98 [January, 1998]
193 cleaned up some typos in libpng.txt and in code documentation
194 fixed memory leaks in pCAL chunk processing (Glenn R-P and John Bowler)
195 cosmetic change "display_gamma" to "screen_gamma" in pngrtran.c
196 changed recommendation about file_gamma for PC images to .51 from .45,
197 in example.c and libpng.txt, added comments to distinguish between
198 screen_gamma, viewing_gamma, and display_gamma.
199 changed all references to RFC1152 to read RFC1123 and changed the
200 PNG_TIME_RFC1152_SUPPORTED macro to PNG_TIME_RFC1123_SUPPORTED
201 added png_invert_alpha capability (Glenn R-P -- suggestion by Jon Vincent)
202 changed srgb_intent from png_byte to int to avoid compiler bugs
Glenn Randers-Pehrsonb2120021998-01-31 20:07:59 -0600203version 0.99 [January 30, 1998]
Glenn Randers-Pehrson46f61e21998-01-30 21:45:12 -0600204 free info_ptr->text instead of end_info_ptr->text in pngread.c (John Bowler)
205 fixed a longstanding "packswap" bug in pngtrans.c
206 fixed some inconsistencies in pngconf.h that prevented compiling with
207 PNG_READ_GAMMA_SUPPORTED and PNG_READ_hIST_SUPPORTED undefined
208 fixed some typos and made other minor rearrangement of libpng.txt (Andreas)
209 changed recommendation about file_gamma for PC images to .50 from .51 in
210 example.c and libpng.txt, and changed file_gamma for sRGB images to .45
211 added a number of functions to access information from the png structure
212 png_get_image_height(), etc. (Glenn R-P, suggestion by Brad Pettit)
213 added TARGET_MACOS similar to zlib-1.0.8
214 define PNG_ALWAYS_EXTERN when __MWERKS__ && WIN32 are defined
215 added type casting to all png_malloc() function calls
Glenn Randers-Pehrsonb2120021998-01-31 20:07:59 -0600216version 0.99a [January 31, 1998]
Glenn Randers-Pehrson0f881d61998-02-07 10:20:57 -0600217 Added type casts and parentheses to all returns that return a value.(Tim W.)
218version 0.99b [February 4, 1998]
219 Added type cast png_uint_32 on malloc function calls where needed.
220 Changed type of num_hist from png_uint_32 to int (same as num_palette).
221 Added checks for rowbytes overflow, in case png_size_t is less than 32 bits.
222 Renamed makefile.elf to makefile.lnx.
223version 0.99c [February 7, 1998]
224 More type casting. Removed erroneous overflow test in pngmem.c.
225 Added png_buffered_memcpy() and png_buffered_memset(), apply them to rowbytes.
Glenn Randers-Pehrsona357b991998-02-08 20:56:40 -0600226 Added UNIX manual pages libpng.3 (incorporating libpng.txt) and png.5.
Glenn Randers-Pehrsoncbe52d81998-02-28 07:00:24 -0600227version 0.99d [February 11, 1998]
Glenn Randers-Pehrsona357b991998-02-08 20:56:40 -0600228 Renamed "far_to_near()" "png_far_to_near()"
229 Revised libpng.3
230 Version 99c "buffered" operations didn't work as intended. Replaced them
Glenn Randers-Pehrsoncbe52d81998-02-28 07:00:24 -0600231 with png_memcpy_check() and png_memset_check().
Glenn Randers-Pehrsona357b991998-02-08 20:56:40 -0600232 Added many "if (png_ptr == NULL) return" to quell compiler warnings about
Glenn Randers-Pehrsoncbe52d81998-02-28 07:00:24 -0600233 unused png_ptr, mostly in pngget.c and pngset.c.
234 Check for overlength tRNS chunk present when indexed-color PLTE is read.
235 Cleaned up spelling errors in libpng.3/libpng.txt
236 Corrected a problem with png_get_tRNS() which returned undefined trans array
237version 0.99e [February 28, 1998]
238 Corrected png_get_tRNS() again.
239 Add parentheses for easier reading of pngget.c, fixed "||" should be "&&".
240 Touched up example.c to make more of it compileable, although the entire
241 file still can't be compiled (Willem van Schaik)
242 Fixed a bug in png_do_shift() (Bryan Tsai)
243 Added a space in png.h prototype for png_write_chunk_start()
244 Replaced pngtest.png with one created with zlib 1.1.1
245 Changed pngtest to report PASS even when file size is different (Jean-loup G.)
246 Corrected some logic errors in png_do_invert_alpha() (Chris Patterson)
Glenn Randers-Pehrson08a33431998-03-07 06:06:55 -0600247version 0.99f [March 5, 1998]
248 Corrected a bug in pngpread() introduced in version 99c (Kevin Bracey)
249 Moved makefiles into a "scripts" directory, and added INSTALL instruction file
250 Added makefile.os2 and pngos2.def (A. Zabolotny) and makefile.s2x (W. Sebok)
251 Added pointers to "note on libpng versions" in makefile.lnx and README
252 Added row callback feature when reading and writing nonprogressive rows
253 and added a test of this feature in pngtest.c
254 Added user transform callbacks, with test of the feature in pngtest.c
255version 0.99g [March 6, 1998, morning]
256 Minor changes to pngtest.c to suppress compiler warnings.
257 Removed "beta" language from documentation.
258version 0.99h [March 6, 1998, evening]
259 Minor changes to previous minor changes to pngtest.c
260 Changed PNG_READ_NOT_FULLY_SUPPORTED to PNG_READ_TRANSFORMS_NOT_SUPPORTED
261 and added PNG_PROGRESSIVE_READ_NOT_SUPPORTED macro
262version 1.00 [March 7, 1998]
263 Changed several typedefs in pngrutil.c
264 Added makefile.wat (Pawel Mrochen), updated makefile.tc3 (Willem van Schaik)
Glenn Randers-Pehrsonea3bcd71998-03-07 14:33:00 -0600265 replaced "while(1)" with "for(;;)"
266 added PNGARG() to prototypes in pngtest.c and removed some prototypes
267 updated some of the makefiles (Tom Lane)
268 changed some typedefs (s_start, etc.) in pngrutil.c
269 fixed dimensions of "short_months" array in pngwrite.c
Glenn Randers-Pehrson7cd899c1998-03-07 16:17:42 -0600270 Replaced ansi2knr.c with the one from jpeg-v6
Glenn Randers-Pehrson0f7202f1998-03-08 18:52:15 -0600271version 1.0.0 [March 8, 1998]
272 Changed name from 1.00 to 1.0.0 (Adam Costello)
273 Added smakefile.ppc (with SCOPTIONS.ppc) for Amiga PPC (Andreas Kleinert)
Glenn Randers-Pehrson8f8fb6a1998-03-09 23:02:06 -0600274version 1.0.0a [March 9, 1998]
275 Fixed three bugs in pngrtran.c to make gamma+background handling consistent
276 (Greg Roelofs)
277 Changed format of the PNG_LIBPNG_VER integer to xyyzz instead of xyz
278 for major, minor, and bugfix releases. This is 10001. (Adam Costello,
279 Tom Lane)
280 Make months range from 1-12 in png_convert_to_rfc1123
Glenn Randers-Pehrsond12aa501998-03-13 07:39:39 -0600281version 1.0.0b [March 13, 1998]
282 Quieted compiler complaints about two empty "for" loops in pngrutil.c
283 Minor changes to makefile.s2x