Index: third_party/libwebp/webp/mux_types.h |
diff --git a/third_party/libwebp/webp/mux_types.h b/third_party/libwebp/webp/mux_types.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4006a54098c402b4d7e44c3b9a33da0dca651a16 |
--- /dev/null |
+++ b/third_party/libwebp/webp/mux_types.h |
@@ -0,0 +1,87 @@ |
+// Copyright 2012 Google Inc. All Rights Reserved. |
+// |
+// This code is licensed under the same terms as WebM: |
+// Software License Agreement: http://www.webmproject.org/license/software/ |
+// Additional IP Rights Grant: http://www.webmproject.org/license/additional/ |
+// ----------------------------------------------------------------------------- |
+// |
+// Data-types common to the mux and demux libraries. |
+// |
+// Author: Urvang (urvang@google.com) |
+ |
+#ifndef WEBP_WEBP_MUX_TYPES_H_ |
+#define WEBP_WEBP_MUX_TYPES_H_ |
+ |
+#include <stdlib.h> // free() |
+#include <string.h> // memset() |
+#include "./types.h" |
+ |
+#if defined(__cplusplus) || defined(c_plusplus) |
+extern "C" { |
+#endif |
+ |
+#if !(defined(__cplusplus) || defined(c_plusplus)) |
+typedef enum WebPFeatureFlags WebPFeatureFlags; |
+typedef enum WebPMuxAnimDispose WebPMuxAnimDispose; |
+#endif |
+ |
+// VP8X Feature Flags. |
+enum WebPFeatureFlags { |
+ FRAGMENTS_FLAG = 0x00000001, |
+ ANIMATION_FLAG = 0x00000002, |
+ XMP_FLAG = 0x00000004, |
+ EXIF_FLAG = 0x00000008, |
+ ALPHA_FLAG = 0x00000010, |
+ ICCP_FLAG = 0x00000020 |
+}; |
+ |
+// Dispose method (animation only). Indicates how the area used by the current |
+// frame is to be treated before rendering the next frame on the canvas. |
+enum WebPMuxAnimDispose { |
+ WEBP_MUX_DISPOSE_NONE, // Do not dispose. |
+ WEBP_MUX_DISPOSE_BACKGROUND // Dispose to background color. |
+}; |
+ |
+// Data type used to describe 'raw' data, e.g., chunk data |
+// (ICC profile, metadata) and WebP compressed image data. |
+typedef struct WebPData WebPData; |
+struct WebPData { |
+ const uint8_t* bytes; |
+ size_t size; |
+}; |
+ |
+// Initializes the contents of the 'webp_data' object with default values. |
+static WEBP_INLINE void WebPDataInit(WebPData* webp_data) { |
+ if (webp_data != NULL) { |
+ memset(webp_data, 0, sizeof(*webp_data)); |
+ } |
+} |
+ |
+// Clears the contents of the 'webp_data' object by calling free(). Does not |
+// deallocate the object itself. |
+static WEBP_INLINE void WebPDataClear(WebPData* webp_data) { |
+ if (webp_data != NULL) { |
+ free((void*)webp_data->bytes); |
+ WebPDataInit(webp_data); |
+ } |
+} |
+ |
+// Allocates necessary storage for 'dst' and copies the contents of 'src'. |
+// Returns true on success. |
+static WEBP_INLINE int WebPDataCopy(const WebPData* src, WebPData* dst) { |
+ if (src == NULL || dst == NULL) return 0; |
+ WebPDataInit(dst); |
+ if (src->bytes != NULL && src->size != 0) { |
+ dst->bytes = (uint8_t*)malloc(src->size); |
+ if (dst->bytes == NULL) return 0; |
+ memcpy((void*)dst->bytes, src->bytes, src->size); |
+ dst->size = src->size; |
+ } |
+ return 1; |
+} |
+ |
+#if defined(__cplusplus) || defined(c_plusplus) |
+} // extern "C" |
+#endif |
+ |
+#endif /* WEBP_WEBP_MUX_TYPES_H_ */ |