~ubuntu-branches/ubuntu/lucid/mpg123/lucid

« back to all changes in this revision

Viewing changes to mpglib/mpg123.h

Tags: upstream-0.60
ImportĀ upstreamĀ versionĀ 0.60

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#include        <stdio.h>
2
 
#include        <string.h>
3
 
#include        <signal.h>
4
 
 
5
 
#ifndef WIN32
6
 
#include        <sys/signal.h>
7
 
#include        <unistd.h>
8
 
#endif
9
 
 
10
 
#include        <math.h>
11
 
 
12
 
#ifdef _WIN32
13
 
# undef WIN32
14
 
# define WIN32
15
 
 
16
 
# define M_PI       3.14159265358979323846
17
 
# define M_SQRT2        1.41421356237309504880
18
 
# define REAL_IS_FLOAT
19
 
# define NEW_DCT9
20
 
 
21
 
# define random rand
22
 
# define srandom srand
23
 
 
24
 
#endif
25
 
 
26
 
#ifdef REAL_IS_FLOAT
27
 
#  define real float
28
 
#elif defined(REAL_IS_LONG_DOUBLE)
29
 
#  define real long double
30
 
#else
31
 
#  define real double
32
 
#endif
33
 
 
34
 
#ifdef __GNUC__
35
 
#define INLINE inline
36
 
#else
37
 
#define INLINE
38
 
#endif
39
 
 
40
 
/* AUDIOBUFSIZE = n*64 with n=1,2,3 ...  */
41
 
#define         AUDIOBUFSIZE            16384
42
 
 
43
 
#define         FALSE                   0
44
 
#define         TRUE                    1
45
 
 
46
 
#define         SBLIMIT                 32
47
 
#define         SSLIMIT                 18
48
 
 
49
 
#define         MPG_MD_STEREO           0
50
 
#define         MPG_MD_JOINT_STEREO     1
51
 
#define         MPG_MD_DUAL_CHANNEL     2
52
 
#define         MPG_MD_MONO             3
53
 
 
54
 
#define MAXFRAMESIZE 1792
55
 
 
56
 
 
57
 
/* Pre Shift fo 16 to 8 bit converter table */
58
 
#define AUSHIFT (3)
59
 
 
60
 
struct frame {
61
 
    int stereo;
62
 
    int jsbound;
63
 
    int single;
64
 
    int lsf;
65
 
    int mpeg25;
66
 
    int header_change;
67
 
    int lay;
68
 
    int error_protection;
69
 
    int bitrate_index;
70
 
    int sampling_frequency;
71
 
    int padding;
72
 
    int extension;
73
 
    int mode;
74
 
    int mode_ext;
75
 
    int copyright;
76
 
    int original;
77
 
    int emphasis;
78
 
    int framesize; /* computed framesize */
79
 
};
80
 
 
81
 
struct parameter {
82
 
        int quiet;      /* shut up! */
83
 
        int tryresync;  /* resync stream after error */
84
 
        int verbose;    /* verbose level */
85
 
        int checkrange;
86
 
};
87
 
 
88
 
extern unsigned int   get1bit(void);
89
 
extern unsigned int   getbits(int);
90
 
extern unsigned int   getbits_fast(int);
91
 
extern int set_pointer(long);
92
 
 
93
 
extern unsigned char *wordpointer;
94
 
extern int bitindex;
95
 
 
96
 
extern void make_decode_tables(long scaleval);
97
 
extern int do_layer3(struct frame *fr,unsigned char *,int *);
98
 
extern int decode_header(struct frame *fr,unsigned long newhead);
99
 
 
100
 
 
101
 
 
102
 
struct gr_info_s {
103
 
      int scfsi;
104
 
      unsigned part2_3_length;
105
 
      unsigned big_values;
106
 
      unsigned scalefac_compress;
107
 
      unsigned block_type;
108
 
      unsigned mixed_block_flag;
109
 
      unsigned table_select[3];
110
 
      unsigned subblock_gain[3];
111
 
      unsigned maxband[3];
112
 
      unsigned maxbandl;
113
 
      unsigned maxb;
114
 
      unsigned region1start;
115
 
      unsigned region2start;
116
 
      unsigned preflag;
117
 
      unsigned scalefac_scale;
118
 
      unsigned count1table_select;
119
 
      real *full_gain[3];
120
 
      real *pow2gain;
121
 
};
122
 
 
123
 
struct III_sideinfo
124
 
{
125
 
  unsigned main_data_begin;
126
 
  unsigned private_bits;
127
 
  struct {
128
 
    struct gr_info_s gr[2];
129
 
  } ch[2];
130
 
};
131
 
 
132
 
extern int synth_1to1 (real *,int,unsigned char *,int *);
133
 
extern int synth_1to1_8bit (real *,int,unsigned char *,int *);
134
 
extern int synth_1to1_mono (real *,unsigned char *,int *);
135
 
extern int synth_1to1_mono2stereo (real *,unsigned char *,int *);
136
 
extern int synth_1to1_8bit_mono (real *,unsigned char *,int *);
137
 
extern int synth_1to1_8bit_mono2stereo (real *,unsigned char *,int *);
138
 
 
139
 
extern int synth_2to1 (real *,int,unsigned char *,int *);
140
 
extern int synth_2to1_8bit (real *,int,unsigned char *,int *);
141
 
extern int synth_2to1_mono (real *,unsigned char *,int *);
142
 
extern int synth_2to1_mono2stereo (real *,unsigned char *,int *);
143
 
extern int synth_2to1_8bit_mono (real *,unsigned char *,int *);
144
 
extern int synth_2to1_8bit_mono2stereo (real *,unsigned char *,int *);
145
 
 
146
 
extern int synth_4to1 (real *,int,unsigned char *,int *);
147
 
extern int synth_4to1_8bit (real *,int,unsigned char *,int *);
148
 
extern int synth_4to1_mono (real *,unsigned char *,int *);
149
 
extern int synth_4to1_mono2stereo (real *,unsigned char *,int *);
150
 
extern int synth_4to1_8bit_mono (real *,unsigned char *,int *);
151
 
extern int synth_4to1_8bit_mono2stereo (real *,unsigned char *,int *);
152
 
 
153
 
extern int synth_ntom (real *,int,unsigned char *,int *);
154
 
extern int synth_ntom_8bit (real *,int,unsigned char *,int *);
155
 
extern int synth_ntom_mono (real *,unsigned char *,int *);
156
 
extern int synth_ntom_mono2stereo (real *,unsigned char *,int *);
157
 
extern int synth_ntom_8bit_mono (real *,unsigned char *,int *);
158
 
extern int synth_ntom_8bit_mono2stereo (real *,unsigned char *,int *);
159
 
 
160
 
extern void rewindNbits(int bits);
161
 
extern int  hsstell(void);
162
 
extern int get_songlen(struct frame *fr,int no);
163
 
 
164
 
extern void init_layer3(int);
165
 
extern void init_layer2(void);
166
 
extern void make_decode_tables(long scale);
167
 
extern void make_conv16to8_table(int);
168
 
extern void dct64(real *,real *,real *);
169
 
 
170
 
extern void synth_ntom_set_step(long,long);
171
 
 
172
 
extern unsigned char *conv16to8;
173
 
extern long freqs[9];
174
 
extern real muls[27][64];
175
 
extern real decwin[512+32];
176
 
extern real *pnts[5];
177
 
 
178
 
extern struct parameter param;
179
 
 
180