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

📄 common.h

📁 mpeg layerI II III, support window and linux
💻 H
📖 第 1 页 / 共 2 页
字号:
#define         MAX(A, B)       ((A) > (B) ? (A) : (B))/*************************************************************************  Global Type Definitions************************************************************************/#ifdef	OUT20typedef	long	OUTPUT_TYPE;#elsetypedef	short	OUTPUT_TYPE;#endiftypedef struct {            char    encoded_file_name[MAX_NAME_SIZE];            char    decoded_file_name[MAX_NAME_SIZE];            int  need_aiff;            int  need_esps;            int  topSb;              }Arguments_t;/* 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;} layer, *the_layer;/* Parent Structure Interpreting some Frame Parameters in Header */typedef struct {    layer       *header;        /* raw header information */    int         actual_mode;    /* when writing IS, may forget if 0 chs */    al_table    *alloc;         /* bit allocation table read in */    int         tab_num;        /* number of table as loaded */    int         stereo;         /* 1 for mono, 2 for stereo */    int         jsbound;        /* first band of joint stereo coding */    int         sblimit;        /* total number of sub bands */} 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;/* "bit_stream.h" Type Definitions */typedef struct  bit_stream_struc {    FILE        *pt;            /* pointer to bit stream device */    unsigned char *buf;         /* bit stream buffer */    int         buf_size;       /* size of buffer (in number of bytes) */    long        totbit;         /* bit counter of bit stream */    int         buf_byte_idx;   /* pointer to top byte in buffer */    int         buf_bit_idx;    /* pointer to top bit of top byte in buffer */    int         mode;           /* bit stream open in read or write mode */    int         eob;            /* end of buffer index */    int         eobs;           /* end of bit stream flag */    char        format;        /* format of file in rd mode (BINARY/ASCII) */} Bit_stream_struc;/* Layer III side information. */typedef struct {	unsigned part2_3_length;	unsigned big_values;	unsigned global_gain;	unsigned scalefac_compress;	unsigned window_switching_flag;	unsigned block_type;	unsigned mixed_block_flag;	unsigned table_select[3];	unsigned subblock_gain[3];	unsigned region0_count;	unsigned region1_count;	unsigned preflag;	unsigned scalefac_scale;	unsigned count1table_select;} my_gr_info ;typedef struct {	unsigned main_data_begin;	unsigned private_bits;	struct {	    unsigned scfsi[4];		struct gr_info_s {			unsigned part2_3_length;			unsigned big_values;			unsigned global_gain;			unsigned scalefac_compress;			unsigned window_switching_flag;			unsigned block_type;			unsigned mixed_block_flag;			unsigned table_select[3];			unsigned subblock_gain[3];			unsigned region0_count;			unsigned region1_count;			unsigned preflag;			unsigned scalefac_scale;			unsigned count1table_select;			} gr[2];		} ch[2];	} III_side_info_t;/* Layer III scale factors. */typedef struct {	int l[23];            /* [cb] */	int s[3][13];         /* [window][cb] */	} III_scalefac_t[2];  /* [ch] *//*************************************************************************  Global Variable External Declarations************************************************************************/extern char     *mode_names[5];extern char     *layer_names[3];extern char	*version_names[2];extern double   s_freq[2][4];extern int      bitrate[2][3][15];extern double FAR multiple[64];/*************************************************************************  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 int            js_bound(int, int);extern void           hdr_to_frps(frame_params*);extern void           WriteHdr(frame_params*, FILE*);extern void           WriteBitAlloc(unsigned int[2][SBLIMIT], frame_params*,                        FILE*);extern void           WriteScale(unsigned int[2][SBLIMIT],                        unsigned int[2][SBLIMIT], unsigned int[2][3][SBLIMIT],                        frame_params*, FILE*);extern void           WriteSamples(int, unsigned int FAR [SBLIMIT],                        unsigned int[SBLIMIT], frame_params*, FILE*);extern int            NumericQ(char*);extern int            BitrateIndex(int, int, int);extern int            SmpFrqIndex(long, int*);extern int            memcheck(char*, int, int);extern void           FAR *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*);extern int            aiff_seek_to_sound_data(FILE*);extern int            aiff_write_headers(FILE*, IFF_AIFF*);extern int            refill_buffer(Bit_stream_struc*);extern void           empty_buffer(Bit_stream_struc*, int);extern void           open_bit_stream_w(Bit_stream_struc*, char*, int);extern void           open_bit_stream_r(Bit_stream_struc*, char*, int);extern void           close_bit_stream_r(Bit_stream_struc*);extern void           close_bit_stream_w(Bit_stream_struc*);extern void           alloc_buffer(Bit_stream_struc*, int);extern void           desalloc_buffer(Bit_stream_struc*);extern void           back_track_buffer(Bit_stream_struc*, int);extern unsigned int   get1bit(Bit_stream_struc*);extern void           put1bit(Bit_stream_struc*, int);extern unsigned long  look_ahead(Bit_stream_struc*, int);extern unsigned long  getbits(Bit_stream_struc*, int);extern void           putbits(Bit_stream_struc*, unsigned int, int);extern void           byte_ali_putbits(Bit_stream_struc*, unsigned int, int);extern unsigned long  byte_ali_getbits(Bit_stream_struc*, int);extern unsigned long  sstell(Bit_stream_struc*);extern int            end_bs(Bit_stream_struc*);extern int            seek_sync(Bit_stream_struc*, long, int);extern void           I_CRC_calc(frame_params*, unsigned int[2][SBLIMIT],                        unsigned int*);extern void           II_CRC_calc(frame_params*, unsigned int[2][SBLIMIT],                        unsigned int[2][SBLIMIT], unsigned int*);extern void           update_CRC(unsigned int, unsigned int, unsigned int*);extern void           read_absthr(FLOAT*, int);extern unsigned int   hget1bit(); /* MI */extern unsigned long  hgetbits(int);extern unsigned long  hsstell();extern void           hputbuf(unsigned int,int);extern void           rewindNbytes( int );enum byte_order DetermineByteOrder();void SwapBytesInWords( short *loc, int words );#ifdef  MACINTOSHextern void           set_mac_file_attr(char[MAX_NAME_SIZE], short, OsType,                        OsType);#endif#ifdef MS_DOSextern char           *new_ext(char *filename, char *extname); #endif#elseextern FILE           *OpenTableFile();extern int            read_bit_alloc();extern int            pick_table();extern int            js_bound();extern void           hdr_to_frps();extern void           WriteHdr();extern void           WriteBitAlloc();extern void           WriteScale();extern void           WriteSamples();extern int            NumericQ();extern int            BitrateIndex();extern int            SmpFrqIndex();extern int            memcheck();extern void           FAR *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            refill_buffer();extern void           empty_buffer();extern void           open_bit_stream_w();extern void           open_bit_stream_r();extern void           close_bit_stream_r();extern void           close_bit_stream_w();extern void           alloc_buffer();extern void           desalloc_buffer();extern void           back_track_buffer();extern unsigned int   get1bit();extern void           put1bit();extern unsigned long  look_ahead();extern unsigned long  getbits();extern void           putbits();extern void           byte_ali_putbits();extern unsigned long  byte_ali_getbits();extern unsigned long  sstell();extern int            end_bs();extern int            seek_sync();extern void           I_CRC_calc();extern void           II_CRC_calc();extern void           update_CRC();extern void           read_absthr();extern unsigned int   hget1bit();extern unsigned long  hgetbits();extern unsigned long  hsstell();extern void           hputbuf();extern void           rewindNbytes();#ifdef MS_DOSextern char           *new_ext(); #endif#endif#endif

⌨️ 快捷键说明

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