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