1 /* -*- mode: C; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2 // vim: expandtab:ts=8:sw=4:softtabstop=4:
3 ///////////////////////////////////////////////////////////////////////////////
4 //
5 /// \file       lzma2_encoder.h
6 /// \brief      LZMA2 encoder
7 ///
8 //  Authors:    Igor Pavlov
9 //              Lasse Collin
10 //
11 //  This file has been put into the public domain.
12 //  You can do whatever you want with this file.
13 //
14 ///////////////////////////////////////////////////////////////////////////////
15 
16 #ifndef LZMA_LZMA2_ENCODER_H
17 #define LZMA_LZMA2_ENCODER_H
18 
19 #include "common.h"
20 
21 
22 /// Maximum number of bytes of actual data per chunk (no headers)
23 #define LZMA2_CHUNK_MAX (UINT32_C(1) << 16)
24 
25 /// Maximum uncompressed size of LZMA chunk (no headers)
26 #define LZMA2_UNCOMPRESSED_MAX (UINT32_C(1) << 21)
27 
28 /// Maximum size of LZMA2 headers
29 #define LZMA2_HEADER_MAX 6
30 
31 /// Size of a header for uncompressed chunk
32 #define LZMA2_HEADER_UNCOMPRESSED 3
33 
34 
35 extern lzma_ret lzma_lzma2_encoder_init(
36 		lzma_next_coder *next, lzma_allocator *allocator,
37 		const lzma_filter_info *filters);
38 
39 extern uint64_t lzma_lzma2_encoder_memusage(const void *options);
40 
41 extern lzma_ret lzma_lzma2_props_encode(const void *options, uint8_t *out);
42 
43 #endif
44