Mercurial > mplayer.hg
diff mp3lib/mpg123.h @ 1:3b5f5d1c5041
Initial revision
author | arpi_esp |
---|---|
date | Sat, 24 Feb 2001 20:28:24 +0000 |
parents | |
children | 59b0a9ec8604 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mp3lib/mpg123.h Sat Feb 24 20:28:24 2001 +0000 @@ -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