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