about summary refs log tree commit diff homepage
diff options
context:
space:
mode:
-rw-r--r--Makefile1
-rw-r--r--deflateBound.357
2 files changed, 58 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index d51dad1..3982caf 100644
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,7 @@ MAN += adler32.3
 MAN += compress.3
 MAN += crc32.3
 MAN += deflate.3
+MAN += deflateBound.3
 MAN += deflateCopy.3
 MAN += deflateInit2.3
 MAN += deflateParams.3
diff --git a/deflateBound.3 b/deflateBound.3
new file mode 100644
index 0000000..d8f91d5
--- /dev/null
+++ b/deflateBound.3
@@ -0,0 +1,57 @@
+.Dd November 11, 2018
+.Dt DEFLATEBOUND 3
+.Os
+.
+.Sh NAME
+.Nm deflateBound
+.Nd compressed size upper bound
+.
+.Sh LIBRARY
+.Lb libz
+.
+.Sh SYNOPSIS
+.Ft uLong
+.Fn deflateBound "z_streamp strm" "uLong sourceLen"
+.
+.Sh DESCRIPTION
+.Fn deflateBound
+returns an upper bound
+on the compressed size
+after deflation of
+.Fa sourceLen
+bytes.
+It must be called after
+.Xr deflateInit 3
+or
+.Xr deflateInit2 3 ,
+and after
+.Xr deflateSetHeader 3 ,
+if used.
+This would be used
+to allocate an output buffer
+for deflation in a single pass,
+and so would be called before
+.Xr deflate 3 .
+If that first
+.Fn deflate
+call is provided the
+.Fa sourceLen
+input bytes,
+an output buffer allocated
+to the size returned by
+.Fn deflateBound ,
+and the flush value
+.Dv Z_FINISH ,
+then
+.Fn deflate
+is guaranteed to return
+.Dv Z_STREAM_END .
+Note that it is possible
+for the compressed size
+to be larger than the value returned by
+.Fn deflateBound
+if flush options other than
+.Dv Z_FINISH
+or
+.Dv Z_NO_FLUSH
+are used.