From 971edf7b8cf55b0c8ead7265276a80acf8aaaeab Mon Sep 17 00:00:00 2001 From: Chris Hennick Date: Sun, 18 Jun 2023 13:55:18 -0700 Subject: [PATCH] Allow user to specify maximum block splits --- src/deflate/mod.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/deflate/mod.rs b/src/deflate/mod.rs index 0d385690..19281e14 100644 --- a/src/deflate/mod.rs +++ b/src/deflate/mod.rs @@ -60,14 +60,16 @@ impl Deflater for Deflaters { pub struct BufferedZopfliDeflater { iterations: NonZeroU8, input_buffer_size: usize, - output_buffer_size: usize + output_buffer_size: usize, + max_block_splits: u16 } impl BufferedZopfliDeflater { pub const fn new(iterations: NonZeroU8, input_buffer_size: usize, - output_buffer_size: usize) -> Self { - BufferedZopfliDeflater {iterations, input_buffer_size, output_buffer_size } + output_buffer_size: usize, + max_block_splits: u16) -> Self { + BufferedZopfliDeflater {iterations, input_buffer_size, output_buffer_size, max_block_splits } } } @@ -76,6 +78,7 @@ impl Deflater for BufferedZopfliDeflater { fn deflate(&self, data: &[u8], max_size: &AtomicMin) -> PngResult> { let options = Options { iteration_count: self.iterations, + maximum_block_splits: self.max_block_splits, ..Default::default() }; let mut buffer = BufWriter::with_capacity(self.input_buffer_size,