www.pudn.com > av3dec_20050318.zip > WVpar.h


/*------------ Telecommunications & Signal Processing Lab -------------- 
                         McGill University 
 
Routine: 
  WVpar.h 
 
Description: 
  Declarations for RIFF WAVE file headers 
 
Author / revision: 
  P. Kabal  Copyright (C) 1999 
  $Revision: 1.17 $  $Date: 1999/02/15 04:58:12 $ 
 
----------------------------------------------------------------------*/ 
 
#ifndef WVpar_h_ 
#define WVpar_h_ 
 
#include 		/* typedef for uint2_t, etc */ 
 
 
/* File magic in file byte order */ 
#define FM_RIFF		"RIFF" 
#define FM_WAVE		"WAVE" 
 
#define WAVE_FORMAT_UNKNOWN		(0x0000) 
#define WAVE_FORMAT_PCM			(0x0001)  
#define WAVE_FORMAT_ADPCM		(0x0002) 
#define WAVE_FORMAT_IEEE_FLOAT		(0x0003) 
#define WAVE_FORMAT_VSELP		(0x0004) 
#define WAVE_FORMAT_IBM_CVSD		(0x0005) 
#define WAVE_FORMAT_ALAW		(0x0006) 
#define WAVE_FORMAT_MULAW		(0x0007) 
#define WAVE_FORMAT_OKI_ADPCM		(0x0010) 
#define WAVE_FORMAT_DVI_ADPCM		(0x0011) 
#define WAVE_FORMAT_IMA_ADPCM		(WAVE_FORMAT_DVI_ADPCM) 
#define WAVE_FORMAT_MEDIASPACE_ADPCM	(0x0012) 
#define WAVE_FORMAT_SIERRA_ADPCM	(0x0013) 
#define WAVE_FORMAT_G723_ADPCM		(0x0014) 
#define WAVE_FORMAT_DIGISTD		(0x0015) 
#define WAVE_FORMAT_DIGIFIX		(0x0016) 
#define WAVE_FORMAT_DIALOGIC_OKI_ADPCM	(0x0017) 
#define WAVE_FORMAT_MEDIAVISION_ADPCM	(0x0018) 
#define WAVE_FORMAT_CU_CODER		(0x0019) 
#define WAVE_FORMAT_YAMAHA_ADPCM	(0x0020) 
#define WAVE_FORMAT_SONARC		(0x0021) 
#define WAVE_FORMAT_DSPGROUP_TRUESPEECH	(0x0022) 
#define WAVE_FORMAT_ECHOSC1		(0x0023) 
#define WAVE_FORMAT_AUDIOFILE_AF36	(0x0024) 
#define WAVE_FORMAT_APTX		(0x0025) 
#define WAVE_FORMAT_AUDIOFILE_AF10	(0x0026) 
#define WAVE_FORMAT_PROSODY_1612	(0x0027) 
#define WAVE_FORMAT_LRC			(0x0028) 
#define WAVE_FORMAT_DOLBY_AC2		(0x0030) 
#define WAVE_FORMAT_GSM610		(0x0031) 
#define WAVE_FORMAT_MSN_AUDIO		(0x0032) 
#define WAVE_FORMAT_ANTEXT_ADPCME	(0x0033) 
#define WAVE_FORMAT_CONTROL_RES_VQLPC	(0x0034) 
#define WAVE_FORMAT_DIGIREAL		(0x0035) 
#define WAVE_FORMAT_DIGIADPCM		(0x0036) 
#define WAVE_FORMAT_CONTROL_RES_CR10	(0x0037) 
#define WAVE_FORMAT_NMS_VBXADPCM	(0x0038) 
#define WAVE_FORMAT_ROLAND_RDAC		(0x0039) 
#define WAVE_FORMAT_ECHOSC3		(0x003A) 
#define WAVE_FORMAT_ROCKWELL_ADPCM	(0x003B) 
#define WAVE_FORMAT_ROCKWELL_DIGITALK	(0x003C) 
#define WAVE_FORMAT_XEBEC		(0x003D) 
#define WAVE_FORMAT_G721_ADPCM		(0x0040) 
#define WAVE_FORMAT_G728_CELP		(0x0041) 
#define WAVE_FORMAT_MSG723		(0x0042) 
#define WAVE_FORMAT_MPEG		(0x0050) 
#define WAVE_FORMAT_RT24		(0x0052) 
#define WAVE_FORMAT_PAC			(0x0053) 
#define WAVE_FORMAT_MPEGLAYER3		(0x0055) 
#define WAVE_FORMAT_LUCENT_G723		(0x0059) 
#define WAVE_FORMAT_CIRRUS		(0x0060) 
#define WAVE_FORMAT_ESPCM		(0x0061) 
#define WAVE_FORMAT_VOXWARE		(0x0062)	/* obsolete */ 
#define WAVE_FORMAT_CANOPUS_ATRAC	(0x0063) 
#define WAVE_FORMAT_G726_ADPCM		(0x0064) 
#define WAVE_FORMAT_G722_ADPCM		(0x0065) 
#define WAVE_FORMAT_DSAT		(0x0066) 
#define WAVE_FORMAT_DSAT_DISPLAY	(0x0067) 
#define WAVE_FORMAT_VOXWARE_BYTE_ALIGNED (0x0069)	/* obsolete */ 
#define WAVE_FORMAT_VOXWARE_AC8		(0x0070)	/* obsolete */ 
#define WAVE_FORMAT_VOXWARE_AC10	(0x0071)	/* obsolete */ 
#define WAVE_FORMAT_VOXWARE_AC16	(0x0072)	/* obsolete */ 
#define WAVE_FORMAT_VOXWARE_AC20	(0x0073)	/* obsolete */ 
#define WAVE_FORMAT_VOXWARE_RT24	(0x0074) 
#define WAVE_FORMAT_VOXWARE_RT29	(0x0075) 
#define WAVE_FORMAT_VOXWARE_RT29HW	(0x0076)	/* obsolete */ 
#define WAVE_FORMAT_VOXWARE_VR12	(0x0077)	/* obsolete */ 
#define WAVE_FORMAT_VOXWARE_VR18	(0x0078)	/* obsolete */ 
#define WAVE_FORMAT_VOXWARE_TQ40	(0x0079)	/* obsolete */ 
#define WAVE_FORMAT_SOFTSOUND		(0x0080) 
#define WAVE_FORMAT_VOXWARE_TQ60	(0x0081)	/* obsolete */ 
#define WAVE_FORMAT_MSRT24		(0x0082)	/* = VOXWARE_TR24 */ 
#define WAVE_FORMAT_G729A		(0x0083) 
#define WAVE_FORMAT_MVI_MV12		(0x0084) 
#define WAVE_FORMAT_DF_G726		(0x0085) 
#define WAVE_FORMAT_DF_GSM610		(0x0086) 
#define WAVE_FORMAT_ISIAUDIO		(0x0088) 
#define WAVE_FORMAT_ONLIVE		(0x0089) 
#define WAVE_FORMAT_SBC24		(0x0091) 
#define WAVE_FORMAT_AC3_SPDIF		(0x0092) 
#define WAVE_FORMAT_ZYXEL_ADPCM		(0x0097) 
#define WAVE_FORMAT_PHILIPS_LPCBB	(0x0098) 
#define WAVE_FORMAT_PACKED		(0x0099) 
#define WAVE_FORMAT_RHETOREX_ADPCM	(0x0100) 
#define WAVE_FORMAT_IRAT		(0x0101) 
#define WAVE_FORMAT_VIVO_G723		(0x0111) 
#define WAVE_FORMAT_VIVO_SIREN		(0x0112) 
#define WAVE_FORMAT_DIGITAL_G723	(0x0123) 
#define WAVE_FORMAT_CREATIVE_ADPCM	(0x0200) 
#define WAVE_FORMAT_CREATIVE_FASTSPEECH8 (0x0202) 
#define WAVE_FORMAT_CREATIVE_FASTSPEECH10 (0x0203) 
#define WAVE_FORMAT_QUARTERDECK		(0x0220) 
#define WAVE_FORMAT_FM_TOWNS_SND	(0x0300) 
#define WAVE_FORMAT_BTV_DIGITAL		(0x0400) 
#define WAVE_FORMAT_VME_VMPCM		(0x0680) 
#define WAVE_FORMAT_OLIGSM		(0x1000) 
#define WAVE_FORMAT_OLIADPCM		(0x1001) 
#define WAVE_FORMAT_OLICELP		(0x1002) 
#define WAVE_FORMAT_OLISBC		(0x1003) 
#define WAVE_FORMAT_OLIOPR		(0x1004) 
#define WAVE_FORMAT_LH_CODEC		(0x1100) 
#define WAVE_FORMAT_NORRIS		(0x1400) 
#define WAVE_FORMAT_X_ISIAUDIO		(0x1401) 
#define WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS (0x1500) 
#define WAVE_FORMAT_DVM			(0x2000) 
 
 
#define WV_SF_MULAW	(1.) 
#define WV_SF_ALAW	(1.) 
#define WV_SF_PCM8	(128.) 
#define WV_SF_PCM16	(1.) 
#define WV_SF_PCM24	(1./256.) 
#define WV_SF_PCM32	(1./65536.) 
#define WV_SF_FLOAT32_X	(1./256.)	/* Used by CoolEdit */ 
#define WV_SF_FLOAT32	(32768.) 
#define WV_SF_FLOAT64	(32768.) 
 
/* Text flag used in the DISP chunk */ 
#define CF_TEXT		((uint4_t) 1) 
 
struct WV_CkPreamb { 
  char ckid[4]; 
  uint4_t cksize; 
}; 
 
struct WV_PCMfmt { 
  char ckid[4]; 
  uint4_t cksize; 
  uint2_t FormatTag; 
  uint2_t Channels; 
  uint4_t SamplesPerSec; 
  uint4_t AvgBytesPerSec; 
  uint2_t BlockAlign; 
  uint2_t BitsPerSample; 
}; 
 
struct WV_DISP { 
  char ckid[4]; 
  uint4_t cksize; 
  uint4_t type; 
  const char *text; 
}; 
 
struct WV_AFSP { 
  char ckid[4]; 
  uint4_t cksize; 
  char AFspID[4]; 
  const char *text; 
}; 
 
#define WV_N_LIST_INFO	18	/* Maximum number of LIST/INFO items */ 
struct WV_LIST_INFO { 
  char ckid[4]; 
  uint4_t cksize; 
  char listid[4]; 
  int N; 
  struct { 
    char ckid[4]; 
    uint4_t cksize; 
    const char *text; 
  } listitem[WV_N_LIST_INFO]; 
}; 
 
#endif	/* WVpar_h_ */