1/********************************************************************
2 * *
3 * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. *
4 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
5 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
6 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
7 * *
8 * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 *
9 * by the Xiph.Org Foundation https://xiph.org/ *
10 * *
11 ********************************************************************
12
13 function: highlevel encoder setup struct separated out for vorbisenc clarity
14
15 ********************************************************************/
16
17typedef struct highlevel_byblocktype {
18 double tone_mask_setting;
19 double tone_peaklimit_setting;
20 double noise_bias_setting;
21 double noise_compand_setting;
22} highlevel_byblocktype;
23
24typedef struct highlevel_encode_setup {
25 int set_in_stone;
26 const void *setup;
27 double base_setting;
28
29 double impulse_noisetune;
30
31 /* bitrate management below all settable */
32 float req;
33 int managed;
34 long bitrate_min;
35 long bitrate_av;
36 double bitrate_av_damp;
37 long bitrate_max;
38 long bitrate_reservoir;
39 double bitrate_reservoir_bias;
40
41 int impulse_block_p;
42 int noise_normalize_p;
43 int coupling_p;
44
45 double stereo_point_setting;
46 double lowpass_kHz;
47 int lowpass_altered;
48
49 double ath_floating_dB;
50 double ath_absolute_dB;
51
52 double amplitude_track_dBpersec;
53 double trigger_setting;
54
55 highlevel_byblocktype block[4]; /* padding, impulse, transition, long */
56
57} highlevel_encode_setup;
58