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