extzstd 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +28 -14
- data/contrib/zstd/CHANGELOG +114 -56
- data/contrib/zstd/CONTRIBUTING.md +14 -0
- data/contrib/zstd/Makefile +37 -31
- data/contrib/zstd/README.md +6 -0
- data/contrib/zstd/appveyor.yml +4 -1
- data/contrib/zstd/lib/Makefile +231 -134
- data/contrib/zstd/lib/README.md +28 -0
- data/contrib/zstd/lib/common/bitstream.h +24 -15
- data/contrib/zstd/lib/common/compiler.h +116 -3
- data/contrib/zstd/lib/common/cpu.h +0 -2
- data/contrib/zstd/lib/common/debug.h +11 -18
- data/contrib/zstd/lib/common/entropy_common.c +188 -42
- data/contrib/zstd/lib/common/error_private.c +1 -0
- data/contrib/zstd/lib/common/error_private.h +1 -1
- data/contrib/zstd/lib/common/fse.h +38 -11
- data/contrib/zstd/lib/common/fse_decompress.c +123 -16
- data/contrib/zstd/lib/common/huf.h +26 -5
- data/contrib/zstd/lib/common/mem.h +66 -93
- data/contrib/zstd/lib/common/pool.c +22 -16
- data/contrib/zstd/lib/common/pool.h +1 -1
- data/contrib/zstd/lib/common/threading.c +6 -5
- data/contrib/zstd/lib/common/xxhash.c +18 -56
- data/contrib/zstd/lib/common/xxhash.h +1 -1
- data/contrib/zstd/lib/common/zstd_common.c +9 -9
- data/contrib/zstd/lib/common/zstd_deps.h +111 -0
- data/contrib/zstd/lib/common/zstd_errors.h +1 -0
- data/contrib/zstd/lib/common/zstd_internal.h +89 -58
- data/contrib/zstd/lib/compress/fse_compress.c +30 -23
- data/contrib/zstd/lib/compress/hist.c +26 -28
- data/contrib/zstd/lib/compress/hist.h +1 -1
- data/contrib/zstd/lib/compress/huf_compress.c +210 -95
- data/contrib/zstd/lib/compress/zstd_compress.c +1339 -409
- data/contrib/zstd/lib/compress/zstd_compress_internal.h +119 -41
- data/contrib/zstd/lib/compress/zstd_compress_literals.c +4 -4
- data/contrib/zstd/lib/compress/zstd_compress_sequences.c +17 -3
- data/contrib/zstd/lib/compress/zstd_compress_superblock.c +23 -19
- data/contrib/zstd/lib/compress/zstd_cwksp.h +60 -24
- data/contrib/zstd/lib/compress/zstd_double_fast.c +22 -22
- data/contrib/zstd/lib/compress/zstd_fast.c +19 -19
- data/contrib/zstd/lib/compress/zstd_lazy.c +351 -77
- data/contrib/zstd/lib/compress/zstd_lazy.h +20 -0
- data/contrib/zstd/lib/compress/zstd_ldm.c +59 -18
- data/contrib/zstd/lib/compress/zstd_ldm.h +6 -0
- data/contrib/zstd/lib/compress/zstd_opt.c +190 -45
- data/contrib/zstd/lib/compress/zstdmt_compress.c +74 -406
- data/contrib/zstd/lib/compress/zstdmt_compress.h +26 -108
- data/contrib/zstd/lib/decompress/huf_decompress.c +302 -200
- data/contrib/zstd/lib/decompress/zstd_ddict.c +8 -8
- data/contrib/zstd/lib/decompress/zstd_ddict.h +1 -1
- data/contrib/zstd/lib/decompress/zstd_decompress.c +125 -80
- data/contrib/zstd/lib/decompress/zstd_decompress_block.c +145 -37
- data/contrib/zstd/lib/decompress/zstd_decompress_block.h +5 -2
- data/contrib/zstd/lib/decompress/zstd_decompress_internal.h +11 -10
- data/contrib/zstd/lib/dictBuilder/cover.c +29 -20
- data/contrib/zstd/lib/dictBuilder/cover.h +1 -1
- data/contrib/zstd/lib/dictBuilder/fastcover.c +20 -19
- data/contrib/zstd/lib/dictBuilder/zdict.c +15 -16
- data/contrib/zstd/lib/dictBuilder/zdict.h +1 -1
- data/contrib/zstd/lib/legacy/zstd_v01.c +5 -1
- data/contrib/zstd/lib/legacy/zstd_v02.c +5 -1
- data/contrib/zstd/lib/legacy/zstd_v03.c +5 -1
- data/contrib/zstd/lib/legacy/zstd_v04.c +6 -2
- data/contrib/zstd/lib/legacy/zstd_v05.c +5 -1
- data/contrib/zstd/lib/legacy/zstd_v06.c +5 -1
- data/contrib/zstd/lib/legacy/zstd_v07.c +5 -1
- data/contrib/zstd/lib/libzstd.pc.in +3 -3
- data/contrib/zstd/lib/zstd.h +348 -47
- data/ext/extzstd.c +6 -0
- data/ext/extzstd.h +6 -0
- data/gemstub.rb +3 -21
- data/lib/extzstd.rb +0 -2
- data/lib/extzstd/version.rb +6 -1
- data/test/test_basic.rb +0 -5
- metadata +5 -4
@@ -80,7 +80,11 @@ extern "C" {
|
|
80
80
|
* Basic Types
|
81
81
|
*****************************************************************/
|
82
82
|
#if defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */)
|
83
|
-
#
|
83
|
+
# if defined(_AIX)
|
84
|
+
# include <inttypes.h>
|
85
|
+
# else
|
86
|
+
# include <stdint.h> /* intptr_t */
|
87
|
+
# endif
|
84
88
|
typedef uint8_t BYTE;
|
85
89
|
typedef uint16_t U16;
|
86
90
|
typedef int16_t S16;
|
@@ -82,7 +82,11 @@ extern "C" {
|
|
82
82
|
* Basic Types
|
83
83
|
*****************************************************************/
|
84
84
|
#if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) )
|
85
|
-
#
|
85
|
+
# if defined(_AIX)
|
86
|
+
# include <inttypes.h>
|
87
|
+
# else
|
88
|
+
# include <stdint.h> /* intptr_t */
|
89
|
+
# endif
|
86
90
|
typedef uint8_t BYTE;
|
87
91
|
typedef uint16_t U16;
|
88
92
|
typedef int16_t S16;
|
@@ -242,7 +242,11 @@ extern "C" {
|
|
242
242
|
* Basic Types
|
243
243
|
*****************************************************************/
|
244
244
|
#if !defined (__VMS) && (defined (__cplusplus) || (defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) /* C99 */) )
|
245
|
-
#
|
245
|
+
# if defined(_AIX)
|
246
|
+
# include <inttypes.h>
|
247
|
+
# else
|
248
|
+
# include <stdint.h> /* intptr_t */
|
249
|
+
# endif
|
246
250
|
typedef uint8_t BYTE;
|
247
251
|
typedef uint16_t U16;
|
248
252
|
typedef int16_t S16;
|
@@ -3,9 +3,9 @@
|
|
3
3
|
# BSD 2-Clause License (http://www.opensource.org/licenses/bsd-license.php)
|
4
4
|
|
5
5
|
prefix=@PREFIX@
|
6
|
-
exec_prefix
|
7
|
-
includedir
|
8
|
-
libdir
|
6
|
+
exec_prefix=@EXEC_PREFIX@
|
7
|
+
includedir=@INCLUDEDIR@
|
8
|
+
libdir=@LIBDIR@
|
9
9
|
|
10
10
|
Name: zstd
|
11
11
|
Description: fast lossless compression algorithm library
|
data/contrib/zstd/lib/zstd.h
CHANGED
@@ -72,16 +72,21 @@ extern "C" {
|
|
72
72
|
/*------ Version ------*/
|
73
73
|
#define ZSTD_VERSION_MAJOR 1
|
74
74
|
#define ZSTD_VERSION_MINOR 4
|
75
|
-
#define ZSTD_VERSION_RELEASE
|
76
|
-
|
75
|
+
#define ZSTD_VERSION_RELEASE 7
|
77
76
|
#define ZSTD_VERSION_NUMBER (ZSTD_VERSION_MAJOR *100*100 + ZSTD_VERSION_MINOR *100 + ZSTD_VERSION_RELEASE)
|
78
|
-
|
77
|
+
|
78
|
+
/*! ZSTD_versionNumber() :
|
79
|
+
* Return runtime library version, the value is (MAJOR*100*100 + MINOR*100 + RELEASE). */
|
80
|
+
ZSTDLIB_API unsigned ZSTD_versionNumber(void);
|
79
81
|
|
80
82
|
#define ZSTD_LIB_VERSION ZSTD_VERSION_MAJOR.ZSTD_VERSION_MINOR.ZSTD_VERSION_RELEASE
|
81
83
|
#define ZSTD_QUOTE(str) #str
|
82
84
|
#define ZSTD_EXPAND_AND_QUOTE(str) ZSTD_QUOTE(str)
|
83
85
|
#define ZSTD_VERSION_STRING ZSTD_EXPAND_AND_QUOTE(ZSTD_LIB_VERSION)
|
84
|
-
|
86
|
+
|
87
|
+
/*! ZSTD_versionString() :
|
88
|
+
* Return runtime library version, like "1.4.5". Requires v1.3.0+. */
|
89
|
+
ZSTDLIB_API const char* ZSTD_versionString(void);
|
85
90
|
|
86
91
|
/* *************************************
|
87
92
|
* Default constant
|
@@ -334,7 +339,9 @@ typedef enum {
|
|
334
339
|
* for large inputs, by finding large matches at long distance.
|
335
340
|
* It increases memory usage and window size.
|
336
341
|
* Note: enabling this parameter increases default ZSTD_c_windowLog to 128 MB
|
337
|
-
* except when expressly set to a different value.
|
342
|
+
* except when expressly set to a different value.
|
343
|
+
* Note: will be enabled by default if ZSTD_c_windowLog >= 128 MB and
|
344
|
+
* compression strategy >= ZSTD_btopt (== compression level 16+) */
|
338
345
|
ZSTD_c_ldmHashLog=161, /* Size of the table for long distance matching, as a power of 2.
|
339
346
|
* Larger values increase memory usage and compression ratio,
|
340
347
|
* but decrease compression speed.
|
@@ -365,16 +372,20 @@ typedef enum {
|
|
365
372
|
ZSTD_c_dictIDFlag=202, /* When applicable, dictionary's ID is written into frame header (default:1) */
|
366
373
|
|
367
374
|
/* multi-threading parameters */
|
368
|
-
/* These parameters are only
|
369
|
-
*
|
375
|
+
/* These parameters are only active if multi-threading is enabled (compiled with build macro ZSTD_MULTITHREAD).
|
376
|
+
* Otherwise, trying to set any other value than default (0) will be a no-op and return an error.
|
377
|
+
* In a situation where it's unknown if the linked library supports multi-threading or not,
|
378
|
+
* setting ZSTD_c_nbWorkers to any value >= 1 and consulting the return value provides a quick way to check this property.
|
379
|
+
*/
|
370
380
|
ZSTD_c_nbWorkers=400, /* Select how many threads will be spawned to compress in parallel.
|
371
|
-
* When nbWorkers >= 1, triggers asynchronous mode when
|
381
|
+
* When nbWorkers >= 1, triggers asynchronous mode when invoking ZSTD_compressStream*() :
|
372
382
|
* ZSTD_compressStream*() consumes input and flush output if possible, but immediately gives back control to caller,
|
373
|
-
* while compression
|
383
|
+
* while compression is performed in parallel, within worker thread(s).
|
374
384
|
* (note : a strong exception to this rule is when first invocation of ZSTD_compressStream2() sets ZSTD_e_end :
|
375
385
|
* in which case, ZSTD_compressStream2() delegates to ZSTD_compress2(), which is always a blocking call).
|
376
386
|
* More workers improve speed, but also increase memory usage.
|
377
|
-
* Default value is `0`, aka "single-threaded mode" : no worker is spawned,
|
387
|
+
* Default value is `0`, aka "single-threaded mode" : no worker is spawned,
|
388
|
+
* compression is performed inside Caller's thread, and all invocations are blocking */
|
378
389
|
ZSTD_c_jobSize=401, /* Size of a compression job. This value is enforced only when nbWorkers >= 1.
|
379
390
|
* Each compression job is completed in parallel, so this value can indirectly impact the nb of active threads.
|
380
391
|
* 0 means default, which is dynamically determined based on compression parameters.
|
@@ -403,6 +414,11 @@ typedef enum {
|
|
403
414
|
* ZSTD_c_literalCompressionMode
|
404
415
|
* ZSTD_c_targetCBlockSize
|
405
416
|
* ZSTD_c_srcSizeHint
|
417
|
+
* ZSTD_c_enableDedicatedDictSearch
|
418
|
+
* ZSTD_c_stableInBuffer
|
419
|
+
* ZSTD_c_stableOutBuffer
|
420
|
+
* ZSTD_c_blockDelimiters
|
421
|
+
* ZSTD_c_validateSequences
|
406
422
|
* Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them.
|
407
423
|
* note : never ever use experimentalParam? names directly;
|
408
424
|
* also, the enums values themselves are unstable and can still change.
|
@@ -413,7 +429,12 @@ typedef enum {
|
|
413
429
|
ZSTD_c_experimentalParam4=1001,
|
414
430
|
ZSTD_c_experimentalParam5=1002,
|
415
431
|
ZSTD_c_experimentalParam6=1003,
|
416
|
-
ZSTD_c_experimentalParam7=1004
|
432
|
+
ZSTD_c_experimentalParam7=1004,
|
433
|
+
ZSTD_c_experimentalParam8=1005,
|
434
|
+
ZSTD_c_experimentalParam9=1006,
|
435
|
+
ZSTD_c_experimentalParam10=1007,
|
436
|
+
ZSTD_c_experimentalParam11=1008,
|
437
|
+
ZSTD_c_experimentalParam12=1009
|
417
438
|
} ZSTD_cParameter;
|
418
439
|
|
419
440
|
typedef struct {
|
@@ -524,11 +545,13 @@ typedef enum {
|
|
524
545
|
* At the time of this writing, they include :
|
525
546
|
* ZSTD_d_format
|
526
547
|
* ZSTD_d_stableOutBuffer
|
548
|
+
* ZSTD_d_forceIgnoreChecksum
|
527
549
|
* Because they are not stable, it's necessary to define ZSTD_STATIC_LINKING_ONLY to access them.
|
528
550
|
* note : never ever use experimentalParam? names directly
|
529
551
|
*/
|
530
552
|
ZSTD_d_experimentalParam1=1000,
|
531
|
-
ZSTD_d_experimentalParam2=1001
|
553
|
+
ZSTD_d_experimentalParam2=1001,
|
554
|
+
ZSTD_d_experimentalParam3=1002
|
532
555
|
|
533
556
|
} ZSTD_dParameter;
|
534
557
|
|
@@ -664,8 +687,9 @@ typedef enum {
|
|
664
687
|
* - Compression parameters cannot be changed once compression is started (save a list of exceptions in multi-threading mode)
|
665
688
|
* - output->pos must be <= dstCapacity, input->pos must be <= srcSize
|
666
689
|
* - output->pos and input->pos will be updated. They are guaranteed to remain below their respective limit.
|
690
|
+
* - endOp must be a valid directive
|
667
691
|
* - When nbWorkers==0 (default), function is blocking : it completes its job before returning to caller.
|
668
|
-
* - When nbWorkers>=1, function is non-blocking : it
|
692
|
+
* - When nbWorkers>=1, function is non-blocking : it copies a portion of input, distributes jobs to internal worker threads, flush to output whatever is available,
|
669
693
|
* and then immediately returns, just indicating that there is some data remaining to be flushed.
|
670
694
|
* The function nonetheless guarantees forward progress : it will return only after it reads or write at least 1+ byte.
|
671
695
|
* - Exception : if the first call requests a ZSTD_e_end directive and provides enough dstCapacity, the function delegates to ZSTD_compress2() which is always blocking.
|
@@ -1100,21 +1124,40 @@ ZSTDLIB_API size_t ZSTD_sizeof_DDict(const ZSTD_DDict* ddict);
|
|
1100
1124
|
typedef struct ZSTD_CCtx_params_s ZSTD_CCtx_params;
|
1101
1125
|
|
1102
1126
|
typedef struct {
|
1103
|
-
unsigned int
|
1104
|
-
|
1105
|
-
|
1106
|
-
|
1107
|
-
|
1108
|
-
|
1109
|
-
|
1110
|
-
|
1111
|
-
|
1112
|
-
|
1113
|
-
|
1114
|
-
|
1115
|
-
|
1116
|
-
|
1117
|
-
|
1127
|
+
unsigned int offset; /* The offset of the match. (NOT the same as the offset code)
|
1128
|
+
* If offset == 0 and matchLength == 0, this sequence represents the last
|
1129
|
+
* literals in the block of litLength size.
|
1130
|
+
*/
|
1131
|
+
|
1132
|
+
unsigned int litLength; /* Literal length of the sequence. */
|
1133
|
+
unsigned int matchLength; /* Match length of the sequence. */
|
1134
|
+
|
1135
|
+
/* Note: Users of this API may provide a sequence with matchLength == litLength == offset == 0.
|
1136
|
+
* In this case, we will treat the sequence as a marker for a block boundary.
|
1137
|
+
*/
|
1138
|
+
|
1139
|
+
unsigned int rep; /* Represents which repeat offset is represented by the field 'offset'.
|
1140
|
+
* Ranges from [0, 3].
|
1141
|
+
*
|
1142
|
+
* Repeat offsets are essentially previous offsets from previous sequences sorted in
|
1143
|
+
* recency order. For more detail, see doc/zstd_compression_format.md
|
1144
|
+
*
|
1145
|
+
* If rep == 0, then 'offset' does not contain a repeat offset.
|
1146
|
+
* If rep > 0:
|
1147
|
+
* If litLength != 0:
|
1148
|
+
* rep == 1 --> offset == repeat_offset_1
|
1149
|
+
* rep == 2 --> offset == repeat_offset_2
|
1150
|
+
* rep == 3 --> offset == repeat_offset_3
|
1151
|
+
* If litLength == 0:
|
1152
|
+
* rep == 1 --> offset == repeat_offset_2
|
1153
|
+
* rep == 2 --> offset == repeat_offset_3
|
1154
|
+
* rep == 3 --> offset == repeat_offset_1 - 1
|
1155
|
+
*
|
1156
|
+
* Note: This field is optional. ZSTD_generateSequences() will calculate the value of
|
1157
|
+
* 'rep', but repeat offsets do not necessarily need to be calculated from an external
|
1158
|
+
* sequence provider's perspective. For example, ZSTD_compressSequences() does not
|
1159
|
+
* use this 'rep' field at all (as of now).
|
1160
|
+
*/
|
1118
1161
|
} ZSTD_Sequence;
|
1119
1162
|
|
1120
1163
|
typedef struct {
|
@@ -1156,6 +1199,12 @@ typedef enum {
|
|
1156
1199
|
* Decoder cannot recognise automatically this format, requiring this instruction. */
|
1157
1200
|
} ZSTD_format_e;
|
1158
1201
|
|
1202
|
+
typedef enum {
|
1203
|
+
/* Note: this enum controls ZSTD_d_forceIgnoreChecksum */
|
1204
|
+
ZSTD_d_validateChecksum = 0,
|
1205
|
+
ZSTD_d_ignoreChecksum = 1
|
1206
|
+
} ZSTD_forceIgnoreChecksum_e;
|
1207
|
+
|
1159
1208
|
typedef enum {
|
1160
1209
|
/* Note: this enum and the behavior it controls are effectively internal
|
1161
1210
|
* implementation details of the compressor. They are expected to continue
|
@@ -1253,14 +1302,74 @@ ZSTDLIB_API unsigned long long ZSTD_decompressBound(const void* src, size_t srcS
|
|
1253
1302
|
* or an error code (if srcSize is too small) */
|
1254
1303
|
ZSTDLIB_API size_t ZSTD_frameHeaderSize(const void* src, size_t srcSize);
|
1255
1304
|
|
1256
|
-
|
1257
|
-
|
1305
|
+
typedef enum {
|
1306
|
+
ZSTD_sf_noBlockDelimiters = 0, /* Representation of ZSTD_Sequence has no block delimiters, sequences only */
|
1307
|
+
ZSTD_sf_explicitBlockDelimiters = 1 /* Representation of ZSTD_Sequence contains explicit block delimiters */
|
1308
|
+
} ZSTD_sequenceFormat_e;
|
1309
|
+
|
1310
|
+
/*! ZSTD_generateSequences() :
|
1311
|
+
* Generate sequences using ZSTD_compress2, given a source buffer.
|
1312
|
+
*
|
1313
|
+
* Each block will end with a dummy sequence
|
1314
|
+
* with offset == 0, matchLength == 0, and litLength == length of last literals.
|
1315
|
+
* litLength may be == 0, and if so, then the sequence of (of: 0 ml: 0 ll: 0)
|
1316
|
+
* simply acts as a block delimiter.
|
1317
|
+
*
|
1258
1318
|
* zc can be used to insert custom compression params.
|
1259
1319
|
* This function invokes ZSTD_compress2
|
1260
|
-
*
|
1320
|
+
*
|
1321
|
+
* The output of this function can be fed into ZSTD_compressSequences() with CCtx
|
1322
|
+
* setting of ZSTD_c_blockDelimiters as ZSTD_sf_explicitBlockDelimiters
|
1323
|
+
* @return : number of sequences generated
|
1324
|
+
*/
|
1325
|
+
|
1326
|
+
ZSTDLIB_API size_t ZSTD_generateSequences(ZSTD_CCtx* zc, ZSTD_Sequence* outSeqs,
|
1327
|
+
size_t outSeqsSize, const void* src, size_t srcSize);
|
1328
|
+
|
1329
|
+
/*! ZSTD_mergeBlockDelimiters() :
|
1330
|
+
* Given an array of ZSTD_Sequence, remove all sequences that represent block delimiters/last literals
|
1331
|
+
* by merging them into into the literals of the next sequence.
|
1332
|
+
*
|
1333
|
+
* As such, the final generated result has no explicit representation of block boundaries,
|
1334
|
+
* and the final last literals segment is not represented in the sequences.
|
1335
|
+
*
|
1336
|
+
* The output of this function can be fed into ZSTD_compressSequences() with CCtx
|
1337
|
+
* setting of ZSTD_c_blockDelimiters as ZSTD_sf_noBlockDelimiters
|
1338
|
+
* @return : number of sequences left after merging
|
1339
|
+
*/
|
1340
|
+
ZSTDLIB_API size_t ZSTD_mergeBlockDelimiters(ZSTD_Sequence* sequences, size_t seqsSize);
|
1341
|
+
|
1342
|
+
/*! ZSTD_compressSequences() :
|
1343
|
+
* Compress an array of ZSTD_Sequence, generated from the original source buffer, into dst.
|
1344
|
+
* If a dictionary is included, then the cctx should reference the dict. (see: ZSTD_CCtx_refCDict(), ZSTD_CCtx_loadDictionary(), etc.)
|
1345
|
+
* The entire source is compressed into a single frame.
|
1346
|
+
*
|
1347
|
+
* The compression behavior changes based on cctx params. In particular:
|
1348
|
+
* If ZSTD_c_blockDelimiters == ZSTD_sf_noBlockDelimiters, the array of ZSTD_Sequence is expected to contain
|
1349
|
+
* no block delimiters (defined in ZSTD_Sequence). Block boundaries are roughly determined based on
|
1350
|
+
* the block size derived from the cctx, and sequences may be split. This is the default setting.
|
1351
|
+
*
|
1352
|
+
* If ZSTD_c_blockDelimiters == ZSTD_sf_explicitBlockDelimiters, the array of ZSTD_Sequence is expected to contain
|
1353
|
+
* block delimiters (defined in ZSTD_Sequence). Behavior is undefined if no block delimiters are provided.
|
1354
|
+
*
|
1355
|
+
* If ZSTD_c_validateSequences == 0, this function will blindly accept the sequences provided. Invalid sequences cause undefined
|
1356
|
+
* behavior. If ZSTD_c_validateSequences == 1, then if sequence is invalid (see doc/zstd_compression_format.md for
|
1357
|
+
* specifics regarding offset/matchlength requirements) then the function will bail out and return an error.
|
1358
|
+
*
|
1359
|
+
* In addition to the two adjustable experimental params, there are other important cctx params.
|
1360
|
+
* - ZSTD_c_minMatch MUST be set as less than or equal to the smallest match generated by the match finder. It has a minimum value of ZSTD_MINMATCH_MIN.
|
1361
|
+
* - ZSTD_c_compressionLevel accordingly adjusts the strength of the entropy coder, as it would in typical compression.
|
1362
|
+
* - ZSTD_c_windowLog affects offset validation: this function will return an error at higher debug levels if a provided offset
|
1363
|
+
* is larger than what the spec allows for a given window log and dictionary (if present). See: doc/zstd_compression_format.md
|
1364
|
+
*
|
1365
|
+
* Note: Repcodes are, as of now, always re-calculated within this function, so ZSTD_Sequence::rep is unused.
|
1366
|
+
* Note 2: Once we integrate ability to ingest repcodes, the explicit block delims mode must respect those repcodes exactly,
|
1367
|
+
* and cannot emit an RLE block that disagrees with the repcode history
|
1368
|
+
* @return : final compressed size or a ZSTD error.
|
1261
1369
|
*/
|
1262
|
-
ZSTDLIB_API size_t
|
1263
|
-
|
1370
|
+
ZSTDLIB_API size_t ZSTD_compressSequences(ZSTD_CCtx* const cctx, void* dst, size_t dstSize,
|
1371
|
+
const ZSTD_Sequence* inSeqs, size_t inSeqsSize,
|
1372
|
+
const void* src, size_t srcSize);
|
1264
1373
|
|
1265
1374
|
|
1266
1375
|
/***************************************
|
@@ -1372,7 +1481,11 @@ ZSTDLIB_API const ZSTD_DDict* ZSTD_initStaticDDict(
|
|
1372
1481
|
typedef void* (*ZSTD_allocFunction) (void* opaque, size_t size);
|
1373
1482
|
typedef void (*ZSTD_freeFunction) (void* opaque, void* address);
|
1374
1483
|
typedef struct { ZSTD_allocFunction customAlloc; ZSTD_freeFunction customFree; void* opaque; } ZSTD_customMem;
|
1375
|
-
static
|
1484
|
+
static
|
1485
|
+
#ifdef __GNUC__
|
1486
|
+
__attribute__((__unused__))
|
1487
|
+
#endif
|
1488
|
+
ZSTD_customMem const ZSTD_defaultCMem = { NULL, NULL, NULL }; /**< this constant defers to stdlib's functions */
|
1376
1489
|
|
1377
1490
|
ZSTDLIB_API ZSTD_CCtx* ZSTD_createCCtx_advanced(ZSTD_customMem customMem);
|
1378
1491
|
ZSTDLIB_API ZSTD_CStream* ZSTD_createCStream_advanced(ZSTD_customMem customMem);
|
@@ -1385,13 +1498,36 @@ ZSTDLIB_API ZSTD_CDict* ZSTD_createCDict_advanced(const void* dict, size_t dictS
|
|
1385
1498
|
ZSTD_compressionParameters cParams,
|
1386
1499
|
ZSTD_customMem customMem);
|
1387
1500
|
|
1501
|
+
/* ! Thread pool :
|
1502
|
+
* These prototypes make it possible to share a thread pool among multiple compression contexts.
|
1503
|
+
* This can limit resources for applications with multiple threads where each one uses
|
1504
|
+
* a threaded compression mode (via ZSTD_c_nbWorkers parameter).
|
1505
|
+
* ZSTD_createThreadPool creates a new thread pool with a given number of threads.
|
1506
|
+
* Note that the lifetime of such pool must exist while being used.
|
1507
|
+
* ZSTD_CCtx_refThreadPool assigns a thread pool to a context (use NULL argument value
|
1508
|
+
* to use an internal thread pool).
|
1509
|
+
* ZSTD_freeThreadPool frees a thread pool.
|
1510
|
+
*/
|
1511
|
+
typedef struct POOL_ctx_s ZSTD_threadPool;
|
1512
|
+
ZSTDLIB_API ZSTD_threadPool* ZSTD_createThreadPool(size_t numThreads);
|
1513
|
+
ZSTDLIB_API void ZSTD_freeThreadPool (ZSTD_threadPool* pool);
|
1514
|
+
ZSTDLIB_API size_t ZSTD_CCtx_refThreadPool(ZSTD_CCtx* cctx, ZSTD_threadPool* pool);
|
1515
|
+
|
1516
|
+
/*
|
1517
|
+
* This API is temporary and is expected to change or disappear in the future!
|
1518
|
+
*/
|
1519
|
+
ZSTDLIB_API ZSTD_CDict* ZSTD_createCDict_advanced2(
|
1520
|
+
const void* dict, size_t dictSize,
|
1521
|
+
ZSTD_dictLoadMethod_e dictLoadMethod,
|
1522
|
+
ZSTD_dictContentType_e dictContentType,
|
1523
|
+
const ZSTD_CCtx_params* cctxParams,
|
1524
|
+
ZSTD_customMem customMem);
|
1525
|
+
|
1388
1526
|
ZSTDLIB_API ZSTD_DDict* ZSTD_createDDict_advanced(const void* dict, size_t dictSize,
|
1389
1527
|
ZSTD_dictLoadMethod_e dictLoadMethod,
|
1390
1528
|
ZSTD_dictContentType_e dictContentType,
|
1391
1529
|
ZSTD_customMem customMem);
|
1392
1530
|
|
1393
|
-
|
1394
|
-
|
1395
1531
|
/***************************************
|
1396
1532
|
* Advanced compression functions
|
1397
1533
|
***************************************/
|
@@ -1404,6 +1540,12 @@ ZSTDLIB_API ZSTD_DDict* ZSTD_createDDict_advanced(const void* dict, size_t dictS
|
|
1404
1540
|
* note: equivalent to ZSTD_createCDict_advanced(), with dictLoadMethod==ZSTD_dlm_byRef */
|
1405
1541
|
ZSTDLIB_API ZSTD_CDict* ZSTD_createCDict_byReference(const void* dictBuffer, size_t dictSize, int compressionLevel);
|
1406
1542
|
|
1543
|
+
/*! ZSTD_getDictID_fromCDict() :
|
1544
|
+
* Provides the dictID of the dictionary loaded into `cdict`.
|
1545
|
+
* If @return == 0, the dictionary is not conformant to Zstandard specification, or empty.
|
1546
|
+
* Non-conformant dictionaries can still be loaded, but as content-only dictionaries. */
|
1547
|
+
ZSTDLIB_API unsigned ZSTD_getDictID_fromCDict(const ZSTD_CDict* cdict);
|
1548
|
+
|
1407
1549
|
/*! ZSTD_getCParams() :
|
1408
1550
|
* @return ZSTD_compressionParameters structure for a selected compression level and estimated srcSize.
|
1409
1551
|
* `estimatedSrcSize` value is optional, select 0 if not known */
|
@@ -1518,6 +1660,143 @@ ZSTDLIB_API size_t ZSTD_CCtx_refPrefix_advanced(ZSTD_CCtx* cctx, const void* pre
|
|
1518
1660
|
* but compression ratio may regress significantly if guess considerably underestimates */
|
1519
1661
|
#define ZSTD_c_srcSizeHint ZSTD_c_experimentalParam7
|
1520
1662
|
|
1663
|
+
/* Controls whether the new and experimental "dedicated dictionary search
|
1664
|
+
* structure" can be used. This feature is still rough around the edges, be
|
1665
|
+
* prepared for surprising behavior!
|
1666
|
+
*
|
1667
|
+
* How to use it:
|
1668
|
+
*
|
1669
|
+
* When using a CDict, whether to use this feature or not is controlled at
|
1670
|
+
* CDict creation, and it must be set in a CCtxParams set passed into that
|
1671
|
+
* construction (via ZSTD_createCDict_advanced2()). A compression will then
|
1672
|
+
* use the feature or not based on how the CDict was constructed; the value of
|
1673
|
+
* this param, set in the CCtx, will have no effect.
|
1674
|
+
*
|
1675
|
+
* However, when a dictionary buffer is passed into a CCtx, such as via
|
1676
|
+
* ZSTD_CCtx_loadDictionary(), this param can be set on the CCtx to control
|
1677
|
+
* whether the CDict that is created internally can use the feature or not.
|
1678
|
+
*
|
1679
|
+
* What it does:
|
1680
|
+
*
|
1681
|
+
* Normally, the internal data structures of the CDict are analogous to what
|
1682
|
+
* would be stored in a CCtx after compressing the contents of a dictionary.
|
1683
|
+
* To an approximation, a compression using a dictionary can then use those
|
1684
|
+
* data structures to simply continue what is effectively a streaming
|
1685
|
+
* compression where the simulated compression of the dictionary left off.
|
1686
|
+
* Which is to say, the search structures in the CDict are normally the same
|
1687
|
+
* format as in the CCtx.
|
1688
|
+
*
|
1689
|
+
* It is possible to do better, since the CDict is not like a CCtx: the search
|
1690
|
+
* structures are written once during CDict creation, and then are only read
|
1691
|
+
* after that, while the search structures in the CCtx are both read and
|
1692
|
+
* written as the compression goes along. This means we can choose a search
|
1693
|
+
* structure for the dictionary that is read-optimized.
|
1694
|
+
*
|
1695
|
+
* This feature enables the use of that different structure.
|
1696
|
+
*
|
1697
|
+
* Note that some of the members of the ZSTD_compressionParameters struct have
|
1698
|
+
* different semantics and constraints in the dedicated search structure. It is
|
1699
|
+
* highly recommended that you simply set a compression level in the CCtxParams
|
1700
|
+
* you pass into the CDict creation call, and avoid messing with the cParams
|
1701
|
+
* directly.
|
1702
|
+
*
|
1703
|
+
* Effects:
|
1704
|
+
*
|
1705
|
+
* This will only have any effect when the selected ZSTD_strategy
|
1706
|
+
* implementation supports this feature. Currently, that's limited to
|
1707
|
+
* ZSTD_greedy, ZSTD_lazy, and ZSTD_lazy2.
|
1708
|
+
*
|
1709
|
+
* Note that this means that the CDict tables can no longer be copied into the
|
1710
|
+
* CCtx, so the dict attachment mode ZSTD_dictForceCopy will no longer be
|
1711
|
+
* useable. The dictionary can only be attached or reloaded.
|
1712
|
+
*
|
1713
|
+
* In general, you should expect compression to be faster--sometimes very much
|
1714
|
+
* so--and CDict creation to be slightly slower. Eventually, we will probably
|
1715
|
+
* make this mode the default.
|
1716
|
+
*/
|
1717
|
+
#define ZSTD_c_enableDedicatedDictSearch ZSTD_c_experimentalParam8
|
1718
|
+
|
1719
|
+
/* ZSTD_c_stableInBuffer
|
1720
|
+
* Experimental parameter.
|
1721
|
+
* Default is 0 == disabled. Set to 1 to enable.
|
1722
|
+
*
|
1723
|
+
* Tells the compressor that the ZSTD_inBuffer will ALWAYS be the same
|
1724
|
+
* between calls, except for the modifications that zstd makes to pos (the
|
1725
|
+
* caller must not modify pos). This is checked by the compressor, and
|
1726
|
+
* compression will fail if it ever changes. This means the only flush
|
1727
|
+
* mode that makes sense is ZSTD_e_end, so zstd will error if ZSTD_e_end
|
1728
|
+
* is not used. The data in the ZSTD_inBuffer in the range [src, src + pos)
|
1729
|
+
* MUST not be modified during compression or you will get data corruption.
|
1730
|
+
*
|
1731
|
+
* When this flag is enabled zstd won't allocate an input window buffer,
|
1732
|
+
* because the user guarantees it can reference the ZSTD_inBuffer until
|
1733
|
+
* the frame is complete. But, it will still allocate an output buffer
|
1734
|
+
* large enough to fit a block (see ZSTD_c_stableOutBuffer). This will also
|
1735
|
+
* avoid the memcpy() from the input buffer to the input window buffer.
|
1736
|
+
*
|
1737
|
+
* NOTE: ZSTD_compressStream2() will error if ZSTD_e_end is not used.
|
1738
|
+
* That means this flag cannot be used with ZSTD_compressStream().
|
1739
|
+
*
|
1740
|
+
* NOTE: So long as the ZSTD_inBuffer always points to valid memory, using
|
1741
|
+
* this flag is ALWAYS memory safe, and will never access out-of-bounds
|
1742
|
+
* memory. However, compression WILL fail if you violate the preconditions.
|
1743
|
+
*
|
1744
|
+
* WARNING: The data in the ZSTD_inBuffer in the range [dst, dst + pos) MUST
|
1745
|
+
* not be modified during compression or you will get data corruption. This
|
1746
|
+
* is because zstd needs to reference data in the ZSTD_inBuffer to find
|
1747
|
+
* matches. Normally zstd maintains its own window buffer for this purpose,
|
1748
|
+
* but passing this flag tells zstd to use the user provided buffer.
|
1749
|
+
*/
|
1750
|
+
#define ZSTD_c_stableInBuffer ZSTD_c_experimentalParam9
|
1751
|
+
|
1752
|
+
/* ZSTD_c_stableOutBuffer
|
1753
|
+
* Experimental parameter.
|
1754
|
+
* Default is 0 == disabled. Set to 1 to enable.
|
1755
|
+
*
|
1756
|
+
* Tells he compressor that the ZSTD_outBuffer will not be resized between
|
1757
|
+
* calls. Specifically: (out.size - out.pos) will never grow. This gives the
|
1758
|
+
* compressor the freedom to say: If the compressed data doesn't fit in the
|
1759
|
+
* output buffer then return ZSTD_error_dstSizeTooSmall. This allows us to
|
1760
|
+
* always decompress directly into the output buffer, instead of decompressing
|
1761
|
+
* into an internal buffer and copying to the output buffer.
|
1762
|
+
*
|
1763
|
+
* When this flag is enabled zstd won't allocate an output buffer, because
|
1764
|
+
* it can write directly to the ZSTD_outBuffer. It will still allocate the
|
1765
|
+
* input window buffer (see ZSTD_c_stableInBuffer).
|
1766
|
+
*
|
1767
|
+
* Zstd will check that (out.size - out.pos) never grows and return an error
|
1768
|
+
* if it does. While not strictly necessary, this should prevent surprises.
|
1769
|
+
*/
|
1770
|
+
#define ZSTD_c_stableOutBuffer ZSTD_c_experimentalParam10
|
1771
|
+
|
1772
|
+
/* ZSTD_c_blockDelimiters
|
1773
|
+
* Default is 0 == ZSTD_sf_noBlockDelimiters.
|
1774
|
+
*
|
1775
|
+
* For use with sequence compression API: ZSTD_compressSequences().
|
1776
|
+
*
|
1777
|
+
* Designates whether or not the given array of ZSTD_Sequence contains block delimiters
|
1778
|
+
* and last literals, which are defined as sequences with offset == 0 and matchLength == 0.
|
1779
|
+
* See the definition of ZSTD_Sequence for more specifics.
|
1780
|
+
*/
|
1781
|
+
#define ZSTD_c_blockDelimiters ZSTD_c_experimentalParam11
|
1782
|
+
|
1783
|
+
/* ZSTD_c_validateSequences
|
1784
|
+
* Default is 0 == disabled. Set to 1 to enable sequence validation.
|
1785
|
+
*
|
1786
|
+
* For use with sequence compression API: ZSTD_compressSequences().
|
1787
|
+
* Designates whether or not we validate sequences provided to ZSTD_compressSequences()
|
1788
|
+
* during function execution.
|
1789
|
+
*
|
1790
|
+
* Without validation, providing a sequence that does not conform to the zstd spec will cause
|
1791
|
+
* undefined behavior, and may produce a corrupted block.
|
1792
|
+
*
|
1793
|
+
* With validation enabled, a if sequence is invalid (see doc/zstd_compression_format.md for
|
1794
|
+
* specifics regarding offset/matchlength requirements) then the function will bail out and
|
1795
|
+
* return an error.
|
1796
|
+
*
|
1797
|
+
*/
|
1798
|
+
#define ZSTD_c_validateSequences ZSTD_c_experimentalParam12
|
1799
|
+
|
1521
1800
|
/*! ZSTD_CCtx_getParameter() :
|
1522
1801
|
* Get the requested compression parameter value, selected by enum ZSTD_cParameter,
|
1523
1802
|
* and store it into int* value.
|
@@ -1566,8 +1845,10 @@ ZSTDLIB_API size_t ZSTD_CCtxParams_init_advanced(ZSTD_CCtx_params* cctxParams, Z
|
|
1566
1845
|
/*! ZSTD_CCtxParams_setParameter() :
|
1567
1846
|
* Similar to ZSTD_CCtx_setParameter.
|
1568
1847
|
* Set one compression parameter, selected by enum ZSTD_cParameter.
|
1569
|
-
* Parameters must be applied to a ZSTD_CCtx using
|
1570
|
-
*
|
1848
|
+
* Parameters must be applied to a ZSTD_CCtx using
|
1849
|
+
* ZSTD_CCtx_setParametersUsingCCtxParams().
|
1850
|
+
* @result : a code representing success or failure (which can be tested with
|
1851
|
+
* ZSTD_isError()).
|
1571
1852
|
*/
|
1572
1853
|
ZSTDLIB_API size_t ZSTD_CCtxParams_setParameter(ZSTD_CCtx_params* params, ZSTD_cParameter param, int value);
|
1573
1854
|
|
@@ -1647,6 +1928,13 @@ ZSTDLIB_API size_t ZSTD_DCtx_refPrefix_advanced(ZSTD_DCtx* dctx, const void* pre
|
|
1647
1928
|
*/
|
1648
1929
|
ZSTDLIB_API size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowSize);
|
1649
1930
|
|
1931
|
+
/*! ZSTD_DCtx_getParameter() :
|
1932
|
+
* Get the requested decompression parameter value, selected by enum ZSTD_dParameter,
|
1933
|
+
* and store it into int* value.
|
1934
|
+
* @return : 0, or an error code (which can be tested with ZSTD_isError()).
|
1935
|
+
*/
|
1936
|
+
ZSTDLIB_API size_t ZSTD_DCtx_getParameter(ZSTD_DCtx* dctx, ZSTD_dParameter param, int* value);
|
1937
|
+
|
1650
1938
|
/* ZSTD_d_format
|
1651
1939
|
* experimental parameter,
|
1652
1940
|
* allowing selection between ZSTD_format_e input compression formats
|
@@ -1684,6 +1972,17 @@ ZSTDLIB_API size_t ZSTD_DCtx_setMaxWindowSize(ZSTD_DCtx* dctx, size_t maxWindowS
|
|
1684
1972
|
*/
|
1685
1973
|
#define ZSTD_d_stableOutBuffer ZSTD_d_experimentalParam2
|
1686
1974
|
|
1975
|
+
/* ZSTD_d_forceIgnoreChecksum
|
1976
|
+
* Experimental parameter.
|
1977
|
+
* Default is 0 == disabled. Set to 1 to enable
|
1978
|
+
*
|
1979
|
+
* Tells the decompressor to skip checksum validation during decompression, regardless
|
1980
|
+
* of whether checksumming was specified during compression. This offers some
|
1981
|
+
* slight performance benefits, and may be useful for debugging.
|
1982
|
+
* Param has values of type ZSTD_forceIgnoreChecksum_e
|
1983
|
+
*/
|
1984
|
+
#define ZSTD_d_forceIgnoreChecksum ZSTD_d_experimentalParam3
|
1985
|
+
|
1687
1986
|
/*! ZSTD_DCtx_setFormat() :
|
1688
1987
|
* Instruct the decoder context about what kind of data to decode next.
|
1689
1988
|
* This instruction is mandatory to decode data without a fully-formed header,
|
@@ -1711,7 +2010,8 @@ ZSTDLIB_API size_t ZSTD_decompressStream_simpleArgs (
|
|
1711
2010
|
********************************************************************/
|
1712
2011
|
|
1713
2012
|
/*===== Advanced Streaming compression functions =====*/
|
1714
|
-
|
2013
|
+
|
2014
|
+
/*! ZSTD_initCStream_srcSize() :
|
1715
2015
|
* This function is deprecated, and equivalent to:
|
1716
2016
|
* ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only);
|
1717
2017
|
* ZSTD_CCtx_refCDict(zcs, NULL); // clear the dictionary (if any)
|
@@ -1728,7 +2028,7 @@ ZSTD_initCStream_srcSize(ZSTD_CStream* zcs,
|
|
1728
2028
|
int compressionLevel,
|
1729
2029
|
unsigned long long pledgedSrcSize);
|
1730
2030
|
|
1731
|
-
|
2031
|
+
/*! ZSTD_initCStream_usingDict() :
|
1732
2032
|
* This function is deprecated, and is equivalent to:
|
1733
2033
|
* ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only);
|
1734
2034
|
* ZSTD_CCtx_setParameter(zcs, ZSTD_c_compressionLevel, compressionLevel);
|
@@ -1745,7 +2045,7 @@ ZSTD_initCStream_usingDict(ZSTD_CStream* zcs,
|
|
1745
2045
|
const void* dict, size_t dictSize,
|
1746
2046
|
int compressionLevel);
|
1747
2047
|
|
1748
|
-
|
2048
|
+
/*! ZSTD_initCStream_advanced() :
|
1749
2049
|
* This function is deprecated, and is approximately equivalent to:
|
1750
2050
|
* ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only);
|
1751
2051
|
* // Pseudocode: Set each zstd parameter and leave the rest as-is.
|
@@ -1766,7 +2066,7 @@ ZSTD_initCStream_advanced(ZSTD_CStream* zcs,
|
|
1766
2066
|
ZSTD_parameters params,
|
1767
2067
|
unsigned long long pledgedSrcSize);
|
1768
2068
|
|
1769
|
-
|
2069
|
+
/*! ZSTD_initCStream_usingCDict() :
|
1770
2070
|
* This function is deprecated, and equivalent to:
|
1771
2071
|
* ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only);
|
1772
2072
|
* ZSTD_CCtx_refCDict(zcs, cdict);
|
@@ -1776,7 +2076,7 @@ ZSTD_initCStream_advanced(ZSTD_CStream* zcs,
|
|
1776
2076
|
*/
|
1777
2077
|
ZSTDLIB_API size_t ZSTD_initCStream_usingCDict(ZSTD_CStream* zcs, const ZSTD_CDict* cdict);
|
1778
2078
|
|
1779
|
-
|
2079
|
+
/*! ZSTD_initCStream_usingCDict_advanced() :
|
1780
2080
|
* This function is DEPRECATED, and is approximately equivalent to:
|
1781
2081
|
* ZSTD_CCtx_reset(zcs, ZSTD_reset_session_only);
|
1782
2082
|
* // Pseudocode: Set each zstd frame parameter and leave the rest as-is.
|
@@ -1849,7 +2149,8 @@ ZSTDLIB_API size_t ZSTD_toFlushNow(ZSTD_CCtx* cctx);
|
|
1849
2149
|
|
1850
2150
|
|
1851
2151
|
/*===== Advanced Streaming decompression functions =====*/
|
1852
|
-
|
2152
|
+
|
2153
|
+
/*!
|
1853
2154
|
* This function is deprecated, and is equivalent to:
|
1854
2155
|
*
|
1855
2156
|
* ZSTD_DCtx_reset(zds, ZSTD_reset_session_only);
|
@@ -1860,7 +2161,7 @@ ZSTDLIB_API size_t ZSTD_toFlushNow(ZSTD_CCtx* cctx);
|
|
1860
2161
|
*/
|
1861
2162
|
ZSTDLIB_API size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dict, size_t dictSize);
|
1862
2163
|
|
1863
|
-
|
2164
|
+
/*!
|
1864
2165
|
* This function is deprecated, and is equivalent to:
|
1865
2166
|
*
|
1866
2167
|
* ZSTD_DCtx_reset(zds, ZSTD_reset_session_only);
|
@@ -1871,7 +2172,7 @@ ZSTDLIB_API size_t ZSTD_initDStream_usingDict(ZSTD_DStream* zds, const void* dic
|
|
1871
2172
|
*/
|
1872
2173
|
ZSTDLIB_API size_t ZSTD_initDStream_usingDDict(ZSTD_DStream* zds, const ZSTD_DDict* ddict);
|
1873
2174
|
|
1874
|
-
|
2175
|
+
/*!
|
1875
2176
|
* This function is deprecated, and is equivalent to:
|
1876
2177
|
*
|
1877
2178
|
* ZSTD_DCtx_reset(zds, ZSTD_reset_session_only);
|
@@ -1933,7 +2234,7 @@ ZSTDLIB_API size_t ZSTD_compressContinue(ZSTD_CCtx* cctx, void* dst, size_t dstC
|
|
1933
2234
|
ZSTDLIB_API size_t ZSTD_compressEnd(ZSTD_CCtx* cctx, void* dst, size_t dstCapacity, const void* src, size_t srcSize);
|
1934
2235
|
|
1935
2236
|
|
1936
|
-
|
2237
|
+
/**
|
1937
2238
|
Buffer-less streaming decompression (synchronous mode)
|
1938
2239
|
|
1939
2240
|
A ZSTD_DCtx object is required to track streaming operations.
|