167754Smsmith///////////////////////////////////////////////////////////////////////////////
267754Smsmith//
377424Smsmith/// \file       lzma2_encoder.h
4100966Siwasaki/// \brief      LZMA2 encoder
567754Smsmith///
667754Smsmith//  Authors:    Igor Pavlov
767754Smsmith//              Lasse Collin
867754Smsmith//
967754Smsmith//  This file has been put into the public domain.
1067754Smsmith//  You can do whatever you want with this file.
1167754Smsmith//
1291116Smsmith///////////////////////////////////////////////////////////////////////////////
1370243Smsmith
1467754Smsmith#ifndef LZMA_LZMA2_ENCODER_H
1567754Smsmith#define LZMA_LZMA2_ENCODER_H
1667754Smsmith
1767754Smsmith#include "common.h"
1867754Smsmith
1967754Smsmith
2067754Smsmith/// Maximum number of bytes of actual data per chunk (no headers)
2167754Smsmith#define LZMA2_CHUNK_MAX (UINT32_C(1) << 16)
2267754Smsmith
2367754Smsmith/// Maximum uncompressed size of LZMA chunk (no headers)
2467754Smsmith#define LZMA2_UNCOMPRESSED_MAX (UINT32_C(1) << 21)
2567754Smsmith
2667754Smsmith/// Maximum size of LZMA2 headers
2767754Smsmith#define LZMA2_HEADER_MAX 6
2867754Smsmith
2967754Smsmith/// Size of a header for uncompressed chunk
3067754Smsmith#define LZMA2_HEADER_UNCOMPRESSED 3
3167754Smsmith
3267754Smsmith
3367754Smsmithextern lzma_ret lzma_lzma2_encoder_init(
3467754Smsmith		lzma_next_coder *next, const lzma_allocator *allocator,
3567754Smsmith		const lzma_filter_info *filters);
3667754Smsmith
3767754Smsmithextern uint64_t lzma_lzma2_encoder_memusage(const void *options);
3867754Smsmith
3967754Smsmithextern lzma_ret lzma_lzma2_props_encode(const void *options, uint8_t *out);
4067754Smsmith
4167754Smsmithextern uint64_t lzma_lzma2_block_size(const void *options);
4267754Smsmith
4367754Smsmith#endif
4467754Smsmith