📄 decoder.h
字号:
/********************************************************************** * ISO MPEG Audio Subgroup Software Simulation Group (1996) * ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension * * $Id: decoder.h.rca 1.2 Fri Dec 13 00:30:54 2002 franklej Experimental $ * * Received from FhG **********************************************************************//********************************************************************** * date programmers comment * * 2/25/91 Doulas Wong, start of version 1.0 records * * Davis Pan * * 5/10/91 Vish (PRISM) Renamed and regrouped all ".h" files * * into "common.h" and "decoder.h". * * Ported to Macintosh and Unix. * * 27jun91 dpwe (Aware) New prototype for out_fifo() * * Moved "alloc_*" stuff to common.h * * Use ifdef PROTO_ARGS for prototypes * * prototypes reflect frame_params struct* * 10/3/91 Don H. Lee implemented CRC-16 error protection * * 2/11/92 W. Joseph Carter Ported new code to Macintosh. Most * * important fixes involved changing * * 16-bit ints to long or unsigned in * * bit alloc routines for quant of 65535 * * and passing proper function args. * * Removed "Other Joint Stereo" option * * and made bitrate be total channel * * bitrate, irrespective of the mode. * * Fixed many small bugs & reorganized. * * Modified some function prototypes. * * 08/07/92 Mike Coleman Made small changes for portability * * 9/07/93 Toshiyuki Ishino Integrated with Layer III. * * 11/04/94 Jon Rowlands fix protos for usage() and * * recover_CRC_error() * * Roland Bitto Adapted to MPEG2 low bitrate * **********************************************************************//************************************************************************* Decoder Include Files************************************************************************//************************************************************************* Decoder Definitions************************************************************************/#define DFLT_OPEXT ".dec" /* default output file name extension *//* NOTE: The value of a multiple-character constant is implementation-defined.*/#if !defined(MS_DOS) && !defined(AIX)#define FILTYP_DEC_AIFF 'AIFF'#define FILTYP_DEC_BNRY 'TEXT'#define CREATR_DEC_AIFF 'Sd2a'/* The following character constant is ASCII '????' It is declared in hex because the character constant contains a trigraph, causing an error in parsing with ANSI preprocessors.*/#define CREATR_DEC_BNRY 0x3f3f3f3f#else#define FILTYP_DEC_AIFF "AIFF"#define FILTYP_DEC_BNRY "TEXT"#define CREATR_DEC_AIFF "Sd2a"#define CREATR_DEC_BNRY "????"#endif#define SYNC_WORD (long) 0xfff#define SYNC_WORD_LNGTH 12#define MUTE 0/************************************************************************* Decoder Type Definitions************************************************************************//************************************************************************* Decoder Variable External Declarations************************************************************************//************************************************************************* Decoder Function Prototype Declarations************************************************************************//* The following functions are in the file "musicout.c" */#ifdef PROTO_ARGSstatic void usage(void);#elsestatic void usage();#endif/* The following functions are in the file "decode.c" */#ifdef PROTO_ARGSextern void decode_info(Bit_stream_struc*, frame_params*);extern void II_decode_bitalloc(Bit_stream_struc*, unsigned int[2][SBLIMIT], frame_params*);extern void I_decode_bitalloc(Bit_stream_struc*, unsigned int[2][SBLIMIT], frame_params*);extern void I_decode_scale(Bit_stream_struc*, unsigned int[2][SBLIMIT], unsigned int[2][3][SBLIMIT], frame_params*);extern void II_decode_scale(Bit_stream_struc*, unsigned int[2][SBLIMIT], unsigned int[2][SBLIMIT], unsigned int[2][3][SBLIMIT], frame_params*);extern void I_buffer_sample(Bit_stream_struc*, unsigned int[2][3][SBLIMIT], unsigned int[2][SBLIMIT], frame_params*);extern void II_buffer_sample(Bit_stream_struc*, unsigned int[2][3][SBLIMIT], unsigned int[2][SBLIMIT], frame_params*);extern void read_quantizer_table(double[17], double[17]);extern void II_dequantize_sample(unsigned int[2][3][SBLIMIT], unsigned int[2][SBLIMIT], double[2][3][SBLIMIT], frame_params*);extern void I_dequantize_sample(unsigned int[2][3][SBLIMIT], double[2][3][SBLIMIT], unsigned int[2][SBLIMIT], frame_params*);extern void read_scale_factor(double[SCALE_RANGE]);extern void II_denormalize_sample(double[2][3][SBLIMIT], unsigned int[2][3][SBLIMIT], frame_params*, int);extern void I_denormalize_sample(double[2][3][SBLIMIT], unsigned int[2][3][SBLIMIT], frame_params*);extern void create_syn_filter(double[64][SBLIMIT],FILE*);extern int SubBandSynthesis (double*, int, OUTPUT_TYPE*,FILE*);extern void read_syn_window(double[HAN_SIZE]);extern void window_sample(double*, double*);extern void out_fifo(OUTPUT_TYPE[2][SSLIMIT][SBLIMIT], int, frame_params*, int, FILE*, unsigned long*);extern void buffer_CRC(Bit_stream_struc*, unsigned int*);extern void recover_CRC_error(OUTPUT_TYPE[2][SSLIMIT][SBLIMIT], int, frame_params*, FILE*, unsigned long*);extern void III_dequantize_sample(long int[SBLIMIT][SSLIMIT], double [SBLIMIT][SSLIMIT], III_scalefac_t *, struct gr_info_s *, int, frame_params *,FILE *);extern void III_antialias(double[SBLIMIT][SSLIMIT], double[SBLIMIT][SSLIMIT], struct gr_info_s *, frame_params *,FILE*);extern void inv_mdct(double[18], double[36], int,FILE*);extern void III_hybrid(double[SSLIMIT], double[SSLIMIT] , int, int, struct gr_info_s *, frame_params *,FILE*);extern void III_get_side_info(Bit_stream_struc *, III_side_info_t *, frame_params *);extern void III_put_side_info(Bit_stream_struc *, III_side_info_t *, frame_params *);extern void III_get_scale_factors(III_scalefac_t *, III_side_info_t *, int, int, frame_params *, FILE *);#elseextern void decode_info();extern void II_decode_bitalloc();extern void I_decode_bitalloc();extern void I_decode_scale();extern void II_decode_scale();extern void I_buffer_sample();extern void II_buffer_sample();extern void read_quantizer_table();extern void II_dequantize_sample();extern void I_dequantize_sample();extern void read_scale_factor();extern void II_denormalize_sample();extern void I_denormalize_sample();extern void create_syn_filter();extern int SubBandSynthesis ();extern void read_syn_window();extern void window_sample();extern void out_fifo();extern void buffer_CRC();extern void recover_CRC_error();extern void III_dequantize_sample();extern void III_antialias();extern void inv_mdct();extern void III_hybrid();#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -