aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--DEPS3
-rw-r--r--dm/DM.cpp5
-rw-r--r--gyp/libwebp.gyp51
-rw-r--r--third_party/libwebp/webp/config.h6
4 files changed, 56 insertions, 9 deletions
diff --git a/DEPS b/DEPS
index 4439cb0809..e316d7d151 100644
--- a/DEPS
+++ b/DEPS
@@ -14,7 +14,8 @@ deps = {
"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/libjpeg" : "https://chromium.googlesource.com/chromium/deps/libjpeg_turbo.git@034e9a9747e0983bc19808ea70e469bc8342081f",
- "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@7df93893dcb73dc45733ab4518ce5ca322c25680",
"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
diff --git a/dm/DM.cpp b/dm/DM.cpp
index 9dcdff1a0f..0faa3e4a50 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -215,11 +215,6 @@ static void push_codec_srcs(Path path) {
const float scales[] = { 0.125f, 0.25f, 0.375f, 0.5f, 0.625f, 0.750f, 0.875f, 1.0f };
for (float scale : scales) {
- 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;
- }
// Build additional test cases for images that decode natively to non-canvas types
switch(codec->getInfo().colorType()) {
case kGray_8_SkColorType:
diff --git a/gyp/libwebp.gyp b/gyp/libwebp.gyp
index fc6f46c309..0122be6a8c 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' ],
@@ -121,6 +136,35 @@
],
},
{
+ '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_neon.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',
diff --git a/third_party/libwebp/webp/config.h b/third_party/libwebp/webp/config.h
index 62ade94d2a..b01473c827 100644
--- a/third_party/libwebp/webp/config.h
+++ b/third_party/libwebp/webp/config.h
@@ -14,14 +14,14 @@
// file, which replaces the checks in endian_inl.h to decide whether we have
// particular builtins.
-#ifdef __builtin_bswap64(x)
+#ifdef __builtin_bswap64
#define HAVE_BUILTIN_BSWAP64
#endif
-#ifdef __builtin_bswap32(x)
+#ifdef __builtin_bswap32
#define HAVE_BUILTIN_BSWAP32
#endif
-#ifdef __builtin_bswap16(x)
+#ifdef __builtin_bswap16
#define HAVE_BUILTIN_BSWAP16
#endif