/* 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 |