61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			61 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| 
								 | 
							
								/* XzEnc.h -- Xz Encode
							 | 
						||
| 
								 | 
							
								2017-06-27 : Igor Pavlov : Public domain */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#ifndef __XZ_ENC_H
							 | 
						||
| 
								 | 
							
								#define __XZ_ENC_H
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "Lzma2Enc.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#include "Xz.h"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								EXTERN_C_BEGIN
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#define XZ_PROPS__BLOCK_SIZE__AUTO   LZMA2_ENC_PROPS__BLOCK_SIZE__AUTO
							 | 
						||
| 
								 | 
							
								#define XZ_PROPS__BLOCK_SIZE__SOLID  LZMA2_ENC_PROPS__BLOCK_SIZE__SOLID
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  UInt32 id;
							 | 
						||
| 
								 | 
							
								  UInt32 delta;
							 | 
						||
| 
								 | 
							
								  UInt32 ip;
							 | 
						||
| 
								 | 
							
								  int ipDefined;
							 | 
						||
| 
								 | 
							
								} CXzFilterProps;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void XzFilterProps_Init(CXzFilterProps *p);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef struct
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								  CLzma2EncProps lzma2Props;
							 | 
						||
| 
								 | 
							
								  CXzFilterProps filterProps;
							 | 
						||
| 
								 | 
							
								  unsigned checkId;
							 | 
						||
| 
								 | 
							
								  UInt64 blockSize;
							 | 
						||
| 
								 | 
							
								  int numBlockThreads_Reduced;
							 | 
						||
| 
								 | 
							
								  int numBlockThreads_Max;
							 | 
						||
| 
								 | 
							
								  int numTotalThreads;
							 | 
						||
| 
								 | 
							
								  int forceWriteSizesInHeader;
							 | 
						||
| 
								 | 
							
								  UInt64 reduceSize;
							 | 
						||
| 
								 | 
							
								} CXzProps;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								void XzProps_Init(CXzProps *p);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								typedef void * CXzEncHandle;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								CXzEncHandle XzEnc_Create(ISzAllocPtr alloc, ISzAllocPtr allocBig);
							 | 
						||
| 
								 | 
							
								void XzEnc_Destroy(CXzEncHandle p);
							 | 
						||
| 
								 | 
							
								SRes XzEnc_SetProps(CXzEncHandle p, const CXzProps *props);
							 | 
						||
| 
								 | 
							
								void XzEnc_SetDataSize(CXzEncHandle p, UInt64 expectedDataSiize);
							 | 
						||
| 
								 | 
							
								SRes XzEnc_Encode(CXzEncHandle p, ISeqOutStream *outStream, ISeqInStream *inStream, ICompressProgress *progress);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SRes Xz_Encode(ISeqOutStream *outStream, ISeqInStream *inStream,
							 | 
						||
| 
								 | 
							
								    const CXzProps *props, ICompressProgress *progress);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								SRes Xz_EncodeEmpty(ISeqOutStream *outStream);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								EXTERN_C_END
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#endif
							 |