update libchdr
[pcsx_rearmed.git] / deps / libchdr / deps / lzma-22.01 / src / LzmaLib.c
... / ...
CommitLineData
1/* LzmaLib.c -- LZMA library wrapper\r
22015-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
9MY_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
35MY_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