Glenn Randers-Pehrson | 896239b | 1998-04-21 15:03:57 -0500 | [diff] [blame] | 1 | |
Glenn Randers-Pehrson | 6d8f3b0 | 1999-10-23 08:39:18 -0500 | [diff] [blame] | 2 | Known bugs and suggested enhancements in libpng-1.0.5 |
Glenn Randers-Pehrson | 896239b | 1998-04-21 15:03:57 -0500 | [diff] [blame] | 3 | |
Glenn Randers-Pehrson | 896239b | 1998-04-21 15:03:57 -0500 | [diff] [blame] | 4 | |
Glenn Randers-Pehrson | 345bc27 | 1998-06-14 14:43:31 -0500 | [diff] [blame] | 5 | 1. March 15, 1998 -- OPTIMIZATION -- Kevin Bracey |
Glenn Randers-Pehrson | 896239b | 1998-04-21 15:03:57 -0500 | [diff] [blame] | 6 | |
| 7 | Loops need to be optimized everywhere |
| 8 | |
Glenn Randers-Pehrson | 345bc27 | 1998-06-14 14:43:31 -0500 | [diff] [blame] | 9 | Make them count down instead of up -- Kevin Bracey |
Glenn Randers-Pehrson | 5c6aeb2 | 1998-12-29 11:47:59 -0600 | [diff] [blame] | 10 | |
Glenn Randers-Pehrson | 345bc27 | 1998-06-14 14:43:31 -0500 | [diff] [blame] | 11 | Optimizing compilers don't need this, and making |
| 12 | the change would be error prone -- Tom Lane, Glenn R-P |
Glenn Randers-Pehrson | 896239b | 1998-04-21 15:03:57 -0500 | [diff] [blame] | 13 | |
Glenn Randers-Pehrson | 345bc27 | 1998-06-14 14:43:31 -0500 | [diff] [blame] | 14 | Question whether i-- or --i is better. |
Glenn Randers-Pehrson | 896239b | 1998-04-21 15:03:57 -0500 | [diff] [blame] | 15 | |
Glenn Randers-Pehrson | 345bc27 | 1998-06-14 14:43:31 -0500 | [diff] [blame] | 16 | STATUS: Under investigation, postponed until after |
Glenn Randers-Pehrson | 166c5a3 | 1999-12-10 09:43:02 -0600 | [diff] [blame] | 17 | libpng-1.1.0. About 160 loops will be turned around |
| 18 | in libpng-1.1.Nn, for testing. |
Glenn Randers-Pehrson | 5c6aeb2 | 1998-12-29 11:47:59 -0600 | [diff] [blame] | 19 | |
Glenn Randers-Pehrson | 87544ac | 1999-01-13 22:06:39 -0600 | [diff] [blame] | 20 | 2. July 4, 1998 -- ENHANCEMENT -- Glenn R-P |
Glenn Randers-Pehrson | 5c6aeb2 | 1998-12-29 11:47:59 -0600 | [diff] [blame] | 21 | |
Glenn Randers-Pehrson | bcfd15d | 1999-10-01 14:22:25 -0500 | [diff] [blame] | 22 | libpng-1.0.5 and earlier transform colors to gamma=1.0 space for |
Glenn Randers-Pehrson | 5c6aeb2 | 1998-12-29 11:47:59 -0600 | [diff] [blame] | 23 | merging with background, and then back to the image's gamma. The |
| 24 | bit_depth of the intermediate (gamma=1.0) representation is probably |
| 25 | not sufficient. In the typical gamma=1/2.2 situation, the linear |
| 26 | pixels need about 4 more bits than the gamma-encoded ones, to avoid |
| 27 | loss of precision. A similar situation exists with the rgb_to_gray |
| 28 | operation. |
| 29 | |
| 30 | STATUS: under development. |
| 31 | |
Glenn Randers-Pehrson | 4393a9a | 1999-09-17 12:27:26 -0500 | [diff] [blame] | 32 | 3. September 1999 -- ENHANCEMENT -- |
| 33 | |
| 34 | It should be possible to use libpng without floating-point aritmetic. |
| 35 | |
| 36 | STATUS: Under investigation, implementation postponed until after |
Glenn Randers-Pehrson | bcfd15d | 1999-10-01 14:22:25 -0500 | [diff] [blame] | 37 | libpng-1.0.5. The application interface will change because replacements |
Glenn Randers-Pehrson | 4393a9a | 1999-09-17 12:27:26 -0500 | [diff] [blame] | 38 | for the png_set_gAMA(), png_set_cHRM(), and corresponding png_get_() |
| 39 | functions will be needed. |
Glenn Randers-Pehrson | 896239b | 1998-04-21 15:03:57 -0500 | [diff] [blame] | 40 | |
Glenn Randers-Pehrson | 61c32d9 | 2000-02-04 23:40:16 -0600 | [diff] [blame^] | 41 | Much of this was completed in libpng-1.0.5h, but gamma compensation |
| 42 | is not yet done in fixed-point arithmetic. |
| 43 | |
Glenn Randers-Pehrson | 6d8f3b0 | 1999-10-23 08:39:18 -0500 | [diff] [blame] | 44 | 4. October 1999 -- BUG |
Glenn Randers-Pehrson | 860ab2b | 1999-10-14 07:43:10 -0500 | [diff] [blame] | 45 | |
Glenn Randers-Pehrson | 6d8f3b0 | 1999-10-23 08:39:18 -0500 | [diff] [blame] | 46 | pngvcrd.c is failing for interlaced PNGs that have empty passes. |
Glenn Randers-Pehrson | 860ab2b | 1999-10-14 07:43:10 -0500 | [diff] [blame] | 47 | |
Glenn Randers-Pehrson | 6d8f3b0 | 1999-10-23 08:39:18 -0500 | [diff] [blame] | 48 | STATUS: A check for "width != 0" is required in several places. |
Glenn Randers-Pehrson | 166c5a3 | 1999-12-10 09:43:02 -0600 | [diff] [blame] | 49 | Fixed in libpng-1.0.5a/1.1.0 |
Glenn Randers-Pehrson | 860ab2b | 1999-10-14 07:43:10 -0500 | [diff] [blame] | 50 | |
Glenn Randers-Pehrson | 6d8f3b0 | 1999-10-23 08:39:18 -0500 | [diff] [blame] | 51 | 5. October 1999 -- BUG |
Glenn Randers-Pehrson | 860ab2b | 1999-10-14 07:43:10 -0500 | [diff] [blame] | 52 | |
Glenn Randers-Pehrson | 6d8f3b0 | 1999-10-23 08:39:18 -0500 | [diff] [blame] | 53 | Under MSVC++6.0 with debugging enabled, heap corruption was detected |
| 54 | while destroying the png_write_ptr. |
| 55 | |
| 56 | STATUS: This was fixed by modifying png_set_text (in pngset.c) to |
| 57 | refrain from writing into the user's text_ptr. With this fix, however, |
| 58 | pngwrite.c, while destroying the info_ptr, was failing to free the |
| 59 | text->key strings. Fix for the latter problem is to duplicate code |
| 60 | from png.c. |
| 61 | |
Glenn Randers-Pehrson | 166c5a3 | 1999-12-10 09:43:02 -0600 | [diff] [blame] | 62 | Fixed in libpng-1.0.5a/1.1.0 |
| 63 | |
| 64 | 6. December 1999 -- new BUG |
| 65 | |
| 66 | The png_text structure was modified in libpng-1.0.5e in a manner that |
| 67 | is not backward compatible (the lang member was added, and the |
| 68 | translated_key member was added to libpng-1.0.5g) |
| 69 | |
Glenn Randers-Pehrson | 61c32d9 | 2000-02-04 23:40:16 -0600 | [diff] [blame^] | 70 | STATUS: Fixed in libpng-1.0.5j/1.1.0 |
| 71 | |
| 72 | 7. December 1999 -- BUG |
| 73 | |
| 74 | The new pnggccrd.c has syntax errors when compiled with gcc. |
| 75 | |
| 76 | STATUS: Under investigation. |