Home | History | Annotate | Download | only in lib
      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 
     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;
     59