"L. Spiro Engine"

F:/My Projects/LSEngine/Modules/LSSoundLib/Src/Ogg/LSSVorbisHighLevel.h

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 
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator