/src/perfetto/buildtools/lzma/C/LzmaLib.c
Line | Count | Source |
1 | | /* LzmaLib.c -- LZMA library wrapper |
2 | | 2015-06-13 : Igor Pavlov : Public domain */ |
3 | | |
4 | | #include "Alloc.h" |
5 | | #include "LzmaDec.h" |
6 | | #include "LzmaEnc.h" |
7 | | #include "LzmaLib.h" |
8 | | |
9 | | MY_STDAPI LzmaCompress(unsigned char *dest, size_t *destLen, const unsigned char *src, size_t srcLen, |
10 | | unsigned char *outProps, size_t *outPropsSize, |
11 | | int level, /* 0 <= level <= 9, default = 5 */ |
12 | | unsigned dictSize, /* use (1 << N) or (3 << N). 4 KB < dictSize <= 128 MB */ |
13 | | int lc, /* 0 <= lc <= 8, default = 3 */ |
14 | | int lp, /* 0 <= lp <= 4, default = 0 */ |
15 | | int pb, /* 0 <= pb <= 4, default = 2 */ |
16 | | int fb, /* 5 <= fb <= 273, default = 32 */ |
17 | | int numThreads /* 1 or 2, default = 2 */ |
18 | | ) |
19 | 0 | { |
20 | 0 | CLzmaEncProps props; |
21 | 0 | LzmaEncProps_Init(&props); |
22 | 0 | props.level = level; |
23 | 0 | props.dictSize = dictSize; |
24 | 0 | props.lc = lc; |
25 | 0 | props.lp = lp; |
26 | 0 | props.pb = pb; |
27 | 0 | props.fb = fb; |
28 | 0 | props.numThreads = numThreads; |
29 | |
|
30 | 0 | return LzmaEncode(dest, destLen, src, srcLen, &props, outProps, outPropsSize, 0, |
31 | 0 | NULL, &g_Alloc, &g_Alloc); |
32 | 0 | } |
33 | | |
34 | | |
35 | | MY_STDAPI LzmaUncompress(unsigned char *dest, size_t *destLen, const unsigned char *src, size_t *srcLen, |
36 | | const unsigned char *props, size_t propsSize) |
37 | 0 | { |
38 | 0 | ELzmaStatus status; |
39 | 0 | return LzmaDecode(dest, destLen, src, srcLen, props, (unsigned)propsSize, LZMA_FINISH_ANY, &status, &g_Alloc); |
40 | 0 | } |