"L. Spiro Engine"
|
00001 /******************************************************************** 00002 * * 00003 * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * 00004 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * 00005 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * 00006 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * 00007 * * 00008 * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * 00009 * by the Xiph.Org Foundation http://www.xiph.org/ * 00010 * * 00011 ******************************************************************** 00012 00013 function: highlevel encoder setup struct separated out for vorbisenc clarity 00014 last mod: $Id: highlevel.h 17195 2010-05-05 21:49:51Z giles $ 00015 00016 ********************************************************************/ 00017 00018 00019 #ifndef __LSS_VORBISHIGHLEVEL_H__ 00020 #define __LSS_VORBISHIGHLEVEL_H__ 00021 00022 #include "../LSSSoundLib.h" 00023 00024 namespace lss { 00025 00032 class CVorbisHighLevel { 00033 public : 00034 // == Types. 00038 typedef struct highlevel_byblocktype { 00039 LSDOUBLE tone_mask_setting; 00040 LSDOUBLE tone_peaklimit_setting; 00041 LSDOUBLE noise_bias_setting; 00042 LSDOUBLE noise_compand_setting; 00043 } * LPhighlevel_byblocktype, * const LPChighlevel_byblocktype; 00044 00048 typedef struct highlevel_encode_setup { 00049 LSINT32 set_in_stone; 00050 const LSVOID * setup; 00051 LSDOUBLE base_setting; 00052 00053 LSDOUBLE impulse_noisetune; 00054 00055 // Bitrate management below all settable. 00056 LSFLOAT req; 00057 LSINT32 managed; 00058 LSINT32 bitrate_min; 00059 LSINT32 bitrate_av; 00060 LSDOUBLE bitrate_av_damp; 00061 LSINT32 bitrate_max; 00062 LSINT32 bitrate_reservoir; 00063 LSDOUBLE bitrate_reservoir_bias; 00064 00065 LSINT32 impulse_block_p; 00066 LSINT32 noise_normalize_p; 00067 LSINT32 coupling_p; 00068 00069 LSDOUBLE stereo_point_setting; 00070 LSDOUBLE lowpass_kHz; 00071 LSINT32 lowpass_altered; 00072 00073 LSDOUBLE ath_floating_dB; 00074 LSDOUBLE ath_absolute_dB; 00075 00076 LSDOUBLE amplitude_track_dBpersec; 00077 LSDOUBLE trigger_setting; 00078 00079 highlevel_byblocktype block[4]; // Padding, impulse, transition, long. 00080 } * LPhighlevel_encode_setup, * const LPChighlevel_encode_setup; 00081 }; 00082 00083 } // namespace lss 00084 00085 #endif // __LSS_VORBISHIGHLEVEL_H__ 00086