summaryrefslogtreecommitdiff
path: root/pngpriv.h
AgeCommit message (Collapse)Author
2019-03-31arm: Rename all functions to the pattern png_*_neon; add debug tracesCosmin Truta
2019-02-03Fix a memory leak in the riffled palette optimization on ARM; refactorCosmin Truta
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.
2018-09-04Optimize png_do_expand_palette for ARMRichard Townsend
ARM-specific optimization processes 8 or 4 pixels at once. Improves performance by around 10-22% on a recent ARM Chromebook.
2018-08-18Remove top-level const from function-scope variablesCosmin Truta
As per the const correctness rules, top-level const-ness of data in automatic scopes does not propagate outside of these scopes (unlike const-ness at lower levels, such as pointers to const data). Previously, const was used liberally, but inconsistently across the libpng codebase. Using const wherever applicable is not incorrect. However, _consistent_ use of const is difficult to maintain in such conditions. In conclusion, we shall continue to use const only where doing so is strictly necessary: 1. If a function guarantees that it will not modify an argument passed by pointer, the corresponding function parameter should be a pointer-to-const (const T *). 2. Static data should not be modified, therefore it should be const. Reference: Google C++ Style Guide https://google.github.io/styleguide/cppguide.html#Use_of_const
2018-07-28Remove the "last changed" version information from source commentsCosmin Truta
This information is maintained by the version control system.
2018-07-16ARM: Disable hand-written AArch32 NEON on AArch64Vicki Pfau
2018-07-15Release libpng version 1.6.35Cosmin Truta
2018-06-17[libpng16] Replace the remaining uses of png_size_t with size_tCosmin Truta
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.
2017-11-13Avoid -Wundef warnings when building libpngVadim Zeitlin
Always define PNG_INTEL_SSE_OPT and PNG_INTEL_SSE_IMPLEMENTATION before comparing them with 0.
2017-11-03[libpng16] Fix one more typoGlenn Randers-Pehrson
2017-08-29[libpng16] Fix "last changed" datesGlenn Randers-Pehrson
2017-08-25[libpng16] Bump version to 1.6.33beta01Glenn Randers-Pehrson
2017-08-24[libpng16] Imported from libpng-1.6.32.tarGlenn Randers-Pehrson
2017-08-05[libpng16] Make png_check_chunk_length|name() parameters constGlenn Randers-Pehrson
2017-08-05[libpng16] Removed unused chunk_name parameter from png_check_chunk_length().Glenn Randers-Pehrson
2017-08-04[libpng16] Moved chunk-length check into a png_check_chunk_length() privateGlenn Randers-Pehrson
function (Suggested by Max Stepin).
2017-07-31[libpng16] Update "Last changed" dates and some copyright yearsGlenn Randers-Pehrson
2017-07-31[libpng16] Committed png.h and pngpriv.h that were omitted from previous checkinGlenn Randers-Pehrson
2017-07-27[libpng16] Imported from libpng-1.6.31.tarGlenn Randers-Pehrson
2017-07-13[libpng16] Implement eXIf chunk supportGlenn Randers-Pehrson
2017-07-02[libpng16] Revised pngpriv.h to use PNG_VERSION_INFO_ONLY instead ofGlenn Randers-Pehrson
PNG_ARM_NEON_IMPLEMENTATION == 2 to exclude some definitions that assembler cannot recognize.
2017-07-01[libpng16] Revised pngpriv.h to work around failure to compile arm/filter_neon.SGlenn Randers-Pehrson
("typedef" directive is unrecognized by the assembler).
2017-06-29[libpng16] Update some "last changed" datesGlenn Randers-Pehrson
2017-03-30[libpng16] Update CHANGES, ANNOUNCE, and "last changed" dates.Glenn Randers-Pehrson
2017-03-30tweakViktor Szakats
2017-03-30silence clang -Wcast-qual const drop warningsViktor Szakats
2017-03-16[libpng16] Imported from libpng-1.6.29.tarGlenn Randers-Pehrson
2017-02-12Fixed VSX compilation time checksVadim Barkov
__ppc64__ -> __PPC64__
2017-01-31Removed PNG_ALIGN dependency from VSX since it is not neededVadim Barkov
2017-01-30Merge branch 'libpng16' into libpng16Vadim Barkov
2017-01-14Added initial code for PowerPC VSX optimisationVadim Barkov
2017-01-12[libpng16] Update credits to include Google Inc, for the Intel/SSE patch.Glenn Randers-Pehrson
2017-01-05[libpng16] Moved SSE2 optimization code into the main libpng source directory.Glenn Randers-Pehrson
Configure libpng with "configure --enable-intel-sse" or compile libpng with "-DPNG_INTEL_SSE" in CPPFLAGS to enable it. This patch was previously applied to libpng-1.6.28rc03 but withdrawn to allow time for QA.
2017-01-03[libpng16] Imported from libpng-1.6.28rc03.tarGlenn Randers-Pehrson
2017-01-03[libpng16] Moved SSE2 optimization code into the main libpng source directory.Glenn Randers-Pehrson
Configure libpng with "configure --enable-intel-see" or compile libpng with "-DPNG_INTEL_SSE" in CPPFLAGS to enable it.
2016-10-19[libpng16] Imported from libpng-1.6.26.tarGlenn Randers-Pehrson
2016-10-02[libpng16] Imported from libpng-1.6.26beta03.tarGlenn Randers-Pehrson
2016-09-30Merge branch 'libpng16' of git://github.com/jbowler/libpng into libpng16Glenn Randers-Pehrson
2016-09-30Unsigned overflowJohn Bowler
Remove all currently detected cases of unsigned overflow. Detection is runtime, so test case dependent. The changes to pngvalid.c eliminate spurious and probably invalid tests with one while loop exception. Apart from that and the change to the dependence on the intended unsigned overflow in pngtrans.c the changes are limited to altering the meme for an unsigned 'x' from: while (x-- > 0) to for (; x > 0; --x) This works because, in all cases, the control variable is not used in the loop. The 'while' meme was, at one time, warn'ed by GCC so it is probably a good change, for some weird religious value of good. Signed-off-by: John Bowler <jbowler@acm.org>
2016-09-30[libpng16] Quieted 74 (out of 288) -Wconversion compiler warnings by changingGlenn Randers-Pehrson
flag definitions in pngpriv.h from 0xnnnn to 0xnnnnU.
2016-09-19[libpng16] Changed PNG_ZLIB_VERNUM to ZLIB_VERNUM in pngpriv.h, pngstruct.h,Glenn Randers-Pehrson
and pngrutil.c.
2016-08-31[libpng16] Imported from libpng-1.6.25.tarGlenn Randers-Pehrson
2016-08-30[libpng16] Updated CHANGES and ANNOUNCEGlenn Randers-Pehrson
2016-08-30Added MIPS MSA optimization for following functions:Mandar Sahastrabuddhe
1. png_read_filter_row_sub4_msa 2. png_read_filter_row_avg4_msa 3. png_read_filter_row_paeth4_msa 4. png_read_filter_row_sub3_msa 5. png_read_filter_row_avg3_msa 6. png_read_filter_row_paeth3_msa Signed-off-by: Mandar Sahastrabuddhe <Mandar.Sahastrabuddhe@imgtec.com>
2016-08-29[libpng16] Update CHANGES, ANNOUNCE with entry about MIPS supportGlenn Randers-Pehrson
2016-08-29Added build support for MIPS MSAMandar Sahastrabuddhe
Also added one msa optimized function: png_read_filter_row_up_msa Signed-off-by: Mandar Sahastrabuddhe <Mandar.Sahastrabuddhe@imgtec.com>
2016-08-10Merge branch 'libpng16' of git://github.com/jbowler/libpng into libpng16Glenn Randers-Pehrson
2016-08-10[libpng16] Reject oversized iCCP profile lengthJohn Bowler
The code now validates the ICC profile length against the user chunk limit before the buffer is allocated, as opposed to doing it while the buffer is read. This removes the potential to consume virtual address space with a carefully crafted ICC profile; only an issue on 32-bit systems where a valid profile can be up to 2^32-4 bytes in length. libpng never writes beyond the application supplied limit, but previously it did allocate a buffer of the size specified in the profile header. The exploitability of this is almost zero; the address space is released as soon as the PNG read completes. Also clean up PNG_DEBUG compile of pngtest.c. Signed-off-by: John Bowler <jbowler@acm.org>
2016-08-03[libpng16] Imported from libpng-1.6.24.tarGlenn Randers-Pehrson
2016-08-02[libpng16] Conditionally compile ARM_NEON headers in pngpriv.hGlenn Randers-Pehrson
Updated contrib/intel/intel_sse.patch