From: Danielle Rozenblit Date: Fri, 9 Sep 2022 19:34:25 +0000 (-0700) Subject: add sequence bound function X-Git-Tag: v1.5.4^2~160^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=aa829988215273f8c8b1423e1a924b326168e09f;p=thirdparty%2Fzstd.git add sequence bound function --- diff --git a/lib/compress/zstd_compress.c b/lib/compress/zstd_compress.c index 59d441b2a..8a0c2f191 100644 --- a/lib/compress/zstd_compress.c +++ b/lib/compress/zstd_compress.c @@ -3003,6 +3003,10 @@ static void ZSTD_copyBlockSequences(ZSTD_CCtx* zc) zc->seqCollector.seqIndex += seqStoreSeqSize; } +size_t ZSTD_sequenceBound(size_t srcSize) { + return (srcSize / ZSTD_MINMATCH_MIN) + 1; +} + size_t ZSTD_generateSequences(ZSTD_CCtx* zc, ZSTD_Sequence* outSeqs, size_t outSeqsSize, const void* src, size_t srcSize) { diff --git a/lib/zstd.h b/lib/zstd.h index 112012d26..cf3dd7e27 100644 --- a/lib/zstd.h +++ b/lib/zstd.h @@ -1396,6 +1396,15 @@ typedef enum { ZSTD_sf_explicitBlockDelimiters = 1 /* Representation of ZSTD_Sequence contains explicit block delimiters */ } ZSTD_sequenceFormat_e; +/*! ZSTD_sequenceBound() : + * `srcSize` : size of the input buffer + * @return : upper-bound for the number of sequences that can be generated + * from a buffer of srcSize bytes + * + * note : returns number of sequences - to get bytes, multiply by sizeof(ZSTD_Sequence). + */ +ZSTDLIB_STATIC_API size_t ZSTD_sequenceBound(size_t srcSize); + /*! ZSTD_generateSequences() : * Generate sequences using ZSTD_compress2(), given a source buffer. *