home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2000 #5 / Amiga Plus CD - 2000 - No. 5.iso / Tools / Dev / lame_src / mpglib / mpg123.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-01  |  4.7 KB  |  179 lines

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