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

📄 mpegsub.i

📁 mp3解码源代码
💻 I
📖 第 1 页 / 共 5 页
字号:
typedef struct {	long	(*open)(char *stream_name, long buffer_size, long *stream_size);	void	(*close)(long handle);	long	(*read)(long handle, void *buffer, long num_bytes);	int	(*seek)(long handle, long abs_byte_seek_pos);} BITSTREAM_ACCESS;typedef struct {	BITSTREAM_ACCESS baccess;	long		file_handle;	long		buffer_size;	unsigned int 	*buffer;	unsigned int 	*buffer_ptr;	long		remain_bytes;	long		bitstream_size;	int		end_of_stream;	unsigned int	bit_cache;	int		cache_size;	unsigned int	bits;	long		buffer_len;	long		buffer_pos;} BITSTREAM;extern BITSTREAM	*BSTR_open(BITSTREAM_ACCESS *bs_access,				char *filename, long buffer_size);extern unsigned long	BSTR_read_byte(BITSTREAM *b);extern unsigned int	BSTR_read_bytes(BITSTREAM *b, unsigned int count,				char *buffer);extern unsigned long	BSTR_read_bit_cache(BITSTREAM *bitstream);extern unsigned long	BSTR_read_bits_cache(BITSTREAM *bitstream,				unsigned int bit_count);extern void		BSTR_close(BITSTREAM *bitstream);extern int		BSTR_seek( BITSTREAM *bitstream, long seek_byte_pos );extern long		BSTR_pos( BITSTREAM *bitstream ); # 31 "mpegaud.h" 2# 1 "huff.h" 1    typedef struct {	int		buffer_size;	unsigned char	*buffer;	int		write_index;	int		read_index;	unsigned long	bit_cache;	int		cache_size;	unsigned long	bits;	INT16		nul_begin;  } HUFFMAN;  extern HUFFMAN	*HUFF_open(void);extern void	HUFF_close(HUFFMAN *h);extern int	HUFF_reset(HUFFMAN *h);extern void	HUFF_fill_bytes(HUFFMAN *h, unsigned int count, char *buffer);extern int	HUFF_set_start(HUFFMAN *h, int start_pos);extern int	HUFF_seek(HUFFMAN *h, int seek_pos);extern int	HUFF_decode_pair(HUFFMAN *h, INT16 table, INT16 count,			INT16 *x);extern int	HUFF_decode_quad(HUFFMAN *h, INT16 table, INT16 max_bits,			INT16 val_count, INT16 val_top, INT16 *x);extern unsigned long	HUFF_read_bit_cache(HUFFMAN *h);extern unsigned long	HUFF_read_bits_cache(HUFFMAN *h, unsigned int count); # 32 "mpegaud.h" 2       typedef struct {	INT16	ID;	INT16	layer;	INT16	protection_bit;	INT16	bitrate_index;	INT16	sampling_frequency;	BOOL	padding_bit;	BOOL	private_bit;	INT16	mode;	INT16	mode_extension;	BOOL	copyright;	BOOL	original;	INT16	emphasis;	INT16	crc_check;	BOOL	half_freq;  	INT32	header_pos;} MPA_HEADER; typedef struct {	UINT16	part2_3_length;         	UINT16	big_values;             	UINT16	global_gain;            	UINT16	scalefac_compress;      	BOOL	window_switching_flag;	UINT16	block_type;             	BOOL	mixed_block_flag;	UINT16	table_select[ 3 ];      	UINT16	subblock_gain[ 3 ];     	UINT16	region0_count;          	UINT16	region1_count;          	BOOL	preflag;	BOOL	scalefac_scale;         	UINT16	count1table_select;     } MPA_GRANULE_INFO; typedef struct {	UINT16	main_data_begin;        	UINT16	private_bits;           	struct {		BOOL scfsi[4];		MPA_GRANULE_INFO gr[2 ];	} ch[2 ];} MPA_SIDE_INFO; typedef struct {   UINT16	l[23];   UINT16	s[3 ][13];} MPA_SCALE_FAC3;# 1 "mpegsub.h" 1    # 1 "mpegtab.h" 1    typedef struct {	UINT16	treelen;	UINT16	xlen;	UINT16	ylen;	UINT16	linbits;	UINT16	linmax;	const unsigned char (*val)[2];} MPT_HUFF;extern const INT32 	MPT_pow_4_3[8192];extern const INT32 	MPT_multiple[64];extern const INT16 	MPT_dewindow[512];extern const UINT16	MPT_freq[2][4];extern const INT16	MPT_bitrate[2][3][16];extern const INT16	MPT_sblimit[5];extern const INT16	MPT_jsbound[3][4]; extern const UINT8	MPT_alloc_0[][16];extern const UINT8	MPT_alloc_1[][16];extern const UINT8	MPT_alloc_2[][16];extern const UINT8	MPT_alloc_3[][16];extern const UINT8	MPT_alloc_4[][16]; # 31 "mpegsub.h" 2typedef struct {	INT16 	bb[2 ][2 * 512 ];	INT16 	scaled_dewindow[512 ];	INT32	scaled_shift;	INT32	scale_percent;	INT16	b_offset[ 2  ];	INT16	freq_div;	INT16	quality;	INT16	w_begin;	INT16	w_width;	INT16	pcm_count;} MPEGSUB;extern int	MPEGSUB_reset(MPEGSUB *mpegsub);extern MPEGSUB	*MPEGSUB_open(INT16 freq_div, INT16 quality);extern void	MPEGSUB_close(MPEGSUB *mpegsub);extern INT16	MPEGSUB_synthesis(MPEGSUB *mpegsub,			INT16  *band_ptr,			INT16 channel, INT16 *samples);extern int	MPEGSUB_scale(MPEGSUB *mpegsub, INT32 scale_percent); # 156 "mpegaud.h" 2# 1 "mpegimdc.h" 1    typedef struct {	INT16  	prevblk[2][18*32];} MPEGIMDCT;extern MPEGIMDCT *MPEGIMDCT_open(void);extern void	MPEGIMDCT_close(MPEGIMDCT *mpegimdct);extern int	MPEGIMDCT_reset(MPEGIMDCT *mpegimdct);extern int	MPEGIMDCT_hybrid(MPEGIMDCT *mpegimdct, INT16  *in,			INT16  *out, INT16 block_type, BOOL mixed,			INT16 ch, INT16 sb_max); # 157 "mpegaud.h" 2 typedef struct {	const UINT8	(*alloc)[16];  	INT16		bit_alloc[2 ][32 ];	INT32  scale[2 ][3 ][32 ];	UINT16		sample[2 ][3 ][32 ];	INT16  fraction[2 ][3 ][32 ];	INT16		is[576 ];	INT16  xr[2 ][576 ];	INT16  lr[2 ][576 ];	INT16		*pcm[2 ];	INT16		scfsi[2 ][32 ];	MPA_SCALE_FAC3	scale_fac3[2 ];	BITSTREAM	*bitstream;	HUFFMAN		*huffman;	MPEGSUB		*mpegsub;	MPEGIMDCT	*mpegimdct;	MPA_HEADER	header;	MPA_SIDE_INFO	side_info;	BOOL		stereo;	INT16		channels;	UINT16		sfreq;	UINT32		stream_size;	INT16		bitrate;	INT16		jsbound;	INT16		sblimit;	INT16		current_table;	UINT32		frame;	INT16		freq_div;	INT16		quality;	INT16		sb_max;	BOOL		force_mono;	INT16		sfb_nul_l[2 ];	INT16		sfb_nul_s[3 ][2 ];	 	INT16		is_max_l[21];	INT16		is_max_s[3 ][12];	BOOL		need_sync;	INT16		imdct_max[2 ];	INT16		sfb_nul_s_top[3 ];	INT32		bitstream_start_pos;	void		*keyp;} MPA_STREAM; # 29 "mpegsub.c" 2# 1 "/home/gerg/new-wave.5249/lib/libc/include/math.h" 1# 1 "/home/gerg/new-wave.5249/lib/libc/include/machine/__math.h" 1  # 450 "/home/gerg/new-wave.5249/lib/libc/include/machine/__math.h"# 1 "/home/gerg/new-wave.5249/lib/libm/mathf.h" 1typedef struct { float r; float i;} cmplxf;typedef struct { double r; double i;} cmplx;   extern double fmod(double, double);extern double modf(double, double *);extern double acosh ( double x );extern int airy ( double x, double *ai, double *aip, double *bi, double *bip );extern double asin ( double x );extern double acos ( double x );extern double asinh ( double xx );extern double atan ( double x );extern double atan2 ( double y, double x );extern double atanh ( double x );extern double bdtrc ( int k, int n, double p );extern double bdtr ( int k, int n, double p );extern double bdtri ( int k, int n, double y );extern double beta ( double a, double b );extern double lbeta ( double a, double b );extern double btdtr ( double a, double b, double x );extern double cbrt ( double x );extern double chbevl ( double x, double array[], int n );extern double chdtrc ( double df, double x );extern double chdtr ( double df, double x );extern double chdtri ( double df, double y );extern void clog ( cmplx *z, cmplx *w );

⌨️ 快捷键说明

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