1207753Smm///////////////////////////////////////////////////////////////////////////////
2207753Smm//
3207753Smm/// \file       lzma2_encoder.h
4207753Smm/// \brief      LZMA2 encoder
5207753Smm///
6207753Smm//  Authors:    Igor Pavlov
7207753Smm//              Lasse Collin
8207753Smm//
9207753Smm//  This file has been put into the public domain.
10207753Smm//  You can do whatever you want with this file.
11207753Smm//
12207753Smm///////////////////////////////////////////////////////////////////////////////
13207753Smm
14207753Smm#ifndef LZMA_LZMA2_ENCODER_H
15207753Smm#define LZMA_LZMA2_ENCODER_H
16207753Smm
17207753Smm#include "common.h"
18207753Smm
19207753Smm
20207753Smm/// Maximum number of bytes of actual data per chunk (no headers)
21207753Smm#define LZMA2_CHUNK_MAX (UINT32_C(1) << 16)
22207753Smm
23207753Smm/// Maximum uncompressed size of LZMA chunk (no headers)
24207753Smm#define LZMA2_UNCOMPRESSED_MAX (UINT32_C(1) << 21)
25207753Smm
26207753Smm/// Maximum size of LZMA2 headers
27207753Smm#define LZMA2_HEADER_MAX 6
28207753Smm
29207753Smm/// Size of a header for uncompressed chunk
30207753Smm#define LZMA2_HEADER_UNCOMPRESSED 3
31207753Smm
32207753Smm
33207753Smmextern lzma_ret lzma_lzma2_encoder_init(
34207753Smm		lzma_next_coder *next, lzma_allocator *allocator,
35207753Smm		const lzma_filter_info *filters);
36207753Smm
37207753Smmextern uint64_t lzma_lzma2_encoder_memusage(const void *options);
38207753Smm
39207753Smmextern lzma_ret lzma_lzma2_props_encode(const void *options, uint8_t *out);
40207753Smm
41207753Smm#endif
42