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