lzma2_encoder.h revision 292588
1///////////////////////////////////////////////////////////////////////////////
2//
3/// \file       lzma2_encoder.h
4/// \brief      LZMA2 encoder
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_LZMA2_ENCODER_H
15#define LZMA_LZMA2_ENCODER_H
16
17#include "common.h"
18
19
20/// Maximum number of bytes of actual data per chunk (no headers)
21#define LZMA2_CHUNK_MAX (UINT32_C(1) << 16)
22
23/// Maximum uncompressed size of LZMA chunk (no headers)
24#define LZMA2_UNCOMPRESSED_MAX (UINT32_C(1) << 21)
25
26/// Maximum size of LZMA2 headers
27#define LZMA2_HEADER_MAX 6
28
29/// Size of a header for uncompressed chunk
30#define LZMA2_HEADER_UNCOMPRESSED 3
31
32
33extern lzma_ret lzma_lzma2_encoder_init(
34		lzma_next_coder *next, const lzma_allocator *allocator,
35		const lzma_filter_info *filters);
36
37extern uint64_t lzma_lzma2_encoder_memusage(const void *options);
38
39extern lzma_ret lzma_lzma2_props_encode(const void *options, uint8_t *out);
40
41extern uint64_t lzma_lzma2_block_size(const void *options);
42
43#endif
44