]> git.tdb.fi Git - ext/vorbisfile.git/blob - lib/highlevel.h
Add headers to the library component so dependencies work correctly
[ext/vorbisfile.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 https://xiph.org/                     *
10  *                                                                  *
11  ********************************************************************
12
13  function: highlevel encoder setup struct separated out for vorbisenc clarity
14
15  ********************************************************************/
16
17 typedef 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
24 typedef 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;