examples/SFExamples/oggvorbiscodec/src/tremor/codec_internal.h

00001 /********************************************************************
00002  *                                                                  *
00003  * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE.   *
00004  *                                                                  *
00005  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
00006  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
00007  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
00008  *                                                                  *
00009  * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002    *
00010  * BY THE Xiph.Org FOUNDATION http://www.xiph.org/                  *
00011  *                                                                  *
00012  ********************************************************************
00013 
00014  function: libvorbis codec headers
00015 
00016  ********************************************************************/
00017 
00018 #ifndef _V_CODECI_H_
00019 #define _V_CODECI_H_
00020 
00021 #include "codebook.h"
00022 
00023 typedef void vorbis_look_mapping;
00024 typedef void vorbis_look_floor;
00025 typedef void vorbis_look_residue;
00026 typedef void vorbis_look_transform;
00027 
00028 /* mode ************************************************************/
00029 typedef struct {
00030   int blockflag;
00031   int windowtype;
00032   int transformtype;
00033   int mapping;
00034 } vorbis_info_mode;
00035 
00036 typedef void vorbis_info_floor;
00037 typedef void vorbis_info_residue;
00038 typedef void vorbis_info_mapping;
00039 
00040 typedef struct private_state {
00041   /* local lookup storage */
00042   const void             *window[2];
00043 
00044   /* backend lookups are tied to the mode, not the backend or naked mapping */
00045   int                     modebits;
00046   vorbis_look_mapping   **mode;
00047 
00048   ogg_int64_t sample_count;
00049 
00050 } private_state;
00051 
00052 /* codec_setup_info contains all the setup information specific to the
00053    specific compression/decompression mode in progress (eg,
00054    psychoacoustic settings, channel setup, options, codebook
00055    etc).  
00056 *********************************************************************/
00057 
00058 typedef struct codec_setup_info {
00059 
00060   /* Vorbis supports only short and long blocks, but allows the
00061      encoder to choose the sizes */
00062 
00063   long blocksizes[2];
00064 
00065   /* modes are the primary means of supporting on-the-fly different
00066      blocksizes, different channel mappings (LR or M/A),
00067      different residue backends, etc.  Each mode consists of a
00068      blocksize flag and a mapping (along with the mapping setup */
00069 
00070   int        modes;
00071   int        maps;
00072   int        times;
00073   int        floors;
00074   int        residues;
00075   int        books;
00076 
00077   vorbis_info_mode       *mode_param[64];
00078   int                     map_type[64];
00079   vorbis_info_mapping    *map_param[64];
00080   int                     time_type[64];
00081   int                     floor_type[64];
00082   vorbis_info_floor      *floor_param[64];
00083   int                     residue_type[64];
00084   vorbis_info_residue    *residue_param[64];
00085   static_codebook        *book_param[256];
00086   codebook               *fullbooks;
00087 
00088   int    passlimit[32];     /* iteration limit per couple/quant pass */
00089   int    coupling_passes;
00090 } codec_setup_info;
00091 
00092 #endif

Generated by  doxygen 1.6.2