Fix:
[mplayer/glamo.git] / mp3lib / mpg123.h
blob2aace4e783d708653525aede87d0aeacb7560f39
1 /*
2 * Modified for use with MPlayer, for details see the CVS changelog at
3 * http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/
4 * $Id$
5 */
7 /*
8 * mpg123 defines
9 * used source: musicout.h from mpegaudio package
12 #include "config.h"
14 #ifndef M_PI
15 #define M_PI 3.141592653589793238462
16 #endif
17 #ifndef M_SQRT2
18 #define M_SQRT2 1.414213562373095048802
19 #endif
20 #define REAL_IS_FLOAT
21 #define NEW_DCT9
23 #undef MPG123_REMOTE /* Get rid of this stuff for Win32 */
26 # define real float
27 # define real long double
28 # define real double
29 #include "audio.h"
31 // #define AUDIOBUFSIZE 4096
34 #define FALSE 0
35 #define TRUE 1
37 #define MAX_NAME_SIZE 81
38 #define SBLIMIT 32
39 #define SCALE_BLOCK 12
40 #define SSLIMIT 18
42 #define MPG_MD_STEREO 0
43 #define MPG_MD_JOINT_STEREO 1
44 #define MPG_MD_DUAL_CHANNEL 2
45 #define MPG_MD_MONO 3
47 /* #define MAXOUTBURST 32768 */
49 /* Pre Shift fo 16 to 8 bit converter table */
50 #define AUSHIFT (3)
52 struct al_table
54 short bits;
55 short d;
58 struct frame {
59 struct al_table *alloc;
60 int (*synth)(real *,int,unsigned char *,int *);
61 int (*synth_mono)(real *,unsigned char *,int *);
62 int stereo;
63 int jsbound;
64 int single;
65 int II_sblimit;
66 int down_sample_sblimit;
67 int lsf;
68 int mpeg25;
69 int down_sample;
70 int header_change;
71 int lay;
72 int error_protection;
73 int bitrate_index;
74 long sampling_frequency;
75 int padding;
76 int extension;
77 int mode;
78 int mode_ext;
79 int copyright;
80 int original;
81 int emphasis;
82 long framesize; /* computed framesize */
86 struct gr_info_s {
87 int scfsi;
88 unsigned part2_3_length;
89 unsigned big_values;
90 unsigned scalefac_compress;
91 unsigned block_type;
92 unsigned mixed_block_flag;
93 unsigned table_select[3];
94 unsigned subblock_gain[3];
95 unsigned maxband[3];
96 unsigned maxbandl;
97 unsigned maxb;
98 unsigned region1start;
99 unsigned region2start;
100 unsigned preflag;
101 unsigned scalefac_scale;
102 unsigned count1table_select;
103 real *full_gain[3];
104 real *pow2gain;
107 struct III_sideinfo
109 unsigned main_data_begin;
110 unsigned private_bits;
111 struct {
112 struct gr_info_s gr[2];
113 } ch[2];
116 extern real mp3lib_decwin[(512+32)];
117 extern real *mp3lib_pnts[];
119 extern int synth_1to1_pent( real *,int,short * );
120 extern void make_decode_tables_MMX(long scaleval);
121 extern int synth_1to1_MMX( real *,int,short * );
122 extern int synth_1to1_MMX_s(real *, int, short *, short *, int *);
124 extern void dct36_3dnow(real *,real *,real *,real *,real *);
125 extern void dct36_3dnowex(real *,real *,real *,real *,real *);
126 extern void dct36_sse(real *,real *,real *,real *,real *);
128 typedef int (*synth_func_t)( real *,int,short * );
129 typedef void (*dct36_func_t)(real *,real *,real *,real *,real *);