diff options
Diffstat (limited to 'mp3lib/mpg123.h')
-rw-r--r-- | mp3lib/mpg123.h | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/mp3lib/mpg123.h b/mp3lib/mpg123.h new file mode 100644 index 0000000000..fe1e50e594 --- /dev/null +++ b/mp3lib/mpg123.h @@ -0,0 +1,125 @@ +/* + * mpg123 defines + * used source: musicout.h from mpegaudio package + */ + +#include "../config.h" + +# define M_PI 3.14159265358979323846 +# define M_SQRT2 1.41421356237309504880 +# define REAL_IS_FLOAT +# define NEW_DCT9 + +#undef MPG123_REMOTE /* Get rid of this stuff for Win32 */ + +/* +# define real float +# define real long double +# define real double +#include "audio.h" + +// #define AUDIOBUFSIZE 4096 +*/ + +#define FALSE 0 +#define TRUE 1 + +#define MAX_NAME_SIZE 81 +#define SBLIMIT 32 +#define SCALE_BLOCK 12 +#define SSLIMIT 18 + +#define MPG_MD_STEREO 0 +#define MPG_MD_JOINT_STEREO 1 +#define MPG_MD_DUAL_CHANNEL 2 +#define MPG_MD_MONO 3 + +/* #define MAXOUTBURST 32768 */ + +/* Pre Shift fo 16 to 8 bit converter table */ +#define AUSHIFT (3) + +struct al_table +{ + short bits; + short d; +}; + +struct frame { + struct al_table *alloc; + int (*synth)(real *,int,unsigned char *,int *); + int (*synth_mono)(real *,unsigned char *,int *); + int stereo; + int jsbound; + int single; + int II_sblimit; + int down_sample_sblimit; + int lsf; + int mpeg25; + int down_sample; + int header_change; + int lay; + int error_protection; + int bitrate_index; + long sampling_frequency; + int padding; + int extension; + int mode; + int mode_ext; + int copyright; + int original; + int emphasis; + long framesize; /* computed framesize */ +}; + + +struct gr_info_s { + int scfsi; + unsigned part2_3_length; + unsigned big_values; + unsigned scalefac_compress; + unsigned block_type; + unsigned mixed_block_flag; + unsigned table_select[3]; + unsigned subblock_gain[3]; + unsigned maxband[3]; + unsigned maxbandl; + unsigned maxb; + unsigned region1start; + unsigned region2start; + unsigned preflag; + unsigned scalefac_scale; + unsigned count1table_select; + int full_gain[3]; + int pow2gain; +}; + +struct III_sideinfo +{ + unsigned main_data_begin; + unsigned private_bits; + struct { + struct gr_info_s gr[2]; + } ch[2]; +}; + +static long freqs[9]; +#ifdef HAVE_3DNOW + real decwin[2*(512+32)]; +#else + real decwin[512+32]; +#endif + real *pnts[]; + +static int do_layer2(struct frame *fr,int single); +static int do_layer3(struct frame *fr,int single); +static int synth_1to1(real *bandPtr,int channel,unsigned char *out,int *pnt); + +extern int synth_1to1_pent( real *,int,unsigned char * ); +extern void dct64(real *a,real *b,real *c); + +#ifdef HAVE_3DNOW + extern void dct64_3dnow( real *,real *, real * ); + extern void dct36_3dnow(real *,real *,real *,real *,real *); + extern int synth_1to1_3dnow( real *,int,unsigned char * ); +#endif |