annotate libmpcodecs/vqf.h @ 29385:f9ae25067fe0

Fix 24bit audio playback. The reordering channels code had reoccurring bug where in switch(samplesize) block the case 3 (3 bytes) doesn't end with break; leading to execution of the next case 4 too. This mangles the already processed data and causes massive memory corruption.
author iive
date Sun, 19 Jul 2009 09:55:29 +0000
parents 0f1b5b68af32
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14276
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
1 /* (c)Copyright 1996-2000 NTT Cyber Space Laboratories */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
2 /* Released on 2000.05.22 by N. Iwakami */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
3 /* Modified on 2000.05.25 by N. Iwakami */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
4 /* Released on 2000.09.06 by N. Iwakami */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
5
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
6 // Modified for MPlayer on 2004.12.29
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
7
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25869
diff changeset
8 #ifndef MPLAYER_VQF_H
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25869
diff changeset
9 #define MPLAYER_VQF_H
14276
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
10
26147
41652035483c Add necessary header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
11 #include <stdio.h>
41652035483c Add necessary header #includes to fix 'make checkheaders'.
diego
parents: 26029
diff changeset
12
14276
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
13 #ifdef _MSC_VER
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
14 # ifdef DLL_MODULE
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
15 # define DllPort __declspec( dllexport )
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
16 # else
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
17 # define DllPort __declspec( dllimport )
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
18 # endif
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
19 #else
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
20 # define DllPort
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
21 #endif
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
22
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
23 #ifdef __cplusplus
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
24 extern "C" { // only need to import/export C interface if used by C++ source code
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
25 #endif
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
26
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
27 /************************/
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
28 /*** General settings ***/
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
29 /************************/
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
30 /* Initialization error code */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
31 enum INIT_ERROR_CODE {
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
32 TVQ_NO_ERROR = 0, // no error
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
33 TVQ_ERROR, // general
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
34 TVQ_ERROR_VERSION, // wrong version
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
35 TVQ_ERROR_CHANNEL, // channel setting error
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
36 TVQ_ERROR_MODE, // wrong coding mode
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
37 TVQ_ERROR_PARAM, // inner parameter setting error
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
38 TVQ_ERROR_N_CAN, // wrong number of VQ pre-selection candidates, used only in encoder
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
39 };
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
40
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
41 /* version ID */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
42 #define TVQ_UNKNOWN_VERSION -1
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
43 #define V2 0
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
44 #define V2PP 1
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
45
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
46 #define N_VERSIONS 2
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
47
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
48 /* window types */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
49 enum WINDOW_TYPE {
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
50 ONLY_LONG_WINDOW = 0,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
51 LONG_SHORT_WINDOW,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
52 ONLY_SHORT_WINDOW,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
53 SHORT_LONG_WINDOW,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
54 SHORT_MEDIUM_WINDOW,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
55 MEDIUM_LONG_WINDOW,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
56 LONG_MEDIUM_WINDOW,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
57 MEDIUM_SHORT_WINDOW,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
58 ONLY_MEDIUM_WINDOW,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
59 };
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
60
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
61 /* block types */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
62 enum BLOCK_TYPE {
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
63 BLK_SHORT = 0,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
64 BLK_MEDIUM,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
65 BLK_LONG,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
66 BLK_PPC,
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
67 };
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
68 #define N_BTYPE 3 // number of block types
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
69 #define N_INTR_TYPE 4 // number of interleave types, enum BLOCK_TYPE is commonly used for detecting interleave types.
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
70
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
71 /* maximum number of channels */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
72 #define N_CH_MAX 2
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
73
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
74 /* type definition of code information interface */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
75 typedef struct {
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
76 /* block type */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
77 int w_type;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
78 int btype;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
79
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
80 /* FBC info */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
81 int *segment_sw[ N_CH_MAX ];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
82 int *band_sw[ N_CH_MAX ];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
83 int *fg_intensity[ N_CH_MAX ];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
84
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
85 /* VQ info */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
86 int *wvq;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
87
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
88 /* BSE info */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
89 int *fw;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
90 int *fw_alf;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
91
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
92 /* gain info */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
93 int *pow;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
94
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
95 /* LSP info */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
96 int *lsp[ N_CH_MAX ];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
97
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
98 /* PPC info */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
99 int pit[ N_CH_MAX ];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
100 int *pls;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
101 int pgain[ N_CH_MAX ];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
102
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
103 /* EBC info */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
104 int *bc[ N_CH_MAX ];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
105
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
106 void *manager;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
107 } INDEX;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
108
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
109 /***********************************************/
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
110 /*** Definitions about program configuration ***/
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
111 /***********************************************/
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
112 /* type definition of tvqConfInfoSubBlock */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
113 typedef struct {
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
114 int sf_sz; // subframe size
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
115 int nsf; // number of subframes
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
116 int ndiv; // number of division of weighted interleave vector quantization
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
117 int ncrb; // number of Bark-scale subbands
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
118 int fw_ndiv; // number of division of BSE VQ
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
119 int fw_nbit; // number of bits for BSE VQ
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
120 int nsubg; // number of sub-blocks for gain coding
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
121 int ppc_enable; // PPC switch
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
122 int ebc_enable; // EBC switch
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
123 int ebc_crb_base; // EBC base band
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
124 int ebc_bits; // EBC bits
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
125 int fbc_enable; // FBC switch
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
126 int fbc_n_segment; // FBC number of segments
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
127 int fbc_nband; // FBC number of subbands
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
128 int *fbc_crb_tbl; // FBC subband table
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
129 } tvqConfInfoSubBlock;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
130
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
131 /* type definition of tvqConfInfo */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
132 typedef struct {
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
133 /* frame configuration */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
134 int N_CH;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
135 /* window type coding */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
136 int BITS_WTYPE;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
137 /* LSP coding */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
138 int LSP_BIT0;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
139 int LSP_BIT1;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
140 int LSP_BIT2;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
141 int LSP_SPLIT;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
142 /* Bark-scale envelope coding */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
143 int FW_ARSW_BITS;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
144 /* gain coding */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
145 int GAIN_BITS;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
146 int SUB_GAIN_BITS;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
147 /* pitch excitation */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
148 int N_DIV_P;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
149 int BASF_BIT;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
150 int PGAIN_BIT;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
151
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
152 /* block type dependent parameters */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
153 tvqConfInfoSubBlock cfg[N_BTYPE];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
154
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
155 } tvqConfInfo;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
156
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
157
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
158 /*************************************************/
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
159 /*** Definitions about TwinVQ bitstream header ***/
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
160 /*************************************************/
17012
6ff3379a0862 Unify include path handling, -I.. is in CFLAGS.
diego
parents: 14276
diff changeset
161 //#include "declib_src/tvq_hdr.h"
14276
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
162 //#ifndef BUFSIZ
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
163 //#define BUFSIZ 1024
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
164 //#endif
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
165
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
166 #define KEYWORD_BYTES 4
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
167 #define VERSION_BYTES 8
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
168 #define ELEM_BYTES sizeof(unsigned long)
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
169
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
170
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
171 /*
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
172 */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
173 typedef struct {
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
174 char ID[KEYWORD_BYTES+VERSION_BYTES+1];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
175 int size;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
176 /* Common Chunk */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
177 int channelMode; /* channel mode (mono:0/stereo:1) */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
178 int bitRate; /* bit rate (kbit/s) */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
179 int samplingRate; /* sampling rate (44.1 kHz -> 44) */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
180 int securityLevel; /* security level (always 0) */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
181 /* Text Chunk */
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
182 char Name[BUFSIZ];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
183 char Comt[BUFSIZ];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
184 char Auth[BUFSIZ];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
185 char Cpyr[BUFSIZ];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
186 char File[BUFSIZ];
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
187 char Extr[BUFSIZ]; // add by OKAMOTO 99.12.21
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
188 /* Data size chunk*/
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
189 int Dsiz;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
190 } headerInfo;
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
191
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
192 // TwinVQ decoder initialization/termination functions
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
193 //DllPort int TvqInitialize( headerInfo *setupInfo, INDEX *index, int dispErrorMessageBox );
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
194 //DllPort void TvqTerminate( INDEX *index );
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
195 //DllPort void TvqGetVectorInfo(int *bits0[], int *bits1[]);
29212
eda346733b8c Add missing 'void' to parameterless function declarations.
diego
parents: 26147
diff changeset
196 //DllPort void TvqResetFrameCounter(void);
14276
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
197
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
198 // TwinVQ decoder function
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
199 //DllPort void TvqDecodeFrame(INDEX *indexp, float out[]);
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
200 //DllPort int TvqWtypeToBtype( int w_type, int *btype );
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
201 //DllPort void TvqUpdateVectorInfo(int varbits, int *ndiv, int bits0[], int bits1[]);
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
202 //DllPort void TvqSetFrameCounter( int position );
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
203
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
204 // TwinVQ query functions
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
205 //DllPort int TvqCheckVersion(char *versionID);
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
206 //DllPort void TvqGetSetupInfo(headerInfo *setupInfo); // setup information
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
207 //DllPort void TvqGetConfInfo(tvqConfInfo *cf); // configuration information
29212
eda346733b8c Add missing 'void' to parameterless function declarations.
diego
parents: 26147
diff changeset
208 //DllPort int TvqGetFrameSize(void); // frame size
eda346733b8c Add missing 'void' to parameterless function declarations.
diego
parents: 26147
diff changeset
209 //DllPort int TvqGetNumChannels(void); // number of channels
eda346733b8c Add missing 'void' to parameterless function declarations.
diego
parents: 26147
diff changeset
210 //DllPort int TvqGetBitRate(void); // total bitrate
eda346733b8c Add missing 'void' to parameterless function declarations.
diego
parents: 26147
diff changeset
211 //DllPort float TvqGetSamplingRate(void); // sampling rate
eda346733b8c Add missing 'void' to parameterless function declarations.
diego
parents: 26147
diff changeset
212 //DllPort int TvqGetNumFixedBitsPerFrame(void); // number of fixed bits per frame
eda346733b8c Add missing 'void' to parameterless function declarations.
diego
parents: 26147
diff changeset
213 //DllPort int TvqGetNumFrames(void); // number of decoded frame
14276
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
214 //DllPort int TvqGetModuleVersion( char* versionString );
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
215
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
216 #ifdef V2PLUS_SUPPORT
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
217 // TwinVQ FB coding tool control
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 29212
diff changeset
218 DllPort void TvqFbCountUsedBits(int nbit); // count number of used bits
29212
eda346733b8c Add missing 'void' to parameterless function declarations.
diego
parents: 26147
diff changeset
219 DllPort float TvqGetFbCurrentBitrate(void); // query average bitrate for the tool
29263
0f1b5b68af32 whitespace cosmetics: Remove all trailing whitespace.
diego
parents: 29212
diff changeset
220 DllPort int TvqGetFbTotalBits(void); // query total number of used bits
14276
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
221 #endif
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
222
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
223 #ifdef __cplusplus
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
224 }
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
225 #endif
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
226
fa80ed52127b TwinVQ decoder and demuxer
rtognimp
parents:
diff changeset
227
26029
4129c8cfa742 Add MPLAYER_ prefix to multiple inclusion guards.
diego
parents: 25869
diff changeset
228 #endif /* MPLAYER_VQF_H */