Annotation of elwix/tools/oldlzma/SRC/7zip/Compress/LZMA_Alone/LzmaRam.h, revision 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>