📄 common.h
字号:
/********************************************************************** * ISO MPEG Audio Subgroup Software Simulation Group (1996) * ISO 13818-3 MPEG-2 Audio Multichannel Decoder * * $Id: common.h 2.2 1997/01/17 04:31:07 rowlands Exp $ * * $Log: common.h $ * Revision 2.2 1997/01/17 04:31:07 rowlands * Updated pagkage revision number * * Revision 2.1 1996/04/18 05:37:23 rowlands * Release following Florence meeting * * Revision 2.0 1996/02/12 07:19:57 rowlands * Release following Munich meeting * * Revision 1.9.1.1 1996/01/20 17:28:45 rowlands * Received from Ralf Schwalbe (Telekom FTZ) - includes prediction * * Revision 1.7.1.3 1995/08/14 08:11:37 tenkate * ML-LSF added WtK 7/8/95 * struct frame_params extended. * * Revision 1.7.1.1 1995/07/14 06:12:46 rowlands * Updated dynamic crosstalk from FTZ: revision FTZ_03 * * Revision 1.6 1995/06/22 01:23:00 rowlands * Merged FTZ dynamic crosstalk * **********************************************************************//********************************************************************** * date programmers comment * * 2/25/91 Douglas Wong start of version 1.0 records * * 3/06/91 Douglas Wong rename setup.h to dedef.h * * removed extraneous variables * * removed window_samples (now part of * * filter_samples) * * 3/07/91 Davis Pan changed output file to "codmusic" * * 5/10/91 Vish (PRISM) Ported to Macintosh and Unix. * * Incorporated new "out_fifo()" which * * writes out last incomplete buffer. * * Incorporated all AIFF routines which * * are also compatible with SUN. * * Incorporated user interface for * * specifying sound file names. * * Also incorporated user interface for * * writing AIFF compatible sound files. * * 27jun91 dpwe (Aware) Added musicout and &sample_frames as * * args to out_fifo (were glob refs). * * Used new 'frame_params' struct. * * Clean,simplify, track clipped output * * and total bits/frame received. * * 7/10/91 Earle Jennings changed to floats to FLOAT * *10/ 1/91 S.I. Sudharsanan, Ported to IBM AIX platform. * * Don H. Lee, * * Peter W. Farrett * *10/ 3/91 Don H. Lee implemented CRC-16 error protection * * newly introduced functions are * * buffer_CRC and recover_CRC_error * * Additions and revisions are marked * * with "dhl" for clarity * * 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. * ********************************************************************** * * * * * MPEG/audio Phase 2 coding/decoding multichannel * * * * Version 1.0 * * * * 7/27/93 Susanne Ritscher, IRT Munich * * * * thanks to * * Ralf Schwalbe, Telekom FTZ Berlin * * Heiko Purnhagen, Uni Hannover * * * * Version 2.0 * * * * 8/27/93 Susanne Ritscher, IRT Munich * * Channel-Switching is working * * * * Version 2.1 * * * * 9/1/93 Susanne Ritscher, IRT Munich * * all channels normalized * * * * Version 3.0 * * * * 06/16/94 Ralf Schwalbe, Telekom FTZ Berlin * * all sources and variables adapted due to MPEG-2 - * * DIS from March 1994 * * - dematrix and denormalize procedure * * - new tc - allocation (0-7) * * - some new structures and variables as a basis * * for further decoding modes * ********************************************************************** * * * Version 1.0 * * * * 11/04/94 Ralf Schwalbe, Telekom FTZ Berlin * * - decoding tc-allocation * * - some new subroutines, globale variables and * * structures (important to handle the ext. bitst.)* * - changed all functions to ANSI-C funktion header * * - corrected some bugs to decode bitstreams > 512kB* * * * Version 1.1 * * * * 12/07/94 Ralf Schwalbe, Telekom FTZ Berlin * * - decoding extension bitstream * * * * Version 1.1.1 * * Ralf Schwalbe, Telekom FTZ Berlin * * - fixed some bugs * * * * Version 1.2 * * * * 6/21/95 Ralf Schwalbe, Deutsche Telekom FTZ Berlin * * - decoding dynamic crosstalk * * - decoding phantom center * * - decoding MPEG1 compatible part only (stereo) * * - corrected some settings and bugs * * * * 7/12/95 Ralf Schwalbe, Deutsche Telekom FTZ Berlin * * - corrected dynamic crosstalk * * - 3/2,3/1,3/0,2/1, channel configurations * * are working * * * * 10/31/95 Ralf Schwalbe, Deutsche Telekom FTZ Berlin * * - decoding of LFE-channel is working * * - corrected any settings and bugs * * - corrected table-switch for channel mode < 3/2 * * and tc-allocation / dyn-crosstalk * * - still a problem with compl. bitstream 18/19 * * * * 01/12/96 Ralf Schwalbe, Deutsche Telekom TZ Darmstadt * * - decoder prediction installed * * - problem with compl. bitstream 19 solved, * * * * Version 2.0 * * * * 01/28/97 Frans de Bont, Philips Sound & Vision, Eindhoven * * - simultaneous use of tc allocation and dynamic * * crosstalk working for all configurations * * - prediction working for all configurations * * - layer 1 MC working * * - variable bit rate and extension bitstreams * * - fully compliant to 13818-3.2 * * * * **********************************************************************/#define VERSION "$Revision: 2.2 $"/************************************************************************* Global Conditional Compile Switches************************************************************************//*#define PRINTOUT*/#ifdef UNIX#define TABLES_PATH "tables/" /* to find data files *//* name of environment variable holding path of table files */#define MPEGTABENV "MPEGTABLES"#define PATH_SEPARATOR "/" /* how to build paths */#define PROTO_ARGS /* unix gcc uses arg. prototypes */#endif /* UNIX */#ifdef MACINTOSH/* #define TABLES_PATH ":tables:" /* where to find data files */#define PROTO_ARGS /* Mac uses argument prototypes */#endif /* MACINTOSH */#ifdef MS_DOS#define PROTO_ARGS /* DOS uses argument prototypes */#endif /* MS_DOS *//* MS_DOS and VMS do not define TABLES_PATH, so OpenTableFile will default to finding the data files in the default directory *//************************************************************************* Global Include Files************************************************************************/#include <stdio.h>#include <string.h>#include <math.h>#ifdef UNIX#include <unistd.h> /* removed 92-08-05 shn */#include <stdlib.h> /* put in 92-08-05 shn */#endif /* UNIX */#ifdef MACINTOSH#include <stdlib.h>#include <console.h>#endif /* MACINTOSH */#ifdef MS_DOS/* #include <alloc.h> */ /* removed 92-07-08 sr */#include <malloc.h> /* put in 92-07-08 sr *//* #include <mem.h> */ /* removed 92-07-08 sr */#include <stdlib.h>#endif /* MS_DOS *//************************************************************************* Global Definitions************************************************************************/extern int pred_coef_table[6][16]; /* def. in decode.c */extern double S_freq;extern int Bitrate, Frame_Bits;/* General Definitions */#ifdef MS_DOS#define FLOAT double#else#define FLOAT float#endif#define FALSE 0#define TRUE (!FALSE)#define NULL_CHAR '\0'#define MAX_U_32_NUM 0xFFFFFFFF#define PI 3.14159265358979#define PI4 PI/4#define PI64 PI/64#define LN_TO_LOG10 0.2302585093#define VOL_REF_NUM 0#define MPEG_AUDIO_ID 1#define MAC_WINDOW_SIZE 24#define MONO 1#define STEREO 2#define BITS_IN_A_BYTE 8#define WORD 16#define MAX_NAME_SIZE 81#define SBLIMIT 32#define FFT_SIZE 1024#define HAN_SIZE 512#define SCALE_BLOCK 12#define SCALE_RANGE 64#define SCALE 32768.0#define CRC16_POLYNOMIAL 0x8005/* Sync - Word for multichannel extern bitstream */#define EXT_SYNCWORD 0x7ff/* MPEG Header Definitions - Mode Values */#define MPG_MD_STEREO 0#define MPG_MD_JOINT_STEREO 1#define MPG_MD_DUAL_CHANNEL 2#define MPG_MD_MONO 3#define MPG_MD_NONE 4/* Multi-channel Definitions - Mode Values */#define MPG_MC_STEREO 0#define MPG_MC_NONE 6/* AIFF Definitions */#ifndef MS_DOS#define IFF_ID_FORM "FORM" /* HP400 unix v8.0: double qoutes 1992-07-24 shn */#define IFF_ID_AIFF "AIFF"#define IFF_ID_COMM "COMM"#define IFF_ID_SSND "SSND"#define IFF_ID_MPEG "MPEG"#else#define IFF_ID_FORM "FORM"#define IFF_ID_AIFF "AIFF"#define IFF_ID_COMM "COMM"#define IFF_ID_SSND "SSND"#define IFF_ID_MPEG "MPEG"#endif/* "bit_stream.h" Definitions */#define MINIMUM 4 /* Minimum size of the buffer in bytes */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -