consistency cosmetics
[mplayer/greg.git] / tremor / codec_internal.h
blob1c92ab24c161435ebcd2a6764a0a1345d7abac81
1 /********************************************************************
2 * *
3 * THIS FILE IS PART OF THE OggVorbis 'TREMOR' CODEC SOURCE CODE. *
4 * *
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. *
8 * *
9 * THE OggVorbis 'TREMOR' SOURCE CODE IS (C) COPYRIGHT 1994-2002 *
10 * BY THE Xiph.Org FOUNDATION http://www.xiph.org/ *
11 * *
12 ********************************************************************
14 function: libvorbis codec headers
16 ********************************************************************/
18 #ifndef _V_CODECI_H_
19 #define _V_CODECI_H_
21 #include "codebook.h"
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 ************************************************************/
29 typedef struct {
30 int blockflag;
31 int windowtype;
32 int transformtype;
33 int mapping;
34 } vorbis_info_mode;
36 typedef void vorbis_info_floor;
37 typedef void vorbis_info_residue;
38 typedef void vorbis_info_mapping;
40 typedef struct backend_lookup_state {
41 /* local lookup storage */
42 ogg_int32_t *window[2];
44 /* backend lookups are tied to the mode, not the backend or naked mapping */
45 int modebits;
46 vorbis_look_mapping **mode;
48 } backend_lookup_state;
50 /* codec_setup_info contains all the setup information specific to the
51 specific compression/decompression mode in progress (eg,
52 psychoacoustic settings, channel setup, options, codebook
53 etc).
54 *********************************************************************/
56 typedef struct codec_setup_info {
58 /* Vorbis supports only short and long blocks, but allows the
59 encoder to choose the sizes */
61 long blocksizes[2];
63 /* modes are the primary means of supporting on-the-fly different
64 blocksizes, different channel mappings (LR or M/A),
65 different residue backends, etc. Each mode consists of a
66 blocksize flag and a mapping (along with the mapping setup */
68 int modes;
69 int maps;
70 int times;
71 int floors;
72 int residues;
73 int books;
75 vorbis_info_mode *mode_param[64];
76 int map_type[64];
77 vorbis_info_mapping *map_param[64];
78 int time_type[64];
79 int floor_type[64];
80 vorbis_info_floor *floor_param[64];
81 int residue_type[64];
82 vorbis_info_residue *residue_param[64];
83 static_codebook *book_param[256];
84 codebook *fullbooks;
86 int passlimit[32]; /* iteration limit per couple/quant pass */
87 int coupling_passes;
88 } codec_setup_info;
90 #endif