Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Utilities/cmliblzma/liblzma/lzma/lzma_encoder.h
3156 views
1
// SPDX-License-Identifier: 0BSD
2
3
///////////////////////////////////////////////////////////////////////////////
4
//
5
/// \file lzma_encoder.h
6
/// \brief LZMA encoder API
7
///
8
// Authors: Igor Pavlov
9
// Lasse Collin
10
//
11
///////////////////////////////////////////////////////////////////////////////
12
13
#ifndef LZMA_LZMA_ENCODER_H
14
#define LZMA_LZMA_ENCODER_H
15
16
#include "common.h"
17
18
19
typedef struct lzma_lzma1_encoder_s lzma_lzma1_encoder;
20
21
22
extern lzma_ret lzma_lzma_encoder_init(lzma_next_coder *next,
23
const lzma_allocator *allocator,
24
const lzma_filter_info *filters);
25
26
27
extern uint64_t lzma_lzma_encoder_memusage(const void *options);
28
29
extern lzma_ret lzma_lzma_props_encode(const void *options, uint8_t *out);
30
31
32
/// Encodes lc/lp/pb into one byte. Returns false on success and true on error.
33
extern bool lzma_lzma_lclppb_encode(
34
const lzma_options_lzma *options, uint8_t *byte);
35
36
37
#ifdef LZMA_LZ_ENCODER_H
38
39
/// Initializes raw LZMA encoder; this is used by LZMA2.
40
extern lzma_ret lzma_lzma_encoder_create(
41
void **coder_ptr, const lzma_allocator *allocator,
42
lzma_vli id, const lzma_options_lzma *options,
43
lzma_lz_options *lz_options);
44
45
46
/// Resets an already initialized LZMA encoder; this is used by LZMA2.
47
extern lzma_ret lzma_lzma_encoder_reset(
48
lzma_lzma1_encoder *coder, const lzma_options_lzma *options);
49
50
51
extern lzma_ret lzma_lzma_encode(lzma_lzma1_encoder *restrict coder,
52
lzma_mf *restrict mf, uint8_t *restrict out,
53
size_t *restrict out_pos, size_t out_size,
54
uint32_t read_limit);
55
56
#endif
57
58
#endif
59
60