aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--DEPS3
-rw-r--r--dm/DM.cpp6
-rw-r--r--gyp/libwebp.gyp51
3 files changed, 53 insertions, 7 deletions
diff --git a/DEPS b/DEPS
index 742d1de444..56451445a5 100644
--- a/DEPS
+++ b/DEPS
@@ -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
diff --git a/dm/DM.cpp b/dm/DM.cpp
index 2a96a9e630..e616c18704 100644
--- a/dm/DM.cpp
+++ b/dm/DM.cpp
@@ -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',