xref: /third_party/node/deps/brotli/c/enc/params.h (revision 1cb0ef41)
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_max;
27  uint32_t alphabet_size_limit;
28  size_t max_distance;
29} BrotliDistanceParams;
30
31/* Encoding parameters */
32typedef 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