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 http://www.xiph.org/                  *
10 *                                                                  *
11 ********************************************************************
12
13 function: highlevel encoder setup struct seperated out for vorbisenc clarity
14 last mod: $Id: highlevel.h 16995 2010-03-23 03:44:44Z xiphmont $
15
16 ********************************************************************/
17
18typedef struct highlevel_byblocktype {
19  double tone_mask_setting;
20  double tone_peaklimit_setting;
21  double noise_bias_setting;
22  double noise_compand_setting;
23} highlevel_byblocktype;
24
25typedef struct highlevel_encode_setup {
26  int   set_in_stone;
27  const void *setup;
28  double base_setting;
29
30  double impulse_noisetune;
31
32  /* bitrate management below all settable */
33  float  req;
34  int    managed;
35  long   bitrate_min;
36  long   bitrate_av;
37  double bitrate_av_damp;
38  long   bitrate_max;
39  long   bitrate_reservoir;
40  double bitrate_reservoir_bias;
41
42  int impulse_block_p;
43  int noise_normalize_p;
44  int coupling_p;
45
46  double stereo_point_setting;
47  double lowpass_kHz;
48  int    lowpass_altered;
49
50  double ath_floating_dB;
51  double ath_absolute_dB;
52
53  double amplitude_track_dBpersec;
54  double trigger_setting;
55
56  highlevel_byblocktype block[4]; /* padding, impulse, transition, long */
57
58} highlevel_encode_setup;
59