1/////////////////////////////////////////////////////////////////////////////// 2// 3/// \file lzma_decoder.h 4/// \brief LZMA decoder API 5/// 6// Authors: Igor Pavlov 7// Lasse Collin 8// 9// This file has been put into the public domain. 10// You can do whatever you want with this file. 11// 12/////////////////////////////////////////////////////////////////////////////// 13 14#ifndef LZMA_LZMA_DECODER_H 15#define LZMA_LZMA_DECODER_H 16 17#include "common.h" 18 19 20/// Allocates and initializes LZMA decoder 21extern lzma_ret lzma_lzma_decoder_init(lzma_next_coder *next, 22 const lzma_allocator *allocator, 23 const lzma_filter_info *filters); 24 25extern uint64_t lzma_lzma_decoder_memusage(const void *options); 26 27extern lzma_ret lzma_lzma_props_decode( 28 void **options, const lzma_allocator *allocator, 29 const uint8_t *props, size_t props_size); 30 31 32/// \brief Decodes the LZMA Properties byte (lc/lp/pb) 33/// 34/// \return true if error occurred, false on success 35/// 36extern bool lzma_lzma_lclppb_decode( 37 lzma_options_lzma *options, uint8_t byte); 38 39 40#ifdef LZMA_LZ_DECODER_H 41/// Allocate and setup function pointers only. This is used by LZMA1 and 42/// LZMA2 decoders. 43extern lzma_ret lzma_lzma_decoder_create( 44 lzma_lz_decoder *lz, const lzma_allocator *allocator, 45 const void *opt, lzma_lz_options *lz_options); 46 47/// Gets memory usage without validating lc/lp/pb. This is used by LZMA2 48/// decoder, because raw LZMA2 decoding doesn't need lc/lp/pb. 49extern uint64_t lzma_lzma_decoder_memusage_nocheck(const void *options); 50 51#endif 52 53#endif 54