⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.h

📁 ISO mp3 sources (distribution 10) Layer 1/2/3, C Source, 512 k Sources of the Mpeg 1,2 layer 1,2
💻 H
📖 第 1 页 / 共 2 页
字号:
#define         MAX_LENGTH      32   /* Maximum length of word written or						read from bit stream */#define         READ_MODE       0#define         WRITE_MODE      1#define         ALIGNING        8#define         BINARY          0#define         ASCII           1#define         BS_FORMAT       ASCII /* BINARY or ASCII = 2x bytes */#define         BUFFER_SIZE     4096#define         MIN(A, B)       ((A) < (B) ? (A) : (B))#define         MAX(A, B)       ((A) > (B) ? (A) : (B))/*************************************************************************  Global Type Definitions************************************************************************//* Structure for Reading Layer II Allocation Tables from File */typedef struct {		unsigned int    steps;		unsigned int    bits;		unsigned int    group;		unsigned int    quant;} sb_alloc, *alloc_ptr;typedef sb_alloc        al_table[SBLIMIT][16];/* Header Information Structure */typedef struct {	int version;	int lay;	int error_protection;	int bitrate_index;	int sampling_frequency;	int padding;	int extension;	int mode;	int mode_ext;	int copyright;	int original;	int emphasis;	int center;		   /* center present */	int surround; 		   /* surrounds present*/	int dematrix_procedure;	   /* type of dematricing */	int lfe;		   /* low freequency effect channel*/	unsigned int	lfe_alloc;	unsigned int	lfe_scf;	unsigned int	lfe_spl[12];	double		lfe_spl_fraction[12]; 	int audio_mix;		   /* large or small room */	int no_of_multi_lingual_ch;/* number of multilingual channels */	int multi_lingual_fs;	   /* fs of main channels and ML-fs are the same*/	int multi_lingual_layer;   /* Layer IIML or Layer II ML is used*/	int mc_prediction[8];	   /* prediction bit *//* 28.9. R.S. changed name and length like DIS*/	int mc_pred_coeff[8][6][3];/* bits for prediction coefficient */	int tc_alloc[12];	   /* transmission channel allocation in each sbgroup*/	int mc_predsi[8][6];	   /* predictor select information*/	int mc_delay_comp[8][6];   /* 3 bit for delay compensations factor */	int ext_bit_stream_present;	int copyright_ident_bit;   /* additional copyright bits */	int copyright_ident_start; /*                           */	int n_ad_bytes;		int mc_prediction_on;	   	int tc_sbgr_select;	int dyn_cross_on;	int dyn_cross_LR;	int dyn_cross_mode[12];	int dyn_second_stereo[12]; /* 960816 FdB changed from scalar to array */	int tc_allocation;	int ext_syncword;         /* 12 bits */	int ext_crc_check;        /* 16 bits */	int ext_length;           /* 11 bits *//* Important!! in bits per frame */	int reserved_bit;unsigned int ext_crc_bits[15];#ifdef Augmentation_7ch	int aug_mtx_proc;	int aug_dyn_cross_on;	int aug_future_ext;	int tc_aug_alloc[12];	   /* transmission channel allocation in each sbgroup */	int dyn_cross_aug_mode[12];#endif} layer, *the_layer;/* "bit_stream.h" Type Definitions */typedef struct  bit_stream {    FILE        *pt;            /* pointer to bit stream device */    unsigned char *bits;        /* bit stream bit buffer */    int         header_size;	/* header of bitstream (in number of bytes) */    long        totbits;        /* bit counter of bit stream */    long        curpos;         /* bit pointer of bit stream */    int         mode;           /* bit stream open in read or write mode */    int         eobs;           /* end of bit stream flag */    char        format;		/* format of file in rd mode (BINARY/ASCII) */} Bit_stream;/* Parent Structure Interpreting some Frame Parameters in Header */typedef struct {	layer		*header;	/* raw header information */	Bit_stream	*bs_mpg;	Bit_stream	*bs_ext;	Bit_stream	*bs_mc;	int		actual_mode;    /* when writing IS, may forget if 0 chs */	al_table	*alloc;         /* bit allocation table read in */	al_table	*alloc_mc;      /* MC bit allocation table read in */	al_table	*alloc_ml;      /* ML bit allocation table read in */	int		tab_num; 	/* number of table as loaded */	int		tab_num_mc; 	/* number of MC-table as loaded */	int		tab_num_ml;     /* number of ML-table as loaded */	int		stereo;         /* 1 for mono, 2 for stereo */	int		mc_channel;	int		jsbound; 	/* first band of joint stereo coding */	double		mnr_min;	/* mnr for dynamic bitallocation */	int		sblimit;	/* total number of sub bands */	int		sblimit_mc;     /* total number of MC sub bands */	int		sblimit_ml;     /* total number of ML sub bands */	int		alloc_bits;	/* to read the right length of tc_alloc field */  	int		dyn_cross_bits; /* to read the right length of dyn_cross field */	int		pred_mode;      /* entry for prediction table */} frame_params;/* Double and SANE Floating Point Type Definitions */typedef struct  IEEE_DBL_struct {				unsigned long   hi;				unsigned long   lo;} IEEE_DBL;typedef struct  SANE_EXT_struct {				unsigned long   l1;				unsigned long   l2;				unsigned short  s1;} SANE_EXT;/* AIFF Type Definitions */typedef char	 ID[4];typedef struct  identifier_struct{		 ID name;		 long ck_length;}identifier;typedef struct  ChunkHeader_struct {				ID      ckID;				long    ckSize;} ChunkHeader;typedef struct  Chunk_struct {				ID      ckID;				long    ckSize;				ID      formType;} Chunk;typedef struct  CommonChunk_struct {				ID              ckID;				long            ckSize;				short           numChannels;				unsigned long   numSampleFrames;				short           sampleSize;				char            sampleRate[10];} CommonChunk;typedef struct  SoundDataChunk_struct {				ID              ckID;				long            ckSize;				unsigned long   offset;				unsigned long   blockSize;} SoundDataChunk;typedef struct  blockAlign_struct {				unsigned long   offset;				unsigned long   blockSize;} blockAlign;typedef struct  IFF_AIFF_struct {				short           numChannels;                unsigned long   numSampleFrames;                short           sampleSize;		double          sampleRate;                ID/*char**/     sampleType;/*must be allocated 21.6.93 SR*/                blockAlign      blkAlgn;} IFF_AIFF;/*************************************************************************  Global Variable External Declarations************************************************************************/extern layer    info;extern char     *mode_names[4];extern char     *layer_names[3];extern double   s_freq[4];extern int	bitrate[3][15];extern double	multiple[64];extern int      sb_groups[12];/*************************************************************************  Global Function Prototype Declarations************************************************************************//* The following functions are in the file "common.c" */#ifdef  PROTO_ARGSextern FILE           *OpenTableFile(char*);extern int            read_bit_alloc(int, al_table*);extern int            pick_table(frame_params*);extern void	      mc_pick_table(frame_params*);extern int            js_bound(int, int);extern void           hdr_to_frps(frame_params*);extern void	      mc_hdr_to_frps(frame_params*);extern void           WriteHdr(frame_params*, FILE*);extern void           *mem_alloc(unsigned long, char*);extern void           mem_free(void**);extern void           double_to_extended(double*, char[10]);extern void           extended_to_double(char[10], double*);extern int	      aiff_read_headers(FILE*, IFF_AIFF*, int*);extern int	      aiff_seek_to_sound_data(FILE*);extern int            aiff_write_headers(FILE*, IFF_AIFF*);extern int            open_bit_stream_r(Bit_stream*, char*, int);extern void           close_bit_stream_r(Bit_stream*);extern unsigned int   get1bit(Bit_stream*);extern unsigned long  getbits(Bit_stream*, int);extern void	      program_information(void);extern int            end_bs(Bit_stream*);extern int            seek_sync_mpg(Bit_stream*);extern int            seek_sync_ext(Bit_stream*, frame_params*);extern void           update_CRC(unsigned int, unsigned int, unsigned int*);extern void           I_CRC_calc(frame_params*, unsigned int[2][SBLIMIT],						unsigned int*);extern void           II_CRC_calc(frame_params*, unsigned int[7][SBLIMIT],						unsigned int[7][SBLIMIT], unsigned int*);extern void           mc_error_check(frame_params*, unsigned int[7][SBLIMIT],						unsigned int[7][SBLIMIT], unsigned int*, int, int);#ifdef Augmentation_7chextern void           mc_aug_error_check(frame_params*, unsigned int[7][SBLIMIT],						unsigned int[7][SBLIMIT], unsigned int*);#endifextern int	      mc_ext_error_check(frame_params*, int, int);#ifdef  MACINTOSHextern void           set_mac_file_attr(char[MAX_NAME_SIZE], short, OsType,						OsType);#endif#elseextern FILE           *OpenTableFile();extern int            read_bit_alloc();extern int            pick_table();extern int            mc_pick_table();extern int            js_bound();extern void           hdr_to_frps();extern void           mc_hdr_to_frps();extern void           WriteHdr();extern void           *mem_alloc();extern void           mem_free();extern void           double_to_extended();extern void           extended_to_double();extern int            aiff_read_headers();extern int            aiff_seek_to_sound_data();extern int            aiff_write_headers();extern int            open_bit_stream_r();extern void           close_bit_stream_r();extern unsigned int   get1bit();extern unsigned long  getbits();extern void	      program_information();extern int            end_bs();extern int            seek_sync_mpg();extern int            seek_sync_ext();extern void           update_CRC();extern void           I_CRC_calc();extern void           II_CRC_calc();extern void   	      mc_error_check();#ifdef Augmentation_7chextern void   	      mc_aug_error_check();#endifextern void   	      mc_ext_check();#ifdef  MACINTOSHextern void           set_mac_file_attr();#endif#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -