| /* Lzma2Enc.h -- LZMA2 Encoder |
| 2023-04-13 : Igor Pavlov : Public domain */ |
| |
| #ifndef ZIP7_INC_LZMA2_ENC_H |
| #define ZIP7_INC_LZMA2_ENC_H |
| |
| #include "LzmaEnc.h" |
| |
| EXTERN_C_BEGIN |
| |
| #define LZMA2_ENC_PROPS_BLOCK_SIZE_AUTO 0 |
| #define LZMA2_ENC_PROPS_BLOCK_SIZE_SOLID ((UInt64)(Int64)-1) |
| |
| typedef struct |
| { |
| CLzmaEncProps lzmaProps; |
| UInt64 blockSize; |
| int numBlockThreads_Reduced; |
| int numBlockThreads_Max; |
| int numTotalThreads; |
| } CLzma2EncProps; |
| |
| void Lzma2EncProps_Init(CLzma2EncProps *p); |
| void Lzma2EncProps_Normalize(CLzma2EncProps *p); |
| |
| /* ---------- CLzmaEnc2Handle Interface ---------- */ |
| |
| /* Lzma2Enc_* functions can return the following exit codes: |
| SRes: |
| SZ_OK - OK |
| SZ_ERROR_MEM - Memory allocation error |
| SZ_ERROR_PARAM - Incorrect paramater in props |
| SZ_ERROR_WRITE - ISeqOutStream write callback error |
| SZ_ERROR_OUTPUT_EOF - output buffer overflow - version with (Byte *) output |
| SZ_ERROR_PROGRESS - some break from progress callback |
| SZ_ERROR_THREAD - error in multithreading functions (only for Mt version) |
| */ |
| |
| typedef struct CLzma2Enc CLzma2Enc; |
| typedef CLzma2Enc * CLzma2EncHandle; |
| // Z7_DECLARE_HANDLE(CLzma2EncHandle) |
| |
| CLzma2EncHandle Lzma2Enc_Create(ISzAllocPtr alloc, ISzAllocPtr allocBig); |
| void Lzma2Enc_Destroy(CLzma2EncHandle p); |
| SRes Lzma2Enc_SetProps(CLzma2EncHandle p, const CLzma2EncProps *props); |
| void Lzma2Enc_SetDataSize(CLzma2EncHandle p, UInt64 expectedDataSiize); |
| Byte Lzma2Enc_WriteProperties(CLzma2EncHandle p); |
| SRes Lzma2Enc_Encode2(CLzma2EncHandle p, |
| ISeqOutStreamPtr outStream, |
| Byte *outBuf, size_t *outBufSize, |
| ISeqInStreamPtr inStream, |
| const Byte *inData, size_t inDataSize, |
| ICompressProgressPtr progress); |
| |
| EXTERN_C_END |
| |
| #endif |