diff options
Diffstat (limited to 'apps/codecs/libtremor/codec_internal.h')
-rw-r--r-- | apps/codecs/libtremor/codec_internal.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/apps/codecs/libtremor/codec_internal.h b/apps/codecs/libtremor/codec_internal.h new file mode 100644 index 0000000000..3ca7f54724 --- /dev/null +++ b/apps/codecs/libtremor/codec_internal.h | |||
@@ -0,0 +1,92 @@ | |||
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 | ******************************************************************** | ||
13 | |||
14 | function: libvorbis codec headers | ||
15 | |||
16 | ********************************************************************/ | ||
17 | |||
18 | #ifndef _V_CODECI_H_ | ||
19 | #define _V_CODECI_H_ | ||
20 | |||
21 | #include "codebook.h" | ||
22 | |||
23 | typedef void vorbis_look_mapping; | ||
24 | typedef void vorbis_look_floor; | ||
25 | typedef void vorbis_look_residue; | ||
26 | typedef void vorbis_look_transform; | ||
27 | |||
28 | /* mode ************************************************************/ | ||
29 | typedef struct { | ||
30 | int blockflag; | ||
31 | int windowtype; | ||
32 | int transformtype; | ||
33 | int mapping; | ||
34 | } vorbis_info_mode; | ||
35 | |||
36 | typedef void vorbis_info_floor; | ||
37 | typedef void vorbis_info_residue; | ||
38 | typedef void vorbis_info_mapping; | ||
39 | |||
40 | typedef struct private_state { | ||
41 | /* local lookup storage */ | ||
42 | const void *window[2]; | ||
43 | |||
44 | /* backend lookups are tied to the mode, not the backend or naked mapping */ | ||
45 | int modebits; | ||
46 | vorbis_look_mapping **mode; | ||
47 | |||
48 | ogg_int64_t sample_count; | ||
49 | |||
50 | } private_state; | ||
51 | |||
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 | ||
55 | etc). | ||
56 | *********************************************************************/ | ||
57 | |||
58 | typedef struct codec_setup_info { | ||
59 | |||
60 | /* Vorbis supports only short and long blocks, but allows the | ||
61 | encoder to choose the sizes */ | ||
62 | |||
63 | long blocksizes[2]; | ||
64 | |||
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 */ | ||
69 | |||
70 | int modes; | ||
71 | int maps; | ||
72 | int times; | ||
73 | int floors; | ||
74 | int residues; | ||
75 | int books; | ||
76 | |||
77 | vorbis_info_mode *mode_param[64]; | ||
78 | int map_type[64]; | ||
79 | vorbis_info_mapping *map_param[64]; | ||
80 | int time_type[64]; | ||
81 | int floor_type[64]; | ||
82 | vorbis_info_floor *floor_param[64]; | ||
83 | int residue_type[64]; | ||
84 | vorbis_info_residue *residue_param[64]; | ||
85 | static_codebook *book_param[256]; | ||
86 | codebook *fullbooks; | ||
87 | |||
88 | int passlimit[32]; /* iteration limit per couple/quant pass */ | ||
89 | int coupling_passes; | ||
90 | } codec_setup_info; | ||
91 | |||
92 | #endif | ||