📄 common.h
字号:
/********************************************************************** * ISO MPEG Audio Subgroup Software Simulation Group (1996) * ISO 13818-3 MPEG-2 Audio Encoder - Lower Sampling Frequency Extension * * $Id: common.h,v 1.1 1996/02/14 04:04:23 rowlands Exp $ * * $Log: common.h,v $ * Revision 1.1 1996/02/14 04:04:23 rowlands * Initial revision * * Received from Mike Coleman **********************************************************************//********************************************************************** * date programmers comment * * 2/25/91 Doulas Wong, start of version 1.0 records * * Davis Pan * * 5/10/91 W. Joseph Carter Reorganized & renamed all ".h" files * * into "common.h" and "encoder.h". * * Ported to Macintosh and Unix. * * Added additional type definitions for * * AIFF, double/SANE and "bitstream.c". * * Added function prototypes for more * * rigorous type checking. * * 27jun91 dpwe (Aware) Added "alloc_*" defs & prototypes * * Defined new struct 'frame_params'. * * Changed info.stereo to info.mode_ext * * #define constants for mode types * * Prototype arguments if PROTO_ARGS * * 5/28/91 Earle Jennings added MS_DOS definition * * MsDos function prototype declarations * * 7/10/91 Earle Jennings added FLOAT definition as double * *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. * * Changed BUFFER_SIZE back to 4096. * * 7/27/92 Michael Li (re-)Ported to MS-DOS * * 7/27/92 Masahiro Iwadare Ported to Convex * * 8/07/92 mc@tv.tek.com * * 8/10/92 Amit Gulati Ported to the AIX Platform (RS6000) * * AIFF string constants redefined * * 8/27/93 Seymour Shlien, Fixes in Unix and MSDOS ports, * * Daniel Lauzon, and * * Bill Truerniet * *--------------------------------------------------------------------* * 4/23/92 J. Pineda Added code for Layer III. * * 11/9/92 Amit Gulati Added defines for layerIII stereo * * modes. * * 8/24/93 Masahiro Iwadare Included IS modification in Layer III.* * Changed for 1 pass decoding. * * 9/07/93 Toshiyuki Ishino Integrated Layer III with Ver 3.9. * *--------------------------------------------------------------------* * 11/20/93 Masahiro Iwadare Integrated Layer III with Ver 4.0. * *--------------------------------------------------------------------* * 7/14/94 Juergen Koller Fix for HPUX an IRIX in AIFF-Strings * * 6/12/95 Soeren H. Nielsen Bug fix in new_ext(). * * 7/11/95 Soeren H. Nielsen Added defs. for MPEG-2 LSF * *--------------------------------------------------------------------* * 8/02/95 mc@fivebats.com Changes to AIFF stuff for portability * * to little-endian machines * **********************************************************************/#ifndef COMMON_DOT_H#define COMMON_DOT_H/************************************************************************* Global Conditional Compile Switches************************************************************************/#if 0#define UNIX /* Unix conditional compile switch */#define MACINTOSH /* Macintosh conditional compile switch */#define MS_DOS /* IBM PC conditional compile switch */#define MSC60 /* Compiled for MS_DOS with MSC v6.0 */#define AIX /* AIX conditional compile switch */#define CONVEX /* CONVEX conditional compile switch */#endif#if defined(MSC60) #ifndef MS_DOS#define MS_DOS#endif#ifndef PROTO_ARGS#define PROTO_ARGS#endif#endif#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 */#endif /* UNIX */#ifdef MACINTOSH#define TABLES_PATH ":tables:" /* where to find data files */#endif /* MACINTOSH *//* * Don't define FAR to far unless you're willing to clean up the * prototypes */#define FAR /*far*/#ifdef __STDC__#ifndef PROTO_ARGS#define PROTO_ARGS#endif#endif#ifdef CONVEX#define SEEK_SET 0#define SEEK_CUR 1#define SEEK_END 2#endif/* 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>#include "portableio.h"#include "ieeefloat.h"#ifdef UNIX#include <unistd.h>#endif /* UNIX */#ifdef __sgi#include <stdlib.h>#endif#ifdef MACINTOSH#include <stdlib.h>#include <console.h>#endif /* MACINTOSH */#ifdef MS_DOS#include <stdlib.h>#ifdef MSC60#include <memory.h>#else#include <alloc.h>#include <mem.h>#endif /* MSC60 */#endif /* MS_DOS */#ifndef EXIT_SUCCESS#define EXIT_SUCCESS 0#endif#ifndef EXIT_FAILURE#define EXIT_FAILURE 1#endif/************************************************************************* Global Definitions************************************************************************//* General Definitions */#ifdef MS_DOS#define FLOAT double#else#define FLOAT float#endif#ifndef FALSE#define FALSE 0#endif#ifndef TRUE#define TRUE 1#endif#define NULL_CHAR '\0'#define MAX_U_32_NUM 0xFFFFFFFF#ifndef PI#define PI 3.14159265358979#endif#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 MPEG_PHASE2_LSF 0 /* 1995-07-11 SHN */#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 SSLIMIT 18#define FFT_SIZE 1024#define HAN_SIZE 512#define SCALE_BLOCK 12#define SCALE_RANGE 64#define SCALE 32768#define CRC16_POLYNOMIAL 0x8005/* 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/* Mode Extention */#define MPG_MD_LR_LR 0#define MPG_MD_LR_I 1#define MPG_MD_MS_LR 2#define MPG_MD_MS_I 3/* "bit_stream.h" Definitions */#define MINIMUM 4 /* Minimum size of the buffer in bytes */#define MAX_LENGTH 32 /* Maximum length of word written or read from bit stream */#define READ_MODE 0#define WRITE_MODE 1#define ALIGNING 8#define BINARY 0#define ASCII 1#ifndef BS_FORMAT
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -