2 * Modified for use with MPlayer, for details see the CVS changelog at
3 * http://www.mplayerhq.hu/cgi-bin/cvsweb.cgi/main/
9 * used source: musicout.h from mpegaudio package
15 #define M_PI 3.141592653589793238462
18 #define M_SQRT2 1.414213562373095048802
23 #undef MPG123_REMOTE /* Get rid of this stuff for Win32 */
27 # define real long double
31 // #define AUDIOBUFSIZE 4096
37 #define MAX_NAME_SIZE 81
39 #define SCALE_BLOCK 12
42 #define MPG_MD_STEREO 0
43 #define MPG_MD_JOINT_STEREO 1
44 #define MPG_MD_DUAL_CHANNEL 2
47 /* #define MAXOUTBURST 32768 */
49 /* Pre Shift fo 16 to 8 bit converter table */
59 struct al_table
*alloc
;
60 int (*synth
)(real
*,int,unsigned char *,int *);
61 int (*synth_mono
)(real
*,unsigned char *,int *);
66 int down_sample_sblimit
;
74 long sampling_frequency
;
82 long framesize
; /* computed framesize */
88 unsigned part2_3_length
;
90 unsigned scalefac_compress
;
92 unsigned mixed_block_flag
;
93 unsigned table_select
[3];
94 unsigned subblock_gain
[3];
98 unsigned region1start
;
99 unsigned region2start
;
101 unsigned scalefac_scale
;
102 unsigned count1table_select
;
109 unsigned main_data_begin
;
110 unsigned private_bits
;
112 struct gr_info_s gr
[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
*);