| Index: third_party/lzma_sdk/LzmaLib.h
|
| ===================================================================
|
| --- third_party/lzma_sdk/LzmaLib.h (revision 0)
|
| +++ third_party/lzma_sdk/LzmaLib.h (revision 0)
|
| @@ -0,0 +1,135 @@
|
| +/* LzmaLib.h -- LZMA library interface
|
| +2009-04-07 : Igor Pavlov : Public domain */
|
| +
|
| +#ifndef __LZMA_LIB_H
|
| +#define __LZMA_LIB_H
|
| +
|
| +#include "Types.h"
|
| +
|
| +#ifdef __cplusplus
|
| +extern "C" {
|
| +#endif
|
| +
|
| +#define MY_STDAPI int MY_STD_CALL
|
| +
|
| +#define LZMA_PROPS_SIZE 5
|
| +
|
| +/*
|
| +RAM requirements for LZMA:
|
| + for compression: (dictSize * 11.5 + 6 MB) + state_size
|
| + for decompression: dictSize + state_size
|
| + state_size = (4 + (1.5 << (lc + lp))) KB
|
| + by default (lc=3, lp=0), state_size = 16 KB.
|
| +
|
| +LZMA properties (5 bytes) format
|
| + Offset Size Description
|
| + 0 1 lc, lp and pb in encoded form.
|
| + 1 4 dictSize (little endian).
|
| +*/
|
| +
|
| +/*
|
| +LzmaCompress
|
| +------------
|
| +
|
| +outPropsSize -
|
| + In: the pointer to the size of outProps buffer; *outPropsSize = LZMA_PROPS_SIZE = 5.
|
| + Out: the pointer to the size of written properties in outProps buffer; *outPropsSize = LZMA_PROPS_SIZE = 5.
|
| +
|
| + LZMA Encoder will use defult values for any parameter, if it is
|
| + -1 for any from: level, loc, lp, pb, fb, numThreads
|
| + 0 for dictSize
|
| +
|
| +level - compression level: 0 <= level <= 9;
|
| +
|
| + level dictSize algo fb
|
| + 0: 16 KB 0 32
|
| + 1: 64 KB 0 32
|
| + 2: 256 KB 0 32
|
| + 3: 1 MB 0 32
|
| + 4: 4 MB 0 32
|
| + 5: 16 MB 1 32
|
| + 6: 32 MB 1 32
|
| + 7+: 64 MB 1 64
|
| +
|
| + The default value for "level" is 5.
|
| +
|
| + algo = 0 means fast method
|
| + algo = 1 means normal method
|
| +
|
| +dictSize - The dictionary size in bytes. The maximum value is
|
| + 128 MB = (1 << 27) bytes for 32-bit version
|
| + 1 GB = (1 << 30) bytes for 64-bit version
|
| + The default value is 16 MB = (1 << 24) bytes.
|
| + It's recommended to use the dictionary that is larger than 4 KB and
|
| + that can be calculated as (1 << N) or (3 << N) sizes.
|
| +
|
| +lc - The number of literal context bits (high bits of previous literal).
|
| + It can be in the range from 0 to 8. The default value is 3.
|
| + Sometimes lc=4 gives the gain for big files.
|
| +
|
| +lp - The number of literal pos bits (low bits of current position for literals).
|
| + It can be in the range from 0 to 4. The default value is 0.
|
| + The lp switch is intended for periodical data when the period is equal to 2^lp.
|
| + For example, for 32-bit (4 bytes) periodical data you can use lp=2. Often it's
|
| + better to set lc=0, if you change lp switch.
|
| +
|
| +pb - The number of pos bits (low bits of current position).
|
| + It can be in the range from 0 to 4. The default value is 2.
|
| + The pb switch is intended for periodical data when the period is equal 2^pb.
|
| +
|
| +fb - Word size (the number of fast bytes).
|
| + It can be in the range from 5 to 273. The default value is 32.
|
| + Usually, a big number gives a little bit better compression ratio and
|
| + slower compression process.
|
| +
|
| +numThreads - The number of thereads. 1 or 2. The default value is 2.
|
| + Fast mode (algo = 0) can use only 1 thread.
|
| +
|
| +Out:
|
| + destLen - processed output size
|
| +Returns:
|
| + SZ_OK - OK
|
| + SZ_ERROR_MEM - Memory allocation error
|
| + SZ_ERROR_PARAM - Incorrect paramater
|
| + SZ_ERROR_OUTPUT_EOF - output buffer overflow
|
| + SZ_ERROR_THREAD - errors in multithreading functions (only for Mt version)
|
| +*/
|
| +
|
| +MY_STDAPI LzmaCompress(unsigned char *dest, size_t *destLen, const unsigned char *src, size_t srcLen,
|
| + unsigned char *outProps, size_t *outPropsSize, /* *outPropsSize must be = 5 */
|
| + int level, /* 0 <= level <= 9, default = 5 */
|
| + unsigned dictSize, /* default = (1 << 24) */
|
| + int lc, /* 0 <= lc <= 8, default = 3 */
|
| + int lp, /* 0 <= lp <= 4, default = 0 */
|
| + int pb, /* 0 <= pb <= 4, default = 2 */
|
| + int fb, /* 5 <= fb <= 273, default = 32 */
|
| + int numThreads /* 1 or 2, default = 2 */
|
| + );
|
| +
|
| +/*
|
| +LzmaUncompress
|
| +--------------
|
| +In:
|
| + dest - output data
|
| + destLen - output data size
|
| + src - input data
|
| + srcLen - input data size
|
| +Out:
|
| + destLen - processed output size
|
| + srcLen - processed input size
|
| +Returns:
|
| + SZ_OK - OK
|
| + SZ_ERROR_DATA - Data error
|
| + SZ_ERROR_MEM - Memory allocation arror
|
| + SZ_ERROR_UNSUPPORTED - Unsupported properties
|
| + SZ_ERROR_INPUT_EOF - it needs more bytes in input buffer (src)
|
| +*/
|
| +
|
| +MY_STDAPI LzmaUncompress(unsigned char *dest, size_t *destLen, const unsigned char *src, SizeT *srcLen,
|
| + const unsigned char *props, size_t propsSize);
|
| +
|
| +#ifdef __cplusplus
|
| +}
|
| +#endif
|
| +
|
| +#endif
|
|
|
| Property changes on: third_party/lzma_sdk/LzmaLib.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|