• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_max;
27   uint32_t alphabet_size_limit;
28   size_t max_distance;
29 } BrotliDistanceParams;
30 
31 /* Encoding parameters */
32 typedef struct BrotliEncoderParams {
33   BrotliEncoderMode mode;
34   int quality;
35   int lgwin;
36   int lgblock;
37   size_t stream_offset;
38   size_t size_hint;
39   BROTLI_BOOL disable_literal_context_modeling;
40   BROTLI_BOOL large_window;
41   BrotliHasherParams hasher;
42   BrotliDistanceParams dist;
43   BrotliEncoderDictionary dictionary;
44 } BrotliEncoderParams;
45 
46 #endif  /* BROTLI_ENC_PARAMS_H_ */
47