Home | History | Annotate | Download | only in C
      1 /* Lzma2Enc.h -- LZMA2 Encoder
      2 2013-01-18 : Igor Pavlov : Public domain */
      3 
      4 #ifndef __LZMA2_ENC_H
      5 #define __LZMA2_ENC_H
      6 
      7 #include "LzmaEnc.h"
      8 
      9 EXTERN_C_BEGIN
     10 
     11 typedef struct
     12 {
     13   CLzmaEncProps lzmaProps;
     14   size_t blockSize;
     15   int numBlockThreads;
     16   int numTotalThreads;
     17 } CLzma2EncProps;
     18 
     19 void Lzma2EncProps_Init(CLzma2EncProps *p);
     20 void Lzma2EncProps_Normalize(CLzma2EncProps *p);
     21 
     22 /* ---------- CLzmaEnc2Handle Interface ---------- */
     23 
     24 /* Lzma2Enc_* functions can return the following exit codes:
     25 Returns:
     26   SZ_OK           - OK
     27   SZ_ERROR_MEM    - Memory allocation error
     28   SZ_ERROR_PARAM  - Incorrect paramater in props
     29   SZ_ERROR_WRITE  - Write callback error
     30   SZ_ERROR_PROGRESS - some break from progress callback
     31   SZ_ERROR_THREAD - errors in multithreading functions (only for Mt version)
     32 */
     33 
     34 typedef void * CLzma2EncHandle;
     35 
     36 CLzma2EncHandle Lzma2Enc_Create(ISzAlloc *alloc, ISzAlloc *allocBig);
     37 void Lzma2Enc_Destroy(CLzma2EncHandle p);
     38 SRes Lzma2Enc_SetProps(CLzma2EncHandle p, const CLzma2EncProps *props);
     39 Byte Lzma2Enc_WriteProperties(CLzma2EncHandle p);
     40 SRes Lzma2Enc_Encode(CLzma2EncHandle p,
     41     ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress);
     42 
     43 /* ---------- One Call Interface ---------- */
     44 
     45 /* Lzma2Encode
     46 Return code:
     47   SZ_OK               - OK
     48   SZ_ERROR_MEM        - Memory allocation error
     49   SZ_ERROR_PARAM      - Incorrect paramater
     50   SZ_ERROR_OUTPUT_EOF - output buffer overflow
     51   SZ_ERROR_THREAD     - errors in multithreading functions (only for Mt version)
     52 */
     53 
     54 /*
     55 SRes Lzma2Encode(Byte *dest, SizeT *destLen, const Byte *src, SizeT srcLen,
     56     const CLzmaEncProps *props, Byte *propsEncoded, int writeEndMark,
     57     ICompressProgress *progress, ISzAlloc *alloc, ISzAlloc *allocBig);
     58 */
     59 
     60 EXTERN_C_END
     61 
     62 #endif
     63