1214501Srpaulo/*
2214501SrpauloCopyright 2013 Google Inc. All Rights Reserved.
3214501SrpauloAuthor: lode@google.com (Lode Vandevenne)
4214501Srpaulo*/
5214501Srpaulo
6214501Srpaulo/*
7214501SrpauloModified by madler@alumni.caltech.edu (Mark Adler)
8214501SrpauloMoved ZopfliInitOptions() to deflate.c.
9214501Srpaulo*/
10214501Srpaulo
11214501Srpaulo#include "zopfli.h"
12214501Srpaulo
13214501Srpaulo#include "deflate.h"
14214501Srpaulo#include "gzip_container.h"
15214501Srpaulo#include "zlib_container.h"
16214501Srpaulo
17214501Srpaulo#include <assert.h>
18214501Srpaulo
19214501Srpaulovoid ZopfliCompress(const ZopfliOptions* options, ZopfliFormat output_type,
20214501Srpaulo                    const unsigned char* in, size_t insize,
21214501Srpaulo                    unsigned char** out, size_t* outsize)
22214501Srpaulo{
23214501Srpaulo  if (output_type == ZOPFLI_FORMAT_GZIP) {
24214501Srpaulo    ZopfliGzipCompress(options, in, insize, out, outsize);
25214501Srpaulo  } else if (output_type == ZOPFLI_FORMAT_ZLIB) {
26214501Srpaulo    ZopfliZlibCompress(options, in, insize, out, outsize);
27214501Srpaulo  } else if (output_type == ZOPFLI_FORMAT_DEFLATE) {
28214501Srpaulo    unsigned char bp = 0;
29214501Srpaulo    ZopfliDeflate(options, 2 /* Dynamic block */, 1,
30                  in, insize, &bp, out, outsize);
31  } else {
32    assert(0);
33  }
34}
35