Some minor setup code rearrangement/cleanup toward 5.1/7.1 additions
[platform/upstream/libvorbis.git] / lib / highlevel.h
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$
15
16  ********************************************************************/
17
18 typedef 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
25 typedef struct highlevel_encode_setup {
26   const void *setup;
27   int   set_in_stone;
28
29   double base_setting;
30   double impulse_noisetune;
31
32   int    managed;
33   long   bitrate_min;
34   long   bitrate_av;
35   double bitrate_av_damp;
36   long   bitrate_max;
37   long   bitrate_reservoir;
38   double bitrate_reservoir_bias;
39
40   int impulse_block_p;
41   int noise_normalize_p;
42
43   double stereo_point_setting;
44   double lowpass_kHz;
45
46   double ath_floating_dB;
47   double ath_absolute_dB;
48
49   double amplitude_track_dBpersec;
50   double trigger_setting;
51
52   highlevel_byblocktype block[4]; /* padding, impulse, transition, long */
53
54 } highlevel_encode_setup;