2 * Modified for use with MPlayer, for details see the changelog at
3 * http://svn.mplayerhq.hu/mplayer/trunk/
9 * used source: musicout.h from mpegaudio package
12 #ifndef MPLAYER_MP3LIB_MPG123_H
13 #define MPLAYER_MP3LIB_MPG123_H
18 #define M_PI 3.141592653589793238462
21 #define M_SQRT2 1.414213562373095048802
26 #undef MPG123_REMOTE /* Get rid of this stuff for Win32 */
32 # define real long double
36 // #define AUDIOBUFSIZE 4096
42 #define MAX_NAME_SIZE 81
44 #define SCALE_BLOCK 12
47 #define MPG_MD_STEREO 0
48 #define MPG_MD_JOINT_STEREO 1
49 #define MPG_MD_DUAL_CHANNEL 2
52 /* #define MAXOUTBURST 32768 */
54 /* Pre Shift fo 16 to 8 bit converter table */
64 struct al_table
*alloc
;
65 int (*synth
)(real
*,int,unsigned char *,int *);
66 int (*synth_mono
)(real
*,unsigned char *,int *);
71 int down_sample_sblimit
;
79 int sampling_frequency
;
87 int framesize
; /* computed framesize */
93 unsigned part2_3_length
;
95 unsigned scalefac_compress
;
97 unsigned mixed_block_flag
;
98 unsigned table_select
[3];
99 unsigned subblock_gain
[3];
103 unsigned region1start
;
104 unsigned region2start
;
106 unsigned scalefac_scale
;
107 unsigned count1table_select
;
114 unsigned main_data_begin
;
115 unsigned private_bits
;
117 struct gr_info_s gr
[2];
121 extern real mp3lib_decwin
[(512+32)];
122 extern real
*mp3lib_pnts
[];
124 int synth_1to1_pent( real
*, int, short * );
125 int synth_1to1_MMX( real
*, int, short * );
126 int synth_1to1_MMX_s(real
*, int, short *, short *, int *);
128 void dct36_3dnow(real
*, real
*, real
*, real
*, real
*);
129 void dct36_3dnowex(real
*, real
*, real
*, real
*, real
*);
130 void dct36_sse(real
*, real
*, real
*, real
*, real
*);
132 typedef int (*synth_func_t
)( real
*,int,short * );
133 typedef void (*dct36_func_t
)(real
*,real
*,real
*,real
*,real
*);
135 #endif /* MPLAYER_MP3LIB_MPG123_H */