1
mirror of https://github.com/mpv-player/mpv synced 2024-12-24 07:33:46 +01:00
mpv/mp3lib/mpg123.h
reimar 1783ce38f6 Fix compilation: the dct64_MMX_func variable should be declared only once,
not every time the header is included.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30724 b3059339-0415-0410-9bf9-f77b7e298cf2
2010-02-23 22:29:57 +00:00

145 lines
3.3 KiB
C

/*
* Modified for use with MPlayer, for details see the changelog at
* http://svn.mplayerhq.hu/mplayer/trunk/
* $Id$
*/
/*
* mpg123 defines
* used source: musicout.h from mpegaudio package
*/
#ifndef MPLAYER_MP3LIB_MPG123_H
#define MPLAYER_MP3LIB_MPG123_H
#include "config.h"
#ifndef M_PI
#define M_PI 3.141592653589793238462
#endif
#ifndef M_SQRT2
#define M_SQRT2 1.414213562373095048802
#endif
#define REAL_IS_FLOAT
#define NEW_DCT9
#undef MPG123_REMOTE /* Get rid of this stuff for Win32 */
typedef float real;
/*
# 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;
int sampling_frequency;
int padding;
int extension;
int mode;
int mode_ext;
int copyright;
int original;
int emphasis;
int 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;
real *full_gain[3];
real *pow2gain;
};
struct III_sideinfo
{
unsigned main_data_begin;
unsigned private_bits;
struct {
struct gr_info_s gr[2];
} ch[2];
};
extern real mp3lib_decwin[(512+32)];
extern real *mp3lib_pnts[];
int synth_1to1_pent( real *, int, short * );
int synth_1to1_MMX( real *, int, short * );
int synth_1to1_MMX_s(real *, int, short *, short *, int *);
void dct36_3dnow(real *, real *, real *, real *, real *);
void dct36_3dnowex(real *, real *, real *, real *, real *);
void dct36_sse(real *, real *, real *, real *, real *);
void dct64_MMX(short *, short *, real *);
void dct64_MMX_3dnow(short *, short *, real *);
void dct64_MMX_3dnowex(short *, short *, real *);
void dct64_sse(short *, short *, real *);
void dct64_altivec(real *, real *, real *);
extern void (*dct64_MMX_func)(short *, short *, real *);
void mp3lib_dct64(real *, real *, real *);
typedef int (*synth_func_t)( real *,int,short * );
typedef void (*dct36_func_t)(real *,real *,real *,real *,real *);
#endif /* MPLAYER_MP3LIB_MPG123_H */