![]() |
Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
|
#include <stddef.h>
#include <string.h>
#include "zstd_v04.h"
#include "../common/error_private.h"
#include "../common/debug.h"
#include <stdlib.h>
#include <stdio.h>
Data Structures | |
struct | ZSTD_parameters |
struct | BIT_DStream_t |
struct | FSE_DState_t |
struct | FSE_DTableHeader |
struct | FSE_decode_t |
struct | HUF_DEltX2 |
struct | HUF_DEltX4 |
struct | sortedSymbol_t |
struct | algo_time_t |
struct | blockProperties_t |
struct | ZSTDv04_Dctx_s |
struct | seq_t |
struct | seqState_t |
struct | ZBUFFv04_DCtx_s |
Macros | |
#define | MEM_H_MODULE |
#define | MEM_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ |
#define | ZSTD_STATIC_H |
#define | ZSTD_WINDOWLOG_ABSOLUTEMIN 11 |
#define | ZSTD_CCOMMON_H_MODULE |
#define | MIN(a, b) |
#define | MAX(a, b) |
#define | ZSTD_MAGICNUMBER 0xFD2FB524 /* v0.4 */ |
#define | KB *(1 <<10) |
#define | MB *(1 <<20) |
#define | GB *(1U<<30) |
#define | BLOCKSIZE (128 KB) /* define, for static allocation */ |
#define | ZSTD_frameHeaderSize_max 5 /* define, for static allocation */ |
#define | BIT7 128 |
#define | BIT6 64 |
#define | BIT5 32 |
#define | BIT4 16 |
#define | BIT1 2 |
#define | BIT0 1 |
#define | IS_RAW BIT0 |
#define | IS_RLE BIT1 |
#define | MINMATCH 4 |
#define | REPCODE_STARTVALUE 4 |
#define | MLbits 7 |
#define | LLbits 6 |
#define | Offbits 5 |
#define | MaxML ((1<<MLbits) - 1) |
#define | MaxLL ((1<<LLbits) - 1) |
#define | MaxOff ((1<<Offbits)- 1) |
#define | MLFSELog 10 |
#define | LLFSELog 10 |
#define | OffFSELog 9 |
#define | MaxSeq MAX(MaxLL, MaxML) |
#define | MIN_SEQUENCES_SIZE (2 /*seqNb*/ + 2 /*dumps*/ + 3 /*seqTables*/ + 1 /*bitStream*/) |
#define | MIN_CBLOCK_SIZE (3 /*litCSize*/ + MIN_SEQUENCES_SIZE) |
#define | ZSTD_CONTENTSIZE_ERROR (0ULL - 2) |
#define | COPY8(d, s) |
#define | FSE_H |
#define | BITSTREAM_H_MODULE |
#define | FSE_STATIC_H |
#define | FSE_NCOUNTBOUND 512 |
#define | FSE_BLOCKBOUND(size) |
#define | FSE_COMPRESSBOUND(size) |
#define | FSE_CTABLE_SIZE_U32(maxTableLog, maxSymbolValue) |
#define | FSE_DTABLE_SIZE_U32(maxTableLog) |
#define | FSE_MAX_MEMORY_USAGE 14 |
#define | FSE_DEFAULT_MEMORY_USAGE 13 |
#define | FSE_MAX_SYMBOL_VALUE 255 |
#define | FSE_FUNCTION_TYPE BYTE |
#define | FSE_FUNCTION_EXTENSION |
#define | FSE_DECODE_TYPE FSE_decode_t |
#define | FORCE_INLINE static |
#define | FSE_MAX_TABLELOG (FSE_MAX_MEMORY_USAGE-2) |
#define | FSE_MAX_TABLESIZE (1U<<FSE_MAX_TABLELOG) |
#define | FSE_MAXTABLESIZE_MASK (FSE_MAX_TABLESIZE-1) |
#define | FSE_DEFAULT_TABLELOG (FSE_DEFAULT_MEMORY_USAGE-2) |
#define | FSE_MIN_TABLELOG 5 |
#define | FSE_TABLELOG_ABSOLUTE_MAX 15 |
#define | FSE_STATIC_ASSERT(c) |
#define | FSE_CAT(X, Y) |
#define | FSE_FUNCTION_NAME(X, Y) |
#define | FSE_TYPE_NAME(X, Y) |
#define | FSE_GETSYMBOL(statePtr) |
#define | HUFF0_H |
#define | HUFF0_STATIC_H |
#define | HUF_DTABLE_SIZE(maxTableLog) |
#define | HUF_CREATE_STATIC_DTABLEX2(DTable, maxTableLog) |
#define | HUF_CREATE_STATIC_DTABLEX4(DTable, maxTableLog) |
#define | HUF_CREATE_STATIC_DTABLEX6(DTable, maxTableLog) |
#define | inline /* disable inline */ |
#define | HUF_ABSOLUTEMAX_TABLELOG 16 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */ |
#define | HUF_MAX_TABLELOG 12 /* max configured tableLog (for static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG */ |
#define | HUF_DEFAULT_TABLELOG HUF_MAX_TABLELOG /* tableLog by default, when not specified */ |
#define | HUF_MAX_SYMBOL_VALUE 255 |
#define | HUF_STATIC_ASSERT(c) |
#define | HUF_DECODE_SYMBOLX2_0(ptr, DStreamPtr) |
#define | HUF_DECODE_SYMBOLX2_1(ptr, DStreamPtr) |
#define | HUF_DECODE_SYMBOLX2_2(ptr, DStreamPtr) |
#define | HUF_DECODE_SYMBOLX4_0(ptr, DStreamPtr) |
#define | HUF_DECODE_SYMBOLX4_1(ptr, DStreamPtr) |
#define | HUF_DECODE_SYMBOLX4_2(ptr, DStreamPtr) |
#define | ZSTD_HEAPMODE 1 |
#define | ZSTD_frameHeaderSize_max 5 /* too magical, should come from reference */ |
Typedefs | |
typedef ZSTDv04_Dctx | ZSTD_DCtx |
typedef size_t(* | decompressionAlgo) (void *dst, size_t dstSize, const void *cSrc, size_t cSrcSize) |
typedef ZBUFFv04_DCtx | ZBUFF_DCtx |
Enumerations | |
enum | ZSTD_strategy { ZSTD_fast , ZSTD_greedy , ZSTD_lazy , ZSTD_lazy2 , ZSTD_btlazy2 } |
enum | blockType_t { bt_compressed , bt_raw , bt_rle , bt_end } |
enum | BIT_DStream_status { BIT_DStream_unfinished = 0 , BIT_DStream_endOfBuffer = 1 , BIT_DStream_completed = 2 , BIT_DStream_overflow = 3 } |
enum | ZSTD_dStage { ZSTDds_getFrameHeaderSize , ZSTDds_decodeFrameHeader , ZSTDds_decodeBlockHeader , ZSTDds_decompressBlock } |
enum | ZBUFF_dStage { ZBUFFds_init , ZBUFFds_readHeader , ZBUFFds_loadHeader , ZBUFFds_decodeHeader , ZBUFFds_read , ZBUFFds_load , ZBUFFds_flush } |
#define BIT0 1 |
#define BIT1 2 |
#define BIT4 16 |
#define BIT5 32 |
#define BIT6 64 |
#define BIT7 128 |
#define BITSTREAM_H_MODULE |
(Note : these functions only decompress FSE-compressed blocks. If block is uncompressed, use memcpy() instead If block is a single repeated byte, use memset() instead )
The first step is to obtain the normalized frequencies of symbols. This can be performed by FSE_readNCount() if it was saved using FSE_writeNCount(). 'normalizedCounter' must be already allocated, and have at least 'maxSymbolValuePtr[0]+1' cells of signed short. In practice, that means it's necessary to know 'maxSymbolValue' beforehand, or size the table to handle worst case situations (typically 256). FSE_readNCount() will provide 'tableLog' and 'maxSymbolValue'. The result of FSE_readNCount() is the number of bytes read from 'rBuffer'. Note that 'rBufferSize' must be at least 4 bytes, even if useful information is less than that. If there is an error, the function will return an error code, which can be tested using FSE_isError().
The next step is to build the decompression tables 'FSE_DTable' from 'normalizedCounter'. This is performed by the function FSE_buildDTable(). The space required by 'FSE_DTable' must be already allocated using FSE_createDTable(). If there is an error, the function will return an error code, which can be tested using FSE_isError().
'FSE_DTable' can then be used to decompress 'cSrc', with FSE_decompress_usingDTable(). 'cSrcSize' must be strictly correct, otherwise decompression will fail. FSE_decompress_usingDTable() result will tell how many bytes were regenerated (<=maxDstSize). If there is an error, the function will return an error code, which can be tested using FSE_isError(). (ex: dst buffer too small)
#define FORCE_INLINE static |
#define FSE_COMPRESSBOUND | ( | size | ) |
#define FSE_CTABLE_SIZE_U32 | ( | maxTableLog, | |
maxSymbolValue ) |
#define FSE_DECODE_TYPE FSE_decode_t |
#define FSE_DEFAULT_MEMORY_USAGE 13 |
#define FSE_DEFAULT_TABLELOG (FSE_DEFAULT_MEMORY_USAGE-2) |
#define FSE_DTABLE_SIZE_U32 | ( | maxTableLog | ) |
#define FSE_FUNCTION_EXTENSION |
#define FSE_FUNCTION_NAME | ( | X, | |
Y ) |
#define FSE_FUNCTION_TYPE BYTE |
#define FSE_GETSYMBOL | ( | statePtr | ) |
#define FSE_H |
#define FSE_MAX_MEMORY_USAGE 14 |
MEMORY_USAGE : Memory usage formula : N->2^N Bytes (examples : 10 -> 1KB; 12 -> 4KB ; 16 -> 64KB; 20 -> 1MB; etc.) Increasing memory usage improves compression ratio Reduced memory usage can improve speed, due to cache effect Recommended max value is 14, for 16KB, which nicely fits into Intel x86 L1 cache
#define FSE_MAX_SYMBOL_VALUE 255 |
FSE_MAX_SYMBOL_VALUE : Maximum symbol value authorized. Required for proper stack allocation
#define FSE_MAX_TABLELOG (FSE_MAX_MEMORY_USAGE-2) |
#define FSE_MAX_TABLESIZE (1U<<FSE_MAX_TABLELOG) |
#define FSE_MAXTABLESIZE_MASK (FSE_MAX_TABLESIZE-1) |
#define FSE_MIN_TABLELOG 5 |
#define FSE_NCOUNTBOUND 512 |
#define FSE_STATIC_ASSERT | ( | c | ) |
#define FSE_STATIC_H |
#define FSE_TABLELOG_ABSOLUTE_MAX 15 |
#define GB *(1U<<30) |
#define HUF_ABSOLUTEMAX_TABLELOG 16 /* absolute limit of HUF_MAX_TABLELOG. Beyond that value, code does not work */ |
#define HUF_CREATE_STATIC_DTABLEX2 | ( | DTable, | |
maxTableLog ) |
#define HUF_CREATE_STATIC_DTABLEX4 | ( | DTable, | |
maxTableLog ) |
#define HUF_CREATE_STATIC_DTABLEX6 | ( | DTable, | |
maxTableLog ) |
#define HUF_DECODE_SYMBOLX2_0 | ( | ptr, | |
DStreamPtr ) |
#define HUF_DECODE_SYMBOLX2_1 | ( | ptr, | |
DStreamPtr ) |
#define HUF_DECODE_SYMBOLX2_2 | ( | ptr, | |
DStreamPtr ) |
#define HUF_DECODE_SYMBOLX4_0 | ( | ptr, | |
DStreamPtr ) |
#define HUF_DECODE_SYMBOLX4_1 | ( | ptr, | |
DStreamPtr ) |
#define HUF_DECODE_SYMBOLX4_2 | ( | ptr, | |
DStreamPtr ) |
#define HUF_DEFAULT_TABLELOG HUF_MAX_TABLELOG /* tableLog by default, when not specified */ |
#define HUF_DTABLE_SIZE | ( | maxTableLog | ) |
#define HUF_MAX_SYMBOL_VALUE 255 |
#define HUF_MAX_TABLELOG 12 /* max configured tableLog (for static allocation); can be modified up to HUF_ABSOLUTEMAX_TABLELOG */ |
#define HUF_STATIC_ASSERT | ( | c | ) |
#define HUFF0_H |
#define HUFF0_STATIC_H |
#define inline /* disable inline */ |
#define IS_RAW BIT0 |
#define IS_RLE BIT1 |
#define KB *(1 <<10) |
#define LLbits 6 |
#define LLFSELog 10 |
#define MaxLL ((1<<LLbits) - 1) |
#define MaxML ((1<<MLbits) - 1) |
#define MaxOff ((1<<Offbits)- 1) |
#define MB *(1 <<20) |
#define MEM_H_MODULE |
#define MEM_STATIC static /* this version may generate warnings for unused static functions; disable the relevant warning */ |
#define MIN_CBLOCK_SIZE (3 /*litCSize*/ + MIN_SEQUENCES_SIZE) |
#define MIN_SEQUENCES_SIZE (2 /*seqNb*/ + 2 /*dumps*/ + 3 /*seqTables*/ + 1 /*bitStream*/) |
#define MINMATCH 4 |
#define MLbits 7 |
#define MLFSELog 10 |
#define Offbits 5 |
#define OffFSELog 9 |
#define REPCODE_STARTVALUE 4 |
#define ZSTD_CCOMMON_H_MODULE |
Streaming decompression, bufferless mode
A ZSTD_DCtx object is required to track streaming operations. Use ZSTD_createDCtx() / ZSTD_freeDCtx() to manage it. A ZSTD_DCtx object can be re-used multiple times. Use ZSTD_resetDCtx() to return to fresh status.
First operation is to retrieve frame parameters, using ZSTD_getFrameParams(). This function doesn't consume its input. It needs enough input data to properly decode the frame header. Objective is to retrieve *params.windowlog, to know minimum amount of memory required during decoding. Result : 0 when successful, it means the ZSTD_parameters structure has been filled. >0 : means there is not enough data into src. Provides the expected size to successfully decode header. errorCode, which can be tested using ZSTD_isError() (For example, if it's not a ZSTD header)
Then, you can optionally insert a dictionary. This operation must mimic the compressor behavior, otherwise decompression will fail or be corrupted.
Then it's possible to start decompression. Use ZSTD_nextSrcSizeToDecompress() and ZSTD_decompressContinue() alternatively. ZSTD_nextSrcSizeToDecompress() tells how much bytes to provide as 'srcSize' to ZSTD_decompressContinue(). ZSTD_decompressContinue() requires this exact amount of bytes, or it will fail. ZSTD_decompressContinue() needs previous data blocks during decompression, up to (1 << windowlog). They should preferably be located contiguously, prior to current block. Alternatively, a round buffer is also possible.
A frame is fully decoded when ZSTD_nextSrcSizeToDecompress() returns zero. Context can then be reset to start a new decompression.
#define ZSTD_CONTENTSIZE_ERROR (0ULL - 2) |
#define ZSTD_frameHeaderSize_max 5 /* define, for static allocation */ |
#define ZSTD_frameHeaderSize_max 5 /* too magical, should come from reference */ |
#define ZSTD_HEAPMODE 1 |
HEAPMODE : Select how default decompression function ZSTD_decompress() will allocate memory, in memory stack (0), or in memory heap (1, requires malloc())
#define ZSTD_MAGICNUMBER 0xFD2FB524 /* v0.4 */ |
#define ZSTD_STATIC_H |
#define ZSTD_WINDOWLOG_ABSOLUTEMIN 11 |
typedef ZBUFFv04_DCtx ZBUFF_DCtx |
typedef ZSTDv04_Dctx ZSTD_DCtx |
enum BIT_DStream_status |
enum blockType_t |
enum ZBUFF_dStage |
Streaming decompression
A ZBUFF_DCtx object is required to track streaming operation. Use ZBUFF_createDCtx() and ZBUFF_freeDCtx() to create/release resources. Use ZBUFF_decompressInit() to start a new decompression operation. ZBUFF_DCtx objects can be reused multiple times.
Use ZBUFF_decompressContinue() repetitively to consume your input. *srcSizePtr and *maxDstSizePtr can be any size. The function will report how many bytes were read or written by modifying *srcSizePtr and *maxDstSizePtr. Note that it may not consume the entire input, in which case it's up to the caller to call again the function with remaining input. The content of dst will be overwritten (up to *maxDstSizePtr) at each function call, so save its content if it matters or change dst . return : a hint to preferred nb of bytes to use as input for next function call (it's only a hint, to improve latency) or 0 when a frame is completely decoded or an error code, which can be tested using ZBUFF_isError().
Hint : recommended buffer sizes (not compulsory) output : 128 KB block size is the internal unit, it ensures it's always possible to write a full block when it's decoded. input : just follow indications from ZBUFF_decompressContinue() to minimize latency. It should always be <= 128 KB + 3 .
Enumerator | |
---|---|
ZBUFFds_init | |
ZBUFFds_readHeader | |
ZBUFFds_loadHeader | |
ZBUFFds_decodeHeader | |
ZBUFFds_read | |
ZBUFFds_load | |
ZBUFFds_flush |
enum ZSTD_dStage |
enum ZSTD_strategy |
MEM_STATIC unsigned BIT_endOfDStream | ( | const BIT_DStream_t * | DStream | ) |
BIT_endOfDStream
MEM_STATIC unsigned BIT_highbit32 | ( | U32 | val | ) |
MEM_STATIC size_t BIT_initDStream | ( | BIT_DStream_t * | bitD, |
const void * | srcBuffer, | ||
size_t | srcSize ) |
BIT_initDStream Initialize a BIT_DStream_t. @bitD : a pointer to an already allocated BIT_DStream_t structure @srcBuffer must point at the beginning of a bitStream @srcSize must be the exact size of the bitStream
MEM_STATIC size_t BIT_lookBits | ( | BIT_DStream_t * | bitD, |
U32 | nbBits ) |
MEM_STATIC size_t BIT_lookBitsFast | ( | BIT_DStream_t * | bitD, |
U32 | nbBits ) |
BIT_lookBitsFast : unsafe version; only works only if nbBits >= 1
MEM_STATIC size_t BIT_readBits | ( | BIT_DStream_t * | bitD, |
U32 | nbBits ) |
MEM_STATIC size_t BIT_readBits | ( | BIT_DStream_t * | bitD, |
unsigned | nbBits ) |
BIT_readBits() : Read (consume) next n bits from local register and update. Pay attention to not read more than nbBits contained into local register.
MEM_STATIC size_t BIT_readBitsFast | ( | BIT_DStream_t * | bitD, |
U32 | nbBits ) |
BIT_readBitsFast : unsafe version; only works only if nbBits >= 1
MEM_STATIC size_t BIT_readBitsFast | ( | BIT_DStream_t * | bitD, |
unsigned | nbBits ) |
BIT_readBitsFast() : unsafe version; only works only if nbBits >= 1
BIT_readBitsFast() : unsafe version; only works if nbBits >= 1
BIT_readBitsFast() : unsafe version; only works if nbBits >= 1
MEM_STATIC BIT_DStream_status BIT_reloadDStream | ( | BIT_DStream_t * | bitD | ) |
MEM_STATIC void BIT_skipBits | ( | BIT_DStream_t * | bitD, |
U32 | nbBits ) |
FORCE_INLINE size_t FSE_decompress_usingDTable_generic | ( | void * | dst, |
size_t | maxDstSize, | ||
const void * | cSrc, | ||
size_t | cSrcSize, | ||
const FSE_DTable * | dt, | ||
const unsigned | fast ) |
MEM_STATIC unsigned MEM_32bits | ( | void | ) |
MEM_STATIC unsigned MEM_64bits | ( | void | ) |
MEM_STATIC unsigned MEM_isLittleEndian | ( | void | ) |
MEM_STATIC U16 MEM_read16 | ( | const void * | memPtr | ) |
MEM_STATIC U32 MEM_read32 | ( | const void * | memPtr | ) |
MEM_STATIC U64 MEM_read64 | ( | const void * | memPtr | ) |
MEM_STATIC U16 MEM_readLE16 | ( | const void * | memPtr | ) |
MEM_STATIC U32 MEM_readLE24 | ( | const void * | memPtr | ) |
MEM_STATIC U32 MEM_readLE32 | ( | const void * | memPtr | ) |
MEM_STATIC U64 MEM_readLE64 | ( | const void * | memPtr | ) |
MEM_STATIC size_t MEM_readLEST | ( | const void * | memPtr | ) |
MEM_STATIC void MEM_write16 | ( | void * | memPtr, |
U16 | value ) |
MEM_STATIC void MEM_writeLE16 | ( | void * | memPtr, |
U16 | val ) |
ZBUFFv04_DCtx * ZBUFFv04_createDCtx | ( | void | ) |
size_t ZBUFFv04_decompressContinue | ( | ZBUFFv04_DCtx * | dctx, |
void * | dst, | ||
size_t * | maxDstSizePtr, | ||
const void * | src, | ||
size_t * | srcSizePtr ) |
size_t ZBUFFv04_decompressInit | ( | ZBUFFv04_DCtx * | dctx | ) |
size_t ZBUFFv04_decompressWithDictionary | ( | ZBUFFv04_DCtx * | dctx, |
const void * | src, | ||
size_t | srcSize ) |
size_t ZBUFFv04_freeDCtx | ( | ZBUFFv04_DCtx * | dctx | ) |
const char * ZBUFFv04_getErrorName | ( | size_t | errorCode | ) |
unsigned ZBUFFv04_isError | ( | size_t | errorCode | ) |
Streaming decompression
A ZBUFF_DCtx object is required to track streaming operation. Use ZBUFF_createDCtx() and ZBUFF_freeDCtx() to create/release resources. Use ZBUFF_decompressInit() to start a new decompression operation. ZBUFF_DCtx objects can be reused multiple times.
Optionally, a reference to a static dictionary can be set, using ZBUFF_decompressWithDictionary() It must be the same content as the one set during compression phase. Dictionary content must remain accessible during the decompression process.
Use ZBUFF_decompressContinue() repetitively to consume your input. *srcSizePtr and *maxDstSizePtr can be any size. The function will report how many bytes were read or written by modifying *srcSizePtr and *maxDstSizePtr. Note that it may not consume the entire input, in which case it's up to the caller to present remaining input again. The content of dst will be overwritten (up to *maxDstSizePtr) at each function call, so save its content if it matters or change dst.
Hint : recommended buffer sizes (not compulsory) : ZBUFF_recommendedDInSize / ZBUFF_recommendedDOutSize output : ZBUFF_recommendedDOutSize==128 KB block size is the internal unit, it ensures it's always possible to write a full block when it's decoded. input : ZBUFF_recommendedDInSize==128Kb+3; just follow indications from ZBUFF_decompressContinue() to minimize latency. It should always be <= 128 KB + 3 .
size_t ZBUFFv04_recommendedDInSize | ( | void | ) |
The below functions provide recommended buffer sizes for Compression or Decompression operations. These sizes are not compulsory, they just tend to offer better latency
size_t ZBUFFv04_recommendedDOutSize | ( | void | ) |
ZSTD_DCtx * ZSTDv04_createDCtx | ( | void | ) |
size_t ZSTDv04_decompress | ( | void * | dst, |
size_t | maxOriginalSize, | ||
const void * | src, | ||
size_t | compressedSize ) |
ZSTDv04_decompress() : decompress ZSTD frames compliant with v0.4.x format compressedSize : is the exact source size maxOriginalSize : is the size of the 'dst' buffer, which must be already allocated. It must be equal or larger than originalSize, otherwise decompression will fail. return : the number of bytes decompressed into destination buffer (originalSize) or an errorCode if it fails (which can be tested using ZSTDv01_isError())
size_t ZSTDv04_decompressContinue | ( | ZSTDv04_Dctx * | dctx, |
void * | dst, | ||
size_t | maxDstSize, | ||
const void * | src, | ||
size_t | srcSize ) |
size_t ZSTDv04_decompressDCtx | ( | ZSTD_DCtx * | dctx, |
void * | dst, | ||
size_t | maxDstSize, | ||
const void * | src, | ||
size_t | srcSize ) |
void ZSTDv04_findFrameSizeInfoLegacy | ( | const void * | src, |
size_t | srcSize, | ||
size_t * | cSize, | ||
unsigned long long * | dBound ) |
ZSTDv04_findFrameSizeInfoLegacy() : get the source length and decompressed bound of a ZSTD frame compliant with v0.4.x format srcSize : The size of the 'src' buffer, at least as large as the frame pointed to by 'src' cSize (output parameter) : the number of bytes that would be read to decompress this frame or an error code if it fails (which can be tested using ZSTDv01_isError()) dBound (output parameter) : an upper-bound for the decompressed size of the data in the frame or ZSTD_CONTENTSIZE_ERROR if an error occurs
note : assumes cSize
and dBound
are not NULL.
size_t ZSTDv04_freeDCtx | ( | ZSTD_DCtx * | dctx | ) |
size_t ZSTDv04_nextSrcSizeToDecompress | ( | ZSTDv04_Dctx * | dctx | ) |
size_t ZSTDv04_resetDCtx | ( | ZSTDv04_Dctx * | dctx | ) |