/* XzEnc.h -- Xz Encode 2017-06-27 : Igor Pavlov : Public domain */ #ifndef __XZ_ENC_H #define __XZ_ENC_H #include "Lzma2Enc.h" #include "Xz.h" EXTERN_C_BEGIN #define XZ_PROPS__BLOCK_SIZE__AUTO LZMA2_ENC_PROPS__BLOCK_SIZE__AUTO #define XZ_PROPS__BLOCK_SIZE__SOLID LZMA2_ENC_PROPS__BLOCK_SIZE__SOLID typedef struct { UInt32 id; UInt32 delta; UInt32 ip; int ipDefined; } CXzFilterProps; void XzFilterProps_Init(CXzFilterProps *p); typedef struct { CLzma2EncProps lzma2Props; CXzFilterProps filterProps; unsigned checkId; UInt64 blockSize; int numBlockThreads_Reduced; int numBlockThreads_Max; int numTotalThreads; int forceWriteSizesInHeader; UInt64 reduceSize; } CXzProps; void XzProps_Init(CXzProps *p); typedef void * CXzEncHandle; CXzEncHandle XzEnc_Create(ISzAllocPtr alloc, ISzAllocPtr allocBig); void XzEnc_Destroy(CXzEncHandle p); SRes XzEnc_SetProps(CXzEncHandle p, const CXzProps *props); void XzEnc_SetDataSize(CXzEncHandle p, UInt64 expectedDataSiize); SRes XzEnc_Encode(CXzEncHandle p, ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress); SRes Xz_Encode(ISeqOutStream *outStream, ISeqInStream *inStream, const CXzProps *props, ICompressProgress *progress); SRes Xz_EncodeEmpty(ISeqOutStream *outStream); EXTERN_C_END #endif