Mercurial > mplayer.hg
comparison tremor/codec_internal.h @ 14280:8631a3803289
internal Tremor decoder for Ogg/Vorbis
author | henry |
---|---|
date | Thu, 30 Dec 2004 12:11:32 +0000 |
parents | |
children | cd6b211be811 |
comparison
equal
deleted
inserted
replaced
14279:b4b202086260 | 14280:8631a3803289 |
---|---|
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 |