126fa459cSmrg/* Copyright 2017 Google Inc. All Rights Reserved.
226fa459cSmrg
326fa459cSmrg   Distributed under MIT license.
426fa459cSmrg   See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
526fa459cSmrg*/
626fa459cSmrg
726fa459cSmrg/* Parameters for the Brotli encoder with chosen quality levels. */
826fa459cSmrg
926fa459cSmrg#ifndef BROTLI_ENC_PARAMS_H_
1026fa459cSmrg#define BROTLI_ENC_PARAMS_H_
1126fa459cSmrg
1226fa459cSmrg#include <brotli/encode.h>
1326fa459cSmrg#include "./encoder_dict.h"
1426fa459cSmrg
1526fa459cSmrgtypedef struct BrotliHasherParams {
1626fa459cSmrg  int type;
1726fa459cSmrg  int bucket_bits;
1826fa459cSmrg  int block_bits;
1926fa459cSmrg  int hash_len;
2026fa459cSmrg  int num_last_distances_to_check;
2126fa459cSmrg} BrotliHasherParams;
2226fa459cSmrg
2326fa459cSmrgtypedef struct BrotliDistanceParams {
2426fa459cSmrg  uint32_t distance_postfix_bits;
2526fa459cSmrg  uint32_t num_direct_distance_codes;
2626fa459cSmrg  uint32_t alphabet_size_max;
2726fa459cSmrg  uint32_t alphabet_size_limit;
2826fa459cSmrg  size_t max_distance;
2926fa459cSmrg} BrotliDistanceParams;
3026fa459cSmrg
3126fa459cSmrg/* Encoding parameters */
3226fa459cSmrgtypedef struct BrotliEncoderParams {
3326fa459cSmrg  BrotliEncoderMode mode;
3426fa459cSmrg  int quality;
3526fa459cSmrg  int lgwin;
3626fa459cSmrg  int lgblock;
3726fa459cSmrg  size_t stream_offset;
3826fa459cSmrg  size_t size_hint;
3926fa459cSmrg  BROTLI_BOOL disable_literal_context_modeling;
4026fa459cSmrg  BROTLI_BOOL large_window;
4126fa459cSmrg  BrotliHasherParams hasher;
4226fa459cSmrg  BrotliDistanceParams dist;
4326fa459cSmrg  BrotliEncoderDictionary dictionary;
4426fa459cSmrg} BrotliEncoderParams;
4526fa459cSmrg
4626fa459cSmrg#endif  /* BROTLI_ENC_PARAMS_H_ */
47