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