DECODER.H
资源名称:ampegsrc.zip [点击查看]
上传用户:dshsh2009
上传日期:2007-01-07
资源大小:155k
文件大小:8k
源码类别:
mpeg/mp3
开发平台:
Unix_Linux
- /**********************************************************************
- Copyright (c) 1991 MPEG/audio software simulation group, All Rights Reserved
- decoder.h
- **********************************************************************/
- /**********************************************************************
- * MPEG/audio coding/decoding software, work in progress *
- * NOT for public distribution until verified and approved by the *
- * MPEG/audio committee. For further information, please contact *
- * Davis Pan, 708-538-5671, e-mail: pan@ukraine.corp.mot.com *
- * *
- * VERSION 4.3 *
- * changes made since last update: *
- * 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() *
- **********************************************************************/
- /***********************************************************************
- *
- * 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_ARGS
- static void usage(void);
- #else
- static void usage();
- #endif
- /* The following functions are in the file "decode.c" */
- #ifdef PROTO_ARGS
- extern 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]);
- extern int SubBandSynthesis (double*, int, short*);
- extern void read_syn_window(double[HAN_SIZE]);
- extern void window_sample(double*, double*);
- extern void out_fifo(short[2][SSLIMIT][SBLIMIT], int, frame_params*, int,
- FILE*, unsigned long*);
- extern void buffer_CRC(Bit_stream_struc*, unsigned int*);
- extern void recover_CRC_error(short[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 *);
- extern void III_antialias(double[SBLIMIT][SSLIMIT], double[SBLIMIT][SSLIMIT],
- struct gr_info_s *, frame_params *);
- extern void inv_mdct(double[18], double[36], int);
- extern void III_hybrid(double[SSLIMIT], double[SSLIMIT] , int, int,
- struct gr_info_s *, frame_params *);
- #else
- extern 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