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