1 | ///////////////////////////////////////////////////////////////////////////////
|
---|
2 | //
|
---|
3 | /// \file filter_common.h
|
---|
4 | /// \brief Filter-specific stuff common for both encoder and decoder
|
---|
5 | //
|
---|
6 | // Author: Lasse Collin
|
---|
7 | //
|
---|
8 | // This file has been put into the public domain.
|
---|
9 | // You can do whatever you want with this file.
|
---|
10 | //
|
---|
11 | ///////////////////////////////////////////////////////////////////////////////
|
---|
12 |
|
---|
13 | #ifndef LZMA_FILTER_COMMON_H
|
---|
14 | #define LZMA_FILTER_COMMON_H
|
---|
15 |
|
---|
16 | #include "common.h"
|
---|
17 |
|
---|
18 |
|
---|
19 | /// Both lzma_filter_encoder and lzma_filter_decoder begin with these members.
|
---|
20 | typedef struct {
|
---|
21 | /// Filter ID
|
---|
22 | lzma_vli id;
|
---|
23 |
|
---|
24 | /// Initializes the filter encoder and calls lzma_next_filter_init()
|
---|
25 | /// for filters + 1.
|
---|
26 | lzma_init_function init;
|
---|
27 |
|
---|
28 | /// Calculates memory usage of the encoder. If the options are
|
---|
29 | /// invalid, UINT64_MAX is returned.
|
---|
30 | uint64_t (*memusage)(const void *options);
|
---|
31 |
|
---|
32 | } lzma_filter_coder;
|
---|
33 |
|
---|
34 |
|
---|
35 | typedef const lzma_filter_coder *(*lzma_filter_find)(lzma_vli id);
|
---|
36 |
|
---|
37 |
|
---|
38 | extern lzma_ret lzma_validate_chain(const lzma_filter *filters, size_t *count);
|
---|
39 |
|
---|
40 |
|
---|
41 | extern lzma_ret lzma_raw_coder_init(
|
---|
42 | lzma_next_coder *next, const lzma_allocator *allocator,
|
---|
43 | const lzma_filter *filters,
|
---|
44 | lzma_filter_find coder_find, bool is_encoder);
|
---|
45 |
|
---|
46 |
|
---|
47 | extern uint64_t lzma_raw_coder_memusage(lzma_filter_find coder_find,
|
---|
48 | const lzma_filter *filters);
|
---|
49 |
|
---|
50 |
|
---|
51 | #endif
|
---|