1*f6dc9357SAndroid Build Coastguard Worker /* XzEnc.h -- Xz Encode 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_XZ_ENC_H 5*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_XZ_ENC_H 6*f6dc9357SAndroid Build Coastguard Worker 7*f6dc9357SAndroid Build Coastguard Worker #include "Lzma2Enc.h" 8*f6dc9357SAndroid Build Coastguard Worker 9*f6dc9357SAndroid Build Coastguard Worker #include "Xz.h" 10*f6dc9357SAndroid Build Coastguard Worker 11*f6dc9357SAndroid Build Coastguard Worker EXTERN_C_BEGIN 12*f6dc9357SAndroid Build Coastguard Worker 13*f6dc9357SAndroid Build Coastguard Worker 14*f6dc9357SAndroid Build Coastguard Worker #define XZ_PROPS_BLOCK_SIZE_AUTO LZMA2_ENC_PROPS_BLOCK_SIZE_AUTO 15*f6dc9357SAndroid Build Coastguard Worker #define XZ_PROPS_BLOCK_SIZE_SOLID LZMA2_ENC_PROPS_BLOCK_SIZE_SOLID 16*f6dc9357SAndroid Build Coastguard Worker 17*f6dc9357SAndroid Build Coastguard Worker 18*f6dc9357SAndroid Build Coastguard Worker typedef struct 19*f6dc9357SAndroid Build Coastguard Worker { 20*f6dc9357SAndroid Build Coastguard Worker UInt32 id; 21*f6dc9357SAndroid Build Coastguard Worker UInt32 delta; 22*f6dc9357SAndroid Build Coastguard Worker UInt32 ip; 23*f6dc9357SAndroid Build Coastguard Worker int ipDefined; 24*f6dc9357SAndroid Build Coastguard Worker } CXzFilterProps; 25*f6dc9357SAndroid Build Coastguard Worker 26*f6dc9357SAndroid Build Coastguard Worker void XzFilterProps_Init(CXzFilterProps *p); 27*f6dc9357SAndroid Build Coastguard Worker 28*f6dc9357SAndroid Build Coastguard Worker 29*f6dc9357SAndroid Build Coastguard Worker typedef struct 30*f6dc9357SAndroid Build Coastguard Worker { 31*f6dc9357SAndroid Build Coastguard Worker CLzma2EncProps lzma2Props; 32*f6dc9357SAndroid Build Coastguard Worker CXzFilterProps filterProps; 33*f6dc9357SAndroid Build Coastguard Worker unsigned checkId; 34*f6dc9357SAndroid Build Coastguard Worker UInt64 blockSize; 35*f6dc9357SAndroid Build Coastguard Worker int numBlockThreads_Reduced; 36*f6dc9357SAndroid Build Coastguard Worker int numBlockThreads_Max; 37*f6dc9357SAndroid Build Coastguard Worker int numTotalThreads; 38*f6dc9357SAndroid Build Coastguard Worker int forceWriteSizesInHeader; 39*f6dc9357SAndroid Build Coastguard Worker UInt64 reduceSize; 40*f6dc9357SAndroid Build Coastguard Worker } CXzProps; 41*f6dc9357SAndroid Build Coastguard Worker 42*f6dc9357SAndroid Build Coastguard Worker void XzProps_Init(CXzProps *p); 43*f6dc9357SAndroid Build Coastguard Worker 44*f6dc9357SAndroid Build Coastguard Worker typedef struct CXzEnc CXzEnc; 45*f6dc9357SAndroid Build Coastguard Worker typedef CXzEnc * CXzEncHandle; 46*f6dc9357SAndroid Build Coastguard Worker // Z7_DECLARE_HANDLE(CXzEncHandle) 47*f6dc9357SAndroid Build Coastguard Worker 48*f6dc9357SAndroid Build Coastguard Worker CXzEncHandle XzEnc_Create(ISzAllocPtr alloc, ISzAllocPtr allocBig); 49*f6dc9357SAndroid Build Coastguard Worker void XzEnc_Destroy(CXzEncHandle p); 50*f6dc9357SAndroid Build Coastguard Worker SRes XzEnc_SetProps(CXzEncHandle p, const CXzProps *props); 51*f6dc9357SAndroid Build Coastguard Worker void XzEnc_SetDataSize(CXzEncHandle p, UInt64 expectedDataSiize); 52*f6dc9357SAndroid Build Coastguard Worker SRes XzEnc_Encode(CXzEncHandle p, ISeqOutStreamPtr outStream, ISeqInStreamPtr inStream, ICompressProgressPtr progress); 53*f6dc9357SAndroid Build Coastguard Worker 54*f6dc9357SAndroid Build Coastguard Worker SRes Xz_Encode(ISeqOutStreamPtr outStream, ISeqInStreamPtr inStream, 55*f6dc9357SAndroid Build Coastguard Worker const CXzProps *props, ICompressProgressPtr progress); 56*f6dc9357SAndroid Build Coastguard Worker 57*f6dc9357SAndroid Build Coastguard Worker SRes Xz_EncodeEmpty(ISeqOutStreamPtr outStream); 58*f6dc9357SAndroid Build Coastguard Worker 59*f6dc9357SAndroid Build Coastguard Worker EXTERN_C_END 60*f6dc9357SAndroid Build Coastguard Worker 61*f6dc9357SAndroid Build Coastguard Worker #endif 62