Fix
[ryzomcore.git] / nel / 3rdparty / seven_zip / XzEnc.h
blob0c29e7e1e12c4fcebe34b835e414d5a300567dc7
1 /* XzEnc.h -- Xz Encode
2 2017-06-27 : Igor Pavlov : Public domain */
4 #ifndef __XZ_ENC_H
5 #define __XZ_ENC_H
7 #include "Lzma2Enc.h"
9 #include "Xz.h"
11 EXTERN_C_BEGIN
14 #define XZ_PROPS__BLOCK_SIZE__AUTO LZMA2_ENC_PROPS__BLOCK_SIZE__AUTO
15 #define XZ_PROPS__BLOCK_SIZE__SOLID LZMA2_ENC_PROPS__BLOCK_SIZE__SOLID
18 typedef struct
20 UInt32 id;
21 UInt32 delta;
22 UInt32 ip;
23 int ipDefined;
24 } CXzFilterProps;
26 void XzFilterProps_Init(CXzFilterProps *p);
29 typedef struct
31 CLzma2EncProps lzma2Props;
32 CXzFilterProps filterProps;
33 unsigned checkId;
34 UInt64 blockSize;
35 int numBlockThreads_Reduced;
36 int numBlockThreads_Max;
37 int numTotalThreads;
38 int forceWriteSizesInHeader;
39 UInt64 reduceSize;
40 } CXzProps;
42 void XzProps_Init(CXzProps *p);
45 typedef void * CXzEncHandle;
47 CXzEncHandle XzEnc_Create(ISzAllocPtr alloc, ISzAllocPtr allocBig);
48 void XzEnc_Destroy(CXzEncHandle p);
49 SRes XzEnc_SetProps(CXzEncHandle p, const CXzProps *props);
50 void XzEnc_SetDataSize(CXzEncHandle p, UInt64 expectedDataSiize);
51 SRes XzEnc_Encode(CXzEncHandle p, ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress);
53 SRes Xz_Encode(ISeqOutStream *outStream, ISeqInStream *inStream,
54 const CXzProps *props, ICompressProgress *progress);
56 SRes Xz_EncodeEmpty(ISeqOutStream *outStream);
58 EXTERN_C_END
60 #endif