1 /** 2 * This file has no copyright assigned and is placed in the Public Domain. 3 * This file is part of the mingw-w64 runtime package. 4 * No warranty is given; refer to the file DISCLAIMER.PD within this package. 5 */ 6 7 #if !defined(_KSMEDIA_) 8 #define _KSMEDIA_ 9 10 #include <ks.h> 11 12 typedef struct { 13 KSPROPERTY Property; 14 KSMULTIPLE_ITEM MultipleItem; 15 } KSMULTIPLE_DATA_PROP,*PKSMULTIPLE_DATA_PROP; 16 17 #define STATIC_KSMEDIUMSETID_MidiBus \ 18 0x05908040,0x3246,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 19 DEFINE_GUIDSTRUCT("05908040-3246-11D0-A5D6-28DB04C10000",KSMEDIUMSETID_MidiBus); 20 #define KSMEDIUMSETID_MidiBus DEFINE_GUIDNAMED(KSMEDIUMSETID_MidiBus) 21 22 #define STATIC_KSMEDIUMSETID_VPBus \ 23 0xA18C15EC,0xCE43,0x11D0,0xAB,0xE7,0x00,0xA0,0xC9,0x22,0x31,0x96 24 DEFINE_GUIDSTRUCT("A18C15EC-CE43-11D0-ABE7-00A0C9223196",KSMEDIUMSETID_VPBus); 25 #define KSMEDIUMSETID_VPBus DEFINE_GUIDNAMED(KSMEDIUMSETID_VPBus) 26 27 #define STATIC_KSINTERFACESETID_Media \ 28 0x3A13EB40,0x30A7,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 29 DEFINE_GUIDSTRUCT("3A13EB40-30A7-11D0-A5D6-28DB04C10000",KSINTERFACESETID_Media); 30 #define KSINTERFACESETID_Media DEFINE_GUIDNAMED(KSINTERFACESETID_Media) 31 32 typedef enum { 33 KSINTERFACE_MEDIA_MUSIC, 34 KSINTERFACE_MEDIA_WAVE_BUFFERED, 35 KSINTERFACE_MEDIA_WAVE_QUEUED 36 } KSINTERFACE_MEDIA; 37 38 #ifndef INIT_USBAUDIO_MID 39 #define INIT_USBAUDIO_MID(guid,id) \ 40 { \ 41 (guid)->Data1 = 0x4e1cecd2 + (USHORT)(id); \ 42 (guid)->Data2 = 0x1679; \ 43 (guid)->Data3 = 0x463b; \ 44 (guid)->Data4[0] = 0xa7; \ 45 (guid)->Data4[1] = 0x2f; \ 46 (guid)->Data4[2] = 0xa5; \ 47 (guid)->Data4[3] = 0xbf; \ 48 (guid)->Data4[4] = 0x64; \ 49 (guid)->Data4[5] = 0xc8; \ 50 (guid)->Data4[6] = 0x6e; \ 51 (guid)->Data4[7] = 0xba; \ 52 } 53 #define EXTRACT_USBAUDIO_MID(guid) \ 54 (USHORT)((guid)->Data1 - 0x4e1cecd2) 55 #define DEFINE_USBAUDIO_MID_GUID(id) \ 56 0x4e1cecd2+(USHORT)(id),0x1679,0x463b,0xa7,0x2f,0xa5,0xbf,0x64,0xc8,0x6e,0xba 57 #define IS_COMPATIBLE_USBAUDIO_MID(guid) \ 58 (((guid)->Data1 >= 0x4e1cecd2) && \ 59 ((guid)->Data1 < 0x4e1cecd2 + 0xffff) && \ 60 ((guid)->Data2 == 0x1679) && \ 61 ((guid)->Data3 == 0x463b) && \ 62 ((guid)->Data4[0] == 0xa7) && \ 63 ((guid)->Data4[1] == 0x2f) && \ 64 ((guid)->Data4[2] == 0xa5) && \ 65 ((guid)->Data4[3] == 0xbf) && \ 66 ((guid)->Data4[4] == 0x64) && \ 67 ((guid)->Data4[5] == 0xc8) && \ 68 ((guid)->Data4[6] == 0x6e) && \ 69 ((guid)->Data4[7] == 0xba) ) 70 #endif /* INIT_USBAUDIO_MID */ 71 72 #ifndef INIT_USBAUDIO_PID 73 #define INIT_USBAUDIO_PID(guid,id) \ 74 { \ 75 (guid)->Data1 = 0xabcc5a5e + (USHORT)(id); \ 76 (guid)->Data2 = 0xc263; \ 77 (guid)->Data3 = 0x463b; \ 78 (guid)->Data4[0] = 0xa7; \ 79 (guid)->Data4[1] = 0x2f; \ 80 (guid)->Data4[2] = 0xa5; \ 81 (guid)->Data4[3] = 0xbf; \ 82 (guid)->Data4[4] = 0x64; \ 83 (guid)->Data4[5] = 0xc8; \ 84 (guid)->Data4[6] = 0x6e; \ 85 (guid)->Data4[7] = 0xba; \ 86 } 87 #define EXTRACT_USBAUDIO_PID(guid) \ 88 (USHORT)((guid)->Data1 - 0xabcc5a5e) 89 #define DEFINE_USBAUDIO_PID_GUID(id) \ 90 0xabcc5a5e+(USHORT)(id),0xc263,0x463b,0xa7,0x2f,0xa5,0xbf,0x64,0xc8,0x6e,0xba 91 #define IS_COMPATIBLE_USBAUDIO_PID(guid) \ 92 (((guid)->Data1 >= 0xabcc5a5e) && \ 93 ((guid)->Data1 < 0xabcc5a5e + 0xffff) && \ 94 ((guid)->Data2 == 0xc263) && \ 95 ((guid)->Data3 == 0x463b) && \ 96 ((guid)->Data4[0] == 0xa7) && \ 97 ((guid)->Data4[1] == 0x2f) && \ 98 ((guid)->Data4[2] == 0xa5) && \ 99 ((guid)->Data4[3] == 0xbf) && \ 100 ((guid)->Data4[4] == 0x64) && \ 101 ((guid)->Data4[5] == 0xc8) && \ 102 ((guid)->Data4[6] == 0x6e) && \ 103 ((guid)->Data4[7] == 0xba) ) 104 #endif /* INIT_USBAUDIO_PID */ 105 106 #ifndef INIT_USBAUDIO_PRODUCT_NAME 107 #define INIT_USBAUDIO_PRODUCT_NAME(guid,vid,pid,strIndex) \ 108 { \ 109 (guid)->Data1 = 0XFC575048 + (USHORT)(vid); \ 110 (guid)->Data2 = 0x2E08 + (USHORT)(pid); \ 111 (guid)->Data3 = 0x463B + (USHORT)(strIndex); \ 112 (guid)->Data4[0] = 0xA7; \ 113 (guid)->Data4[1] = 0x2F; \ 114 (guid)->Data4[2] = 0xA5; \ 115 (guid)->Data4[3] = 0xBF; \ 116 (guid)->Data4[4] = 0x64; \ 117 (guid)->Data4[5] = 0xC8; \ 118 (guid)->Data4[6] = 0x6E; \ 119 (guid)->Data4[7] = 0xBA; \ 120 } 121 #define DEFINE_USBAUDIO_PRODUCT_NAME(vid,pid,strIndex) \ 122 0xFC575048+(USHORT)(vid),0x2E08+(USHORT)(pid),0x463B+(USHORT)(strIndex),0xA7,0x2F,0xA5,0xBF,0x64,0xC8,0x6E,0xBA 123 #endif /* INIT_USBAUDIO_PRODUCT_NAME */ 124 125 #define STATIC_KSCOMPONENTID_USBAUDIO \ 126 0x8F1275F0,0x26E9,0x4264,0xBA,0x4D,0x39,0xFF,0xF0,0x1D,0x94,0xAA 127 DEFINE_GUIDSTRUCT("8F1275F0-26E9-4264-BA4D-39FFF01D94AA",KSCOMPONENTID_USBAUDIO); 128 #define KSCOMPONENTID_USBAUDIO DEFINE_GUIDNAMED(KSCOMPONENTID_USBAUDIO) 129 130 #define INIT_USB_TERMINAL(guid,id) \ 131 { \ 132 (guid)->Data1 = 0xDFF219E0 + (USHORT)(id); \ 133 (guid)->Data2 = 0xF70F; \ 134 (guid)->Data3 = 0x11D0; \ 135 (guid)->Data4[0] = 0xb9; \ 136 (guid)->Data4[1] = 0x17; \ 137 (guid)->Data4[2] = 0x00; \ 138 (guid)->Data4[3] = 0xa0; \ 139 (guid)->Data4[4] = 0xc9; \ 140 (guid)->Data4[5] = 0x22; \ 141 (guid)->Data4[6] = 0x31; \ 142 (guid)->Data4[7] = 0x96; \ 143 } 144 #define EXTRACT_USB_TERMINAL(guid) \ 145 (USHORT)((guid)->Data1 - 0xDFF219E0) 146 #define DEFINE_USB_TERMINAL_GUID(id) \ 147 0xDFF219E0+(USHORT)(id),0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96 148 149 #define STATIC_KSNODETYPE_MICROPHONE \ 150 DEFINE_USB_TERMINAL_GUID(0x0201) 151 DEFINE_GUIDSTRUCT("DFF21BE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MICROPHONE); 152 #define KSNODETYPE_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE) 153 154 #define STATIC_KSNODETYPE_DESKTOP_MICROPHONE \ 155 DEFINE_USB_TERMINAL_GUID(0x0202) 156 DEFINE_GUIDSTRUCT("DFF21BE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DESKTOP_MICROPHONE); 157 #define KSNODETYPE_DESKTOP_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_DESKTOP_MICROPHONE) 158 159 #define STATIC_KSNODETYPE_PERSONAL_MICROPHONE \ 160 DEFINE_USB_TERMINAL_GUID(0x0203) 161 DEFINE_GUIDSTRUCT("DFF21BE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PERSONAL_MICROPHONE); 162 #define KSNODETYPE_PERSONAL_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_PERSONAL_MICROPHONE) 163 164 #define STATIC_KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE \ 165 DEFINE_USB_TERMINAL_GUID(0x0204) 166 DEFINE_GUIDSTRUCT("DFF21BE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE); 167 #define KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE) 168 169 #define STATIC_KSNODETYPE_MICROPHONE_ARRAY \ 170 DEFINE_USB_TERMINAL_GUID(0x0205) 171 DEFINE_GUIDSTRUCT("DFF21BE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MICROPHONE_ARRAY); 172 #define KSNODETYPE_MICROPHONE_ARRAY DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE_ARRAY) 173 174 #define STATIC_KSNODETYPE_PROCESSING_MICROPHONE_ARRAY \ 175 DEFINE_USB_TERMINAL_GUID(0x0206) 176 DEFINE_GUIDSTRUCT("DFF21BE6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PROCESSING_MICROPHONE_ARRAY); 177 #define KSNODETYPE_PROCESSING_MICROPHONE_ARRAY DEFINE_GUIDNAMED(KSNODETYPE_PROCESSING_MICROPHONE_ARRAY) 178 179 #define STATIC_KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR \ 180 0x830a44f2,0xa32d,0x476b,0xbe,0x97,0x42,0x84,0x56,0x73,0xb3,0x5a 181 DEFINE_GUIDSTRUCT("830a44f2-a32d-476b-be97-42845673b35a",KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR); 182 #define KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR DEFINE_GUIDNAMED(KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR) 183 184 #define STATIC_KSNODETYPE_SPEAKER \ 185 DEFINE_USB_TERMINAL_GUID(0x0301) 186 DEFINE_GUIDSTRUCT("DFF21CE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SPEAKER); 187 #define KSNODETYPE_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_SPEAKER) 188 189 #define STATIC_KSNODETYPE_HEADPHONES \ 190 DEFINE_USB_TERMINAL_GUID(0x0302) 191 DEFINE_GUIDSTRUCT("DFF21CE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HEADPHONES); 192 #define KSNODETYPE_HEADPHONES DEFINE_GUIDNAMED(KSNODETYPE_HEADPHONES) 193 194 #define STATIC_KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO \ 195 DEFINE_USB_TERMINAL_GUID(0x0303) 196 DEFINE_GUIDSTRUCT("DFF21CE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO); 197 #define KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO) 198 199 #define STATIC_KSNODETYPE_DESKTOP_SPEAKER \ 200 DEFINE_USB_TERMINAL_GUID(0x0304) 201 DEFINE_GUIDSTRUCT("DFF21CE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DESKTOP_SPEAKER); 202 #define KSNODETYPE_DESKTOP_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_DESKTOP_SPEAKER) 203 204 #define STATIC_KSNODETYPE_ROOM_SPEAKER \ 205 DEFINE_USB_TERMINAL_GUID(0x0305) 206 DEFINE_GUIDSTRUCT("DFF21CE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ROOM_SPEAKER); 207 #define KSNODETYPE_ROOM_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_ROOM_SPEAKER) 208 209 #define STATIC_KSNODETYPE_COMMUNICATION_SPEAKER \ 210 DEFINE_USB_TERMINAL_GUID(0x0306) 211 DEFINE_GUIDSTRUCT("DFF21CE6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_COMMUNICATION_SPEAKER); 212 #define KSNODETYPE_COMMUNICATION_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_COMMUNICATION_SPEAKER) 213 214 #define STATIC_KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER \ 215 DEFINE_USB_TERMINAL_GUID(0x0307) 216 DEFINE_GUIDSTRUCT("DFF21CE7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER); 217 #define KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER) 218 219 #define STATIC_KSNODETYPE_HANDSET \ 220 DEFINE_USB_TERMINAL_GUID(0x0401) 221 DEFINE_GUIDSTRUCT("DFF21DE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HANDSET); 222 #define KSNODETYPE_HANDSET DEFINE_GUIDNAMED(KSNODETYPE_HANDSET) 223 224 #define STATIC_KSNODETYPE_HEADSET \ 225 DEFINE_USB_TERMINAL_GUID(0x0402) 226 DEFINE_GUIDSTRUCT("DFF21DE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HEADSET); 227 #define KSNODETYPE_HEADSET DEFINE_GUIDNAMED(KSNODETYPE_HEADSET) 228 229 #define STATIC_KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION \ 230 DEFINE_USB_TERMINAL_GUID(0x0403) 231 DEFINE_GUIDSTRUCT("DFF21DE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION); 232 #define KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION DEFINE_GUIDNAMED(KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION) 233 234 #define STATIC_KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE \ 235 DEFINE_USB_TERMINAL_GUID(0x0404) 236 DEFINE_GUIDSTRUCT("DFF21DE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE); 237 #define KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE DEFINE_GUIDNAMED(KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE) 238 239 #define STATIC_KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE \ 240 DEFINE_USB_TERMINAL_GUID(0x0405) 241 DEFINE_GUIDSTRUCT("DFF21DE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE); 242 #define KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE DEFINE_GUIDNAMED(KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE) 243 244 #define STATIC_KSNODETYPE_PHONE_LINE \ 245 DEFINE_USB_TERMINAL_GUID(0x0501) 246 DEFINE_GUIDSTRUCT("DFF21EE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PHONE_LINE); 247 #define KSNODETYPE_PHONE_LINE DEFINE_GUIDNAMED(KSNODETYPE_PHONE_LINE) 248 249 #define STATIC_KSNODETYPE_TELEPHONE \ 250 DEFINE_USB_TERMINAL_GUID(0x0502) 251 DEFINE_GUIDSTRUCT("DFF21EE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_TELEPHONE); 252 #define KSNODETYPE_TELEPHONE DEFINE_GUIDNAMED(KSNODETYPE_TELEPHONE) 253 254 #define STATIC_KSNODETYPE_DOWN_LINE_PHONE \ 255 DEFINE_USB_TERMINAL_GUID(0x0503) 256 DEFINE_GUIDSTRUCT("DFF21EE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DOWN_LINE_PHONE); 257 #define KSNODETYPE_DOWN_LINE_PHONE DEFINE_GUIDNAMED(KSNODETYPE_DOWN_LINE_PHONE) 258 259 #define STATIC_KSNODETYPE_ANALOG_CONNECTOR \ 260 DEFINE_USB_TERMINAL_GUID(0x601) 261 DEFINE_GUIDSTRUCT("DFF21FE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ANALOG_CONNECTOR); 262 #define KSNODETYPE_ANALOG_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_CONNECTOR) 263 264 #define STATIC_KSNODETYPE_DIGITAL_AUDIO_INTERFACE \ 265 DEFINE_USB_TERMINAL_GUID(0x0602) 266 DEFINE_GUIDSTRUCT("DFF21FE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DIGITAL_AUDIO_INTERFACE); 267 #define KSNODETYPE_DIGITAL_AUDIO_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_DIGITAL_AUDIO_INTERFACE) 268 269 #define STATIC_KSNODETYPE_LINE_CONNECTOR \ 270 DEFINE_USB_TERMINAL_GUID(0x0603) 271 DEFINE_GUIDSTRUCT("DFF21FE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LINE_CONNECTOR); 272 #define KSNODETYPE_LINE_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LINE_CONNECTOR) 273 274 #define STATIC_KSNODETYPE_LEGACY_AUDIO_CONNECTOR \ 275 DEFINE_USB_TERMINAL_GUID(0x0604) 276 DEFINE_GUIDSTRUCT("DFF21FE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LEGACY_AUDIO_CONNECTOR); 277 #define KSNODETYPE_LEGACY_AUDIO_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LEGACY_AUDIO_CONNECTOR) 278 279 #define STATIC_KSNODETYPE_SPDIF_INTERFACE \ 280 DEFINE_USB_TERMINAL_GUID(0x0605) 281 DEFINE_GUIDSTRUCT("DFF21FE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SPDIF_INTERFACE); 282 #define KSNODETYPE_SPDIF_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_SPDIF_INTERFACE) 283 284 #define STATIC_KSNODETYPE_1394_DA_STREAM \ 285 DEFINE_USB_TERMINAL_GUID(0x0606) 286 DEFINE_GUIDSTRUCT("DFF21FE6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_1394_DA_STREAM); 287 #define KSNODETYPE_1394_DA_STREAM DEFINE_GUIDNAMED(KSNODETYPE_1394_DA_STREAM) 288 289 #define STATIC_KSNODETYPE_1394_DV_STREAM_SOUNDTRACK \ 290 DEFINE_USB_TERMINAL_GUID(0x0607) 291 DEFINE_GUIDSTRUCT("DFF21FE7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_1394_DV_STREAM_SOUNDTRACK); 292 #define KSNODETYPE_1394_DV_STREAM_SOUNDTRACK DEFINE_GUIDNAMED(KSNODETYPE_1394_DV_STREAM_SOUNDTRACK) 293 294 #define STATIC_KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE \ 295 DEFINE_USB_TERMINAL_GUID(0x0701) 296 DEFINE_GUIDSTRUCT("DFF220E1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE); 297 #define KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE DEFINE_GUIDNAMED(KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE) 298 299 #define STATIC_KSNODETYPE_EQUALIZATION_NOISE \ 300 DEFINE_USB_TERMINAL_GUID(0x0702) 301 DEFINE_GUIDSTRUCT("DFF220E2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_EQUALIZATION_NOISE); 302 #define KSNODETYPE_EQUALIZATION_NOISE DEFINE_GUIDNAMED(KSNODETYPE_EQUALIZATION_NOISE) 303 304 #define STATIC_KSNODETYPE_CD_PLAYER \ 305 DEFINE_USB_TERMINAL_GUID(0x0703) 306 DEFINE_GUIDSTRUCT("DFF220E3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_CD_PLAYER); 307 #define KSNODETYPE_CD_PLAYER DEFINE_GUIDNAMED(KSNODETYPE_CD_PLAYER) 308 309 #define STATIC_KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE \ 310 DEFINE_USB_TERMINAL_GUID(0x0704) 311 DEFINE_GUIDSTRUCT("DFF220E4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE); 312 #define KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE DEFINE_GUIDNAMED(KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE) 313 314 #define STATIC_KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE \ 315 DEFINE_USB_TERMINAL_GUID(0x0705) 316 DEFINE_GUIDSTRUCT("DFF220E5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE); 317 #define KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE DEFINE_GUIDNAMED(KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE) 318 319 #define STATIC_KSNODETYPE_MINIDISK \ 320 DEFINE_USB_TERMINAL_GUID(0x0706) 321 DEFINE_GUIDSTRUCT("DFF220E6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MINIDISK); 322 #define KSNODETYPE_MINIDISK DEFINE_GUIDNAMED(KSNODETYPE_MINIDISK) 323 324 #define STATIC_KSNODETYPE_ANALOG_TAPE \ 325 DEFINE_USB_TERMINAL_GUID(0x0707) 326 DEFINE_GUIDSTRUCT("DFF220E7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ANALOG_TAPE); 327 #define KSNODETYPE_ANALOG_TAPE DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_TAPE) 328 329 #define STATIC_KSNODETYPE_PHONOGRAPH \ 330 DEFINE_USB_TERMINAL_GUID(0x0708) 331 DEFINE_GUIDSTRUCT("DFF220E8-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PHONOGRAPH); 332 #define KSNODETYPE_PHONOGRAPH DEFINE_GUIDNAMED(KSNODETYPE_PHONOGRAPH) 333 334 #define STATIC_KSNODETYPE_VCR_AUDIO \ 335 DEFINE_USB_TERMINAL_GUID(0x0708) 336 DEFINE_GUIDSTRUCT("DFF220E9-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VCR_AUDIO); 337 #define KSNODETYPE_VCR_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_VCR_AUDIO) 338 339 #define STATIC_KSNODETYPE_VIDEO_DISC_AUDIO \ 340 DEFINE_USB_TERMINAL_GUID(0x070A) 341 DEFINE_GUIDSTRUCT("DFF220EA-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_DISC_AUDIO); 342 #define KSNODETYPE_VIDEO_DISC_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_DISC_AUDIO) 343 344 #define STATIC_KSNODETYPE_DVD_AUDIO \ 345 DEFINE_USB_TERMINAL_GUID(0x070B) 346 DEFINE_GUIDSTRUCT("DFF220EB-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DVD_AUDIO); 347 #define KSNODETYPE_DVD_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_DVD_AUDIO) 348 349 #define STATIC_KSNODETYPE_TV_TUNER_AUDIO \ 350 DEFINE_USB_TERMINAL_GUID(0x070C) 351 DEFINE_GUIDSTRUCT("DFF220EC-F70F-11D0-B917-00A0C9223196",KSNODETYPE_TV_TUNER_AUDIO); 352 #define KSNODETYPE_TV_TUNER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_TV_TUNER_AUDIO) 353 354 #define STATIC_KSNODETYPE_SATELLITE_RECEIVER_AUDIO \ 355 DEFINE_USB_TERMINAL_GUID(0x070D) 356 DEFINE_GUIDSTRUCT("DFF220ED-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SATELLITE_RECEIVER_AUDIO); 357 #define KSNODETYPE_SATELLITE_RECEIVER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_SATELLITE_RECEIVER_AUDIO) 358 359 #define STATIC_KSNODETYPE_CABLE_TUNER_AUDIO \ 360 DEFINE_USB_TERMINAL_GUID(0x070E) 361 DEFINE_GUIDSTRUCT("DFF220EE-F70F-11D0-B917-00A0C9223196",KSNODETYPE_CABLE_TUNER_AUDIO); 362 #define KSNODETYPE_CABLE_TUNER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_CABLE_TUNER_AUDIO) 363 364 #define STATIC_KSNODETYPE_DSS_AUDIO \ 365 DEFINE_USB_TERMINAL_GUID(0x070F) 366 DEFINE_GUIDSTRUCT("DFF220EF-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DSS_AUDIO); 367 #define KSNODETYPE_DSS_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_DSS_AUDIO) 368 369 #define STATIC_KSNODETYPE_RADIO_RECEIVER \ 370 DEFINE_USB_TERMINAL_GUID(0x0710) 371 DEFINE_GUIDSTRUCT("DFF220F0-F70F-11D0-B917-00A0C9223196",KSNODETYPE_RADIO_RECEIVER); 372 #define KSNODETYPE_RADIO_RECEIVER DEFINE_GUIDNAMED(KSNODETYPE_RADIO_RECEIVER) 373 374 #define STATIC_KSNODETYPE_RADIO_TRANSMITTER \ 375 DEFINE_USB_TERMINAL_GUID(0x0711) 376 DEFINE_GUIDSTRUCT("DFF220F1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_RADIO_TRANSMITTER); 377 #define KSNODETYPE_RADIO_TRANSMITTER DEFINE_GUIDNAMED(KSNODETYPE_RADIO_TRANSMITTER) 378 379 #define STATIC_KSNODETYPE_MULTITRACK_RECORDER \ 380 DEFINE_USB_TERMINAL_GUID(0x0712) 381 DEFINE_GUIDSTRUCT("DFF220F2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MULTITRACK_RECORDER); 382 #define KSNODETYPE_MULTITRACK_RECORDER DEFINE_GUIDNAMED(KSNODETYPE_MULTITRACK_RECORDER) 383 384 #define STATIC_KSNODETYPE_SYNTHESIZER \ 385 DEFINE_USB_TERMINAL_GUID(0x0713) 386 DEFINE_GUIDSTRUCT("DFF220F3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SYNTHESIZER); 387 #define KSNODETYPE_SYNTHESIZER DEFINE_GUIDNAMED(KSNODETYPE_SYNTHESIZER) 388 389 #define STATIC_KSNODETYPE_SWSYNTH \ 390 0x423274A0,0x8B81,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88 391 DEFINE_GUIDSTRUCT("423274A0-8B81-11D1-A050-0000F8004788",KSNODETYPE_SWSYNTH); 392 #define KSNODETYPE_SWSYNTH DEFINE_GUIDNAMED(KSNODETYPE_SWSYNTH) 393 394 #define STATIC_KSNODETYPE_SWMIDI \ 395 0xCB9BEFA0,0xA251,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88 396 DEFINE_GUIDSTRUCT("CB9BEFA0-A251-11D1-A050-0000F8004788",KSNODETYPE_SWMIDI); 397 #define KSNODETYPE_SWMIDI DEFINE_GUIDNAMED(KSNODETYPE_SWMIDI) 398 399 #define STATIC_KSNODETYPE_DRM_DESCRAMBLE \ 400 0xFFBB6E3F,0xCCFE,0x4D84,0x90,0xD9,0x42,0x14,0x18,0xB0,0x3A,0x8E 401 DEFINE_GUIDSTRUCT("FFBB6E3F-CCFE-4D84-90D9-421418B03A8E",KSNODETYPE_DRM_DESCRAMBLE); 402 #define KSNODETYPE_DRM_DESCRAMBLE DEFINE_GUIDNAMED(KSNODETYPE_DRM_DESCRAMBLE) 403 404 #define STATIC_KSCATEGORY_AUDIO \ 405 0x6994AD04,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96 406 DEFINE_GUIDSTRUCT("6994AD04-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_AUDIO); 407 #define KSCATEGORY_AUDIO DEFINE_GUIDNAMED(KSCATEGORY_AUDIO) 408 409 #define STATIC_KSCATEGORY_VIDEO \ 410 0x6994AD05,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96 411 DEFINE_GUIDSTRUCT("6994AD05-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_VIDEO); 412 #define KSCATEGORY_VIDEO DEFINE_GUIDNAMED(KSCATEGORY_VIDEO) 413 414 #define STATIC_KSCATEGORY_TEXT \ 415 0x6994AD06,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96 416 DEFINE_GUIDSTRUCT("6994AD06-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_TEXT); 417 #define KSCATEGORY_TEXT DEFINE_GUIDNAMED(KSCATEGORY_TEXT) 418 419 #define STATIC_KSCATEGORY_NETWORK \ 420 0x67C9CC3C,0x69C4,0x11D2,0x87,0x59,0x00,0xA0,0xC9,0x22,0x31,0x96 421 DEFINE_GUIDSTRUCT("67C9CC3C-69C4-11D2-8759-00A0C9223196",KSCATEGORY_NETWORK); 422 #define KSCATEGORY_NETWORK DEFINE_GUIDNAMED(KSCATEGORY_NETWORK) 423 424 #define STATIC_KSCATEGORY_TOPOLOGY \ 425 0xDDA54A40,0x1E4C,0x11D1,0xA0,0x50,0x40,0x57,0x05,0xC1,0x00,0x00 426 DEFINE_GUIDSTRUCT("DDA54A40-1E4C-11D1-A050-405705C10000",KSCATEGORY_TOPOLOGY); 427 #define KSCATEGORY_TOPOLOGY DEFINE_GUIDNAMED(KSCATEGORY_TOPOLOGY) 428 429 #define STATIC_KSCATEGORY_VIRTUAL \ 430 0x3503EAC4,0x1F26,0x11D1,0x8A,0xB0,0x00,0xA0,0xC9,0x22,0x31,0x96 431 DEFINE_GUIDSTRUCT("3503EAC4-1F26-11D1-8AB0-00A0C9223196",KSCATEGORY_VIRTUAL); 432 #define KSCATEGORY_VIRTUAL DEFINE_GUIDNAMED(KSCATEGORY_VIRTUAL) 433 434 #define STATIC_KSCATEGORY_ACOUSTIC_ECHO_CANCEL \ 435 0xBF963D80,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 436 DEFINE_GUIDSTRUCT("BF963D80-C559-11D0-8A2B-00A0C9255AC1",KSCATEGORY_ACOUSTIC_ECHO_CANCEL); 437 #define KSCATEGORY_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSCATEGORY_ACOUSTIC_ECHO_CANCEL) 438 439 #define STATIC_KSCATEGORY_SYSAUDIO \ 440 0xA7C7A5B1,0x5AF3,0x11D1,0x9C,0xED,0x00,0xA0,0x24,0xBF,0x04,0x07 441 DEFINE_GUIDSTRUCT("A7C7A5B1-5AF3-11D1-9CED-00A024BF0407",KSCATEGORY_SYSAUDIO); 442 #define KSCATEGORY_SYSAUDIO DEFINE_GUIDNAMED(KSCATEGORY_SYSAUDIO) 443 444 #define STATIC_KSCATEGORY_WDMAUD \ 445 0x3E227E76,0x690D,0x11D2,0x81,0x61,0x00,0x00,0xF8,0x77,0x5B,0xF1 446 DEFINE_GUIDSTRUCT("3E227E76-690D-11D2-8161-0000F8775BF1",KSCATEGORY_WDMAUD); 447 #define KSCATEGORY_WDMAUD DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD) 448 449 #define STATIC_KSCATEGORY_AUDIO_GFX \ 450 0x9BAF9572,0x340C,0x11D3,0xAB,0xDC,0x00,0xA0,0xC9,0x0A,0xB1,0x6F 451 DEFINE_GUIDSTRUCT("9BAF9572-340C-11D3-ABDC-00A0C90AB16F",KSCATEGORY_AUDIO_GFX); 452 #define KSCATEGORY_AUDIO_GFX DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_GFX) 453 454 #define STATIC_KSCATEGORY_AUDIO_SPLITTER \ 455 0x9EA331FA,0xB91B,0x45F8,0x92,0x85,0xBD,0x2B,0xC7,0x7A,0xFC,0xDE 456 DEFINE_GUIDSTRUCT("9EA331FA-B91B-45F8-9285-BD2BC77AFCDE",KSCATEGORY_AUDIO_SPLITTER); 457 #define KSCATEGORY_AUDIO_SPLITTER DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_SPLITTER) 458 459 #define STATIC_KSCATEGORY_SYNTHESIZER STATIC_KSNODETYPE_SYNTHESIZER 460 #define KSCATEGORY_SYNTHESIZER KSNODETYPE_SYNTHESIZER 461 462 #define STATIC_KSCATEGORY_DRM_DESCRAMBLE STATIC_KSNODETYPE_DRM_DESCRAMBLE 463 #define KSCATEGORY_DRM_DESCRAMBLE KSNODETYPE_DRM_DESCRAMBLE 464 465 #define STATIC_KSCATEGORY_AUDIO_DEVICE \ 466 0xFBF6F530,0x07B9,0x11D2,0xA7,0x1E,0x00,0x00,0xF8,0x00,0x47,0x88 467 DEFINE_GUIDSTRUCT("FBF6F530-07B9-11D2-A71E-0000F8004788",KSCATEGORY_AUDIO_DEVICE); 468 #define KSCATEGORY_AUDIO_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_DEVICE) 469 470 #define STATIC_KSCATEGORY_PREFERRED_WAVEOUT_DEVICE \ 471 0xD6C5066E,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88 472 DEFINE_GUIDSTRUCT("D6C5066E-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_WAVEOUT_DEVICE); 473 #define KSCATEGORY_PREFERRED_WAVEOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEOUT_DEVICE) 474 475 #define STATIC_KSCATEGORY_PREFERRED_WAVEIN_DEVICE \ 476 0xD6C50671,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88 477 DEFINE_GUIDSTRUCT("D6C50671-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_WAVEIN_DEVICE); 478 #define KSCATEGORY_PREFERRED_WAVEIN_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEIN_DEVICE) 479 480 #define STATIC_KSCATEGORY_PREFERRED_MIDIOUT_DEVICE \ 481 0xD6C50674,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88 482 DEFINE_GUIDSTRUCT("D6C50674-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_MIDIOUT_DEVICE); 483 #define KSCATEGORY_PREFERRED_MIDIOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_MIDIOUT_DEVICE) 484 485 #define STATIC_KSCATEGORY_WDMAUD_USE_PIN_NAME \ 486 0x47A4FA20,0xA251,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88 487 DEFINE_GUIDSTRUCT("47A4FA20-A251-11D1-A050-0000F8004788",KSCATEGORY_WDMAUD_USE_PIN_NAME); 488 #define KSCATEGORY_WDMAUD_USE_PIN_NAME DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD_USE_PIN_NAME) 489 490 #define STATIC_KSCATEGORY_ESCALANTE_PLATFORM_DRIVER \ 491 0x74f3aea8,0x9768,0x11d1,0x8e,0x07,0x00,0xa0,0xc9,0x5e,0xc2,0x2e 492 DEFINE_GUIDSTRUCT("74f3aea8-9768-11d1-8e07-00a0c95ec22e",KSCATEGORY_ESCALANTE_PLATFORM_DRIVER); 493 #define KSCATEGORY_ESCALANTE_PLATFORM_DRIVER DEFINE_GUIDNAMED(KSCATEGORY_ESCALANTE_PLATFORM_DRIVER) 494 495 #define STATIC_KSDATAFORMAT_TYPE_VIDEO \ 496 0x73646976,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71 497 DEFINE_GUIDSTRUCT("73646976-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_VIDEO); 498 #define KSDATAFORMAT_TYPE_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_VIDEO) 499 500 #define STATIC_KSDATAFORMAT_TYPE_AUDIO \ 501 0x73647561,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71 502 DEFINE_GUIDSTRUCT("73647561-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_AUDIO); 503 #define KSDATAFORMAT_TYPE_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUDIO) 504 505 #define STATIC_KSDATAFORMAT_TYPE_TEXT \ 506 0x73747874,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71 507 DEFINE_GUIDSTRUCT("73747874-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_TEXT); 508 #define KSDATAFORMAT_TYPE_TEXT DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_TEXT) 509 510 #if !defined(DEFINE_WAVEFORMATEX_GUID) 511 #define DEFINE_WAVEFORMATEX_GUID(x) \ 512 (USHORT)(x),0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71 513 #endif 514 515 #define STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX \ 516 0x00000000,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71 517 DEFINE_GUIDSTRUCT("00000000-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_WAVEFORMATEX); 518 #define KSDATAFORMAT_SUBTYPE_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_WAVEFORMATEX) 519 520 #define INIT_WAVEFORMATEX_GUID(Guid,x) \ 521 { \ 522 *(Guid) = KSDATAFORMAT_SUBTYPE_WAVEFORMATEX; \ 523 (Guid)->Data1 = (USHORT)(x); \ 524 } 525 526 #define EXTRACT_WAVEFORMATEX_ID(Guid) \ 527 (USHORT)((Guid)->Data1) 528 529 #define IS_VALID_WAVEFORMATEX_GUID(Guid) \ 530 (!memcmp(((PUSHORT)&KSDATAFORMAT_SUBTYPE_WAVEFORMATEX) + 1, ((PUSHORT)(Guid)) + 1,sizeof(GUID) - sizeof(USHORT))) 531 532 #ifndef INIT_MMREG_MID 533 #define INIT_MMREG_MID(guid,id) \ 534 { \ 535 (guid)->Data1 = 0xd5a47fa7 + (USHORT)(id); \ 536 (guid)->Data2 = 0x6d98; \ 537 (guid)->Data3 = 0x11d1; \ 538 (guid)->Data4[0] = 0xa2; \ 539 (guid)->Data4[1] = 0x1a; \ 540 (guid)->Data4[2] = 0x00; \ 541 (guid)->Data4[3] = 0xa0; \ 542 (guid)->Data4[4] = 0xc9; \ 543 (guid)->Data4[5] = 0x22; \ 544 (guid)->Data4[6] = 0x31; \ 545 (guid)->Data4[7] = 0x96; \ 546 } 547 #define EXTRACT_MMREG_MID(guid) \ 548 (USHORT)((guid)->Data1 - 0xd5a47fa7) 549 #define DEFINE_MMREG_MID_GUID(id) \ 550 0xd5a47fa7+(USHORT)(id),0x6d98,0x11d1,0xa2,0x1a,0x00,0xa0,0xc9,0x22,0x31,0x96 551 552 #define IS_COMPATIBLE_MMREG_MID(guid) \ 553 (((guid)->Data1 >= 0xd5a47fa7) && \ 554 ((guid)->Data1 < 0xd5a47fa7 + 0xffff) && \ 555 ((guid)->Data2 == 0x6d98) && \ 556 ((guid)->Data3 == 0x11d1) && \ 557 ((guid)->Data4[0] == 0xa2) && \ 558 ((guid)->Data4[1] == 0x1a) && \ 559 ((guid)->Data4[2] == 0x00) && \ 560 ((guid)->Data4[3] == 0xa0) && \ 561 ((guid)->Data4[4] == 0xc9) && \ 562 ((guid)->Data4[5] == 0x22) && \ 563 ((guid)->Data4[6] == 0x31) && \ 564 ((guid)->Data4[7] == 0x96) ) 565 #endif /* INIT_MMREG_MID */ 566 567 #ifndef INIT_MMREG_PID 568 #define INIT_MMREG_PID(guid,id) \ 569 { \ 570 (guid)->Data1 = 0xe36dc2ac + (USHORT)(id); \ 571 (guid)->Data2 = 0x6d9a; \ 572 (guid)->Data3 = 0x11d1; \ 573 (guid)->Data4[0] = 0xa2; \ 574 (guid)->Data4[1] = 0x1a; \ 575 (guid)->Data4[2] = 0x00; \ 576 (guid)->Data4[3] = 0xa0; \ 577 (guid)->Data4[4] = 0xc9; \ 578 (guid)->Data4[5] = 0x22; \ 579 (guid)->Data4[6] = 0x31; \ 580 (guid)->Data4[7] = 0x96; \ 581 } 582 #define EXTRACT_MMREG_PID(guid) \ 583 (USHORT)((guid)->Data1 - 0xe36dc2ac) 584 #define DEFINE_MMREG_PID_GUID(id) \ 585 0xe36dc2ac+(USHORT)(id),0x6d9a,0x11d1,0xa2,0x1a,0x00,0xa0,0xc9,0x22,0x31,0x96 586 587 #define IS_COMPATIBLE_MMREG_PID(guid) \ 588 (((guid)->Data1 >= 0xe36dc2ac) && \ 589 ((guid)->Data1 < 0xe36dc2ac + 0xffff) && \ 590 ((guid)->Data2 == 0x6d9a) && \ 591 ((guid)->Data3 == 0x11d1) && \ 592 ((guid)->Data4[0] == 0xa2) && \ 593 ((guid)->Data4[1] == 0x1a) && \ 594 ((guid)->Data4[2] == 0x00) && \ 595 ((guid)->Data4[3] == 0xa0) && \ 596 ((guid)->Data4[4] == 0xc9) && \ 597 ((guid)->Data4[5] == 0x22) && \ 598 ((guid)->Data4[6] == 0x31) && \ 599 ((guid)->Data4[7] == 0x96) ) 600 #endif /* INIT_MMREG_PID */ 601 602 #define STATIC_KSDATAFORMAT_SUBTYPE_ANALOG \ 603 0x6dba3190,0x67bd,0x11cf,0xa0,0xf7,0x00,0x20,0xaf,0xd1,0x56,0xe4 604 DEFINE_GUIDSTRUCT("6dba3190-67bd-11cf-a0f7-0020afd156e4",KSDATAFORMAT_SUBTYPE_ANALOG); 605 #define KSDATAFORMAT_SUBTYPE_ANALOG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ANALOG) 606 607 #define STATIC_KSDATAFORMAT_SUBTYPE_PCM \ 608 DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_PCM) 609 DEFINE_GUIDSTRUCT("00000001-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_PCM); 610 #define KSDATAFORMAT_SUBTYPE_PCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_PCM) 611 612 #ifdef _INC_MMREG 613 #define STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT \ 614 DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_IEEE_FLOAT) 615 DEFINE_GUIDSTRUCT("00000003-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_IEEE_FLOAT); 616 #define KSDATAFORMAT_SUBTYPE_IEEE_FLOAT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_IEEE_FLOAT) 617 618 #define STATIC_KSDATAFORMAT_SUBTYPE_DRM \ 619 DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_DRM) 620 DEFINE_GUIDSTRUCT("00000009-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_DRM); 621 #define KSDATAFORMAT_SUBTYPE_DRM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DRM) 622 623 #define STATIC_KSDATAFORMAT_SUBTYPE_ALAW \ 624 DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_ALAW) 625 DEFINE_GUIDSTRUCT("00000006-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_ALAW); 626 #define KSDATAFORMAT_SUBTYPE_ALAW DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ALAW) 627 628 #define STATIC_KSDATAFORMAT_SUBTYPE_MULAW \ 629 DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_MULAW) 630 DEFINE_GUIDSTRUCT("00000007-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_MULAW); 631 #define KSDATAFORMAT_SUBTYPE_MULAW DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MULAW) 632 633 #define STATIC_KSDATAFORMAT_SUBTYPE_ADPCM \ 634 DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_ADPCM) 635 DEFINE_GUIDSTRUCT("00000002-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_ADPCM); 636 #define KSDATAFORMAT_SUBTYPE_ADPCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ADPCM) 637 638 #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG \ 639 DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_MPEG) 640 DEFINE_GUIDSTRUCT("00000050-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_MPEG); 641 #define KSDATAFORMAT_SUBTYPE_MPEG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG) 642 #endif /* _INC_MMREG */ 643 644 #define STATIC_KSDATAFORMAT_SPECIFIER_VC_ID \ 645 0xAD98D184,0xAAC3,0x11D0,0xA4,0x1C,0x00,0xA0,0xC9,0x22,0x31,0x96 646 DEFINE_GUIDSTRUCT("AD98D184-AAC3-11D0-A41C-00A0C9223196",KSDATAFORMAT_SPECIFIER_VC_ID); 647 #define KSDATAFORMAT_SPECIFIER_VC_ID DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VC_ID) 648 649 #define STATIC_KSDATAFORMAT_SPECIFIER_WAVEFORMATEX \ 650 0x05589f81,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a 651 DEFINE_GUIDSTRUCT("05589f81-c356-11ce-bf01-00aa0055595a",KSDATAFORMAT_SPECIFIER_WAVEFORMATEX); 652 #define KSDATAFORMAT_SPECIFIER_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX) 653 654 #define STATIC_KSDATAFORMAT_SPECIFIER_DSOUND \ 655 0x518590a2,0xa184,0x11d0,0x85,0x22,0x00,0xc0,0x4f,0xd9,0xba,0xf3 656 DEFINE_GUIDSTRUCT("518590a2-a184-11d0-8522-00c04fd9baf3",KSDATAFORMAT_SPECIFIER_DSOUND); 657 #define KSDATAFORMAT_SPECIFIER_DSOUND DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DSOUND) 658 659 #if defined(_INC_MMSYSTEM) || defined(_INC_MMREG) 660 #if !defined(PACK_PRAGMAS_NOT_SUPPORTED) 661 #include <pshpack1.h> 662 #endif 663 typedef struct { 664 KSDATAFORMAT DataFormat; 665 WAVEFORMATEX WaveFormatEx; 666 } KSDATAFORMAT_WAVEFORMATEX,*PKSDATAFORMAT_WAVEFORMATEX; 667 668 #ifndef _WAVEFORMATEXTENSIBLE_ 669 #define _WAVEFORMATEXTENSIBLE_ 670 typedef struct { 671 WAVEFORMATEX Format; 672 union { 673 WORD wValidBitsPerSample; 674 WORD wSamplesPerBlock; 675 WORD wReserved; 676 } Samples; 677 DWORD dwChannelMask; 678 679 GUID SubFormat; 680 } WAVEFORMATEXTENSIBLE,*PWAVEFORMATEXTENSIBLE; 681 #endif /* _WAVEFORMATEXTENSIBLE_ */ 682 683 #if !defined(WAVE_FORMAT_EXTENSIBLE) 684 #define WAVE_FORMAT_EXTENSIBLE 0xFFFE 685 #endif 686 687 typedef struct { 688 ULONG Flags; 689 ULONG Control; 690 WAVEFORMATEX WaveFormatEx; 691 } KSDSOUND_BUFFERDESC,*PKSDSOUND_BUFFERDESC; 692 693 typedef struct { 694 KSDATAFORMAT DataFormat; 695 KSDSOUND_BUFFERDESC BufferDesc; 696 } KSDATAFORMAT_DSOUND,*PKSDATAFORMAT_DSOUND; 697 698 #if !defined(PACK_PRAGMAS_NOT_SUPPORTED) 699 #include <poppack.h> 700 #endif 701 #endif /* defined(_INC_MMSYSTEM) || defined(_INC_MMREG) */ 702 703 #define KSDSOUND_BUFFER_PRIMARY 0x00000001 704 #define KSDSOUND_BUFFER_STATIC 0x00000002 705 #define KSDSOUND_BUFFER_LOCHARDWARE 0x00000004 706 #define KSDSOUND_BUFFER_LOCSOFTWARE 0x00000008 707 708 #define KSDSOUND_BUFFER_CTRL_3D 0x00000001 709 #define KSDSOUND_BUFFER_CTRL_FREQUENCY 0x00000002 710 #define KSDSOUND_BUFFER_CTRL_PAN 0x00000004 711 #define KSDSOUND_BUFFER_CTRL_VOLUME 0x00000008 712 #define KSDSOUND_BUFFER_CTRL_POSITIONNOTIFY 0x00000010 713 714 typedef struct { 715 DWORDLONG PlayOffset; 716 DWORDLONG WriteOffset; 717 } KSAUDIO_POSITION,*PKSAUDIO_POSITION; 718 719 typedef struct _DS3DVECTOR { 720 __C89_NAMELESS union { 721 FLOAT x; 722 FLOAT dvX; 723 }; 724 __C89_NAMELESS union { 725 FLOAT y; 726 FLOAT dvY; 727 }; 728 __C89_NAMELESS union { 729 FLOAT z; 730 FLOAT dvZ; 731 }; 732 } DS3DVECTOR,*PDS3DVECTOR; 733 734 #define STATIC_KSPROPSETID_DirectSound3DListener \ 735 0x437b3414,0xd060,0x11d0,0x85,0x83,0x00,0xc0,0x4f,0xd9,0xba,0xf3 736 DEFINE_GUIDSTRUCT("437b3414-d060-11d0-8583-00c04fd9baf3",KSPROPSETID_DirectSound3DListener); 737 #define KSPROPSETID_DirectSound3DListener DEFINE_GUIDNAMED(KSPROPSETID_DirectSound3DListener) 738 739 typedef enum { 740 KSPROPERTY_DIRECTSOUND3DLISTENER_ALL, 741 KSPROPERTY_DIRECTSOUND3DLISTENER_POSITION, 742 KSPROPERTY_DIRECTSOUND3DLISTENER_VELOCITY, 743 KSPROPERTY_DIRECTSOUND3DLISTENER_ORIENTATION, 744 KSPROPERTY_DIRECTSOUND3DLISTENER_DISTANCEFACTOR, 745 KSPROPERTY_DIRECTSOUND3DLISTENER_ROLLOFFFACTOR, 746 KSPROPERTY_DIRECTSOUND3DLISTENER_DOPPLERFACTOR, 747 KSPROPERTY_DIRECTSOUND3DLISTENER_BATCH, 748 KSPROPERTY_DIRECTSOUND3DLISTENER_ALLOCATION 749 } KSPROPERTY_DIRECTSOUND3DLISTENER; 750 751 typedef struct { 752 DS3DVECTOR Position; 753 DS3DVECTOR Velocity; 754 DS3DVECTOR OrientFront; 755 DS3DVECTOR OrientTop; 756 FLOAT DistanceFactor; 757 FLOAT RolloffFactor; 758 FLOAT DopplerFactor; 759 } KSDS3D_LISTENER_ALL,*PKSDS3D_LISTENER_ALL; 760 761 typedef struct { 762 DS3DVECTOR Front; 763 DS3DVECTOR Top; 764 } KSDS3D_LISTENER_ORIENTATION,*PKSDS3D_LISTENER_ORIENTATION; 765 766 #define STATIC_KSPROPSETID_DirectSound3DBuffer \ 767 0x437b3411,0xd060,0x11d0,0x85,0x83,0x00,0xc0,0x4f,0xd9,0xba,0xf3 768 DEFINE_GUIDSTRUCT("437b3411-d060-11d0-8583-00c04fd9baf3",KSPROPSETID_DirectSound3DBuffer); 769 #define KSPROPSETID_DirectSound3DBuffer DEFINE_GUIDNAMED(KSPROPSETID_DirectSound3DBuffer) 770 771 typedef enum { 772 KSPROPERTY_DIRECTSOUND3DBUFFER_ALL, 773 KSPROPERTY_DIRECTSOUND3DBUFFER_POSITION, 774 KSPROPERTY_DIRECTSOUND3DBUFFER_VELOCITY, 775 KSPROPERTY_DIRECTSOUND3DBUFFER_CONEANGLES, 776 KSPROPERTY_DIRECTSOUND3DBUFFER_CONEORIENTATION, 777 KSPROPERTY_DIRECTSOUND3DBUFFER_CONEOUTSIDEVOLUME, 778 KSPROPERTY_DIRECTSOUND3DBUFFER_MINDISTANCE, 779 KSPROPERTY_DIRECTSOUND3DBUFFER_MAXDISTANCE, 780 KSPROPERTY_DIRECTSOUND3DBUFFER_MODE 781 } KSPROPERTY_DIRECTSOUND3DBUFFER; 782 783 typedef struct { 784 DS3DVECTOR Position; 785 DS3DVECTOR Velocity; 786 ULONG InsideConeAngle; 787 ULONG OutsideConeAngle; 788 DS3DVECTOR ConeOrientation; 789 LONG ConeOutsideVolume; 790 FLOAT MinDistance; 791 FLOAT MaxDistance; 792 ULONG Mode; 793 } KSDS3D_BUFFER_ALL,*PKSDS3D_BUFFER_ALL; 794 795 typedef struct { 796 ULONG InsideConeAngle; 797 ULONG OutsideConeAngle; 798 } KSDS3D_BUFFER_CONE_ANGLES,*PKSDS3D_BUFFER_CONE_ANGLES; 799 800 #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_HEADPHONE (-1) 801 #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_MIN 5 802 #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_NARROW 10 803 #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_WIDE 20 804 #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_MAX 180 805 806 #define KSDSOUND_3D_MODE_NORMAL 0x00000000 807 #define KSDSOUND_3D_MODE_HEADRELATIVE 0x00000001 808 #define KSDSOUND_3D_MODE_DISABLE 0x00000002 809 810 #define KSDSOUND_BUFFER_CTRL_HRTF_3D 0x40000000 811 812 typedef struct { 813 ULONG Size; 814 ULONG Enabled; 815 WINBOOL SwapChannels; 816 WINBOOL ZeroAzimuth; 817 WINBOOL CrossFadeOutput; 818 ULONG FilterSize; 819 } KSDS3D_HRTF_PARAMS_MSG,*PKSDS3D_HRTF_PARAMS_MSG; 820 821 typedef enum { 822 FULL_FILTER, 823 LIGHT_FILTER, 824 KSDS3D_FILTER_QUALITY_COUNT 825 } KSDS3D_HRTF_FILTER_QUALITY; 826 827 typedef struct { 828 ULONG Size; 829 KSDS3D_HRTF_FILTER_QUALITY Quality; 830 FLOAT SampleRate; 831 ULONG MaxFilterSize; 832 ULONG FilterTransientMuteLength; 833 ULONG FilterOverlapBufferLength; 834 ULONG OutputOverlapBufferLength; 835 ULONG Reserved; 836 } KSDS3D_HRTF_INIT_MSG,*PKSDS3D_HRTF_INIT_MSG; 837 838 typedef enum { 839 FLOAT_COEFF, 840 SHORT_COEFF, 841 KSDS3D_COEFF_COUNT 842 } KSDS3D_HRTF_COEFF_FORMAT; 843 844 typedef enum { 845 DIRECT_FORM, 846 CASCADE_FORM, 847 KSDS3D_FILTER_METHOD_COUNT 848 } KSDS3D_HRTF_FILTER_METHOD; 849 850 typedef enum { 851 DS3D_HRTF_VERSION_1 852 } KSDS3D_HRTF_FILTER_VERSION; 853 854 typedef struct { 855 KSDS3D_HRTF_FILTER_METHOD FilterMethod; 856 KSDS3D_HRTF_COEFF_FORMAT CoeffFormat; 857 KSDS3D_HRTF_FILTER_VERSION Version; 858 ULONG Reserved; 859 } KSDS3D_HRTF_FILTER_FORMAT_MSG,*PKSDS3D_HRTF_FILTER_FORMAT_MSG; 860 861 #define STATIC_KSPROPSETID_Hrtf3d \ 862 0xb66decb0,0xa083,0x11d0,0x85,0x1e,0x00,0xc0,0x4f,0xd9,0xba,0xf3 863 DEFINE_GUIDSTRUCT("b66decb0-a083-11d0-851e-00c04fd9baf3",KSPROPSETID_Hrtf3d); 864 #define KSPROPSETID_Hrtf3d DEFINE_GUIDNAMED(KSPROPSETID_Hrtf3d) 865 866 typedef enum { 867 KSPROPERTY_HRTF3D_PARAMS = 0, 868 KSPROPERTY_HRTF3D_INITIALIZE, 869 KSPROPERTY_HRTF3D_FILTER_FORMAT 870 } KSPROPERTY_HRTF3D; 871 872 typedef struct { 873 LONG Channel; 874 FLOAT VolSmoothScale; 875 FLOAT TotalDryAttenuation; 876 FLOAT TotalWetAttenuation; 877 LONG SmoothFrequency; 878 LONG Delay; 879 } KSDS3D_ITD_PARAMS,*PKSDS3D_ITD_PARAMS; 880 881 typedef struct { 882 ULONG Enabled; 883 KSDS3D_ITD_PARAMS LeftParams; 884 KSDS3D_ITD_PARAMS RightParams; 885 ULONG Reserved; 886 } KSDS3D_ITD_PARAMS_MSG,*PKSDS3D_ITD_PARAMS_MSG; 887 888 #define STATIC_KSPROPSETID_Itd3d \ 889 0x6429f090,0x9fd9,0x11d0,0xa7,0x5b,0x00,0xa0,0xc9,0x03,0x65,0xe3 890 DEFINE_GUIDSTRUCT("6429f090-9fd9-11d0-a75b-00a0c90365e3",KSPROPSETID_Itd3d); 891 #define KSPROPSETID_Itd3d DEFINE_GUIDNAMED(KSPROPSETID_Itd3d) 892 893 typedef enum { 894 KSPROPERTY_ITD3D_PARAMS = 0 895 } KSPROPERTY_ITD3D; 896 897 typedef struct { 898 KSDATARANGE DataRange; 899 ULONG MaximumChannels; 900 ULONG MinimumBitsPerSample; 901 ULONG MaximumBitsPerSample; 902 ULONG MinimumSampleFrequency; 903 ULONG MaximumSampleFrequency; 904 } KSDATARANGE_AUDIO,*PKSDATARANGE_AUDIO; 905 906 #define STATIC_KSDATAFORMAT_SUBTYPE_RIFF \ 907 0x4995DAEE,0x9EE6,0x11D0,0xA4,0x0E,0x00,0xA0,0xC9,0x22,0x31,0x96 908 DEFINE_GUIDSTRUCT("4995DAEE-9EE6-11D0-A40E-00A0C9223196",KSDATAFORMAT_SUBTYPE_RIFF); 909 #define KSDATAFORMAT_SUBTYPE_RIFF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFF) 910 911 #define STATIC_KSDATAFORMAT_SUBTYPE_RIFFWAVE \ 912 0xe436eb8b,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70 913 DEFINE_GUIDSTRUCT("e436eb8b-524f-11ce-9f53-0020af0ba770",KSDATAFORMAT_SUBTYPE_RIFFWAVE); 914 #define KSDATAFORMAT_SUBTYPE_RIFFWAVE DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFFWAVE) 915 916 #define STATIC_KSPROPSETID_Bibliographic \ 917 0x07BA150E,0xE2B1,0x11D0,0xAC,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96 918 DEFINE_GUIDSTRUCT("07BA150E-E2B1-11D0-AC17-00A0C9223196",KSPROPSETID_Bibliographic); 919 #define KSPROPSETID_Bibliographic DEFINE_GUIDNAMED(KSPROPSETID_Bibliographic) 920 921 typedef enum { 922 KSPROPERTY_BIBLIOGRAPHIC_LEADER = 'RDL ', 923 KSPROPERTY_BIBLIOGRAPHIC_LCCN = '010 ', 924 KSPROPERTY_BIBLIOGRAPHIC_ISBN = '020 ', 925 KSPROPERTY_BIBLIOGRAPHIC_ISSN = '220 ', 926 KSPROPERTY_BIBLIOGRAPHIC_CATALOGINGSOURCE = '040 ', 927 KSPROPERTY_BIBLIOGRAPHIC_MAINPERSONALNAME = '001 ', 928 KSPROPERTY_BIBLIOGRAPHIC_MAINCORPORATEBODY = '011 ', 929 KSPROPERTY_BIBLIOGRAPHIC_MAINMEETINGNAME = '111 ', 930 KSPROPERTY_BIBLIOGRAPHIC_MAINUNIFORMTITLE = '031 ', 931 KSPROPERTY_BIBLIOGRAPHIC_UNIFORMTITLE = '042 ', 932 KSPROPERTY_BIBLIOGRAPHIC_TITLESTATEMENT = '542 ', 933 KSPROPERTY_BIBLIOGRAPHIC_VARYINGFORMTITLE = '642 ', 934 KSPROPERTY_BIBLIOGRAPHIC_PUBLICATION = '062 ', 935 KSPROPERTY_BIBLIOGRAPHIC_PHYSICALDESCRIPTION = '003 ', 936 KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTITLE = '044 ', 937 KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENT = '094 ', 938 KSPROPERTY_BIBLIOGRAPHIC_GENERALNOTE = '005 ', 939 KSPROPERTY_BIBLIOGRAPHIC_BIBLIOGRAPHYNOTE = '405 ', 940 KSPROPERTY_BIBLIOGRAPHIC_CONTENTSNOTE = '505 ', 941 KSPROPERTY_BIBLIOGRAPHIC_CREATIONCREDIT = '805 ', 942 KSPROPERTY_BIBLIOGRAPHIC_CITATION = '015 ', 943 KSPROPERTY_BIBLIOGRAPHIC_PARTICIPANT = '115 ', 944 KSPROPERTY_BIBLIOGRAPHIC_SUMMARY = '025 ', 945 KSPROPERTY_BIBLIOGRAPHIC_TARGETAUDIENCE = '125 ', 946 KSPROPERTY_BIBLIOGRAPHIC_ADDEDFORMAVAILABLE = '035 ', 947 KSPROPERTY_BIBLIOGRAPHIC_SYSTEMDETAILS = '835 ', 948 KSPROPERTY_BIBLIOGRAPHIC_AWARDS = '685 ', 949 KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYPERSONALNAME = '006 ', 950 KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTOPICALTERM = '056 ', 951 KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYGEOGRAPHIC = '156 ', 952 KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMGENRE = '556 ', 953 KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMCURRICULUM = '856 ', 954 KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYUNIFORMTITLE = '037 ', 955 KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYRELATED = '047 ', 956 KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTPERSONALNAME = '008 ', 957 KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTUNIFORMTITLE = '038 ' 958 } KSPROPERTY_BIBLIOGRAPHIC; 959 960 #define STATIC_KSPROPSETID_TopologyNode \ 961 0x45FFAAA1,0x6E1B,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00 962 DEFINE_GUIDSTRUCT("45FFAAA1-6E1B-11D0-BCF2-444553540000",KSPROPSETID_TopologyNode); 963 #define KSPROPSETID_TopologyNode DEFINE_GUIDNAMED(KSPROPSETID_TopologyNode) 964 965 typedef enum { 966 KSPROPERTY_TOPOLOGYNODE_ENABLE = 1, 967 KSPROPERTY_TOPOLOGYNODE_RESET 968 } KSPROPERTY_TOPOLOGYNODE; 969 970 #define STATIC_KSPROPSETID_RtAudio \ 971 0xa855a48c,0x2f78,0x4729,0x90,0x51,0x19,0x68,0x74,0x6b,0x9e,0xef 972 DEFINE_GUIDSTRUCT("A855A48C-2F78-4729-9051-1968746B9EEF",KSPROPSETID_RtAudio); 973 #define KSPROPSETID_RtAudio DEFINE_GUIDNAMED(KSPROPSETID_RtAudio) 974 975 typedef enum { 976 KSPROPERTY_RTAUDIO_GETPOSITIONFUNCTION 977 } KSPROPERTY_RTAUDIO; 978 979 #define STATIC_KSPROPSETID_DrmAudioStream \ 980 0x2f2c8ddd,0x4198,0x4fac,0xba,0x29,0x61,0xbb,0x5,0xb7,0xde,0x6 981 DEFINE_GUIDSTRUCT("2F2C8DDD-4198-4fac-BA29-61BB05B7DE06",KSPROPSETID_DrmAudioStream); 982 #define KSPROPSETID_DrmAudioStream DEFINE_GUIDNAMED(KSPROPSETID_DrmAudioStream) 983 984 typedef enum { 985 KSPROPERTY_DRMAUDIOSTREAM_CONTENTID 986 } KSPROPERTY_DRMAUDIOSTREAM; 987 988 #define STATIC_KSPROPSETID_Audio \ 989 0x45FFAAA0,0x6E1B,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00 990 DEFINE_GUIDSTRUCT("45FFAAA0-6E1B-11D0-BCF2-444553540000",KSPROPSETID_Audio); 991 #define KSPROPSETID_Audio DEFINE_GUIDNAMED(KSPROPSETID_Audio) 992 993 typedef enum { 994 KSPROPERTY_AUDIO_LATENCY = 1, 995 KSPROPERTY_AUDIO_COPY_PROTECTION, 996 KSPROPERTY_AUDIO_CHANNEL_CONFIG, 997 KSPROPERTY_AUDIO_VOLUMELEVEL, 998 KSPROPERTY_AUDIO_POSITION, 999 KSPROPERTY_AUDIO_DYNAMIC_RANGE, 1000 KSPROPERTY_AUDIO_QUALITY, 1001 KSPROPERTY_AUDIO_SAMPLING_RATE, 1002 KSPROPERTY_AUDIO_DYNAMIC_SAMPLING_RATE, 1003 KSPROPERTY_AUDIO_MIX_LEVEL_TABLE, 1004 KSPROPERTY_AUDIO_MIX_LEVEL_CAPS, 1005 KSPROPERTY_AUDIO_MUX_SOURCE, 1006 KSPROPERTY_AUDIO_MUTE, 1007 KSPROPERTY_AUDIO_BASS, 1008 KSPROPERTY_AUDIO_MID, 1009 KSPROPERTY_AUDIO_TREBLE, 1010 KSPROPERTY_AUDIO_BASS_BOOST, 1011 KSPROPERTY_AUDIO_EQ_LEVEL, 1012 KSPROPERTY_AUDIO_NUM_EQ_BANDS, 1013 KSPROPERTY_AUDIO_EQ_BANDS, 1014 KSPROPERTY_AUDIO_AGC, 1015 KSPROPERTY_AUDIO_DELAY, 1016 KSPROPERTY_AUDIO_LOUDNESS, 1017 KSPROPERTY_AUDIO_WIDE_MODE, 1018 KSPROPERTY_AUDIO_WIDENESS, 1019 KSPROPERTY_AUDIO_REVERB_LEVEL, 1020 KSPROPERTY_AUDIO_CHORUS_LEVEL, 1021 KSPROPERTY_AUDIO_DEV_SPECIFIC, 1022 KSPROPERTY_AUDIO_DEMUX_DEST, 1023 KSPROPERTY_AUDIO_STEREO_ENHANCE, 1024 KSPROPERTY_AUDIO_MANUFACTURE_GUID, 1025 KSPROPERTY_AUDIO_PRODUCT_GUID, 1026 KSPROPERTY_AUDIO_CPU_RESOURCES, 1027 KSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY, 1028 KSPROPERTY_AUDIO_SURROUND_ENCODE, 1029 KSPROPERTY_AUDIO_3D_INTERFACE, 1030 KSPROPERTY_AUDIO_PEAKMETER, 1031 KSPROPERTY_AUDIO_ALGORITHM_INSTANCE, 1032 KSPROPERTY_AUDIO_FILTER_STATE, 1033 KSPROPERTY_AUDIO_PREFERRED_STATUS 1034 } KSPROPERTY_AUDIO; 1035 1036 #define KSAUDIO_QUALITY_WORST 0x0 1037 #define KSAUDIO_QUALITY_PC 0x1 1038 #define KSAUDIO_QUALITY_BASIC 0x2 1039 #define KSAUDIO_QUALITY_ADVANCED 0x3 1040 1041 #define KSAUDIO_CPU_RESOURCES_NOT_HOST_CPU 0x00000000 1042 #define KSAUDIO_CPU_RESOURCES_HOST_CPU 0x7FFFFFFF 1043 1044 typedef struct { 1045 WINBOOL fCopyrighted; 1046 WINBOOL fOriginal; 1047 } KSAUDIO_COPY_PROTECTION,*PKSAUDIO_COPY_PROTECTION; 1048 1049 typedef struct { 1050 LONG ActiveSpeakerPositions; 1051 } KSAUDIO_CHANNEL_CONFIG,*PKSAUDIO_CHANNEL_CONFIG; 1052 1053 #ifndef _SPEAKER_POSITIONS_ 1054 #define _SPEAKER_POSITIONS_ 1055 #define SPEAKER_FRONT_LEFT 0x1 1056 #define SPEAKER_FRONT_RIGHT 0x2 1057 #define SPEAKER_FRONT_CENTER 0x4 1058 #define SPEAKER_LOW_FREQUENCY 0x8 1059 #define SPEAKER_BACK_LEFT 0x10 1060 #define SPEAKER_BACK_RIGHT 0x20 1061 #define SPEAKER_FRONT_LEFT_OF_CENTER 0x40 1062 #define SPEAKER_FRONT_RIGHT_OF_CENTER 0x80 1063 #define SPEAKER_BACK_CENTER 0x100 1064 #define SPEAKER_SIDE_LEFT 0x200 1065 #define SPEAKER_SIDE_RIGHT 0x400 1066 #define SPEAKER_TOP_CENTER 0x800 1067 #define SPEAKER_TOP_FRONT_LEFT 0x1000 1068 #define SPEAKER_TOP_FRONT_CENTER 0x2000 1069 #define SPEAKER_TOP_FRONT_RIGHT 0x4000 1070 #define SPEAKER_TOP_BACK_LEFT 0x8000 1071 #define SPEAKER_TOP_BACK_CENTER 0x10000 1072 #define SPEAKER_TOP_BACK_RIGHT 0x20000 1073 1074 #define SPEAKER_RESERVED 0x7FFC0000 1075 1076 #define SPEAKER_ALL 0x80000000 1077 #endif /* _SPEAKER_POSITIONS_ */ 1078 1079 #define KSAUDIO_SPEAKER_DIRECTOUT 0 1080 #define KSAUDIO_SPEAKER_MONO (SPEAKER_FRONT_CENTER) 1081 #define KSAUDIO_SPEAKER_STEREO (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT) 1082 #define KSAUDIO_SPEAKER_QUAD (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \ 1083 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT) 1084 #define KSAUDIO_SPEAKER_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \ 1085 SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER) 1086 #define KSAUDIO_SPEAKER_5POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \ 1087 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \ 1088 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT) 1089 #define KSAUDIO_SPEAKER_7POINT1 (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \ 1090 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \ 1091 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \ 1092 SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER) 1093 #define KSAUDIO_SPEAKER_5POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \ 1094 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \ 1095 SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT) 1096 #define KSAUDIO_SPEAKER_7POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT | \ 1097 SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY | \ 1098 SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT | \ 1099 SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT) 1100 1101 #define KSAUDIO_SPEAKER_5POINT1_BACK KSAUDIO_SPEAKER_5POINT1 1102 #define KSAUDIO_SPEAKER_7POINT1_WIDE KSAUDIO_SPEAKER_7POINT1 1103 1104 #define KSAUDIO_SPEAKER_GROUND_FRONT_LEFT SPEAKER_FRONT_LEFT 1105 #define KSAUDIO_SPEAKER_GROUND_FRONT_CENTER SPEAKER_FRONT_CENTER 1106 #define KSAUDIO_SPEAKER_GROUND_FRONT_RIGHT SPEAKER_FRONT_RIGHT 1107 #define KSAUDIO_SPEAKER_GROUND_REAR_LEFT SPEAKER_BACK_LEFT 1108 #define KSAUDIO_SPEAKER_GROUND_REAR_RIGHT SPEAKER_BACK_RIGHT 1109 #define KSAUDIO_SPEAKER_TOP_MIDDLE SPEAKER_TOP_CENTER 1110 #define KSAUDIO_SPEAKER_SUPER_WOOFER SPEAKER_LOW_FREQUENCY 1111 1112 typedef struct { 1113 ULONG QuietCompression; 1114 ULONG LoudCompression; 1115 } KSAUDIO_DYNAMIC_RANGE,*PKSAUDIO_DYNAMIC_RANGE; 1116 1117 typedef struct { 1118 WINBOOL Mute; 1119 LONG Level; 1120 } KSAUDIO_MIXLEVEL,*PKSAUDIO_MIXLEVEL; 1121 1122 typedef struct { 1123 WINBOOL Mute; 1124 LONG Minimum; 1125 LONG Maximum; 1126 LONG Reset; 1127 } KSAUDIO_MIX_CAPS,*PKSAUDIO_MIX_CAPS; 1128 1129 typedef struct { 1130 ULONG InputChannels; 1131 ULONG OutputChannels; 1132 KSAUDIO_MIX_CAPS Capabilities[1]; 1133 } KSAUDIO_MIXCAP_TABLE,*PKSAUDIO_MIXCAP_TABLE; 1134 1135 typedef enum { 1136 SE_TECH_NONE, 1137 SE_TECH_ANALOG_DEVICES_PHAT, 1138 SE_TECH_CREATIVE, 1139 SE_TECH_NATIONAL_SEMI, 1140 SE_TECH_YAMAHA_YMERSION, 1141 SE_TECH_BBE, 1142 SE_TECH_CRYSTAL_SEMI, 1143 SE_TECH_QSOUND_QXPANDER, 1144 SE_TECH_SPATIALIZER, 1145 SE_TECH_SRS, 1146 SE_TECH_PLATFORM_TECH, 1147 SE_TECH_AKM, 1148 SE_TECH_AUREAL, 1149 SE_TECH_AZTECH, 1150 SE_TECH_BINAURA, 1151 SE_TECH_ESS_TECH, 1152 SE_TECH_HARMAN_VMAX, 1153 SE_TECH_NVIDEA, 1154 SE_TECH_PHILIPS_INCREDIBLE, 1155 SE_TECH_TEXAS_INST, 1156 SE_TECH_VLSI_TECH 1157 } SE_TECHNIQUE; 1158 1159 typedef struct { 1160 SE_TECHNIQUE Technique; 1161 ULONG Center; 1162 ULONG Depth; 1163 ULONG Reserved; 1164 } KSAUDIO_STEREO_ENHANCE,*PKSAUDIO_STEREO_ENHANCE; 1165 1166 typedef enum { 1167 KSPROPERTY_SYSAUDIO_NORMAL_DEFAULT = 0, 1168 KSPROPERTY_SYSAUDIO_PLAYBACK_DEFAULT, 1169 KSPROPERTY_SYSAUDIO_RECORD_DEFAULT, 1170 KSPROPERTY_SYSAUDIO_MIDI_DEFAULT, 1171 KSPROPERTY_SYSAUDIO_MIXER_DEFAULT 1172 } KSPROPERTY_SYSAUDIO_DEFAULT_TYPE; 1173 1174 typedef struct { 1175 WINBOOL Enable; 1176 KSPROPERTY_SYSAUDIO_DEFAULT_TYPE DeviceType; 1177 ULONG Flags; 1178 ULONG Reserved; 1179 } KSAUDIO_PREFERRED_STATUS,*PKSAUDIO_PREFERRED_STATUS; 1180 1181 #define STATIC_KSNODETYPE_DAC \ 1182 0x507AE360,0xC554,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1183 DEFINE_GUIDSTRUCT("507AE360-C554-11D0-8A2B-00A0C9255AC1",KSNODETYPE_DAC); 1184 #define KSNODETYPE_DAC DEFINE_GUIDNAMED(KSNODETYPE_DAC) 1185 1186 #define STATIC_KSNODETYPE_ADC \ 1187 0x4D837FE0,0xC555,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1188 DEFINE_GUIDSTRUCT("4D837FE0-C555-11D0-8A2B-00A0C9255AC1",KSNODETYPE_ADC); 1189 #define KSNODETYPE_ADC DEFINE_GUIDNAMED(KSNODETYPE_ADC) 1190 1191 #define STATIC_KSNODETYPE_SRC \ 1192 0x9DB7B9E0,0xC555,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1193 DEFINE_GUIDSTRUCT("9DB7B9E0-C555-11D0-8A2B-00A0C9255AC1",KSNODETYPE_SRC); 1194 #define KSNODETYPE_SRC DEFINE_GUIDNAMED(KSNODETYPE_SRC) 1195 1196 #define STATIC_KSNODETYPE_SUPERMIX \ 1197 0xE573ADC0,0xC555,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1198 DEFINE_GUIDSTRUCT("E573ADC0-C555-11D0-8A2B-00A0C9255AC1",KSNODETYPE_SUPERMIX); 1199 #define KSNODETYPE_SUPERMIX DEFINE_GUIDNAMED(KSNODETYPE_SUPERMIX) 1200 1201 #define STATIC_KSNODETYPE_MUX \ 1202 0x2CEAF780,0xC556,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1203 DEFINE_GUIDSTRUCT("2CEAF780-C556-11D0-8A2B-00A0C9255AC1",KSNODETYPE_MUX); 1204 #define KSNODETYPE_MUX DEFINE_GUIDNAMED(KSNODETYPE_MUX) 1205 1206 #define STATIC_KSNODETYPE_DEMUX \ 1207 0xC0EB67D4,0xE807,0x11D0,0x95,0x8A,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1208 DEFINE_GUIDSTRUCT("C0EB67D4-E807-11D0-958A-00C04FB925D3",KSNODETYPE_DEMUX); 1209 #define KSNODETYPE_DEMUX DEFINE_GUIDNAMED(KSNODETYPE_DEMUX) 1210 1211 #define STATIC_KSNODETYPE_SUM \ 1212 0xDA441A60,0xC556,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1213 DEFINE_GUIDSTRUCT("DA441A60-C556-11D0-8A2B-00A0C9255AC1",KSNODETYPE_SUM); 1214 #define KSNODETYPE_SUM DEFINE_GUIDNAMED(KSNODETYPE_SUM) 1215 1216 #define STATIC_KSNODETYPE_MUTE \ 1217 0x02B223C0,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1218 DEFINE_GUIDSTRUCT("02B223C0-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_MUTE); 1219 #define KSNODETYPE_MUTE DEFINE_GUIDNAMED(KSNODETYPE_MUTE) 1220 1221 #define STATIC_KSNODETYPE_VOLUME \ 1222 0x3A5ACC00,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1223 DEFINE_GUIDSTRUCT("3A5ACC00-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_VOLUME); 1224 #define KSNODETYPE_VOLUME DEFINE_GUIDNAMED(KSNODETYPE_VOLUME) 1225 1226 #define STATIC_KSNODETYPE_TONE \ 1227 0x7607E580,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1228 DEFINE_GUIDSTRUCT("7607E580-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_TONE); 1229 #define KSNODETYPE_TONE DEFINE_GUIDNAMED(KSNODETYPE_TONE) 1230 1231 #define STATIC_KSNODETYPE_EQUALIZER \ 1232 0x9D41B4A0,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1233 DEFINE_GUIDSTRUCT("9D41B4A0-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_EQUALIZER); 1234 #define KSNODETYPE_EQUALIZER DEFINE_GUIDNAMED(KSNODETYPE_EQUALIZER) 1235 1236 #define STATIC_KSNODETYPE_AGC \ 1237 0xE88C9BA0,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1238 DEFINE_GUIDSTRUCT("E88C9BA0-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_AGC); 1239 #define KSNODETYPE_AGC DEFINE_GUIDNAMED(KSNODETYPE_AGC) 1240 1241 #define STATIC_KSNODETYPE_NOISE_SUPPRESS \ 1242 0xe07f903f,0x62fd,0x4e60,0x8c,0xdd,0xde,0xa7,0x23,0x66,0x65,0xb5 1243 DEFINE_GUIDSTRUCT("E07F903F-62FD-4e60-8CDD-DEA7236665B5",KSNODETYPE_NOISE_SUPPRESS); 1244 #define KSNODETYPE_NOISE_SUPPRESS DEFINE_GUIDNAMED(KSNODETYPE_NOISE_SUPPRESS) 1245 1246 #define STATIC_KSNODETYPE_DELAY \ 1247 0x144981E0,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1248 DEFINE_GUIDSTRUCT("144981E0-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_DELAY); 1249 #define KSNODETYPE_DELAY DEFINE_GUIDNAMED(KSNODETYPE_DELAY) 1250 1251 #define STATIC_KSNODETYPE_LOUDNESS \ 1252 0x41887440,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1253 DEFINE_GUIDSTRUCT("41887440-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_LOUDNESS); 1254 #define KSNODETYPE_LOUDNESS DEFINE_GUIDNAMED(KSNODETYPE_LOUDNESS) 1255 1256 #define STATIC_KSNODETYPE_PROLOGIC_DECODER \ 1257 0x831C2C80,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1258 DEFINE_GUIDSTRUCT("831C2C80-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_PROLOGIC_DECODER); 1259 #define KSNODETYPE_PROLOGIC_DECODER DEFINE_GUIDNAMED(KSNODETYPE_PROLOGIC_DECODER) 1260 1261 #define STATIC_KSNODETYPE_STEREO_WIDE \ 1262 0xA9E69800,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1263 DEFINE_GUIDSTRUCT("A9E69800-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_STEREO_WIDE); 1264 #define KSNODETYPE_STEREO_WIDE DEFINE_GUIDNAMED(KSNODETYPE_STEREO_WIDE) 1265 1266 #define STATIC_KSNODETYPE_STEREO_ENHANCE \ 1267 0xAF6878AC,0xE83F,0x11D0,0x95,0x8A,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1268 DEFINE_GUIDSTRUCT("AF6878AC-E83F-11D0-958A-00C04FB925D3",KSNODETYPE_STEREO_ENHANCE); 1269 #define KSNODETYPE_STEREO_ENHANCE DEFINE_GUIDNAMED(KSNODETYPE_STEREO_ENHANCE) 1270 1271 #define STATIC_KSNODETYPE_REVERB \ 1272 0xEF0328E0,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1273 DEFINE_GUIDSTRUCT("EF0328E0-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_REVERB); 1274 #define KSNODETYPE_REVERB DEFINE_GUIDNAMED(KSNODETYPE_REVERB) 1275 1276 #define STATIC_KSNODETYPE_CHORUS \ 1277 0x20173F20,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1278 DEFINE_GUIDSTRUCT("20173F20-C559-11D0-8A2B-00A0C9255AC1",KSNODETYPE_CHORUS); 1279 #define KSNODETYPE_CHORUS DEFINE_GUIDNAMED(KSNODETYPE_CHORUS) 1280 1281 #define STATIC_KSNODETYPE_3D_EFFECTS \ 1282 0x55515860,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1283 DEFINE_GUIDSTRUCT("55515860-C559-11D0-8A2B-00A0C9255AC1",KSNODETYPE_3D_EFFECTS); 1284 #define KSNODETYPE_3D_EFFECTS DEFINE_GUIDNAMED(KSNODETYPE_3D_EFFECTS) 1285 1286 #define STATIC_KSNODETYPE_ACOUSTIC_ECHO_CANCEL STATIC_KSCATEGORY_ACOUSTIC_ECHO_CANCEL 1287 #define KSNODETYPE_ACOUSTIC_ECHO_CANCEL KSCATEGORY_ACOUSTIC_ECHO_CANCEL 1288 1289 #define STATIC_KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL \ 1290 0x1c22c56d,0x9879,0x4f5b,0xa3,0x89,0x27,0x99,0x6d,0xdc,0x28,0x10 1291 DEFINE_GUIDSTRUCT("1C22C56D-9879-4f5b-A389-27996DDC2810",KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL); 1292 #define KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL) 1293 1294 #define STATIC_KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS \ 1295 0x5ab0882e,0x7274,0x4516,0x87,0x7d,0x4e,0xee,0x99,0xba,0x4f,0xd0 1296 DEFINE_GUIDSTRUCT("5AB0882E-7274-4516-877D-4EEE99BA4FD0",KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS); 1297 #define KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS) 1298 1299 #define STATIC_KSALGORITHMINSTANCE_SYSTEM_AGC \ 1300 0x950e55b9,0x877c,0x4c67,0xbe,0x8,0xe4,0x7b,0x56,0x11,0x13,0xa 1301 DEFINE_GUIDSTRUCT("950E55B9-877C-4c67-BE08-E47B5611130A",KSALGORITHMINSTANCE_SYSTEM_AGC); 1302 #define KSALGORITHMINSTANCE_SYSTEM_AGC DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_AGC) 1303 1304 #define STATIC_KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR \ 1305 0xB6F5A0A0,0x9E61,0x4F8C,0x91,0xE3,0x76,0xCF,0xF,0x3C,0x47,0x1F 1306 DEFINE_GUIDSTRUCT("B6F5A0A0-9E61-4f8c-91E3-76CF0F3C471F",KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR); 1307 #define KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR) 1308 1309 #define STATIC_KSNODETYPE_MICROPHONE_ARRAY_PROCESSOR STATIC_KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR 1310 #define KSNODETYPE_MICROPHONE_ARRAY_PROCESSOR KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR 1311 1312 #define STATIC_KSNODETYPE_DEV_SPECIFIC \ 1313 0x941C7AC0,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1 1314 DEFINE_GUIDSTRUCT("941C7AC0-C559-11D0-8A2B-00A0C9255AC1",KSNODETYPE_DEV_SPECIFIC); 1315 #define KSNODETYPE_DEV_SPECIFIC DEFINE_GUIDNAMED(KSNODETYPE_DEV_SPECIFIC) 1316 1317 #define STATIC_KSNODETYPE_PROLOGIC_ENCODER \ 1318 0x8074C5B2,0x3C66,0x11D2,0xB4,0x5A,0x30,0x78,0x30,0x2C,0x20,0x30 1319 DEFINE_GUIDSTRUCT("8074C5B2-3C66-11D2-B45A-3078302C2030",KSNODETYPE_PROLOGIC_ENCODER); 1320 #define KSNODETYPE_PROLOGIC_ENCODER DEFINE_GUIDNAMED(KSNODETYPE_PROLOGIC_ENCODER) 1321 #define KSNODETYPE_SURROUND_ENCODER KSNODETYPE_PROLOGIC_ENCODER 1322 1323 #define STATIC_KSNODETYPE_PEAKMETER \ 1324 0xa085651e,0x5f0d,0x4b36,0xa8,0x69,0xd1,0x95,0xd6,0xab,0x4b,0x9e 1325 DEFINE_GUIDSTRUCT("A085651E-5F0D-4b36-A869-D195D6AB4B9E",KSNODETYPE_PEAKMETER); 1326 #define KSNODETYPE_PEAKMETER DEFINE_GUIDNAMED(KSNODETYPE_PEAKMETER) 1327 1328 #define STATIC_KSAUDFNAME_BASS \ 1329 0x185FEDE0,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1330 DEFINE_GUIDSTRUCT("185FEDE0-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_BASS); 1331 #define KSAUDFNAME_BASS DEFINE_GUIDNAMED(KSAUDFNAME_BASS) 1332 1333 #define STATIC_KSAUDFNAME_TREBLE \ 1334 0x185FEDE1,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1335 DEFINE_GUIDSTRUCT("185FEDE1-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_TREBLE); 1336 #define KSAUDFNAME_TREBLE DEFINE_GUIDNAMED(KSAUDFNAME_TREBLE) 1337 1338 #define STATIC_KSAUDFNAME_3D_STEREO \ 1339 0x185FEDE2,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1340 DEFINE_GUIDSTRUCT("185FEDE2-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_3D_STEREO); 1341 #define KSAUDFNAME_3D_STEREO DEFINE_GUIDNAMED(KSAUDFNAME_3D_STEREO) 1342 1343 #define STATIC_KSAUDFNAME_MASTER_VOLUME \ 1344 0x185FEDE3,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1345 DEFINE_GUIDSTRUCT("185FEDE3-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MASTER_VOLUME); 1346 #define KSAUDFNAME_MASTER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_VOLUME) 1347 1348 #define STATIC_KSAUDFNAME_MASTER_MUTE \ 1349 0x185FEDE4,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1350 DEFINE_GUIDSTRUCT("185FEDE4-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MASTER_MUTE); 1351 #define KSAUDFNAME_MASTER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_MUTE) 1352 1353 #define STATIC_KSAUDFNAME_WAVE_VOLUME \ 1354 0x185FEDE5,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1355 DEFINE_GUIDSTRUCT("185FEDE5-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_VOLUME); 1356 #define KSAUDFNAME_WAVE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_VOLUME) 1357 1358 #define STATIC_KSAUDFNAME_WAVE_MUTE \ 1359 0x185FEDE6,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1360 DEFINE_GUIDSTRUCT("185FEDE6-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_MUTE); 1361 #define KSAUDFNAME_WAVE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_MUTE) 1362 1363 #define STATIC_KSAUDFNAME_MIDI_VOLUME \ 1364 0x185FEDE7,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1365 DEFINE_GUIDSTRUCT("185FEDE7-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI_VOLUME); 1366 #define KSAUDFNAME_MIDI_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_VOLUME) 1367 1368 #define STATIC_KSAUDFNAME_MIDI_MUTE \ 1369 0x185FEDE8,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1370 DEFINE_GUIDSTRUCT("185FEDE8-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI_MUTE); 1371 #define KSAUDFNAME_MIDI_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_MUTE) 1372 1373 #define STATIC_KSAUDFNAME_CD_VOLUME \ 1374 0x185FEDE9,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1375 DEFINE_GUIDSTRUCT("185FEDE9-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_VOLUME); 1376 #define KSAUDFNAME_CD_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_VOLUME) 1377 1378 #define STATIC_KSAUDFNAME_CD_MUTE \ 1379 0x185FEDEA,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1380 DEFINE_GUIDSTRUCT("185FEDEA-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_MUTE); 1381 #define KSAUDFNAME_CD_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_CD_MUTE) 1382 1383 #define STATIC_KSAUDFNAME_LINE_VOLUME \ 1384 0x185FEDEB,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1385 DEFINE_GUIDSTRUCT("185FEDEB-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_VOLUME); 1386 #define KSAUDFNAME_LINE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_VOLUME) 1387 1388 #define STATIC_KSAUDFNAME_LINE_MUTE \ 1389 0x185FEDEC,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1390 DEFINE_GUIDSTRUCT("185FEDEC-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_MUTE); 1391 #define KSAUDFNAME_LINE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_LINE_MUTE) 1392 1393 #define STATIC_KSAUDFNAME_MIC_VOLUME \ 1394 0x185FEDED,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1395 DEFINE_GUIDSTRUCT("185FEDED-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIC_VOLUME); 1396 #define KSAUDFNAME_MIC_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_VOLUME) 1397 1398 #define STATIC_KSAUDFNAME_MIC_MUTE \ 1399 0x185FEDEE,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1400 DEFINE_GUIDSTRUCT("185FEDEE-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIC_MUTE); 1401 #define KSAUDFNAME_MIC_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIC_MUTE) 1402 1403 #define STATIC_KSAUDFNAME_RECORDING_SOURCE \ 1404 0x185FEDEF,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1405 DEFINE_GUIDSTRUCT("185FEDEF-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_RECORDING_SOURCE); 1406 #define KSAUDFNAME_RECORDING_SOURCE DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_SOURCE) 1407 1408 #define STATIC_KSAUDFNAME_PC_SPEAKER_VOLUME \ 1409 0x185FEDF0,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1410 DEFINE_GUIDSTRUCT("185FEDF0-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_PC_SPEAKER_VOLUME); 1411 #define KSAUDFNAME_PC_SPEAKER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER_VOLUME) 1412 1413 #define STATIC_KSAUDFNAME_PC_SPEAKER_MUTE \ 1414 0x185FEDF1,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1415 DEFINE_GUIDSTRUCT("185FEDF1-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_PC_SPEAKER_MUTE); 1416 #define KSAUDFNAME_PC_SPEAKER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER_MUTE) 1417 1418 #define STATIC_KSAUDFNAME_MIDI_IN_VOLUME \ 1419 0x185FEDF2,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1420 DEFINE_GUIDSTRUCT("185FEDF2-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI_IN_VOLUME); 1421 #define KSAUDFNAME_MIDI_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_IN_VOLUME) 1422 1423 #define STATIC_KSAUDFNAME_CD_IN_VOLUME \ 1424 0x185FEDF3,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1425 DEFINE_GUIDSTRUCT("185FEDF3-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_IN_VOLUME); 1426 #define KSAUDFNAME_CD_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_IN_VOLUME) 1427 1428 #define STATIC_KSAUDFNAME_LINE_IN_VOLUME \ 1429 0x185FEDF4,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1430 DEFINE_GUIDSTRUCT("185FEDF4-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_IN_VOLUME); 1431 #define KSAUDFNAME_LINE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN_VOLUME) 1432 1433 #define STATIC_KSAUDFNAME_MIC_IN_VOLUME \ 1434 0x185FEDF5,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1435 DEFINE_GUIDSTRUCT("185FEDF5-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIC_IN_VOLUME); 1436 #define KSAUDFNAME_MIC_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_IN_VOLUME) 1437 1438 #define STATIC_KSAUDFNAME_WAVE_IN_VOLUME \ 1439 0x185FEDF6,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1440 DEFINE_GUIDSTRUCT("185FEDF6-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_IN_VOLUME); 1441 #define KSAUDFNAME_WAVE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_IN_VOLUME) 1442 1443 #define STATIC_KSAUDFNAME_VOLUME_CONTROL \ 1444 0x185FEDF7,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1445 DEFINE_GUIDSTRUCT("185FEDF7-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_VOLUME_CONTROL); 1446 #define KSAUDFNAME_VOLUME_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_VOLUME_CONTROL) 1447 1448 #define STATIC_KSAUDFNAME_MIDI \ 1449 0x185FEDF8,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1450 DEFINE_GUIDSTRUCT("185FEDF8-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI); 1451 #define KSAUDFNAME_MIDI DEFINE_GUIDNAMED(KSAUDFNAME_MIDI) 1452 1453 #define STATIC_KSAUDFNAME_LINE_IN \ 1454 0x185FEDF9,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1455 DEFINE_GUIDSTRUCT("185FEDF9-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_IN); 1456 #define KSAUDFNAME_LINE_IN DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN) 1457 1458 #define STATIC_KSAUDFNAME_RECORDING_CONTROL \ 1459 0x185FEDFA,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1460 DEFINE_GUIDSTRUCT("185FEDFA-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_RECORDING_CONTROL); 1461 #define KSAUDFNAME_RECORDING_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_CONTROL) 1462 1463 #define STATIC_KSAUDFNAME_CD_AUDIO \ 1464 0x185FEDFB,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1465 DEFINE_GUIDSTRUCT("185FEDFB-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_AUDIO); 1466 #define KSAUDFNAME_CD_AUDIO DEFINE_GUIDNAMED(KSAUDFNAME_CD_AUDIO) 1467 1468 #define STATIC_KSAUDFNAME_AUX_VOLUME \ 1469 0x185FEDFC,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1470 DEFINE_GUIDSTRUCT("185FEDFC-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_AUX_VOLUME); 1471 #define KSAUDFNAME_AUX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_AUX_VOLUME) 1472 1473 #define STATIC_KSAUDFNAME_AUX_MUTE \ 1474 0x185FEDFD,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1475 DEFINE_GUIDSTRUCT("185FEDFD-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_AUX_MUTE); 1476 #define KSAUDFNAME_AUX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_AUX_MUTE) 1477 1478 #define STATIC_KSAUDFNAME_AUX \ 1479 0x185FEDFE,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1480 DEFINE_GUIDSTRUCT("185FEDFE-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_AUX); 1481 #define KSAUDFNAME_AUX DEFINE_GUIDNAMED(KSAUDFNAME_AUX) 1482 1483 #define STATIC_KSAUDFNAME_PC_SPEAKER \ 1484 0x185FEDFF,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1485 DEFINE_GUIDSTRUCT("185FEDFF-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_PC_SPEAKER); 1486 #define KSAUDFNAME_PC_SPEAKER DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER) 1487 1488 #define STATIC_KSAUDFNAME_WAVE_OUT_MIX \ 1489 0x185FEE00,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1490 DEFINE_GUIDSTRUCT("185FEE00-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_OUT_MIX); 1491 #define KSAUDFNAME_WAVE_OUT_MIX DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_OUT_MIX) 1492 1493 #define STATIC_KSAUDFNAME_MONO_OUT \ 1494 0xf9b41dc3,0x96e2,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1495 DEFINE_GUIDSTRUCT("F9B41DC3-96E2-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_OUT); 1496 #define KSAUDFNAME_MONO_OUT DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT) 1497 1498 #define STATIC_KSAUDFNAME_STEREO_MIX \ 1499 0xdff077,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1500 DEFINE_GUIDSTRUCT("00DFF077-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_STEREO_MIX); 1501 #define KSAUDFNAME_STEREO_MIX DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX) 1502 1503 #define STATIC_KSAUDFNAME_MONO_MIX \ 1504 0xdff078,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1505 DEFINE_GUIDSTRUCT("00DFF078-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_MIX); 1506 #define KSAUDFNAME_MONO_MIX DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX) 1507 1508 #define STATIC_KSAUDFNAME_MONO_OUT_VOLUME \ 1509 0x1ad247eb,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1510 DEFINE_GUIDSTRUCT("1AD247EB-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_OUT_VOLUME); 1511 #define KSAUDFNAME_MONO_OUT_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT_VOLUME) 1512 1513 #define STATIC_KSAUDFNAME_MONO_OUT_MUTE \ 1514 0x1ad247ec,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1515 DEFINE_GUIDSTRUCT("1AD247EC-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_OUT_MUTE); 1516 #define KSAUDFNAME_MONO_OUT_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT_MUTE) 1517 1518 #define STATIC_KSAUDFNAME_STEREO_MIX_VOLUME \ 1519 0x1ad247ed,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1520 DEFINE_GUIDSTRUCT("1AD247ED-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_STEREO_MIX_VOLUME); 1521 #define KSAUDFNAME_STEREO_MIX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX_VOLUME) 1522 1523 #define STATIC_KSAUDFNAME_STEREO_MIX_MUTE \ 1524 0x22b0eafd,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1525 DEFINE_GUIDSTRUCT("22B0EAFD-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_STEREO_MIX_MUTE); 1526 #define KSAUDFNAME_STEREO_MIX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX_MUTE) 1527 1528 #define STATIC_KSAUDFNAME_MONO_MIX_VOLUME \ 1529 0x22b0eafe,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1530 DEFINE_GUIDSTRUCT("22B0EAFE-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_MIX_VOLUME); 1531 #define KSAUDFNAME_MONO_MIX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX_VOLUME) 1532 1533 #define STATIC_KSAUDFNAME_MONO_MIX_MUTE \ 1534 0x2bc31d69,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1535 DEFINE_GUIDSTRUCT("2BC31D69-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_MIX_MUTE); 1536 #define KSAUDFNAME_MONO_MIX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX_MUTE) 1537 1538 #define STATIC_KSAUDFNAME_MICROPHONE_BOOST \ 1539 0x2bc31d6a,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1540 DEFINE_GUIDSTRUCT("2BC31D6A-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MICROPHONE_BOOST); 1541 #define KSAUDFNAME_MICROPHONE_BOOST DEFINE_GUIDNAMED(KSAUDFNAME_MICROPHONE_BOOST) 1542 1543 #define STATIC_KSAUDFNAME_ALTERNATE_MICROPHONE \ 1544 0x2bc31d6b,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1545 DEFINE_GUIDSTRUCT("2BC31D6B-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_ALTERNATE_MICROPHONE); 1546 #define KSAUDFNAME_ALTERNATE_MICROPHONE DEFINE_GUIDNAMED(KSAUDFNAME_ALTERNATE_MICROPHONE) 1547 1548 #define STATIC_KSAUDFNAME_3D_DEPTH \ 1549 0x63ff5747,0x991f,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1550 DEFINE_GUIDSTRUCT("63FF5747-991F-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_3D_DEPTH); 1551 #define KSAUDFNAME_3D_DEPTH DEFINE_GUIDNAMED(KSAUDFNAME_3D_DEPTH) 1552 1553 #define STATIC_KSAUDFNAME_3D_CENTER \ 1554 0x9f0670b4,0x991f,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1555 DEFINE_GUIDSTRUCT("9F0670B4-991F-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_3D_CENTER); 1556 #define KSAUDFNAME_3D_CENTER DEFINE_GUIDNAMED(KSAUDFNAME_3D_CENTER) 1557 1558 #define STATIC_KSAUDFNAME_VIDEO_VOLUME \ 1559 0x9b46e708,0x992a,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1560 DEFINE_GUIDSTRUCT("9B46E708-992A-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_VIDEO_VOLUME); 1561 #define KSAUDFNAME_VIDEO_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO_VOLUME) 1562 1563 #define STATIC_KSAUDFNAME_VIDEO_MUTE \ 1564 0x9b46e709,0x992a,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1565 DEFINE_GUIDSTRUCT("9B46E709-992A-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_VIDEO_MUTE); 1566 #define KSAUDFNAME_VIDEO_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO_MUTE) 1567 1568 #define STATIC_KSAUDFNAME_VIDEO \ 1569 0x915daec4,0xa434,0x11d2,0xac,0x52,0x0,0xc0,0x4f,0x8e,0xfb,0x68 1570 DEFINE_GUIDSTRUCT("915DAEC4-A434-11d2-AC52-00C04F8EFB68",KSAUDFNAME_VIDEO); 1571 #define KSAUDFNAME_VIDEO DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO) 1572 1573 #define STATIC_KSAUDFNAME_PEAKMETER \ 1574 0x57e24340,0xfc5b,0x4612,0xa5,0x62,0x72,0xb1,0x1a,0x29,0xdf,0xae 1575 DEFINE_GUIDSTRUCT("57E24340-FC5B-4612-A562-72B11A29DFAE",KSAUDFNAME_PEAKMETER); 1576 #define KSAUDFNAME_PEAKMETER DEFINE_GUIDNAMED(KSAUDFNAME_PEAKMETER) 1577 1578 #define KSNODEPIN_STANDARD_IN 1 1579 #define KSNODEPIN_STANDARD_OUT 0 1580 1581 #define KSNODEPIN_SUM_MUX_IN 1 1582 #define KSNODEPIN_SUM_MUX_OUT 0 1583 1584 #define KSNODEPIN_DEMUX_IN 0 1585 #define KSNODEPIN_DEMUX_OUT 1 1586 1587 #define KSNODEPIN_AEC_RENDER_IN 1 1588 #define KSNODEPIN_AEC_RENDER_OUT 0 1589 #define KSNODEPIN_AEC_CAPTURE_IN 2 1590 #define KSNODEPIN_AEC_CAPTURE_OUT 3 1591 1592 #define STATIC_KSMETHODSETID_Wavetable \ 1593 0xDCEF31EB,0xD907,0x11D0,0x95,0x83,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1594 DEFINE_GUIDSTRUCT("DCEF31EB-D907-11D0-9583-00C04FB925D3",KSMETHODSETID_Wavetable); 1595 #define KSMETHODSETID_Wavetable DEFINE_GUIDNAMED(KSMETHODSETID_Wavetable) 1596 1597 typedef enum { 1598 KSMETHOD_WAVETABLE_WAVE_ALLOC, 1599 KSMETHOD_WAVETABLE_WAVE_FREE, 1600 KSMETHOD_WAVETABLE_WAVE_FIND, 1601 KSMETHOD_WAVETABLE_WAVE_WRITE 1602 } KSMETHOD_WAVETABLE; 1603 1604 typedef struct { 1605 KSIDENTIFIER Identifier; 1606 ULONG Size; 1607 WINBOOL Looped; 1608 ULONG LoopPoint; 1609 WINBOOL InROM; 1610 KSDATAFORMAT Format; 1611 } KSWAVETABLE_WAVE_DESC,*PKSWAVETABLE_WAVE_DESC; 1612 1613 #define STATIC_KSPROPSETID_Acoustic_Echo_Cancel \ 1614 0xd7a4af8b,0x3dc1,0x4902,0x91,0xea,0x8a,0x15,0xc9,0x0e,0x05,0xb2 1615 DEFINE_GUIDSTRUCT("D7A4AF8B-3DC1-4902-91EA-8A15C90E05B2",KSPROPSETID_Acoustic_Echo_Cancel); 1616 #define KSPROPSETID_Acoustic_Echo_Cancel DEFINE_GUIDNAMED(KSPROPSETID_Acoustic_Echo_Cancel) 1617 1618 typedef enum { 1619 KSPROPERTY_AEC_NOISE_FILL_ENABLE = 0, 1620 KSPROPERTY_AEC_STATUS, 1621 KSPROPERTY_AEC_MODE 1622 } KSPROPERTY_AEC; 1623 1624 #define AEC_STATUS_FD_HISTORY_UNINITIALIZED 0x0 1625 #define AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED 0x1 1626 #define AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED 0x2 1627 #define AEC_STATUS_FD_CURRENTLY_CONVERGED 0x8 1628 1629 #define AEC_MODE_PASS_THROUGH 0x0 1630 #define AEC_MODE_HALF_DUPLEX 0x1 1631 #define AEC_MODE_FULL_DUPLEX 0x2 1632 1633 #if (NTDDI_VERSION < NTDDI_WS03) 1634 #define STATIC_KSPROPSETID_Wave_Queued \ 1635 0x16a15b10,0x16f0,0x11d0,0xa1,0x95,0x00,0x20,0xaf,0xd1,0x56,0xe4 1636 DEFINE_GUIDSTRUCT("16a15b10-16f0-11d0-a195-0020afd156e4", KSPROPSETID_Wave_Queued); 1637 #define KSPROPSETID_Wave_Queued DEFINE_GUIDNAMED(KSPROPSETID_Wave_Queued) 1638 #endif /* NTDDI_VERSION < NTDDI_WS03 */ 1639 1640 #define STATIC_KSPROPSETID_Wave \ 1641 0x924e54b0,0x630f,0x11cf,0xad,0xa7,0x08,0x00,0x3e,0x30,0x49,0x4a 1642 DEFINE_GUIDSTRUCT("924e54b0-630f-11cf-ada7-08003e30494a",KSPROPSETID_Wave); 1643 #define KSPROPSETID_Wave DEFINE_GUIDNAMED(KSPROPSETID_Wave) 1644 1645 typedef enum { 1646 KSPROPERTY_WAVE_COMPATIBLE_CAPABILITIES, 1647 KSPROPERTY_WAVE_INPUT_CAPABILITIES, 1648 KSPROPERTY_WAVE_OUTPUT_CAPABILITIES, 1649 KSPROPERTY_WAVE_BUFFER, 1650 KSPROPERTY_WAVE_FREQUENCY, 1651 KSPROPERTY_WAVE_VOLUME, 1652 KSPROPERTY_WAVE_PAN 1653 } KSPROPERTY_WAVE; 1654 1655 typedef struct { 1656 ULONG ulDeviceType; 1657 } KSWAVE_COMPATCAPS,*PKSWAVE_COMPATCAPS; 1658 1659 #define KSWAVE_COMPATCAPS_INPUT 0x00000000 1660 #define KSWAVE_COMPATCAPS_OUTPUT 0x00000001 1661 1662 typedef struct { 1663 ULONG MaximumChannelsPerConnection; 1664 ULONG MinimumBitsPerSample; 1665 ULONG MaximumBitsPerSample; 1666 ULONG MinimumSampleFrequency; 1667 ULONG MaximumSampleFrequency; 1668 ULONG TotalConnections; 1669 ULONG ActiveConnections; 1670 } KSWAVE_INPUT_CAPABILITIES,*PKSWAVE_INPUT_CAPABILITIES; 1671 1672 typedef struct { 1673 ULONG MaximumChannelsPerConnection; 1674 ULONG MinimumBitsPerSample; 1675 ULONG MaximumBitsPerSample; 1676 ULONG MinimumSampleFrequency; 1677 ULONG MaximumSampleFrequency; 1678 ULONG TotalConnections; 1679 ULONG StaticConnections; 1680 ULONG StreamingConnections; 1681 ULONG ActiveConnections; 1682 ULONG ActiveStaticConnections; 1683 ULONG ActiveStreamingConnections; 1684 ULONG Total3DConnections; 1685 ULONG Static3DConnections; 1686 ULONG Streaming3DConnections; 1687 ULONG Active3DConnections; 1688 ULONG ActiveStatic3DConnections; 1689 ULONG ActiveStreaming3DConnections; 1690 ULONG TotalSampleMemory; 1691 ULONG FreeSampleMemory; 1692 ULONG LargestFreeContiguousSampleMemory; 1693 } KSWAVE_OUTPUT_CAPABILITIES,*PKSWAVE_OUTPUT_CAPABILITIES; 1694 1695 typedef struct { 1696 LONG LeftAttenuation; 1697 LONG RightAttenuation; 1698 } KSWAVE_VOLUME,*PKSWAVE_VOLUME; 1699 1700 #define KSWAVE_BUFFER_ATTRIBUTEF_LOOPING 0x00000001 1701 #define KSWAVE_BUFFER_ATTRIBUTEF_STATIC 0x00000002 1702 1703 typedef struct { 1704 ULONG Attributes; 1705 ULONG BufferSize; 1706 PVOID BufferAddress; 1707 } KSWAVE_BUFFER,*PKSWAVE_BUFFER; 1708 1709 #define STATIC_KSMUSIC_TECHNOLOGY_PORT \ 1710 0x86C92E60,0x62E8,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 1711 DEFINE_GUIDSTRUCT("86C92E60-62E8-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_PORT); 1712 #define KSMUSIC_TECHNOLOGY_PORT DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_PORT) 1713 1714 #define STATIC_KSMUSIC_TECHNOLOGY_SQSYNTH \ 1715 0x0ECF4380,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 1716 DEFINE_GUIDSTRUCT("0ECF4380-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_SQSYNTH); 1717 #define KSMUSIC_TECHNOLOGY_SQSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_SQSYNTH) 1718 1719 #define STATIC_KSMUSIC_TECHNOLOGY_FMSYNTH \ 1720 0x252C5C80,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 1721 DEFINE_GUIDSTRUCT("252C5C80-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_FMSYNTH); 1722 #define KSMUSIC_TECHNOLOGY_FMSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_FMSYNTH) 1723 1724 #define STATIC_KSMUSIC_TECHNOLOGY_WAVETABLE \ 1725 0x394EC7C0,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 1726 DEFINE_GUIDSTRUCT("394EC7C0-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_WAVETABLE); 1727 #define KSMUSIC_TECHNOLOGY_WAVETABLE DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_WAVETABLE) 1728 1729 #define STATIC_KSMUSIC_TECHNOLOGY_SWSYNTH \ 1730 0x37407736,0x3620,0x11D1,0x85,0xD3,0x00,0x00,0xF8,0x75,0x43,0x80 1731 DEFINE_GUIDSTRUCT("37407736-3620-11D1-85D3-0000F8754380",KSMUSIC_TECHNOLOGY_SWSYNTH); 1732 #define KSMUSIC_TECHNOLOGY_SWSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_SWSYNTH) 1733 1734 #define STATIC_KSPROPSETID_WaveTable \ 1735 0x8539E660,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 1736 DEFINE_GUIDSTRUCT("8539E660-62E9-11CF-A5D6-28DB04C10000",KSPROPSETID_WaveTable); 1737 #define KSPROPSETID_WaveTable DEFINE_GUIDNAMED(KSPROPSETID_WaveTable) 1738 1739 typedef enum { 1740 KSPROPERTY_WAVETABLE_LOAD_SAMPLE, 1741 KSPROPERTY_WAVETABLE_UNLOAD_SAMPLE, 1742 KSPROPERTY_WAVETABLE_MEMORY, 1743 KSPROPERTY_WAVETABLE_VERSION 1744 } KSPROPERTY_WAVETABLE; 1745 1746 typedef struct { 1747 KSDATARANGE DataRange; 1748 GUID Technology; 1749 ULONG Channels; 1750 ULONG Notes; 1751 ULONG ChannelMask; 1752 } KSDATARANGE_MUSIC,*PKSDATARANGE_MUSIC; 1753 1754 #define STATIC_KSEVENTSETID_Cyclic \ 1755 0x142C1AC0,0x072A,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 1756 DEFINE_GUIDSTRUCT("142C1AC0-072A-11D0-A5D6-28DB04C10000",KSEVENTSETID_Cyclic); 1757 #define KSEVENTSETID_Cyclic DEFINE_GUIDNAMED(KSEVENTSETID_Cyclic) 1758 1759 typedef enum { 1760 KSEVENT_CYCLIC_TIME_INTERVAL 1761 } KSEVENT_CYCLIC_TIME; 1762 1763 #define STATIC_KSPROPSETID_Cyclic \ 1764 0x3FFEAEA0,0x2BEE,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 1765 DEFINE_GUIDSTRUCT("3FFEAEA0-2BEE-11CF-A5D6-28DB04C10000",KSPROPSETID_Cyclic); 1766 #define KSPROPSETID_Cyclic DEFINE_GUIDNAMED(KSPROPSETID_Cyclic) 1767 1768 typedef enum { 1769 KSPROPERTY_CYCLIC_POSITION 1770 } KSPROPERTY_CYCLIC; 1771 1772 #define STATIC_KSEVENTSETID_AudioControlChange \ 1773 0xE85E9698,0xFA2F,0x11D1,0x95,0xBD,0x00,0xC0,0x4F,0xB9,0x25,0xD3 1774 DEFINE_GUIDSTRUCT("E85E9698-FA2F-11D1-95BD-00C04FB925D3",KSEVENTSETID_AudioControlChange); 1775 #define KSEVENTSETID_AudioControlChange DEFINE_GUIDNAMED(KSEVENTSETID_AudioControlChange) 1776 1777 typedef enum { 1778 KSEVENT_CONTROL_CHANGE 1779 } KSEVENT_AUDIO_CONTROL_CHANGE; 1780 1781 #define STATIC_KSEVENTSETID_LoopedStreaming \ 1782 0x4682B940,0xC6EF,0x11D0,0x96,0xD8,0x00,0xAA,0x00,0x51,0xE5,0x1D 1783 DEFINE_GUIDSTRUCT("4682B940-C6EF-11D0-96D8-00AA0051E51D",KSEVENTSETID_LoopedStreaming); 1784 #define KSEVENTSETID_LoopedStreaming DEFINE_GUIDNAMED(KSEVENTSETID_LoopedStreaming) 1785 1786 typedef enum { 1787 KSEVENT_LOOPEDSTREAMING_POSITION 1788 } KSEVENT_LOOPEDSTREAMING; 1789 1790 typedef struct { 1791 KSEVENTDATA KsEventData; 1792 DWORDLONG Position; 1793 } LOOPEDSTREAMING_POSITION_EVENT_DATA,*PLOOPEDSTREAMING_POSITION_EVENT_DATA; 1794 1795 #define STATIC_KSPROPSETID_Sysaudio \ 1796 0xCBE3FAA0,0xCC75,0x11D0,0xB4,0x65,0x00,0x00,0x1A,0x18,0x18,0xE6 1797 DEFINE_GUIDSTRUCT("CBE3FAA0-CC75-11D0-B465-00001A1818E6",KSPROPSETID_Sysaudio); 1798 #define KSPROPSETID_Sysaudio DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio) 1799 1800 typedef enum { 1801 KSPROPERTY_SYSAUDIO_DEVICE_COUNT = 1, 1802 KSPROPERTY_SYSAUDIO_DEVICE_FRIENDLY_NAME = 2, 1803 KSPROPERTY_SYSAUDIO_DEVICE_INSTANCE = 3, 1804 KSPROPERTY_SYSAUDIO_DEVICE_INTERFACE_NAME = 4, 1805 KSPROPERTY_SYSAUDIO_SELECT_GRAPH = 5, 1806 KSPROPERTY_SYSAUDIO_CREATE_VIRTUAL_SOURCE = 6, 1807 KSPROPERTY_SYSAUDIO_DEVICE_DEFAULT = 7, 1808 KSPROPERTY_SYSAUDIO_INSTANCE_INFO = 14, 1809 KSPROPERTY_SYSAUDIO_COMPONENT_ID = 16 1810 } KSPROPERTY_SYSAUDIO; 1811 1812 typedef struct { 1813 KSPROPERTY Property; 1814 GUID PinCategory; 1815 GUID PinName; 1816 } SYSAUDIO_CREATE_VIRTUAL_SOURCE,*PSYSAUDIO_CREATE_VIRTUAL_SOURCE; 1817 1818 typedef struct { 1819 KSPROPERTY Property; 1820 ULONG PinId; 1821 ULONG NodeId; 1822 ULONG Flags; 1823 ULONG Reserved; 1824 } SYSAUDIO_SELECT_GRAPH,*PSYSAUDIO_SELECT_GRAPH; 1825 1826 typedef struct { 1827 KSPROPERTY Property; 1828 ULONG Flags; 1829 ULONG DeviceNumber; 1830 } SYSAUDIO_INSTANCE_INFO,*PSYSAUDIO_INSTANCE_INFO; 1831 1832 #define SYSAUDIO_FLAGS_DONT_COMBINE_PINS 0x00000001 1833 1834 #define STATIC_KSPROPSETID_Sysaudio_Pin \ 1835 0xA3A53220,0xC6E4,0x11D0,0xB4,0x65,0x00,0x00,0x1A,0x18,0x18,0xE6 1836 DEFINE_GUIDSTRUCT("A3A53220-C6E4-11D0-B465-00001A1818E6",KSPROPSETID_Sysaudio_Pin); 1837 #define KSPROPSETID_Sysaudio_Pin DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio_Pin) 1838 1839 typedef enum { 1840 KSPROPERTY_SYSAUDIO_ATTACH_VIRTUAL_SOURCE = 1 1841 } KSPROPERTY_SYSAUDIO_PIN; 1842 1843 typedef struct { 1844 KSPROPERTY Property; 1845 ULONG MixerPinId; 1846 ULONG Reserved; 1847 } SYSAUDIO_ATTACH_VIRTUAL_SOURCE,*PSYSAUDIO_ATTACH_VIRTUAL_SOURCE; 1848 1849 typedef struct { 1850 KSPROPERTY Property; 1851 ULONG NodeId; 1852 ULONG Reserved; 1853 } KSNODEPROPERTY,*PKSNODEPROPERTY; 1854 1855 typedef struct { 1856 KSNODEPROPERTY NodeProperty; 1857 LONG Channel; 1858 ULONG Reserved; 1859 } KSNODEPROPERTY_AUDIO_CHANNEL,*PKSNODEPROPERTY_AUDIO_CHANNEL; 1860 1861 typedef struct { 1862 KSNODEPROPERTY NodeProperty; 1863 ULONG DevSpecificId; 1864 ULONG DeviceInfo; 1865 ULONG Length; 1866 } KSNODEPROPERTY_AUDIO_DEV_SPECIFIC,*PKSNODEPROPERTY_AUDIO_DEV_SPECIFIC; 1867 1868 typedef struct { 1869 KSNODEPROPERTY NodeProperty; 1870 PVOID ListenerId; 1871 #ifndef _WIN64 1872 ULONG Reserved; 1873 #endif 1874 } KSNODEPROPERTY_AUDIO_3D_LISTENER,*PKSNODEPROPERTY_AUDIO_3D_LISTENER; 1875 1876 typedef struct { 1877 KSNODEPROPERTY NodeProperty; 1878 PVOID AppContext; 1879 ULONG Length; 1880 #ifndef _WIN64 1881 ULONG Reserved; 1882 #endif 1883 } KSNODEPROPERTY_AUDIO_PROPERTY,*PKSNODEPROPERTY_AUDIO_PROPERTY; 1884 1885 #define STATIC_KSPROPSETID_AudioGfx \ 1886 0x79a9312e,0x59ae,0x43b0,0xa3,0x50,0x8b,0x5,0x28,0x4c,0xab,0x24 1887 DEFINE_GUIDSTRUCT("79A9312E-59AE-43b0-A350-8B05284CAB24",KSPROPSETID_AudioGfx); 1888 #define KSPROPSETID_AudioGfx DEFINE_GUIDNAMED(KSPROPSETID_AudioGfx) 1889 1890 typedef enum { 1891 KSPROPERTY_AUDIOGFX_RENDERTARGETDEVICEID, 1892 KSPROPERTY_AUDIOGFX_CAPTURETARGETDEVICEID 1893 } KSPROPERTY_AUDIOGFX; 1894 1895 #define STATIC_KSPROPSETID_Linear \ 1896 0x5A2FFE80,0x16B9,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 1897 DEFINE_GUIDSTRUCT("5A2FFE80-16B9-11D0-A5D6-28DB04C10000",KSPROPSETID_Linear); 1898 #define KSPROPSETID_Linear DEFINE_GUIDNAMED(KSPROPSETID_Linear) 1899 1900 typedef enum { 1901 KSPROPERTY_LINEAR_POSITION 1902 } KSPROPERTY_LINEAR; 1903 1904 #define STATIC_KSDATAFORMAT_TYPE_MUSIC \ 1905 0xE725D360,0x62CC,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 1906 DEFINE_GUIDSTRUCT("E725D360-62CC-11CF-A5D6-28DB04C10000",KSDATAFORMAT_TYPE_MUSIC); 1907 #define KSDATAFORMAT_TYPE_MUSIC DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MUSIC) 1908 1909 #define STATIC_KSDATAFORMAT_TYPE_MIDI \ 1910 0x7364696D,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71 1911 DEFINE_GUIDSTRUCT("7364696D-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_MIDI); 1912 #define KSDATAFORMAT_TYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MIDI) 1913 1914 #define STATIC_KSDATAFORMAT_SUBTYPE_MIDI \ 1915 0x1D262760,0xE957,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 1916 DEFINE_GUIDSTRUCT("1D262760-E957-11CF-A5D6-28DB04C10000",KSDATAFORMAT_SUBTYPE_MIDI); 1917 #define KSDATAFORMAT_SUBTYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI) 1918 1919 #define STATIC_KSDATAFORMAT_SUBTYPE_MIDI_BUS \ 1920 0x2CA15FA0,0x6CFE,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00 1921 DEFINE_GUIDSTRUCT("2CA15FA0-6CFE-11CF-A5D6-28DB04C10000",KSDATAFORMAT_SUBTYPE_MIDI_BUS); 1922 #define KSDATAFORMAT_SUBTYPE_MIDI_BUS DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI_BUS) 1923 1924 #define STATIC_KSDATAFORMAT_SUBTYPE_RIFFMIDI \ 1925 0x4995DAF0,0x9EE6,0x11D0,0xA4,0x0E,0x00,0xA0,0xC9,0x22,0x31,0x96 1926 DEFINE_GUIDSTRUCT("4995DAF0-9EE6-11D0-A40E-00A0C9223196",KSDATAFORMAT_SUBTYPE_RIFFMIDI); 1927 #define KSDATAFORMAT_SUBTYPE_RIFFMIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFFMIDI) 1928 1929 typedef struct { 1930 ULONG TimeDeltaMs; 1931 1932 ULONG ByteCount; 1933 } KSMUSICFORMAT,*PKSMUSICFORMAT; 1934 1935 #define STATIC_KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM \ 1936 0x36523b11,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1937 DEFINE_GUIDSTRUCT("36523B11-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM); 1938 #define KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM) 1939 1940 #define STATIC_KSDATAFORMAT_TYPE_STANDARD_PES_PACKET \ 1941 0x36523b12,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1942 DEFINE_GUIDSTRUCT("36523B12-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_TYPE_STANDARD_PES_PACKET); 1943 #define KSDATAFORMAT_TYPE_STANDARD_PES_PACKET DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_PES_PACKET) 1944 1945 #define STATIC_KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER \ 1946 0x36523b13,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1947 DEFINE_GUIDSTRUCT("36523B13-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER); 1948 #define KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER) 1949 1950 #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO \ 1951 0x36523b21,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1952 DEFINE_GUIDSTRUCT("36523B21-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO); 1953 #define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO) 1954 1955 #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO \ 1956 0x36523b22,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1957 DEFINE_GUIDSTRUCT("36523B22-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO); 1958 #define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO) 1959 1960 #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO \ 1961 0x36523b23,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1962 DEFINE_GUIDSTRUCT("36523B23-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO); 1963 #define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO) 1964 1965 #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO \ 1966 0x36523b24,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1967 DEFINE_GUIDSTRUCT("36523B24-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO); 1968 #define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO) 1969 1970 #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO \ 1971 0x36523b25,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1972 DEFINE_GUIDSTRUCT("36523B25-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO); 1973 #define KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO) 1974 1975 #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO \ 1976 0x36523b31,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1977 DEFINE_GUIDSTRUCT("36523B31-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO); 1978 #define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO) 1979 1980 #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO \ 1981 0x36523b32,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1982 DEFINE_GUIDSTRUCT("36523B32-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO); 1983 #define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO) 1984 1985 #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO \ 1986 0x36523b33,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1987 DEFINE_GUIDSTRUCT("36523B33-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO); 1988 #define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO) 1989 1990 #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO \ 1991 0x36523b34,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1992 DEFINE_GUIDSTRUCT("36523B34-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO); 1993 #define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO) 1994 1995 #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO \ 1996 0x36523b35,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a 1997 DEFINE_GUIDSTRUCT("36523B35-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO); 1998 #define KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO) 1999 2000 #define STATIC_KSDATAFORMAT_SUBTYPE_DSS_VIDEO \ 2001 0xa0af4f81,0xe163,0x11d0,0xba,0xd9,0x00,0x60,0x97,0x44,0x11,0x1a 2002 DEFINE_GUIDSTRUCT("a0af4f81-e163-11d0-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_DSS_VIDEO); 2003 #define KSDATAFORMAT_SUBTYPE_DSS_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DSS_VIDEO) 2004 2005 #define STATIC_KSDATAFORMAT_SUBTYPE_DSS_AUDIO \ 2006 0xa0af4f82,0xe163,0x11d0,0xba,0xd9,0x00,0x60,0x97,0x44,0x11,0x1a 2007 DEFINE_GUIDSTRUCT("a0af4f82-e163-11d0-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_DSS_AUDIO); 2008 #define KSDATAFORMAT_SUBTYPE_DSS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DSS_AUDIO) 2009 2010 #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Packet \ 2011 0xe436eb80,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70 2012 DEFINE_GUIDSTRUCT("e436eb80-524f-11ce-9F53-0020af0ba770",KSDATAFORMAT_SUBTYPE_MPEG1Packet); 2013 #define KSDATAFORMAT_SUBTYPE_MPEG1Packet DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Packet) 2014 2015 #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Payload \ 2016 0xe436eb81,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70 2017 DEFINE_GUIDSTRUCT("e436eb81-524f-11ce-9F53-0020af0ba770",KSDATAFORMAT_SUBTYPE_MPEG1Payload); 2018 #define KSDATAFORMAT_SUBTYPE_MPEG1Payload DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Payload) 2019 2020 #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Video \ 2021 0xe436eb86,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70 2022 DEFINE_GUIDSTRUCT("e436eb86-524f-11ce-9f53-0020af0ba770",KSDATAFORMAT_SUBTYPE_MPEG1Video); 2023 #define KSDATAFORMAT_SUBTYPE_MPEG1Video DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Video) 2024 2025 #define STATIC_KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO \ 2026 0x05589f82,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a 2027 DEFINE_GUIDSTRUCT("05589f82-c356-11ce-bf01-00aa0055595a",KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO); 2028 #define KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO) 2029 2030 #define STATIC_KSDATAFORMAT_TYPE_MPEG2_PES \ 2031 0xe06d8020,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2032 DEFINE_GUIDSTRUCT("e06d8020-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_TYPE_MPEG2_PES); 2033 #define KSDATAFORMAT_TYPE_MPEG2_PES DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_PES) 2034 2035 #define STATIC_KSDATAFORMAT_TYPE_MPEG2_PROGRAM \ 2036 0xe06d8022,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2037 DEFINE_GUIDSTRUCT("e06d8022-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_TYPE_MPEG2_PROGRAM); 2038 #define KSDATAFORMAT_TYPE_MPEG2_PROGRAM DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_PROGRAM) 2039 2040 #define STATIC_KSDATAFORMAT_TYPE_MPEG2_TRANSPORT \ 2041 0xe06d8023,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2042 DEFINE_GUIDSTRUCT("e06d8023-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_TYPE_MPEG2_TRANSPORT); 2043 #define KSDATAFORMAT_TYPE_MPEG2_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_TRANSPORT) 2044 2045 #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO \ 2046 0xe06d8026,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2047 DEFINE_GUIDSTRUCT("e06d8026-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO); 2048 #define KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO) 2049 2050 #define STATIC_KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO \ 2051 0xe06d80e3,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2052 DEFINE_GUIDSTRUCT("e06d80e3-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO); 2053 #define KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO) 2054 2055 #define STATIC_KSPROPSETID_Mpeg2Vid \ 2056 0xC8E11B60,0x0CC9,0x11D0,0xBD,0x69,0x00,0x35,0x05,0xC1,0x03,0xA9 2057 DEFINE_GUIDSTRUCT("C8E11B60-0CC9-11D0-BD69-003505C103A9",KSPROPSETID_Mpeg2Vid); 2058 #define KSPROPSETID_Mpeg2Vid DEFINE_GUIDNAMED(KSPROPSETID_Mpeg2Vid) 2059 2060 typedef enum { 2061 KSPROPERTY_MPEG2VID_MODES, 2062 KSPROPERTY_MPEG2VID_CUR_MODE, 2063 KSPROPERTY_MPEG2VID_4_3_RECT, 2064 KSPROPERTY_MPEG2VID_16_9_RECT, 2065 KSPROPERTY_MPEG2VID_16_9_PANSCAN 2066 } KSPROPERTY_MPEG2VID; 2067 2068 #define KSMPEGVIDMODE_PANSCAN 0x0001 2069 #define KSMPEGVIDMODE_LTRBOX 0x0002 2070 #define KSMPEGVIDMODE_SCALE 0x0004 2071 2072 typedef struct _KSMPEGVID_RECT { 2073 ULONG StartX; 2074 ULONG StartY; 2075 ULONG EndX; 2076 ULONG EndY; 2077 } KSMPEGVID_RECT,*PKSMPEGVID_RECT; 2078 2079 #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO \ 2080 0xe06d802b,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2081 DEFINE_GUIDSTRUCT("e06d802b-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO); 2082 #define KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO) 2083 2084 #define STATIC_KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO \ 2085 0xe06d80e5,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2086 DEFINE_GUIDSTRUCT("e06d80e5-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO); 2087 #define KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO) 2088 2089 #define STATIC_KSDATAFORMAT_SUBTYPE_LPCM_AUDIO \ 2090 0xe06d8032,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2091 DEFINE_GUIDSTRUCT("e06d8032-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_LPCM_AUDIO); 2092 #define KSDATAFORMAT_SUBTYPE_LPCM_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_LPCM_AUDIO) 2093 2094 #define STATIC_KSDATAFORMAT_SPECIFIER_LPCM_AUDIO \ 2095 0xe06d80e6,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2096 DEFINE_GUIDSTRUCT("e06d80e6-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_LPCM_AUDIO); 2097 #define KSDATAFORMAT_SPECIFIER_LPCM_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_LPCM_AUDIO) 2098 2099 #define STATIC_KSDATAFORMAT_SUBTYPE_AC3_AUDIO \ 2100 0xe06d802c,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2101 DEFINE_GUIDSTRUCT("e06d802c-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_AC3_AUDIO); 2102 #define KSDATAFORMAT_SUBTYPE_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_AC3_AUDIO) 2103 2104 #define STATIC_KSDATAFORMAT_SPECIFIER_AC3_AUDIO \ 2105 0xe06d80e4,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2106 DEFINE_GUIDSTRUCT("e06d80e4-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_AC3_AUDIO); 2107 #define KSDATAFORMAT_SPECIFIER_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_AC3_AUDIO) 2108 2109 #define STATIC_KSPROPSETID_AC3 \ 2110 0xBFABE720,0x6E1F,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00 2111 DEFINE_GUIDSTRUCT("BFABE720-6E1F-11D0-BCF2-444553540000",KSPROPSETID_AC3); 2112 #define KSPROPSETID_AC3 DEFINE_GUIDNAMED(KSPROPSETID_AC3) 2113 2114 typedef enum { 2115 KSPROPERTY_AC3_ERROR_CONCEALMENT = 1, 2116 KSPROPERTY_AC3_ALTERNATE_AUDIO, 2117 KSPROPERTY_AC3_DOWNMIX, 2118 KSPROPERTY_AC3_BIT_STREAM_MODE, 2119 KSPROPERTY_AC3_DIALOGUE_LEVEL, 2120 KSPROPERTY_AC3_LANGUAGE_CODE, 2121 KSPROPERTY_AC3_ROOM_TYPE 2122 } KSPROPERTY_AC3; 2123 2124 typedef struct { 2125 WINBOOL fRepeatPreviousBlock; 2126 WINBOOL fErrorInCurrentBlock; 2127 } KSAC3_ERROR_CONCEALMENT,*PKSAC3_ERROR_CONCEALMENT; 2128 2129 typedef struct { 2130 WINBOOL fStereo; 2131 ULONG DualMode; 2132 } KSAC3_ALTERNATE_AUDIO,*PKSAC3_ALTERNATE_AUDIO; 2133 2134 #define KSAC3_ALTERNATE_AUDIO_1 1 2135 #define KSAC3_ALTERNATE_AUDIO_2 2 2136 #define KSAC3_ALTERNATE_AUDIO_BOTH 3 2137 2138 typedef struct { 2139 WINBOOL fDownMix; 2140 WINBOOL fDolbySurround; 2141 } KSAC3_DOWNMIX,*PKSAC3_DOWNMIX; 2142 2143 typedef struct { 2144 LONG BitStreamMode; 2145 } KSAC3_BIT_STREAM_MODE,*PKSAC3_BIT_STREAM_MODE; 2146 2147 #define KSAC3_SERVICE_MAIN_AUDIO 0 2148 #define KSAC3_SERVICE_NO_DIALOG 1 2149 #define KSAC3_SERVICE_VISUALLY_IMPAIRED 2 2150 #define KSAC3_SERVICE_HEARING_IMPAIRED 3 2151 #define KSAC3_SERVICE_DIALOG_ONLY 4 2152 #define KSAC3_SERVICE_COMMENTARY 5 2153 #define KSAC3_SERVICE_EMERGENCY_FLASH 6 2154 #define KSAC3_SERVICE_VOICE_OVER 7 2155 2156 typedef struct { 2157 ULONG DialogueLevel; 2158 } KSAC3_DIALOGUE_LEVEL,*PKSAC3_DIALOGUE_LEVEL; 2159 2160 typedef struct { 2161 WINBOOL fLargeRoom; 2162 } KSAC3_ROOM_TYPE,*PKSAC3_ROOM_TYPE; 2163 2164 #define STATIC_KSDATAFORMAT_SUBTYPE_DTS_AUDIO \ 2165 0xe06d8033,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2166 DEFINE_GUIDSTRUCT("e06d8033-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_DTS_AUDIO); 2167 #define KSDATAFORMAT_SUBTYPE_DTS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DTS_AUDIO) 2168 2169 #define STATIC_KSDATAFORMAT_SUBTYPE_SDDS_AUDIO \ 2170 0xe06d8034,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2171 DEFINE_GUIDSTRUCT("e06d8034-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_SDDS_AUDIO); 2172 #define KSDATAFORMAT_SUBTYPE_SDDS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_SDDS_AUDIO) 2173 2174 #define STATIC_KSPROPSETID_AudioDecoderOut \ 2175 0x6ca6e020,0x43bd,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9 2176 DEFINE_GUIDSTRUCT("6ca6e020-43bd-11d0-bd6a-003505c103a9",KSPROPSETID_AudioDecoderOut); 2177 #define KSPROPSETID_AudioDecoderOut DEFINE_GUIDNAMED(KSPROPSETID_AudioDecoderOut) 2178 2179 typedef enum { 2180 KSPROPERTY_AUDDECOUT_MODES, 2181 KSPROPERTY_AUDDECOUT_CUR_MODE 2182 } KSPROPERTY_AUDDECOUT; 2183 2184 #define KSAUDDECOUTMODE_STEREO_ANALOG 0x0001 2185 #define KSAUDDECOUTMODE_PCM_51 0x0002 2186 #define KSAUDDECOUTMODE_SPDIFF 0x0004 2187 2188 #define STATIC_KSDATAFORMAT_SUBTYPE_SUBPICTURE \ 2189 0xe06d802d,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea 2190 DEFINE_GUIDSTRUCT("e06d802d-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_SUBPICTURE); 2191 #define KSDATAFORMAT_SUBTYPE_SUBPICTURE DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_SUBPICTURE) 2192 2193 #define STATIC_KSPROPSETID_DvdSubPic \ 2194 0xac390460,0x43af,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9 2195 DEFINE_GUIDSTRUCT("ac390460-43af-11d0-bd6a-003505c103a9",KSPROPSETID_DvdSubPic); 2196 #define KSPROPSETID_DvdSubPic DEFINE_GUIDNAMED(KSPROPSETID_DvdSubPic) 2197 2198 typedef enum { 2199 KSPROPERTY_DVDSUBPIC_PALETTE, 2200 KSPROPERTY_DVDSUBPIC_HLI, 2201 KSPROPERTY_DVDSUBPIC_COMPOSIT_ON 2202 } KSPROPERTY_DVDSUBPIC; 2203 2204 typedef struct _KS_DVD_YCrCb { 2205 UCHAR Reserved; 2206 UCHAR Y; 2207 UCHAR Cr; 2208 UCHAR Cb; 2209 } KS_DVD_YCrCb,*PKS_DVD_YCrCb; 2210 2211 typedef struct _KS_DVD_YUV { 2212 UCHAR Reserved; 2213 UCHAR Y; 2214 UCHAR V; 2215 UCHAR U; 2216 } KS_DVD_YUV,*PKS_DVD_YUV; 2217 2218 typedef struct _KSPROPERTY_SPPAL { 2219 KS_DVD_YUV sppal[16]; 2220 } KSPROPERTY_SPPAL,*PKSPROPERTY_SPPAL; 2221 2222 typedef struct _KS_COLCON { 2223 UCHAR emph1col:4; 2224 UCHAR emph2col:4; 2225 UCHAR backcol:4; 2226 UCHAR patcol:4; 2227 UCHAR emph1con:4; 2228 UCHAR emph2con:4; 2229 UCHAR backcon:4; 2230 UCHAR patcon:4; 2231 } KS_COLCON,*PKS_COLCON; 2232 2233 typedef struct _KSPROPERTY_SPHLI { 2234 USHORT HLISS; 2235 USHORT Reserved; 2236 ULONG StartPTM; 2237 ULONG EndPTM; 2238 USHORT StartX; 2239 USHORT StartY; 2240 USHORT StopX; 2241 USHORT StopY; 2242 KS_COLCON ColCon; 2243 } KSPROPERTY_SPHLI,*PKSPROPERTY_SPHLI; 2244 2245 typedef WINBOOL KSPROPERTY_COMPOSIT_ON,*PKSPROPERTY_COMPOSIT_ON; 2246 2247 #define STATIC_KSPROPSETID_CopyProt \ 2248 0x0E8A0A40,0x6AEF,0x11D0,0x9E,0xD0,0x00,0xA0,0x24,0xCA,0x19,0xB3 2249 DEFINE_GUIDSTRUCT("0E8A0A40-6AEF-11D0-9ED0-00A024CA19B3",KSPROPSETID_CopyProt); 2250 #define KSPROPSETID_CopyProt DEFINE_GUIDNAMED(KSPROPSETID_CopyProt) 2251 2252 typedef enum { 2253 KSPROPERTY_DVDCOPY_CHLG_KEY = 0x01, 2254 KSPROPERTY_DVDCOPY_DVD_KEY1, 2255 KSPROPERTY_DVDCOPY_DEC_KEY2, 2256 KSPROPERTY_DVDCOPY_TITLE_KEY, 2257 KSPROPERTY_COPY_MACROVISION, 2258 KSPROPERTY_DVDCOPY_REGION, 2259 KSPROPERTY_DVDCOPY_SET_COPY_STATE, 2260 KSPROPERTY_DVDCOPY_DISC_KEY = 0x80 2261 } KSPROPERTY_COPYPROT; 2262 2263 typedef struct _KS_DVDCOPY_CHLGKEY { 2264 BYTE ChlgKey[10]; 2265 BYTE Reserved[2]; 2266 } KS_DVDCOPY_CHLGKEY,*PKS_DVDCOPY_CHLGKEY; 2267 2268 typedef struct _KS_DVDCOPY_BUSKEY { 2269 BYTE BusKey[5]; 2270 BYTE Reserved[1]; 2271 } KS_DVDCOPY_BUSKEY,*PKS_DVDCOPY_BUSKEY; 2272 2273 typedef struct _KS_DVDCOPY_DISCKEY { 2274 BYTE DiscKey[2048]; 2275 } KS_DVDCOPY_DISCKEY,*PKS_DVDCOPY_DISCKEY; 2276 2277 typedef struct _KS_DVDCOPY_REGION { 2278 UCHAR Reserved; 2279 UCHAR RegionData; 2280 UCHAR Reserved2[2]; 2281 } KS_DVDCOPY_REGION,*PKS_DVDCOPY_REGION; 2282 2283 typedef struct _KS_DVDCOPY_TITLEKEY { 2284 ULONG KeyFlags; 2285 ULONG ReservedNT[2]; 2286 UCHAR TitleKey[6]; 2287 UCHAR Reserved[2]; 2288 } KS_DVDCOPY_TITLEKEY,*PKS_DVDCOPY_TITLEKEY; 2289 2290 typedef struct _KS_COPY_MACROVISION { 2291 ULONG MACROVISIONLevel; 2292 } KS_COPY_MACROVISION,*PKS_COPY_MACROVISION; 2293 2294 typedef struct _KS_DVDCOPY_SET_COPY_STATE { 2295 ULONG DVDCopyState; 2296 } KS_DVDCOPY_SET_COPY_STATE,*PKS_DVDCOPY_SET_COPY_STATE; 2297 2298 typedef enum { 2299 KS_DVDCOPYSTATE_INITIALIZE, 2300 KS_DVDCOPYSTATE_INITIALIZE_TITLE, 2301 KS_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED, 2302 KS_DVDCOPYSTATE_AUTHENTICATION_REQUIRED, 2303 KS_DVDCOPYSTATE_DONE 2304 } KS_DVDCOPYSTATE; 2305 2306 typedef enum { 2307 KS_MACROVISION_DISABLED, 2308 KS_MACROVISION_LEVEL1, 2309 KS_MACROVISION_LEVEL2, 2310 KS_MACROVISION_LEVEL3 2311 } KS_COPY_MACROVISION_LEVEL,*PKS_COPY_MACROVISION_LEVEL; 2312 2313 #define KS_DVD_CGMS_RESERVED_MASK 0x00000078 2314 2315 #define KS_DVD_CGMS_COPY_PROTECT_MASK 0x00000018 2316 #define KS_DVD_CGMS_COPY_PERMITTED 0x00000000 2317 #define KS_DVD_CGMS_COPY_ONCE 0x00000010 2318 #define KS_DVD_CGMS_NO_COPY 0x00000018 2319 2320 #define KS_DVD_COPYRIGHT_MASK 0x00000040 2321 #define KS_DVD_NOT_COPYRIGHTED 0x00000000 2322 #define KS_DVD_COPYRIGHTED 0x00000040 2323 2324 #define KS_DVD_SECTOR_PROTECT_MASK 0x00000020 2325 #define KS_DVD_SECTOR_NOT_PROTECTED 0x00000000 2326 #define KS_DVD_SECTOR_PROTECTED 0x00000020 2327 2328 #define STATIC_KSCATEGORY_TVTUNER \ 2329 0xa799a800,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4 2330 DEFINE_GUIDSTRUCT("a799a800-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_TVTUNER); 2331 #define KSCATEGORY_TVTUNER DEFINE_GUIDNAMED(KSCATEGORY_TVTUNER) 2332 2333 #define STATIC_KSCATEGORY_CROSSBAR \ 2334 0xa799a801,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4 2335 DEFINE_GUIDSTRUCT("a799a801-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_CROSSBAR); 2336 #define KSCATEGORY_CROSSBAR DEFINE_GUIDNAMED(KSCATEGORY_CROSSBAR) 2337 2338 #define STATIC_KSCATEGORY_TVAUDIO \ 2339 0xa799a802,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4 2340 DEFINE_GUIDSTRUCT("a799a802-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_TVAUDIO); 2341 #define KSCATEGORY_TVAUDIO DEFINE_GUIDNAMED(KSCATEGORY_TVAUDIO) 2342 2343 #define STATIC_KSCATEGORY_VPMUX \ 2344 0xa799a803,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4 2345 DEFINE_GUIDSTRUCT("a799a803-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_VPMUX); 2346 #define KSCATEGORY_VPMUX DEFINE_GUIDNAMED(KSCATEGORY_VPMUX) 2347 2348 #define STATIC_KSCATEGORY_VBICODEC \ 2349 0x07dad660,0x22f1,0x11d1,0xa9,0xf4,0x00,0xc0,0x4f,0xbb,0xde,0x8f 2350 DEFINE_GUIDSTRUCT("07dad660-22f1-11d1-a9f4-00c04fbbde8f",KSCATEGORY_VBICODEC); 2351 #define KSCATEGORY_VBICODEC DEFINE_GUIDNAMED(KSCATEGORY_VBICODEC) 2352 2353 #define STATIC_KSDATAFORMAT_SUBTYPE_VPVideo \ 2354 0x5a9b6a40,0x1a22,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a 2355 DEFINE_GUIDSTRUCT("5a9b6a40-1a22-11d1-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_VPVideo); 2356 #define KSDATAFORMAT_SUBTYPE_VPVideo DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_VPVideo) 2357 2358 #define STATIC_KSDATAFORMAT_SUBTYPE_VPVBI \ 2359 0x5a9b6a41,0x1a22,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a 2360 DEFINE_GUIDSTRUCT("5a9b6a41-1a22-11d1-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_VPVBI); 2361 #define KSDATAFORMAT_SUBTYPE_VPVBI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_VPVBI) 2362 2363 #define STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO \ 2364 0x05589f80,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a 2365 DEFINE_GUIDSTRUCT("05589f80-c356-11ce-bf01-00aa0055595a",KSDATAFORMAT_SPECIFIER_VIDEOINFO); 2366 #define KSDATAFORMAT_SPECIFIER_VIDEOINFO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VIDEOINFO) 2367 2368 #define STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO2 \ 2369 0xf72a76A0,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba 2370 DEFINE_GUIDSTRUCT("f72a76A0-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SPECIFIER_VIDEOINFO2); 2371 #define KSDATAFORMAT_SPECIFIER_VIDEOINFO2 DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VIDEOINFO2) 2372 2373 #define STATIC_KSDATAFORMAT_TYPE_ANALOGVIDEO \ 2374 0x0482dde1,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65 2375 DEFINE_GUIDSTRUCT("0482dde1-7817-11cf-8a03-00aa006ecb65",KSDATAFORMAT_TYPE_ANALOGVIDEO); 2376 #define KSDATAFORMAT_TYPE_ANALOGVIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_ANALOGVIDEO) 2377 2378 #define STATIC_KSDATAFORMAT_SPECIFIER_ANALOGVIDEO \ 2379 0x0482dde0,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65 2380 DEFINE_GUIDSTRUCT("0482dde0-7817-11cf-8a03-00aa006ecb65",KSDATAFORMAT_SPECIFIER_ANALOGVIDEO); 2381 #define KSDATAFORMAT_SPECIFIER_ANALOGVIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_ANALOGVIDEO) 2382 2383 #define STATIC_KSDATAFORMAT_TYPE_ANALOGAUDIO \ 2384 0x0482dee1,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65 2385 DEFINE_GUIDSTRUCT("0482DEE1-7817-11cf-8a03-00aa006ecb65",KSDATAFORMAT_TYPE_ANALOGAUDIO); 2386 #define KSDATAFORMAT_TYPE_ANALOGAUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_ANALOGAUDIO) 2387 2388 #define STATIC_KSDATAFORMAT_SPECIFIER_VBI \ 2389 0xf72a76e0,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba 2390 DEFINE_GUIDSTRUCT("f72a76e0-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SPECIFIER_VBI); 2391 #define KSDATAFORMAT_SPECIFIER_VBI DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VBI) 2392 2393 #define STATIC_KSDATAFORMAT_TYPE_VBI \ 2394 0xf72a76e1,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba 2395 DEFINE_GUIDSTRUCT("f72a76e1-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_TYPE_VBI); 2396 #define KSDATAFORMAT_TYPE_VBI DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_VBI) 2397 2398 #define STATIC_KSDATAFORMAT_SUBTYPE_RAW8 \ 2399 0xca20d9a0,0x3e3e,0x11d1,0x9b,0xf9,0x0,0xc0,0x4f,0xbb,0xde,0xbf 2400 DEFINE_GUIDSTRUCT("ca20d9a0-3e3e-11d1-9bf9-00c04fbbdebf",KSDATAFORMAT_SUBTYPE_RAW8); 2401 #define KSDATAFORMAT_SUBTYPE_RAW8 DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RAW8) 2402 2403 #define STATIC_KSDATAFORMAT_SUBTYPE_CC \ 2404 0x33214cc1,0x11f,0x11d2,0xb4,0xb1,0x0,0xa0,0xd1,0x2,0xcf,0xbe 2405 DEFINE_GUIDSTRUCT("33214CC1-011F-11D2-B4B1-00A0D102CFBE",KSDATAFORMAT_SUBTYPE_CC); 2406 #define KSDATAFORMAT_SUBTYPE_CC DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_CC) 2407 2408 #define STATIC_KSDATAFORMAT_SUBTYPE_NABTS \ 2409 0xf72a76e2,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba 2410 DEFINE_GUIDSTRUCT("f72a76e2-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SUBTYPE_NABTS); 2411 #define KSDATAFORMAT_SUBTYPE_NABTS DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_NABTS) 2412 2413 #define STATIC_KSDATAFORMAT_SUBTYPE_TELETEXT \ 2414 0xf72a76e3,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba 2415 DEFINE_GUIDSTRUCT("f72a76e3-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SUBTYPE_TELETEXT); 2416 #define KSDATAFORMAT_SUBTYPE_TELETEXT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_TELETEXT) 2417 2418 #define KS_BI_RGB __MSABI_LONG(0) 2419 #define KS_BI_RLE8 __MSABI_LONG(1) 2420 #define KS_BI_RLE4 __MSABI_LONG(2) 2421 #define KS_BI_BITFIELDS __MSABI_LONG(3) 2422 2423 typedef struct tagKS_RGBQUAD { 2424 BYTE rgbBlue; 2425 BYTE rgbGreen; 2426 BYTE rgbRed; 2427 BYTE rgbReserved; 2428 } KS_RGBQUAD,*PKS_RGBQUAD; 2429 2430 #define KS_iPALETTE_COLORS 256 2431 #define KS_iEGA_COLORS 16 2432 #define KS_iMASK_COLORS 3 2433 #define KS_iTRUECOLOR 16 2434 #define KS_iRED 0 2435 #define KS_iGREEN 1 2436 #define KS_iBLUE 2 2437 #define KS_iPALETTE 8 2438 #define KS_iMAXBITS 8 2439 #define KS_SIZE_EGA_PALETTE (KS_iEGA_COLORS *sizeof(KS_RGBQUAD)) 2440 #define KS_SIZE_PALETTE (KS_iPALETTE_COLORS *sizeof(KS_RGBQUAD)) 2441 2442 typedef struct tagKS_BITMAPINFOHEADER { 2443 DWORD biSize; 2444 LONG biWidth; 2445 LONG biHeight; 2446 WORD biPlanes; 2447 WORD biBitCount; 2448 DWORD biCompression; 2449 DWORD biSizeImage; 2450 LONG biXPelsPerMeter; 2451 LONG biYPelsPerMeter; 2452 DWORD biClrUsed; 2453 DWORD biClrImportant; 2454 } KS_BITMAPINFOHEADER,*PKS_BITMAPINFOHEADER; 2455 2456 typedef struct tag_KS_TRUECOLORINFO { 2457 DWORD dwBitMasks[KS_iMASK_COLORS]; 2458 KS_RGBQUAD bmiColors[KS_iPALETTE_COLORS]; 2459 } KS_TRUECOLORINFO,*PKS_TRUECOLORINFO; 2460 2461 #define KS_WIDTHBYTES(bits) ((DWORD)(((bits)+31) & (~31)) / 8) 2462 #define KS_DIBWIDTHBYTES(bi) (DWORD)KS_WIDTHBYTES((DWORD)(bi).biWidth *(DWORD)(bi).biBitCount) 2463 #define KS__DIBSIZE(bi) (KS_DIBWIDTHBYTES(bi) *(DWORD)(bi).biHeight) 2464 #define KS_DIBSIZE(bi) ((bi).biHeight < 0 ? (-1)*(KS__DIBSIZE(bi)) : KS__DIBSIZE(bi)) 2465 2466 #ifndef __REFERENCE_TIME_DEFINED 2467 #define __REFERENCE_TIME_DEFINED 2468 typedef LONGLONG REFERENCE_TIME; 2469 #endif /*__REFERENCE_TIME_DEFINED*/ 2470 2471 typedef struct tagKS_VIDEOINFOHEADER { 2472 RECT rcSource; 2473 RECT rcTarget; 2474 DWORD dwBitRate; 2475 DWORD dwBitErrorRate; 2476 REFERENCE_TIME AvgTimePerFrame; 2477 KS_BITMAPINFOHEADER bmiHeader; 2478 } KS_VIDEOINFOHEADER,*PKS_VIDEOINFOHEADER; 2479 2480 typedef struct tagKS_VIDEOINFO { 2481 RECT rcSource; 2482 RECT rcTarget; 2483 DWORD dwBitRate; 2484 DWORD dwBitErrorRate; 2485 REFERENCE_TIME AvgTimePerFrame; 2486 KS_BITMAPINFOHEADER bmiHeader; 2487 __C89_NAMELESS union { 2488 KS_RGBQUAD bmiColors[KS_iPALETTE_COLORS]; 2489 DWORD dwBitMasks[KS_iMASK_COLORS]; 2490 KS_TRUECOLORINFO TrueColorInfo; 2491 }; 2492 } KS_VIDEOINFO,*PKS_VIDEOINFO; 2493 2494 #define KS_SIZE_MASKS (KS_iMASK_COLORS *sizeof(DWORD)) 2495 #define KS_SIZE_PREHEADER (FIELD_OFFSET(KS_VIDEOINFOHEADER,bmiHeader)) 2496 2497 #define KS_SIZE_VIDEOHEADER(pbmi) ((pbmi)->bmiHeader.biSize + KS_SIZE_PREHEADER) 2498 2499 typedef struct tagKS_VBIINFOHEADER { 2500 ULONG StartLine; 2501 ULONG EndLine; 2502 ULONG SamplingFrequency; 2503 ULONG MinLineStartTime; 2504 ULONG MaxLineStartTime; 2505 ULONG ActualLineStartTime; 2506 ULONG ActualLineEndTime; 2507 ULONG VideoStandard; 2508 ULONG SamplesPerLine; 2509 ULONG StrideInBytes; 2510 ULONG BufferSize; 2511 } KS_VBIINFOHEADER,*PKS_VBIINFOHEADER; 2512 2513 #define KS_VBIDATARATE_NABTS (__MSABI_LONG(5727272)) 2514 #define KS_VBIDATARATE_CC (__MSABI_LONG(503493)) 2515 #define KS_VBISAMPLINGRATE_4X_NABTS ((__LONG32)(4*KS_VBIDATARATE_NABTS)) 2516 #define KS_VBISAMPLINGRATE_47X_NABTS (__MSABI_LONG(27000000)) 2517 #define KS_VBISAMPLINGRATE_5X_NABTS ((__LONG32)(5*KS_VBIDATARATE_NABTS)) 2518 2519 #define KS_47NABTS_SCALER (KS_VBISAMPLINGRATE_47X_NABTS/(double)KS_VBIDATARATE_NABTS) 2520 2521 typedef struct tagKS_AnalogVideoInfo { 2522 RECT rcSource; 2523 RECT rcTarget; 2524 DWORD dwActiveWidth; 2525 DWORD dwActiveHeight; 2526 REFERENCE_TIME AvgTimePerFrame; 2527 } KS_ANALOGVIDEOINFO,*PKS_ANALOGVIDEOINFO; 2528 2529 #define KS_TVTUNER_CHANGE_BEGIN_TUNE __MSABI_LONG(0x0001) 2530 #define KS_TVTUNER_CHANGE_END_TUNE __MSABI_LONG(0x0002) 2531 2532 typedef struct tagKS_TVTUNER_CHANGE_INFO { 2533 DWORD dwFlags; 2534 DWORD dwCountryCode; 2535 DWORD dwAnalogVideoStandard; 2536 DWORD dwChannel; 2537 } KS_TVTUNER_CHANGE_INFO,*PKS_TVTUNER_CHANGE_INFO; 2538 2539 typedef enum { 2540 KS_MPEG2Level_Low, 2541 KS_MPEG2Level_Main, 2542 KS_MPEG2Level_High1440, 2543 KS_MPEG2Level_High 2544 } KS_MPEG2Level; 2545 2546 typedef enum { 2547 KS_MPEG2Profile_Simple, 2548 KS_MPEG2Profile_Main, 2549 KS_MPEG2Profile_SNRScalable, 2550 KS_MPEG2Profile_SpatiallyScalable, 2551 KS_MPEG2Profile_High 2552 } KS_MPEG2Profile; 2553 2554 #define KS_INTERLACE_IsInterlaced 0x00000001 2555 #define KS_INTERLACE_1FieldPerSample 0x00000002 2556 #define KS_INTERLACE_Field1First 0x00000004 2557 #define KS_INTERLACE_UNUSED 0x00000008 2558 #define KS_INTERLACE_FieldPatternMask 0x00000030 2559 #define KS_INTERLACE_FieldPatField1Only 0x00000000 2560 #define KS_INTERLACE_FieldPatField2Only 0x00000010 2561 #define KS_INTERLACE_FieldPatBothRegular 0x00000020 2562 #define KS_INTERLACE_FieldPatBothIrregular 0x00000030 2563 #define KS_INTERLACE_DisplayModeMask 0x000000c0 2564 #define KS_INTERLACE_DisplayModeBobOnly 0x00000000 2565 #define KS_INTERLACE_DisplayModeWeaveOnly 0x00000040 2566 #define KS_INTERLACE_DisplayModeBobOrWeave 0x00000080 2567 2568 #define KS_MPEG2_DoPanScan 0x00000001 2569 #define KS_MPEG2_DVDLine21Field1 0x00000002 2570 #define KS_MPEG2_DVDLine21Field2 0x00000004 2571 #define KS_MPEG2_SourceIsLetterboxed 0x00000008 2572 #define KS_MPEG2_FilmCameraMode 0x00000010 2573 #define KS_MPEG2_LetterboxAnalogOut 0x00000020 2574 #define KS_MPEG2_DSS_UserData 0x00000040 2575 #define KS_MPEG2_DVB_UserData 0x00000080 2576 #define KS_MPEG2_27MhzTimebase 0x00000100 2577 2578 typedef struct tagKS_VIDEOINFOHEADER2 { 2579 RECT rcSource; 2580 RECT rcTarget; 2581 DWORD dwBitRate; 2582 DWORD dwBitErrorRate; 2583 REFERENCE_TIME AvgTimePerFrame; 2584 DWORD dwInterlaceFlags; 2585 DWORD dwCopyProtectFlags; 2586 DWORD dwPictAspectRatioX; 2587 DWORD dwPictAspectRatioY; 2588 DWORD dwReserved1; 2589 DWORD dwReserved2; 2590 KS_BITMAPINFOHEADER bmiHeader; 2591 } KS_VIDEOINFOHEADER2,*PKS_VIDEOINFOHEADER2; 2592 2593 typedef struct tagKS_MPEG1VIDEOINFO { 2594 KS_VIDEOINFOHEADER hdr; 2595 DWORD dwStartTimeCode; 2596 DWORD cbSequenceHeader; 2597 BYTE bSequenceHeader[1]; 2598 } KS_MPEG1VIDEOINFO,*PKS_MPEG1VIDEOINFO; 2599 2600 #define KS_MAX_SIZE_MPEG1_SEQUENCE_INFO 140 2601 #define KS_SIZE_MPEG1VIDEOINFO(pv) (FIELD_OFFSET(KS_MPEG1VIDEOINFO,bSequenceHeader[0]) + (pv)->cbSequenceHeader) 2602 #define KS_MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader) 2603 2604 typedef struct tagKS_MPEGVIDEOINFO2 { 2605 KS_VIDEOINFOHEADER2 hdr; 2606 DWORD dwStartTimeCode; 2607 DWORD cbSequenceHeader; 2608 DWORD dwProfile; 2609 DWORD dwLevel; 2610 DWORD dwFlags; 2611 DWORD bSequenceHeader[1]; 2612 } KS_MPEGVIDEOINFO2,*PKS_MPEGVIDEOINFO2; 2613 2614 #define KS_SIZE_MPEGVIDEOINFO2(pv) (FIELD_OFFSET(KS_MPEGVIDEOINFO2,bSequenceHeader[0]) + (pv)->cbSequenceHeader) 2615 #define KS_MPEG1_SEQUENCE_INFO(pv) ((const BYTE *)(pv)->bSequenceHeader) 2616 2617 #define KS_MPEGAUDIOINFO_27MhzTimebase 0x00000001 2618 2619 typedef struct tagKS_MPEAUDIOINFO { 2620 DWORD dwFlags; 2621 DWORD dwReserved1; 2622 DWORD dwReserved2; 2623 DWORD dwReserved3; 2624 } KS_MPEGAUDIOINFO,*PKS_MPEGAUDIOINFO; 2625 2626 typedef struct tagKS_DATAFORMAT_VIDEOINFOHEADER { 2627 KSDATAFORMAT DataFormat; 2628 KS_VIDEOINFOHEADER VideoInfoHeader; 2629 } KS_DATAFORMAT_VIDEOINFOHEADER,*PKS_DATAFORMAT_VIDEOINFOHEADER; 2630 2631 typedef struct tagKS_DATAFORMAT_VIDEOINFOHEADER2 { 2632 KSDATAFORMAT DataFormat; 2633 KS_VIDEOINFOHEADER2 VideoInfoHeader2; 2634 } KS_DATAFORMAT_VIDEOINFOHEADER2,*PKS_DATAFORMAT_VIDEOINFOHEADER2; 2635 2636 typedef struct tagKS_DATAFORMAT_VIDEOINFO_PALETTE { 2637 KSDATAFORMAT DataFormat; 2638 KS_VIDEOINFO VideoInfo; 2639 } KS_DATAFORMAT_VIDEOINFO_PALETTE,*PKS_DATAFORMAT_VIDEOINFO_PALETTE; 2640 2641 typedef struct tagKS_DATAFORMAT_VBIINFOHEADER { 2642 KSDATAFORMAT DataFormat; 2643 KS_VBIINFOHEADER VBIInfoHeader; 2644 } KS_DATAFORMAT_VBIINFOHEADER,*PKS_DATAFORMAT_VBIINFOHEADER; 2645 2646 typedef struct _KS_VIDEO_STREAM_CONFIG_CAPS { 2647 GUID guid; 2648 ULONG VideoStandard; 2649 SIZE InputSize; 2650 SIZE MinCroppingSize; 2651 SIZE MaxCroppingSize; 2652 int CropGranularityX; 2653 int CropGranularityY; 2654 int CropAlignX; 2655 int CropAlignY; 2656 SIZE MinOutputSize; 2657 SIZE MaxOutputSize; 2658 int OutputGranularityX; 2659 int OutputGranularityY; 2660 int StretchTapsX; 2661 int StretchTapsY; 2662 int ShrinkTapsX; 2663 int ShrinkTapsY; 2664 LONGLONG MinFrameInterval; 2665 LONGLONG MaxFrameInterval; 2666 LONG MinBitsPerSecond; 2667 LONG MaxBitsPerSecond; 2668 } KS_VIDEO_STREAM_CONFIG_CAPS,*PKS_VIDEO_STREAM_CONFIG_CAPS; 2669 2670 typedef struct tagKS_DATARANGE_VIDEO { 2671 KSDATARANGE DataRange; 2672 WINBOOL bFixedSizeSamples; 2673 WINBOOL bTemporalCompression; 2674 DWORD StreamDescriptionFlags; 2675 DWORD MemoryAllocationFlags; 2676 KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps; 2677 KS_VIDEOINFOHEADER VideoInfoHeader; 2678 } KS_DATARANGE_VIDEO,*PKS_DATARANGE_VIDEO; 2679 2680 typedef struct tagKS_DATARANGE_VIDEO2 { 2681 KSDATARANGE DataRange; 2682 WINBOOL bFixedSizeSamples; 2683 WINBOOL bTemporalCompression; 2684 DWORD StreamDescriptionFlags; 2685 DWORD MemoryAllocationFlags; 2686 KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps; 2687 KS_VIDEOINFOHEADER2 VideoInfoHeader; 2688 } KS_DATARANGE_VIDEO2,*PKS_DATARANGE_VIDEO2; 2689 2690 typedef struct tagKS_DATARANGE_MPEG1_VIDEO { 2691 KSDATARANGE DataRange; 2692 WINBOOL bFixedSizeSamples; 2693 WINBOOL bTemporalCompression; 2694 DWORD StreamDescriptionFlags; 2695 DWORD MemoryAllocationFlags; 2696 KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps; 2697 KS_MPEG1VIDEOINFO VideoInfoHeader; 2698 } KS_DATARANGE_MPEG1_VIDEO,*PKS_DATARANGE_MPEG1_VIDEO; 2699 2700 typedef struct tagKS_DATARANGE_MPEG2_VIDEO { 2701 KSDATARANGE DataRange; 2702 WINBOOL bFixedSizeSamples; 2703 WINBOOL bTemporalCompression; 2704 DWORD StreamDescriptionFlags; 2705 DWORD MemoryAllocationFlags; 2706 KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps; 2707 KS_MPEGVIDEOINFO2 VideoInfoHeader; 2708 } KS_DATARANGE_MPEG2_VIDEO,*PKS_DATARANGE_MPEG2_VIDEO; 2709 2710 typedef struct tagKS_DATARANGE_VIDEO_PALETTE { 2711 KSDATARANGE DataRange; 2712 WINBOOL bFixedSizeSamples; 2713 WINBOOL bTemporalCompression; 2714 DWORD StreamDescriptionFlags; 2715 DWORD MemoryAllocationFlags; 2716 KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps; 2717 KS_VIDEOINFO VideoInfo; 2718 } KS_DATARANGE_VIDEO_PALETTE,*PKS_DATARANGE_VIDEO_PALETTE; 2719 2720 typedef struct tagKS_DATARANGE_VIDEO_VBI { 2721 KSDATARANGE DataRange; 2722 WINBOOL bFixedSizeSamples; 2723 WINBOOL bTemporalCompression; 2724 DWORD StreamDescriptionFlags; 2725 DWORD MemoryAllocationFlags; 2726 KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps; 2727 KS_VBIINFOHEADER VBIInfoHeader; 2728 } KS_DATARANGE_VIDEO_VBI,*PKS_DATARANGE_VIDEO_VBI; 2729 2730 typedef struct tagKS_DATARANGE_ANALOGVIDEO { 2731 KSDATARANGE DataRange; 2732 KS_ANALOGVIDEOINFO AnalogVideoInfo; 2733 } KS_DATARANGE_ANALOGVIDEO,*PKS_DATARANGE_ANALOGVIDEO; 2734 2735 #define KS_VIDEOSTREAM_PREVIEW 0x0001 2736 #define KS_VIDEOSTREAM_CAPTURE 0x0002 2737 #define KS_VIDEOSTREAM_VBI 0x0010 2738 #define KS_VIDEOSTREAM_NABTS 0x0020 2739 #define KS_VIDEOSTREAM_CC 0x0100 2740 #define KS_VIDEOSTREAM_EDS 0x0200 2741 #define KS_VIDEOSTREAM_TELETEXT 0x0400 2742 #define KS_VIDEOSTREAM_STILL 0x1000 2743 #define KS_VIDEOSTREAM_IS_VPE 0x8000 2744 2745 #define KS_VIDEO_ALLOC_VPE_SYSTEM 0x0001 2746 #define KS_VIDEO_ALLOC_VPE_DISPLAY 0x0002 2747 #define KS_VIDEO_ALLOC_VPE_AGP 0x0004 2748 2749 #define STATIC_KSPROPSETID_VBICAP_PROPERTIES \ 2750 0xf162c607,0x7b35,0x496f,0xad,0x7f,0x2d,0xca,0x3b,0x46,0xb7,0x18 2751 DEFINE_GUIDSTRUCT("F162C607-7B35-496f-AD7F-2DCA3B46B718",KSPROPSETID_VBICAP_PROPERTIES); 2752 #define KSPROPSETID_VBICAP_PROPERTIES DEFINE_GUIDNAMED(KSPROPSETID_VBICAP_PROPERTIES) 2753 2754 typedef enum { 2755 KSPROPERTY_VBICAP_PROPERTIES_PROTECTION = 0x01 2756 } KSPROPERTY_VBICAP; 2757 2758 typedef struct _VBICAP_PROPERTIES_PROTECTION_S { 2759 KSPROPERTY Property; 2760 ULONG StreamIndex; 2761 ULONG Status; 2762 } VBICAP_PROPERTIES_PROTECTION_S,*PVBICAP_PROPERTIES_PROTECTION_S; 2763 2764 #define KS_VBICAP_PROTECTION_MV_PRESENT __MSABI_LONG(0x0001) 2765 #define KS_VBICAP_PROTECTION_MV_HARDWARE __MSABI_LONG(0x0002) 2766 #define KS_VBICAP_PROTECTION_MV_DETECTED __MSABI_LONG(0x0004) 2767 2768 #define KS_NABTS_GROUPID_ORIGINAL_CONTENT_BASE 0x800 2769 #define KS_NABTS_GROUPID_ORIGINAL_CONTENT_ADVERTISER_BASE 0x810 2770 2771 #define KS_NABTS_GROUPID_PRODUCTION_COMPANY_CONTENT_BASE 0x820 2772 #define KS_NABTS_GROUPID_PRODUCTION_COMPANY_ADVERTISER_BASE 0x830 2773 2774 #define KS_NABTS_GROUPID_SYNDICATED_SHOW_CONTENT_BASE 0x840 2775 #define KS_NABTS_GROUPID_SYNDICATED_SHOW_ADVERTISER_BASE 0x850 2776 2777 #define KS_NABTS_GROUPID_NETWORK_WIDE_CONTENT_BASE 0x860 2778 #define KS_NABTS_GROUPID_NETWORK_WIDE_ADVERTISER_BASE 0x870 2779 2780 #define KS_NABTS_GROUPID_TELEVISION_STATION_CONTENT_BASE 0x880 2781 #define KS_NABTS_GROUPID_TELEVISION_STATION_ADVERTISER_BASE 0x890 2782 2783 #define KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_CONTENT_BASE 0x8A0 2784 #define KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_ADVERTISER_BASE 0x8B0 2785 2786 #define KS_NABTS_GROUPID_MICROSOFT_RESERVED_TEST_DATA_BASE 0x8F0 2787 2788 #define STATIC_KSDATAFORMAT_TYPE_NABTS \ 2789 0xe757bca0,0x39ac,0x11d1,0xa9,0xf5,0x0,0xc0,0x4f,0xbb,0xde,0x8f 2790 DEFINE_GUIDSTRUCT("E757BCA0-39AC-11d1-A9F5-00C04FBBDE8F",KSDATAFORMAT_TYPE_NABTS); 2791 #define KSDATAFORMAT_TYPE_NABTS DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_NABTS) 2792 2793 #define STATIC_KSDATAFORMAT_SUBTYPE_NABTS_FEC \ 2794 0xe757bca1,0x39ac,0x11d1,0xa9,0xf5,0x0,0xc0,0x4f,0xbb,0xde,0x8f 2795 DEFINE_GUIDSTRUCT("E757BCA1-39AC-11d1-A9F5-00C04FBBDE8F",KSDATAFORMAT_SUBTYPE_NABTS_FEC); 2796 #define KSDATAFORMAT_SUBTYPE_NABTS_FEC DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_NABTS_FEC) 2797 2798 #define MAX_NABTS_VBI_LINES_PER_FIELD 11 2799 #define NABTS_LINES_PER_BUNDLE 16 2800 #define NABTS_PAYLOAD_PER_LINE 28 2801 #define NABTS_BYTES_PER_LINE 36 2802 2803 typedef struct _NABTSFEC_BUFFER { 2804 ULONG dataSize; 2805 USHORT groupID; 2806 USHORT Reserved; 2807 UCHAR data[NABTS_LINES_PER_BUNDLE *NABTS_PAYLOAD_PER_LINE]; 2808 } NABTSFEC_BUFFER,*PNABTSFEC_BUFFER; 2809 2810 #define STATIC_KSPROPSETID_VBICodecFiltering \ 2811 0xcafeb0ca,0x8715,0x11d0,0xbd,0x6a,0x00,0x35,0xc0,0xed,0xba,0xbe 2812 DEFINE_GUIDSTRUCT("cafeb0ca-8715-11d0-bd6a-0035c0edbabe",KSPROPSETID_VBICodecFiltering); 2813 #define KSPROPSETID_VBICodecFiltering DEFINE_GUIDNAMED(KSPROPSETID_VBICodecFiltering) 2814 2815 typedef enum { 2816 KSPROPERTY_VBICODECFILTERING_SCANLINES_REQUESTED_BIT_ARRAY = 0x01, 2817 KSPROPERTY_VBICODECFILTERING_SCANLINES_DISCOVERED_BIT_ARRAY, 2818 KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_REQUESTED_BIT_ARRAY, 2819 KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_DISCOVERED_BIT_ARRAY, 2820 KSPROPERTY_VBICODECFILTERING_STATISTICS 2821 } KSPROPERTY_VBICODECFILTERING; 2822 2823 typedef struct _VBICODECFILTERING_SCANLINES { 2824 DWORD DwordBitArray[32]; 2825 } VBICODECFILTERING_SCANLINES,*PVBICODECFILTERING_SCANLINES; 2826 2827 typedef struct _VBICODECFILTERING_NABTS_SUBSTREAMS { 2828 DWORD SubstreamMask[128]; 2829 } VBICODECFILTERING_NABTS_SUBSTREAMS,*PVBICODECFILTERING_NABTS_SUBSTREAMS; 2830 2831 typedef struct _VBICODECFILTERING_CC_SUBSTREAMS { 2832 DWORD SubstreamMask; 2833 } VBICODECFILTERING_CC_SUBSTREAMS,*PVBICODECFILTERING_CC_SUBSTREAMS; 2834 2835 #define KS_CC_SUBSTREAM_ODD __MSABI_LONG(0x0001) 2836 #define KS_CC_SUBSTREAM_EVEN __MSABI_LONG(0x0002) 2837 2838 #define KS_CC_SUBSTREAM_FIELD1_MASK __MSABI_LONG(0x00F0) 2839 #define KS_CC_SUBSTREAM_SERVICE_CC1 __MSABI_LONG(0x0010) 2840 #define KS_CC_SUBSTREAM_SERVICE_CC2 __MSABI_LONG(0x0020) 2841 #define KS_CC_SUBSTREAM_SERVICE_T1 __MSABI_LONG(0x0040) 2842 #define KS_CC_SUBSTREAM_SERVICE_T2 __MSABI_LONG(0x0080) 2843 2844 #define KS_CC_SUBSTREAM_FIELD2_MASK __MSABI_LONG(0x1F00) 2845 #define KS_CC_SUBSTREAM_SERVICE_CC3 __MSABI_LONG(0x0100) 2846 #define KS_CC_SUBSTREAM_SERVICE_CC4 __MSABI_LONG(0x0200) 2847 #define KS_CC_SUBSTREAM_SERVICE_T3 __MSABI_LONG(0x0400) 2848 #define KS_CC_SUBSTREAM_SERVICE_T4 __MSABI_LONG(0x0800) 2849 #define KS_CC_SUBSTREAM_SERVICE_XDS __MSABI_LONG(0x1000) 2850 2851 #define CC_MAX_HW_DECODE_LINES 12 2852 typedef struct _CC_BYTE_PAIR { 2853 BYTE Decoded[2]; 2854 USHORT Reserved; 2855 } CC_BYTE_PAIR,*PCC_BYTE_PAIR; 2856 2857 typedef struct _CC_HW_FIELD { 2858 VBICODECFILTERING_SCANLINES ScanlinesRequested; 2859 ULONG fieldFlags; 2860 LONGLONG PictureNumber; 2861 CC_BYTE_PAIR Lines[CC_MAX_HW_DECODE_LINES]; 2862 } CC_HW_FIELD,*PCC_HW_FIELD; 2863 2864 #ifndef PACK_PRAGMAS_NOT_SUPPORTED 2865 #include <pshpack1.h> 2866 #endif 2867 typedef struct _NABTS_BUFFER_LINE { 2868 BYTE Confidence; 2869 BYTE Bytes[NABTS_BYTES_PER_LINE]; 2870 } NABTS_BUFFER_LINE,*PNABTS_BUFFER_LINE; 2871 2872 #define NABTS_BUFFER_PICTURENUMBER_SUPPORT 1 2873 typedef struct _NABTS_BUFFER { 2874 VBICODECFILTERING_SCANLINES ScanlinesRequested; 2875 LONGLONG PictureNumber; 2876 NABTS_BUFFER_LINE NabtsLines[MAX_NABTS_VBI_LINES_PER_FIELD]; 2877 } NABTS_BUFFER,*PNABTS_BUFFER; 2878 #ifndef PACK_PRAGMAS_NOT_SUPPORTED 2879 #include <poppack.h> 2880 #endif 2881 2882 #define WST_TVTUNER_CHANGE_BEGIN_TUNE __MSABI_LONG(0x1000) 2883 #define WST_TVTUNER_CHANGE_END_TUNE __MSABI_LONG(0x2000) 2884 2885 #define MAX_WST_VBI_LINES_PER_FIELD 17 2886 #define WST_BYTES_PER_LINE 42 2887 2888 typedef struct _WST_BUFFER_LINE { 2889 BYTE Confidence; 2890 BYTE Bytes[WST_BYTES_PER_LINE]; 2891 } WST_BUFFER_LINE,*PWST_BUFFER_LINE; 2892 2893 typedef struct _WST_BUFFER { 2894 VBICODECFILTERING_SCANLINES ScanlinesRequested; 2895 WST_BUFFER_LINE WstLines[MAX_WST_VBI_LINES_PER_FIELD]; 2896 } WST_BUFFER,*PWST_BUFFER; 2897 2898 typedef struct _VBICODECFILTERING_STATISTICS_COMMON { 2899 DWORD InputSRBsProcessed; 2900 DWORD OutputSRBsProcessed; 2901 DWORD SRBsIgnored; 2902 DWORD InputSRBsMissing; 2903 DWORD OutputSRBsMissing; 2904 DWORD OutputFailures; 2905 DWORD InternalErrors; 2906 DWORD ExternalErrors; 2907 DWORD InputDiscontinuities; 2908 DWORD DSPFailures; 2909 DWORD TvTunerChanges; 2910 DWORD VBIHeaderChanges; 2911 DWORD LineConfidenceAvg; 2912 DWORD BytesOutput; 2913 } VBICODECFILTERING_STATISTICS_COMMON,*PVBICODECFILTERING_STATISTICS_COMMON; 2914 2915 typedef struct _VBICODECFILTERING_STATISTICS_COMMON_PIN { 2916 DWORD SRBsProcessed; 2917 DWORD SRBsIgnored; 2918 DWORD SRBsMissing; 2919 DWORD InternalErrors; 2920 DWORD ExternalErrors; 2921 DWORD Discontinuities; 2922 DWORD LineConfidenceAvg; 2923 DWORD BytesOutput; 2924 } VBICODECFILTERING_STATISTICS_COMMON_PIN,*PVBICODECFILTERING_STATISTICS_COMMON_PIN; 2925 2926 typedef struct _VBICODECFILTERING_STATISTICS_NABTS { 2927 VBICODECFILTERING_STATISTICS_COMMON Common; 2928 DWORD FECBundleBadLines; 2929 DWORD FECQueueOverflows; 2930 DWORD FECCorrectedLines; 2931 DWORD FECUncorrectableLines; 2932 DWORD BundlesProcessed; 2933 DWORD BundlesSent2IP; 2934 DWORD FilteredLines; 2935 } VBICODECFILTERING_STATISTICS_NABTS,*PVBICODECFILTERING_STATISTICS_NABTS; 2936 2937 typedef struct _VBICODECFILTERING_STATISTICS_NABTS_PIN { 2938 VBICODECFILTERING_STATISTICS_COMMON_PIN Common; 2939 } VBICODECFILTERING_STATISTICS_NABTS_PIN,*PVBICODECFILTERING_STATISTICS_NABTS_PIN; 2940 2941 typedef struct _VBICODECFILTERING_STATISTICS_CC { 2942 VBICODECFILTERING_STATISTICS_COMMON Common; 2943 } VBICODECFILTERING_STATISTICS_CC,*PVBICODECFILTERING_STATISTICS_CC; 2944 2945 typedef struct _VBICODECFILTERING_STATISTICS_CC_PIN { 2946 VBICODECFILTERING_STATISTICS_COMMON_PIN Common; 2947 } VBICODECFILTERING_STATISTICS_CC_PIN,*PVBICODECFILTERING_STATISTICS_CC_PIN; 2948 2949 typedef struct _VBICODECFILTERING_STATISTICS_TELETEXT { 2950 VBICODECFILTERING_STATISTICS_COMMON Common; 2951 } VBICODECFILTERING_STATISTICS_TELETEXT,*PVBICODECFILTERING_STATISTICS_TELETEXT; 2952 2953 typedef struct _VBICODECFILTERING_STATISTICS_TELETEXT_PIN { 2954 VBICODECFILTERING_STATISTICS_COMMON_PIN Common; 2955 } VBICODECFILTERING_STATISTICS_TELETEXT_PIN,*PVBICODECFILTERING_STATISTICS_TELETEXT_PIN; 2956 2957 typedef struct { 2958 KSPROPERTY Property; 2959 VBICODECFILTERING_SCANLINES Scanlines; 2960 } KSPROPERTY_VBICODECFILTERING_SCANLINES_S,*PKSPROPERTY_VBICODECFILTERING_SCANLINES_S; 2961 2962 typedef struct { 2963 KSPROPERTY Property; 2964 VBICODECFILTERING_NABTS_SUBSTREAMS Substreams; 2965 } KSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S,*PKSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S; 2966 2967 typedef struct { 2968 KSPROPERTY Property; 2969 VBICODECFILTERING_CC_SUBSTREAMS Substreams; 2970 } KSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S,*PKSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S; 2971 2972 typedef struct { 2973 KSPROPERTY Property; 2974 VBICODECFILTERING_STATISTICS_COMMON Statistics; 2975 } KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S; 2976 2977 typedef struct { 2978 KSPROPERTY Property; 2979 VBICODECFILTERING_STATISTICS_COMMON_PIN Statistics; 2980 } KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S; 2981 2982 typedef struct { 2983 KSPROPERTY Property; 2984 VBICODECFILTERING_STATISTICS_NABTS Statistics; 2985 } KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S; 2986 2987 typedef struct { 2988 KSPROPERTY Property; 2989 VBICODECFILTERING_STATISTICS_NABTS_PIN Statistics; 2990 } KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S; 2991 2992 typedef struct { 2993 KSPROPERTY Property; 2994 VBICODECFILTERING_STATISTICS_CC Statistics; 2995 } KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S; 2996 2997 typedef struct { 2998 KSPROPERTY Property; 2999 VBICODECFILTERING_STATISTICS_CC_PIN Statistics; 3000 } KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S; 3001 3002 #define STATIC_PINNAME_VIDEO_CAPTURE \ 3003 0xfb6c4281,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba 3004 #define STATIC_PINNAME_CAPTURE STATIC_PINNAME_VIDEO_CAPTURE 3005 DEFINE_GUIDSTRUCT("FB6C4281-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_CAPTURE); 3006 #define PINNAME_VIDEO_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CAPTURE) 3007 #define PINNAME_CAPTURE PINNAME_VIDEO_CAPTURE 3008 3009 #define STATIC_PINNAME_VIDEO_CC_CAPTURE \ 3010 0x1aad8061,0x12d,0x11d2,0xb4,0xb1,0x0,0xa0,0xd1,0x2,0xcf,0xbe 3011 #define STATIC_PINNAME_CC_CAPTURE STATIC_PINNAME_VIDEO_CC_CAPTURE 3012 DEFINE_GUIDSTRUCT("1AAD8061-012D-11d2-B4B1-00A0D102CFBE",PINNAME_VIDEO_CC_CAPTURE); 3013 #define PINNAME_VIDEO_CC_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CC_CAPTURE) 3014 3015 #define STATIC_PINNAME_VIDEO_NABTS_CAPTURE \ 3016 0x29703660,0x498a,0x11d2,0xb4,0xb1,0x0,0xa0,0xd1,0x2,0xcf,0xbe 3017 #define STATIC_PINNAME_NABTS_CAPTURE STATIC_PINNAME_VIDEO_NABTS_CAPTURE 3018 DEFINE_GUIDSTRUCT("29703660-498A-11d2-B4B1-00A0D102CFBE",PINNAME_VIDEO_NABTS_CAPTURE); 3019 #define PINNAME_VIDEO_NABTS_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_NABTS_CAPTURE) 3020 3021 #define STATIC_PINNAME_VIDEO_PREVIEW \ 3022 0xfb6c4282,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba 3023 #define STATIC_PINNAME_PREVIEW STATIC_PINNAME_VIDEO_PREVIEW 3024 DEFINE_GUIDSTRUCT("FB6C4282-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_PREVIEW); 3025 #define PINNAME_VIDEO_PREVIEW DEFINE_GUIDNAMED(PINNAME_VIDEO_PREVIEW) 3026 #define PINNAME_PREVIEW PINNAME_VIDEO_PREVIEW 3027 3028 #define STATIC_PINNAME_VIDEO_ANALOGVIDEOIN \ 3029 0xfb6c4283,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba 3030 DEFINE_GUIDSTRUCT("FB6C4283-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_ANALOGVIDEOIN); 3031 #define PINNAME_VIDEO_ANALOGVIDEOIN DEFINE_GUIDNAMED(PINNAME_VIDEO_ANALOGVIDEOIN) 3032 3033 #define STATIC_PINNAME_VIDEO_VBI \ 3034 0xfb6c4284,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba 3035 DEFINE_GUIDSTRUCT("FB6C4284-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VBI); 3036 #define PINNAME_VIDEO_VBI DEFINE_GUIDNAMED(PINNAME_VIDEO_VBI) 3037 3038 #define STATIC_PINNAME_VIDEO_VIDEOPORT \ 3039 0xfb6c4285,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba 3040 DEFINE_GUIDSTRUCT("FB6C4285-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VIDEOPORT); 3041 #define PINNAME_VIDEO_VIDEOPORT DEFINE_GUIDNAMED(PINNAME_VIDEO_VIDEOPORT) 3042 3043 #define STATIC_PINNAME_VIDEO_NABTS \ 3044 0xfb6c4286,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba 3045 DEFINE_GUIDSTRUCT("FB6C4286-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_NABTS); 3046 #define PINNAME_VIDEO_NABTS DEFINE_GUIDNAMED(PINNAME_VIDEO_NABTS) 3047 3048 #define STATIC_PINNAME_VIDEO_EDS \ 3049 0xfb6c4287,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba 3050 DEFINE_GUIDSTRUCT("FB6C4287-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_EDS); 3051 #define PINNAME_VIDEO_EDS DEFINE_GUIDNAMED(PINNAME_VIDEO_EDS) 3052 3053 #define STATIC_PINNAME_VIDEO_TELETEXT \ 3054 0xfb6c4288,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba 3055 DEFINE_GUIDSTRUCT("FB6C4288-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_TELETEXT); 3056 #define PINNAME_VIDEO_TELETEXT DEFINE_GUIDNAMED(PINNAME_VIDEO_TELETEXT) 3057 3058 #define STATIC_PINNAME_VIDEO_CC \ 3059 0xfb6c4289,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba 3060 DEFINE_GUIDSTRUCT("FB6C4289-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_CC); 3061 #define PINNAME_VIDEO_CC DEFINE_GUIDNAMED(PINNAME_VIDEO_CC) 3062 3063 #define STATIC_PINNAME_VIDEO_STILL \ 3064 0xfb6c428A,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba 3065 DEFINE_GUIDSTRUCT("FB6C428A-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_STILL); 3066 #define PINNAME_VIDEO_STILL DEFINE_GUIDNAMED(PINNAME_VIDEO_STILL) 3067 3068 #define STATIC_PINNAME_VIDEO_TIMECODE \ 3069 0xfb6c428B,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba 3070 DEFINE_GUIDSTRUCT("FB6C428B-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_TIMECODE); 3071 #define PINNAME_VIDEO_TIMECODE DEFINE_GUIDNAMED(PINNAME_VIDEO_TIMECODE) 3072 3073 #define STATIC_PINNAME_VIDEO_VIDEOPORT_VBI \ 3074 0xfb6c428C,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba 3075 DEFINE_GUIDSTRUCT("FB6C428C-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VIDEOPORT_VBI); 3076 #define PINNAME_VIDEO_VIDEOPORT_VBI DEFINE_GUIDNAMED(PINNAME_VIDEO_VIDEOPORT_VBI) 3077 3078 3079 typedef enum { 3080 KS_CAPTURE_ALLOC_INVALID = 0, 3081 KS_CAPTURE_ALLOC_SYSTEM = 0x0001, 3082 KS_CAPTURE_ALLOC_VRAM = 0x0002, 3083 KS_CAPTURE_ALLOC_SYSTEM_AGP = 0x0004, 3084 KS_CAPTURE_ALLOC_VRAM_MAPPED = 0x0008 3085 } CAPTURE_MEMORY_ALLOCATION_FLAGS,*PCAPTURE_MEMORY_ALLOCATION_FLAGS; 3086 3087 #define STATIC_KSPROPSETID_VramCapture \ 3088 0xe73face3,0x2880,0x4902,0xb7,0x99,0x88,0xd0,0xcd,0x63,0x4e,0xf 3089 DEFINE_GUIDSTRUCT("E73FACE3-2880-4902-B799-88D0CD634E0F", KSPROPSETID_VramCapture); 3090 #define KSPROPSETID_VramCapture DEFINE_GUIDNAMED(KSPROPSETID_VramCapture) 3091 3092 typedef enum { 3093 KSPROPERTY_DISPLAY_ADAPTER_GUID = 1, 3094 KSPROPERTY_PREFERRED_CAPTURE_SURFACE, 3095 KSPROPERTY_CURRENT_CAPTURE_SURFACE, 3096 KSPROPERTY_MAP_CAPTURE_HANDLE_TO_VRAM_ADDRESS 3097 } KSPROPERTY_VIDMEM_TRANSPORT; 3098 3099 #define DEFINE_KSPROPERTY_ITEM_DISPLAY_ADAPTER_GUID(GetHandler) \ 3100 DEFINE_KSPROPERTY_ITEM( \ 3101 KSPROPERTY_DISPLAY_ADAPTER_GUID, \ 3102 (GetHandler), \ 3103 sizeof(KSPROPERTY), \ 3104 sizeof(GUID), \ 3105 NULL,NULL,0,NULL,NULL,0) 3106 #define DEFINE_KSPROPERTY_PREFERRED_CAPTURE_SURFACE(GetHandler) \ 3107 DEFINE_KSPROPERTY_ITEM( \ 3108 KSPROPERTY_PREFERRED_CAPTURE_SURFACE, \ 3109 (GetHandler), \ 3110 sizeof(KSPROPERTY), \ 3111 sizeof(CAPTURE_MEMORY_ALLOCATION_FLAGS),\ 3112 NULL,NULL,0,NULL,NULL,0) 3113 #define DEFINE_KSPROPERTY_CURRENT_CAPTURE_SURFACE(GetHandler,SetHandler)\ 3114 DEFINE_KSPROPERTY_ITEM( \ 3115 KSPROPERTY_CURRENT_CAPTURE_SURFACE, \ 3116 (GetHandler), \ 3117 sizeof(KSPROPERTY), \ 3118 sizeof(CAPTURE_MEMORY_ALLOCATION_FLAGS),\ 3119 (SetHandler),NULL,0,NULL,NULL,0) 3120 #define DEFINE_KSPROPERTY_MAP_CAPTURE_HANDLE_TO_VRAM_ADDRESS(GetHandler)\ 3121 DEFINE_KSPROPERTY_ITEM( \ 3122 KSPROPERTY_MAP_CAPTURE_HANDLE_TO_VRAM_ADDRESS,\ 3123 (GetHandler), \ 3124 sizeof(VRAM_SURFACE_INFO_PROPERTY_S), \ 3125 sizeof(DWORD), \ 3126 NULL,NULL,0,NULL,NULL,0) 3127 3128 typedef struct { 3129 UINT_PTR hSurface; 3130 LONGLONG VramPhysicalAddress; 3131 DWORD cbCaptured; 3132 DWORD dwWidth; 3133 DWORD dwHeight; 3134 DWORD dwLinearSize; 3135 LONG lPitch; 3136 ULONGLONG ullReserved[16]; 3137 } VRAM_SURFACE_INFO,*PVRAM_SURFACE_INFO; 3138 3139 typedef struct { 3140 KSPROPERTY Property; 3141 PVRAM_SURFACE_INFO pVramSurfaceInfo; 3142 } VRAM_SURFACE_INFO_PROPERTY_S,*PVRAM_SURFACE_INFO_PROPERTY_S; 3143 3144 3145 #define KS_VIDEO_FLAG_FRAME __MSABI_LONG(0x0000) 3146 #define KS_VIDEO_FLAG_FIELD1 __MSABI_LONG(0x0001) 3147 #define KS_VIDEO_FLAG_FIELD2 __MSABI_LONG(0x0002) 3148 3149 #define KS_VIDEO_FLAG_I_FRAME __MSABI_LONG(0x0000) 3150 #define KS_VIDEO_FLAG_P_FRAME __MSABI_LONG(0x0010) 3151 #define KS_VIDEO_FLAG_B_FRAME __MSABI_LONG(0x0020) 3152 3153 typedef struct tagKS_FRAME_INFO { 3154 ULONG ExtendedHeaderSize; 3155 DWORD dwFrameFlags; 3156 LONGLONG PictureNumber; 3157 LONGLONG DropCount; 3158 HANDLE hDirectDraw; 3159 HANDLE hSurfaceHandle; 3160 RECT DirectDrawRect; 3161 3162 DWORD Reserved1; 3163 DWORD Reserved2; 3164 DWORD Reserved3; 3165 DWORD Reserved4; 3166 } KS_FRAME_INFO,*PKS_FRAME_INFO; 3167 3168 #define KS_VBI_FLAG_FIELD1 __MSABI_LONG(0x0001) 3169 #define KS_VBI_FLAG_FIELD2 __MSABI_LONG(0x0002) 3170 3171 #define KS_VBI_FLAG_MV_PRESENT __MSABI_LONG(0x0100) 3172 #define KS_VBI_FLAG_MV_HARDWARE __MSABI_LONG(0x0200) 3173 #define KS_VBI_FLAG_MV_DETECTED __MSABI_LONG(0x0400) 3174 3175 #define KS_VBI_FLAG_TVTUNER_CHANGE __MSABI_LONG(0x0010) 3176 #define KS_VBI_FLAG_VBIINFOHEADER_CHANGE __MSABI_LONG(0x0020) 3177 3178 typedef struct tagKS_VBI_FRAME_INFO { 3179 ULONG ExtendedHeaderSize; 3180 DWORD dwFrameFlags; 3181 LONGLONG PictureNumber; 3182 LONGLONG DropCount; 3183 DWORD dwSamplingFrequency; 3184 KS_TVTUNER_CHANGE_INFO TvTunerChangeInfo; 3185 KS_VBIINFOHEADER VBIInfoHeader; 3186 } KS_VBI_FRAME_INFO,*PKS_VBI_FRAME_INFO; 3187 3188 typedef enum 3189 { 3190 KS_AnalogVideo_None = 0x00000000, 3191 KS_AnalogVideo_NTSC_M = 0x00000001, 3192 KS_AnalogVideo_NTSC_M_J = 0x00000002, 3193 KS_AnalogVideo_NTSC_433 = 0x00000004, 3194 KS_AnalogVideo_PAL_B = 0x00000010, 3195 KS_AnalogVideo_PAL_D = 0x00000020, 3196 KS_AnalogVideo_PAL_G = 0x00000040, 3197 KS_AnalogVideo_PAL_H = 0x00000080, 3198 KS_AnalogVideo_PAL_I = 0x00000100, 3199 KS_AnalogVideo_PAL_M = 0x00000200, 3200 KS_AnalogVideo_PAL_N = 0x00000400, 3201 KS_AnalogVideo_PAL_60 = 0x00000800, 3202 KS_AnalogVideo_SECAM_B = 0x00001000, 3203 KS_AnalogVideo_SECAM_D = 0x00002000, 3204 KS_AnalogVideo_SECAM_G = 0x00004000, 3205 KS_AnalogVideo_SECAM_H = 0x00008000, 3206 KS_AnalogVideo_SECAM_K = 0x00010000, 3207 KS_AnalogVideo_SECAM_K1 = 0x00020000, 3208 KS_AnalogVideo_SECAM_L = 0x00040000, 3209 KS_AnalogVideo_SECAM_L1 = 0x00080000, 3210 KS_AnalogVideo_PAL_N_COMBO = 0x00100000 3211 } KS_AnalogVideoStandard; 3212 3213 #define KS_AnalogVideo_NTSC_Mask 0x00000007 3214 #define KS_AnalogVideo_PAL_Mask 0x00100FF0 3215 #define KS_AnalogVideo_SECAM_Mask 0x000FF000 3216 3217 #define STATIC_PROPSETID_ALLOCATOR_CONTROL \ 3218 0x53171960,0x148e,0x11d2,0x99,0x79,0x0,0x0,0xc0,0xcc,0x16,0xba 3219 DEFINE_GUIDSTRUCT("53171960-148E-11d2-9979-0000C0CC16BA",PROPSETID_ALLOCATOR_CONTROL); 3220 #define PROPSETID_ALLOCATOR_CONTROL DEFINE_GUIDNAMED(PROPSETID_ALLOCATOR_CONTROL) 3221 3222 typedef enum { 3223 KSPROPERTY_ALLOCATOR_CONTROL_HONOR_COUNT, 3224 KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE, 3225 KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS, 3226 KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE 3227 } KSPROPERTY_ALLOCATOR_CONTROL; 3228 3229 typedef struct { 3230 ULONG CX; 3231 ULONG CY; 3232 } KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S,*PKSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S; 3233 3234 typedef struct { 3235 ULONG InterleavedCapSupported; 3236 } KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S,*PKSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S; 3237 3238 typedef struct { 3239 ULONG InterleavedCapPossible; 3240 } KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S,*PKSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S; 3241 3242 #define STATIC_PROPSETID_VIDCAP_VIDEOPROCAMP \ 3243 0xC6E13360,0x30AC,0x11d0,0xa1,0x8c,0x00,0xA0,0xC9,0x11,0x89,0x56 3244 DEFINE_GUIDSTRUCT("C6E13360-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEOPROCAMP); 3245 #define PROPSETID_VIDCAP_VIDEOPROCAMP DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOPROCAMP) 3246 3247 typedef enum { 3248 KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS, 3249 KSPROPERTY_VIDEOPROCAMP_CONTRAST, 3250 KSPROPERTY_VIDEOPROCAMP_HUE, 3251 KSPROPERTY_VIDEOPROCAMP_SATURATION, 3252 KSPROPERTY_VIDEOPROCAMP_SHARPNESS, 3253 KSPROPERTY_VIDEOPROCAMP_GAMMA, 3254 KSPROPERTY_VIDEOPROCAMP_COLORENABLE, 3255 KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE, 3256 KSPROPERTY_VIDEOPROCAMP_BACKLIGHT_COMPENSATION, 3257 KSPROPERTY_VIDEOPROCAMP_GAIN, 3258 KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER, 3259 KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER_LIMIT, 3260 KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE_COMPONENT, 3261 KSPROPERTY_VIDEOPROCAMP_POWERLINE_FREQUENCY 3262 } KSPROPERTY_VIDCAP_VIDEOPROCAMP; 3263 3264 typedef struct { 3265 KSPROPERTY Property; 3266 LONG Value; 3267 ULONG Flags; 3268 ULONG Capabilities; 3269 } KSPROPERTY_VIDEOPROCAMP_S,*PKSPROPERTY_VIDEOPROCAMP_S; 3270 3271 typedef struct { 3272 KSP_NODE NodeProperty; 3273 LONG Value; 3274 ULONG Flags; 3275 ULONG Capabilities; 3276 } KSPROPERTY_VIDEOPROCAMP_NODE_S,*PKSPROPERTY_VIDEOPROCAMP_NODE_S; 3277 3278 typedef struct { 3279 KSPROPERTY Property; 3280 LONG Value1; 3281 ULONG Flags; 3282 ULONG Capabilities; 3283 LONG Value2; 3284 } KSPROPERTY_VIDEOPROCAMP_S2,*PKSPROPERTY_VIDEOPROCAMP_S2; 3285 3286 typedef struct { 3287 KSP_NODE NodeProperty; 3288 LONG Value1; 3289 ULONG Flags; 3290 ULONG Capabilities; 3291 LONG Value2; 3292 } KSPROPERTY_VIDEOPROCAMP_NODE_S2,*PKSPROPERTY_VIDEOPROCAMP_NODE_S2; 3293 3294 #define KSPROPERTY_VIDEOPROCAMP_FLAGS_AUTO 0X0001L 3295 #define KSPROPERTY_VIDEOPROCAMP_FLAGS_MANUAL 0X0002L 3296 3297 #define STATIC_PROPSETID_VIDCAP_SELECTOR \ 3298 0x1ABDAECA,0x68B6,0x4F83,0x93,0x71,0xB4,0x13,0x90,0x7C,0x7B,0x9F 3299 DEFINE_GUIDSTRUCT("1ABDAECA-68B6-4F83-9371-B413907C7B9F",PROPSETID_VIDCAP_SELECTOR); 3300 #define PROPSETID_VIDCAP_SELECTOR DEFINE_GUIDNAMED(PROPSETID_VIDCAP_SELECTOR) 3301 3302 typedef enum { 3303 KSPROPERTY_SELECTOR_SOURCE_NODE_ID, 3304 KSPROPERTY_SELECTOR_NUM_SOURCES 3305 } KSPROPERTY_VIDCAP_SELECTOR,*PKSPROPERTY_VIDCAP_SELECTOR; 3306 3307 typedef struct { 3308 KSPROPERTY Property; 3309 LONG Value; 3310 ULONG Flags; 3311 ULONG Capabilities; 3312 } KSPROPERTY_SELECTOR_S,*PKSPROPERTY_SELECTOR_S; 3313 3314 typedef struct { 3315 KSP_NODE NodeProperty; 3316 LONG Value; 3317 ULONG Flags; 3318 ULONG Capabilities; 3319 } KSPROPERTY_SELECTOR_NODE_S,*PKSPROPERTY_SELECTOR_NODE_S; 3320 3321 #define STATIC_PROPSETID_TUNER \ 3322 0x6a2e0605,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56 3323 DEFINE_GUIDSTRUCT("6a2e0605-28e4-11d0-a18c-00a0c9118956",PROPSETID_TUNER); 3324 #define PROPSETID_TUNER DEFINE_GUIDNAMED(PROPSETID_TUNER) 3325 3326 typedef enum { 3327 KSPROPERTY_TUNER_CAPS, 3328 KSPROPERTY_TUNER_MODE_CAPS, 3329 KSPROPERTY_TUNER_MODE, 3330 KSPROPERTY_TUNER_STANDARD, 3331 KSPROPERTY_TUNER_FREQUENCY, 3332 KSPROPERTY_TUNER_INPUT, 3333 KSPROPERTY_TUNER_STATUS, 3334 KSPROPERTY_TUNER_IF_MEDIUM 3335 } KSPROPERTY_TUNER; 3336 3337 typedef enum { 3338 KSPROPERTY_TUNER_MODE_TV = 0X0001, 3339 KSPROPERTY_TUNER_MODE_FM_RADIO = 0X0002, 3340 KSPROPERTY_TUNER_MODE_AM_RADIO = 0X0004, 3341 KSPROPERTY_TUNER_MODE_DSS = 0X0008, 3342 KSPROPERTY_TUNER_MODE_ATSC = 0X0010 3343 } KSPROPERTY_TUNER_MODES; 3344 3345 typedef enum { 3346 KS_TUNER_TUNING_EXACT = 1, 3347 KS_TUNER_TUNING_FINE, 3348 KS_TUNER_TUNING_COARSE 3349 } KS_TUNER_TUNING_FLAGS; 3350 3351 typedef enum { 3352 KS_TUNER_STRATEGY_PLL = 0X01, 3353 KS_TUNER_STRATEGY_SIGNAL_STRENGTH = 0X02, 3354 KS_TUNER_STRATEGY_DRIVER_TUNES = 0X04 3355 } KS_TUNER_STRATEGY; 3356 3357 typedef struct { 3358 KSPROPERTY Property; 3359 ULONG ModesSupported; 3360 KSPIN_MEDIUM VideoMedium; 3361 KSPIN_MEDIUM TVAudioMedium; 3362 KSPIN_MEDIUM RadioAudioMedium; 3363 } KSPROPERTY_TUNER_CAPS_S,*PKSPROPERTY_TUNER_CAPS_S; 3364 3365 typedef struct { 3366 KSPROPERTY Property; 3367 KSPIN_MEDIUM IFMedium; 3368 } KSPROPERTY_TUNER_IF_MEDIUM_S,*PKSPROPERTY_TUNER_IF_MEDIUM_S; 3369 3370 typedef struct { 3371 KSPROPERTY Property; 3372 ULONG Mode; 3373 ULONG StandardsSupported; 3374 ULONG MinFrequency; 3375 ULONG MaxFrequency; 3376 ULONG TuningGranularity; 3377 ULONG NumberOfInputs; 3378 ULONG SettlingTime; 3379 ULONG Strategy; 3380 } KSPROPERTY_TUNER_MODE_CAPS_S,*PKSPROPERTY_TUNER_MODE_CAPS_S; 3381 3382 typedef struct { 3383 KSPROPERTY Property; 3384 ULONG Mode; 3385 } KSPROPERTY_TUNER_MODE_S,*PKSPROPERTY_TUNER_MODE_S; 3386 3387 typedef struct { 3388 KSPROPERTY Property; 3389 ULONG Frequency; 3390 ULONG LastFrequency; 3391 ULONG TuningFlags; 3392 ULONG VideoSubChannel; 3393 ULONG AudioSubChannel; 3394 ULONG Channel; 3395 ULONG Country; 3396 } KSPROPERTY_TUNER_FREQUENCY_S,*PKSPROPERTY_TUNER_FREQUENCY_S; 3397 3398 typedef struct { 3399 KSPROPERTY Property; 3400 ULONG Standard; 3401 } KSPROPERTY_TUNER_STANDARD_S,*PKSPROPERTY_TUNER_STANDARD_S; 3402 3403 typedef struct { 3404 KSPROPERTY Property; 3405 ULONG InputIndex; 3406 } KSPROPERTY_TUNER_INPUT_S,*PKSPROPERTY_TUNER_INPUT_S; 3407 3408 typedef struct { 3409 KSPROPERTY Property; 3410 ULONG CurrentFrequency; 3411 ULONG PLLOffset; 3412 ULONG SignalStrength; 3413 ULONG Busy; 3414 } KSPROPERTY_TUNER_STATUS_S,*PKSPROPERTY_TUNER_STATUS_S; 3415 3416 #define STATIC_EVENTSETID_TUNER \ 3417 0x6a2e0606,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56 3418 DEFINE_GUIDSTRUCT("6a2e0606-28e4-11d0-a18c-00a0c9118956",EVENTSETID_TUNER); 3419 #define EVENTSETID_TUNER DEFINE_GUIDNAMED(EVENTSETID_TUNER) 3420 3421 typedef enum { 3422 KSEVENT_TUNER_CHANGED 3423 } KSEVENT_TUNER; 3424 3425 #define STATIC_KSNODETYPE_VIDEO_STREAMING \ 3426 0xDFF229E1,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96 3427 DEFINE_GUIDSTRUCT("DFF229E1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_STREAMING); 3428 #define KSNODETYPE_VIDEO_STREAMING DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_STREAMING) 3429 3430 #define STATIC_KSNODETYPE_VIDEO_INPUT_TERMINAL \ 3431 0xDFF229E2,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96 3432 DEFINE_GUIDSTRUCT("DFF229E2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_INPUT_TERMINAL); 3433 #define KSNODETYPE_VIDEO_INPUT_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_INPUT_TERMINAL) 3434 3435 #define STATIC_KSNODETYPE_VIDEO_OUTPUT_TERMINAL \ 3436 0xDFF229E3,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96 3437 DEFINE_GUIDSTRUCT("DFF229E3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_OUTPUT_TERMINAL); 3438 #define KSNODETYPE_VIDEO_OUTPUT_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_OUTPUT_TERMINAL) 3439 3440 #define STATIC_KSNODETYPE_VIDEO_SELECTOR \ 3441 0xDFF229E4,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96 3442 DEFINE_GUIDSTRUCT("DFF229E4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_SELECTOR); 3443 #define KSNODETYPE_VIDEO_SELECTOR DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_SELECTOR) 3444 3445 #define STATIC_KSNODETYPE_VIDEO_PROCESSING \ 3446 0xDFF229E5,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96 3447 DEFINE_GUIDSTRUCT("DFF229E5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_PROCESSING); 3448 #define KSNODETYPE_VIDEO_PROCESSING DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_PROCESSING) 3449 3450 #define STATIC_KSNODETYPE_VIDEO_CAMERA_TERMINAL \ 3451 0xDFF229E6,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96 3452 DEFINE_GUIDSTRUCT("DFF229E6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_CAMERA_TERMINAL); 3453 #define KSNODETYPE_VIDEO_CAMERA_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_CAMERA_TERMINAL) 3454 3455 #define STATIC_KSNODETYPE_VIDEO_INPUT_MTT \ 3456 0xDFF229E7,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96 3457 DEFINE_GUIDSTRUCT("DFF229E7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_INPUT_MTT); 3458 #define KSNODETYPE_VIDEO_INPUT_MTT DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_INPUT_MTT) 3459 3460 #define STATIC_KSNODETYPE_VIDEO_OUTPUT_MTT \ 3461 0xDFF229E8,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96 3462 DEFINE_GUIDSTRUCT("DFF229E8-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_OUTPUT_MTT); 3463 #define KSNODETYPE_VIDEO_OUTPUT_MTT DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_OUTPUT_MTT) 3464 3465 #define STATIC_PROPSETID_VIDCAP_VIDEOENCODER \ 3466 0x6a2e0610,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56 3467 DEFINE_GUIDSTRUCT("6a2e0610-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_VIDEOENCODER); 3468 #define PROPSETID_VIDCAP_VIDEOENCODER DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOENCODER) 3469 3470 typedef enum { 3471 KSPROPERTY_VIDEOENCODER_CAPS, 3472 KSPROPERTY_VIDEOENCODER_STANDARD, 3473 KSPROPERTY_VIDEOENCODER_COPYPROTECTION, 3474 KSPROPERTY_VIDEOENCODER_CC_ENABLE 3475 } KSPROPERTY_VIDCAP_VIDEOENCODER; 3476 3477 typedef struct { 3478 KSPROPERTY Property; 3479 LONG Value; 3480 ULONG Flags; 3481 ULONG Capabilities; 3482 } KSPROPERTY_VIDEOENCODER_S,*PKSPROPERTY_VIDEOENCODER_S; 3483 3484 #define STATIC_PROPSETID_VIDCAP_VIDEODECODER \ 3485 0xC6E13350,0x30AC,0x11d0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56 3486 DEFINE_GUIDSTRUCT("C6E13350-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEODECODER); 3487 #define PROPSETID_VIDCAP_VIDEODECODER DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEODECODER) 3488 3489 typedef enum { 3490 KSPROPERTY_VIDEODECODER_CAPS, 3491 KSPROPERTY_VIDEODECODER_STANDARD, 3492 KSPROPERTY_VIDEODECODER_STATUS, 3493 KSPROPERTY_VIDEODECODER_OUTPUT_ENABLE, 3494 KSPROPERTY_VIDEODECODER_VCR_TIMING 3495 } KSPROPERTY_VIDCAP_VIDEODECODER; 3496 3497 typedef enum { 3498 KS_VIDEODECODER_FLAGS_CAN_DISABLE_OUTPUT = 0X0001, 3499 KS_VIDEODECODER_FLAGS_CAN_USE_VCR_LOCKING = 0X0002, 3500 KS_VIDEODECODER_FLAGS_CAN_INDICATE_LOCKED = 0X0004 3501 } KS_VIDEODECODER_FLAGS; 3502 3503 typedef struct { 3504 KSPROPERTY Property; 3505 ULONG StandardsSupported; 3506 ULONG Capabilities; 3507 ULONG SettlingTime; 3508 ULONG HSyncPerVSync; 3509 } KSPROPERTY_VIDEODECODER_CAPS_S,*PKSPROPERTY_VIDEODECODER_CAPS_S; 3510 3511 typedef struct { 3512 KSPROPERTY Property; 3513 ULONG NumberOfLines; 3514 ULONG SignalLocked; 3515 } KSPROPERTY_VIDEODECODER_STATUS_S,*PKSPROPERTY_VIDEODECODER_STATUS_S; 3516 3517 typedef struct { 3518 KSPROPERTY Property; 3519 ULONG Value; 3520 } KSPROPERTY_VIDEODECODER_S,*PKSPROPERTY_VIDEODECODER_S; 3521 3522 #define STATIC_EVENTSETID_VIDEODECODER \ 3523 0x6a2e0621,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56 3524 DEFINE_GUIDSTRUCT("6a2e0621-28e4-11d0-a18c-00a0c9118956",EVENTSETID_VIDEODECODER); 3525 #define EVENTSETID_VIDEODECODER DEFINE_GUIDNAMED(EVENTSETID_VIDEODECODER) 3526 3527 typedef enum { 3528 KSEVENT_VIDEODECODER_CHANGED 3529 } KSEVENT_VIDEODECODER; 3530 3531 #define STATIC_PROPSETID_VIDCAP_CAMERACONTROL \ 3532 0xC6E13370,0x30AC,0x11d0,0xa1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56 3533 DEFINE_GUIDSTRUCT("C6E13370-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_CAMERACONTROL); 3534 #define PROPSETID_VIDCAP_CAMERACONTROL DEFINE_GUIDNAMED(PROPSETID_VIDCAP_CAMERACONTROL) 3535 3536 typedef enum { 3537 KSPROPERTY_CAMERACONTROL_PAN, 3538 KSPROPERTY_CAMERACONTROL_TILT, 3539 KSPROPERTY_CAMERACONTROL_ROLL, 3540 KSPROPERTY_CAMERACONTROL_ZOOM, 3541 KSPROPERTY_CAMERACONTROL_EXPOSURE, 3542 KSPROPERTY_CAMERACONTROL_IRIS, 3543 KSPROPERTY_CAMERACONTROL_FOCUS, 3544 KSPROPERTY_CAMERACONTROL_SCANMODE, 3545 KSPROPERTY_CAMERACONTROL_PRIVACY, 3546 KSPROPERTY_CAMERACONTROL_PANTILT, 3547 KSPROPERTY_CAMERACONTROL_PAN_RELATIVE, 3548 KSPROPERTY_CAMERACONTROL_TILT_RELATIVE, 3549 KSPROPERTY_CAMERACONTROL_ROLL_RELATIVE, 3550 KSPROPERTY_CAMERACONTROL_ZOOM_RELATIVE, 3551 KSPROPERTY_CAMERACONTROL_EXPOSURE_RELATIVE, 3552 KSPROPERTY_CAMERACONTROL_IRIS_RELATIVE, 3553 KSPROPERTY_CAMERACONTROL_FOCUS_RELATIVE, 3554 KSPROPERTY_CAMERACONTROL_PANTILT_RELATIVE, 3555 KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH 3556 } KSPROPERTY_VIDCAP_CAMERACONTROL; 3557 3558 typedef struct { 3559 KSPROPERTY Property; 3560 LONG Value; 3561 ULONG Flags; 3562 ULONG Capabilities; 3563 } KSPROPERTY_CAMERACONTROL_S,*PKSPROPERTY_CAMERACONTROL_S; 3564 3565 typedef struct { 3566 KSP_NODE NodeProperty; 3567 LONG Value; 3568 ULONG Flags; 3569 ULONG Capabilities; 3570 } KSPROPERTY_CAMERACONTROL_NODE_S,PKSPROPERTY_CAMERACONTROL_NODE_S; 3571 3572 typedef struct { 3573 KSPROPERTY Property; 3574 LONG Value1; 3575 ULONG Flags; 3576 ULONG Capabilities; 3577 LONG Value2; 3578 } KSPROPERTY_CAMERACONTROL_S2,*PKSPROPERTY_CAMERACONTROL_S2; 3579 3580 typedef struct { 3581 KSP_NODE NodeProperty; 3582 LONG Value1; 3583 ULONG Flags; 3584 ULONG Capabilities; 3585 LONG Value2; 3586 } KSPROPERTY_CAMERACONTROL_NODE_S2,*PKSPROPERTY_CAMERACONTROL_NODE_S2; 3587 3588 typedef struct { 3589 KSPROPERTY Property; 3590 LONG lOcularFocalLength; 3591 LONG lObjectiveFocalLengthMin; 3592 LONG lObjectiveFocalLengthMax; 3593 } KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S,*PKSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S; 3594 3595 typedef struct { 3596 KSNODEPROPERTY NodeProperty; 3597 LONG lOcularFocalLength; 3598 LONG lObjectiveFocalLengthMin; 3599 LONG lObjectiveFocalLengthMax; 3600 } KSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S,*PKSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S; 3601 3602 #define KSPROPERTY_CAMERACONTROL_FLAGS_AUTO 0X0001L 3603 #define KSPROPERTY_CAMERACONTROL_FLAGS_MANUAL 0X0002L 3604 3605 #define KSPROPERTY_CAMERACONTROL_FLAGS_ABSOLUTE 0X0000L 3606 #define KSPROPERTY_CAMERACONTROL_FLAGS_RELATIVE 0X0010L 3607 3608 #ifndef __EDevCtrl__ 3609 #define __EDevCtrl__ 3610 3611 #define STATIC_PROPSETID_EXT_DEVICE \ 3612 0xB5730A90,0x1A2C,0x11cf,0x8c,0x23,0x00,0xAA,0x00,0x6B,0x68,0x14 3613 DEFINE_GUIDSTRUCT("B5730A90-1A2C-11cf-8C23-00AA006B6814",PROPSETID_EXT_DEVICE); 3614 #define PROPSETID_EXT_DEVICE DEFINE_GUIDNAMED(PROPSETID_EXT_DEVICE) 3615 3616 typedef enum { 3617 KSPROPERTY_EXTDEVICE_ID, 3618 KSPROPERTY_EXTDEVICE_VERSION, 3619 KSPROPERTY_EXTDEVICE_POWER_STATE, 3620 KSPROPERTY_EXTDEVICE_PORT, 3621 KSPROPERTY_EXTDEVICE_CAPABILITIES 3622 } KSPROPERTY_EXTDEVICE; 3623 3624 typedef struct tagDEVCAPS{ 3625 LONG CanRecord; 3626 LONG CanRecordStrobe; 3627 LONG HasAudio; 3628 LONG HasVideo; 3629 LONG UsesFiles; 3630 LONG CanSave; 3631 LONG DeviceType; 3632 LONG TCRead; 3633 LONG TCWrite; 3634 LONG CTLRead; 3635 LONG IndexRead; 3636 LONG Preroll; 3637 LONG Postroll; 3638 LONG SyncAcc; 3639 LONG NormRate; 3640 LONG CanPreview; 3641 LONG CanMonitorSrc; 3642 LONG CanTest; 3643 LONG VideoIn; 3644 LONG AudioIn; 3645 LONG Calibrate; 3646 LONG SeekType; 3647 LONG SimulatedHardware; 3648 } DEVCAPS,*PDEVCAPS; 3649 3650 typedef struct { 3651 KSPROPERTY Property; 3652 union { 3653 DEVCAPS Capabilities; 3654 ULONG DevPort; 3655 ULONG PowerState; 3656 WCHAR pawchString[MAX_PATH]; 3657 DWORD NodeUniqueID[2]; 3658 } u; 3659 } KSPROPERTY_EXTDEVICE_S,*PKSPROPERTY_EXTDEVICE_S; 3660 3661 #define STATIC_PROPSETID_EXT_TRANSPORT \ 3662 0xA03CD5F0,0x3045,0x11cf,0x8c,0x44,0x00,0xAA,0x00,0x6B,0x68,0x14 3663 DEFINE_GUIDSTRUCT("A03CD5F0-3045-11cf-8C44-00AA006B6814",PROPSETID_EXT_TRANSPORT); 3664 #define PROPSETID_EXT_TRANSPORT DEFINE_GUIDNAMED(PROPSETID_EXT_TRANSPORT) 3665 3666 typedef enum { 3667 KSPROPERTY_EXTXPORT_CAPABILITIES, 3668 KSPROPERTY_EXTXPORT_INPUT_SIGNAL_MODE, 3669 KSPROPERTY_EXTXPORT_OUTPUT_SIGNAL_MODE, 3670 KSPROPERTY_EXTXPORT_LOAD_MEDIUM, 3671 KSPROPERTY_EXTXPORT_MEDIUM_INFO, 3672 KSPROPERTY_EXTXPORT_STATE, 3673 KSPROPERTY_EXTXPORT_STATE_NOTIFY, 3674 KSPROPERTY_EXTXPORT_TIMECODE_SEARCH, 3675 KSPROPERTY_EXTXPORT_ATN_SEARCH, 3676 KSPROPERTY_EXTXPORT_RTC_SEARCH, 3677 KSPROPERTY_RAW_AVC_CMD 3678 } KSPROPERTY_EXTXPORT; 3679 3680 typedef struct tagTRANSPORTSTATUS { 3681 LONG Mode; 3682 LONG LastError; 3683 LONG RecordInhibit; 3684 LONG ServoLock; 3685 LONG MediaPresent; 3686 LONG MediaLength; 3687 LONG MediaSize; 3688 LONG MediaTrackCount; 3689 LONG MediaTrackLength; 3690 LONG MediaTrackSide; 3691 LONG MediaType; 3692 LONG LinkMode; 3693 LONG NotifyOn; 3694 } TRANSPORTSTATUS,*PTRANSPORTSTATUS; 3695 3696 typedef struct tagTRANSPORTBASICPARMS { 3697 LONG TimeFormat; 3698 LONG TimeReference; 3699 LONG Superimpose; 3700 LONG EndStopAction; 3701 LONG RecordFormat; 3702 LONG StepFrames; 3703 LONG SetpField; 3704 LONG Preroll; 3705 LONG RecPreroll; 3706 LONG Postroll; 3707 LONG EditDelay; 3708 LONG PlayTCDelay; 3709 LONG RecTCDelay; 3710 LONG EditField; 3711 LONG FrameServo; 3712 LONG ColorFrameServo; 3713 LONG ServoRef; 3714 LONG WarnGenlock; 3715 LONG SetTracking; 3716 TCHAR VolumeName[40]; 3717 LONG Ballistic[20]; 3718 LONG Speed; 3719 LONG CounterFormat; 3720 LONG TunerChannel; 3721 LONG TunerNumber; 3722 LONG TimerEvent; 3723 LONG TimerStartDay; 3724 LONG TimerStartTime; 3725 LONG TimerStopDay; 3726 LONG TimerStopTime; 3727 } TRANSPORTBASICPARMS,*PTRANSPORTBASICPARMS; 3728 3729 typedef struct tagTRANSPORTVIDEOPARMS { 3730 LONG OutputMode; 3731 LONG Input; 3732 } TRANSPORTVIDEOPARMS,*PTRANSPORTVIDEOPARMS; 3733 3734 typedef struct tagTRANSPORTAUDIOPARMS { 3735 LONG EnableOutput; 3736 LONG EnableRecord; 3737 LONG EnableSelsync; 3738 LONG Input; 3739 LONG MonitorSource; 3740 } TRANSPORTAUDIOPARMS,*PTRANSPORTAUDIOPARMS; 3741 3742 typedef struct { 3743 WINBOOL MediaPresent; 3744 ULONG MediaType; 3745 WINBOOL RecordInhibit; 3746 } MEDIUM_INFO,*PMEDIUM_INFO; 3747 3748 typedef struct { 3749 ULONG Mode; 3750 ULONG State; 3751 } TRANSPORT_STATE,*PTRANSPORT_STATE; 3752 3753 typedef struct { 3754 KSPROPERTY Property; 3755 union { 3756 ULONG Capabilities; 3757 ULONG SignalMode; 3758 ULONG LoadMedium; 3759 MEDIUM_INFO MediumInfo; 3760 TRANSPORT_STATE XPrtState; 3761 struct { 3762 BYTE frame; 3763 BYTE second; 3764 BYTE minute; 3765 BYTE hour; 3766 } Timecode; 3767 DWORD dwTimecode; 3768 DWORD dwAbsTrackNumber; 3769 struct { 3770 ULONG PayloadSize; 3771 BYTE Payload[512]; 3772 } RawAVC; 3773 } u; 3774 } KSPROPERTY_EXTXPORT_S,*PKSPROPERTY_EXTXPORT_S; 3775 3776 typedef struct { 3777 KSP_NODE NodeProperty; 3778 union { 3779 ULONG Capabilities; 3780 ULONG SignalMode; 3781 ULONG LoadMedium; 3782 MEDIUM_INFO MediumInfo; 3783 TRANSPORT_STATE XPrtState; 3784 struct { 3785 BYTE frame; 3786 BYTE second; 3787 BYTE minute; 3788 BYTE hour; 3789 } Timecode; 3790 DWORD dwTimecode; 3791 DWORD dwAbsTrackNumber; 3792 struct { 3793 ULONG PayloadSize; 3794 BYTE Payload[512]; 3795 } RawAVC; 3796 } u; 3797 } KSPROPERTY_EXTXPORT_NODE_S,*PKSPROPERTY_EXTXPORT_NODE_S; 3798 3799 #define STATIC_PROPSETID_TIMECODE_READER \ 3800 0x9B496CE1,0x811B,0x11cf,0x8C,0x77,0x00,0xAA,0x00,0x6B,0x68,0x14 3801 DEFINE_GUIDSTRUCT("9B496CE1-811B-11cf-8C77-00AA006B6814",PROPSETID_TIMECODE_READER); 3802 #define PROPSETID_TIMECODE_READER DEFINE_GUIDNAMED(PROPSETID_TIMECODE_READER) 3803 3804 typedef enum { 3805 KSPROPERTY_TIMECODE_READER, 3806 KSPROPERTY_ATN_READER, 3807 KSPROPERTY_RTC_READER 3808 } KSPROPERTY_TIMECODE; 3809 3810 #ifndef TIMECODE_DEFINED 3811 #define TIMECODE_DEFINED 3812 typedef union _timecode { 3813 struct { 3814 WORD wFrameRate; 3815 WORD wFrameFract; 3816 DWORD dwFrames; 3817 }; 3818 DWORDLONG qw; 3819 } TIMECODE; 3820 typedef TIMECODE *PTIMECODE; 3821 3822 typedef struct tagTIMECODE_SAMPLE { 3823 LONGLONG qwTick; 3824 TIMECODE timecode; 3825 DWORD dwUser; 3826 DWORD dwFlags; 3827 } TIMECODE_SAMPLE; 3828 3829 typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE; 3830 #endif /* TIMECODE_DEFINED */ 3831 3832 typedef struct { 3833 KSPROPERTY Property; 3834 TIMECODE_SAMPLE TimecodeSamp; 3835 } KSPROPERTY_TIMECODE_S,*PKSPROPERTY_TIMECODE_S; 3836 3837 typedef struct { 3838 KSP_NODE NodeProperty; 3839 TIMECODE_SAMPLE TimecodeSamp; 3840 } KSPROPERTY_TIMECODE_NODE_S,*PKSPROPERTY_TIMECODE_NODE_S; 3841 3842 #define STATIC_KSEVENTSETID_EXTDEV_Command \ 3843 0x109c7988,0xb3cb,0x11d2,0xb4,0x8e,0x00,0x60,0x97,0xb3,0x39,0x1b 3844 DEFINE_GUIDSTRUCT("109c7988-b3cb-11d2-b48e-006097b3391b",KSEVENTSETID_EXTDEV_Command); 3845 #define KSEVENTSETID_EXTDEV_Command DEFINE_GUIDNAMED(KSEVENTSETID_EXTDEV_Command) 3846 3847 typedef enum { 3848 KSEVENT_EXTDEV_COMMAND_NOTIFY_INTERIM_READY, 3849 KSEVENT_EXTDEV_COMMAND_CONTROL_INTERIM_READY, 3850 KSEVENT_EXTDEV_COMMAND_BUSRESET, 3851 KSEVENT_EXTDEV_TIMECODE_UPDATE, 3852 KSEVENT_EXTDEV_OPERATION_MODE_UPDATE, 3853 KSEVENT_EXTDEV_TRANSPORT_STATE_UPDATE, 3854 KSEVENT_EXTDEV_NOTIFY_REMOVAL, 3855 KSEVENT_EXTDEV_NOTIFY_MEDIUM_CHANGE 3856 } KSEVENT_DEVCMD; 3857 #endif /* __EDevCtrl__ */ 3858 3859 #define STATIC_PROPSETID_VIDCAP_CROSSBAR \ 3860 0x6a2e0640,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56 3861 DEFINE_GUIDSTRUCT("6a2e0640-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_CROSSBAR); 3862 #define PROPSETID_VIDCAP_CROSSBAR DEFINE_GUIDNAMED(PROPSETID_VIDCAP_CROSSBAR) 3863 3864 typedef enum { 3865 KSPROPERTY_CROSSBAR_CAPS, 3866 KSPROPERTY_CROSSBAR_PININFO, 3867 KSPROPERTY_CROSSBAR_CAN_ROUTE, 3868 KSPROPERTY_CROSSBAR_ROUTE 3869 } KSPROPERTY_VIDCAP_CROSSBAR; 3870 3871 typedef struct { 3872 KSPROPERTY Property; 3873 ULONG NumberOfInputs; 3874 ULONG NumberOfOutputs; 3875 } KSPROPERTY_CROSSBAR_CAPS_S,*PKSPROPERTY_CROSSBAR_CAPS_S; 3876 3877 typedef struct { 3878 KSPROPERTY Property; 3879 KSPIN_DATAFLOW Direction; 3880 ULONG Index; 3881 ULONG PinType; 3882 ULONG RelatedPinIndex; 3883 KSPIN_MEDIUM Medium; 3884 } KSPROPERTY_CROSSBAR_PININFO_S,*PKSPROPERTY_CROSSBAR_PININFO_S; 3885 3886 typedef struct { 3887 KSPROPERTY Property; 3888 ULONG IndexInputPin; 3889 ULONG IndexOutputPin; 3890 ULONG CanRoute; 3891 } KSPROPERTY_CROSSBAR_ROUTE_S,*PKSPROPERTY_CROSSBAR_ROUTE_S; 3892 3893 #define STATIC_EVENTSETID_CROSSBAR \ 3894 0x6a2e0641,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56 3895 DEFINE_GUIDSTRUCT("6a2e0641-28e4-11d0-a18c-00a0c9118956",EVENTSETID_CROSSBAR); 3896 #define EVENTSETID_CROSSBAR DEFINE_GUIDNAMED(EVENTSETID_CROSSBAR) 3897 3898 typedef enum { 3899 KSEVENT_CROSSBAR_CHANGED 3900 } KSEVENT_CROSSBAR; 3901 3902 typedef enum { 3903 KS_PhysConn_Video_Tuner = 1, 3904 KS_PhysConn_Video_Composite, 3905 KS_PhysConn_Video_SVideo, 3906 KS_PhysConn_Video_RGB, 3907 KS_PhysConn_Video_YRYBY, 3908 KS_PhysConn_Video_SerialDigital, 3909 KS_PhysConn_Video_ParallelDigital, 3910 KS_PhysConn_Video_SCSI, 3911 KS_PhysConn_Video_AUX, 3912 KS_PhysConn_Video_1394, 3913 KS_PhysConn_Video_USB, 3914 KS_PhysConn_Video_VideoDecoder, 3915 KS_PhysConn_Video_VideoEncoder, 3916 KS_PhysConn_Video_SCART, 3917 KS_PhysConn_Audio_Tuner = 4096, 3918 KS_PhysConn_Audio_Line, 3919 KS_PhysConn_Audio_Mic, 3920 KS_PhysConn_Audio_AESDigital, 3921 KS_PhysConn_Audio_SPDIFDigital, 3922 KS_PhysConn_Audio_SCSI, 3923 KS_PhysConn_Audio_AUX, 3924 KS_PhysConn_Audio_1394, 3925 KS_PhysConn_Audio_USB, 3926 KS_PhysConn_Audio_AudioDecoder 3927 } KS_PhysicalConnectorType; 3928 3929 #define STATIC_PROPSETID_VIDCAP_TVAUDIO \ 3930 0x6a2e0650,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56 3931 DEFINE_GUIDSTRUCT("6a2e0650-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_TVAUDIO); 3932 #define PROPSETID_VIDCAP_TVAUDIO DEFINE_GUIDNAMED(PROPSETID_VIDCAP_TVAUDIO) 3933 3934 typedef enum { 3935 KSPROPERTY_TVAUDIO_CAPS, 3936 KSPROPERTY_TVAUDIO_MODE, 3937 KSPROPERTY_TVAUDIO_CURRENTLY_AVAILABLE_MODES 3938 } KSPROPERTY_VIDCAP_TVAUDIO; 3939 3940 #define KS_TVAUDIO_MODE_MONO 0x0001 3941 #define KS_TVAUDIO_MODE_STEREO 0x0002 3942 #define KS_TVAUDIO_MODE_LANG_A 0x0010 3943 #define KS_TVAUDIO_MODE_LANG_B 0x0020 3944 #define KS_TVAUDIO_MODE_LANG_C 0x0040 3945 3946 typedef struct { 3947 KSPROPERTY Property; 3948 ULONG Capabilities; 3949 KSPIN_MEDIUM InputMedium; 3950 KSPIN_MEDIUM OutputMedium; 3951 } KSPROPERTY_TVAUDIO_CAPS_S,*PKSPROPERTY_TVAUDIO_CAPS_S; 3952 3953 typedef struct { 3954 KSPROPERTY Property; 3955 ULONG Mode; 3956 } KSPROPERTY_TVAUDIO_S,*PKSPROPERTY_TVAUDIO_S; 3957 3958 #define STATIC_KSEVENTSETID_VIDCAP_TVAUDIO \ 3959 0x6a2e0651,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56 3960 DEFINE_GUIDSTRUCT("6a2e0651-28e4-11d0-a18c-00a0c9118956",KSEVENTSETID_VIDCAP_TVAUDIO); 3961 #define KSEVENTSETID_VIDCAP_TVAUDIO DEFINE_GUIDNAMED(KSEVENTSETID_VIDCAP_TVAUDIO) 3962 3963 typedef enum { 3964 KSEVENT_TVAUDIO_CHANGED 3965 } KSEVENT_TVAUDIO; 3966 3967 #define STATIC_PROPSETID_VIDCAP_VIDEOCOMPRESSION \ 3968 0xC6E13343,0x30AC,0x11d0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56 3969 DEFINE_GUIDSTRUCT("C6E13343-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEOCOMPRESSION); 3970 #define PROPSETID_VIDCAP_VIDEOCOMPRESSION DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOCOMPRESSION) 3971 3972 typedef enum { 3973 KSPROPERTY_VIDEOCOMPRESSION_GETINFO, 3974 KSPROPERTY_VIDEOCOMPRESSION_KEYFRAME_RATE, 3975 KSPROPERTY_VIDEOCOMPRESSION_PFRAMES_PER_KEYFRAME, 3976 KSPROPERTY_VIDEOCOMPRESSION_QUALITY, 3977 KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_KEYFRAME, 3978 KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_FRAME_SIZE, 3979 KSPROPERTY_VIDEOCOMPRESSION_WINDOWSIZE 3980 } KSPROPERTY_VIDCAP_VIDEOCOMPRESSION; 3981 3982 typedef enum { 3983 KS_CompressionCaps_CanQuality = 1, 3984 KS_CompressionCaps_CanCrunch = 2, 3985 KS_CompressionCaps_CanKeyFrame = 4, 3986 KS_CompressionCaps_CanBFrame = 8, 3987 KS_CompressionCaps_CanWindow = 0x10 3988 } KS_CompressionCaps; 3989 3990 typedef enum { 3991 KS_StreamingHint_FrameInterval = 0x0100, 3992 KS_StreamingHint_KeyFrameRate = 0x0200, 3993 KS_StreamingHint_PFrameRate = 0x0400, 3994 KS_StreamingHint_CompQuality = 0x0800, 3995 KS_StreamingHint_CompWindowSize = 0x1000 3996 } KS_VideoStreamingHints; 3997 3998 typedef struct { 3999 KSPROPERTY Property; 4000 ULONG StreamIndex; 4001 LONG DefaultKeyFrameRate; 4002 LONG DefaultPFrameRate; 4003 LONG DefaultQuality; 4004 LONG NumberOfQualitySettings; 4005 LONG Capabilities; 4006 } KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S,*PKSPROPERTY_VIDEOCOMPRESSION_GETINFO_S; 4007 4008 typedef struct { 4009 KSPROPERTY Property; 4010 ULONG StreamIndex; 4011 LONG Value; 4012 } KSPROPERTY_VIDEOCOMPRESSION_S,*PKSPROPERTY_VIDEOCOMPRESSION_S; 4013 4014 typedef struct { 4015 KSPROPERTY Property; 4016 ULONG StreamIndex; 4017 LONG Value; 4018 ULONG Flags; 4019 } KSPROPERTY_VIDEOCOMPRESSION_S1,*PKSPROPERTY_VIDEOCOMPRESSION_S1; 4020 4021 #define STATIC_KSDATAFORMAT_SUBTYPE_OVERLAY \ 4022 0xe436eb7f,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70 4023 DEFINE_GUIDSTRUCT("e436eb7f-524f-11ce-9f53-0020af0ba770",KSDATAFORMAT_SUBTYPE_OVERLAY); 4024 #define KSDATAFORMAT_SUBTYPE_OVERLAY DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_OVERLAY) 4025 4026 #define STATIC_KSPROPSETID_OverlayUpdate \ 4027 0x490EA5CF,0x7681,0x11D1,0xA2,0x1C,0x00,0xA0,0xC9,0x22,0x31,0x96 4028 DEFINE_GUIDSTRUCT("490EA5CF-7681-11D1-A21C-00A0C9223196",KSPROPSETID_OverlayUpdate); 4029 #define KSPROPSETID_OverlayUpdate DEFINE_GUIDNAMED(KSPROPSETID_OverlayUpdate) 4030 4031 typedef enum { 4032 KSPROPERTY_OVERLAYUPDATE_INTERESTS, 4033 KSPROPERTY_OVERLAYUPDATE_CLIPLIST = 0x1, 4034 KSPROPERTY_OVERLAYUPDATE_PALETTE = 0x2, 4035 KSPROPERTY_OVERLAYUPDATE_COLORKEY = 0x4, 4036 KSPROPERTY_OVERLAYUPDATE_VIDEOPOSITION = 0x8, 4037 KSPROPERTY_OVERLAYUPDATE_DISPLAYCHANGE = 0x10, 4038 KSPROPERTY_OVERLAYUPDATE_COLORREF = 0x10000000 4039 } KSPROPERTY_OVERLAYUPDATE; 4040 4041 typedef struct { 4042 ULONG PelsWidth; 4043 ULONG PelsHeight; 4044 ULONG BitsPerPel; 4045 WCHAR DeviceID[1]; 4046 } KSDISPLAYCHANGE,*PKSDISPLAYCHANGE; 4047 4048 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_INTERESTS(Handler) \ 4049 DEFINE_KSPROPERTY_ITEM( \ 4050 KSPROPERTY_OVERLAYUPDATE_INTERESTS, \ 4051 (Handler), \ 4052 sizeof(KSPROPERTY), \ 4053 sizeof(ULONG), \ 4054 NULL, NULL, 0, NULL, NULL, 0) 4055 4056 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_PALETTE(Handler) \ 4057 DEFINE_KSPROPERTY_ITEM( \ 4058 KSPROPERTY_OVERLAYUPDATE_PALETTE, \ 4059 NULL, \ 4060 sizeof(KSPROPERTY), \ 4061 0, \ 4062 (Handler), \ 4063 NULL, 0, NULL, NULL, 0) 4064 4065 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_COLORKEY(Handler) \ 4066 DEFINE_KSPROPERTY_ITEM( \ 4067 KSPROPERTY_OVERLAYUPDATE_COLORKEY, \ 4068 NULL, \ 4069 sizeof(KSPROPERTY), \ 4070 sizeof(COLORKEY), \ 4071 (Handler), \ 4072 NULL, 0, NULL, NULL, 0) 4073 4074 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_CLIPLIST(Handler) \ 4075 DEFINE_KSPROPERTY_ITEM( \ 4076 KSPROPERTY_OVERLAYUPDATE_CLIPLIST, \ 4077 NULL, \ 4078 sizeof(KSPROPERTY), \ 4079 2 *sizeof(RECT) + sizeof(RGNDATAHEADER),\ 4080 (Handler), \ 4081 NULL, 0, NULL, NULL, 0) 4082 4083 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_VIDEOPOSITION(Handler) \ 4084 DEFINE_KSPROPERTY_ITEM( \ 4085 KSPROPERTY_OVERLAYUPDATE_VIDEOPOSITION, \ 4086 NULL, \ 4087 sizeof(KSPROPERTY), \ 4088 2 *sizeof(RECT), \ 4089 (Handler), \ 4090 NULL, 0, NULL, NULL, 0) 4091 4092 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_DISPLAYCHANGE(Handler) \ 4093 DEFINE_KSPROPERTY_ITEM( \ 4094 KSPROPERTY_OVERLAYUPDATE_DISPLAYCHANGE, \ 4095 NULL, \ 4096 sizeof(KSPROPERTY), \ 4097 sizeof(KSDISPLAYCHANGE), \ 4098 (Handler), \ 4099 NULL, 0, NULL, NULL, 0) 4100 4101 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_COLORREF(Handler) \ 4102 DEFINE_KSPROPERTY_ITEM( \ 4103 KSPROPERTY_OVERLAYUPDATE_COLORREF, \ 4104 (Handler), \ 4105 sizeof(KSPROPERTY), \ 4106 sizeof(COLORREF), \ 4107 NULL, \ 4108 NULL, 0, NULL, NULL, 0) 4109 4110 #define STATIC_PROPSETID_VIDCAP_VIDEOCONTROL \ 4111 0x6a2e0670,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56 4112 DEFINE_GUIDSTRUCT("6a2e0670-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_VIDEOCONTROL); 4113 #define PROPSETID_VIDCAP_VIDEOCONTROL DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOCONTROL) 4114 4115 typedef enum { 4116 KSPROPERTY_VIDEOCONTROL_CAPS, 4117 KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE, 4118 KSPROPERTY_VIDEOCONTROL_FRAME_RATES, 4119 KSPROPERTY_VIDEOCONTROL_MODE 4120 } KSPROPERTY_VIDCAP_VIDEOCONTROL; 4121 4122 typedef enum { 4123 KS_VideoControlFlag_FlipHorizontal = 0x0001, 4124 KS_VideoControlFlag_FlipVertical = 0x0002, 4125 KS_Obsolete_VideoControlFlag_ExternalTriggerEnable = 0x0010, 4126 KS_Obsolete_VideoControlFlag_Trigger = 0x0020, 4127 KS_VideoControlFlag_ExternalTriggerEnable = 0x0004, 4128 KS_VideoControlFlag_Trigger = 0x0008 4129 } KS_VideoControlFlags; 4130 4131 typedef struct { 4132 KSPROPERTY Property; 4133 ULONG StreamIndex; 4134 ULONG VideoControlCaps; 4135 } KSPROPERTY_VIDEOCONTROL_CAPS_S,*PKSPROPERTY_VIDEOCONTROL_CAPS_S; 4136 4137 typedef struct { 4138 KSPROPERTY Property; 4139 ULONG StreamIndex; 4140 LONG Mode; 4141 } KSPROPERTY_VIDEOCONTROL_MODE_S,*PKSPROPERTY_VIDEOCONTROL_MODE_S; 4142 4143 typedef struct { 4144 KSPROPERTY Property; 4145 ULONG StreamIndex; 4146 ULONG RangeIndex; 4147 SIZE Dimensions; 4148 LONGLONG CurrentActualFrameRate; 4149 LONGLONG CurrentMaxAvailableFrameRate; 4150 } KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S,*PKSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S; 4151 4152 typedef struct { 4153 KSPROPERTY Property; 4154 ULONG StreamIndex; 4155 ULONG RangeIndex; 4156 SIZE Dimensions; 4157 } KSPROPERTY_VIDEOCONTROL_FRAME_RATES_S,*PKSPROPERTY_VIDEOCONTROL_FRAME_RATES_S; 4158 4159 #define STATIC_PROPSETID_VIDCAP_DROPPEDFRAMES \ 4160 0xC6E13344,0x30AC,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56 4161 DEFINE_GUIDSTRUCT("C6E13344-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_DROPPEDFRAMES); 4162 #define PROPSETID_VIDCAP_DROPPEDFRAMES DEFINE_GUIDNAMED(PROPSETID_VIDCAP_DROPPEDFRAMES) 4163 4164 typedef enum { 4165 KSPROPERTY_DROPPEDFRAMES_CURRENT 4166 } KSPROPERTY_VIDCAP_DROPPEDFRAMES; 4167 4168 typedef struct { 4169 KSPROPERTY Property; 4170 LONGLONG PictureNumber; 4171 LONGLONG DropCount; 4172 ULONG AverageFrameSize; 4173 } KSPROPERTY_DROPPEDFRAMES_CURRENT_S,*PKSPROPERTY_DROPPEDFRAMES_CURRENT_S; 4174 4175 #define STATIC_KSPROPSETID_VPConfig \ 4176 0xbc29a660,0x30e3,0x11d0,0x9e,0x69,0x00,0xc0,0x4f,0xd7,0xc1,0x5b 4177 DEFINE_GUIDSTRUCT("bc29a660-30e3-11d0-9e69-00c04fd7c15b",KSPROPSETID_VPConfig); 4178 #define KSPROPSETID_VPConfig DEFINE_GUIDNAMED(KSPROPSETID_VPConfig) 4179 4180 #define STATIC_KSPROPSETID_VPVBIConfig \ 4181 0xec529b00,0x1a1f,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a 4182 DEFINE_GUIDSTRUCT("ec529b00-1a1f-11d1-bad9-00609744111a",KSPROPSETID_VPVBIConfig); 4183 #define KSPROPSETID_VPVBIConfig DEFINE_GUIDNAMED(KSPROPSETID_VPVBIConfig) 4184 4185 typedef enum { 4186 KSPROPERTY_VPCONFIG_NUMCONNECTINFO, 4187 KSPROPERTY_VPCONFIG_GETCONNECTINFO, 4188 KSPROPERTY_VPCONFIG_SETCONNECTINFO, 4189 KSPROPERTY_VPCONFIG_VPDATAINFO, 4190 KSPROPERTY_VPCONFIG_MAXPIXELRATE, 4191 KSPROPERTY_VPCONFIG_INFORMVPINPUT, 4192 KSPROPERTY_VPCONFIG_NUMVIDEOFORMAT, 4193 KSPROPERTY_VPCONFIG_GETVIDEOFORMAT, 4194 KSPROPERTY_VPCONFIG_SETVIDEOFORMAT, 4195 KSPROPERTY_VPCONFIG_INVERTPOLARITY, 4196 KSPROPERTY_VPCONFIG_DECIMATIONCAPABILITY, 4197 KSPROPERTY_VPCONFIG_SCALEFACTOR, 4198 KSPROPERTY_VPCONFIG_DDRAWHANDLE, 4199 KSPROPERTY_VPCONFIG_VIDEOPORTID, 4200 KSPROPERTY_VPCONFIG_DDRAWSURFACEHANDLE, 4201 KSPROPERTY_VPCONFIG_SURFACEPARAMS 4202 } KSPROPERTY_VPCONFIG; 4203 4204 #define STATIC_CLSID_KsIBasicAudioInterfaceHandler \ 4205 0xb9f8ac3e,0x0f71,0x11d2,0xb7,0x2c,0x00,0xc0,0x4f,0xb6,0xbd,0x3d 4206 DEFINE_GUIDSTRUCT("b9f8ac3e-0f71-11d2-b72c-00c04fb6bd3d",CLSID_KsIBasicAudioInterfaceHandler); 4207 #define CLSID_KsIBasicAudioInterfaceHandler DEFINE_GUIDNAMED(CLSID_KsIBasicAudioInterfaceHandler) 4208 4209 #ifdef __IVPType__ 4210 typedef struct { 4211 AMVPSIZE Size; 4212 DWORD MaxPixelsPerSecond; 4213 DWORD Reserved; 4214 } KSVPMAXPIXELRATE,*PKSVPMAXPIXELRATE; 4215 4216 typedef struct { 4217 KSPROPERTY Property; 4218 AMVPSIZE Size; 4219 } KSVPSIZE_PROP,*PKSVPSIZE_PROP; 4220 4221 typedef struct { 4222 DWORD dwPitch; 4223 DWORD dwXOrigin; 4224 DWORD dwYOrigin; 4225 } KSVPSURFACEPARAMS,*PKSVPSURFACEPARAMS; 4226 #else /* __IVPType__ */ 4227 4228 #ifndef __DDRAW_INCLUDED__ 4229 #define DDPF_FOURCC __MSABI_LONG(0x00000004) 4230 4231 typedef struct _DDPIXELFORMAT 4232 { 4233 DWORD dwSize; 4234 DWORD dwFlags; 4235 DWORD dwFourCC; 4236 __C89_NAMELESS union 4237 { 4238 DWORD dwRGBBitCount; 4239 DWORD dwYUVBitCount; 4240 DWORD dwZBufferBitDepth; 4241 DWORD dwAlphaBitDepth; 4242 }; 4243 __C89_NAMELESS union 4244 { 4245 DWORD dwRBitMask; 4246 DWORD dwYBitMask; 4247 }; 4248 __C89_NAMELESS union 4249 { 4250 DWORD dwGBitMask; 4251 DWORD dwUBitMask; 4252 }; 4253 __C89_NAMELESS union 4254 { 4255 DWORD dwBBitMask; 4256 DWORD dwVBitMask; 4257 }; 4258 __C89_NAMELESS union 4259 { 4260 DWORD dwRGBAlphaBitMask; 4261 DWORD dwYUVAlphaBitMask; 4262 DWORD dwRGBZBitMask; 4263 DWORD dwYUVZBitMask; 4264 }; 4265 } DDPIXELFORMAT,*LPDDPIXELFORMAT; 4266 #endif /* __DDRAW_INCLUDED__ */ 4267 4268 #ifndef __DVP_INCLUDED__ 4269 typedef struct _DDVIDEOPORTCONNECT { 4270 DWORD dwSize; 4271 DWORD dwPortWidth; 4272 GUID guidTypeID; 4273 DWORD dwFlags; 4274 ULONG_PTR dwReserved1; 4275 } DDVIDEOPORTCONNECT,*LPDDVIDEOPORTCONNECT; 4276 4277 #define DDVPTYPE_E_HREFH_VREFH \ 4278 0x54F39980,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8 4279 4280 #define DDVPTYPE_E_HREFL_VREFL \ 4281 0xE09C77E0,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8 4282 #endif /* __DVP_INCLUDED__ */ 4283 4284 typedef enum 4285 { 4286 KS_PixAspectRatio_NTSC4x3, 4287 KS_PixAspectRatio_NTSC16x9, 4288 KS_PixAspectRatio_PAL4x3, 4289 KS_PixAspectRatio_PAL16x9 4290 } KS_AMPixAspectRatio; 4291 4292 typedef enum 4293 { 4294 KS_AMVP_DO_NOT_CARE, 4295 KS_AMVP_BEST_BANDWIDTH, 4296 KS_AMVP_INPUT_SAME_AS_OUTPUT 4297 } KS_AMVP_SELECTFORMATBY; 4298 4299 typedef enum 4300 { 4301 KS_AMVP_MODE_WEAVE, 4302 KS_AMVP_MODE_BOBINTERLEAVED, 4303 KS_AMVP_MODE_BOBNONINTERLEAVED, 4304 KS_AMVP_MODE_SKIPEVEN, 4305 KS_AMVP_MODE_SKIPODD 4306 } KS_AMVP_MODE; 4307 4308 typedef struct tagKS_AMVPDIMINFO 4309 { 4310 DWORD dwFieldWidth; 4311 DWORD dwFieldHeight; 4312 DWORD dwVBIWidth; 4313 DWORD dwVBIHeight; 4314 RECT rcValidRegion; 4315 } KS_AMVPDIMINFO,*PKS_AMVPDIMINFO; 4316 4317 typedef struct tagKS_AMVPDATAINFO 4318 { 4319 DWORD dwSize; 4320 DWORD dwMicrosecondsPerField; 4321 KS_AMVPDIMINFO amvpDimInfo; 4322 DWORD dwPictAspectRatioX; 4323 DWORD dwPictAspectRatioY; 4324 WINBOOL bEnableDoubleClock; 4325 WINBOOL bEnableVACT; 4326 WINBOOL bDataIsInterlaced; 4327 LONG lHalfLinesOdd; 4328 WINBOOL bFieldPolarityInverted; 4329 DWORD dwNumLinesInVREF; 4330 LONG lHalfLinesEven; 4331 DWORD dwReserved1; 4332 } KS_AMVPDATAINFO,*PKS_AMVPDATAINFO; 4333 4334 typedef struct tagKS_AMVPSIZE 4335 { 4336 DWORD dwWidth; 4337 DWORD dwHeight; 4338 } KS_AMVPSIZE,*PKS_AMVPSIZE; 4339 4340 typedef struct { 4341 KS_AMVPSIZE Size; 4342 DWORD MaxPixelsPerSecond; 4343 DWORD Reserved; 4344 } KSVPMAXPIXELRATE,*PKSVPMAXPIXELRATE; 4345 4346 typedef struct { 4347 KSPROPERTY Property; 4348 KS_AMVPSIZE Size; 4349 } KSVPSIZE_PROP,*PKSVPSIZE_PROP; 4350 4351 typedef struct { 4352 DWORD dwPitch; 4353 DWORD dwXOrigin; 4354 DWORD dwYOrigin; 4355 } KSVPSURFACEPARAMS,*PKSVPSURFACEPARAMS; 4356 #endif /* __IVPType__ */ 4357 4358 #define STATIC_KSEVENTSETID_VPNotify \ 4359 0x20c5598e,0xd3c8,0x11d0,0x8d,0xfc,0x00,0xc0,0x4f,0xd7,0xc0,0x8b 4360 DEFINE_GUIDSTRUCT("20c5598e-d3c8-11d0-8dfc-00c04fd7c08b",KSEVENTSETID_VPNotify); 4361 #define KSEVENTSETID_VPNotify DEFINE_GUIDNAMED(KSEVENTSETID_VPNotify) 4362 4363 typedef enum { 4364 KSEVENT_VPNOTIFY_FORMATCHANGE 4365 } KSEVENT_VPNOTIFY; 4366 4367 #define STATIC_KSEVENTSETID_VIDCAPTOSTI \ 4368 0xdb47de20,0xf628,0x11d1,0xba,0x41,0x0,0xa0,0xc9,0xd,0x2b,0x5 4369 DEFINE_GUIDSTRUCT("DB47DE20-F628-11d1-BA41-00A0C90D2B05",KSEVENTSETID_VIDCAPTOSTI); 4370 #define KSEVENTSETID_VIDCAPNotify DEFINE_GUIDNAMED(KSEVENTSETID_VIDCAPTOSTI) 4371 4372 typedef enum { 4373 KSEVENT_VIDCAPTOSTI_EXT_TRIGGER, 4374 KSEVENT_VIDCAP_AUTO_UPDATE, 4375 KSEVENT_VIDCAP_SEARCH 4376 } KSEVENT_VIDCAPTOSTI; 4377 4378 typedef enum { 4379 KSPROPERTY_EXTENSION_UNIT_INFO, 4380 KSPROPERTY_EXTENSION_UNIT_CONTROL, 4381 KSPROPERTY_EXTENSION_UNIT_PASS_THROUGH = 0xffff 4382 } KSPROPERTY_EXTENSION_UNIT,*PKSPROPERTY_EXTENSION_UNIT; 4383 4384 #define STATIC_KSEVENTSETID_VPVBINotify \ 4385 0xec529b01,0x1a1f,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a 4386 DEFINE_GUIDSTRUCT("ec529b01-1a1f-11d1-bad9-00609744111a",KSEVENTSETID_VPVBINotify); 4387 #define KSEVENTSETID_VPVBINotify DEFINE_GUIDNAMED(KSEVENTSETID_VPVBINotify) 4388 4389 typedef enum { 4390 KSEVENT_VPVBINOTIFY_FORMATCHANGE 4391 } KSEVENT_VPVBINOTIFY; 4392 4393 #define STATIC_KSDATAFORMAT_TYPE_AUXLine21Data \ 4394 0x670aea80,0x3a82,0x11d0,0xb7,0x9b,0x00,0xaa,0x00,0x37,0x67,0xa7 4395 DEFINE_GUIDSTRUCT("670aea80-3a82-11d0-b79b-00aa003767a7",KSDATAFORMAT_TYPE_AUXLine21Data); 4396 #define KSDATAFORMAT_TYPE_AUXLine21Data DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUXLine21Data) 4397 4398 #define STATIC_KSDATAFORMAT_SUBTYPE_Line21_BytePair \ 4399 0x6e8d4a22,0x310c,0x11d0,0xb7,0x9a,0x00,0xaa,0x00,0x37,0x67,0xa7 4400 DEFINE_GUIDSTRUCT("6e8d4a22-310c-11d0-b79a-00aa003767a7",KSDATAFORMAT_SUBTYPE_Line21_BytePair); 4401 #define KSDATAFORMAT_SUBTYPE_Line21_BytePair DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_Line21_BytePair) 4402 4403 #define STATIC_KSDATAFORMAT_SUBTYPE_Line21_GOPPacket \ 4404 0x6e8d4a23,0x310c,0x11d0,0xb7,0x9a,0x00,0xaa,0x00,0x37,0x67,0xa7 4405 DEFINE_GUIDSTRUCT("6e8d4a23-310c-11d0-b79a-00aa003767a7",KSDATAFORMAT_SUBTYPE_Line21_GOPPacket); 4406 #define KSDATAFORMAT_SUBTYPE_Line21_GOPPacket DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_Line21_GOPPacket) 4407 4408 typedef struct _KSGOP_USERDATA { 4409 ULONG sc; 4410 ULONG reserved1; 4411 BYTE cFields; 4412 CHAR l21Data[3]; 4413 } KSGOP_USERDATA,*PKSGOP_USERDATA; 4414 4415 #define STATIC_KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK \ 4416 0xed0b916a,0x044d,0x11d1,0xaa,0x78,0x00,0xc0,0x4f,0xc3,0x1d,0x60 4417 DEFINE_GUIDSTRUCT("ed0b916a-044d-11d1-aa78-00c04fc31d60",KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK); 4418 #define KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK) 4419 4420 #define KS_AM_UseNewCSSKey 0x1 4421 4422 #define STATIC_KSPROPSETID_TSRateChange \ 4423 0xa503c5c0,0x1d1d,0x11d1,0xad,0x80,0x44,0x45,0x53,0x54,0x0,0x0 4424 DEFINE_GUIDSTRUCT("A503C5C0-1D1D-11D1-AD80-444553540000",KSPROPSETID_TSRateChange); 4425 #define KSPROPSETID_TSRateChange DEFINE_GUIDNAMED(KSPROPSETID_TSRateChange) 4426 4427 typedef enum { 4428 KS_AM_RATE_SimpleRateChange = 1, 4429 KS_AM_RATE_ExactRateChange = 2, 4430 KS_AM_RATE_MaxFullDataRate = 3, 4431 KS_AM_RATE_Step = 4 4432 } KS_AM_PROPERTY_TS_RATE_CHANGE; 4433 4434 typedef struct { 4435 REFERENCE_TIME StartTime; 4436 LONG Rate; 4437 } KS_AM_SimpleRateChange,*PKS_AM_SimpleRateChange; 4438 4439 typedef struct { 4440 REFERENCE_TIME OutputZeroTime; 4441 LONG Rate; 4442 } KS_AM_ExactRateChange,*PKS_AM_ExactRateChange; 4443 4444 typedef LONG KS_AM_MaxFullDataRate; 4445 typedef DWORD KS_AM_Step; 4446 4447 #define STATIC_KSCATEGORY_ENCODER \ 4448 0x19689bf6,0xc384,0x48fd,0xad,0x51,0x90,0xe5,0x8c,0x79,0xf7,0xb 4449 DEFINE_GUIDSTRUCT("19689BF6-C384-48fd-AD51-90E58C79F70B",KSCATEGORY_ENCODER); 4450 #define KSCATEGORY_ENCODER DEFINE_GUIDNAMED(KSCATEGORY_ENCODER) 4451 4452 #define STATIC_KSCATEGORY_MULTIPLEXER \ 4453 0x7a5de1d3,0x1a1,0x452c,0xb4,0x81,0x4f,0xa2,0xb9,0x62,0x71,0xe8 4454 DEFINE_GUIDSTRUCT("7A5DE1D3-01A1-452c-B481-4FA2B96271E8",KSCATEGORY_MULTIPLEXER); 4455 #define KSCATEGORY_MULTIPLEXER DEFINE_GUIDNAMED(KSCATEGORY_MULTIPLEXER) 4456 4457 #ifndef __ENCODER_API_GUIDS__ 4458 #define __ENCODER_API_GUIDS__ 4459 4460 #define STATIC_ENCAPIPARAM_BITRATE \ 4461 0x49cc4c43,0xca83,0x4ad4,0xa9,0xaf,0xf3,0x69,0x6a,0xf6,0x66,0xdf 4462 DEFINE_GUIDSTRUCT("49CC4C43-CA83-4ad4-A9AF-F3696AF666DF",ENCAPIPARAM_BITRATE); 4463 #define ENCAPIPARAM_BITRATE DEFINE_GUIDNAMED(ENCAPIPARAM_BITRATE) 4464 4465 #define STATIC_ENCAPIPARAM_PEAK_BITRATE \ 4466 0x703f16a9,0x3d48,0x44a1,0xb0,0x77,0x1,0x8d,0xff,0x91,0x5d,0x19 4467 DEFINE_GUIDSTRUCT("703F16A9-3D48-44a1-B077-018DFF915D19",ENCAPIPARAM_PEAK_BITRATE); 4468 #define ENCAPIPARAM_PEAK_BITRATE DEFINE_GUIDNAMED(ENCAPIPARAM_PEAK_BITRATE) 4469 4470 #define STATIC_ENCAPIPARAM_BITRATE_MODE \ 4471 0xee5fb25c,0xc713,0x40d1,0x9d,0x58,0xc0,0xd7,0x24,0x1e,0x25,0xf 4472 DEFINE_GUIDSTRUCT("EE5FB25C-C713-40d1-9D58-C0D7241E250F",ENCAPIPARAM_BITRATE_MODE); 4473 #define ENCAPIPARAM_BITRATE_MODE DEFINE_GUIDNAMED(ENCAPIPARAM_BITRATE_MODE) 4474 4475 #define STATIC_CODECAPI_CHANGELISTS \ 4476 0x62b12acf,0xf6b0,0x47d9,0x94,0x56,0x96,0xf2,0x2c,0x4e,0x0b,0x9d 4477 DEFINE_GUIDSTRUCT("62B12ACF-F6B0-47D9-9456-96F22C4E0B9D",CODECAPI_CHANGELISTS); 4478 #define CODECAPI_CHANGELISTS DEFINE_GUIDNAMED(CODECAPI_CHANGELISTS) 4479 4480 #define STATIC_CODECAPI_VIDEO_ENCODER \ 4481 0x7112e8e1,0x3d03,0x47ef,0x8e,0x60,0x03,0xf1,0xcf,0x53,0x73,0x01 4482 DEFINE_GUIDSTRUCT("7112E8E1-3D03-47EF-8E60-03F1CF537301",CODECAPI_VIDEO_ENCODER); 4483 #define CODECAPI_VIDEO_ENCODER DEFINE_GUIDNAMED(CODECAPI_VIDEO_ENCODER) 4484 4485 #define STATIC_CODECAPI_AUDIO_ENCODER \ 4486 0xb9d19a3e,0xf897,0x429c,0xbc,0x46,0x81,0x38,0xb7,0x27,0x2b,0x2d 4487 DEFINE_GUIDSTRUCT("B9D19A3E-F897-429C-BC46-8138B7272B2D",CODECAPI_AUDIO_ENCODER); 4488 #define CODECAPI_AUDIO_ENCODER DEFINE_GUIDNAMED(CODECAPI_AUDIO_ENCODER) 4489 4490 #define STATIC_CODECAPI_SETALLDEFAULTS \ 4491 0x6c5e6a7c,0xacf8,0x4f55,0xa9,0x99,0x1a,0x62,0x81,0x09,0x05,0x1b 4492 DEFINE_GUIDSTRUCT("6C5E6A7C-ACF8-4F55-A999-1A628109051B",CODECAPI_SETALLDEFAULTS); 4493 #define CODECAPI_SETALLDEFAULTS DEFINE_GUIDNAMED(CODECAPI_SETALLDEFAULTS) 4494 4495 #define STATIC_CODECAPI_ALLSETTINGS \ 4496 0x6a577e92,0x83e1,0x4113,0xad,0xc2,0x4f,0xce,0xc3,0x2f,0x83,0xa1 4497 DEFINE_GUIDSTRUCT("6A577E92-83E1-4113-ADC2-4FCEC32F83A1",CODECAPI_ALLSETTINGS); 4498 #define CODECAPI_ALLSETTINGS DEFINE_GUIDNAMED(CODECAPI_ALLSETTINGS) 4499 4500 #define STATIC_CODECAPI_SUPPORTSEVENTS \ 4501 0x0581af97,0x7693,0x4dbd,0x9d,0xca,0x3f,0x9e,0xbd,0x65,0x85,0xa1 4502 DEFINE_GUIDSTRUCT("0581AF97-7693-4DBD-9DCA-3F9EBD6585A1",CODECAPI_SUPPORTSEVENTS); 4503 #define CODECAPI_SUPPORTSEVENTS DEFINE_GUIDNAMED(CODECAPI_SUPPORTSEVENTS) 4504 4505 #define STATIC_CODECAPI_CURRENTCHANGELIST \ 4506 0x1cb14e83,0x7d72,0x4657,0x83,0xfd,0x47,0xa2,0xc5,0xb9,0xd1,0x3d 4507 DEFINE_GUIDSTRUCT("1CB14E83-7D72-4657-83FD-47A2C5B9D13D",CODECAPI_CURRENTCHANGELIST); 4508 #define CODECAPI_CURRENTCHANGELIST DEFINE_GUIDNAMED(CODECAPI_CURRENTCHANGELIST) 4509 #endif /* __ENCODER_API_GUIDS__ */ 4510 4511 #ifndef __ENCODER_API_DEFINES__ 4512 #define __ENCODER_API_DEFINES__ 4513 typedef enum { 4514 ConstantBitRate = 0, 4515 VariableBitRateAverage, 4516 VariableBitRatePeak 4517 } VIDEOENCODER_BITRATE_MODE; 4518 #endif /* __ENCODER_API_DEFINES__ */ 4519 4520 #if (_WIN32_WINNT >= 0x0601) 4521 typedef enum _TunerDecoderLockType { 4522 Tuner_LockType_None = 0x00, 4523 Tuner_LockType_Within_Scan_Sensing_Range = 0x01, 4524 Tuner_LockType_Locked = 0x02 4525 } TunerLockType; 4526 #endif /*(_WIN32_WINNT >= 0x0601)*/ 4527 4528 #endif /* _KSMEDIA_ */ 4529 4530