aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJay Berkenbilt <ejb@ql.org>2019-08-24 01:54:08 +0200
committerJay Berkenbilt <ejb@ql.org>2019-08-24 02:34:21 +0200
commitdac0598b94c877bec92a1edd78ae00021cfa1638 (patch)
tree70988ddf9cc7c4e9c2e7b867bb135c331e061217 /include
parentbda5d26894c857a05f811a6ebd3595d26424d2ea (diff)
downloadqpdf-dac0598b94c877bec92a1edd78ae00021cfa1638.tar.zst
Add ability to set zlib compression level globally
Diffstat (limited to 'include')
-rw-r--r--include/qpdf/Pl_Flate.hh10
1 files changed, 10 insertions, 0 deletions
diff --git a/include/qpdf/Pl_Flate.hh b/include/qpdf/Pl_Flate.hh
index f25adfbb..96e09d4b 100644
--- a/include/qpdf/Pl_Flate.hh
+++ b/include/qpdf/Pl_Flate.hh
@@ -28,6 +28,7 @@ class Pl_Flate: public Pipeline
{
public:
static unsigned int const def_bufsize = 65536;
+ static int compression_level;
enum action_e { a_inflate, a_deflate };
@@ -42,6 +43,15 @@ class Pl_Flate: public Pipeline
QPDF_DLL
virtual void finish();
+ // Globally set compression level from 1 (fastest, least
+ // compression) to 9 (slowest, most compression). Use -1 to set
+ // the default compression level. This is passed directly to zlib.
+ // This method returns a pointer to the current Pl_Flate object so
+ // you can create a pipeline with
+ // Pl_Flate(...)->setCompressionLevel(...)
+ QPDF_DLL
+ static void setCompressionLevel(int);
+
private:
void handleData(unsigned char* data, size_t len, int flush);
void checkError(char const* prefix, int error_code);