mirror of https://github.com/PCSX2/pcsx2.git
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
|