1 /* Lzma2Enc.h -- LZMA2 Encoder
2 2017-07-27 : Igor Pavlov : Public domain */
11 #define LZMA2_ENC_PROPS__BLOCK_SIZE__AUTO 0
12 #define LZMA2_ENC_PROPS__BLOCK_SIZE__SOLID ((UInt64)(Int64)-1)
16 CLzmaEncProps lzmaProps
;
18 int numBlockThreads_Reduced
;
19 int numBlockThreads_Max
;
23 void Lzma2EncProps_Init(CLzma2EncProps
*p
);
24 void Lzma2EncProps_Normalize(CLzma2EncProps
*p
);
26 /* ---------- CLzmaEnc2Handle Interface ---------- */
28 /* Lzma2Enc_* functions can return the following exit codes:
31 SZ_ERROR_MEM - Memory allocation error
32 SZ_ERROR_PARAM - Incorrect paramater in props
33 SZ_ERROR_WRITE - ISeqOutStream write callback error
34 SZ_ERROR_OUTPUT_EOF - output buffer overflow - version with (Byte *) output
35 SZ_ERROR_PROGRESS - some break from progress callback
36 SZ_ERROR_THREAD - error in multithreading functions (only for Mt version)
39 typedef void * CLzma2EncHandle
;
41 CLzma2EncHandle
Lzma2Enc_Create(ISzAllocPtr alloc
, ISzAllocPtr allocBig
);
42 void Lzma2Enc_Destroy(CLzma2EncHandle p
);
43 SRes
Lzma2Enc_SetProps(CLzma2EncHandle p
, const CLzma2EncProps
*props
);
44 void Lzma2Enc_SetDataSize(CLzma2EncHandle p
, UInt64 expectedDataSiize
);
45 Byte
Lzma2Enc_WriteProperties(CLzma2EncHandle p
);
46 SRes
Lzma2Enc_Encode2(CLzma2EncHandle p
,
47 ISeqOutStream
*outStream
,
48 Byte
*outBuf
, size_t *outBufSize
,
49 ISeqInStream
*inStream
,
50 const Byte
*inData
, size_t inDataSize
,
51 ICompressProgress
*progress
);