From 1d4208c029b6e09c604707508a610e74ec2fe630 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Tue, 6 Sep 2016 05:16:40 +0200 Subject: [PATCH] clarified streaming decompression inlined doc --- lib/zstd.h | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/lib/zstd.h b/lib/zstd.h index 5f85921c..480612cf 100644 --- a/lib/zstd.h +++ b/lib/zstd.h @@ -252,14 +252,15 @@ ZSTDLIB_API size_t ZSTD_endStream(ZSTD_CStream* zcs, ZSTD_outBuffer* output); * * Use ZSTD_decompressStream() repetitively to consume your input. * The function will update both `pos` fields. -* Note that it may not consume the entire input, in which case `pos < size`, -* and it's up to the caller to present again remaining data. +* If `input.pos < input.size`, some input is not consumed. +* It's up to the caller to present again remaining data. +* If `output.pos == output.size`, there is probably some more data to flush, still stored inside internal buffers. * @return : 0 when a frame is completely decoded and fully flushed, * an error code, which can be tested using ZSTD_isError(), * any value > 0, which means there is still some work to do to complete the frame. * In general, the return value is a suggested next input size (merely a hint, to help latency). * 1 is a special value, which means either "there is still some data to flush", or "need 1 more byte as input". -* To deduct the meaning of "1", start by flushing. If there is nothing left to flush and result is still "1", it means "need 1 more byte". +* In which case, start by flushing. When flush is completed, if return value is still `1`, it means "need 1 more byte". * *******************************************************************************/ typedef struct ZSTD_DStream_s ZSTD_DStream;