Document lmin and lmax lavcopts; mpeg vrc_buf_size values
[mplayer/greg.git] / mp3lib / mpg123.h
blobea58c74b58645cb28f828dd3c833c575e6231116
1 /*
2 * mpg123 defines
3 * used source: musicout.h from mpegaudio package
4 */
6 #include "../config.h"
8 #ifndef M_PI
9 #define M_PI 3.141592653589793238462
10 #endif
11 #ifndef M_SQRT2
12 #define M_SQRT2 1.414213562373095048802
13 #endif
14 #define REAL_IS_FLOAT
15 #define NEW_DCT9
17 #undef MPG123_REMOTE /* Get rid of this stuff for Win32 */
20 # define real float
21 # define real long double
22 # define real double
23 #include "audio.h"
25 // #define AUDIOBUFSIZE 4096
28 #define FALSE 0
29 #define TRUE 1
31 #define MAX_NAME_SIZE 81
32 #define SBLIMIT 32
33 #define SCALE_BLOCK 12
34 #define SSLIMIT 18
36 #define MPG_MD_STEREO 0
37 #define MPG_MD_JOINT_STEREO 1
38 #define MPG_MD_DUAL_CHANNEL 2
39 #define MPG_MD_MONO 3
41 /* #define MAXOUTBURST 32768 */
43 /* Pre Shift fo 16 to 8 bit converter table */
44 #define AUSHIFT (3)
46 struct al_table
48 short bits;
49 short d;
52 struct frame {
53 struct al_table *alloc;
54 int (*synth)(real *,int,unsigned char *,int *);
55 int (*synth_mono)(real *,unsigned char *,int *);
56 int stereo;
57 int jsbound;
58 int single;
59 int II_sblimit;
60 int down_sample_sblimit;
61 int lsf;
62 int mpeg25;
63 int down_sample;
64 int header_change;
65 int lay;
66 int error_protection;
67 int bitrate_index;
68 long sampling_frequency;
69 int padding;
70 int extension;
71 int mode;
72 int mode_ext;
73 int copyright;
74 int original;
75 int emphasis;
76 long framesize; /* computed framesize */
80 struct gr_info_s {
81 int scfsi;
82 unsigned part2_3_length;
83 unsigned big_values;
84 unsigned scalefac_compress;
85 unsigned block_type;
86 unsigned mixed_block_flag;
87 unsigned table_select[3];
88 unsigned subblock_gain[3];
89 unsigned maxband[3];
90 unsigned maxbandl;
91 unsigned maxb;
92 unsigned region1start;
93 unsigned region2start;
94 unsigned preflag;
95 unsigned scalefac_scale;
96 unsigned count1table_select;
97 real *full_gain[3];
98 real *pow2gain;
101 struct III_sideinfo
103 unsigned main_data_begin;
104 unsigned private_bits;
105 struct {
106 struct gr_info_s gr[2];
107 } ch[2];
110 static long freqs[9];
111 extern real mp3lib_decwin[(512+32)];
112 extern real *pnts[];
114 static int do_layer2(struct frame *fr,int single);
115 static int do_layer3(struct frame *fr,int single);
116 static int synth_1to1(real *bandPtr,int channel,unsigned char *out,int *pnt);
118 extern int synth_1to1_pent( real *,int,short * );
119 extern void make_decode_tables_MMX(long scaleval);
120 extern int synth_1to1_MMX( real *,int,short * );
121 extern int synth_1to1_MMX_s(real *, int, short *, short *, int *);
122 extern void dct64(real *a,real *b,real *c);
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 *);