1 // Copyright 2013 Google Inc. All Rights Reserved. 2 // 3 // Use of this source code is governed by a BSD-style license 4 // that can be found in the COPYING file in the root of the source 5 // tree. An additional intellectual property rights grant can be found 6 // in the file PATENTS. All contributing project authors may 7 // be found in the AUTHORS file in the root of the source tree. 8 // ----------------------------------------------------------------------------- 9 // 10 // Alpha decoder: internal header. 11 // 12 // Author: Urvang (urvang@google.com) 13 14 #ifndef WEBP_DEC_ALPHAI_H_ 15 #define WEBP_DEC_ALPHAI_H_ 16 17 #include "./webpi.h" 18 #include "../utils/filters.h" 19 20 #ifdef __cplusplus 21 extern "C" { 22 #endif 23 24 struct VP8LDecoder; // Defined in dec/vp8li.h. 25 26 typedef struct ALPHDecoder ALPHDecoder; 27 struct ALPHDecoder { 28 int width_; 29 int height_; 30 int method_; 31 WEBP_FILTER_TYPE filter_; 32 int pre_processing_; 33 struct VP8LDecoder* vp8l_dec_; 34 VP8Io io_; 35 int use_8b_decode; // Although alpha channel requires only 1 byte per 36 // pixel, sometimes VP8LDecoder may need to allocate 37 // 4 bytes per pixel internally during decode. 38 }; 39 40 //------------------------------------------------------------------------------ 41 // internal functions. Not public. 42 43 // Allocates a new alpha decoder instance. 44 ALPHDecoder* ALPHNew(void); 45 46 // Clears and deallocates an alpha decoder instance. 47 void ALPHDelete(ALPHDecoder* const dec); 48 49 //------------------------------------------------------------------------------ 50 51 #ifdef __cplusplus 52 } // extern "C" 53 #endif 54 55 #endif /* WEBP_DEC_ALPHAI_H_ */ 56