From: Yann Collet Date: Wed, 30 Mar 2016 17:48:05 +0000 (+0200) Subject: separate params into compressionParams and frameParams X-Git-Tag: v0.6.0^2~17^2~28^2~7 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3b71925c2db586b18cacc0f77aa0e9ab76603be2;p=thirdparty%2Fzstd.git separate params into compressionParams and frameParams --- diff --git a/lib/zbuff.c b/lib/zbuff.c index 6c06b543c..e26072d81 100644 --- a/lib/zbuff.c +++ b/lib/zbuff.c @@ -124,14 +124,14 @@ size_t ZBUFF_freeCCtx(ZBUFF_CCtx* zbc) /* *** Initialization *** */ -size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc, const void* dict, size_t dictSize, ZSTD_parameters params) +size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc, + const void* dict, size_t dictSize, + ZSTD_parameters params, U64 pledgedSrcSize) { size_t neededInBuffSize; - { size_t const errorCode = ZSTD_checkParams(params); - if (ZSTD_isError(errorCode)) return errorCode; } - ZSTD_adjustParams(¶ms, 0, dictSize); - neededInBuffSize = (size_t)1 << params.windowLog; + ZSTD_adjustCParams(¶ms.cParams, pledgedSrcSize, dictSize); + neededInBuffSize = (size_t)1 << params.cParams.windowLog; /* allocate buffers */ if (zbc->inBuffSize < neededInBuffSize) { @@ -148,7 +148,7 @@ size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc, const void* dict, size_t dic if (zbc->outBuff == NULL) return ERROR(memory_allocation); } - zbc->outBuffContentSize = ZSTD_compressBegin_advanced(zbc->zc, dict, dictSize, params); + zbc->outBuffContentSize = ZSTD_compressBegin_advanced(zbc->zc, dict, dictSize, params, pledgedSrcSize); if (ZSTD_isError(zbc->outBuffContentSize)) return zbc->outBuffContentSize; zbc->inToCompress = 0; @@ -160,15 +160,17 @@ size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* zbc, const void* dict, size_t dic } -size_t ZBUFF_compressInit(ZBUFF_CCtx* zbc, int compressionLevel) +ZSTDLIB_API size_t ZBUFF_compressInitDictionary(ZBUFF_CCtx* zbc, const void* dict, size_t dictSize, int compressionLevel) { - return ZBUFF_compressInit_advanced(zbc, NULL, 0, ZSTD_getParams(compressionLevel, 0)); + ZSTD_parameters params; + params.cParams = ZSTD_getCParams(compressionLevel, 0, dictSize); + params.fParams.contentSizeFlag = 0; + return ZBUFF_compressInit_advanced(zbc, dict, dictSize, params, 0); } - -ZSTDLIB_API size_t ZBUFF_compressInitDictionary(ZBUFF_CCtx* zbc, const void* dict, size_t dictSize, int compressionLevel) +size_t ZBUFF_compressInit(ZBUFF_CCtx* zbc, int compressionLevel) { - return ZBUFF_compressInit_advanced(zbc, dict, dictSize, ZSTD_getParams(compressionLevel, 0)); + return ZBUFF_compressInitDictionary(zbc, NULL, 0, compressionLevel); } diff --git a/lib/zbuff_static.h b/lib/zbuff_static.h index 405508900..9fb522e5f 100644 --- a/lib/zbuff_static.h +++ b/lib/zbuff_static.h @@ -51,7 +51,9 @@ extern "C" { /* ************************************* * Advanced Streaming functions ***************************************/ -ZSTDLIB_API size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* cctx, const void* dict, size_t dictSize, ZSTD_parameters params); +ZSTDLIB_API size_t ZBUFF_compressInit_advanced(ZBUFF_CCtx* cctx, + const void* dict, size_t dictSize, + ZSTD_parameters params, U64 pledgedSrcSize); #if defined (__cplusplus) diff --git a/lib/zdict.c b/lib/zdict.c index a643f4f57..122ac8cb2 100644 --- a/lib/zdict.c +++ b/lib/zdict.c @@ -626,6 +626,7 @@ static void ZDICT_countEStats(EStats_ress_t esr, } } } +/* static size_t ZDICT_maxSampleSize(const size_t* fileSizes, unsigned nbFiles) { unsigned u; @@ -634,6 +635,15 @@ static size_t ZDICT_maxSampleSize(const size_t* fileSizes, unsigned nbFiles) if (max < fileSizes[u]) max = fileSizes[u]; return max; } +*/ + +static size_t ZDICT_totalSampleSize(const size_t* fileSizes, unsigned nbFiles) +{ + size_t total; + unsigned u; + for (u=0, total=0; u