]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
add sequence bound function
authorDanielle Rozenblit <drozenblit@fb.com>
Fri, 9 Sep 2022 19:34:25 +0000 (12:34 -0700)
committerDanielle Rozenblit <drozenblit@fb.com>
Fri, 9 Sep 2022 19:34:25 +0000 (12:34 -0700)
lib/compress/zstd_compress.c
lib/zstd.h

index 59d441b2a5f922c4c6c0473c0a414d4fe9669ad7..8a0c2f19165c7275f6631af1f6b0ead168ad7b27 100644 (file)
@@ -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)
 {
index 112012d26bdfa85643d217a95c9e15ff32eb567e..cf3dd7e27222e06ce42b0c6930f77cc70398e4d6 100644 (file)
@@ -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.
  *