aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/lzmasdk/Lzma2Enc.h
blob: b67986ce512d00d55b60c3c7e5167b6ea7174baa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
/* Lzma2Enc.h -- LZMA2 Encoder 
2017-07-27 : Igor Pavlov : Public domain */ 
 
#ifndef __LZMA2_ENC_H 
#define __LZMA2_ENC_H 
 
#include "LzmaEnc.h" 
 
EXTERN_C_BEGIN 
 
#define LZMA2_ENC_PROPS__BLOCK_SIZE__AUTO 0 
#define LZMA2_ENC_PROPS__BLOCK_SIZE__SOLID ((UInt64)(Int64)-1) 
 
typedef struct 
{ 
  CLzmaEncProps lzmaProps; 
  UInt64 blockSize; 
  int numBlockThreads_Reduced; 
  int numBlockThreads_Max; 
  int numTotalThreads; 
} CLzma2EncProps; 
 
void Lzma2EncProps_Init(CLzma2EncProps *p); 
void Lzma2EncProps_Normalize(CLzma2EncProps *p); 
 
/* ---------- CLzmaEnc2Handle Interface ---------- */ 
 
/* Lzma2Enc_* functions can return the following exit codes: 
SRes: 
  SZ_OK           - OK 
  SZ_ERROR_MEM    - Memory allocation error 
  SZ_ERROR_PARAM  - Incorrect paramater in props 
  SZ_ERROR_WRITE  - ISeqOutStream write callback error 
  SZ_ERROR_OUTPUT_EOF - output buffer overflow - version with (Byte *) output 
  SZ_ERROR_PROGRESS - some break from progress callback 
  SZ_ERROR_THREAD - error in multithreading functions (only for Mt version) 
*/ 
 
typedef void * CLzma2EncHandle; 
 
CLzma2EncHandle Lzma2Enc_Create(ISzAllocPtr alloc, ISzAllocPtr allocBig); 
void Lzma2Enc_Destroy(CLzma2EncHandle p); 
SRes Lzma2Enc_SetProps(CLzma2EncHandle p, const CLzma2EncProps *props); 
void Lzma2Enc_SetDataSize(CLzma2EncHandle p, UInt64 expectedDataSiize); 
Byte Lzma2Enc_WriteProperties(CLzma2EncHandle p); 
SRes Lzma2Enc_Encode2(CLzma2EncHandle p, 
    ISeqOutStream *outStream, 
    Byte *outBuf, size_t *outBufSize, 
    ISeqInStream *inStream, 
    const Byte *inData, size_t inDataSize, 
    ICompressProgress *progress); 
 
EXTERN_C_END 
 
#endif