VirtualBox

Ignore:
Timestamp:
Feb 12, 2024 3:57:56 PM (13 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
161613
Message:

libpng-1.6.42: Applied and adjusted our libpng changes to 1.6.42. bugref:8515

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/libs/libpng-1.6.42/README

    r96425 r103316  
    1 README for libpng version 1.6.37 - April 14, 2019
    2 =================================================
     1README for libpng version 1.6.42
     2================================
    33
    4 See the note about version numbers near the top of png.h.
    5 See INSTALL for instructions on how to install libpng.
     4See the note about version numbers near the top of `png.h`.
     5See `INSTALL` for instructions on how to install libpng.
    66
    7 Libpng comes in several distribution formats.  Get libpng-*.tar.gz or
    8 libpng-*.tar.xz or if you want UNIX-style line endings in the text
    9 files, or lpng*.7z or lpng*.zip if you want DOS-style line endings.
     7Libpng comes in several distribution formats.  Get `libpng-*.tar.gz`
     8or `libpng-*.tar.xz` if you want UNIX-style line endings in the text
     9files, or `lpng*.7z` or `lpng*.zip` if you want DOS-style line endings.
    1010
    11 Version 0.89 was the first official release of libpng.  Don't let the
    12 fact that it's the first release fool you.  The libpng library has been
    13 in extensive use and testing since mid-1995.  By late 1997 it had
    14 finally gotten to the stage where there hadn't been significant
    15 changes to the API in some time, and people have a bad feeling about
    16 libraries with versions < 1.0.  Version 1.0.0 was released in
    17 March 1998.
     11For a detailed description on using libpng, read `libpng-manual.txt`.
     12For examples of libpng in a program, see `example.c` and `pngtest.c`.
     13For usage information and restrictions (what little they are) on libpng,
     14see `png.h`.  For a description on using zlib (the compression library
     15used by libpng) and zlib's restrictions, see `zlib.h`.
    1816
    19 ****
    20 Note that some of the changes to the png_info structure render this
     17You should use zlib 1.0.4 or later to run this, but it _may_ work with
     18versions as old as zlib 0.95.  Even so, there are bugs in older zlib
     19versions which can cause the output of invalid compression streams for
     20some images.
     21
     22You should also note that zlib is a compression library that is useful
     23for more things than just PNG files.  You can use zlib as a drop-in
     24replacement for `fread()` and `fwrite()`, if you are so inclined.
     25
     26zlib should be available at the same place that libpng is, or at
     27https://zlib.net .
     28
     29You may also want a copy of the PNG specification.  It is available
     30as an RFC, a W3C Recommendation, and an ISO/IEC Standard.  You can find
     31these at http://www.libpng.org/pub/png/pngdocs.html .
     32
     33This code is currently being archived at https://libpng.sourceforge.io
     34in the download area, and at http://libpng.download/src .
     35
     36This release, based in a large way on Glenn's, Guy's and Andreas'
     37earlier work, was created and will be supported by myself and the PNG
     38development group.
     39
     40Send comments, corrections and commendations to `png-mng-implement`
     41at `lists.sourceforge.net`.  (Subscription is required; visit
     42https://lists.sourceforge.net/lists/listinfo/png-mng-implement
     43to subscribe.)
     44
     45Send general questions about the PNG specification to `png-mng-misc`
     46at `lists.sourceforge.net`.  (Subscription is required; visit
     47https://lists.sourceforge.net/lists/listinfo/png-mng-misc
     48to subscribe.)
     49
     50Historical notes
     51----------------
     52
     53The libpng library has been in extensive use and testing since mid-1995.
     54Version 0.89, published a year later, was the first official release.
     55By late 1997, it had finally gotten to the stage where there hadn't
     56been significant changes to the API in some time, and people have a bad
     57feeling about libraries with versions below 1.0.  Version 1.0.0 was
     58released in March 1998.
     59
     60Note that some of the changes to the `png_info` structure render this
    2161version of the library binary incompatible with libpng-0.89 or
    2262earlier versions if you are using a shared library.  The type of the
    23 "filler" parameter for png_set_filler() has changed from png_byte to
    24 png_uint_32, which will affect shared-library applications that use
    25 this function.
     63`filler` parameter for `png_set_filler()` has changed from `png_byte`
     64to `png_uint_32`, which will affect shared-library applications that
     65use this function.
    2666
    27 To avoid problems with changes to the internals of the png info_struct,
     67To avoid problems with changes to the internals of the `info_struct`,
    2868new APIs have been made available in 0.95 to avoid direct application
    29 access to info_ptr.  These functions are the png_set_<chunk> and
    30 png_get_<chunk> functions.  These functions should be used when
    31 accessing/storing the info_struct data, rather than manipulating it
     69access to `info_ptr`.  These functions are the `png_set_<chunk>` and
     70`png_get_<chunk>` functions.  These functions should be used when
     71accessing/storing the `info_struct` data, rather than manipulating it
    3272directly, to avoid such problems in the future.
    3373
     
    3575that access the info struct directly incompatible with the new
    3676library, through libpng-1.2.x.  In libpng-1.4.x, which was meant to
    37 be a transitional release, members of the png_struct and the
    38 info_struct can still be accessed, but the compiler will issue a
     77be a transitional release, members of the `png_struct` and the
     78`info_struct` can still be accessed, but the compiler will issue a
    3979warning about deprecated usage.  Since libpng-1.5.0, direct access
    4080to these structs is not allowed, and the definitions of the structs
    41 reside in private pngstruct.h and pnginfo.h header files that are not
    42 accessible to applications.  It is strongly suggested that new
    43 programs use the new APIs (as shown in example.c and pngtest.c), and
    44 older programs be converted to the new format, to facilitate upgrades
    45 in the future.
    46 ****
    47 
    48 Additions since 0.90 include the ability to compile libpng as a
    49 Windows DLL, and new APIs for accessing data in the info struct.
    50 Experimental functions include the ability to set weighting and cost
    51 factors for row filter selection, direct reads of integers from buffers
    52 on big-endian processors that support misaligned data access, faster
    53 methods of doing alpha composition, and more accurate 16->8 bit color
    54 conversion.
     81reside in private `pngstruct.h` and `pnginfo.h` header files that are
     82not accessible to applications.  It is strongly suggested that new
     83programs use the new APIs (as shown in `example.c` and `pngtest.c`),
     84and older programs be converted to the new format, to facilitate
     85upgrades in the future.
    5586
    5687The additions since 0.89 include the ability to read from a PNG stream
     
    6293critical or an ancillary chunk.
    6394
    64 For a detailed description on using libpng, read libpng-manual.txt.
    65 For examples of libpng in a program, see example.c and pngtest.c.  For
    66 usage information and restrictions (what little they are) on libpng,
    67 see png.h.  For a description on using zlib (the compression library
    68 used by libpng) and zlib's restrictions, see zlib.h
     95The additions since 0.90 include the ability to compile libpng as a
     96Windows DLL, and new APIs for accessing data in the `info_struct`.
     97Experimental functions included the ability to set weighting and cost
     98factors for row filter selection, direct reads of integers from buffers
     99on big-endian processors that support misaligned data access, faster
     100methods of doing alpha composition, and more accurate 16-to-8 bit color
     101conversion.  Some of these experimental functions, such as the weighted
     102filter heuristics, have since been removed.
    69103
    70 I have included a general makefile, as well as several machine and
    71 compiler specific ones, but you may have to modify one for your own
    72 needs.
     104Files included in this distribution
     105-----------------------------------
    73106
    74 You should use zlib 1.0.4 or later to run this, but it MAY work with
    75 versions as old as zlib 0.95.  Even so, there are bugs in older zlib
    76 versions which can cause the output of invalid compression streams for
    77 some images.
    78 
    79 You should also note that zlib is a compression library that is useful
    80 for more things than just PNG files.  You can use zlib as a drop-in
    81 replacement for fread() and fwrite(), if you are so inclined.
    82 
    83 zlib should be available at the same place that libpng is, or at
    84 https://zlib.net.
    85 
    86 You may also want a copy of the PNG specification.  It is available
    87 as an RFC, a W3C Recommendation, and an ISO/IEC Standard.  You can find
    88 these at http://www.libpng.org/pub/png/pngdocs.html .
    89 
    90 This code is currently being archived at libpng.sourceforge.io in the
    91 [DOWNLOAD] area, and at http://libpng.download/src .
    92 
    93 This release, based in a large way on Glenn's, Guy's and Andreas'
    94 earlier work, was created and will be supported by myself and the PNG
    95 development group.
    96 
    97 Send comments/corrections/commendations to png-mng-implement at
    98 lists.sourceforge.net (subscription required; visit
    99 https://lists.sourceforge.net/lists/listinfo/png-mng-implement
    100 to subscribe).
    101 
    102 Send general questions about the PNG specification to png-mng-misc
    103 at lists.sourceforge.net (subscription required; visit
    104 https://lists.sourceforge.net/lists/listinfo/png-mng-misc to
    105 subscribe).
    106 
    107 Files in this distribution:
    108 
    109       ANNOUNCE      =>  Announcement of this version, with recent changes
    110       AUTHORS       =>  List of contributing authors
    111       CHANGES       =>  Description of changes between libpng versions
    112       KNOWNBUG      =>  List of known bugs and deficiencies
    113       LICENSE       =>  License to use and redistribute libpng
    114       README        =>  This file
    115       TODO          =>  Things not implemented in the current library
    116       TRADEMARK     =>  Trademark information
    117       example.c     =>  Example code for using libpng functions
    118       libpng.3      =>  manual page for libpng (includes libpng-manual.txt)
    119       libpng-manual.txt  =>  Description of libpng and its functions
    120       libpngpf.3    =>  manual page for libpng's private functions
    121       png.5         =>  manual page for the PNG format
    122       png.c         =>  Basic interface functions common to library
    123       png.h         =>  Library function and interface declarations (public)
    124       pngpriv.h     =>  Library function and interface declarations (private)
    125       pngconf.h     =>  System specific library configuration (public)
    126       pngstruct.h   =>  png_struct declaration (private)
    127       pnginfo.h     =>  png_info struct declaration (private)
    128       pngdebug.h    =>  debugging macros (private)
    129       pngerror.c    =>  Error/warning message I/O functions
    130       pngget.c      =>  Functions for retrieving info from struct
    131       pngmem.c      =>  Memory handling functions
    132       pngbar.png    =>  PNG logo, 88x31
    133       pngnow.png    =>  PNG logo, 98x31
    134       pngpread.c    =>  Progressive reading functions
    135       pngread.c     =>  Read data/helper high-level functions
    136       pngrio.c      =>  Lowest-level data read I/O functions
    137       pngrtran.c    =>  Read data transformation functions
    138       pngrutil.c    =>  Read data utility functions
    139       pngset.c      =>  Functions for storing data into the info_struct
    140       pngtest.c     =>  Library test program
    141       pngtest.png   =>  Library test sample image
    142       pngtrans.c    =>  Common data transformation functions
    143       pngwio.c      =>  Lowest-level write I/O functions
    144       pngwrite.c    =>  High-level write functions
    145       pngwtran.c    =>  Write data transformations
    146       pngwutil.c    =>  Write utility functions
    147       arm           =>  Contains optimized code for the ARM platform
    148       powerpc       =>  Contains optimized code for the PowerPC platform
    149       contrib       =>  Contributions
    150        arm-neon         =>  Optimized code for ARM-NEON platform
    151        powerpc-vsx      =>  Optimized code for POWERPC-VSX platform
    152        examples         =>  Example programs
    153        gregbook         =>  source code for PNG reading and writing, from
    154                             Greg Roelofs' "PNG: The Definitive Guide",
    155                             O'Reilly, 1999
    156        libtests         =>  Test programs
    157        mips-msa         =>  Optimized code for MIPS-MSA platform
    158        pngminim         =>  Minimal decoder, encoder, and progressive decoder
    159                             programs demonstrating use of pngusr.dfa
    160        pngminus         =>  Simple pnm2png and png2pnm programs
    161        pngsuite         =>  Test images
    162        testpngs
    163        tools            =>  Various tools
    164        visupng          =>  Contains a MSVC workspace for VisualPng
    165       intel             =>  Optimized code for INTEL-SSE2 platform
    166       mips              =>  Optimized code for MIPS platform
    167       projects      =>  Contains project files and workspaces for
    168                         building a DLL
    169        owatcom          =>  Contains a WATCOM project for building libpng
    170        visualc71        =>  Contains a Microsoft Visual C++ (MSVC)
    171                             workspace for building libpng and zlib
    172        vstudio          =>  Contains a Microsoft Visual C++ (MSVC)
    173                             workspace for building libpng and zlib
    174       scripts       =>  Directory containing scripts for building libpng:
    175                             (see scripts/README.txt for the list of scripts)
     107    ANNOUNCE      =>  Announcement of this version, with recent changes
     108    AUTHORS       =>  List of contributing authors
     109    CHANGES       =>  Description of changes between libpng versions
     110    INSTALL       =>  Instructions to install libpng
     111    LICENSE       =>  License to use and redistribute libpng
     112    README        =>  This file
     113    TODO          =>  Things not implemented in the current library
     114    TRADEMARK     =>  Trademark information
     115    example.c     =>  Example code for using libpng functions
     116    libpng.3      =>  Manual page for libpng (includes libpng-manual.txt)
     117    libpng-manual.txt  =>  Description of libpng and its functions
     118    libpngpf.3    =>  Manual page for libpng's private functions (deprecated)
     119    png.5         =>  Manual page for the PNG format
     120    png.c         =>  Basic interface functions common to library
     121    png.h         =>  Library function and interface declarations (public)
     122    pngpriv.h     =>  Library function and interface declarations (private)
     123    pngconf.h     =>  System specific library configuration (public)
     124    pngstruct.h   =>  png_struct declaration (private)
     125    pnginfo.h     =>  png_info struct declaration (private)
     126    pngdebug.h    =>  debugging macros (private)
     127    pngerror.c    =>  Error/warning message I/O functions
     128    pngget.c      =>  Functions for retrieving info from struct
     129    pngmem.c      =>  Memory handling functions
     130    pngbar.png    =>  PNG logo, 88x31
     131    pngnow.png    =>  PNG logo, 98x31
     132    pngpread.c    =>  Progressive reading functions
     133    pngread.c     =>  Read data/helper high-level functions
     134    pngrio.c      =>  Lowest-level data read I/O functions
     135    pngrtran.c    =>  Read data transformation functions
     136    pngrutil.c    =>  Read data utility functions
     137    pngset.c      =>  Functions for storing data into the info_struct
     138    pngtest.c     =>  Library test program
     139    pngtest.png   =>  Library test sample image
     140    pngtrans.c    =>  Common data transformation functions
     141    pngwio.c      =>  Lowest-level write I/O functions
     142    pngwrite.c    =>  High-level write functions
     143    pngwtran.c    =>  Write data transformations
     144    pngwutil.c    =>  Write utility functions
     145    arm/          =>  Optimized code for the ARM platform
     146    intel/        =>  Optimized code for the INTEL-SSE2 platform
     147    mips/         =>  Optimized code for the MIPS platform
     148    powerpc/      =>  Optimized code for the PowerPC platform
     149    ci/           =>  Scripts for continuous integration
     150    contrib/      =>  External contributions
     151        arm-neon/     =>  Optimized code for the ARM-NEON platform
     152        mips-msa/     =>  Optimized code for the MIPS-MSA platform
     153        powerpc-vsx/  =>  Optimized code for the POWERPC-VSX platform
     154        examples/     =>  Examples of libpng usage
     155        gregbook/     =>  Source code for PNG reading and writing, from
     156                          "PNG: The Definitive Guide" by Greg Roelofs,
     157                          O'Reilly, 1999
     158        libtests/     =>  Test programs
     159        oss-fuzz/     =>  Files used by the OSS-Fuzz project for fuzz-testing
     160                          libpng
     161        pngminim/     =>  Minimal decoder, encoder, and progressive decoder
     162                          programs demonstrating the use of pngusr.dfa
     163        pngminus/     =>  Simple pnm2png and png2pnm programs
     164        pngsuite/     =>  Test images
     165        testpngs/     =>  Test images
     166        tools/        =>  Various tools
     167        visupng/      =>  VisualPng, a Windows viewer for PNG images
     168    projects/     =>  Project files and workspaces for various IDEs
     169        owatcom/      =>  OpenWatcom project
     170        visualc71/    =>  Microsoft Visual C++ 7.1 workspace
     171        vstudio/      =>  Microsoft Visual Studio workspace
     172    scripts/      =>  Scripts and makefiles for building libpng
     173                      (see scripts/README.txt for the complete list)
     174    tests/        =>  Test scripts
    176175
    177176Good luck, and happy coding!
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette