diff --git a/media/libpng/CHANGES b/media/libpng/CHANGES index d4f0c8ba1985..923fc5054e89 100644 --- a/media/libpng/CHANGES +++ b/media/libpng/CHANGES @@ -5675,6 +5675,34 @@ Version 1.6.24rc03 [August 2, 2016] Version 1.6.24[August 4, 2016] No changes. +Version 1.6.25beta01 [August 12, 2016] + Reject oversized iCCP profile immediately. + Cleaned up PNG_DEBUG compile of pngtest.c. + Conditionally compile png_inflate(). + +Version 1.6.25beta02 [August 18, 2016] + Don't install pngcp; it conflicts with pngcp in the pngtools package. + Minor editing of INSTALL, (whitespace, added copyright line) + +Version 1.6.25rc01 [August 24, 2016] + No changes. + +Version 1.6.25rc02 [August 29, 2016] + Added MIPS support (Mandar Sahastrabuddhe ). + Only the UP filter is currently implemented. + +Version 1.6.25rc03 [August 29, 2016] + Rebased contrib/intel/intel_sse.patch after the MIPS implementation. + +Version 1.6.25rc04 [August 30, 2016] + Added MIPS support for SUB, AVG, and PAETH filters (Mandar Sahastrabuddhe). + +Version 1.6.25rc05 [August 30, 2016] + Rebased contrib/intel/intel_sse.patch after the MIPS implementation update.. + +Version 1.6.25 [September 1, 2016] + No changes. + Send comments/corrections/commendations to png-mng-implement at lists.sf.net (subscription required; visit https://lists.sourceforge.net/lists/listinfo/png-mng-implement diff --git a/media/libpng/LICENSE b/media/libpng/LICENSE index b40a95f26c99..56bc4aeedcbe 100644 --- a/media/libpng/LICENSE +++ b/media/libpng/LICENSE @@ -8,6 +8,10 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE: If you modify libpng you may insert additional notices immediately following this sentence. +pnglibconf.h and moz.build are distributed under the Mozilla Public License, +v. 2.0. If a copy of the MPL was not distributed with this file, You can +obtain one at http://mozilla.org/MPL/2.0/. + This modified version of libpng code adds animated PNG support and is released under the libpng license described below. The modifications are Copyright (c) 2006-2007 Andrew Smith, Copyright (c) 2008-2016 Max Stepin, @@ -22,7 +26,7 @@ Copyright (c) 2016 Google, Inc., and consist of the source files in the This code is released under the libpng license. -libpng versions 1.0.7, July 1, 2000 through 1.6.24, August 4, 2016 are +libpng versions 1.0.7, July 1, 2000 through 1.6.25, September 1, 2016 are Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are derived from libpng-1.0.6, and are distributed according to the same disclaimer and license as libpng-1.0.6 with the following individuals @@ -139,4 +143,4 @@ any encryption software. See the EAR, paragraphs 734.3(b)(3) and Glenn Randers-Pehrson glennrp at users.sourceforge.net -August 4, 2016 +September 1, 2016 diff --git a/media/libpng/MOZCHANGES b/media/libpng/MOZCHANGES index 284abd8628e4..aab2ccd647fb 100644 --- a/media/libpng/MOZCHANGES +++ b/media/libpng/MOZCHANGES @@ -1,6 +1,8 @@ Changes made to pristine libpng source by mozilla.org developers. +2016/09/01 -- Synced with libpng-1.6.25 (bug #1299590). + 2016/08/11 -- Enabled SSE2 support (bug #1276127). 2016/08/06 -- Synced with libpng-1.6.24 (bug #1291986). diff --git a/media/libpng/README b/media/libpng/README index a8fba9168bd5..17bca9a5f2b6 100644 --- a/media/libpng/README +++ b/media/libpng/README @@ -1,4 +1,4 @@ -README for libpng version 1.6.24 - August 4, 2016 (shared library 16.0) +README for libpng version 1.6.25 - September 1, 2016 (shared library 16.0) See the note about version numbers near the top of png.h See INSTALL for instructions on how to install libpng. @@ -180,15 +180,18 @@ Files in this distribution: pngwutil.c => Write utility functions arm => Contains optimized code for the ARM platform contrib => Contributions + arm-neon => Optimized code for ARM-NEON platform examples => Example programs gregbook => source code for PNG reading and writing, from Greg Roelofs' "PNG: The Definitive Guide", O'Reilly, 1999 + intel => Optimized code for INTEL-SSE2 platform libtests => Test programs pngminim => Minimal decoder, encoder, and progressive decoder programs demonstrating use of pngusr.dfa pngminus => Simple pnm2png and png2pnm programs pngsuite => Test images + testpngs tools => Various tools visupng => Contains a MSVC workspace for VisualPng projects => Contains project files and workspaces for diff --git a/media/libpng/apng.patch b/media/libpng/apng.patch index 38bc2adbbd4a..1794853480de 100644 --- a/media/libpng/apng.patch +++ b/media/libpng/apng.patch @@ -14,7 +14,7 @@ Index: LICENSE + This code is released under the libpng license. - libpng versions 1.0.7, July 1, 2000 through 1.6.24, August 4, 2016 are + libpng versions 1.0.7, July 1, 2000 through 1.6.25, September 1, 2016 are Index: pngread.c =================================================================== --- pngread.c @@ -299,8 +299,8 @@ Index: png.c #else # ifdef __STDC__ return PNG_STRING_NEWLINE \ -- "libpng version 1.6.24 - August 4, 2016" PNG_STRING_NEWLINE \ -+ "libpng version 1.6.24+apng - August 4, 2016" PNG_STRING_NEWLINE \ +- "libpng version 1.6.25 - September 1, 2016" PNG_STRING_NEWLINE \ ++ "libpng version 1.6.25+apng - September 1, 2016" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson" \ PNG_STRING_NEWLINE \ "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ @@ -310,8 +310,8 @@ Index: png.c + "Portions Copyright (c) 2006-2007 Andrew Smith" PNG_STRING_NEWLINE \ + "Portions Copyright (c) 2008-2016 Max Stepin" PNG_STRING_NEWLINE ; # else -- return "libpng version 1.6.24 - August 4, 2016\ -+ return "libpng version 1.6.24+apng - August 4, 2016\ +- return "libpng version 1.6.25 - September 1, 2016\ ++ return "libpng version 1.6.25+apng - September 1, 2016\ Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson\ Copyright (c) 1996-1997 Andreas Dilger\ - Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc."; @@ -338,19 +338,19 @@ Index: png.h * This code is released under the libpng license. * * Some files in the "contrib" directory and some configure-generated -@@ -313,8 +319,9 @@ +@@ -314,8 +320,9 @@ */ /* Version information for png.h - this should match the version in png.c */ --#define PNG_LIBPNG_VER_STRING "1.6.24" --#define PNG_HEADER_VERSION_STRING " libpng version 1.6.24 - August 4, 2016\n" -+#define PNG_LIBPNG_VER_STRING "1.6.24+apng" +-#define PNG_LIBPNG_VER_STRING "1.6.25" +-#define PNG_HEADER_VERSION_STRING " libpng version 1.6.25 - September 1, 2016\n" ++#define PNG_LIBPNG_VER_STRING "1.6.25+apng" +#define PNG_HEADER_VERSION_STRING \ -+ " libpng version 1.6.24+apng - August 4, 2016\n" ++ " libpng version 1.6.25+apng - September 1, 2016\n" #define PNG_LIBPNG_VER_SONUM 16 #define PNG_LIBPNG_VER_DLLNUM 16 -@@ -365,6 +372,10 @@ +@@ -366,6 +373,10 @@ # include "pnglibconf.h" #endif @@ -361,7 +361,7 @@ Index: png.h #ifndef PNG_VERSION_INFO_ONLY /* Machine specific configuration. */ # include "pngconf.h" -@@ -460,6 +471,17 @@ +@@ -461,6 +472,17 @@ * See pngconf.h for base types that vary by machine/system */ @@ -379,7 +379,7 @@ Index: png.h /* This triggers a compiler error in png.c, if png.c and png.h * do not agree upon the version number. */ -@@ -780,6 +802,10 @@ +@@ -781,6 +803,10 @@ #define PNG_INFO_sPLT 0x2000U /* ESR, 1.0.6 */ #define PNG_INFO_sCAL 0x4000U /* ESR, 1.0.6 */ #define PNG_INFO_IDAT 0x8000U /* ESR, 1.0.6 */ @@ -390,7 +390,7 @@ Index: png.h /* This is used for the transformation routines, as some of them * change these values for the row. It also should enable using -@@ -817,6 +843,10 @@ +@@ -818,6 +844,10 @@ #ifdef PNG_PROGRESSIVE_READ_SUPPORTED typedef PNG_CALLBACK(void, *png_progressive_info_ptr, (png_structp, png_infop)); typedef PNG_CALLBACK(void, *png_progressive_end_ptr, (png_structp, png_infop)); @@ -401,7 +401,7 @@ Index: png.h /* The following callback receives png_uint_32 row_number, int pass for the * png_bytep data of the row. When transforming an interlaced image the -@@ -3242,6 +3272,75 @@ +@@ -3246,6 +3276,75 @@ * END OF HARDWARE AND SOFTWARE OPTIONS ******************************************************************************/ @@ -477,7 +477,7 @@ Index: png.h /* Maintainer: Put new public prototypes here ^, in libpng.3, in project * defs, and in scripts/symbols.def. */ -@@ -3250,7 +3349,11 @@ +@@ -3254,7 +3353,11 @@ * one to use is one more than this.) */ #ifdef PNG_EXPORT_LAST_ORDINAL @@ -493,7 +493,7 @@ Index: pngpriv.h =================================================================== --- pngpriv.h +++ pngpriv.h -@@ -537,6 +537,10 @@ +@@ -566,6 +566,10 @@ #define PNG_HAVE_CHUNK_AFTER_IDAT 0x2000 /* Have another chunk after IDAT */ /* 0x4000 (unused) */ #define PNG_IS_READ_STRUCT 0x8000 /* Else is a write struct */ @@ -504,7 +504,7 @@ Index: pngpriv.h /* Flags for the transformations the PNG library does on the image data */ #define PNG_BGR 0x0001 -@@ -754,6 +758,16 @@ +@@ -783,6 +787,16 @@ #define png_tRNS PNG_U32(116, 82, 78, 83) #define png_zTXt PNG_U32(122, 84, 88, 116) @@ -521,7 +521,7 @@ Index: pngpriv.h /* The following will work on (signed char*) strings, whereas the get_uint_32 * macro will fail on top-bit-set values because of the sign extension. */ -@@ -1443,6 +1457,49 @@ +@@ -1489,6 +1503,49 @@ #endif /* PROGRESSIVE_READ */ diff --git a/media/libpng/arm/filter_neon.S b/media/libpng/arm/filter_neon.S index 3b061d6bbf28..65692af3ed24 100644 --- a/media/libpng/arm/filter_neon.S +++ b/media/libpng/arm/filter_neon.S @@ -10,6 +10,12 @@ * and license in png.h */ +/* These are required because Mozilla's moz.build system doesn't pass + * -DDefined macros to the assembler. + */ +#define PNG_READ_SUPPORTED +#define MOZ_PNG_HAVE_ARM_NEON + /* This is required to get the symbol renames, which are #defines, and the * definitions (or not) of PNG_ARM_NEON_OPT and PNG_ARM_NEON_IMPLEMENTATION. */ diff --git a/media/libpng/libpng-manual.txt b/media/libpng/libpng-manual.txt index 98ac4b142995..d969f96d319f 100644 --- a/media/libpng/libpng-manual.txt +++ b/media/libpng/libpng-manual.txt @@ -1,6 +1,6 @@ libpng-manual.txt - A description on how to use and modify libpng - libpng version 1.6.24 - August 4, 2016 + libpng version 1.6.25 - September 1, 2016 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2016 Glenn Randers-Pehrson @@ -11,7 +11,7 @@ libpng-manual.txt - A description on how to use and modify libpng Based on: - libpng versions 0.97, January 1998, through 1.6.24 - August 4, 2016 + libpng versions 0.97, January 1998, through 1.6.25 - September 1, 2016 Updated and distributed by Glenn Randers-Pehrson Copyright (c) 1998-2016 Glenn Randers-Pehrson @@ -5350,7 +5350,7 @@ Since the PNG Development group is an ad-hoc body, we can't make an official declaration. This is your unofficial assurance that libpng from version 0.71 and -upward through 1.6.24 are Y2K compliant. It is my belief that earlier +upward through 1.6.25 are Y2K compliant. It is my belief that earlier versions were also Y2K compliant. Libpng only has two year fields. One is a 2-byte unsigned integer diff --git a/media/libpng/moz.build b/media/libpng/moz.build index c52b07a28fa9..9146a8d5a209 100644 --- a/media/libpng/moz.build +++ b/media/libpng/moz.build @@ -28,7 +28,7 @@ UNIFIED_SOURCES += [ ] if CONFIG['CPU_ARCH'] == 'arm': - DEFINES['MOZ_PNG_HAVE_ARM_NEON'] = True + DEFINES['MOZ_PNG_USE_ARM_NEON'] = True UNIFIED_SOURCES += [ 'arm/arm_init.c', 'arm/filter_neon_intrinsics.c' @@ -39,7 +39,7 @@ if CONFIG['CPU_ARCH'] == 'arm': ] if CONFIG['INTEL_ARCHITECTURE']: - DEFINES['PNG_INTEL_SSE'] = True + DEFINES['MOZ_PNG_USE_INTEL_SSE'] = True UNIFIED_SOURCES += [ 'sse2/filter_sse2_intrinsics.c', 'sse2/intel_init.c' diff --git a/media/libpng/png.c b/media/libpng/png.c index e25c9203dae5..6798da4919f6 100644 --- a/media/libpng/png.c +++ b/media/libpng/png.c @@ -1,8 +1,8 @@ /* png.c - location for general purpose libpng functions * - * Last changed in libpng 1.6.24 [August 4, 2016] - * Copyright (c) 1998-2002,2004,2006-2015 Glenn Randers-Pehrson + * Last changed in libpng 1.6.25 [September 1, 2016] + * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) * @@ -14,7 +14,7 @@ #include "pngpriv.h" /* Generate a compiler error if there is an old png.h in the search path. */ -typedef png_libpng_version_1_6_24 Your_png_h_is_not_version_1_6_24; +typedef png_libpng_version_1_6_25 Your_png_h_is_not_version_1_6_25; /* Tells libpng that we have already handled the first "num_bytes" bytes * of the PNG file signature. If the PNG data is embedded into another @@ -775,7 +775,7 @@ png_get_copyright(png_const_structrp png_ptr) #else # ifdef __STDC__ return PNG_STRING_NEWLINE \ - "libpng version 1.6.24+apng - August 4, 2016" PNG_STRING_NEWLINE \ + "libpng version 1.6.25+apng - September 1, 2016" PNG_STRING_NEWLINE \ "Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson" \ PNG_STRING_NEWLINE \ "Copyright (c) 1996-1997 Andreas Dilger" PNG_STRING_NEWLINE \ @@ -784,7 +784,7 @@ png_get_copyright(png_const_structrp png_ptr) "Portions Copyright (c) 2006-2007 Andrew Smith" PNG_STRING_NEWLINE \ "Portions Copyright (c) 2008-2016 Max Stepin" PNG_STRING_NEWLINE ; # else - return "libpng version 1.6.24+apng - August 4, 2016\ + return "libpng version 1.6.25+apng - September 1, 2016\ Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson\ Copyright (c) 1996-1997 Andreas Dilger\ Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc.\ @@ -1935,8 +1935,8 @@ png_colorspace_set_sRGB(png_const_structrp png_ptr, png_colorspacerp colorspace, static const png_byte D50_nCIEXYZ[12] = { 0x00, 0x00, 0xf6, 0xd6, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x2d }; -int /* PRIVATE */ -png_icc_check_length(png_const_structrp png_ptr, png_colorspacerp colorspace, +static int /* bool */ +icc_check_length(png_const_structrp png_ptr, png_colorspacerp colorspace, png_const_charp name, png_uint_32 profile_length) { if (profile_length < 132) @@ -1946,6 +1946,40 @@ png_icc_check_length(png_const_structrp png_ptr, png_colorspacerp colorspace, return 1; } +#ifdef PNG_READ_iCCP_SUPPORTED +int /* PRIVATE */ +png_icc_check_length(png_const_structrp png_ptr, png_colorspacerp colorspace, + png_const_charp name, png_uint_32 profile_length) +{ + if (!icc_check_length(png_ptr, colorspace, name, profile_length)) + return 0; + + /* This needs to be here because the 'normal' check is in + * png_decompress_chunk, yet this happens after the attempt to + * png_malloc_base the required data. We only need this on read; on write + * the caller supplies the profile buffer so libpng doesn't allocate it. See + * the call to icc_check_length below (the write case). + */ +# ifdef PNG_SET_USER_LIMITS_SUPPORTED + else if (png_ptr->user_chunk_malloc_max > 0 && + png_ptr->user_chunk_malloc_max < profile_length) + return png_icc_profile_error(png_ptr, colorspace, name, profile_length, + "exceeds application limits"); +# elif PNG_USER_CHUNK_MALLOC_MAX > 0 + else if (PNG_USER_CHUNK_MALLOC_MAX < profile_length) + return png_icc_profile_error(png_ptr, colorspace, name, profile_length, + "exceeds libpng limits"); +# else /* !SET_USER_LIMITS */ + /* This will get compiled out on all 32-bit and better systems. */ + else if (PNG_SIZE_MAX < profile_length) + return png_icc_profile_error(png_ptr, colorspace, name, profile_length, + "exceeds system limits"); +# endif /* !SET_USER_LIMITS */ + + return 1; +} +#endif /* READ_iCCP */ + int /* PRIVATE */ png_icc_check_header(png_const_structrp png_ptr, png_colorspacerp colorspace, png_const_charp name, png_uint_32 profile_length, @@ -2381,7 +2415,7 @@ png_colorspace_set_ICC(png_const_structrp png_ptr, png_colorspacerp colorspace, if ((colorspace->flags & PNG_COLORSPACE_INVALID) != 0) return 0; - if (png_icc_check_length(png_ptr, colorspace, name, profile_length) != 0 && + if (icc_check_length(png_ptr, colorspace, name, profile_length) != 0 && png_icc_check_header(png_ptr, colorspace, name, profile_length, profile, color_type) != 0 && png_icc_check_tag_table(png_ptr, colorspace, name, profile_length, diff --git a/media/libpng/png.h b/media/libpng/png.h index eaebddb8295b..695ed7df6534 100644 --- a/media/libpng/png.h +++ b/media/libpng/png.h @@ -1,7 +1,7 @@ /* png.h - header file for PNG reference library * - * libpng version 1.6.24, August 4, 2016 + * libpng version 1.6.25, September 1, 2016 * * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) @@ -12,7 +12,7 @@ * Authors and maintainers: * libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat * libpng versions 0.89, June 1996, through 0.96, May 1997: Andreas Dilger - * libpng versions 0.97, January 1998, through 1.6.24, August 4, 2016: + * libpng versions 0.97, January 1998, through 1.6.25, September 1, 2016: * Glenn Randers-Pehrson. * See also "Contributing Authors", below. */ @@ -41,7 +41,7 @@ * files that are distributed with libpng have other copyright owners and * are released under other open source licenses. * - * libpng versions 1.0.7, July 1, 2000 through 1.6.24, August 4, 2016 are + * libpng versions 1.0.7, July 1, 2000 through 1.6.25, September 1, 2016 are * Copyright (c) 2000-2002, 2004, 2006-2016 Glenn Randers-Pehrson, are * derived from libpng-1.0.6, and are distributed according to the same * disclaimer and license as libpng-1.0.6 with the following individuals @@ -53,6 +53,7 @@ * Cosmin Truta * Gilles Vollant * James Yu + * Mandar Sahastrabuddhe * * and with the following additions to the disclaimer: * @@ -229,7 +230,7 @@ * ... * 1.5.27 15 10527 15.so.15.27[.0] * ... - * 1.6.24 16 10624 16.so.16.24[.0] + * 1.6.25 16 10625 16.so.16.25[.0] * * Henceforth the source version will match the shared-library major * and minor numbers; the shared-library major version number will be @@ -257,13 +258,13 @@ * Y2K compliance in libpng: * ========================= * - * August 4, 2016 + * September 1, 2016 * * Since the PNG Development group is an ad-hoc body, we can't make * an official declaration. * * This is your unofficial assurance that libpng from version 0.71 and - * upward through 1.6.24 are Y2K compliant. It is my belief that + * upward through 1.6.25 are Y2K compliant. It is my belief that * earlier versions were also Y2K compliant. * * Libpng only has two year fields. One is a 2-byte unsigned integer @@ -325,9 +326,9 @@ */ /* Version information for png.h - this should match the version in png.c */ -#define PNG_LIBPNG_VER_STRING "1.6.24+apng" +#define PNG_LIBPNG_VER_STRING "1.6.25+apng" #define PNG_HEADER_VERSION_STRING \ - " libpng version 1.6.24+apng - August 4, 2016\n" + " libpng version 1.6.25+apng - September 1, 2016\n" #define PNG_LIBPNG_VER_SONUM 16 #define PNG_LIBPNG_VER_DLLNUM 16 @@ -335,7 +336,7 @@ /* These should match the first 3 components of PNG_LIBPNG_VER_STRING: */ #define PNG_LIBPNG_VER_MAJOR 1 #define PNG_LIBPNG_VER_MINOR 6 -#define PNG_LIBPNG_VER_RELEASE 24 +#define PNG_LIBPNG_VER_RELEASE 25 /* This should match the numeric part of the final component of * PNG_LIBPNG_VER_STRING, omitting any leading zero: @@ -366,7 +367,7 @@ * version 1.0.0 was mis-numbered 100 instead of 10000). From * version 1.0.1 it's xxyyzz, where x=major, y=minor, z=release */ -#define PNG_LIBPNG_VER 10624 /* 1.6.24 */ +#define PNG_LIBPNG_VER 10625 /* 1.6.25 */ /* Library configuration: these options cannot be changed after * the library has been built. @@ -491,7 +492,7 @@ extern "C" { /* This triggers a compiler error in png.c, if png.c and png.h * do not agree upon the version number. */ -typedef char* png_libpng_version_1_6_24; +typedef char* png_libpng_version_1_6_25; /* Basic control structions. Read libpng-manual.txt or libpng.3 for more info. * @@ -3262,7 +3263,10 @@ PNG_EXPORT(245, int, png_image_write_to_memory, (png_imagep image, void *memory, #endif #define PNG_MAXIMUM_INFLATE_WINDOW 2 /* SOFTWARE: force maximum window */ #define PNG_SKIP_sRGB_CHECK_PROFILE 4 /* SOFTWARE: Check ICC profile for sRGB */ -#define PNG_OPTION_NEXT 6 /* Next option - numbers must be even */ +#ifdef PNG_MIPS_MSA_API_SUPPORTED +# define PNG_MIPS_MSA 6 /* HARDWARE: MIPS Msa SIMD instructions supported */ +#endif +#define PNG_OPTION_NEXT 8 /* Next option - numbers must be even */ /* Return values: NOTE: there are four values and 'off' is *not* zero */ #define PNG_OPTION_UNSET 0 /* Unset - defaults to off */ diff --git a/media/libpng/pngconf.h b/media/libpng/pngconf.h index 9da691dbb829..08b423966691 100644 --- a/media/libpng/pngconf.h +++ b/media/libpng/pngconf.h @@ -1,7 +1,7 @@ /* pngconf.h - machine configurable file for libpng * - * libpng version 1.6.24, August 4, 2016 + * libpng version 1.6.25, September 1, 2016 * * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) diff --git a/media/libpng/pnglibconf.h b/media/libpng/pnglibconf.h index fde45cd4cb49..6e6e58a93d84 100644 --- a/media/libpng/pnglibconf.h +++ b/media/libpng/pnglibconf.h @@ -43,24 +43,28 @@ #define PNG_NO_PEDANTIC_WARNINGS #endif -#undef PNG_ARM_NEON_OPT /* This may have been defined in pngpriv.h */ -#ifdef __ARM_NEON__ -# ifdef MOZ_PNG_HAVE_ARM_NEON -# ifdef MOZ_PNG_HAVE_ARM_NEON_CHECK -# define PNG_ARM_NEON_CHECK_SUPPORTED -# define PNG_ARM_NEON_OPT 1 -# else -# define PNG_ARM_NEON_OPT 2 -# endif -# define PNG_ALIGNED_MEMORY_SUPPORTED - /* Accept the PNG_ARM_NEON_IMPLEMENTATION setting from pngpriv.h. */ -# else -# define PNG_ARM_NEON_OPT 0 -# endif +#ifdef MOZ_PNG_USE_ARM_NEON +# undef PNG_ARM_NEON_OPT /* Let libpng decide */ +# define PNG_ALIGNED_MEMORY_SUPPORTED #else # define PNG_ARM_NEON_OPT 0 #endif +#ifdef MOZ_PNG_USE_MIPS_MSA +# undef PNG_MIPS_MSA_OPT +# define PNG_ALIGNED_MEMORY_SUPPORTED +#else +# define PNG_MIPS_MSA_OPT 0 +#endif + +#ifdef MOZ_PNG_USE_INTEL_SSE +# undef PNG_INTEL_SSE_OPT +# define PNG_INTEL_SSE +# define PNG_ALIGNED_MEMORY_SUPPORTED +#else +# define PNG_INTEL_SSE_OPT 0 +#endif + #define PNG_READ_SUPPORTED #define PNG_PROGRESSIVE_READ_SUPPORTED #define PNG_READ_APNG_SUPPORTED diff --git a/media/libpng/pngmem.c b/media/libpng/pngmem.c index 6033bf2f56d4..7053ec96f8c7 100644 --- a/media/libpng/pngmem.c +++ b/media/libpng/pngmem.c @@ -1,7 +1,7 @@ /* pngmem.c - stub functions for memory allocation * - * Last changed in libpng 1.6.24 [August 4, 2016] + * Last changed in libpng 1.6.24 [August 4, 2016%] * Copyright (c) 1998-2002,2004,2006-2014,2016 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) diff --git a/media/libpng/pngpriv.h b/media/libpng/pngpriv.h index 7b95aad95654..c704ce6bfc97 100644 --- a/media/libpng/pngpriv.h +++ b/media/libpng/pngpriv.h @@ -1,7 +1,7 @@ /* pngpriv.h - private declarations for use inside libpng * - * Last changed in libpng 1.6.24 [August 4, 2016] + * Last changed in libpng 1.6.25 [September 1, 2016] * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -182,6 +182,14 @@ # endif #endif /* PNG_ARM_NEON_OPT > 0 */ +#ifndef PNG_MIPS_MSA_OPT +# if defined(__mips_msa) && (__mips_isa_rev >= 5) && defined(PNG_ALIGNED_MEMORY_SUPPORTED) +# define PNG_MIPS_MSA_OPT 2 +# else +# define PNG_MIPS_MSA_OPT 0 +# endif +#endif + #ifndef PNG_INTEL_SSE_OPT # ifdef PNG_INTEL_SSE /* Only check for SSE if the build configuration has been modified to @@ -218,6 +226,27 @@ # endif #endif +#if PNG_MIPS_MSA_OPT > 0 +# define PNG_FILTER_OPTIMIZATIONS png_init_filter_functions_msa +# ifndef PNG_MIPS_MSA_IMPLEMENTATION +# if defined(__mips_msa) +# if defined(__clang__) +# elif defined(__GNUC__) +# if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 7) +# define PNG_MIPS_MSA_IMPLEMENTATION 2 +# endif /* no GNUC support */ +# endif /* __GNUC__ */ +# else /* !defined __mips_msa */ +# define PNG_MIPS_MSA_IMPLEMENTATION 2 +# endif /* __mips_msa */ +# endif /* !PNG_MIPS_MSA_IMPLEMENTATION */ + +# ifndef PNG_MIPS_MSA_IMPLEMENTATION +# define PNG_MIPS_MSA_IMPLEMENTATION 1 +# endif +#endif /* PNG_MIPS_MSA_OPT > 0 */ + + /* Is this a build of a DLL where compilation of the object modules requires * different preprocessor settings to those required for a simple library? If * so PNG_BUILD_DLL must be set. @@ -1240,7 +1269,24 @@ PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_neon,(png_row_infop PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_neon,(png_row_infop row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); #endif - + +#if PNG_MIPS_MSA_OPT > 0 +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_up_msa,(png_row_infop row_info, + png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_msa,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub4_msa,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg3_msa,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_avg4_msa,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth3_msa,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +PNG_INTERNAL_FUNCTION(void,png_read_filter_row_paeth4_msa,(png_row_infop + row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); +#endif + #if PNG_INTEL_SSE_IMPLEMENTATION > 0 PNG_INTERNAL_FUNCTION(void,png_read_filter_row_sub3_sse2,(png_row_infop row_info, png_bytep row, png_const_bytep prev_row),PNG_EMPTY); @@ -1602,9 +1648,11 @@ PNG_INTERNAL_FUNCTION(int,png_colorspace_set_ICC,(png_const_structrp png_ptr, /* The 'name' is used for information only */ /* Routines for checking parts of an ICC profile. */ +#ifdef PNG_READ_iCCP_SUPPORTED PNG_INTERNAL_FUNCTION(int,png_icc_check_length,(png_const_structrp png_ptr, png_colorspacerp colorspace, png_const_charp name, png_uint_32 profile_length), PNG_EMPTY); +#endif /* READ_iCCP */ PNG_INTERNAL_FUNCTION(int,png_icc_check_header,(png_const_structrp png_ptr, png_colorspacerp colorspace, png_const_charp name, png_uint_32 profile_length, @@ -2026,11 +2074,17 @@ PNG_INTERNAL_FUNCTION(void, PNG_FILTER_OPTIMIZATIONS, (png_structp png_ptr, # if PNG_ARM_NEON_OPT > 0 PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_neon, (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); -# endif -# if PNG_INTEL_SSE_IMPLEMENTATION > 0 +#endif + +#if PNG_MIPS_MSA_OPT > 0 +PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_msa, + (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); +#endif + +# if PNG_INTEL_SSE_IMPLEMENTATION > 0 PNG_INTERNAL_FUNCTION(void, png_init_filter_functions_sse2, (png_structp png_ptr, unsigned int bpp), PNG_EMPTY); -# endif +# endif #endif PNG_INTERNAL_FUNCTION(png_uint_32, png_check_keyword, (png_structrp png_ptr, diff --git a/media/libpng/pngrutil.c b/media/libpng/pngrutil.c index 85e6451fc53a..2ef03191a45e 100644 --- a/media/libpng/pngrutil.c +++ b/media/libpng/pngrutil.c @@ -1,7 +1,7 @@ /* pngrutil.c - utilities to read a PNG file * - * Last changed in libpng 1.6.24 [August 4, 2016] + * Last changed in libpng 1.6.25 [September 1, 2016] * Copyright (c) 1998-2002,2004,2006-2016 Glenn Randers-Pehrson * (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger) * (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.) @@ -461,6 +461,7 @@ png_zlib_inflate(png_structrp png_ptr, int flush) #endif /* Zlib >= 1.2.4 */ #ifdef PNG_READ_COMPRESSED_TEXT_SUPPORTED +#if defined(PNG_READ_zTXt_SUPPORTED) || defined (PNG_READ_iTXt_SUPPORTED) /* png_inflate now returns zlib error codes including Z_OK and Z_STREAM_END to * allow the caller to do multiple calls if required. If the 'finish' flag is * set Z_FINISH will be passed to the final inflate() call and Z_STREAM_END must @@ -590,7 +591,6 @@ png_inflate(png_structrp png_ptr, png_uint_32 owner, int finish, } } -#if defined(PNG_READ_zTXt_SUPPORTED) || defined (PNG_READ_iTXt_SUPPORTED) /* * Decompress trailing data in a chunk. The assumption is that read_buffer * points at an allocated area holding the contents of a chunk with a diff --git a/old-configure.in b/old-configure.in index a7bad386dc6f..863235e13176 100644 --- a/old-configure.in +++ b/old-configure.in @@ -46,7 +46,7 @@ _SUBDIR_CONFIG_ARGS="$ac_configure_args" dnl Set the version number of the libs included with mozilla dnl ======================================================== MOZJPEG=62 -MOZPNG=10624 +MOZPNG=10625 NSPR_VERSION=4 NSPR_MINVER=4.12 NSS_VERSION=3