Mercurial > mplayer.hg
annotate mp3lib/mpg123.h @ 3555:33bbfea73af3
Partial sync with linux stuff (Linux driver is still buggy for me)
author | nick |
---|---|
date | Mon, 17 Dec 2001 09:07:12 +0000 |
parents | a738eae695cc |
children | 1320f1b3229d |
rev | line source |
---|---|
1 | 1 /* |
2 * mpg123 defines | |
3 * used source: musicout.h from mpegaudio package | |
4 */ | |
5 | |
6 #include "../config.h" | |
7 | |
1256
a738eae695cc
#ifndef M_PI and M_SQRT2 added while fearing from redefining :)
alex
parents:
1245
diff
changeset
|
8 #ifndef M_PI |
a738eae695cc
#ifndef M_PI and M_SQRT2 added while fearing from redefining :)
alex
parents:
1245
diff
changeset
|
9 #define M_PI 3.141592653589793238462 |
a738eae695cc
#ifndef M_PI and M_SQRT2 added while fearing from redefining :)
alex
parents:
1245
diff
changeset
|
10 #endif |
a738eae695cc
#ifndef M_PI and M_SQRT2 added while fearing from redefining :)
alex
parents:
1245
diff
changeset
|
11 #ifndef M_SQRT2 |
a738eae695cc
#ifndef M_PI and M_SQRT2 added while fearing from redefining :)
alex
parents:
1245
diff
changeset
|
12 #define M_SQRT2 1.414213562373095048802 |
a738eae695cc
#ifndef M_PI and M_SQRT2 added while fearing from redefining :)
alex
parents:
1245
diff
changeset
|
13 #endif |
a738eae695cc
#ifndef M_PI and M_SQRT2 added while fearing from redefining :)
alex
parents:
1245
diff
changeset
|
14 #define REAL_IS_FLOAT |
a738eae695cc
#ifndef M_PI and M_SQRT2 added while fearing from redefining :)
alex
parents:
1245
diff
changeset
|
15 #define NEW_DCT9 |
1 | 16 |
17 #undef MPG123_REMOTE /* Get rid of this stuff for Win32 */ | |
18 | |
19 /* | |
20 # define real float | |
21 # define real long double | |
22 # define real double | |
23 #include "audio.h" | |
24 | |
25 // #define AUDIOBUFSIZE 4096 | |
26 */ | |
27 | |
28 #define FALSE 0 | |
29 #define TRUE 1 | |
30 | |
31 #define MAX_NAME_SIZE 81 | |
32 #define SBLIMIT 32 | |
33 #define SCALE_BLOCK 12 | |
34 #define SSLIMIT 18 | |
35 | |
36 #define MPG_MD_STEREO 0 | |
37 #define MPG_MD_JOINT_STEREO 1 | |
38 #define MPG_MD_DUAL_CHANNEL 2 | |
39 #define MPG_MD_MONO 3 | |
40 | |
41 /* #define MAXOUTBURST 32768 */ | |
42 | |
43 /* Pre Shift fo 16 to 8 bit converter table */ | |
44 #define AUSHIFT (3) | |
45 | |
46 struct al_table | |
47 { | |
48 short bits; | |
49 short d; | |
50 }; | |
51 | |
52 struct frame { | |
53 struct al_table *alloc; | |
54 int (*synth)(real *,int,unsigned char *,int *); | |
55 int (*synth_mono)(real *,unsigned char *,int *); | |
56 int stereo; | |
57 int jsbound; | |
58 int single; | |
59 int II_sblimit; | |
60 int down_sample_sblimit; | |
61 int lsf; | |
62 int mpeg25; | |
63 int down_sample; | |
64 int header_change; | |
65 int lay; | |
66 int error_protection; | |
67 int bitrate_index; | |
68 long sampling_frequency; | |
69 int padding; | |
70 int extension; | |
71 int mode; | |
72 int mode_ext; | |
73 int copyright; | |
74 int original; | |
75 int emphasis; | |
76 long framesize; /* computed framesize */ | |
77 }; | |
78 | |
79 | |
80 struct gr_info_s { | |
81 int scfsi; | |
82 unsigned part2_3_length; | |
83 unsigned big_values; | |
84 unsigned scalefac_compress; | |
85 unsigned block_type; | |
86 unsigned mixed_block_flag; | |
87 unsigned table_select[3]; | |
88 unsigned subblock_gain[3]; | |
89 unsigned maxband[3]; | |
90 unsigned maxbandl; | |
91 unsigned maxb; | |
92 unsigned region1start; | |
93 unsigned region2start; | |
94 unsigned preflag; | |
95 unsigned scalefac_scale; | |
96 unsigned count1table_select; | |
97 int full_gain[3]; | |
98 int pow2gain; | |
99 }; | |
100 | |
101 struct III_sideinfo | |
102 { | |
103 unsigned main_data_begin; | |
104 unsigned private_bits; | |
105 struct { | |
106 struct gr_info_s gr[2]; | |
107 } ch[2]; | |
108 }; | |
109 | |
110 static long freqs[9]; | |
1245
03b7e2955a20
Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents:
787
diff
changeset
|
111 extern real decwin[(512+32)]; |
03b7e2955a20
Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents:
787
diff
changeset
|
112 extern real *pnts[]; |
1 | 113 |
114 static int do_layer2(struct frame *fr,int single); | |
115 static int do_layer3(struct frame *fr,int single); | |
116 static int synth_1to1(real *bandPtr,int channel,unsigned char *out,int *pnt); | |
117 | |
1245
03b7e2955a20
Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents:
787
diff
changeset
|
118 extern int synth_1to1_pent( real *,int,short * ); |
03b7e2955a20
Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents:
787
diff
changeset
|
119 extern void make_decode_tables_MMX(long scaleval); |
03b7e2955a20
Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents:
787
diff
changeset
|
120 extern int synth_1to1_MMX( real *,int,short * ); |
03b7e2955a20
Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents:
787
diff
changeset
|
121 extern int synth_1to1_MMX_s(real *, int, short *, short *, int *); |
1 | 122 extern void dct64(real *a,real *b,real *c); |
123 | |
1245
03b7e2955a20
Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents:
787
diff
changeset
|
124 extern void dct36_3dnow(real *,real *,real *,real *,real *); |
03b7e2955a20
Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents:
787
diff
changeset
|
125 extern void dct36_3dnowex(real *,real *,real *,real *,real *); |
03b7e2955a20
Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents:
787
diff
changeset
|
126 extern void dct36_sse(real *,real *,real *,real *,real *); |
787 | 127 |
1245
03b7e2955a20
Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents:
787
diff
changeset
|
128 typedef int (*synth_func_t)( real *,int,short * ); |
03b7e2955a20
Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents:
787
diff
changeset
|
129 typedef void (*dct36_func_t)(real *,real *,real *,real *,real *); |