From aa829988215273f8c8b1423e1a924b326168e09f Mon Sep 17 00:00:00 2001 From: Danielle Rozenblit Date: Fri, 9 Sep 2022 12:34:25 -0700 Subject: [PATCH] add sequence bound function --- lib/compress/zstd_compress.c | 4 ++++ lib/zstd.h | 9 +++++++++ 2 files changed, 13 insertions(+) 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. *