summaryrefslogtreecommitdiff
path: root/misc/ttf2woff/zopfli/zopfli.h
diff options
context:
space:
mode:
Diffstat (limited to 'misc/ttf2woff/zopfli/zopfli.h')
-rw-r--r--misc/ttf2woff/zopfli/zopfli.h94
1 files changed, 94 insertions, 0 deletions
diff --git a/misc/ttf2woff/zopfli/zopfli.h b/misc/ttf2woff/zopfli/zopfli.h
new file mode 100644
index 000000000..c079662aa
--- /dev/null
+++ b/misc/ttf2woff/zopfli/zopfli.h
@@ -0,0 +1,94 @@
+/*
+Copyright 2011 Google Inc. All Rights Reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Author: lode.vandevenne@gmail.com (Lode Vandevenne)
+Author: jyrki.alakuijala@gmail.com (Jyrki Alakuijala)
+*/
+
+#ifndef ZOPFLI_ZOPFLI_H_
+#define ZOPFLI_ZOPFLI_H_
+
+#include <stddef.h>
+#include <stdlib.h> /* for size_t */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+Options used throughout the program.
+*/
+typedef struct ZopfliOptions {
+ /* Whether to print output */
+ int verbose;
+
+ /* Whether to print more detailed output */
+ int verbose_more;
+
+ /*
+ Maximum amount of times to rerun forward and backward pass to optimize LZ77
+ compression cost. Good values: 10, 15 for small files, 5 for files over
+ several MB in size or it will be too slow.
+ */
+ int numiterations;
+
+ /*
+ If true, splits the data in multiple deflate blocks with optimal choice
+ for the block boundaries. Block splitting gives better compression. Default:
+ true (1).
+ */
+ int blocksplitting;
+
+ /*
+ No longer used, left for compatibility.
+ */
+ int blocksplittinglast;
+
+ /*
+ Maximum amount of blocks to split into (0 for unlimited, but this can give
+ extreme results that hurt compression on some files). Default value: 15.
+ */
+ int blocksplittingmax;
+} ZopfliOptions;
+
+/* Initializes options with default values. */
+void ZopfliInitOptions(ZopfliOptions* options);
+
+/* Output format */
+typedef enum {
+ ZOPFLI_FORMAT_GZIP,
+ ZOPFLI_FORMAT_ZLIB,
+ ZOPFLI_FORMAT_DEFLATE
+} ZopfliFormat;
+
+/*
+Compresses according to the given output format and appends the result to the
+output.
+
+options: global program options
+output_type: the output format to use
+out: pointer to the dynamic output array to which the result is appended. Must
+ be freed after use
+outsize: pointer to the dynamic output array size
+*/
+void ZopfliCompress(const ZopfliOptions* options, ZopfliFormat output_type,
+ const unsigned char* in, size_t insize,
+ unsigned char** out, size_t* outsize);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif /* ZOPFLI_ZOPFLI_H_ */