xref: /netbsd-src/external/zlib/pigz/dist/zopfli/zopfli_lib.c (revision 3e407a68a64115001ff3f1b658def92a1368b7e6)
1 /*
2 Copyright 2013 Google Inc. All Rights Reserved.
3 Author: lode@google.com (Lode Vandevenne)
4 */
5 
6 /*
7 Modified by madler@alumni.caltech.edu (Mark Adler)
8 Moved ZopfliInitOptions() to deflate.c.
9 */
10 
11 #include "zopfli.h"
12 
13 #include "deflate.h"
14 #include "gzip_container.h"
15 #include "zlib_container.h"
16 
17 #include <assert.h>
18 
ZopfliCompress(const ZopfliOptions * options,ZopfliFormat output_type,const unsigned char * in,size_t insize,unsigned char ** out,size_t * outsize)19 void ZopfliCompress(const ZopfliOptions* options, ZopfliFormat output_type,
20                     const unsigned char* in, size_t insize,
21                     unsigned char** out, size_t* outsize)
22 {
23   if (output_type == ZOPFLI_FORMAT_GZIP) {
24     ZopfliGzipCompress(options, in, insize, out, outsize);
25   } else if (output_type == ZOPFLI_FORMAT_ZLIB) {
26     ZopfliZlibCompress(options, in, insize, out, outsize);
27   } else if (output_type == ZOPFLI_FORMAT_DEFLATE) {
28     unsigned char bp = 0;
29     ZopfliDeflate(options, 2 /* Dynamic block */, 1,
30                   in, insize, &bp, out, outsize);
31   } else {
32     assert(0);
33   }
34 }
35