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 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; 58