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