added ogg/vorbis source code for ease of building on msvc
[laserbrain_demo] / libs / vorbis / 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 separated out for vorbisenc clarity
14  last mod: $Id: highlevel.h 17195 2010-05-05 21:49:51Z giles $
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   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;