| /******************************************************************** |
| * * |
| * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. * |
| * * |
| * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * |
| * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * |
| * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * |
| * * |
| * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 * |
| * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ * |
| * * |
| ******************************************************************** |
| |
| function: libvorbis codec headers |
| |
| ********************************************************************/ |
| |
| #ifndef _V_CODECI_H_ |
| #define _V_CODECI_H_ |
| |
| #include "codebook.h" |
| |
| typedef void vorbis_look_mapping; |
| typedef void vorbis_look_floor; |
| typedef void vorbis_look_residue; |
| typedef void vorbis_look_transform; |
| |
| /* mode ************************************************************/ |
| typedef struct { |
| int blockflag; |
| int windowtype; |
| int transformtype; |
| int mapping; |
| } vorbis_info_mode; |
| |
| typedef void vorbis_info_floor; |
| typedef void vorbis_info_residue; |
| typedef void vorbis_info_mapping; |
| |
| typedef struct private_state { |
| /* local lookup storage */ |
| const void *window[2]; |
| |
| /* backend lookups are tied to the mode, not the backend or naked mapping */ |
| int modebits; |
| vorbis_look_mapping **mode; |
| |
| ogg_int64_t sample_count; |
| |
| } private_state; |
| |
| /* codec_setup_info contains all the setup information specific to the |
| specific compression/decompression mode in progress (eg, |
| psychoacoustic settings, channel setup, options, codebook |
| etc). |
| *********************************************************************/ |
| |
| typedef struct codec_setup_info { |
| |
| /* Vorbis supports only short and long blocks, but allows the |
| encoder to choose the sizes */ |
| |
| long blocksizes[2]; |
| |
| /* modes are the primary means of supporting on-the-fly different |
| blocksizes, different channel mappings (LR or M/A), |
| different residue backends, etc. Each mode consists of a |
| blocksize flag and a mapping (along with the mapping setup */ |
| |
| int modes; |
| int maps; |
| int times; |
| int floors; |
| int residues; |
| int books; |
| |
| vorbis_info_mode *mode_param[64]; |
| int map_type[64]; |
| vorbis_info_mapping *map_param[64]; |
| int time_type[64]; |
| int floor_type[64]; |
| vorbis_info_floor *floor_param[64]; |
| int residue_type[64]; |
| vorbis_info_residue *residue_param[64]; |
| static_codebook *book_param[256]; |
| codebook *fullbooks; |
| |
| int passlimit[32]; /* iteration limit per couple/quant pass */ |
| int coupling_passes; |
| } codec_setup_info; |
| |
| #endif |