From 3ca750372d43da3f90017c8ee6b04f0743ab6782 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Mon, 1 Aug 2016 02:26:20 +0200 Subject: [PATCH] updated doc (#269) --- NEWS | 2 +- images/Cspeed4.png | Bin 47294 -> 35361 bytes lib/dictBuilder/zdict.c | 2 +- lib/zstd.h | 26 +++++++++++++++++--------- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/NEWS b/NEWS index 16a4fb8f..56c46fef 100644 --- a/NEWS +++ b/NEWS @@ -4,7 +4,7 @@ New : Build on FreeBSD and DragonFly, thanks to JrMarino Changed : modified API : ZSTD_compressEnd() Fixed : legacy mode with ZSTD_HEAPMODE=0, by Christopher Bergqvist Fixed : premature end of frame when zero-sized raw block, reported by Eric Biggers -Fixed : statistics for large dictionaries (> 256 KB), reported by Ilona Papava +Fixed : large dictionaries (> 384 KB), reported by Ilona Papava Fixed : checksum correctly checked in single-pass mode Fixed : combined --test amd --rm, reported by Andreas M. Nilsson Modified : minor compression level adaptations diff --git a/images/Cspeed4.png b/images/Cspeed4.png index d5219d7264977bcdc9e3daa5f5193ca6abbe3030..f0ca0ffba9c4413cc2a8a19dd5768e03e236c095 100644 GIT binary patch literal 35361 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 KryRX}>;C{7W5ebE literal 47294 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 30) ? 1 : nbSamples >> selectivity; + unsigned const minRep = (selectivity > 30) ? MINRATIO : nbSamples >> selectivity; size_t const targetDictSize = maxDictSize; size_t const samplesBuffSize = ZDICT_totalSampleSize(samplesSizes, nbSamples); size_t dictSize = 0; diff --git a/lib/zstd.h b/lib/zstd.h index 6b9ed463..cb33b558 100644 --- a/lib/zstd.h +++ b/lib/zstd.h @@ -79,20 +79,28 @@ ZSTDLIB_API size_t ZSTD_compress( void* dst, size_t dstCapacity, int compressionLevel); /*! ZSTD_getDecompressedSize() : -* @return : decompressed size if known, 0 otherwise. -* note 1 : decompressed size could be wrong or intentionally modified ! -* Always ensure result fits within application's authorized limits ! -* Each application can set its own limit, depending on local restrictions. -* For extended interoperability, it is recommended to support at least 8 MB. -* note 2 : when `0`, if precise failure cause is needed, use ZSTD_getFrameParams() to know more. -* note 3 : when `0`, and if no external guarantee about maximum possible decompressed size, -* it's necessary to use "streaming mode" to decompress data. */ +* @return : decompressed size as a 64-bits value _if known_, 0 otherwise. +* note 1 : decompressed size can be very large (64-bits value), +* potentially larger than what local system can handle as a single memory segment. +* In which case, it's necessary to use streaming mode to decompress data. +* note 2 : decompressed size is an optional field, that may not be present. +* When `return==0`, consider data to decompress could have any size. +* In which case, it's necessary to use streaming mode to decompress data, +* or rely on application's implied limits. +* (For example, it may know that its own data is necessarily cut into blocks <= 16 KB). +* note 3 : decompressed size could be wrong or intentionally modified ! +* Always ensure result fits within application's authorized limits ! +* Each application can have its own set of conditions. +* If the intention is to decompress public data compressed by zstd command line utility, +* it is recommended to support at least 8 MB for extended compatibility. +* note 4 : when `return==0`, if precise failure cause is needed, use ZSTD_getFrameParams() to know more. */ unsigned long long ZSTD_getDecompressedSize(const void* src, size_t srcSize); /*! ZSTD_decompress() : `compressedSize` : must be the _exact_ size of compressed input, otherwise decompression will fail. `dstCapacity` must be equal or larger than originalSize (see ZSTD_getDecompressedSize() ). - If maximum possible content size is unknown, use streaming mode to decompress data. + If originalSize is unknown, and if there is no implied application-specific limitations, + it's necessary to use streaming mode to decompress data. @return : the number of bytes decompressed into `dst` (<= `dstCapacity`), or an errorCode if it fails (which can be tested using ZSTD_isError()) */ ZSTDLIB_API size_t ZSTD_decompress( void* dst, size_t dstCapacity,