Mercurial > audlegacy
annotate Plugins/Input/mpg123/mpg123.h @ 1090:09eb2c83097a trunk
[svn] Psychoaccoustics support (to disable, temporarily add -UPSYCHO to your CFLAGS.):
This commit brings psychoaccoustics support (as used in mp3surround decoders) to libmpgdec.
For example, we can now almost fully compensate for lack of bandwidth in ISO compliant MP3 encodings.
In addition, further inaccuracies with pitch and the lack of reverb feeling that some MP3s have are
detected and automatically compensated for.
author | nenolod |
---|---|
date | Sat, 20 May 2006 20:36:10 -0700 |
parents | e75c7856fbea |
children | ecdd6a7cafed |
rev | line source |
---|---|
61 | 1 /* |
2 * mpg123 defines | |
3 * used source: musicout.h from mpegaudio package | |
4 */ | |
5 | |
6 #ifndef __MPG123_H__ | |
7 #define __MPG123_H__ | |
8 | |
9 #ifdef HAVE_CONFIG_H | |
10 # include "config.h" | |
11 #endif | |
12 | |
13 #include <glib.h> | |
957
12f57026da8f
[svn] First attempt at introducing taglib here. Very rough, needs polishing. Please wear protective goggles before opening the file dialog. It *will* explode.
chainsaw
parents:
701
diff
changeset
|
14 #include <tag_c.h> |
61 | 15 |
970
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
16 #ifdef INTEGER_COMPILE |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
17 |
1089
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
18 typedef long mpgdec_real; |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
19 |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
20 # define REAL_RADIX 15 |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
21 # define REAL_FACTOR (32.0 * 1024.0) |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
22 |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
23 # define REAL_PLUS_32767 ( 32767 << REAL_RADIX ) |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
24 # define REAL_MINUS_32768 ( -32768 << REAL_RADIX ) |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
25 |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
26 # define DOUBLE_TO_REAL(x) ((int)((x) * REAL_FACTOR)) |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
27 # define REAL_TO_SHORT(x) ((x) >> REAL_RADIX) |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
28 # define REAL_MUL(x, y) (((long long)(x) * (long long)(y)) >> REAL_RADIX) |
970
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
29 |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
30 #else |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
31 |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
32 typedef float mpgdec_real; |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
33 |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
34 #endif |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
35 |
1089
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
36 #ifndef DOUBLE_TO_REAL |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
37 # define DOUBLE_TO_REAL(x) (x) |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
38 #endif |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
39 #ifndef REAL_TO_SHORT |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
40 # define REAL_TO_SHORT(x) (x) |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
41 #endif |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
42 #ifndef REAL_PLUS_32767 |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
43 # define REAL_PLUS_32767 32767.0 |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
44 #endif |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
45 #ifndef REAL_MINUS_32768 |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
46 # define REAL_MINUS_32768 -32768.0 |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
47 #endif |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
48 #ifndef REAL_MUL |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
49 # define REAL_MUL(x, y) ((x) * (y)) |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
50 #endif |
e75c7856fbea
[svn] - when using fixed integer based compile -DINTEGER_COMPILE, we want to use long type, not int (also use radixes to emulate FPU math)
nenolod
parents:
971
diff
changeset
|
51 |
61 | 52 enum { |
53 SYNTH_AUTO, | |
54 SYNTH_FPU, | |
55 SYNTH_3DNOW, | |
56 SYNTH_MMX, | |
57 }; | |
58 | |
59 enum { | |
60 DETECT_EXTENSION, | |
61 DETECT_CONTENT, | |
62 DETECT_BOTH | |
63 }; | |
64 | |
65 #include <gtk/gtk.h> | |
66 | |
67 #include "audacious/plugin.h" | |
68 #include "dxhead.h" | |
69 #include "xmms-id3.h" | |
70 | |
71 #define SBLIMIT 32 | |
72 #define SCALE_BLOCK 12 | |
73 #define SSLIMIT 18 | |
74 | |
75 #define MPG_MD_STEREO 0 | |
76 #define MPG_MD_JOINT_STEREO 1 | |
77 #define MPG_MD_DUAL_CHANNEL 2 | |
78 #define MPG_MD_MONO 3 | |
79 | |
80 #define ENCODING_SEPARATOR " ,:;|/" | |
81 | |
127
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
82 #define MAXFRAMESIZE 4096 |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
83 |
61 | 84 struct id3v1tag_t { |
85 char tag[3]; /* always "TAG": defines ID3v1 tag 128 bytes before EOF */ | |
86 char title[30]; | |
87 char artist[30]; | |
88 char album[30]; | |
89 char year[4]; | |
90 union { | |
91 struct { | |
92 char comment[30]; | |
93 } v1_0; | |
94 struct { | |
95 char comment[28]; | |
96 char __zero; | |
97 unsigned char track_number; | |
98 } v1_1; | |
99 } u; | |
100 unsigned char genre; | |
101 }; | |
102 | |
103 struct id3tag_t { | |
104 char title[64]; | |
105 char artist[64]; | |
106 char album[64]; | |
107 char comment[256]; | |
108 char genre[256]; | |
109 gint year; | |
110 gint track_number; | |
111 }; | |
112 | |
113 typedef struct { | |
114 int going, num_frames, eof, jump_to_time, eq_active; | |
115 int songtime; | |
116 double tpf; | |
117 float eq_mul[576]; | |
118 gboolean output_audio, first_frame, network_stream; | |
119 guint32 filesize; /* Filesize without junk */ | |
120 } PlayerInfo; | |
121 | |
122 void mpg123_set_eq(int on, float preamp, float *band); | |
123 void mpg123_file_info_box(char *); | |
124 | |
125 extern PlayerInfo *mpg123_info; | |
126 extern InputPlugin mpg123_ip; | |
127 | |
128 struct al_table { | |
129 short bits; | |
130 short d; | |
131 }; | |
132 | |
133 struct frame { | |
134 struct al_table *alloc; | |
970
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
135 int (*synth) (mpgdec_real *, int, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
136 int (*synth_mono) (mpgdec_real *, unsigned char *, int *); |
61 | 137 int stereo; |
138 int jsbound; | |
139 int single; | |
140 int II_sblimit; | |
141 int down_sample_sblimit; | |
142 int lsf; | |
143 int mpeg25; | |
144 int down_sample; | |
145 int header_change; | |
146 int lay; | |
147 int (*do_layer) (struct frame * fr); | |
148 int error_protection; | |
149 int bitrate_index; | |
150 int sampling_frequency; | |
151 int padding; | |
152 int extension; | |
153 int mode; | |
154 int mode_ext; | |
155 int copyright; | |
156 int original; | |
157 int emphasis; | |
158 int framesize; /* computed framesize */ | |
159 int synth_type; | |
160 }; | |
161 | |
162 void mpg123_configure(void); | |
163 | |
164 typedef struct { | |
165 gint resolution; | |
166 gint channels; | |
167 gint downsample; | |
168 gint http_buffer_size; | |
169 gint http_prebuffer; | |
170 gboolean use_proxy; | |
171 gchar *proxy_host; | |
172 gint proxy_port; | |
173 gboolean proxy_use_auth; | |
174 gchar *proxy_user, *proxy_pass; | |
175 gboolean save_http_stream; | |
176 gchar *save_http_path; | |
177 gboolean use_udp_channel; | |
178 gchar *id3_format; | |
179 gboolean title_override, disable_id3v2; | |
180 gboolean title_encoding_enabled; | |
181 gchar *title_encoding; | |
182 int detect_by; | |
183 int default_synth; | |
184 } MPG123Config; | |
185 | |
186 extern MPG123Config mpg123_cfg; | |
187 | |
188 struct bitstream_info { | |
189 int bitindex; | |
190 unsigned char *wordpointer; | |
191 }; | |
192 | |
193 extern struct bitstream_info bsi; | |
194 | |
127
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
195 struct mpstr { |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
196 int bsize; |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
197 int framesize; |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
198 int fsizeold; |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
199 struct frame fr; |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
200 /* int (*do_layer)(struct mpstr *,struct frame *fr,int,struct audio_info_struct *); */ |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
201 unsigned char bsspace[2][MAXFRAMESIZE+512]; /* MAXFRAMESIZE */ |
970
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
202 mpgdec_real hybrid_block[2][2][SBLIMIT*SSLIMIT]; |
127
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
203 int hybrid_blc[2]; |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
204 unsigned long header; |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
205 int bsnum; |
970
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
206 mpgdec_real synth_buffs[2][2][0x110]; |
127
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
207 int synth_bo; |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
208 |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
209 struct bitstream_info bsi; |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
210 }; |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
211 |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
212 |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
213 #define AUSHIFT 3 |
05d824e30afd
[svn] Synchronize mpg123 code with mpg123-0.59s.mc3. This brings us superior accuracy to libMAD, apparently.
nenolod
parents:
61
diff
changeset
|
214 |
61 | 215 /* ------ Declarations from "http.c" ------ */ |
216 | |
217 extern int mpg123_http_open(char *url); | |
701
d539e5c5f730
[svn] Fixes of the remaining GCC 4.1 warnings from external contributor Diego "Flameeyes" Petteno (Gentoo).
chainsaw
parents:
177
diff
changeset
|
218 int mpg123_http_read(gpointer data, gsize length); |
61 | 219 void mpg123_http_close(void); |
220 char *mpg123_http_get_title(char *url); | |
221 int mpg123_http_get_length(void); | |
222 void mpg123_http_seek(long pos); | |
223 | |
224 /* ------ Declarations from "common.c" ------ */ | |
225 extern unsigned int mpg123_get1bit(void); | |
226 extern unsigned int mpg123_getbits(int); | |
227 extern unsigned int mpg123_getbits_fast(int); | |
228 | |
229 extern void mpg123_open_stream(char *bs_filenam, int fd); | |
230 extern int mpg123_head_check(unsigned long); | |
231 extern void mpg123_stream_close(void); | |
232 | |
233 extern void mpg123_set_pointer(long); | |
234 | |
235 extern unsigned char *mpg123_pcm_sample; | |
236 extern int mpg123_pcm_point; | |
237 | |
238 struct gr_info_s { | |
239 int scfsi; | |
240 unsigned part2_3_length; | |
241 unsigned big_values; | |
242 unsigned scalefac_compress; | |
243 unsigned block_type; | |
244 unsigned mixed_block_flag; | |
245 unsigned table_select[3]; | |
246 unsigned subblock_gain[3]; | |
247 unsigned maxband[3]; | |
248 unsigned maxbandl; | |
249 unsigned maxb; | |
250 unsigned region1start; | |
251 unsigned region2start; | |
252 unsigned preflag; | |
253 unsigned scalefac_scale; | |
254 unsigned count1table_select; | |
970
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
255 mpgdec_real *full_gain[3]; |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
256 mpgdec_real *pow2gain; |
61 | 257 }; |
258 | |
259 struct III_sideinfo { | |
260 unsigned main_data_begin; | |
261 unsigned private_bits; | |
262 struct { | |
263 struct gr_info_s gr[2]; | |
264 } ch[2]; | |
265 }; | |
266 | |
267 extern void open_stream(char *, int fd); | |
268 extern long mpg123_tell_stream(void); | |
269 extern void mpg123_read_frame_init(void); | |
270 extern int mpg123_read_frame(struct frame *fr); | |
271 extern int mpg123_back_frame(struct frame *fr, int num); | |
272 int mpg123_stream_jump_to_frame(struct frame *fr, int frame); | |
273 int mpg123_stream_jump_to_byte(struct frame *fr, int byte); | |
274 int mpg123_stream_check_for_xing_header(struct frame *fr, | |
275 xing_header_t * xhead); | |
276 int mpg123_calc_numframes(struct frame *fr); | |
277 | |
278 extern int mpg123_do_layer3(struct frame *fr); | |
279 extern int mpg123_do_layer2(struct frame *fr); | |
280 extern int mpg123_do_layer1(struct frame *fr); | |
281 | |
970
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
282 extern int mpg123_synth_1to1(mpgdec_real *, int, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
283 extern int mpg123_synth_1to1_8bit(mpgdec_real *, int, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
284 extern int mpg123_synth_1to1_mono(mpgdec_real *, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
285 extern int mpg123_synth_1to1_mono2stereo(mpgdec_real *, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
286 extern int mpg123_synth_1to1_8bit_mono(mpgdec_real *, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
287 extern int mpg123_synth_1to1_8bit_mono2stereo(mpgdec_real *, unsigned char *, |
61 | 288 int *); |
289 | |
970
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
290 extern int mpg123_synth_2to1(mpgdec_real *, int, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
291 extern int mpg123_synth_2to1_8bit(mpgdec_real *, int, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
292 extern int mpg123_synth_2to1_mono(mpgdec_real *, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
293 extern int mpg123_synth_2to1_mono2stereo(mpgdec_real *, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
294 extern int mpg123_synth_2to1_8bit_mono(mpgdec_real *, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
295 extern int mpg123_synth_2to1_8bit_mono2stereo(mpgdec_real *, unsigned char *, |
61 | 296 int *); |
297 | |
970
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
298 extern int mpg123_synth_4to1(mpgdec_real *, int, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
299 extern int mpg123_synth_4to1_8bit(mpgdec_real *, int, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
300 extern int mpg123_synth_4to1_mono(mpgdec_real *, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
301 extern int mpg123_synth_4to1_mono2stereo(mpgdec_real *, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
302 extern int mpg123_synth_4to1_8bit_mono(mpgdec_real *, unsigned char *, int *); |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
303 extern int mpg123_synth_4to1_8bit_mono2stereo(mpgdec_real *, unsigned char *, |
61 | 304 int *); |
305 | |
306 extern void mpg123_rewindNbits(int bits); | |
307 extern int mpg123_hsstell(void); | |
308 extern void mpg123_set_pointer(long); | |
309 extern void mpg123_huffman_decoder(int, int *); | |
310 extern void mpg123_huffman_count1(int, int *); | |
311 extern int mpg123_get_songlen(struct frame *fr, int no); | |
312 | |
313 #define mpg123_getcpuflags(a, b) \ | |
314 do { \ | |
315 *(a) = 0; \ | |
316 *(b) = 0; \ | |
317 } while (0) | |
318 | |
319 void mpg123_init_layer3(int); | |
320 void mpg123_init_layer2(gboolean); | |
321 void mpg123_make_decode_tables(long scaleval); | |
322 void mpg123_make_conv16to8_table(void); | |
970
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
323 void mpg123_dct64(mpgdec_real *, mpgdec_real *, mpgdec_real *); |
61 | 324 |
325 int mpg123_decode_header(struct frame *fr, unsigned long newhead); | |
326 double mpg123_compute_bpf(struct frame *fr); | |
327 double mpg123_compute_tpf(struct frame *fr); | |
328 guint mpg123_strip_spaces(char *src, size_t n); | |
957
12f57026da8f
[svn] First attempt at introducing taglib here. Very rough, needs polishing. Please wear protective goggles before opening the file dialog. It *will* explode.
chainsaw
parents:
701
diff
changeset
|
329 gchar *mpg123_format_song_title(TagLib_Tag *taglib_tag, gchar * filename); |
61 | 330 double mpg123_relative_pos(void); |
331 | |
332 | |
333 extern gchar ** mpg123_id3_encoding_list; | |
334 extern unsigned char *mpg123_conv16to8; | |
335 extern const int mpg123_freqs[9]; | |
970
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
336 extern mpgdec_real mpg123_muls[27][64]; |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
337 extern mpgdec_real mpg123_decwin[512 + 32]; |
0f294f2b0a9b
[svn] - integer-mode decoding accuracy improvements
nenolod
parents:
957
diff
changeset
|
338 extern mpgdec_real *mpg123_pnts[5]; |
61 | 339 |
340 #define GENRE_MAX 0x94 | |
341 extern const char *mpg123_id3_genres[GENRE_MAX]; | |
342 extern const int tabsel_123[2][3][16]; | |
343 | |
1090
09eb2c83097a
[svn] Psychoaccoustics support (to disable, temporarily add -UPSYCHO to your CFLAGS.):
nenolod
parents:
1089
diff
changeset
|
344 /* psycho.c defines */ |
09eb2c83097a
[svn] Psychoaccoustics support (to disable, temporarily add -UPSYCHO to your CFLAGS.):
nenolod
parents:
1089
diff
changeset
|
345 void psycho_init(void); |
09eb2c83097a
[svn] Psychoaccoustics support (to disable, temporarily add -UPSYCHO to your CFLAGS.):
nenolod
parents:
1089
diff
changeset
|
346 int psycho_process(void *data, int length, int nch); |
09eb2c83097a
[svn] Psychoaccoustics support (to disable, temporarily add -UPSYCHO to your CFLAGS.):
nenolod
parents:
1089
diff
changeset
|
347 |
61 | 348 #endif |