00001 #ifndef COMMON_DOT_H 00002 #define COMMON_DOT_H 00003 00004 #ifndef EXIT_SUCCESS 00005 #define EXIT_SUCCESS 0 00006 #endif 00007 00008 #ifndef EXIT_FAILURE 00009 #define EXIT_FAILURE 1 00010 #endif 00011 00012 #define FLOAT float 00013 00014 #ifndef FALSE 00015 #define FALSE 0 00016 #endif 00017 00018 #ifndef TRUE 00019 #define TRUE 1 00020 #endif 00021 00022 #define NULL_CHAR '\0' 00023 00024 #define MAX_U_32_NUM 0xFFFFFFFF 00025 #ifndef PI 00026 #define PI 3.14159265358979 00027 #endif 00028 #define PI2 PI/2 00029 #define PI4 PI/4 00030 #define PI64 PI/64 00031 #define LN_TO_LOG10 0.2302585093 00032 00033 #define VOL_REF_NUM 0 00034 #define MPEG_AUDIO_ID 1 00035 #define MPEG_PHASE2_LSF 0 /* 1995-07-11 SHN */ 00036 #define MAC_WINDOW_SIZE 24 00037 00038 #define MONO 1 00039 #define STEREO 2 00040 #define BITS_IN_A_BYTE 8 00041 #define WORD 16 00042 #define MAX_NAME_SIZE 255 00043 #define SBLIMIT 32 00044 #define SSLIMIT 18 00045 #define FFT_SIZE 1024 00046 #define HAN_SIZE 512 00047 #define SCALE_BLOCK 12 00048 #define SCALE_RANGE 64 00049 #define SCALE 32768 00050 #define CRC16_POLYNOMIAL 0x8005 00051 #define CRC8_POLYNOMIAL 0x1D 00052 00053 /* MPEG Header Definitions - Mode Values */ 00054 00055 #define MPG_MD_STEREO 0 00056 #define MPG_MD_JOINT_STEREO 1 00057 #define MPG_MD_DUAL_CHANNEL 2 00058 #define MPG_MD_MONO 3 00059 00060 /* Mode Extension */ 00061 00062 #define MPG_MD_LR_LR 0 00063 #define MPG_MD_LR_I 1 00064 #define MPG_MD_MS_LR 2 00065 #define MPG_MD_MS_I 3 00066 00067 00068 /* "bit_stream.h" Definitions */ 00069 00070 #define MINIMUM 4 /* Minimum size of the buffer in bytes */ 00071 #define MAX_LENGTH 32 /* Maximum length of word written or 00072 read from bit stream */ 00073 #define READ_MODE 0 00074 #define WRITE_MODE 1 00075 #define ALIGNING 8 00076 #define BINARY 0 00077 #define ASCII 1 00078 00079 #define BUFFER_SIZE 4096 00080 00081 #define FLOAT8 float 00082 #define MIN(A, B) ((A) < (B) ? (A) : (B)) 00083 #define MAX(A, B) ((A) > (B) ? (A) : (B)) 00084 /*********************************************************************** 00085 * 00086 * Global Type Definitions 00087 * 00088 ***********************************************************************/ 00089 00090 /* Structure for Reading Layer II Allocation Tables from File */ 00091 00092 typedef struct 00093 { 00094 unsigned int steps; 00095 unsigned int bits; 00096 unsigned int group; 00097 unsigned int quant; 00098 } 00099 sb_alloc, *alloc_ptr; 00100 00101 typedef sb_alloc al_table[SBLIMIT][16]; 00102 00103 /* Header Information Structure */ 00104 00105 typedef struct 00106 { 00107 int version; 00108 int lay; 00109 int error_protection; 00110 int dab_extension; 00111 int dab_length; 00112 int bitrate_index; 00113 int sampling_frequency; 00114 int padding; 00115 int extension; 00116 int mode; 00117 int mode_ext; 00118 int copyright; 00119 int original; 00120 int emphasis; 00121 } 00122 frame_header; 00123 00124 /* Parent Structure Interpreting some Frame Parameters in Header */ 00125 00126 typedef struct 00127 { 00128 frame_header *header; /* raw header information */ 00129 int actual_mode; /* when writing IS, may forget if 0 chs */ 00130 al_table *alloc; /* bit allocation table read in */ 00131 int tab_num; /* number of table as loaded */ 00132 int nch; /* num channels: 1 for mono, 2 for stereo */ 00133 int jsbound; /* first band of joint stereo coding */ 00134 int sblimit; /* total number of sub bands */ 00135 } 00136 frame_info; 00137 00138 typedef struct bit_stream_struc 00139 { 00140 FILE *pt; /* pointer to bit stream device */ 00141 unsigned char *buf; /* bit stream buffer */ 00142 int buf_size; /* size of buffer (in number of bytes) */ 00143 long totbit; /* bit counter of bit stream */ 00144 int buf_byte_idx; /* pointer to top byte in buffer */ 00145 int buf_bit_idx; /* pointer to top bit of top byte in buffer */ 00146 int mode; /* bit stream open in read or write mode */ 00147 int eob; /* end of buffer index */ 00148 int eobs; /* end of bit stream flag */ 00149 char format; 00150 00151 /* format of file in rd mode (BINARY/ASCII) */ 00152 } 00153 Bit_stream_struc; 00154 00155 00156 enum byte_order 00157 { order_unknown, order_bigEndian, order_littleEndian }; 00158 extern enum byte_order NativeByteOrder; 00159 00160 /* "bit_stream.h" Type Definitions */ 00161 00162 00163 00164 00165 /*********************************************************************** 00166 * 00167 * Global Variable External Declarations 00168 * 00169 ***********************************************************************/ 00170 00171 extern char *mode_names[4]; 00172 extern char *version_names[2]; 00173 extern double s_freq[2][4]; 00174 extern int bitrate[2][15]; 00175 extern double multiple[64]; 00176 00177 int js_bound (int); 00178 void hdr_to_frps (frame_info *); 00179 int toolame_BitrateIndex (int, int); 00180 int toolame_SmpFrqIndex (long, int *); 00181 void new_ext (char *filename, char *extname, char *newname); 00182 00183 #endif
1.5.5