xref: /aosp_15_r20/external/cronet/third_party/brotli/enc/params.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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   /* TODO(eustas): rename to BrotliShared... */
44   SharedEncoderDictionary dictionary;
45 } BrotliEncoderParams;
46 
47 #endif  /* BROTLI_ENC_PARAMS_H_ */
48