18b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// Copyright 2013 Google Inc. All Rights Reserved. 28b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// 38b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// Use of this source code is governed by a BSD-style license 48b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// that can be found in the COPYING file in the root of the source 58b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// tree. An additional intellectual property rights grant can be found 68b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// in the file PATENTS. All contributing project authors may 78b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// be found in the AUTHORS file in the root of the source tree. 88b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// ----------------------------------------------------------------------------- 98b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// 108b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// Alpha decoder: internal header. 118b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// 128b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// Author: Urvang (urvang@google.com) 138b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora 148b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora#ifndef WEBP_DEC_ALPHAI_H_ 158b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora#define WEBP_DEC_ALPHAI_H_ 168b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora 178b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora#include "./webpi.h" 188b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora#include "../utils/filters.h" 198b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora 208b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora#ifdef __cplusplus 218b720228d581a84fd173b6dcb2fa295b59db489aVikas Aroraextern "C" { 228b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora#endif 238b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora 248b720228d581a84fd173b6dcb2fa295b59db489aVikas Arorastruct VP8LDecoder; // Defined in dec/vp8li.h. 258b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora 268b720228d581a84fd173b6dcb2fa295b59db489aVikas Aroratypedef struct ALPHDecoder ALPHDecoder; 278b720228d581a84fd173b6dcb2fa295b59db489aVikas Arorastruct ALPHDecoder { 288b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora int width_; 298b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora int height_; 308b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora int method_; 318b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora WEBP_FILTER_TYPE filter_; 328b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora int pre_processing_; 338b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora struct VP8LDecoder* vp8l_dec_; 348b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora VP8Io io_; 358b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora int use_8b_decode; // Although alpha channel requires only 1 byte per 368b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora // pixel, sometimes VP8LDecoder may need to allocate 378b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora // 4 bytes per pixel internally during decode. 388b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora}; 398b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora 408b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora//------------------------------------------------------------------------------ 418b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// internal functions. Not public. 428b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora 438b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// Allocates a new alpha decoder instance. 448b720228d581a84fd173b6dcb2fa295b59db489aVikas AroraALPHDecoder* ALPHNew(void); 458b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora 468b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora// Clears and deallocates an alpha decoder instance. 478b720228d581a84fd173b6dcb2fa295b59db489aVikas Aroravoid ALPHDelete(ALPHDecoder* const dec); 488b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora 498b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora//------------------------------------------------------------------------------ 508b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora 518b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora#ifdef __cplusplus 528b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora} // extern "C" 538b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora#endif 548b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora 558b720228d581a84fd173b6dcb2fa295b59db489aVikas Arora#endif /* WEBP_DEC_ALPHAI_H_ */ 56