Index: third_party/libwebp/dsp/dsp.h |
diff --git a/third_party/libwebp/dsp/dsp.h b/third_party/libwebp/dsp/dsp.h |
index f8813d774dde9efe48f98b4e99e5ce47b523fd20..52c44b2dc18323e8265abf49340ff71f032c7491 100644 |
--- a/third_party/libwebp/dsp/dsp.h |
+++ b/third_party/libwebp/dsp/dsp.h |
@@ -32,9 +32,19 @@ extern "C" { |
# define LOCAL_GCC_PREREQ(maj, min) \ |
(LOCAL_GCC_VERSION >= (((maj) << 8) | (min))) |
#else |
+# define LOCAL_GCC_VERSION 0 |
# define LOCAL_GCC_PREREQ(maj, min) 0 |
#endif |
+#ifdef __clang__ |
+# define LOCAL_CLANG_VERSION ((__clang_major__ << 8) | __clang_minor__) |
+# define LOCAL_CLANG_PREREQ(maj, min) \ |
+ (LOCAL_CLANG_VERSION >= (((maj) << 8) | (min))) |
+#else |
+# define LOCAL_CLANG_VERSION 0 |
+# define LOCAL_CLANG_PREREQ(maj, min) 0 |
+#endif // __clang__ |
+ |
#if defined(_MSC_VER) && _MSC_VER > 1310 && \ |
(defined(_M_X64) || defined(_M_IX86)) |
#define WEBP_MSC_SSE2 // Visual C++ SSE2 targets |
@@ -62,6 +72,9 @@ extern "C" { |
#if defined(__mips__) && !defined(__mips64) && (__mips_isa_rev < 6) |
#define WEBP_USE_MIPS32 |
+#if (__mips_isa_rev >= 2) |
+#define WEBP_USE_MIPS32_R2 |
+#endif |
#endif |
typedef enum { |
@@ -244,6 +257,13 @@ extern void (*WebPApplyAlphaMultiply)( |
extern void (*WebPApplyAlphaMultiply4444)( |
uint8_t* rgba4444, int w, int h, int stride); |
+// Extract the alpha values from 32b values in argb[] and pack them into alpha[] |
+// (this is the opposite of WebPDispatchAlpha). |
+// Returns true if there's only trivial 0xff alpha values. |
+extern int (*WebPExtractAlpha)(const uint8_t* argb, int argb_stride, |
+ int width, int height, |
+ uint8_t* alpha, int alpha_stride); |
+ |
// Pre-Multiply operation transforms x into x * A / 255 (where x=Y,R,G or B). |
// Un-Multiply operation transforms x into x * 255 / A. |