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>