xref: /aosp_15_r20/external/lzma/C/XzEnc.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
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