1 /********************************************************************
3 * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. *
5 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS *
6 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
7 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. *
9 * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
10 * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ *
12 ********************************************************************
14 function: libvorbis codec headers
16 ********************************************************************/
23 typedef void vorbis_look_mapping
;
24 typedef void vorbis_look_floor
;
25 typedef void vorbis_look_residue
;
26 typedef void vorbis_look_transform
;
28 /* mode ************************************************************/
36 typedef void vorbis_info_floor
;
37 typedef void vorbis_info_residue
;
38 typedef void vorbis_info_mapping
;
40 typedef struct private_state
{
41 /* local lookup storage */
42 const void *window
[2];
44 /* backend lookups are tied to the mode, not the backend or naked mapping */
46 vorbis_look_mapping
**mode
;
48 ogg_int64_t sample_count
;
52 /* codec_setup_info contains all the setup information specific to the
53 specific compression/decompression mode in progress (eg,
54 psychoacoustic settings, channel setup, options, codebook
56 *********************************************************************/
58 typedef struct codec_setup_info
{
60 /* Vorbis supports only short and long blocks, but allows the
61 encoder to choose the sizes */
65 /* modes are the primary means of supporting on-the-fly different
66 blocksizes, different channel mappings (LR or M/A),
67 different residue backends, etc. Each mode consists of a
68 blocksize flag and a mapping (along with the mapping setup */
77 vorbis_info_mode
*mode_param
[64];
79 vorbis_info_mapping
*map_param
[64];
82 vorbis_info_floor
*floor_param
[64];
84 vorbis_info_residue
*residue_param
[64];
85 static_codebook
*book_param
[256];
88 int passlimit
[32]; /* iteration limit per couple/quant pass */