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