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 12typedef 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 19DEFINE_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 24DEFINE_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 29DEFINE_GUIDSTRUCT("3A13EB40-30A7-11D0-A5D6-28DB04C10000",KSINTERFACESETID_Media); 30#define KSINTERFACESETID_Media DEFINE_GUIDNAMED(KSINTERFACESETID_Media) 31 32typedef 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 127DEFINE_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) 151DEFINE_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) 156DEFINE_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) 161DEFINE_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) 166DEFINE_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) 171DEFINE_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) 176DEFINE_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 181DEFINE_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) 186DEFINE_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) 191DEFINE_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) 196DEFINE_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) 201DEFINE_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) 206DEFINE_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) 211DEFINE_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) 216DEFINE_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) 221DEFINE_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) 226DEFINE_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) 231DEFINE_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) 236DEFINE_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) 241DEFINE_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) 246DEFINE_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) 251DEFINE_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) 256DEFINE_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) 261DEFINE_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) 266DEFINE_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) 271DEFINE_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) 276DEFINE_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) 281DEFINE_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) 286DEFINE_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) 291DEFINE_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) 296DEFINE_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) 301DEFINE_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) 306DEFINE_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) 311DEFINE_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) 316DEFINE_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) 321DEFINE_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) 326DEFINE_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) 331DEFINE_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) 336DEFINE_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) 341DEFINE_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) 346DEFINE_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) 351DEFINE_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) 356DEFINE_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) 361DEFINE_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) 366DEFINE_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) 371DEFINE_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) 376DEFINE_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) 381DEFINE_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) 386DEFINE_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 391DEFINE_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 396DEFINE_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 401DEFINE_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 406DEFINE_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 411DEFINE_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 416DEFINE_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 421DEFINE_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 426DEFINE_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 431DEFINE_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 436DEFINE_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 441DEFINE_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 446DEFINE_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 451DEFINE_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 456DEFINE_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 467DEFINE_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 472DEFINE_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 477DEFINE_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 482DEFINE_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 487DEFINE_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 492DEFINE_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 497DEFINE_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 502DEFINE_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 507DEFINE_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 517DEFINE_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 604DEFINE_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) 609DEFINE_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) 615DEFINE_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) 620DEFINE_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) 625DEFINE_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) 630DEFINE_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) 635DEFINE_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) 640DEFINE_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 646DEFINE_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 651DEFINE_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 656DEFINE_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 663typedef struct { 664 KSDATAFORMAT DataFormat; 665 WAVEFORMATEX WaveFormatEx; 666} KSDATAFORMAT_WAVEFORMATEX,*PKSDATAFORMAT_WAVEFORMATEX; 667 668#ifndef _WAVEFORMATEXTENSIBLE_ 669#define _WAVEFORMATEXTENSIBLE_ 670typedef 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 687typedef struct { 688 ULONG Flags; 689 ULONG Control; 690 WAVEFORMATEX WaveFormatEx; 691} KSDSOUND_BUFFERDESC,*PKSDSOUND_BUFFERDESC; 692 693typedef 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 714typedef struct { 715 DWORDLONG PlayOffset; 716 DWORDLONG WriteOffset; 717} KSAUDIO_POSITION,*PKSAUDIO_POSITION; 718 719typedef 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 736DEFINE_GUIDSTRUCT("437b3414-d060-11d0-8583-00c04fd9baf3",KSPROPSETID_DirectSound3DListener); 737#define KSPROPSETID_DirectSound3DListener DEFINE_GUIDNAMED(KSPROPSETID_DirectSound3DListener) 738 739typedef 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 751typedef 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 761typedef 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 768DEFINE_GUIDSTRUCT("437b3411-d060-11d0-8583-00c04fd9baf3",KSPROPSETID_DirectSound3DBuffer); 769#define KSPROPSETID_DirectSound3DBuffer DEFINE_GUIDNAMED(KSPROPSETID_DirectSound3DBuffer) 770 771typedef 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 783typedef 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 795typedef 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 812typedef 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 821typedef enum { 822 FULL_FILTER, 823 LIGHT_FILTER, 824 KSDS3D_FILTER_QUALITY_COUNT 825} KSDS3D_HRTF_FILTER_QUALITY; 826 827typedef 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 838typedef enum { 839 FLOAT_COEFF, 840 SHORT_COEFF, 841 KSDS3D_COEFF_COUNT 842} KSDS3D_HRTF_COEFF_FORMAT; 843 844typedef enum { 845 DIRECT_FORM, 846 CASCADE_FORM, 847 KSDS3D_FILTER_METHOD_COUNT 848} KSDS3D_HRTF_FILTER_METHOD; 849 850typedef enum { 851 DS3D_HRTF_VERSION_1 852} KSDS3D_HRTF_FILTER_VERSION; 853 854typedef 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 863DEFINE_GUIDSTRUCT("b66decb0-a083-11d0-851e-00c04fd9baf3",KSPROPSETID_Hrtf3d); 864#define KSPROPSETID_Hrtf3d DEFINE_GUIDNAMED(KSPROPSETID_Hrtf3d) 865 866typedef enum { 867 KSPROPERTY_HRTF3D_PARAMS = 0, 868 KSPROPERTY_HRTF3D_INITIALIZE, 869 KSPROPERTY_HRTF3D_FILTER_FORMAT 870} KSPROPERTY_HRTF3D; 871 872typedef 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 881typedef 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 890DEFINE_GUIDSTRUCT("6429f090-9fd9-11d0-a75b-00a0c90365e3",KSPROPSETID_Itd3d); 891#define KSPROPSETID_Itd3d DEFINE_GUIDNAMED(KSPROPSETID_Itd3d) 892 893typedef enum { 894 KSPROPERTY_ITD3D_PARAMS = 0 895} KSPROPERTY_ITD3D; 896 897typedef 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 908DEFINE_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 913DEFINE_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 918DEFINE_GUIDSTRUCT("07BA150E-E2B1-11D0-AC17-00A0C9223196",KSPROPSETID_Bibliographic); 919#define KSPROPSETID_Bibliographic DEFINE_GUIDNAMED(KSPROPSETID_Bibliographic) 920 921typedef 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 962DEFINE_GUIDSTRUCT("45FFAAA1-6E1B-11D0-BCF2-444553540000",KSPROPSETID_TopologyNode); 963#define KSPROPSETID_TopologyNode DEFINE_GUIDNAMED(KSPROPSETID_TopologyNode) 964 965typedef 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 972DEFINE_GUIDSTRUCT("A855A48C-2F78-4729-9051-1968746B9EEF",KSPROPSETID_RtAudio); 973#define KSPROPSETID_RtAudio DEFINE_GUIDNAMED(KSPROPSETID_RtAudio) 974 975typedef 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 981DEFINE_GUIDSTRUCT("2F2C8DDD-4198-4fac-BA29-61BB05B7DE06",KSPROPSETID_DrmAudioStream); 982#define KSPROPSETID_DrmAudioStream DEFINE_GUIDNAMED(KSPROPSETID_DrmAudioStream) 983 984typedef 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 990DEFINE_GUIDSTRUCT("45FFAAA0-6E1B-11D0-BCF2-444553540000",KSPROPSETID_Audio); 991#define KSPROPSETID_Audio DEFINE_GUIDNAMED(KSPROPSETID_Audio) 992 993typedef 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 1044typedef struct { 1045 WINBOOL fCopyrighted; 1046 WINBOOL fOriginal; 1047} KSAUDIO_COPY_PROTECTION,*PKSAUDIO_COPY_PROTECTION; 1048 1049typedef 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 1112typedef struct { 1113 ULONG QuietCompression; 1114 ULONG LoudCompression; 1115} KSAUDIO_DYNAMIC_RANGE,*PKSAUDIO_DYNAMIC_RANGE; 1116 1117typedef struct { 1118 WINBOOL Mute; 1119 LONG Level; 1120} KSAUDIO_MIXLEVEL,*PKSAUDIO_MIXLEVEL; 1121 1122typedef struct { 1123 WINBOOL Mute; 1124 LONG Minimum; 1125 LONG Maximum; 1126 LONG Reset; 1127} KSAUDIO_MIX_CAPS,*PKSAUDIO_MIX_CAPS; 1128 1129typedef struct { 1130 ULONG InputChannels; 1131 ULONG OutputChannels; 1132 KSAUDIO_MIX_CAPS Capabilities[1]; 1133} KSAUDIO_MIXCAP_TABLE,*PKSAUDIO_MIXCAP_TABLE; 1134 1135typedef 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 1159typedef struct { 1160 SE_TECHNIQUE Technique; 1161 ULONG Center; 1162 ULONG Depth; 1163 ULONG Reserved; 1164} KSAUDIO_STEREO_ENHANCE,*PKSAUDIO_STEREO_ENHANCE; 1165 1166typedef 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 1174typedef 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 1183DEFINE_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 1188DEFINE_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 1193DEFINE_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 1198DEFINE_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 1203DEFINE_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 1208DEFINE_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 1213DEFINE_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 1218DEFINE_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 1223DEFINE_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 1228DEFINE_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 1233DEFINE_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 1238DEFINE_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 1243DEFINE_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 1248DEFINE_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 1253DEFINE_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 1258DEFINE_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 1263DEFINE_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 1268DEFINE_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 1273DEFINE_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 1278DEFINE_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 1283DEFINE_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 1291DEFINE_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 1296DEFINE_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 1301DEFINE_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 1306DEFINE_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 1314DEFINE_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 1319DEFINE_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 1325DEFINE_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 1330DEFINE_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 1335DEFINE_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 1340DEFINE_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 1345DEFINE_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 1350DEFINE_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 1355DEFINE_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 1360DEFINE_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 1365DEFINE_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 1370DEFINE_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 1375DEFINE_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 1380DEFINE_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 1385DEFINE_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 1390DEFINE_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 1395DEFINE_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 1400DEFINE_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 1405DEFINE_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 1410DEFINE_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 1415DEFINE_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 1420DEFINE_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 1425DEFINE_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 1430DEFINE_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 1435DEFINE_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 1440DEFINE_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 1445DEFINE_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 1450DEFINE_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 1455DEFINE_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 1460DEFINE_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 1465DEFINE_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 1470DEFINE_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 1475DEFINE_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 1480DEFINE_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 1485DEFINE_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 1490DEFINE_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 1495DEFINE_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 1500DEFINE_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 1505DEFINE_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 1510DEFINE_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 1515DEFINE_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 1520DEFINE_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 1525DEFINE_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 1530DEFINE_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 1535DEFINE_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 1540DEFINE_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 1545DEFINE_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 1550DEFINE_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 1555DEFINE_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 1560DEFINE_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 1565DEFINE_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 1570DEFINE_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 1575DEFINE_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 1594DEFINE_GUIDSTRUCT("DCEF31EB-D907-11D0-9583-00C04FB925D3",KSMETHODSETID_Wavetable); 1595#define KSMETHODSETID_Wavetable DEFINE_GUIDNAMED(KSMETHODSETID_Wavetable) 1596 1597typedef 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 1604typedef 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 1615DEFINE_GUIDSTRUCT("D7A4AF8B-3DC1-4902-91EA-8A15C90E05B2",KSPROPSETID_Acoustic_Echo_Cancel); 1616#define KSPROPSETID_Acoustic_Echo_Cancel DEFINE_GUIDNAMED(KSPROPSETID_Acoustic_Echo_Cancel) 1617 1618typedef 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 1636DEFINE_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 1642DEFINE_GUIDSTRUCT("924e54b0-630f-11cf-ada7-08003e30494a",KSPROPSETID_Wave); 1643#define KSPROPSETID_Wave DEFINE_GUIDNAMED(KSPROPSETID_Wave) 1644 1645typedef 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 1655typedef struct { 1656 ULONG ulDeviceType; 1657} KSWAVE_COMPATCAPS,*PKSWAVE_COMPATCAPS; 1658 1659#define KSWAVE_COMPATCAPS_INPUT 0x00000000 1660#define KSWAVE_COMPATCAPS_OUTPUT 0x00000001 1661 1662typedef 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 1672typedef 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 1695typedef 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 1703typedef 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 1711DEFINE_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 1716DEFINE_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 1721DEFINE_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 1726DEFINE_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 1731DEFINE_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 1736DEFINE_GUIDSTRUCT("8539E660-62E9-11CF-A5D6-28DB04C10000",KSPROPSETID_WaveTable); 1737#define KSPROPSETID_WaveTable DEFINE_GUIDNAMED(KSPROPSETID_WaveTable) 1738 1739typedef enum { 1740 KSPROPERTY_WAVETABLE_LOAD_SAMPLE, 1741 KSPROPERTY_WAVETABLE_UNLOAD_SAMPLE, 1742 KSPROPERTY_WAVETABLE_MEMORY, 1743 KSPROPERTY_WAVETABLE_VERSION 1744} KSPROPERTY_WAVETABLE; 1745 1746typedef 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 1756DEFINE_GUIDSTRUCT("142C1AC0-072A-11D0-A5D6-28DB04C10000",KSEVENTSETID_Cyclic); 1757#define KSEVENTSETID_Cyclic DEFINE_GUIDNAMED(KSEVENTSETID_Cyclic) 1758 1759typedef 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 1765DEFINE_GUIDSTRUCT("3FFEAEA0-2BEE-11CF-A5D6-28DB04C10000",KSPROPSETID_Cyclic); 1766#define KSPROPSETID_Cyclic DEFINE_GUIDNAMED(KSPROPSETID_Cyclic) 1767 1768typedef 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 1774DEFINE_GUIDSTRUCT("E85E9698-FA2F-11D1-95BD-00C04FB925D3",KSEVENTSETID_AudioControlChange); 1775#define KSEVENTSETID_AudioControlChange DEFINE_GUIDNAMED(KSEVENTSETID_AudioControlChange) 1776 1777typedef 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 1783DEFINE_GUIDSTRUCT("4682B940-C6EF-11D0-96D8-00AA0051E51D",KSEVENTSETID_LoopedStreaming); 1784#define KSEVENTSETID_LoopedStreaming DEFINE_GUIDNAMED(KSEVENTSETID_LoopedStreaming) 1785 1786typedef enum { 1787 KSEVENT_LOOPEDSTREAMING_POSITION 1788} KSEVENT_LOOPEDSTREAMING; 1789 1790typedef 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 1797DEFINE_GUIDSTRUCT("CBE3FAA0-CC75-11D0-B465-00001A1818E6",KSPROPSETID_Sysaudio); 1798#define KSPROPSETID_Sysaudio DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio) 1799 1800typedef 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 1812typedef struct { 1813 KSPROPERTY Property; 1814 GUID PinCategory; 1815 GUID PinName; 1816} SYSAUDIO_CREATE_VIRTUAL_SOURCE,*PSYSAUDIO_CREATE_VIRTUAL_SOURCE; 1817 1818typedef struct { 1819 KSPROPERTY Property; 1820 ULONG PinId; 1821 ULONG NodeId; 1822 ULONG Flags; 1823 ULONG Reserved; 1824} SYSAUDIO_SELECT_GRAPH,*PSYSAUDIO_SELECT_GRAPH; 1825 1826typedef 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 1836DEFINE_GUIDSTRUCT("A3A53220-C6E4-11D0-B465-00001A1818E6",KSPROPSETID_Sysaudio_Pin); 1837#define KSPROPSETID_Sysaudio_Pin DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio_Pin) 1838 1839typedef enum { 1840 KSPROPERTY_SYSAUDIO_ATTACH_VIRTUAL_SOURCE = 1 1841} KSPROPERTY_SYSAUDIO_PIN; 1842 1843typedef struct { 1844 KSPROPERTY Property; 1845 ULONG MixerPinId; 1846 ULONG Reserved; 1847} SYSAUDIO_ATTACH_VIRTUAL_SOURCE,*PSYSAUDIO_ATTACH_VIRTUAL_SOURCE; 1848 1849typedef struct { 1850 KSPROPERTY Property; 1851 ULONG NodeId; 1852 ULONG Reserved; 1853} KSNODEPROPERTY,*PKSNODEPROPERTY; 1854 1855typedef struct { 1856 KSNODEPROPERTY NodeProperty; 1857 LONG Channel; 1858 ULONG Reserved; 1859} KSNODEPROPERTY_AUDIO_CHANNEL,*PKSNODEPROPERTY_AUDIO_CHANNEL; 1860 1861typedef struct { 1862 KSNODEPROPERTY NodeProperty; 1863 ULONG DevSpecificId; 1864 ULONG DeviceInfo; 1865 ULONG Length; 1866} KSNODEPROPERTY_AUDIO_DEV_SPECIFIC,*PKSNODEPROPERTY_AUDIO_DEV_SPECIFIC; 1867 1868typedef 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 1876typedef 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 1887DEFINE_GUIDSTRUCT("79A9312E-59AE-43b0-A350-8B05284CAB24",KSPROPSETID_AudioGfx); 1888#define KSPROPSETID_AudioGfx DEFINE_GUIDNAMED(KSPROPSETID_AudioGfx) 1889 1890typedef 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 1897DEFINE_GUIDSTRUCT("5A2FFE80-16B9-11D0-A5D6-28DB04C10000",KSPROPSETID_Linear); 1898#define KSPROPSETID_Linear DEFINE_GUIDNAMED(KSPROPSETID_Linear) 1899 1900typedef 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 1906DEFINE_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 1911DEFINE_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 1916DEFINE_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 1921DEFINE_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 1926DEFINE_GUIDSTRUCT("4995DAF0-9EE6-11D0-A40E-00A0C9223196",KSDATAFORMAT_SUBTYPE_RIFFMIDI); 1927#define KSDATAFORMAT_SUBTYPE_RIFFMIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFFMIDI) 1928 1929typedef 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 1937DEFINE_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 1942DEFINE_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 1947DEFINE_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 1952DEFINE_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 1957DEFINE_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 1962DEFINE_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 1967DEFINE_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 1972DEFINE_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 1977DEFINE_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 1982DEFINE_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 1987DEFINE_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 1992DEFINE_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 1997DEFINE_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 2002DEFINE_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 2007DEFINE_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 2012DEFINE_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 2017DEFINE_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 2022DEFINE_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 2027DEFINE_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 2032DEFINE_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 2037DEFINE_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 2042DEFINE_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 2047DEFINE_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 2052DEFINE_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 2057DEFINE_GUIDSTRUCT("C8E11B60-0CC9-11D0-BD69-003505C103A9",KSPROPSETID_Mpeg2Vid); 2058#define KSPROPSETID_Mpeg2Vid DEFINE_GUIDNAMED(KSPROPSETID_Mpeg2Vid) 2059 2060typedef 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 2072typedef 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 2081DEFINE_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 2086DEFINE_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 2091DEFINE_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 2096DEFINE_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 2101DEFINE_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 2106DEFINE_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 2111DEFINE_GUIDSTRUCT("BFABE720-6E1F-11D0-BCF2-444553540000",KSPROPSETID_AC3); 2112#define KSPROPSETID_AC3 DEFINE_GUIDNAMED(KSPROPSETID_AC3) 2113 2114typedef 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 2124typedef struct { 2125 WINBOOL fRepeatPreviousBlock; 2126 WINBOOL fErrorInCurrentBlock; 2127} KSAC3_ERROR_CONCEALMENT,*PKSAC3_ERROR_CONCEALMENT; 2128 2129typedef 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 2138typedef struct { 2139 WINBOOL fDownMix; 2140 WINBOOL fDolbySurround; 2141} KSAC3_DOWNMIX,*PKSAC3_DOWNMIX; 2142 2143typedef 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 2156typedef struct { 2157 ULONG DialogueLevel; 2158} KSAC3_DIALOGUE_LEVEL,*PKSAC3_DIALOGUE_LEVEL; 2159 2160typedef 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 2166DEFINE_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 2171DEFINE_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 2176DEFINE_GUIDSTRUCT("6ca6e020-43bd-11d0-bd6a-003505c103a9",KSPROPSETID_AudioDecoderOut); 2177#define KSPROPSETID_AudioDecoderOut DEFINE_GUIDNAMED(KSPROPSETID_AudioDecoderOut) 2178 2179typedef 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 2190DEFINE_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 2195DEFINE_GUIDSTRUCT("ac390460-43af-11d0-bd6a-003505c103a9",KSPROPSETID_DvdSubPic); 2196#define KSPROPSETID_DvdSubPic DEFINE_GUIDNAMED(KSPROPSETID_DvdSubPic) 2197 2198typedef enum { 2199 KSPROPERTY_DVDSUBPIC_PALETTE, 2200 KSPROPERTY_DVDSUBPIC_HLI, 2201 KSPROPERTY_DVDSUBPIC_COMPOSIT_ON 2202} KSPROPERTY_DVDSUBPIC; 2203 2204typedef struct _KS_DVD_YCrCb { 2205 UCHAR Reserved; 2206 UCHAR Y; 2207 UCHAR Cr; 2208 UCHAR Cb; 2209} KS_DVD_YCrCb,*PKS_DVD_YCrCb; 2210 2211typedef struct _KS_DVD_YUV { 2212 UCHAR Reserved; 2213 UCHAR Y; 2214 UCHAR V; 2215 UCHAR U; 2216} KS_DVD_YUV,*PKS_DVD_YUV; 2217 2218typedef struct _KSPROPERTY_SPPAL { 2219 KS_DVD_YUV sppal[16]; 2220} KSPROPERTY_SPPAL,*PKSPROPERTY_SPPAL; 2221 2222typedef 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 2233typedef 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 2245typedef 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 2249DEFINE_GUIDSTRUCT("0E8A0A40-6AEF-11D0-9ED0-00A024CA19B3",KSPROPSETID_CopyProt); 2250#define KSPROPSETID_CopyProt DEFINE_GUIDNAMED(KSPROPSETID_CopyProt) 2251 2252typedef 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 2263typedef struct _KS_DVDCOPY_CHLGKEY { 2264 BYTE ChlgKey[10]; 2265 BYTE Reserved[2]; 2266} KS_DVDCOPY_CHLGKEY,*PKS_DVDCOPY_CHLGKEY; 2267 2268typedef struct _KS_DVDCOPY_BUSKEY { 2269 BYTE BusKey[5]; 2270 BYTE Reserved[1]; 2271} KS_DVDCOPY_BUSKEY,*PKS_DVDCOPY_BUSKEY; 2272 2273typedef struct _KS_DVDCOPY_DISCKEY { 2274 BYTE DiscKey[2048]; 2275} KS_DVDCOPY_DISCKEY,*PKS_DVDCOPY_DISCKEY; 2276 2277typedef struct _KS_DVDCOPY_REGION { 2278 UCHAR Reserved; 2279 UCHAR RegionData; 2280 UCHAR Reserved2[2]; 2281} KS_DVDCOPY_REGION,*PKS_DVDCOPY_REGION; 2282 2283typedef 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 2290typedef struct _KS_COPY_MACROVISION { 2291 ULONG MACROVISIONLevel; 2292} KS_COPY_MACROVISION,*PKS_COPY_MACROVISION; 2293 2294typedef struct _KS_DVDCOPY_SET_COPY_STATE { 2295 ULONG DVDCopyState; 2296} KS_DVDCOPY_SET_COPY_STATE,*PKS_DVDCOPY_SET_COPY_STATE; 2297 2298typedef 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 2306typedef 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 2330DEFINE_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 2335DEFINE_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 2340DEFINE_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 2345DEFINE_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 2350DEFINE_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 2355DEFINE_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 2360DEFINE_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 2365DEFINE_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 2370DEFINE_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 2375DEFINE_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 2380DEFINE_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 2385DEFINE_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 2390DEFINE_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 2395DEFINE_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 2400DEFINE_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 2405DEFINE_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 2410DEFINE_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 2415DEFINE_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 2423typedef 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 2442typedef 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 2456typedef 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 2468typedef LONGLONG REFERENCE_TIME; 2469#endif /*__REFERENCE_TIME_DEFINED*/ 2470 2471typedef 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 2480typedef 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 2499typedef 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 2521typedef 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 2532typedef 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 2539typedef enum { 2540 KS_MPEG2Level_Low, 2541 KS_MPEG2Level_Main, 2542 KS_MPEG2Level_High1440, 2543 KS_MPEG2Level_High 2544} KS_MPEG2Level; 2545 2546typedef 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 2578typedef 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 2593typedef 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 2604typedef 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 2619typedef struct tagKS_MPEAUDIOINFO { 2620 DWORD dwFlags; 2621 DWORD dwReserved1; 2622 DWORD dwReserved2; 2623 DWORD dwReserved3; 2624} KS_MPEGAUDIOINFO,*PKS_MPEGAUDIOINFO; 2625 2626typedef struct tagKS_DATAFORMAT_VIDEOINFOHEADER { 2627 KSDATAFORMAT DataFormat; 2628 KS_VIDEOINFOHEADER VideoInfoHeader; 2629} KS_DATAFORMAT_VIDEOINFOHEADER,*PKS_DATAFORMAT_VIDEOINFOHEADER; 2630 2631typedef struct tagKS_DATAFORMAT_VIDEOINFOHEADER2 { 2632 KSDATAFORMAT DataFormat; 2633 KS_VIDEOINFOHEADER2 VideoInfoHeader2; 2634} KS_DATAFORMAT_VIDEOINFOHEADER2,*PKS_DATAFORMAT_VIDEOINFOHEADER2; 2635 2636typedef struct tagKS_DATAFORMAT_VIDEOINFO_PALETTE { 2637 KSDATAFORMAT DataFormat; 2638 KS_VIDEOINFO VideoInfo; 2639} KS_DATAFORMAT_VIDEOINFO_PALETTE,*PKS_DATAFORMAT_VIDEOINFO_PALETTE; 2640 2641typedef struct tagKS_DATAFORMAT_VBIINFOHEADER { 2642 KSDATAFORMAT DataFormat; 2643 KS_VBIINFOHEADER VBIInfoHeader; 2644} KS_DATAFORMAT_VBIINFOHEADER,*PKS_DATAFORMAT_VBIINFOHEADER; 2645 2646typedef 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 2670typedef 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 2680typedef 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 2690typedef 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 2700typedef 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 2710typedef 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 2720typedef 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 2730typedef 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 2751DEFINE_GUIDSTRUCT("F162C607-7B35-496f-AD7F-2DCA3B46B718",KSPROPSETID_VBICAP_PROPERTIES); 2752#define KSPROPSETID_VBICAP_PROPERTIES DEFINE_GUIDNAMED(KSPROPSETID_VBICAP_PROPERTIES) 2753 2754typedef enum { 2755 KSPROPERTY_VBICAP_PROPERTIES_PROTECTION = 0x01 2756} KSPROPERTY_VBICAP; 2757 2758typedef 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 2790DEFINE_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 2795DEFINE_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 2803typedef 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 2812DEFINE_GUIDSTRUCT("cafeb0ca-8715-11d0-bd6a-0035c0edbabe",KSPROPSETID_VBICodecFiltering); 2813#define KSPROPSETID_VBICodecFiltering DEFINE_GUIDNAMED(KSPROPSETID_VBICodecFiltering) 2814 2815typedef 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 2823typedef struct _VBICODECFILTERING_SCANLINES { 2824 DWORD DwordBitArray[32]; 2825} VBICODECFILTERING_SCANLINES,*PVBICODECFILTERING_SCANLINES; 2826 2827typedef struct _VBICODECFILTERING_NABTS_SUBSTREAMS { 2828 DWORD SubstreamMask[128]; 2829} VBICODECFILTERING_NABTS_SUBSTREAMS,*PVBICODECFILTERING_NABTS_SUBSTREAMS; 2830 2831typedef 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 2852typedef struct _CC_BYTE_PAIR { 2853 BYTE Decoded[2]; 2854 USHORT Reserved; 2855} CC_BYTE_PAIR,*PCC_BYTE_PAIR; 2856 2857typedef 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 2867typedef 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 2873typedef 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 2888typedef struct _WST_BUFFER_LINE { 2889 BYTE Confidence; 2890 BYTE Bytes[WST_BYTES_PER_LINE]; 2891} WST_BUFFER_LINE,*PWST_BUFFER_LINE; 2892 2893typedef struct _WST_BUFFER { 2894 VBICODECFILTERING_SCANLINES ScanlinesRequested; 2895 WST_BUFFER_LINE WstLines[MAX_WST_VBI_LINES_PER_FIELD]; 2896} WST_BUFFER,*PWST_BUFFER; 2897 2898typedef 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 2915typedef 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 2926typedef 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 2937typedef struct _VBICODECFILTERING_STATISTICS_NABTS_PIN { 2938 VBICODECFILTERING_STATISTICS_COMMON_PIN Common; 2939} VBICODECFILTERING_STATISTICS_NABTS_PIN,*PVBICODECFILTERING_STATISTICS_NABTS_PIN; 2940 2941typedef struct _VBICODECFILTERING_STATISTICS_CC { 2942 VBICODECFILTERING_STATISTICS_COMMON Common; 2943} VBICODECFILTERING_STATISTICS_CC,*PVBICODECFILTERING_STATISTICS_CC; 2944 2945typedef struct _VBICODECFILTERING_STATISTICS_CC_PIN { 2946 VBICODECFILTERING_STATISTICS_COMMON_PIN Common; 2947} VBICODECFILTERING_STATISTICS_CC_PIN,*PVBICODECFILTERING_STATISTICS_CC_PIN; 2948 2949typedef struct _VBICODECFILTERING_STATISTICS_TELETEXT { 2950 VBICODECFILTERING_STATISTICS_COMMON Common; 2951} VBICODECFILTERING_STATISTICS_TELETEXT,*PVBICODECFILTERING_STATISTICS_TELETEXT; 2952 2953typedef struct _VBICODECFILTERING_STATISTICS_TELETEXT_PIN { 2954 VBICODECFILTERING_STATISTICS_COMMON_PIN Common; 2955} VBICODECFILTERING_STATISTICS_TELETEXT_PIN,*PVBICODECFILTERING_STATISTICS_TELETEXT_PIN; 2956 2957typedef struct { 2958 KSPROPERTY Property; 2959 VBICODECFILTERING_SCANLINES Scanlines; 2960} KSPROPERTY_VBICODECFILTERING_SCANLINES_S,*PKSPROPERTY_VBICODECFILTERING_SCANLINES_S; 2961 2962typedef struct { 2963 KSPROPERTY Property; 2964 VBICODECFILTERING_NABTS_SUBSTREAMS Substreams; 2965} KSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S,*PKSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S; 2966 2967typedef struct { 2968 KSPROPERTY Property; 2969 VBICODECFILTERING_CC_SUBSTREAMS Substreams; 2970} KSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S,*PKSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S; 2971 2972typedef struct { 2973 KSPROPERTY Property; 2974 VBICODECFILTERING_STATISTICS_COMMON Statistics; 2975} KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S; 2976 2977typedef struct { 2978 KSPROPERTY Property; 2979 VBICODECFILTERING_STATISTICS_COMMON_PIN Statistics; 2980} KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S; 2981 2982typedef struct { 2983 KSPROPERTY Property; 2984 VBICODECFILTERING_STATISTICS_NABTS Statistics; 2985} KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S; 2986 2987typedef struct { 2988 KSPROPERTY Property; 2989 VBICODECFILTERING_STATISTICS_NABTS_PIN Statistics; 2990} KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S; 2991 2992typedef struct { 2993 KSPROPERTY Property; 2994 VBICODECFILTERING_STATISTICS_CC Statistics; 2995} KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S; 2996 2997typedef 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 3005DEFINE_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 3012DEFINE_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 3018DEFINE_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 3024DEFINE_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 3030DEFINE_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 3035DEFINE_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 3040DEFINE_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 3045DEFINE_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 3050DEFINE_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 3055DEFINE_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 3060DEFINE_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 3065DEFINE_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 3070DEFINE_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 3075DEFINE_GUIDSTRUCT("FB6C428C-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VIDEOPORT_VBI); 3076#define PINNAME_VIDEO_VIDEOPORT_VBI DEFINE_GUIDNAMED(PINNAME_VIDEO_VIDEOPORT_VBI) 3077 3078 3079typedef 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 3089DEFINE_GUIDSTRUCT("E73FACE3-2880-4902-B799-88D0CD634E0F", KSPROPSETID_VramCapture); 3090#define KSPROPSETID_VramCapture DEFINE_GUIDNAMED(KSPROPSETID_VramCapture) 3091 3092typedef 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 3128typedef 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 3139typedef 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 3153typedef 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 3178typedef 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 3188typedef 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 3219DEFINE_GUIDSTRUCT("53171960-148E-11d2-9979-0000C0CC16BA",PROPSETID_ALLOCATOR_CONTROL); 3220#define PROPSETID_ALLOCATOR_CONTROL DEFINE_GUIDNAMED(PROPSETID_ALLOCATOR_CONTROL) 3221 3222typedef 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 3229typedef struct { 3230 ULONG CX; 3231 ULONG CY; 3232} KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S,*PKSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S; 3233 3234typedef struct { 3235 ULONG InterleavedCapSupported; 3236} KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S,*PKSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S; 3237 3238typedef 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 3244DEFINE_GUIDSTRUCT("C6E13360-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEOPROCAMP); 3245#define PROPSETID_VIDCAP_VIDEOPROCAMP DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOPROCAMP) 3246 3247typedef 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 3264typedef struct { 3265 KSPROPERTY Property; 3266 LONG Value; 3267 ULONG Flags; 3268 ULONG Capabilities; 3269} KSPROPERTY_VIDEOPROCAMP_S,*PKSPROPERTY_VIDEOPROCAMP_S; 3270 3271typedef struct { 3272 KSP_NODE NodeProperty; 3273 LONG Value; 3274 ULONG Flags; 3275 ULONG Capabilities; 3276} KSPROPERTY_VIDEOPROCAMP_NODE_S,*PKSPROPERTY_VIDEOPROCAMP_NODE_S; 3277 3278typedef struct { 3279 KSPROPERTY Property; 3280 LONG Value1; 3281 ULONG Flags; 3282 ULONG Capabilities; 3283 LONG Value2; 3284} KSPROPERTY_VIDEOPROCAMP_S2,*PKSPROPERTY_VIDEOPROCAMP_S2; 3285 3286typedef 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 3299DEFINE_GUIDSTRUCT("1ABDAECA-68B6-4F83-9371-B413907C7B9F",PROPSETID_VIDCAP_SELECTOR); 3300#define PROPSETID_VIDCAP_SELECTOR DEFINE_GUIDNAMED(PROPSETID_VIDCAP_SELECTOR) 3301 3302typedef enum { 3303 KSPROPERTY_SELECTOR_SOURCE_NODE_ID, 3304 KSPROPERTY_SELECTOR_NUM_SOURCES 3305} KSPROPERTY_VIDCAP_SELECTOR,*PKSPROPERTY_VIDCAP_SELECTOR; 3306 3307typedef struct { 3308 KSPROPERTY Property; 3309 LONG Value; 3310 ULONG Flags; 3311 ULONG Capabilities; 3312} KSPROPERTY_SELECTOR_S,*PKSPROPERTY_SELECTOR_S; 3313 3314typedef 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 3323DEFINE_GUIDSTRUCT("6a2e0605-28e4-11d0-a18c-00a0c9118956",PROPSETID_TUNER); 3324#define PROPSETID_TUNER DEFINE_GUIDNAMED(PROPSETID_TUNER) 3325 3326typedef 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 3337typedef 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 3345typedef enum { 3346 KS_TUNER_TUNING_EXACT = 1, 3347 KS_TUNER_TUNING_FINE, 3348 KS_TUNER_TUNING_COARSE 3349} KS_TUNER_TUNING_FLAGS; 3350 3351typedef 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 3357typedef 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 3365typedef struct { 3366 KSPROPERTY Property; 3367 KSPIN_MEDIUM IFMedium; 3368} KSPROPERTY_TUNER_IF_MEDIUM_S,*PKSPROPERTY_TUNER_IF_MEDIUM_S; 3369 3370typedef 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 3382typedef struct { 3383 KSPROPERTY Property; 3384 ULONG Mode; 3385} KSPROPERTY_TUNER_MODE_S,*PKSPROPERTY_TUNER_MODE_S; 3386 3387typedef 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 3398typedef struct { 3399 KSPROPERTY Property; 3400 ULONG Standard; 3401} KSPROPERTY_TUNER_STANDARD_S,*PKSPROPERTY_TUNER_STANDARD_S; 3402 3403typedef struct { 3404 KSPROPERTY Property; 3405 ULONG InputIndex; 3406} KSPROPERTY_TUNER_INPUT_S,*PKSPROPERTY_TUNER_INPUT_S; 3407 3408typedef 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 3418DEFINE_GUIDSTRUCT("6a2e0606-28e4-11d0-a18c-00a0c9118956",EVENTSETID_TUNER); 3419#define EVENTSETID_TUNER DEFINE_GUIDNAMED(EVENTSETID_TUNER) 3420 3421typedef 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 3427DEFINE_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 3432DEFINE_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 3437DEFINE_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 3442DEFINE_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 3447DEFINE_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 3452DEFINE_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 3457DEFINE_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 3462DEFINE_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 3467DEFINE_GUIDSTRUCT("6a2e0610-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_VIDEOENCODER); 3468#define PROPSETID_VIDCAP_VIDEOENCODER DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOENCODER) 3469 3470typedef enum { 3471 KSPROPERTY_VIDEOENCODER_CAPS, 3472 KSPROPERTY_VIDEOENCODER_STANDARD, 3473 KSPROPERTY_VIDEOENCODER_COPYPROTECTION, 3474 KSPROPERTY_VIDEOENCODER_CC_ENABLE 3475} KSPROPERTY_VIDCAP_VIDEOENCODER; 3476 3477typedef 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 3486DEFINE_GUIDSTRUCT("C6E13350-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEODECODER); 3487#define PROPSETID_VIDCAP_VIDEODECODER DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEODECODER) 3488 3489typedef 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 3497typedef 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 3503typedef 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 3511typedef struct { 3512 KSPROPERTY Property; 3513 ULONG NumberOfLines; 3514 ULONG SignalLocked; 3515} KSPROPERTY_VIDEODECODER_STATUS_S,*PKSPROPERTY_VIDEODECODER_STATUS_S; 3516 3517typedef 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 3524DEFINE_GUIDSTRUCT("6a2e0621-28e4-11d0-a18c-00a0c9118956",EVENTSETID_VIDEODECODER); 3525#define EVENTSETID_VIDEODECODER DEFINE_GUIDNAMED(EVENTSETID_VIDEODECODER) 3526 3527typedef 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 3533DEFINE_GUIDSTRUCT("C6E13370-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_CAMERACONTROL); 3534#define PROPSETID_VIDCAP_CAMERACONTROL DEFINE_GUIDNAMED(PROPSETID_VIDCAP_CAMERACONTROL) 3535 3536typedef 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 3558typedef struct { 3559 KSPROPERTY Property; 3560 LONG Value; 3561 ULONG Flags; 3562 ULONG Capabilities; 3563} KSPROPERTY_CAMERACONTROL_S,*PKSPROPERTY_CAMERACONTROL_S; 3564 3565typedef struct { 3566 KSP_NODE NodeProperty; 3567 LONG Value; 3568 ULONG Flags; 3569 ULONG Capabilities; 3570} KSPROPERTY_CAMERACONTROL_NODE_S,PKSPROPERTY_CAMERACONTROL_NODE_S; 3571 3572typedef struct { 3573 KSPROPERTY Property; 3574 LONG Value1; 3575 ULONG Flags; 3576 ULONG Capabilities; 3577 LONG Value2; 3578} KSPROPERTY_CAMERACONTROL_S2,*PKSPROPERTY_CAMERACONTROL_S2; 3579 3580typedef 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 3588typedef 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 3595typedef 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 3613DEFINE_GUIDSTRUCT("B5730A90-1A2C-11cf-8C23-00AA006B6814",PROPSETID_EXT_DEVICE); 3614#define PROPSETID_EXT_DEVICE DEFINE_GUIDNAMED(PROPSETID_EXT_DEVICE) 3615 3616typedef 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 3624typedef 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 3650typedef 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 3663DEFINE_GUIDSTRUCT("A03CD5F0-3045-11cf-8C44-00AA006B6814",PROPSETID_EXT_TRANSPORT); 3664#define PROPSETID_EXT_TRANSPORT DEFINE_GUIDNAMED(PROPSETID_EXT_TRANSPORT) 3665 3666typedef 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 3680typedef 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 3696typedef 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 3729typedef struct tagTRANSPORTVIDEOPARMS { 3730 LONG OutputMode; 3731 LONG Input; 3732} TRANSPORTVIDEOPARMS,*PTRANSPORTVIDEOPARMS; 3733 3734typedef struct tagTRANSPORTAUDIOPARMS { 3735 LONG EnableOutput; 3736 LONG EnableRecord; 3737 LONG EnableSelsync; 3738 LONG Input; 3739 LONG MonitorSource; 3740} TRANSPORTAUDIOPARMS,*PTRANSPORTAUDIOPARMS; 3741 3742typedef struct { 3743 WINBOOL MediaPresent; 3744 ULONG MediaType; 3745 WINBOOL RecordInhibit; 3746} MEDIUM_INFO,*PMEDIUM_INFO; 3747 3748typedef struct { 3749 ULONG Mode; 3750 ULONG State; 3751} TRANSPORT_STATE,*PTRANSPORT_STATE; 3752 3753typedef 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 3776typedef 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 3801DEFINE_GUIDSTRUCT("9B496CE1-811B-11cf-8C77-00AA006B6814",PROPSETID_TIMECODE_READER); 3802#define PROPSETID_TIMECODE_READER DEFINE_GUIDNAMED(PROPSETID_TIMECODE_READER) 3803 3804typedef 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 3812typedef union _timecode { 3813 struct { 3814 WORD wFrameRate; 3815 WORD wFrameFract; 3816 DWORD dwFrames; 3817 }; 3818 DWORDLONG qw; 3819} TIMECODE; 3820typedef TIMECODE *PTIMECODE; 3821 3822typedef struct tagTIMECODE_SAMPLE { 3823 LONGLONG qwTick; 3824 TIMECODE timecode; 3825 DWORD dwUser; 3826 DWORD dwFlags; 3827} TIMECODE_SAMPLE; 3828 3829typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE; 3830#endif /* TIMECODE_DEFINED */ 3831 3832typedef struct { 3833 KSPROPERTY Property; 3834 TIMECODE_SAMPLE TimecodeSamp; 3835} KSPROPERTY_TIMECODE_S,*PKSPROPERTY_TIMECODE_S; 3836 3837typedef 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 3844DEFINE_GUIDSTRUCT("109c7988-b3cb-11d2-b48e-006097b3391b",KSEVENTSETID_EXTDEV_Command); 3845#define KSEVENTSETID_EXTDEV_Command DEFINE_GUIDNAMED(KSEVENTSETID_EXTDEV_Command) 3846 3847typedef 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 3861DEFINE_GUIDSTRUCT("6a2e0640-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_CROSSBAR); 3862#define PROPSETID_VIDCAP_CROSSBAR DEFINE_GUIDNAMED(PROPSETID_VIDCAP_CROSSBAR) 3863 3864typedef enum { 3865 KSPROPERTY_CROSSBAR_CAPS, 3866 KSPROPERTY_CROSSBAR_PININFO, 3867 KSPROPERTY_CROSSBAR_CAN_ROUTE, 3868 KSPROPERTY_CROSSBAR_ROUTE 3869} KSPROPERTY_VIDCAP_CROSSBAR; 3870 3871typedef struct { 3872 KSPROPERTY Property; 3873 ULONG NumberOfInputs; 3874 ULONG NumberOfOutputs; 3875} KSPROPERTY_CROSSBAR_CAPS_S,*PKSPROPERTY_CROSSBAR_CAPS_S; 3876 3877typedef 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 3886typedef 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 3895DEFINE_GUIDSTRUCT("6a2e0641-28e4-11d0-a18c-00a0c9118956",EVENTSETID_CROSSBAR); 3896#define EVENTSETID_CROSSBAR DEFINE_GUIDNAMED(EVENTSETID_CROSSBAR) 3897 3898typedef enum { 3899 KSEVENT_CROSSBAR_CHANGED 3900} KSEVENT_CROSSBAR; 3901 3902typedef 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 3931DEFINE_GUIDSTRUCT("6a2e0650-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_TVAUDIO); 3932#define PROPSETID_VIDCAP_TVAUDIO DEFINE_GUIDNAMED(PROPSETID_VIDCAP_TVAUDIO) 3933 3934typedef 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 3946typedef 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 3953typedef 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 3960DEFINE_GUIDSTRUCT("6a2e0651-28e4-11d0-a18c-00a0c9118956",KSEVENTSETID_VIDCAP_TVAUDIO); 3961#define KSEVENTSETID_VIDCAP_TVAUDIO DEFINE_GUIDNAMED(KSEVENTSETID_VIDCAP_TVAUDIO) 3962 3963typedef 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 3969DEFINE_GUIDSTRUCT("C6E13343-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEOCOMPRESSION); 3970#define PROPSETID_VIDCAP_VIDEOCOMPRESSION DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOCOMPRESSION) 3971 3972typedef 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 3982typedef 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 3990typedef 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 3998typedef 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 4008typedef struct { 4009 KSPROPERTY Property; 4010 ULONG StreamIndex; 4011 LONG Value; 4012} KSPROPERTY_VIDEOCOMPRESSION_S,*PKSPROPERTY_VIDEOCOMPRESSION_S; 4013 4014typedef 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 4023DEFINE_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 4028DEFINE_GUIDSTRUCT("490EA5CF-7681-11D1-A21C-00A0C9223196",KSPROPSETID_OverlayUpdate); 4029#define KSPROPSETID_OverlayUpdate DEFINE_GUIDNAMED(KSPROPSETID_OverlayUpdate) 4030 4031typedef 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 4041typedef 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 4112DEFINE_GUIDSTRUCT("6a2e0670-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_VIDEOCONTROL); 4113#define PROPSETID_VIDCAP_VIDEOCONTROL DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOCONTROL) 4114 4115typedef 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 4122typedef 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 4131typedef struct { 4132 KSPROPERTY Property; 4133 ULONG StreamIndex; 4134 ULONG VideoControlCaps; 4135} KSPROPERTY_VIDEOCONTROL_CAPS_S,*PKSPROPERTY_VIDEOCONTROL_CAPS_S; 4136 4137typedef struct { 4138 KSPROPERTY Property; 4139 ULONG StreamIndex; 4140 LONG Mode; 4141} KSPROPERTY_VIDEOCONTROL_MODE_S,*PKSPROPERTY_VIDEOCONTROL_MODE_S; 4142 4143typedef 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 4152typedef 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 4161DEFINE_GUIDSTRUCT("C6E13344-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_DROPPEDFRAMES); 4162#define PROPSETID_VIDCAP_DROPPEDFRAMES DEFINE_GUIDNAMED(PROPSETID_VIDCAP_DROPPEDFRAMES) 4163 4164typedef enum { 4165 KSPROPERTY_DROPPEDFRAMES_CURRENT 4166} KSPROPERTY_VIDCAP_DROPPEDFRAMES; 4167 4168typedef 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 4177DEFINE_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 4182DEFINE_GUIDSTRUCT("ec529b00-1a1f-11d1-bad9-00609744111a",KSPROPSETID_VPVBIConfig); 4183#define KSPROPSETID_VPVBIConfig DEFINE_GUIDNAMED(KSPROPSETID_VPVBIConfig) 4184 4185typedef 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 4206DEFINE_GUIDSTRUCT("b9f8ac3e-0f71-11d2-b72c-00c04fb6bd3d",CLSID_KsIBasicAudioInterfaceHandler); 4207#define CLSID_KsIBasicAudioInterfaceHandler DEFINE_GUIDNAMED(CLSID_KsIBasicAudioInterfaceHandler) 4208 4209#ifdef __IVPType__ 4210typedef struct { 4211 AMVPSIZE Size; 4212 DWORD MaxPixelsPerSecond; 4213 DWORD Reserved; 4214} KSVPMAXPIXELRATE,*PKSVPMAXPIXELRATE; 4215 4216typedef struct { 4217 KSPROPERTY Property; 4218 AMVPSIZE Size; 4219} KSVPSIZE_PROP,*PKSVPSIZE_PROP; 4220 4221typedef 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 4231typedef 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__ 4269typedef 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 4284typedef enum 4285{ 4286 KS_PixAspectRatio_NTSC4x3, 4287 KS_PixAspectRatio_NTSC16x9, 4288 KS_PixAspectRatio_PAL4x3, 4289 KS_PixAspectRatio_PAL16x9 4290} KS_AMPixAspectRatio; 4291 4292typedef 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 4299typedef 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 4308typedef 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 4317typedef 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 4334typedef struct tagKS_AMVPSIZE 4335{ 4336 DWORD dwWidth; 4337 DWORD dwHeight; 4338} KS_AMVPSIZE,*PKS_AMVPSIZE; 4339 4340typedef struct { 4341 KS_AMVPSIZE Size; 4342 DWORD MaxPixelsPerSecond; 4343 DWORD Reserved; 4344} KSVPMAXPIXELRATE,*PKSVPMAXPIXELRATE; 4345 4346typedef struct { 4347 KSPROPERTY Property; 4348 KS_AMVPSIZE Size; 4349} KSVPSIZE_PROP,*PKSVPSIZE_PROP; 4350 4351typedef 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 4360DEFINE_GUIDSTRUCT("20c5598e-d3c8-11d0-8dfc-00c04fd7c08b",KSEVENTSETID_VPNotify); 4361#define KSEVENTSETID_VPNotify DEFINE_GUIDNAMED(KSEVENTSETID_VPNotify) 4362 4363typedef 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 4369DEFINE_GUIDSTRUCT("DB47DE20-F628-11d1-BA41-00A0C90D2B05",KSEVENTSETID_VIDCAPTOSTI); 4370#define KSEVENTSETID_VIDCAPNotify DEFINE_GUIDNAMED(KSEVENTSETID_VIDCAPTOSTI) 4371 4372typedef enum { 4373 KSEVENT_VIDCAPTOSTI_EXT_TRIGGER, 4374 KSEVENT_VIDCAP_AUTO_UPDATE, 4375 KSEVENT_VIDCAP_SEARCH 4376} KSEVENT_VIDCAPTOSTI; 4377 4378typedef 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 4386DEFINE_GUIDSTRUCT("ec529b01-1a1f-11d1-bad9-00609744111a",KSEVENTSETID_VPVBINotify); 4387#define KSEVENTSETID_VPVBINotify DEFINE_GUIDNAMED(KSEVENTSETID_VPVBINotify) 4388 4389typedef 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 4395DEFINE_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 4400DEFINE_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 4405DEFINE_GUIDSTRUCT("6e8d4a23-310c-11d0-b79a-00aa003767a7",KSDATAFORMAT_SUBTYPE_Line21_GOPPacket); 4406#define KSDATAFORMAT_SUBTYPE_Line21_GOPPacket DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_Line21_GOPPacket) 4407 4408typedef 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 4417DEFINE_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 4424DEFINE_GUIDSTRUCT("A503C5C0-1D1D-11D1-AD80-444553540000",KSPROPSETID_TSRateChange); 4425#define KSPROPSETID_TSRateChange DEFINE_GUIDNAMED(KSPROPSETID_TSRateChange) 4426 4427typedef 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 4434typedef struct { 4435 REFERENCE_TIME StartTime; 4436 LONG Rate; 4437} KS_AM_SimpleRateChange,*PKS_AM_SimpleRateChange; 4438 4439typedef struct { 4440 REFERENCE_TIME OutputZeroTime; 4441 LONG Rate; 4442} KS_AM_ExactRateChange,*PKS_AM_ExactRateChange; 4443 4444typedef LONG KS_AM_MaxFullDataRate; 4445typedef DWORD KS_AM_Step; 4446 4447#define STATIC_KSCATEGORY_ENCODER \ 4448 0x19689bf6,0xc384,0x48fd,0xad,0x51,0x90,0xe5,0x8c,0x79,0xf7,0xb 4449DEFINE_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 4454DEFINE_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 4462DEFINE_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 4467DEFINE_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 4472DEFINE_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 4477DEFINE_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 4482DEFINE_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 4487DEFINE_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 4492DEFINE_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 4497DEFINE_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 4502DEFINE_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 4507DEFINE_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__ 4513typedef enum { 4514 ConstantBitRate = 0, 4515 VariableBitRateAverage, 4516 VariableBitRatePeak 4517} VIDEOENCODER_BITRATE_MODE; 4518#endif /* __ENCODER_API_DEFINES__ */ 4519 4520#if (_WIN32_WINNT >= 0x0601) 4521typedef 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