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 
15 typedef 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 
23 typedef 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 */
31 typedef 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