From ac665149361ce236d4fa307b8efc8cd2007319ae Mon Sep 17 00:00:00 2001 From: zhuhongde <1340855317@qq.com> Date: Mon, 23 Sep 2024 11:49:51 +0000 Subject: [PATCH] =?UTF-8?q?lz4=E5=8D=87=E7=BA=A7=E8=87=B31.9.4=E7=89=88?= =?UTF-8?q?=E6=9C=AC&=E6=94=AF=E6=8C=81frame=E6=A8=A1=E5=BC=8F=E6=80=A7?= =?UTF-8?q?=E8=83=BD=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhuhongde <1340855317@qq.com> --- _lzbench/compressors.cpp | 15 +++++++++++++++ _lzbench/compressors.h | 4 ++++ 2 files changed, 19 insertions(+) diff --git a/_lzbench/compressors.cpp b/_lzbench/compressors.cpp index 741b494..40f399d 100644 --- a/_lzbench/compressors.cpp +++ b/_lzbench/compressors.cpp @@ -292,6 +292,7 @@ int64_t lzbench_libdeflate_decompress(char *inbuf, size_t insize, char *outbuf, #ifndef BENCH_REMOVE_LZ4 #include "lz4/lz4.h" #include "lz4/lz4hc.h" +#include "lz4/lz4frame.h" int64_t lzbench_lz4_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, char*) { @@ -313,6 +314,20 @@ int64_t lzbench_lz4_decompress(char *inbuf, size_t insize, char *outbuf, size_t return LZ4_decompress_safe(inbuf, outbuf, insize, outsize); } +int64_t lzbench_lz4frame_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, char*) +{ + return LZ4F_compressFrame(outbuf, LZ4F_compressFrameBound((size_t)insize, NULL), inbuf, insize, NULL); +} + +static LZ4F_decompressionContext_t g_dCtx; + +int64_t lzbench_lz4frame_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, char*) +{ + LZ4F_createDecompressionContext(&g_dCtx, LZ4F_VERSION); + LZ4F_decompress(g_dCtx, outbuf, &outsize, inbuf, &insize, NULL); + LZ4F_freeDecompressionContext(g_dCtx); + return outsize; +} #endif diff --git a/_lzbench/compressors.h b/_lzbench/compressors.h index a4fa6bc..b203b0d 100644 --- a/_lzbench/compressors.h +++ b/_lzbench/compressors.h @@ -131,11 +131,15 @@ int64_t lzbench_return_0(char *inbuf, size_t insize, char *outbuf, size_t outsiz int64_t lzbench_lz4fast_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, char*); int64_t lzbench_lz4hc_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, char*); int64_t lzbench_lz4_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, char*); + int64_t lzbench_lz4frame_compress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, char*); + int64_t lzbench_lz4frame_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t, size_t, char*); #else #define lzbench_lz4_compress NULL #define lzbench_lz4fast_compress NULL #define lzbench_lz4hc_compress NULL #define lzbench_lz4_decompress NULL + #define lzbench_lz4frame_compress NULL + #define lzbench_lz4frame_decompress NULL #endif -- Gitee