Index: third_party/libwebp/webp/encode.h |
diff --git a/third_party/libwebp/webp/encode.h b/third_party/libwebp/webp/encode.h |
index 726992f570474e2f19ce903534bc37936c844b15..7a428b4e6ef45a44f7f3258ce6a9b5eff76f1a1b 100644 |
--- a/third_party/libwebp/webp/encode.h |
+++ b/third_party/libwebp/webp/encode.h |
@@ -16,11 +16,11 @@ |
#include "./types.h" |
-#if defined(__cplusplus) || defined(c_plusplus) |
+#ifdef __cplusplus |
extern "C" { |
#endif |
-#define WEBP_ENCODER_ABI_VERSION 0x0201 // MAJOR(8b) + MINOR(8b) |
+#define WEBP_ENCODER_ABI_VERSION 0x0202 // MAJOR(8b) + MINOR(8b) |
// Note: forward declaring enumerations is not allowed in (strict) C and C++, |
// the types are left here for reference. |
@@ -117,7 +117,8 @@ struct WebPConfig { |
int show_compressed; // if true, export the compressed picture back. |
// In-loop filtering is not applied. |
- int preprocessing; // preprocessing filter (0=none, 1=segment-smooth) |
+ int preprocessing; // preprocessing filter: |
+ // 0=none, 1=segment-smooth, 2=pseudo-random dithering |
int partitions; // log2(number of token partitions) in [0..3]. Default |
// is set to 0 for easier progressive decoding. |
int partition_limit; // quality degradation allowed to fit the 512k limit |
@@ -443,6 +444,13 @@ WEBP_EXTERN(int) WebPPictureImportBGRX( |
WEBP_EXTERN(int) WebPPictureARGBToYUVA(WebPPicture* picture, |
WebPEncCSP colorspace); |
+// Same as WebPPictureARGBToYUVA(), but the conversion is done using |
+// pseudo-random dithering with a strength 'dithering' between |
+// 0.0 (no dithering) and 1.0 (maximum dithering). This is useful |
+// for photographic picture. |
+WEBP_EXTERN(int) WebPPictureARGBToYUVADithered( |
+ WebPPicture* picture, WebPEncCSP colorspace, float dithering); |
+ |
// Converts picture->yuv to picture->argb and sets picture->use_argb to true. |
// The input format must be YUV_420 or YUV_420A. |
// Note that the use of this method is discouraged if one has access to the |
@@ -461,6 +469,11 @@ WEBP_EXTERN(void) WebPCleanupTransparentArea(WebPPicture* picture); |
// alpha plane can be ignored altogether e.g.). |
WEBP_EXTERN(int) WebPPictureHasTransparency(const WebPPicture* picture); |
+// Remove the transparency information (if present) by blending the color with |
+// the background color 'background_rgb' (specified as 24bit RGB triplet). |
+// After this call, all alpha values are reset to 0xff. |
+WEBP_EXTERN(void) WebPBlendAlpha(WebPPicture* pic, uint32_t background_rgb); |
+ |
//------------------------------------------------------------------------------ |
// Main call |
@@ -478,7 +491,7 @@ WEBP_EXTERN(int) WebPEncode(const WebPConfig* config, WebPPicture* picture); |
//------------------------------------------------------------------------------ |
-#if defined(__cplusplus) || defined(c_plusplus) |
+#ifdef __cplusplus |
} // extern "C" |
#endif |