1*f6dc9357SAndroid Build Coastguard Worker /* Lzma2Enc.h -- LZMA2 Encoder 2*f6dc9357SAndroid Build Coastguard Worker 2023-04-13 : Igor Pavlov : Public domain */ 3*f6dc9357SAndroid Build Coastguard Worker 4*f6dc9357SAndroid Build Coastguard Worker #ifndef ZIP7_INC_LZMA2_ENC_H 5*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_LZMA2_ENC_H 6*f6dc9357SAndroid Build Coastguard Worker 7*f6dc9357SAndroid Build Coastguard Worker #include "LzmaEnc.h" 8*f6dc9357SAndroid Build Coastguard Worker 9*f6dc9357SAndroid Build Coastguard Worker EXTERN_C_BEGIN 10*f6dc9357SAndroid Build Coastguard Worker 11*f6dc9357SAndroid Build Coastguard Worker #define LZMA2_ENC_PROPS_BLOCK_SIZE_AUTO 0 12*f6dc9357SAndroid Build Coastguard Worker #define LZMA2_ENC_PROPS_BLOCK_SIZE_SOLID ((UInt64)(Int64)-1) 13*f6dc9357SAndroid Build Coastguard Worker 14*f6dc9357SAndroid Build Coastguard Worker typedef struct 15*f6dc9357SAndroid Build Coastguard Worker { 16*f6dc9357SAndroid Build Coastguard Worker CLzmaEncProps lzmaProps; 17*f6dc9357SAndroid Build Coastguard Worker UInt64 blockSize; 18*f6dc9357SAndroid Build Coastguard Worker int numBlockThreads_Reduced; 19*f6dc9357SAndroid Build Coastguard Worker int numBlockThreads_Max; 20*f6dc9357SAndroid Build Coastguard Worker int numTotalThreads; 21*f6dc9357SAndroid Build Coastguard Worker } CLzma2EncProps; 22*f6dc9357SAndroid Build Coastguard Worker 23*f6dc9357SAndroid Build Coastguard Worker void Lzma2EncProps_Init(CLzma2EncProps *p); 24*f6dc9357SAndroid Build Coastguard Worker void Lzma2EncProps_Normalize(CLzma2EncProps *p); 25*f6dc9357SAndroid Build Coastguard Worker 26*f6dc9357SAndroid Build Coastguard Worker /* ---------- CLzmaEnc2Handle Interface ---------- */ 27*f6dc9357SAndroid Build Coastguard Worker 28*f6dc9357SAndroid Build Coastguard Worker /* Lzma2Enc_* functions can return the following exit codes: 29*f6dc9357SAndroid Build Coastguard Worker SRes: 30*f6dc9357SAndroid Build Coastguard Worker SZ_OK - OK 31*f6dc9357SAndroid Build Coastguard Worker SZ_ERROR_MEM - Memory allocation error 32*f6dc9357SAndroid Build Coastguard Worker SZ_ERROR_PARAM - Incorrect paramater in props 33*f6dc9357SAndroid Build Coastguard Worker SZ_ERROR_WRITE - ISeqOutStream write callback error 34*f6dc9357SAndroid Build Coastguard Worker SZ_ERROR_OUTPUT_EOF - output buffer overflow - version with (Byte *) output 35*f6dc9357SAndroid Build Coastguard Worker SZ_ERROR_PROGRESS - some break from progress callback 36*f6dc9357SAndroid Build Coastguard Worker SZ_ERROR_THREAD - error in multithreading functions (only for Mt version) 37*f6dc9357SAndroid Build Coastguard Worker */ 38*f6dc9357SAndroid Build Coastguard Worker 39*f6dc9357SAndroid Build Coastguard Worker typedef struct CLzma2Enc CLzma2Enc; 40*f6dc9357SAndroid Build Coastguard Worker typedef CLzma2Enc * CLzma2EncHandle; 41*f6dc9357SAndroid Build Coastguard Worker // Z7_DECLARE_HANDLE(CLzma2EncHandle) 42*f6dc9357SAndroid Build Coastguard Worker 43*f6dc9357SAndroid Build Coastguard Worker CLzma2EncHandle Lzma2Enc_Create(ISzAllocPtr alloc, ISzAllocPtr allocBig); 44*f6dc9357SAndroid Build Coastguard Worker void Lzma2Enc_Destroy(CLzma2EncHandle p); 45*f6dc9357SAndroid Build Coastguard Worker SRes Lzma2Enc_SetProps(CLzma2EncHandle p, const CLzma2EncProps *props); 46*f6dc9357SAndroid Build Coastguard Worker void Lzma2Enc_SetDataSize(CLzma2EncHandle p, UInt64 expectedDataSiize); 47*f6dc9357SAndroid Build Coastguard Worker Byte Lzma2Enc_WriteProperties(CLzma2EncHandle p); 48*f6dc9357SAndroid Build Coastguard Worker SRes Lzma2Enc_Encode2(CLzma2EncHandle p, 49*f6dc9357SAndroid Build Coastguard Worker ISeqOutStreamPtr outStream, 50*f6dc9357SAndroid Build Coastguard Worker Byte *outBuf, size_t *outBufSize, 51*f6dc9357SAndroid Build Coastguard Worker ISeqInStreamPtr inStream, 52*f6dc9357SAndroid Build Coastguard Worker const Byte *inData, size_t inDataSize, 53*f6dc9357SAndroid Build Coastguard Worker ICompressProgressPtr progress); 54*f6dc9357SAndroid Build Coastguard Worker 55*f6dc9357SAndroid Build Coastguard Worker EXTERN_C_END 56*f6dc9357SAndroid Build Coastguard Worker 57*f6dc9357SAndroid Build Coastguard Worker #endif 58