1/* Copyright 2017 Google Inc. All Rights Reserved.
2
3 Distributed under MIT license.
4 See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5*/
6
7/* Parameters for the Brotli encoder with chosen quality levels. */
8
9#ifndef BROTLI_ENC_PARAMS_H_
10#define BROTLI_ENC_PARAMS_H_
11
12#include <brotli/encode.h>
13#include "./encoder_dict.h"
14
15typedef struct BrotliHasherParams {
16 int type;
17 int bucket_bits;
18 int block_bits;
19 int hash_len;
20 int num_last_distances_to_check;
21} BrotliHasherParams;
22
23typedef struct BrotliDistanceParams {
24 uint32_t distance_postfix_bits;
25 uint32_t num_direct_distance_codes;
26 uint32_t alphabet_size;
27 size_t max_distance;
28} BrotliDistanceParams;
29
30/* Encoding parameters */
31typedef struct BrotliEncoderParams {
32 BrotliEncoderMode mode;
33 int quality;
34 int lgwin;
35 int lgblock;
36 size_t size_hint;
37 BROTLI_BOOL disable_literal_context_modeling;
38 BROTLI_BOOL large_window;
39 BrotliHasherParams hasher;
40 BrotliDistanceParams dist;
41 BrotliEncoderDictionary dictionary;
42} BrotliEncoderParams;
43
44#endif /* BROTLI_ENC_PARAMS_H_ */
45