xref: /freebsd/contrib/xz/src/liblzma/lzma/lzma2_encoder.h (revision 7fdf597e96a02165cfe22ff357b857d5fa15ed8a)
1 // SPDX-License-Identifier: 0BSD
2 
3 ///////////////////////////////////////////////////////////////////////////////
4 //
5 /// \file       lzma2_encoder.h
6 /// \brief      LZMA2 encoder
7 ///
8 //  Authors:    Igor Pavlov
9 //              Lasse Collin
10 //
11 ///////////////////////////////////////////////////////////////////////////////
12 
13 #ifndef LZMA_LZMA2_ENCODER_H
14 #define LZMA_LZMA2_ENCODER_H
15 
16 #include "common.h"
17 
18 
19 /// Maximum number of bytes of actual data per chunk (no headers)
20 #define LZMA2_CHUNK_MAX (UINT32_C(1) << 16)
21 
22 /// Maximum uncompressed size of LZMA chunk (no headers)
23 #define LZMA2_UNCOMPRESSED_MAX (UINT32_C(1) << 21)
24 
25 /// Maximum size of LZMA2 headers
26 #define LZMA2_HEADER_MAX 6
27 
28 /// Size of a header for uncompressed chunk
29 #define LZMA2_HEADER_UNCOMPRESSED 3
30 
31 
32 extern lzma_ret lzma_lzma2_encoder_init(
33 		lzma_next_coder *next, const lzma_allocator *allocator,
34 		const lzma_filter_info *filters);
35 
36 extern uint64_t lzma_lzma2_encoder_memusage(const void *options);
37 
38 extern lzma_ret lzma_lzma2_props_encode(const void *options, uint8_t *out);
39 
40 extern uint64_t lzma_lzma2_block_size(const void *options);
41 
42 #endif
43