summaryrefslogtreecommitdiff
path: root/lib/rbcodec/codecs/libtremor/codec_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec/codecs/libtremor/codec_internal.h')
-rw-r--r--lib/rbcodec/codecs/libtremor/codec_internal.h93
1 files changed, 93 insertions, 0 deletions
diff --git a/lib/rbcodec/codecs/libtremor/codec_internal.h b/lib/rbcodec/codecs/libtremor/codec_internal.h
new file mode 100644
index 0000000000..3cbd7cde89
--- /dev/null
+++ b/lib/rbcodec/codecs/libtremor/codec_internal.h
@@ -0,0 +1,93 @@
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
23typedef void vorbis_look_mapping;
24typedef void vorbis_look_floor;
25typedef void vorbis_look_residue;
26typedef void vorbis_look_transform;
27
28/* mode ************************************************************/
29typedef struct {
30 int blockflag;
31 int windowtype;
32 int transformtype;
33 int mapping;
34} vorbis_info_mode;
35
36typedef void vorbis_info_floor;
37typedef void vorbis_info_residue;
38typedef void vorbis_info_mapping;
39
40typedef 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
58typedef struct codec_setup_info {
59
60 /* Vorbis supports only short and long blocks, but allows the
61 encoder to choose the sizes */
62
63 int blocksizes_nbits[2];
64 long blocksizes[2]; /* = 1<<nbits */
65
66 /* modes are the primary means of supporting on-the-fly different
67 blocksizes, different channel mappings (LR or M/A),
68 different residue backends, etc. Each mode consists of a
69 blocksize flag and a mapping (along with the mapping setup */
70
71 int modes;
72 int maps;
73 int times;
74 int floors;
75 int residues;
76 int books;
77
78 vorbis_info_mode *mode_param[64];
79 int map_type[64];
80 vorbis_info_mapping *map_param[64];
81 int time_type[64];
82 int floor_type[64];
83 vorbis_info_floor *floor_param[64];
84 int residue_type[64];
85 vorbis_info_residue *residue_param[64];
86 static_codebook *book_param[256];
87 codebook *fullbooks;
88
89 int passlimit[32]; /* iteration limit per couple/quant pass */
90 int coupling_passes;
91} codec_setup_info;
92
93#endif