1 /* 2 * mmreg.h - Declarations for ??? 3 * 4 * Modified for use with MPlayer, detailed changelog at 5 * http://svn.mplayerhq.hu/mplayer/trunk/ 6 * 7 */ 8 9 #ifndef MPLAYER_MMREG_H 10 #define MPLAYER_MMREG_H 11 12 /*********************************************************************** 13 * Defines/Enums 14 */ 15 16 #ifndef ACM_WAVEFILTER 17 #define ACM_WAVEFILTER 18 19 #include "windef.h" 20 21 #define WAVE_FILTER_UNKNOWN 0x0000 22 #define WAVE_FILTER_DEVELOPMENT 0xFFFF 23 24 typedef struct __attribute__((__packed__)) WAVEFILTER { 25 DWORD cbStruct; 26 DWORD dwFilterTag; 27 DWORD fdwFilter; 28 DWORD dwReserved[5]; 29 } WAVEFILTER, *PWAVEFILTER, *NPWAVEFILTER, *LPWAVEFILTER; 30 #endif /* ACM_WAVEFILTER */ 31 32 #ifndef WAVE_FILTER_VOLUME 33 #define WAVE_FILTER_VOLUME 0x0001 34 35 typedef struct __attribute__((__packed__)) WAVEFILTER_VOLUME { 36 WAVEFILTER wfltr; 37 DWORD dwVolume; 38 } VOLUMEWAVEFILTER, *PVOLUMEWAVEFILTER, *NPVOLUMEWAVEFILTER, *LPVOLUMEWAVEFILTER; 39 #endif /* WAVE_FILTER_VOLUME */ 40 41 #ifndef WAVE_FILTER_ECHO 42 #define WAVE_FILTER_ECHO 0x0002 43 44 typedef struct __attribute__((__packed__)) WAVEFILTER_ECHO { 45 WAVEFILTER wfltr; 46 DWORD dwVolume; 47 DWORD dwDelay; 48 } ECHOWAVEFILTER, *PECHOWAVEFILTER, *NPECHOWAVEFILTER, *LPECHOWAVEFILTER; 49 #endif /* WAVEFILTER_ECHO */ 50 51 #ifndef _WAVEFORMATEX_ 52 #define _WAVEFORMATEX_ 53 typedef struct __attribute__((__packed__)) WAVEFORMATEX { 54 WORD wFormatTag; 55 WORD nChannels; 56 DWORD nSamplesPerSec; 57 DWORD nAvgBytesPerSec; 58 WORD nBlockAlign; 59 WORD wBitsPerSample; 60 WORD cbSize; 61 } WAVEFORMATEX, *PWAVEFORMATEX, *NPWAVEFORMATEX, *LPWAVEFORMATEX; 62 #endif /* _WAVEFORMATEX_ */ 63 64 #ifndef GUID_TYPE 65 #define GUID_TYPE 66 typedef struct 67 { 68 unsigned long f1; 69 unsigned short f2; 70 unsigned short f3; 71 unsigned char f4[8]; 72 } GUID; 73 #endif 74 75 #ifndef _WAVEFORMATEXTENSIBLE_ 76 #define _WAVEFORMATEXTENSIBLE_ 77 typedef struct { 78 WAVEFORMATEX Format; 79 union { 80 WORD wValidBitsPerSample; /* bits of precision */ 81 WORD wSamplesPerBlock; /* valid if wBitsPerSample==0 */ 82 WORD wReserved; /* If neither applies, set to zero. */ 83 } Samples; 84 DWORD dwChannelMask; /* which channels are */ 85 /* present in stream */ 86 GUID SubFormat; 87 } WAVEFORMATEXTENSIBLE, *PWAVEFORMATEXTENSIBLE; 88 #endif // !_WAVEFORMATEXTENSIBLE_ 89 90 #ifndef _MPEGLAYER3WAVEFORMAT_ 91 #define _MPEGLAYER3WAVEFORMAT_ 92 typedef struct WINE_PACKED mpeglayer3waveformat_tag { 93 WORD wFormatTag; 94 WORD nChannels; 95 DWORD nSamplesPerSec; 96 DWORD nAvgBytesPerSec; 97 WORD nBlockAlign; 98 WORD wBitsPerSample; 99 WORD cbSize; 100 WORD wID; 101 DWORD fdwFlags; 102 WORD nBlockSize; 103 WORD nFramesPerBlock; 104 WORD nCodecDelay; 105 } MPEGLAYER3WAVEFORMAT; 106 #endif /* !_MPEGLAYER3WAVEFORMAT_ */ 107 108 /* WAVE form wFormatTag IDs */ 109 110 #define WAVE_FORMAT_UNKNOWN 0x0000 /* Microsoft Corporation */ 111 #define WAVE_FORMAT_ADPCM 0x0002 /* Microsoft Corporation */ 112 #define WAVE_FORMAT_IEEE_FLOAT 0x0003 /* Microsoft Corporation */ 113 #define WAVE_FORMAT_VSELP 0x0004 /* Compaq Computer Corp. */ 114 #define WAVE_FORMAT_IBM_CVSD 0x0005 /* IBM Corporation */ 115 #define WAVE_FORMAT_ALAW 0x0006 /* Microsoft Corporation */ 116 #define WAVE_FORMAT_MULAW 0x0007 /* Microsoft Corporation */ 117 #define WAVE_FORMAT_DTS 0x0008 /* Microsoft Corporation */ 118 #define WAVE_FORMAT_OKI_ADPCM 0x0010 /* OKI */ 119 #define WAVE_FORMAT_DVI_ADPCM 0x0011 /* Intel Corporation */ 120 #define WAVE_FORMAT_IMA_ADPCM (WAVE_FORMAT_DVI_ADPCM) /* Intel Corporation */ 121 #define WAVE_FORMAT_MEDIASPACE_ADPCM 0x0012 /* Videologic */ 122 #define WAVE_FORMAT_SIERRA_ADPCM 0x0013 /* Sierra Semiconductor Corp */ 123 #define WAVE_FORMAT_G723_ADPCM 0x0014 /* Antex Electronics Corporation */ 124 #define WAVE_FORMAT_DIGISTD 0x0015 /* DSP Solutions, Inc. */ 125 #define WAVE_FORMAT_DIGIFIX 0x0016 /* DSP Solutions, Inc. */ 126 #define WAVE_FORMAT_DIALOGIC_OKI_ADPCM 0x0017 /* Dialogic Corporation */ 127 #define WAVE_FORMAT_MEDIAVISION_ADPCM 0x0018 /* Media Vision, Inc. */ 128 #define WAVE_FORMAT_CU_CODEC 0x0019 /* Hewlett-Packard Company */ 129 #define WAVE_FORMAT_YAMAHA_ADPCM 0x0020 /* Yamaha Corporation of America */ 130 #define WAVE_FORMAT_SONARC 0x0021 /* Speech Compression */ 131 #define WAVE_FORMAT_DSPGROUP_TRUESPEECH 0x0022 /* DSP Group, Inc */ 132 #define WAVE_FORMAT_ECHOSC1 0x0023 /* Echo Speech Corporation */ 133 #define WAVE_FORMAT_AUDIOFILE_AF36 0x0024 /* Virtual Music, Inc. */ 134 #define WAVE_FORMAT_APTX 0x0025 /* Audio Processing Technology */ 135 #define WAVE_FORMAT_AUDIOFILE_AF10 0x0026 /* Virtual Music, Inc. */ 136 #define WAVE_FORMAT_PROSODY_1612 0x0027 /* Aculab plc */ 137 #define WAVE_FORMAT_LRC 0x0028 /* Merging Technologies S.A. */ 138 #define WAVE_FORMAT_DOLBY_AC2 0x0030 /* Dolby Laboratories */ 139 #define WAVE_FORMAT_GSM610 0x0031 /* Microsoft Corporation */ 140 #define WAVE_FORMAT_MSNAUDIO 0x0032 /* Microsoft Corporation */ 141 #define WAVE_FORMAT_ANTEX_ADPCME 0x0033 /* Antex Electronics Corporation */ 142 #define WAVE_FORMAT_CONTROL_RES_VQLPC 0x0034 /* Control Resources Limited */ 143 #define WAVE_FORMAT_DIGIREAL 0x0035 /* DSP Solutions, Inc. */ 144 #define WAVE_FORMAT_DIGIADPCM 0x0036 /* DSP Solutions, Inc. */ 145 #define WAVE_FORMAT_CONTROL_RES_CR10 0x0037 /* Control Resources Limited */ 146 #define WAVE_FORMAT_NMS_VBXADPCM 0x0038 /* Natural MicroSystems */ 147 #define WAVE_FORMAT_CS_IMAADPCM 0x0039 /* Crystal Semiconductor IMA ADPCM */ 148 #define WAVE_FORMAT_ECHOSC3 0x003A /* Echo Speech Corporation */ 149 #define WAVE_FORMAT_ROCKWELL_ADPCM 0x003B /* Rockwell International */ 150 #define WAVE_FORMAT_ROCKWELL_DIGITALK 0x003C /* Rockwell International */ 151 #define WAVE_FORMAT_XEBEC 0x003D /* Xebec Multimedia Solutions Limited */ 152 #define WAVE_FORMAT_G721_ADPCM 0x0040 /* Antex Electronics Corporation */ 153 #define WAVE_FORMAT_G728_CELP 0x0041 /* Antex Electronics Corporation */ 154 #define WAVE_FORMAT_MSG723 0x0042 /* Microsoft Corporation */ 155 #define WAVE_FORMAT_MPEG 0x0050 /* Microsoft Corporation */ 156 #define WAVE_FORMAT_RT24 0x0052 /* InSoft, Inc. */ 157 #define WAVE_FORMAT_PAC 0x0053 /* InSoft, Inc. */ 158 #define WAVE_FORMAT_MPEGLAYER3 0x0055 /* ISO/MPEG Layer3 Format Tag */ 159 #define WAVE_FORMAT_LUCENT_G723 0x0059 /* Lucent Technologies */ 160 #define WAVE_FORMAT_CIRRUS 0x0060 /* Cirrus Logic */ 161 #define WAVE_FORMAT_ESPCM 0x0061 /* ESS Technology */ 162 #define WAVE_FORMAT_VOXWARE 0x0062 /* Voxware Inc */ 163 #define WAVE_FORMAT_CANOPUS_ATRAC 0x0063 /* Canopus, co., Ltd. */ 164 #define WAVE_FORMAT_G726_ADPCM 0x0064 /* APICOM */ 165 #define WAVE_FORMAT_G722_ADPCM 0x0065 /* APICOM */ 166 #define WAVE_FORMAT_DSAT_DISPLAY 0x0067 /* Microsoft Corporation */ 167 #define WAVE_FORMAT_VOXWARE_BYTE_ALIGNED 0x0069 /* Voxware Inc */ 168 #define WAVE_FORMAT_VOXWARE_AC8 0x0070 /* Voxware Inc */ 169 #define WAVE_FORMAT_VOXWARE_AC10 0x0071 /* Voxware Inc */ 170 #define WAVE_FORMAT_VOXWARE_AC16 0x0072 /* Voxware Inc */ 171 #define WAVE_FORMAT_VOXWARE_AC20 0x0073 /* Voxware Inc */ 172 #define WAVE_FORMAT_VOXWARE_RT24 0x0074 /* Voxware Inc */ 173 #define WAVE_FORMAT_VOXWARE_RT29 0x0075 /* Voxware Inc */ 174 #define WAVE_FORMAT_VOXWARE_RT29HW 0x0076 /* Voxware Inc */ 175 #define WAVE_FORMAT_VOXWARE_VR12 0x0077 /* Voxware Inc */ 176 #define WAVE_FORMAT_VOXWARE_VR18 0x0078 /* Voxware Inc */ 177 #define WAVE_FORMAT_VOXWARE_TQ40 0x0079 /* Voxware Inc */ 178 #define WAVE_FORMAT_SOFTSOUND 0x0080 /* Softsound, Ltd. */ 179 #define WAVE_FORMAT_VOXWARE_TQ60 0x0081 /* Voxware Inc */ 180 #define WAVE_FORMAT_MSRT24 0x0082 /* Microsoft Corporation */ 181 #define WAVE_FORMAT_G729A 0x0083 /* AT&T Labs, Inc. */ 182 #define WAVE_FORMAT_MVI_MVI2 0x0084 /* Motion Pixels */ 183 #define WAVE_FORMAT_DF_G726 0x0085 /* DataFusion Systems (Pty) (Ltd) */ 184 #define WAVE_FORMAT_DF_GSM610 0x0086 /* DataFusion Systems (Pty) (Ltd) */ 185 #define WAVE_FORMAT_ISIAUDIO 0x0088 /* Iterated Systems, Inc. */ 186 #define WAVE_FORMAT_ONLIVE 0x0089 /* OnLive! Technologies, Inc. */ 187 #define WAVE_FORMAT_SBC24 0x0091 /* Siemens Business Communications Sys */ 188 #define WAVE_FORMAT_DOLBY_AC3_SPDIF 0x0092 /* Sonic Foundry */ 189 #define WAVE_FORMAT_MEDIASONIC_G723 0x0093 /* MediaSonic */ 190 #define WAVE_FORMAT_PROSODY_8KBPS 0x0094 /* Aculab plc */ 191 #define WAVE_FORMAT_ZYXEL_ADPCM 0x0097 /* ZyXEL Communications, Inc. */ 192 #define WAVE_FORMAT_PHILIPS_LPCBB 0x0098 /* Philips Speech Processing */ 193 #define WAVE_FORMAT_PACKED 0x0099 /* Studer Professional Audio AG */ 194 #define WAVE_FORMAT_MALDEN_PHONYTALK 0x00A0 /* Malden Electronics Ltd. */ 195 #define WAVE_FORMAT_RHETOREX_ADPCM 0x0100 /* Rhetorex Inc. */ 196 #define WAVE_FORMAT_IRAT 0x0101 /* BeCubed Software Inc. */ 197 #define WAVE_FORMAT_VIVO_G723 0x0111 /* Vivo Software */ 198 #define WAVE_FORMAT_VIVO_SIREN 0x0112 /* Vivo Software */ 199 #define WAVE_FORMAT_DIGITAL_G723 0x0123 /* Digital Equipment Corporation */ 200 #define WAVE_FORMAT_SANYO_LD_ADPCM 0x0125 /* Sanyo Electric Co., Ltd. */ 201 #define WAVE_FORMAT_SIPROLAB_ACEPLNET 0x0130 /* Sipro Lab Telecom Inc. */ 202 #define WAVE_FORMAT_SIPROLAB_ACELP4800 0x0131 /* Sipro Lab Telecom Inc. */ 203 #define WAVE_FORMAT_SIPROLAB_ACELP8V3 0x0132 /* Sipro Lab Telecom Inc. */ 204 #define WAVE_FORMAT_SIPROLAB_G729 0x0133 /* Sipro Lab Telecom Inc. */ 205 #define WAVE_FORMAT_SIPROLAB_G729A 0x0134 /* Sipro Lab Telecom Inc. */ 206 #define WAVE_FORMAT_SIPROLAB_KELVIN 0x0135 /* Sipro Lab Telecom Inc. */ 207 #define WAVE_FORMAT_G726ADPCM 0x0140 /* Dictaphone Corporation */ 208 #define WAVE_FORMAT_QUALCOMM_PUREVOICE 0x0150 /* Qualcomm, Inc. */ 209 #define WAVE_FORMAT_QUALCOMM_HALFRATE 0x0151 /* Qualcomm, Inc. */ 210 #define WAVE_FORMAT_TUBGSM 0x0155 /* Ring Zero Systems, Inc. */ 211 #define WAVE_FORMAT_MSAUDIO1 0x0160 /* Microsoft Corporation */ 212 #define WAVE_FORMAT_CREATIVE_ADPCM 0x0200 /* Creative Labs, Inc */ 213 #define WAVE_FORMAT_CREATIVE_FASTSPEECH8 0x0202 /* Creative Labs, Inc */ 214 #define WAVE_FORMAT_CREATIVE_FASTSPEECH10 0x0203 /* Creative Labs, Inc */ 215 #define WAVE_FORMAT_UHER_ADPCM 0x0210 /* UHER informatic GmbH */ 216 #define WAVE_FORMAT_QUARTERDECK 0x0220 /* Quarterdeck Corporation */ 217 #define WAVE_FORMAT_ILINK_VC 0x0230 /* I-link Worldwide */ 218 #define WAVE_FORMAT_RAW_SPORT 0x0240 /* Aureal Semiconductor */ 219 #define WAVE_FORMAT_IPI_HSX 0x0250 /* Interactive Products, Inc. */ 220 #define WAVE_FORMAT_IPI_RPELP 0x0251 /* Interactive Products, Inc. */ 221 #define WAVE_FORMAT_CS2 0x0260 /* Consistent Software */ 222 #define WAVE_FORMAT_SONY_SCX 0x0270 /* Sony Corp. */ 223 #define WAVE_FORMAT_FM_TOWNS_SND 0x0300 /* Fujitsu Corp. */ 224 #define WAVE_FORMAT_BTV_DIGITAL 0x0400 /* Brooktree Corporation */ 225 #define WAVE_FORMAT_QDESIGN_MUSIC 0x0450 /* QDesign Corporation */ 226 #define WAVE_FORMAT_VME_VMPCM 0x0680 /* AT&T Labs, Inc. */ 227 #define WAVE_FORMAT_TPC 0x0681 /* AT&T Labs, Inc. */ 228 #define WAVE_FORMAT_OLIGSM 0x1000 /* Ing C. Olivetti & C., S.p.A. */ 229 #define WAVE_FORMAT_OLIADPCM 0x1001 /* Ing C. Olivetti & C., S.p.A. */ 230 #define WAVE_FORMAT_OLICELP 0x1002 /* Ing C. Olivetti & C., S.p.A. */ 231 #define WAVE_FORMAT_OLISBC 0x1003 /* Ing C. Olivetti & C., S.p.A. */ 232 #define WAVE_FORMAT_OLIOPR 0x1004 /* Ing C. Olivetti & C., S.p.A. */ 233 #define WAVE_FORMAT_LH_CODEC 0x1100 /* Lernout & Hauspie */ 234 #define WAVE_FORMAT_NORRIS 0x1400 /* Norris Communications, Inc. */ 235 #define WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS 0x1500 /* AT&T Labs, Inc. */ 236 #define WAVE_FORMAT_DVM 0x2000 /* FAST Multimedia AG */ 237 238 #if !defined(WAVE_FORMAT_EXTENSIBLE) 239 #define WAVE_FORMAT_EXTENSIBLE 0xFFFE /* Microsoft */ 240 #endif // !defined(WAVE_FORMAT_EXTENSIBLE) 241 // 242 // the WAVE_FORMAT_DEVELOPMENT format tag can be used during the 243 // development phase of a new wave format. Before shipping, you MUST 244 // acquire an official format tag from Microsoft. 245 // 246 #define WAVE_FORMAT_DEVELOPMENT (0xFFFF) 247 248 249 #endif /* MPLAYER_MMREG_H */ 250