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 21extern "C" { 22#endif 23 24struct VP8LDecoder; // Defined in dec/vp8li.h. 25 26typedef struct ALPHDecoder ALPHDecoder; 27struct 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. 44ALPHDecoder* ALPHNew(void); 45 46// Clears and deallocates an alpha decoder instance. 47void ALPHDelete(ALPHDecoder* const dec); 48 49//------------------------------------------------------------------------------ 50 51#ifdef __cplusplus 52} // extern "C" 53#endif 54 55#endif /* WEBP_DEC_ALPHAI_H_ */ 56