// Copyright 2012 Google Inc. All Rights Reserved. // // Use of this source code is governed by a BSD-style license // that can be found in the COPYING file in the root of the source // tree. An additional intellectual property rights grant can be found // in the file PATENTS. All contributing project authors may // be found in the AUTHORS file in the root of the source tree. // ----------------------------------------------------------------------------- // // Data-types common to the mux and demux libraries. // // Author: Urvang ([email protected]) #ifndef WEBP_WEBP_MUX_TYPES_H_ #define WEBP_WEBP_MUX_TYPES_H_ #include <string.h> // memset() #include "./types.h" #ifdef __cplusplus extern "C" { #endif // Note: forward declaring enumerations is not allowed in (strict) C and C++, // the types are left here for reference. // typedef enum WebPFeatureFlags WebPFeatureFlags; // typedef enum WebPMuxAnimDispose WebPMuxAnimDispose; // typedef enum WebPMuxAnimBlend WebPMuxAnimBlend; WebPData; // VP8X Feature Flags. WebPFeatureFlags; // 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. WebPMuxAnimDispose; // Blend operation (animation only). Indicates how transparent pixels of the // current frame are blended with those of the previous canvas. WebPMuxAnimBlend; // Data type used to describe 'raw' data, e.g., chunk data // (ICC profile, metadata) and WebP compressed image data. // 'bytes' memory must be allocated using WebPMalloc() and such. struct WebPData { … }; // Initializes the contents of the 'webp_data' object with default values. static WEBP_INLINE void WebPDataInit(WebPData* webp_data) { … } // Clears the contents of the 'webp_data' object by calling WebPFree(). // Does not deallocate the object itself. static WEBP_INLINE void WebPDataClear(WebPData* webp_data) { … } // Allocates necessary storage for 'dst' and copies the contents of 'src'. // Returns true on success. WEBP_NODISCARD static WEBP_INLINE int WebPDataCopy(const WebPData* src, WebPData* dst) { … } #ifdef __cplusplus } // extern "C" #endif #endif // WEBP_WEBP_MUX_TYPES_H_