diff options
-rw-r--r-- | DEPS | 3 | ||||
-rw-r--r-- | dm/DM.cpp | 6 | ||||
-rw-r--r-- | gyp/libwebp.gyp | 51 |
3 files changed, 53 insertions, 7 deletions
@@ -14,7 +14,8 @@ deps = { "third_party/externals/gyp" : "https://chromium.googlesource.com/external/gyp.git@08429da7955a98ef764fafa223dd7de73f654b2d", "third_party/externals/harfbuzz": "https://skia.googlesource.com/third_party/harfbuzz.git@0.9.35", "third_party/externals/jsoncpp" : "https://chromium.googlesource.com/external/jsoncpp/jsoncpp.git@1afff032c83e26ddf7f2776e8b43de5ad666c1fa", - "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@v0.4.3", + # Slightly ahead of v 0.4.3, to include the fix for skbug.com/4038 + "third_party/externals/libwebp" : "https://chromium.googlesource.com/webm/libwebp.git@5ff0079ece626f122bfb8e33a5f92b5a68484176", "third_party/externals/nanomsg" : "https://skia.googlesource.com/third_party/nanomsg.git@0.4-beta", "third_party/externals/zlib" : "https://chromium.googlesource.com/chromium/src/third_party/zlib@4ba7cdd0e7bf49d671645264f839838fc56e1492", # NOTE: If we update libpng, we may need to update the generated file at third_party/libpng/pnglibconf.h @@ -302,12 +302,6 @@ static void push_codec_srcs(Path path) { } for (float scale : nativeScales) { - if (scale != 1.0f && (path.endsWith(".webp") || path.endsWith(".WEBP"))) { - // FIXME: skbug.com/4038 Scaling webp seems to leave some pixels uninitialized/ - // compute their colors based on uninitialized values. - continue; - } - for (CodecSrc::Mode mode : nativeModes) { for (uint32_t i = 0; i < numColorTypes; i++) { push_codec_src(path, mode, colorTypes[i], scale); diff --git a/gyp/libwebp.gyp b/gyp/libwebp.gyp index fc6f46c309..2978cd9875 100644 --- a/gyp/libwebp.gyp +++ b/gyp/libwebp.gyp @@ -66,18 +66,33 @@ ], 'sources': [ '../third_party/externals/libwebp/src/dsp/alpha_processing.c', + '../third_party/externals/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c', '../third_party/externals/libwebp/src/dsp/alpha_processing_sse2.c', + '../third_party/externals/libwebp/src/dsp/alpha_processing_sse41.c', '../third_party/externals/libwebp/src/dsp/cpu.c', '../third_party/externals/libwebp/src/dsp/dec.c', '../third_party/externals/libwebp/src/dsp/dec_clip_tables.c', + '../third_party/externals/libwebp/src/dsp/dec_mips32.c', + '../third_party/externals/libwebp/src/dsp/dec_mips_dsp_r2.c', '../third_party/externals/libwebp/src/dsp/dec_sse2.c', + '../third_party/externals/libwebp/src/dsp/dec_sse41.c', '../third_party/externals/libwebp/src/dsp/enc.c', '../third_party/externals/libwebp/src/dsp/enc_sse2.c', + '../third_party/externals/libwebp/src/dsp/filters.c', + '../third_party/externals/libwebp/src/dsp/filters_mips_dsp_r2.c', + '../third_party/externals/libwebp/src/dsp/filters_sse2.c', '../third_party/externals/libwebp/src/dsp/lossless.c', + '../third_party/externals/libwebp/src/dsp/lossless_mips_dsp_r2.c', '../third_party/externals/libwebp/src/dsp/lossless_sse2.c', + '../third_party/externals/libwebp/src/dsp/rescaler.c', + '../third_party/externals/libwebp/src/dsp/rescaler_mips32.c', + '../third_party/externals/libwebp/src/dsp/rescaler_mips_dsp_r2.c', '../third_party/externals/libwebp/src/dsp/upsampling.c', + '../third_party/externals/libwebp/src/dsp/upsampling_mips_dsp_r2.c', '../third_party/externals/libwebp/src/dsp/upsampling_sse2.c', '../third_party/externals/libwebp/src/dsp/yuv.c', + '../third_party/externals/libwebp/src/dsp/yuv_mips32.c', + '../third_party/externals/libwebp/src/dsp/yuv_mips_dsp_r2.c', '../third_party/externals/libwebp/src/dsp/yuv_sse2.c', ], 'cflags': [ '-w' ], @@ -108,6 +123,7 @@ '../third_party/externals/libwebp/src/dsp/dec_neon.c', '../third_party/externals/libwebp/src/dsp/enc_neon.c', '../third_party/externals/libwebp/src/dsp/lossless_neon.c', + '../third_party/externals/libwebp/src/dsp/lossless_enc_neon.c', '../third_party/externals/libwebp/src/dsp/upsampling_neon.c', ], # behavior similar dsp_neon.c.neon in an Android.mk @@ -121,6 +137,34 @@ ], }, { + 'target_name': 'libwebp_dsp_enc', + 'type': 'static_library', + 'includes': [ + 'libwebp_skia.gypi', + ], + 'include_dirs': [ + '../third_party/externals/libwebp', + ], + 'sources': [ + '../third_party/externals/libwebp/src/dsp/argb.c', + '../third_party/externals/libwebp/src/dsp/argb_mips_dsp_r2.c', + '../third_party/externals/libwebp/src/dsp/argb_sse2.c', + '../third_party/externals/libwebp/src/dsp/cost.c', + '../third_party/externals/libwebp/src/dsp/cost_mips32.c', + '../third_party/externals/libwebp/src/dsp/cost_mips_dsp_r2.c', + '../third_party/externals/libwebp/src/dsp/cost_sse2.c', + '../third_party/externals/libwebp/src/dsp/enc_avx2.c', + '../third_party/externals/libwebp/src/dsp/enc_mips32.c', + '../third_party/externals/libwebp/src/dsp/enc_mips_dsp_r2.c', + '../third_party/externals/libwebp/src/dsp/enc_sse41.c', + '../third_party/externals/libwebp/src/dsp/lossless_enc.c', + '../third_party/externals/libwebp/src/dsp/lossless_enc_mips32.c', + '../third_party/externals/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c', + '../third_party/externals/libwebp/src/dsp/lossless_enc_sse2.c', + '../third_party/externals/libwebp/src/dsp/lossless_enc_sse41.c', + ], + }, + { 'target_name': 'libwebp_enc', 'type': 'static_library', 'includes': [ @@ -129,6 +173,9 @@ 'include_dirs': [ '../third_party/externals/libwebp', ], + 'dependencies' : [ + 'libwebp_dsp_enc', + ], 'sources': [ '../third_party/externals/libwebp/src/enc/alpha.c', '../third_party/externals/libwebp/src/enc/analysis.c', @@ -139,8 +186,12 @@ '../third_party/externals/libwebp/src/enc/frame.c', '../third_party/externals/libwebp/src/enc/histogram.c', '../third_party/externals/libwebp/src/enc/iterator.c', + '../third_party/externals/libwebp/src/enc/near_lossless.c', '../third_party/externals/libwebp/src/enc/picture.c', '../third_party/externals/libwebp/src/enc/picture_csp.c', + '../third_party/externals/libwebp/src/enc/picture_psnr.c', + '../third_party/externals/libwebp/src/enc/picture_rescale.c', + '../third_party/externals/libwebp/src/enc/picture_tools.c', '../third_party/externals/libwebp/src/enc/quant.c', '../third_party/externals/libwebp/src/enc/syntax.c', '../third_party/externals/libwebp/src/enc/token.c', |