xref: /aosp_15_r20/external/lzma/C/Lzma2Enc.h (revision f6dc9357d832569d4d1f5d24eacdb3935a1ae8e6)
1*f6dc9357SAndroid Build Coastguard Worker /* Lzma2Enc.h -- LZMA2 Encoder
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_LZMA2_ENC_H
5*f6dc9357SAndroid Build Coastguard Worker #define ZIP7_INC_LZMA2_ENC_H
6*f6dc9357SAndroid Build Coastguard Worker 
7*f6dc9357SAndroid Build Coastguard Worker #include "LzmaEnc.h"
8*f6dc9357SAndroid Build Coastguard Worker 
9*f6dc9357SAndroid Build Coastguard Worker EXTERN_C_BEGIN
10*f6dc9357SAndroid Build Coastguard Worker 
11*f6dc9357SAndroid Build Coastguard Worker #define LZMA2_ENC_PROPS_BLOCK_SIZE_AUTO   0
12*f6dc9357SAndroid Build Coastguard Worker #define LZMA2_ENC_PROPS_BLOCK_SIZE_SOLID  ((UInt64)(Int64)-1)
13*f6dc9357SAndroid Build Coastguard Worker 
14*f6dc9357SAndroid Build Coastguard Worker typedef struct
15*f6dc9357SAndroid Build Coastguard Worker {
16*f6dc9357SAndroid Build Coastguard Worker   CLzmaEncProps lzmaProps;
17*f6dc9357SAndroid Build Coastguard Worker   UInt64 blockSize;
18*f6dc9357SAndroid Build Coastguard Worker   int numBlockThreads_Reduced;
19*f6dc9357SAndroid Build Coastguard Worker   int numBlockThreads_Max;
20*f6dc9357SAndroid Build Coastguard Worker   int numTotalThreads;
21*f6dc9357SAndroid Build Coastguard Worker } CLzma2EncProps;
22*f6dc9357SAndroid Build Coastguard Worker 
23*f6dc9357SAndroid Build Coastguard Worker void Lzma2EncProps_Init(CLzma2EncProps *p);
24*f6dc9357SAndroid Build Coastguard Worker void Lzma2EncProps_Normalize(CLzma2EncProps *p);
25*f6dc9357SAndroid Build Coastguard Worker 
26*f6dc9357SAndroid Build Coastguard Worker /* ---------- CLzmaEnc2Handle Interface ---------- */
27*f6dc9357SAndroid Build Coastguard Worker 
28*f6dc9357SAndroid Build Coastguard Worker /* Lzma2Enc_* functions can return the following exit codes:
29*f6dc9357SAndroid Build Coastguard Worker SRes:
30*f6dc9357SAndroid Build Coastguard Worker   SZ_OK           - OK
31*f6dc9357SAndroid Build Coastguard Worker   SZ_ERROR_MEM    - Memory allocation error
32*f6dc9357SAndroid Build Coastguard Worker   SZ_ERROR_PARAM  - Incorrect paramater in props
33*f6dc9357SAndroid Build Coastguard Worker   SZ_ERROR_WRITE  - ISeqOutStream write callback error
34*f6dc9357SAndroid Build Coastguard Worker   SZ_ERROR_OUTPUT_EOF - output buffer overflow - version with (Byte *) output
35*f6dc9357SAndroid Build Coastguard Worker   SZ_ERROR_PROGRESS - some break from progress callback
36*f6dc9357SAndroid Build Coastguard Worker   SZ_ERROR_THREAD - error in multithreading functions (only for Mt version)
37*f6dc9357SAndroid Build Coastguard Worker */
38*f6dc9357SAndroid Build Coastguard Worker 
39*f6dc9357SAndroid Build Coastguard Worker typedef struct CLzma2Enc CLzma2Enc;
40*f6dc9357SAndroid Build Coastguard Worker typedef CLzma2Enc * CLzma2EncHandle;
41*f6dc9357SAndroid Build Coastguard Worker // Z7_DECLARE_HANDLE(CLzma2EncHandle)
42*f6dc9357SAndroid Build Coastguard Worker 
43*f6dc9357SAndroid Build Coastguard Worker CLzma2EncHandle Lzma2Enc_Create(ISzAllocPtr alloc, ISzAllocPtr allocBig);
44*f6dc9357SAndroid Build Coastguard Worker void Lzma2Enc_Destroy(CLzma2EncHandle p);
45*f6dc9357SAndroid Build Coastguard Worker SRes Lzma2Enc_SetProps(CLzma2EncHandle p, const CLzma2EncProps *props);
46*f6dc9357SAndroid Build Coastguard Worker void Lzma2Enc_SetDataSize(CLzma2EncHandle p, UInt64 expectedDataSiize);
47*f6dc9357SAndroid Build Coastguard Worker Byte Lzma2Enc_WriteProperties(CLzma2EncHandle p);
48*f6dc9357SAndroid Build Coastguard Worker SRes Lzma2Enc_Encode2(CLzma2EncHandle p,
49*f6dc9357SAndroid Build Coastguard Worker     ISeqOutStreamPtr outStream,
50*f6dc9357SAndroid Build Coastguard Worker     Byte *outBuf, size_t *outBufSize,
51*f6dc9357SAndroid Build Coastguard Worker     ISeqInStreamPtr inStream,
52*f6dc9357SAndroid Build Coastguard Worker     const Byte *inData, size_t inDataSize,
53*f6dc9357SAndroid Build Coastguard Worker     ICompressProgressPtr progress);
54*f6dc9357SAndroid Build Coastguard Worker 
55*f6dc9357SAndroid Build Coastguard Worker EXTERN_C_END
56*f6dc9357SAndroid Build Coastguard Worker 
57*f6dc9357SAndroid Build Coastguard Worker #endif
58