Annotation of elwix/tools/oldlzma/SRC/7zip/Compress/LZMA_Alone/LzmaRam.h, revision 1.1.1.1
1.1 misho 1: // LzmaRam.h
2:
3: #ifndef __LzmaRam_h
4: #define __LzmaRam_h
5:
6: #include <stdlib.h>
7: #include "../../../Common/Types.h"
8:
9: /*
10: LzmaRamEncode: BCJ + LZMA RAM->RAM compressing.
11: It uses .lzma format, but it writes one additional byte to .lzma file:
12: 0: - no filter
13: 1: - x86(BCJ) filter.
14:
15: To provide best compression ratio dictionarySize mustbe >= inSize
16:
17: LzmaRamEncode allocates Data with MyAlloc/BigAlloc functions.
18: RAM Requirements:
19: RamSize = dictionarySize * 9.5 + 6MB + FilterBlockSize
20: FilterBlockSize = 0, if useFilter == false
21: FilterBlockSize = inSize, if useFilter == true
22:
23: Return code:
24: 0 - OK
25: 1 - Unspecified Error
26: 2 - Memory allocating error
27: 3 - Output buffer OVERFLOW
28:
29: If you use SZ_FILTER_AUTO mode, then encoder will use 2 or 3 passes:
30: 2 passes when FILTER_NO provides better compression.
31: 3 passes when FILTER_YES provides better compression.
32: */
33:
34: enum ESzFilterMode
35: {
36: SZ_FILTER_NO,
37: SZ_FILTER_YES,
38: SZ_FILTER_AUTO
39: };
40:
41: int LzmaRamEncode(
42: const Byte *inBuffer, size_t inSize,
43: Byte *outBuffer, size_t outSize, size_t *outSizeProcessed,
44: UInt32 dictionarySize, ESzFilterMode filterMode);
45:
46: #endif
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>