1 /* LzmaLib.c -- LZMA library wrapper
2 2015-06-13 : Igor Pavlov : Public domain */
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 */
21 LzmaEncProps_Init(&props
);
23 props
.dictSize
= dictSize
;
28 props
.numThreads
= numThreads
;
30 return LzmaEncode(dest
, destLen
, src
, srcLen
, &props
, outProps
, outPropsSize
, 0,
31 NULL
, &g_Alloc
, &g_Alloc
);
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
)
39 return LzmaDecode(dest
, destLen
, src
, srcLen
, props
, (unsigned)propsSize
, LZMA_FINISH_ANY
, &status
, &g_Alloc
);