PortAudio 2.0
ksmedia.h
Go to the documentation of this file.
00001 
00006 #if !defined(_KS_)
00007 #warning ks.h must be included before ksmedia.h
00008 #include "ks.h"
00009 #endif
00010 
00011 #if __GNUC__ >= 3
00012 #pragma GCC system_header
00013 #endif
00014 
00015 #if !defined(_KSMEDIA_)
00016 #define _KSMEDIA_
00017 
00018 typedef struct {
00019   KSPROPERTY Property;
00020   KSMULTIPLE_ITEM MultipleItem;
00021 } KSMULTIPLE_DATA_PROP,*PKSMULTIPLE_DATA_PROP;
00022 
00023 #define STATIC_KSMEDIUMSETID_MidiBus                                    \
00024         0x05908040L,0x3246,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
00025 DEFINE_GUIDSTRUCT("05908040-3246-11D0-A5D6-28DB04C10000",KSMEDIUMSETID_MidiBus);
00026 #define KSMEDIUMSETID_MidiBus DEFINE_GUIDNAMED(KSMEDIUMSETID_MidiBus)
00027 
00028 #define STATIC_KSMEDIUMSETID_VPBus                                      \
00029         0xA18C15ECL,0xCE43,0x11D0,0xAB,0xE7,0x00,0xA0,0xC9,0x22,0x31,0x96
00030 DEFINE_GUIDSTRUCT("A18C15EC-CE43-11D0-ABE7-00A0C9223196",KSMEDIUMSETID_VPBus);
00031 #define KSMEDIUMSETID_VPBus DEFINE_GUIDNAMED(KSMEDIUMSETID_VPBus)
00032 
00033 #define STATIC_KSINTERFACESETID_Media                                   \
00034         0x3A13EB40L,0x30A7,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
00035 DEFINE_GUIDSTRUCT("3A13EB40-30A7-11D0-A5D6-28DB04C10000",KSINTERFACESETID_Media);
00036 #define KSINTERFACESETID_Media DEFINE_GUIDNAMED(KSINTERFACESETID_Media)
00037 
00038 typedef enum {
00039   KSINTERFACE_MEDIA_MUSIC,
00040   KSINTERFACE_MEDIA_WAVE_BUFFERED,
00041   KSINTERFACE_MEDIA_WAVE_QUEUED
00042 } KSINTERFACE_MEDIA;
00043 
00044 #ifndef INIT_USBAUDIO_MID
00045 #define INIT_USBAUDIO_MID(guid,id)                                      \
00046 {                                                                       \
00047         (guid)->Data1 = 0x4e1cecd2 + (USHORT)(id);                      \
00048         (guid)->Data2 = 0x1679;                                         \
00049         (guid)->Data3 = 0x463b;                                         \
00050         (guid)->Data4[0] = 0xa7;                                        \
00051         (guid)->Data4[1] = 0x2f;                                        \
00052         (guid)->Data4[2] = 0xa5;                                        \
00053         (guid)->Data4[3] = 0xbf;                                        \
00054         (guid)->Data4[4] = 0x64;                                        \
00055         (guid)->Data4[5] = 0xc8;                                        \
00056         (guid)->Data4[6] = 0x6e;                                        \
00057         (guid)->Data4[7] = 0xba;                                        \
00058 }
00059 #define EXTRACT_USBAUDIO_MID(guid)                                      \
00060         (USHORT)((guid)->Data1 - 0x4e1cecd2)
00061 #define DEFINE_USBAUDIO_MID_GUID(id)                                    \
00062         0x4e1cecd2+(USHORT)(id),0x1679,0x463b,0xa7,0x2f,0xa5,0xbf,0x64,0xc8,0x6e,0xba
00063 #define IS_COMPATIBLE_USBAUDIO_MID(guid)                                \
00064         (((guid)->Data1 >= 0x4e1cecd2) &&                               \
00065          ((guid)->Data1 < 0x4e1cecd2 + 0xffff) &&                       \
00066          ((guid)->Data2 == 0x1679) &&                                   \
00067          ((guid)->Data3 == 0x463b) &&                                   \
00068          ((guid)->Data4[0] == 0xa7) &&                                  \
00069          ((guid)->Data4[1] == 0x2f) &&                                  \
00070          ((guid)->Data4[2] == 0xa5) &&                                  \
00071          ((guid)->Data4[3] == 0xbf) &&                                  \
00072          ((guid)->Data4[4] == 0x64) &&                                  \
00073          ((guid)->Data4[5] == 0xc8) &&                                  \
00074          ((guid)->Data4[6] == 0x6e) &&                                  \
00075          ((guid)->Data4[7] == 0xba) )
00076 #endif /* INIT_USBAUDIO_MID */
00077 
00078 #ifndef INIT_USBAUDIO_PID
00079 #define INIT_USBAUDIO_PID(guid,id)                                      \
00080 {                                                                       \
00081         (guid)->Data1 = 0xabcc5a5e + (USHORT)(id);                      \
00082         (guid)->Data2 = 0xc263;                                         \
00083         (guid)->Data3 = 0x463b;                                         \
00084         (guid)->Data4[0] = 0xa7;                                        \
00085         (guid)->Data4[1] = 0x2f;                                        \
00086         (guid)->Data4[2] = 0xa5;                                        \
00087         (guid)->Data4[3] = 0xbf;                                        \
00088         (guid)->Data4[4] = 0x64;                                        \
00089         (guid)->Data4[5] = 0xc8;                                        \
00090         (guid)->Data4[6] = 0x6e;                                        \
00091         (guid)->Data4[7] = 0xba;                                        \
00092 }
00093 #define EXTRACT_USBAUDIO_PID(guid)                                      \
00094         (USHORT)((guid)->Data1 - 0xabcc5a5e)
00095 #define DEFINE_USBAUDIO_PID_GUID(id)                                    \
00096         0xabcc5a5e+(USHORT)(id),0xc263,0x463b,0xa7,0x2f,0xa5,0xbf,0x64,0xc8,0x6e,0xba
00097 #define IS_COMPATIBLE_USBAUDIO_PID(guid)                                \
00098         (((guid)->Data1 >= 0xabcc5a5e) &&                               \
00099          ((guid)->Data1 < 0xabcc5a5e + 0xffff) &&                       \
00100          ((guid)->Data2 == 0xc263) &&                                   \
00101          ((guid)->Data3 == 0x463b) &&                                   \
00102          ((guid)->Data4[0] == 0xa7) &&                                  \
00103          ((guid)->Data4[1] == 0x2f) &&                                  \
00104          ((guid)->Data4[2] == 0xa5) &&                                  \
00105          ((guid)->Data4[3] == 0xbf) &&                                  \
00106          ((guid)->Data4[4] == 0x64) &&                                  \
00107          ((guid)->Data4[5] == 0xc8) &&                                  \
00108          ((guid)->Data4[6] == 0x6e) &&                                  \
00109          ((guid)->Data4[7] == 0xba) )
00110 #endif /* INIT_USBAUDIO_PID */
00111 
00112 #ifndef INIT_USBAUDIO_PRODUCT_NAME
00113 #define INIT_USBAUDIO_PRODUCT_NAME(guid,vid,pid,strIndex)               \
00114 {                                                                       \
00115         (guid)->Data1 = 0XFC575048 + (USHORT)(vid);                     \
00116         (guid)->Data2 = 0x2E08 + (USHORT)(pid);                         \
00117         (guid)->Data3 = 0x463B + (USHORT)(strIndex);                    \
00118         (guid)->Data4[0] = 0xA7;                                        \
00119         (guid)->Data4[1] = 0x2F;                                        \
00120         (guid)->Data4[2] = 0xA5;                                        \
00121         (guid)->Data4[3] = 0xBF;                                        \
00122         (guid)->Data4[4] = 0x64;                                        \
00123         (guid)->Data4[5] = 0xC8;                                        \
00124         (guid)->Data4[6] = 0x6E;                                        \
00125         (guid)->Data4[7] = 0xBA;                                        \
00126 }
00127 #define DEFINE_USBAUDIO_PRODUCT_NAME(vid,pid,strIndex)                  \
00128         0xFC575048+(USHORT)(vid),0x2E08+(USHORT)(pid),0x463B+(USHORT)(strIndex),0xA7,0x2F,0xA5,0xBF,0x64,0xC8,0x6E,0xBA
00129 #endif /* INIT_USBAUDIO_PRODUCT_NAME */
00130 
00131 #define STATIC_KSCOMPONENTID_USBAUDIO                                   \
00132         0x8F1275F0,0x26E9,0x4264,0xBA,0x4D,0x39,0xFF,0xF0,0x1D,0x94,0xAA
00133 DEFINE_GUIDSTRUCT("8F1275F0-26E9-4264-BA4D-39FFF01D94AA",KSCOMPONENTID_USBAUDIO);
00134 #define KSCOMPONENTID_USBAUDIO DEFINE_GUIDNAMED(KSCOMPONENTID_USBAUDIO)
00135 
00136 #define INIT_USB_TERMINAL(guid,id)                                      \
00137 {                                                                       \
00138         (guid)->Data1 = 0xDFF219E0 + (USHORT)(id);                      \
00139         (guid)->Data2 = 0xF70F;                                         \
00140         (guid)->Data3 = 0x11D0;                                         \
00141         (guid)->Data4[0] = 0xb9;                                        \
00142         (guid)->Data4[1] = 0x17;                                        \
00143         (guid)->Data4[2] = 0x00;                                        \
00144         (guid)->Data4[3] = 0xa0;                                        \
00145         (guid)->Data4[4] = 0xc9;                                        \
00146         (guid)->Data4[5] = 0x22;                                        \
00147         (guid)->Data4[6] = 0x31;                                        \
00148         (guid)->Data4[7] = 0x96;                                        \
00149 }
00150 #define EXTRACT_USB_TERMINAL(guid)                                      \
00151         (USHORT)((guid)->Data1 - 0xDFF219E0)
00152 #define DEFINE_USB_TERMINAL_GUID(id)                                    \
00153         0xDFF219E0+(USHORT)(id),0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
00154 
00155 #define STATIC_KSNODETYPE_MICROPHONE                                    \
00156         DEFINE_USB_TERMINAL_GUID(0x0201)
00157 DEFINE_GUIDSTRUCT("DFF21BE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MICROPHONE);
00158 #define KSNODETYPE_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE)
00159 
00160 #define STATIC_KSNODETYPE_DESKTOP_MICROPHONE                            \
00161         DEFINE_USB_TERMINAL_GUID(0x0202)
00162 DEFINE_GUIDSTRUCT("DFF21BE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DESKTOP_MICROPHONE);
00163 #define KSNODETYPE_DESKTOP_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_DESKTOP_MICROPHONE)
00164 
00165 #define STATIC_KSNODETYPE_PERSONAL_MICROPHONE                           \
00166         DEFINE_USB_TERMINAL_GUID(0x0203)
00167 DEFINE_GUIDSTRUCT("DFF21BE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PERSONAL_MICROPHONE);
00168 #define KSNODETYPE_PERSONAL_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_PERSONAL_MICROPHONE)
00169 
00170 #define STATIC_KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE                   \
00171         DEFINE_USB_TERMINAL_GUID(0x0204)
00172 DEFINE_GUIDSTRUCT("DFF21BE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE);
00173 #define KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE)
00174 
00175 #define STATIC_KSNODETYPE_MICROPHONE_ARRAY                              \
00176         DEFINE_USB_TERMINAL_GUID(0x0205)
00177 DEFINE_GUIDSTRUCT("DFF21BE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MICROPHONE_ARRAY);
00178 #define KSNODETYPE_MICROPHONE_ARRAY DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE_ARRAY)
00179 
00180 #define STATIC_KSNODETYPE_PROCESSING_MICROPHONE_ARRAY                   \
00181         DEFINE_USB_TERMINAL_GUID(0x0206)
00182 DEFINE_GUIDSTRUCT("DFF21BE6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PROCESSING_MICROPHONE_ARRAY);
00183 #define KSNODETYPE_PROCESSING_MICROPHONE_ARRAY DEFINE_GUIDNAMED(KSNODETYPE_PROCESSING_MICROPHONE_ARRAY)
00184 
00185 #define STATIC_KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR                    \
00186         0x830a44f2,0xa32d,0x476b,0xbe,0x97,0x42,0x84,0x56,0x73,0xb3,0x5a
00187 DEFINE_GUIDSTRUCT("830a44f2-a32d-476b-be97-42845673b35a",KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR);
00188 #define KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR DEFINE_GUIDNAMED(KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR)
00189 
00190 #define STATIC_KSNODETYPE_SPEAKER                                       \
00191         DEFINE_USB_TERMINAL_GUID(0x0301)
00192 DEFINE_GUIDSTRUCT("DFF21CE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SPEAKER);
00193 #define KSNODETYPE_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_SPEAKER)
00194 
00195 #define STATIC_KSNODETYPE_HEADPHONES                                    \
00196         DEFINE_USB_TERMINAL_GUID(0x0302)
00197 DEFINE_GUIDSTRUCT("DFF21CE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HEADPHONES);
00198 #define KSNODETYPE_HEADPHONES DEFINE_GUIDNAMED(KSNODETYPE_HEADPHONES)
00199 
00200 #define STATIC_KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO                    \
00201         DEFINE_USB_TERMINAL_GUID(0x0303)
00202 DEFINE_GUIDSTRUCT("DFF21CE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO);
00203 #define KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO)
00204 
00205 #define STATIC_KSNODETYPE_DESKTOP_SPEAKER                               \
00206         DEFINE_USB_TERMINAL_GUID(0x0304)
00207 DEFINE_GUIDSTRUCT("DFF21CE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DESKTOP_SPEAKER);
00208 #define KSNODETYPE_DESKTOP_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_DESKTOP_SPEAKER)
00209 
00210 #define STATIC_KSNODETYPE_ROOM_SPEAKER                                  \
00211         DEFINE_USB_TERMINAL_GUID(0x0305)
00212 DEFINE_GUIDSTRUCT("DFF21CE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ROOM_SPEAKER);
00213 #define KSNODETYPE_ROOM_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_ROOM_SPEAKER)
00214 
00215 #define STATIC_KSNODETYPE_COMMUNICATION_SPEAKER                         \
00216         DEFINE_USB_TERMINAL_GUID(0x0306)
00217 DEFINE_GUIDSTRUCT("DFF21CE6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_COMMUNICATION_SPEAKER);
00218 #define KSNODETYPE_COMMUNICATION_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_COMMUNICATION_SPEAKER)
00219 
00220 #define STATIC_KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER                 \
00221         DEFINE_USB_TERMINAL_GUID(0x0307)
00222 DEFINE_GUIDSTRUCT("DFF21CE7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER);
00223 #define KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER)
00224 
00225 #define STATIC_KSNODETYPE_HANDSET                                       \
00226         DEFINE_USB_TERMINAL_GUID(0x0401)
00227 DEFINE_GUIDSTRUCT("DFF21DE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HANDSET);
00228 #define KSNODETYPE_HANDSET DEFINE_GUIDNAMED(KSNODETYPE_HANDSET)
00229 
00230 #define STATIC_KSNODETYPE_HEADSET                                       \
00231         DEFINE_USB_TERMINAL_GUID(0x0402)
00232 DEFINE_GUIDSTRUCT("DFF21DE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HEADSET);
00233 #define KSNODETYPE_HEADSET DEFINE_GUIDNAMED(KSNODETYPE_HEADSET)
00234 
00235 #define STATIC_KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION                \
00236         DEFINE_USB_TERMINAL_GUID(0x0403)
00237 DEFINE_GUIDSTRUCT("DFF21DE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION);
00238 #define KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION DEFINE_GUIDNAMED(KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION)
00239 
00240 #define STATIC_KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE                 \
00241         DEFINE_USB_TERMINAL_GUID(0x0404)
00242 DEFINE_GUIDSTRUCT("DFF21DE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE);
00243 #define KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE DEFINE_GUIDNAMED(KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE)
00244 
00245 #define STATIC_KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE                   \
00246         DEFINE_USB_TERMINAL_GUID(0x0405)
00247 DEFINE_GUIDSTRUCT("DFF21DE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE);
00248 #define KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE DEFINE_GUIDNAMED(KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE)
00249 
00250 #define STATIC_KSNODETYPE_PHONE_LINE                                    \
00251         DEFINE_USB_TERMINAL_GUID(0x0501)
00252 DEFINE_GUIDSTRUCT("DFF21EE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PHONE_LINE);
00253 #define KSNODETYPE_PHONE_LINE DEFINE_GUIDNAMED(KSNODETYPE_PHONE_LINE)
00254 
00255 #define STATIC_KSNODETYPE_TELEPHONE                                     \
00256         DEFINE_USB_TERMINAL_GUID(0x0502)
00257 DEFINE_GUIDSTRUCT("DFF21EE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_TELEPHONE);
00258 #define KSNODETYPE_TELEPHONE DEFINE_GUIDNAMED(KSNODETYPE_TELEPHONE)
00259 
00260 #define STATIC_KSNODETYPE_DOWN_LINE_PHONE                               \
00261         DEFINE_USB_TERMINAL_GUID(0x0503)
00262 DEFINE_GUIDSTRUCT("DFF21EE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DOWN_LINE_PHONE);
00263 #define KSNODETYPE_DOWN_LINE_PHONE DEFINE_GUIDNAMED(KSNODETYPE_DOWN_LINE_PHONE)
00264 
00265 #define STATIC_KSNODETYPE_ANALOG_CONNECTOR                              \
00266         DEFINE_USB_TERMINAL_GUID(0x601)
00267 DEFINE_GUIDSTRUCT("DFF21FE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ANALOG_CONNECTOR);
00268 #define KSNODETYPE_ANALOG_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_CONNECTOR)
00269 
00270 #define STATIC_KSNODETYPE_DIGITAL_AUDIO_INTERFACE                       \
00271         DEFINE_USB_TERMINAL_GUID(0x0602)
00272 DEFINE_GUIDSTRUCT("DFF21FE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DIGITAL_AUDIO_INTERFACE);
00273 #define KSNODETYPE_DIGITAL_AUDIO_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_DIGITAL_AUDIO_INTERFACE)
00274 
00275 #define STATIC_KSNODETYPE_LINE_CONNECTOR                                \
00276         DEFINE_USB_TERMINAL_GUID(0x0603)
00277 DEFINE_GUIDSTRUCT("DFF21FE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LINE_CONNECTOR);
00278 #define KSNODETYPE_LINE_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LINE_CONNECTOR)
00279 
00280 #define STATIC_KSNODETYPE_LEGACY_AUDIO_CONNECTOR                        \
00281         DEFINE_USB_TERMINAL_GUID(0x0604)
00282 DEFINE_GUIDSTRUCT("DFF21FE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LEGACY_AUDIO_CONNECTOR);
00283 #define KSNODETYPE_LEGACY_AUDIO_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LEGACY_AUDIO_CONNECTOR)
00284 
00285 #define STATIC_KSNODETYPE_SPDIF_INTERFACE                               \
00286         DEFINE_USB_TERMINAL_GUID(0x0605)
00287 DEFINE_GUIDSTRUCT("DFF21FE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SPDIF_INTERFACE);
00288 #define KSNODETYPE_SPDIF_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_SPDIF_INTERFACE)
00289 
00290 #define STATIC_KSNODETYPE_1394_DA_STREAM                                \
00291         DEFINE_USB_TERMINAL_GUID(0x0606)
00292 DEFINE_GUIDSTRUCT("DFF21FE6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_1394_DA_STREAM);
00293 #define KSNODETYPE_1394_DA_STREAM DEFINE_GUIDNAMED(KSNODETYPE_1394_DA_STREAM)
00294 
00295 #define STATIC_KSNODETYPE_1394_DV_STREAM_SOUNDTRACK                     \
00296         DEFINE_USB_TERMINAL_GUID(0x0607)
00297 DEFINE_GUIDSTRUCT("DFF21FE7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_1394_DV_STREAM_SOUNDTRACK);
00298 #define KSNODETYPE_1394_DV_STREAM_SOUNDTRACK DEFINE_GUIDNAMED(KSNODETYPE_1394_DV_STREAM_SOUNDTRACK)
00299 
00300 #define STATIC_KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE                \
00301         DEFINE_USB_TERMINAL_GUID(0x0701)
00302 DEFINE_GUIDSTRUCT("DFF220E1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE);
00303 #define KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE DEFINE_GUIDNAMED(KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE)
00304 
00305 #define STATIC_KSNODETYPE_EQUALIZATION_NOISE                            \
00306         DEFINE_USB_TERMINAL_GUID(0x0702)
00307 DEFINE_GUIDSTRUCT("DFF220E2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_EQUALIZATION_NOISE);
00308 #define KSNODETYPE_EQUALIZATION_NOISE DEFINE_GUIDNAMED(KSNODETYPE_EQUALIZATION_NOISE)
00309 
00310 #define STATIC_KSNODETYPE_CD_PLAYER                                     \
00311         DEFINE_USB_TERMINAL_GUID(0x0703)
00312 DEFINE_GUIDSTRUCT("DFF220E3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_CD_PLAYER);
00313 #define KSNODETYPE_CD_PLAYER DEFINE_GUIDNAMED(KSNODETYPE_CD_PLAYER)
00314 
00315 #define STATIC_KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE                     \
00316         DEFINE_USB_TERMINAL_GUID(0x0704)
00317 DEFINE_GUIDSTRUCT("DFF220E4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE);
00318 #define KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE DEFINE_GUIDNAMED(KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE)
00319 
00320 #define STATIC_KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE               \
00321         DEFINE_USB_TERMINAL_GUID(0x0705)
00322 DEFINE_GUIDSTRUCT("DFF220E5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE);
00323 #define KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE DEFINE_GUIDNAMED(KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE)
00324 
00325 #define STATIC_KSNODETYPE_MINIDISK                                      \
00326         DEFINE_USB_TERMINAL_GUID(0x0706)
00327 DEFINE_GUIDSTRUCT("DFF220E6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MINIDISK);
00328 #define KSNODETYPE_MINIDISK DEFINE_GUIDNAMED(KSNODETYPE_MINIDISK)
00329 
00330 #define STATIC_KSNODETYPE_ANALOG_TAPE                                   \
00331         DEFINE_USB_TERMINAL_GUID(0x0707)
00332 DEFINE_GUIDSTRUCT("DFF220E7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ANALOG_TAPE);
00333 #define KSNODETYPE_ANALOG_TAPE DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_TAPE)
00334 
00335 #define STATIC_KSNODETYPE_PHONOGRAPH                                    \
00336         DEFINE_USB_TERMINAL_GUID(0x0708)
00337 DEFINE_GUIDSTRUCT("DFF220E8-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PHONOGRAPH);
00338 #define KSNODETYPE_PHONOGRAPH DEFINE_GUIDNAMED(KSNODETYPE_PHONOGRAPH)
00339 
00340 #define STATIC_KSNODETYPE_VCR_AUDIO                                     \
00341         DEFINE_USB_TERMINAL_GUID(0x0708)
00342 DEFINE_GUIDSTRUCT("DFF220E9-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VCR_AUDIO);
00343 #define KSNODETYPE_VCR_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_VCR_AUDIO)
00344 
00345 #define STATIC_KSNODETYPE_VIDEO_DISC_AUDIO                              \
00346         DEFINE_USB_TERMINAL_GUID(0x070A)
00347 DEFINE_GUIDSTRUCT("DFF220EA-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_DISC_AUDIO);
00348 #define KSNODETYPE_VIDEO_DISC_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_DISC_AUDIO)
00349 
00350 #define STATIC_KSNODETYPE_DVD_AUDIO                                     \
00351         DEFINE_USB_TERMINAL_GUID(0x070B)
00352 DEFINE_GUIDSTRUCT("DFF220EB-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DVD_AUDIO);
00353 #define KSNODETYPE_DVD_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_DVD_AUDIO)
00354 
00355 #define STATIC_KSNODETYPE_TV_TUNER_AUDIO                                \
00356         DEFINE_USB_TERMINAL_GUID(0x070C)
00357 DEFINE_GUIDSTRUCT("DFF220EC-F70F-11D0-B917-00A0C9223196",KSNODETYPE_TV_TUNER_AUDIO);
00358 #define KSNODETYPE_TV_TUNER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_TV_TUNER_AUDIO)
00359 
00360 #define STATIC_KSNODETYPE_SATELLITE_RECEIVER_AUDIO                      \
00361         DEFINE_USB_TERMINAL_GUID(0x070D)
00362 DEFINE_GUIDSTRUCT("DFF220ED-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SATELLITE_RECEIVER_AUDIO);
00363 #define KSNODETYPE_SATELLITE_RECEIVER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_SATELLITE_RECEIVER_AUDIO)
00364 
00365 #define STATIC_KSNODETYPE_CABLE_TUNER_AUDIO                             \
00366         DEFINE_USB_TERMINAL_GUID(0x070E)
00367 DEFINE_GUIDSTRUCT("DFF220EE-F70F-11D0-B917-00A0C9223196",KSNODETYPE_CABLE_TUNER_AUDIO);
00368 #define KSNODETYPE_CABLE_TUNER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_CABLE_TUNER_AUDIO)
00369 
00370 #define STATIC_KSNODETYPE_DSS_AUDIO                                     \
00371         DEFINE_USB_TERMINAL_GUID(0x070F)
00372 DEFINE_GUIDSTRUCT("DFF220EF-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DSS_AUDIO);
00373 #define KSNODETYPE_DSS_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_DSS_AUDIO)
00374 
00375 #define STATIC_KSNODETYPE_RADIO_RECEIVER                                \
00376         DEFINE_USB_TERMINAL_GUID(0x0710)
00377 DEFINE_GUIDSTRUCT("DFF220F0-F70F-11D0-B917-00A0C9223196",KSNODETYPE_RADIO_RECEIVER);
00378 #define KSNODETYPE_RADIO_RECEIVER DEFINE_GUIDNAMED(KSNODETYPE_RADIO_RECEIVER)
00379 
00380 #define STATIC_KSNODETYPE_RADIO_TRANSMITTER                             \
00381         DEFINE_USB_TERMINAL_GUID(0x0711)
00382 DEFINE_GUIDSTRUCT("DFF220F1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_RADIO_TRANSMITTER);
00383 #define KSNODETYPE_RADIO_TRANSMITTER DEFINE_GUIDNAMED(KSNODETYPE_RADIO_TRANSMITTER)
00384 
00385 #define STATIC_KSNODETYPE_MULTITRACK_RECORDER                           \
00386         DEFINE_USB_TERMINAL_GUID(0x0712)
00387 DEFINE_GUIDSTRUCT("DFF220F2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MULTITRACK_RECORDER);
00388 #define KSNODETYPE_MULTITRACK_RECORDER DEFINE_GUIDNAMED(KSNODETYPE_MULTITRACK_RECORDER)
00389 
00390 #define STATIC_KSNODETYPE_SYNTHESIZER                                   \
00391         DEFINE_USB_TERMINAL_GUID(0x0713)
00392 DEFINE_GUIDSTRUCT("DFF220F3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SYNTHESIZER);
00393 #define KSNODETYPE_SYNTHESIZER DEFINE_GUIDNAMED(KSNODETYPE_SYNTHESIZER)
00394 
00395 #define STATIC_KSNODETYPE_SWSYNTH                                       \
00396         0x423274A0L,0x8B81,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88
00397 DEFINE_GUIDSTRUCT("423274A0-8B81-11D1-A050-0000F8004788",KSNODETYPE_SWSYNTH);
00398 #define KSNODETYPE_SWSYNTH DEFINE_GUIDNAMED(KSNODETYPE_SWSYNTH)
00399 
00400 #define STATIC_KSNODETYPE_SWMIDI                                        \
00401         0xCB9BEFA0L,0xA251,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88
00402 DEFINE_GUIDSTRUCT("CB9BEFA0-A251-11D1-A050-0000F8004788",KSNODETYPE_SWMIDI);
00403 #define KSNODETYPE_SWMIDI DEFINE_GUIDNAMED(KSNODETYPE_SWMIDI)
00404 
00405 #define STATIC_KSNODETYPE_DRM_DESCRAMBLE                                \
00406         0xFFBB6E3FL,0xCCFE,0x4D84,0x90,0xD9,0x42,0x14,0x18,0xB0,0x3A,0x8E
00407 DEFINE_GUIDSTRUCT("FFBB6E3F-CCFE-4D84-90D9-421418B03A8E",KSNODETYPE_DRM_DESCRAMBLE);
00408 #define KSNODETYPE_DRM_DESCRAMBLE DEFINE_GUIDNAMED(KSNODETYPE_DRM_DESCRAMBLE)
00409 
00410 #define STATIC_KSCATEGORY_AUDIO                                         \
00411         0x6994AD04L,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96
00412 DEFINE_GUIDSTRUCT("6994AD04-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_AUDIO);
00413 #define KSCATEGORY_AUDIO DEFINE_GUIDNAMED(KSCATEGORY_AUDIO)
00414 
00415 #define STATIC_KSCATEGORY_VIDEO                                         \
00416         0x6994AD05L,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96
00417 DEFINE_GUIDSTRUCT("6994AD05-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_VIDEO);
00418 #define KSCATEGORY_VIDEO DEFINE_GUIDNAMED(KSCATEGORY_VIDEO)
00419 
00420 #define STATIC_KSCATEGORY_TEXT                                          \
00421         0x6994AD06L,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96
00422 DEFINE_GUIDSTRUCT("6994AD06-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_TEXT);
00423 #define KSCATEGORY_TEXT DEFINE_GUIDNAMED(KSCATEGORY_TEXT)
00424 
00425 #define STATIC_KSCATEGORY_NETWORK                                       \
00426         0x67C9CC3CL,0x69C4,0x11D2,0x87,0x59,0x00,0xA0,0xC9,0x22,0x31,0x96
00427 DEFINE_GUIDSTRUCT("67C9CC3C-69C4-11D2-8759-00A0C9223196",KSCATEGORY_NETWORK);
00428 #define KSCATEGORY_NETWORK DEFINE_GUIDNAMED(KSCATEGORY_NETWORK)
00429 
00430 #define STATIC_KSCATEGORY_TOPOLOGY                                      \
00431         0xDDA54A40L,0x1E4C,0x11D1,0xA0,0x50,0x40,0x57,0x05,0xC1,0x00,0x00
00432 DEFINE_GUIDSTRUCT("DDA54A40-1E4C-11D1-A050-405705C10000",KSCATEGORY_TOPOLOGY);
00433 #define KSCATEGORY_TOPOLOGY DEFINE_GUIDNAMED(KSCATEGORY_TOPOLOGY)
00434 
00435 #define STATIC_KSCATEGORY_VIRTUAL                                       \
00436         0x3503EAC4L,0x1F26,0x11D1,0x8A,0xB0,0x00,0xA0,0xC9,0x22,0x31,0x96
00437 DEFINE_GUIDSTRUCT("3503EAC4-1F26-11D1-8AB0-00A0C9223196",KSCATEGORY_VIRTUAL);
00438 #define KSCATEGORY_VIRTUAL DEFINE_GUIDNAMED(KSCATEGORY_VIRTUAL)
00439 
00440 #define STATIC_KSCATEGORY_ACOUSTIC_ECHO_CANCEL                          \
00441         0xBF963D80L,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
00442 DEFINE_GUIDSTRUCT("BF963D80-C559-11D0-8A2B-00A0C9255AC1",KSCATEGORY_ACOUSTIC_ECHO_CANCEL);
00443 #define KSCATEGORY_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSCATEGORY_ACOUSTIC_ECHO_CANCEL)
00444 
00445 #define STATIC_KSCATEGORY_SYSAUDIO                                      \
00446         0xA7C7A5B1L,0x5AF3,0x11D1,0x9C,0xED,0x00,0xA0,0x24,0xBF,0x04,0x07
00447 DEFINE_GUIDSTRUCT("A7C7A5B1-5AF3-11D1-9CED-00A024BF0407",KSCATEGORY_SYSAUDIO);
00448 #define KSCATEGORY_SYSAUDIO DEFINE_GUIDNAMED(KSCATEGORY_SYSAUDIO)
00449 
00450 #define STATIC_KSCATEGORY_WDMAUD                                        \
00451         0x3E227E76L,0x690D,0x11D2,0x81,0x61,0x00,0x00,0xF8,0x77,0x5B,0xF1
00452 DEFINE_GUIDSTRUCT("3E227E76-690D-11D2-8161-0000F8775BF1",KSCATEGORY_WDMAUD);
00453 #define KSCATEGORY_WDMAUD DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD)
00454 
00455 #define STATIC_KSCATEGORY_AUDIO_GFX                                     \
00456         0x9BAF9572L,0x340C,0x11D3,0xAB,0xDC,0x00,0xA0,0xC9,0x0A,0xB1,0x6F
00457 DEFINE_GUIDSTRUCT("9BAF9572-340C-11D3-ABDC-00A0C90AB16F",KSCATEGORY_AUDIO_GFX);
00458 #define KSCATEGORY_AUDIO_GFX DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_GFX)
00459 
00460 #define STATIC_KSCATEGORY_AUDIO_SPLITTER                                \
00461         0x9EA331FAL,0xB91B,0x45F8,0x92,0x85,0xBD,0x2B,0xC7,0x7A,0xFC,0xDE
00462 DEFINE_GUIDSTRUCT("9EA331FA-B91B-45F8-9285-BD2BC77AFCDE",KSCATEGORY_AUDIO_SPLITTER);
00463 #define KSCATEGORY_AUDIO_SPLITTER DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_SPLITTER)
00464 
00465 #define STATIC_KSCATEGORY_SYNTHESIZER           STATIC_KSNODETYPE_SYNTHESIZER
00466 #define KSCATEGORY_SYNTHESIZER                  KSNODETYPE_SYNTHESIZER
00467 
00468 #define STATIC_KSCATEGORY_DRM_DESCRAMBLE        STATIC_KSNODETYPE_DRM_DESCRAMBLE
00469 #define KSCATEGORY_DRM_DESCRAMBLE               KSNODETYPE_DRM_DESCRAMBLE
00470 
00471 #define STATIC_KSCATEGORY_AUDIO_DEVICE                                  \
00472         0xFBF6F530L,0x07B9,0x11D2,0xA7,0x1E,0x00,0x00,0xF8,0x00,0x47,0x88
00473 DEFINE_GUIDSTRUCT("FBF6F530-07B9-11D2-A71E-0000F8004788",KSCATEGORY_AUDIO_DEVICE);
00474 #define KSCATEGORY_AUDIO_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_DEVICE)
00475 
00476 #define STATIC_KSCATEGORY_PREFERRED_WAVEOUT_DEVICE                      \
00477         0xD6C5066EL,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88
00478 DEFINE_GUIDSTRUCT("D6C5066E-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_WAVEOUT_DEVICE);
00479 #define KSCATEGORY_PREFERRED_WAVEOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEOUT_DEVICE)
00480 
00481 #define STATIC_KSCATEGORY_PREFERRED_WAVEIN_DEVICE                       \
00482         0xD6C50671L,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88
00483 DEFINE_GUIDSTRUCT("D6C50671-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_WAVEIN_DEVICE);
00484 #define KSCATEGORY_PREFERRED_WAVEIN_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEIN_DEVICE)
00485 
00486 #define STATIC_KSCATEGORY_PREFERRED_MIDIOUT_DEVICE                      \
00487         0xD6C50674L,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88
00488 DEFINE_GUIDSTRUCT("D6C50674-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_MIDIOUT_DEVICE);
00489 #define KSCATEGORY_PREFERRED_MIDIOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_MIDIOUT_DEVICE)
00490 
00491 #define STATIC_KSCATEGORY_WDMAUD_USE_PIN_NAME                           \
00492         0x47A4FA20L,0xA251,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88
00493 DEFINE_GUIDSTRUCT("47A4FA20-A251-11D1-A050-0000F8004788",KSCATEGORY_WDMAUD_USE_PIN_NAME);
00494 #define KSCATEGORY_WDMAUD_USE_PIN_NAME DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD_USE_PIN_NAME)
00495 
00496 #define STATIC_KSCATEGORY_ESCALANTE_PLATFORM_DRIVER                     \
00497         0x74f3aea8L,0x9768,0x11d1,0x8e,0x07,0x00,0xa0,0xc9,0x5e,0xc2,0x2e
00498 DEFINE_GUIDSTRUCT("74f3aea8-9768-11d1-8e07-00a0c95ec22e",KSCATEGORY_ESCALANTE_PLATFORM_DRIVER);
00499 #define KSCATEGORY_ESCALANTE_PLATFORM_DRIVER DEFINE_GUIDNAMED(KSCATEGORY_ESCALANTE_PLATFORM_DRIVER)
00500 
00501 #define STATIC_KSDATAFORMAT_TYPE_VIDEO                                  \
00502         0x73646976L,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
00503 DEFINE_GUIDSTRUCT("73646976-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_VIDEO);
00504 #define KSDATAFORMAT_TYPE_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_VIDEO)
00505 
00506 #define STATIC_KSDATAFORMAT_TYPE_AUDIO                                  \
00507         0x73647561L,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
00508 DEFINE_GUIDSTRUCT("73647561-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_AUDIO);
00509 #define KSDATAFORMAT_TYPE_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUDIO)
00510 
00511 #define STATIC_KSDATAFORMAT_TYPE_TEXT                                   \
00512         0x73747874L,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
00513 DEFINE_GUIDSTRUCT("73747874-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_TEXT);
00514 #define KSDATAFORMAT_TYPE_TEXT DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_TEXT)
00515 
00516 #if !defined(DEFINE_WAVEFORMATEX_GUID)
00517 #define DEFINE_WAVEFORMATEX_GUID(x)                                     \
00518         (USHORT)(x),0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
00519 #endif
00520 
00521 #define STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX                        \
00522         0x00000000L,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
00523 DEFINE_GUIDSTRUCT("00000000-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_WAVEFORMATEX);
00524 #define KSDATAFORMAT_SUBTYPE_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_WAVEFORMATEX)
00525 
00526 #define INIT_WAVEFORMATEX_GUID(Guid,x)                                  \
00527 {                                                                       \
00528         *(Guid) = KSDATAFORMAT_SUBTYPE_WAVEFORMATEX;                    \
00529         (Guid)->Data1 = (USHORT)(x);                                    \
00530 }
00531 
00532 #define EXTRACT_WAVEFORMATEX_ID(Guid)                                   \
00533         (USHORT)((Guid)->Data1)
00534 
00535 #define IS_VALID_WAVEFORMATEX_GUID(Guid)                                \
00536         (!memcmp(((PUSHORT)&KSDATAFORMAT_SUBTYPE_WAVEFORMATEX) + 1, ((PUSHORT)(Guid)) + 1,sizeof(GUID) - sizeof(USHORT)))
00537 
00538 #ifndef INIT_MMREG_MID
00539 #define INIT_MMREG_MID(guid,id)                                         \
00540 {                                                                       \
00541         (guid)->Data1 = 0xd5a47fa7 + (USHORT)(id);                      \
00542         (guid)->Data2 = 0x6d98;                                         \
00543         (guid)->Data3 = 0x11d1;                                         \
00544         (guid)->Data4[0] = 0xa2;                                        \
00545         (guid)->Data4[1] = 0x1a;                                        \
00546         (guid)->Data4[2] = 0x00;                                        \
00547         (guid)->Data4[3] = 0xa0;                                        \
00548         (guid)->Data4[4] = 0xc9;                                        \
00549         (guid)->Data4[5] = 0x22;                                        \
00550         (guid)->Data4[6] = 0x31;                                        \
00551         (guid)->Data4[7] = 0x96;                                        \
00552 }
00553 #define EXTRACT_MMREG_MID(guid)                                         \
00554         (USHORT)((guid)->Data1 - 0xd5a47fa7)
00555 #define DEFINE_MMREG_MID_GUID(id)                                       \
00556         0xd5a47fa7+(USHORT)(id),0x6d98,0x11d1,0xa2,0x1a,0x00,0xa0,0xc9,0x22,0x31,0x96
00557 
00558 #define IS_COMPATIBLE_MMREG_MID(guid)                                   \
00559         (((guid)->Data1 >= 0xd5a47fa7) &&                               \
00560          ((guid)->Data1 < 0xd5a47fa7 + 0xffff) &&                       \
00561          ((guid)->Data2 == 0x6d98) &&                                   \
00562          ((guid)->Data3 == 0x11d1) &&                                   \
00563          ((guid)->Data4[0] == 0xa2) &&                                  \
00564          ((guid)->Data4[1] == 0x1a) &&                                  \
00565          ((guid)->Data4[2] == 0x00) &&                                  \
00566          ((guid)->Data4[3] == 0xa0) &&                                  \
00567          ((guid)->Data4[4] == 0xc9) &&                                  \
00568          ((guid)->Data4[5] == 0x22) &&                                  \
00569          ((guid)->Data4[6] == 0x31) &&                                  \
00570          ((guid)->Data4[7] == 0x96) )
00571 #endif /* INIT_MMREG_MID */
00572 
00573 #ifndef INIT_MMREG_PID
00574 #define INIT_MMREG_PID(guid,id)                                         \
00575 {                                                                       \
00576         (guid)->Data1 = 0xe36dc2ac + (USHORT)(id);                      \
00577         (guid)->Data2 = 0x6d9a;                                         \
00578         (guid)->Data3 = 0x11d1;                                         \
00579         (guid)->Data4[0] = 0xa2;                                        \
00580         (guid)->Data4[1] = 0x1a;                                        \
00581         (guid)->Data4[2] = 0x00;                                        \
00582         (guid)->Data4[3] = 0xa0;                                        \
00583         (guid)->Data4[4] = 0xc9;                                        \
00584         (guid)->Data4[5] = 0x22;                                        \
00585         (guid)->Data4[6] = 0x31;                                        \
00586         (guid)->Data4[7] = 0x96;                                        \
00587 }
00588 #define EXTRACT_MMREG_PID(guid)                                         \
00589         (USHORT)((guid)->Data1 - 0xe36dc2ac)
00590 #define DEFINE_MMREG_PID_GUID(id)                                       \
00591         0xe36dc2ac+(USHORT)(id),0x6d9a,0x11d1,0xa2,0x1a,0x00,0xa0,0xc9,0x22,0x31,0x96
00592 
00593 #define IS_COMPATIBLE_MMREG_PID(guid)                                   \
00594         (((guid)->Data1 >= 0xe36dc2ac) &&                               \
00595          ((guid)->Data1 < 0xe36dc2ac + 0xffff) &&                       \
00596          ((guid)->Data2 == 0x6d9a) &&                                   \
00597          ((guid)->Data3 == 0x11d1) &&                                   \
00598          ((guid)->Data4[0] == 0xa2) &&                                  \
00599          ((guid)->Data4[1] == 0x1a) &&                                  \
00600          ((guid)->Data4[2] == 0x00) &&                                  \
00601          ((guid)->Data4[3] == 0xa0) &&                                  \
00602          ((guid)->Data4[4] == 0xc9) &&                                  \
00603          ((guid)->Data4[5] == 0x22) &&                                  \
00604          ((guid)->Data4[6] == 0x31) &&                                  \
00605          ((guid)->Data4[7] == 0x96) )
00606 #endif /* INIT_MMREG_PID */
00607 
00608 #define STATIC_KSDATAFORMAT_SUBTYPE_ANALOG                              \
00609         0x6dba3190L,0x67bd,0x11cf,0xa0,0xf7,0x00,0x20,0xaf,0xd1,0x56,0xe4
00610 DEFINE_GUIDSTRUCT("6dba3190-67bd-11cf-a0f7-0020afd156e4",KSDATAFORMAT_SUBTYPE_ANALOG);
00611 #define KSDATAFORMAT_SUBTYPE_ANALOG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ANALOG)
00612 
00613 #define STATIC_KSDATAFORMAT_SUBTYPE_PCM                                 \
00614         DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_PCM)
00615 DEFINE_GUIDSTRUCT("00000001-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_PCM);
00616 #define KSDATAFORMAT_SUBTYPE_PCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_PCM)
00617 
00618 #ifdef _INC_MMREG
00619 #define STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT                          \
00620         DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_IEEE_FLOAT)
00621 DEFINE_GUIDSTRUCT("00000003-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_IEEE_FLOAT);
00622 #define KSDATAFORMAT_SUBTYPE_IEEE_FLOAT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)
00623 
00624 #define STATIC_KSDATAFORMAT_SUBTYPE_DRM                                 \
00625         DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_DRM)
00626 DEFINE_GUIDSTRUCT("00000009-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_DRM);
00627 #define KSDATAFORMAT_SUBTYPE_DRM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DRM)
00628 
00629 #define STATIC_KSDATAFORMAT_SUBTYPE_ALAW                                \
00630         DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_ALAW)
00631 DEFINE_GUIDSTRUCT("00000006-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_ALAW);
00632 #define KSDATAFORMAT_SUBTYPE_ALAW DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ALAW)
00633 
00634 #define STATIC_KSDATAFORMAT_SUBTYPE_MULAW                               \
00635         DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_MULAW)
00636 DEFINE_GUIDSTRUCT("00000007-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_MULAW);
00637 #define KSDATAFORMAT_SUBTYPE_MULAW DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MULAW)
00638 
00639 #define STATIC_KSDATAFORMAT_SUBTYPE_ADPCM                               \
00640         DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_ADPCM)
00641 DEFINE_GUIDSTRUCT("00000002-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_ADPCM);
00642 #define KSDATAFORMAT_SUBTYPE_ADPCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ADPCM)
00643 
00644 #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG                                \
00645         DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_MPEG)
00646 DEFINE_GUIDSTRUCT("00000050-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_MPEG);
00647 #define KSDATAFORMAT_SUBTYPE_MPEG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG)
00648 #endif /* _INC_MMREG */
00649 
00650 #define STATIC_KSDATAFORMAT_SPECIFIER_VC_ID                             \
00651         0xAD98D184L,0xAAC3,0x11D0,0xA4,0x1C,0x00,0xA0,0xC9,0x22,0x31,0x96
00652 DEFINE_GUIDSTRUCT("AD98D184-AAC3-11D0-A41C-00A0C9223196",KSDATAFORMAT_SPECIFIER_VC_ID);
00653 #define KSDATAFORMAT_SPECIFIER_VC_ID DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VC_ID)
00654 
00655 #define STATIC_KSDATAFORMAT_SPECIFIER_WAVEFORMATEX                      \
00656         0x05589f81L,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a
00657 DEFINE_GUIDSTRUCT("05589f81-c356-11ce-bf01-00aa0055595a",KSDATAFORMAT_SPECIFIER_WAVEFORMATEX);
00658 #define KSDATAFORMAT_SPECIFIER_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
00659 
00660 #define STATIC_KSDATAFORMAT_SPECIFIER_DSOUND                            \
00661         0x518590a2L,0xa184,0x11d0,0x85,0x22,0x00,0xc0,0x4f,0xd9,0xba,0xf3
00662 DEFINE_GUIDSTRUCT("518590a2-a184-11d0-8522-00c04fd9baf3",KSDATAFORMAT_SPECIFIER_DSOUND);
00663 #define KSDATAFORMAT_SPECIFIER_DSOUND DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DSOUND)
00664 
00665 #if defined(_INC_MMSYSTEM) || defined(_INC_MMREG)
00666 #if !defined(PACK_PRAGMAS_NOT_SUPPORTED)
00667 #include <pshpack1.h>
00668 #endif
00669 typedef struct {
00670   KSDATAFORMAT DataFormat;
00671   WAVEFORMATEX WaveFormatEx;
00672 } KSDATAFORMAT_WAVEFORMATEX,*PKSDATAFORMAT_WAVEFORMATEX;
00673 
00674 #ifndef _WAVEFORMATEXTENSIBLE_
00675 #define _WAVEFORMATEXTENSIBLE_
00676 typedef struct {
00677   WAVEFORMATEX Format;
00678   union {
00679     WORD wValidBitsPerSample;
00680     WORD wSamplesPerBlock;
00681     WORD wReserved;
00682   } Samples;
00683   DWORD dwChannelMask;
00684 
00685   GUID SubFormat;
00686 } WAVEFORMATEXTENSIBLE,*PWAVEFORMATEXTENSIBLE;
00687 #endif /* _WAVEFORMATEXTENSIBLE_ */
00688 
00689 #if !defined(WAVE_FORMAT_EXTENSIBLE)
00690 #define WAVE_FORMAT_EXTENSIBLE                  0xFFFE
00691 #endif
00692 
00693 typedef struct {
00694   ULONG Flags;
00695   ULONG Control;
00696   WAVEFORMATEX WaveFormatEx;
00697 } KSDSOUND_BUFFERDESC,*PKSDSOUND_BUFFERDESC;
00698 
00699 typedef struct {
00700   KSDATAFORMAT DataFormat;
00701   KSDSOUND_BUFFERDESC BufferDesc;
00702 } KSDATAFORMAT_DSOUND,*PKSDATAFORMAT_DSOUND;
00703 
00704 #if !defined(PACK_PRAGMAS_NOT_SUPPORTED)
00705 #include <poppack.h>
00706 #endif
00707 #endif /* defined(_INC_MMSYSTEM) || defined(_INC_MMREG) */
00708 
00709 #define KSDSOUND_BUFFER_PRIMARY                 0x00000001
00710 #define KSDSOUND_BUFFER_STATIC                  0x00000002
00711 #define KSDSOUND_BUFFER_LOCHARDWARE             0x00000004
00712 #define KSDSOUND_BUFFER_LOCSOFTWARE             0x00000008
00713 
00714 #define KSDSOUND_BUFFER_CTRL_3D                 0x00000001
00715 #define KSDSOUND_BUFFER_CTRL_FREQUENCY          0x00000002
00716 #define KSDSOUND_BUFFER_CTRL_PAN                0x00000004
00717 #define KSDSOUND_BUFFER_CTRL_VOLUME             0x00000008
00718 #define KSDSOUND_BUFFER_CTRL_POSITIONNOTIFY     0x00000010
00719 
00720 typedef struct {
00721   DWORDLONG PlayOffset;
00722   DWORDLONG WriteOffset;
00723 } KSAUDIO_POSITION,*PKSAUDIO_POSITION;
00724 
00725 typedef struct _DS3DVECTOR {
00726   __MINGW_EXTENSION union {
00727     FLOAT x;
00728     FLOAT dvX;
00729   };
00730   __MINGW_EXTENSION union {
00731     FLOAT y;
00732     FLOAT dvY;
00733   };
00734   __MINGW_EXTENSION union {
00735     FLOAT z;
00736     FLOAT dvZ;
00737   };
00738 } DS3DVECTOR,*PDS3DVECTOR;
00739 
00740 #define STATIC_KSPROPSETID_DirectSound3DListener                        \
00741         0x437b3414L,0xd060,0x11d0,0x85,0x83,0x00,0xc0,0x4f,0xd9,0xba,0xf3
00742 DEFINE_GUIDSTRUCT("437b3414-d060-11d0-8583-00c04fd9baf3",KSPROPSETID_DirectSound3DListener);
00743 #define KSPROPSETID_DirectSound3DListener DEFINE_GUIDNAMED(KSPROPSETID_DirectSound3DListener)
00744 
00745 typedef enum {
00746   KSPROPERTY_DIRECTSOUND3DLISTENER_ALL,
00747   KSPROPERTY_DIRECTSOUND3DLISTENER_POSITION,
00748   KSPROPERTY_DIRECTSOUND3DLISTENER_VELOCITY,
00749   KSPROPERTY_DIRECTSOUND3DLISTENER_ORIENTATION,
00750   KSPROPERTY_DIRECTSOUND3DLISTENER_DISTANCEFACTOR,
00751   KSPROPERTY_DIRECTSOUND3DLISTENER_ROLLOFFFACTOR,
00752   KSPROPERTY_DIRECTSOUND3DLISTENER_DOPPLERFACTOR,
00753   KSPROPERTY_DIRECTSOUND3DLISTENER_BATCH,
00754   KSPROPERTY_DIRECTSOUND3DLISTENER_ALLOCATION
00755 } KSPROPERTY_DIRECTSOUND3DLISTENER;
00756 
00757 typedef struct {
00758   DS3DVECTOR Position;
00759   DS3DVECTOR Velocity;
00760   DS3DVECTOR OrientFront;
00761   DS3DVECTOR OrientTop;
00762   FLOAT DistanceFactor;
00763   FLOAT RolloffFactor;
00764   FLOAT DopplerFactor;
00765 } KSDS3D_LISTENER_ALL,*PKSDS3D_LISTENER_ALL;
00766 
00767 typedef struct {
00768   DS3DVECTOR Front;
00769   DS3DVECTOR Top;
00770 } KSDS3D_LISTENER_ORIENTATION,*PKSDS3D_LISTENER_ORIENTATION;
00771 
00772 #define STATIC_KSPROPSETID_DirectSound3DBuffer                          \
00773         0x437b3411L,0xd060,0x11d0,0x85,0x83,0x00,0xc0,0x4f,0xd9,0xba,0xf3
00774 DEFINE_GUIDSTRUCT("437b3411-d060-11d0-8583-00c04fd9baf3",KSPROPSETID_DirectSound3DBuffer);
00775 #define KSPROPSETID_DirectSound3DBuffer DEFINE_GUIDNAMED(KSPROPSETID_DirectSound3DBuffer)
00776 
00777 typedef enum {
00778   KSPROPERTY_DIRECTSOUND3DBUFFER_ALL,
00779   KSPROPERTY_DIRECTSOUND3DBUFFER_POSITION,
00780   KSPROPERTY_DIRECTSOUND3DBUFFER_VELOCITY,
00781   KSPROPERTY_DIRECTSOUND3DBUFFER_CONEANGLES,
00782   KSPROPERTY_DIRECTSOUND3DBUFFER_CONEORIENTATION,
00783   KSPROPERTY_DIRECTSOUND3DBUFFER_CONEOUTSIDEVOLUME,
00784   KSPROPERTY_DIRECTSOUND3DBUFFER_MINDISTANCE,
00785   KSPROPERTY_DIRECTSOUND3DBUFFER_MAXDISTANCE,
00786   KSPROPERTY_DIRECTSOUND3DBUFFER_MODE
00787 } KSPROPERTY_DIRECTSOUND3DBUFFER;
00788 
00789 typedef struct {
00790   DS3DVECTOR Position;
00791   DS3DVECTOR Velocity;
00792   ULONG InsideConeAngle;
00793   ULONG OutsideConeAngle;
00794   DS3DVECTOR ConeOrientation;
00795   LONG ConeOutsideVolume;
00796   FLOAT MinDistance;
00797   FLOAT MaxDistance;
00798   ULONG Mode;
00799 } KSDS3D_BUFFER_ALL,*PKSDS3D_BUFFER_ALL;
00800 
00801 typedef struct {
00802   ULONG InsideConeAngle;
00803   ULONG OutsideConeAngle;
00804 } KSDS3D_BUFFER_CONE_ANGLES,*PKSDS3D_BUFFER_CONE_ANGLES;
00805 
00806 #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_HEADPHONE       (-1)
00807 #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_MIN             5
00808 #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_NARROW          10
00809 #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_WIDE            20
00810 #define KSAUDIO_STEREO_SPEAKER_GEOMETRY_MAX             180
00811 
00812 #define KSDSOUND_3D_MODE_NORMAL                 0x00000000
00813 #define KSDSOUND_3D_MODE_HEADRELATIVE           0x00000001
00814 #define KSDSOUND_3D_MODE_DISABLE                0x00000002
00815 
00816 #define KSDSOUND_BUFFER_CTRL_HRTF_3D            0x40000000
00817 
00818 typedef struct {
00819   ULONG Size;
00820   ULONG Enabled;
00821   WINBOOL SwapChannels;
00822   WINBOOL ZeroAzimuth;
00823   WINBOOL CrossFadeOutput;
00824   ULONG FilterSize;
00825 } KSDS3D_HRTF_PARAMS_MSG,*PKSDS3D_HRTF_PARAMS_MSG;
00826 
00827 typedef enum {
00828   FULL_FILTER,
00829   LIGHT_FILTER,
00830   KSDS3D_FILTER_QUALITY_COUNT
00831 } KSDS3D_HRTF_FILTER_QUALITY;
00832 
00833 typedef struct {
00834   ULONG Size;
00835   KSDS3D_HRTF_FILTER_QUALITY Quality;
00836   FLOAT SampleRate;
00837   ULONG MaxFilterSize;
00838   ULONG FilterTransientMuteLength;
00839   ULONG FilterOverlapBufferLength;
00840   ULONG OutputOverlapBufferLength;
00841   ULONG Reserved;
00842 } KSDS3D_HRTF_INIT_MSG,*PKSDS3D_HRTF_INIT_MSG;
00843 
00844 typedef enum {
00845   FLOAT_COEFF,
00846   SHORT_COEFF,
00847   KSDS3D_COEFF_COUNT
00848 } KSDS3D_HRTF_COEFF_FORMAT;
00849 
00850 typedef enum {
00851   DIRECT_FORM,
00852   CASCADE_FORM,
00853   KSDS3D_FILTER_METHOD_COUNT
00854 } KSDS3D_HRTF_FILTER_METHOD;
00855 
00856 typedef enum {
00857   DS3D_HRTF_VERSION_1
00858 } KSDS3D_HRTF_FILTER_VERSION;
00859 
00860 typedef struct {
00861   KSDS3D_HRTF_FILTER_METHOD FilterMethod;
00862   KSDS3D_HRTF_COEFF_FORMAT CoeffFormat;
00863   KSDS3D_HRTF_FILTER_VERSION Version;
00864   ULONG Reserved;
00865 } KSDS3D_HRTF_FILTER_FORMAT_MSG,*PKSDS3D_HRTF_FILTER_FORMAT_MSG;
00866 
00867 #define STATIC_KSPROPSETID_Hrtf3d                                       \
00868         0xb66decb0L,0xa083,0x11d0,0x85,0x1e,0x00,0xc0,0x4f,0xd9,0xba,0xf3
00869 DEFINE_GUIDSTRUCT("b66decb0-a083-11d0-851e-00c04fd9baf3",KSPROPSETID_Hrtf3d);
00870 #define KSPROPSETID_Hrtf3d DEFINE_GUIDNAMED(KSPROPSETID_Hrtf3d)
00871 
00872 typedef enum {
00873   KSPROPERTY_HRTF3D_PARAMS = 0,
00874   KSPROPERTY_HRTF3D_INITIALIZE,
00875   KSPROPERTY_HRTF3D_FILTER_FORMAT
00876 } KSPROPERTY_HRTF3D;
00877 
00878 typedef struct {
00879   LONG Channel;
00880   FLOAT VolSmoothScale;
00881   FLOAT TotalDryAttenuation;
00882   FLOAT TotalWetAttenuation;
00883   LONG SmoothFrequency;
00884   LONG Delay;
00885 } KSDS3D_ITD_PARAMS,*PKSDS3D_ITD_PARAMS;
00886 
00887 typedef struct {
00888   ULONG Enabled;
00889   KSDS3D_ITD_PARAMS LeftParams;
00890   KSDS3D_ITD_PARAMS RightParams;
00891   ULONG Reserved;
00892 } KSDS3D_ITD_PARAMS_MSG,*PKSDS3D_ITD_PARAMS_MSG;
00893 
00894 #define STATIC_KSPROPSETID_Itd3d                                        \
00895         0x6429f090L,0x9fd9,0x11d0,0xa7,0x5b,0x00,0xa0,0xc9,0x03,0x65,0xe3
00896 DEFINE_GUIDSTRUCT("6429f090-9fd9-11d0-a75b-00a0c90365e3",KSPROPSETID_Itd3d);
00897 #define KSPROPSETID_Itd3d DEFINE_GUIDNAMED(KSPROPSETID_Itd3d)
00898 
00899 typedef enum {
00900   KSPROPERTY_ITD3D_PARAMS = 0
00901 } KSPROPERTY_ITD3D;
00902 
00903 typedef struct {
00904   KSDATARANGE DataRange;
00905   ULONG MaximumChannels;
00906   ULONG MinimumBitsPerSample;
00907   ULONG MaximumBitsPerSample;
00908   ULONG MinimumSampleFrequency;
00909   ULONG MaximumSampleFrequency;
00910 } KSDATARANGE_AUDIO,*PKSDATARANGE_AUDIO;
00911 
00912 #define STATIC_KSDATAFORMAT_SUBTYPE_RIFF                                \
00913         0x4995DAEEL,0x9EE6,0x11D0,0xA4,0x0E,0x00,0xA0,0xC9,0x22,0x31,0x96
00914 DEFINE_GUIDSTRUCT("4995DAEE-9EE6-11D0-A40E-00A0C9223196",KSDATAFORMAT_SUBTYPE_RIFF);
00915 #define KSDATAFORMAT_SUBTYPE_RIFF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFF)
00916 
00917 #define STATIC_KSDATAFORMAT_SUBTYPE_RIFFWAVE                            \
00918         0xe436eb8bL,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
00919 DEFINE_GUIDSTRUCT("e436eb8b-524f-11ce-9f53-0020af0ba770",KSDATAFORMAT_SUBTYPE_RIFFWAVE);
00920 #define KSDATAFORMAT_SUBTYPE_RIFFWAVE DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFFWAVE)
00921 
00922 #define STATIC_KSPROPSETID_Bibliographic                                \
00923         0x07BA150EL,0xE2B1,0x11D0,0xAC,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
00924 DEFINE_GUIDSTRUCT("07BA150E-E2B1-11D0-AC17-00A0C9223196",KSPROPSETID_Bibliographic);
00925 #define KSPROPSETID_Bibliographic DEFINE_GUIDNAMED(KSPROPSETID_Bibliographic)
00926 
00927 typedef enum {
00928   KSPROPERTY_BIBLIOGRAPHIC_LEADER = 'RDL ',
00929   KSPROPERTY_BIBLIOGRAPHIC_LCCN = '010 ',
00930   KSPROPERTY_BIBLIOGRAPHIC_ISBN = '020 ',
00931   KSPROPERTY_BIBLIOGRAPHIC_ISSN = '220 ',
00932   KSPROPERTY_BIBLIOGRAPHIC_CATALOGINGSOURCE = '040 ',
00933   KSPROPERTY_BIBLIOGRAPHIC_MAINPERSONALNAME = '001 ',
00934   KSPROPERTY_BIBLIOGRAPHIC_MAINCORPORATEBODY = '011 ',
00935   KSPROPERTY_BIBLIOGRAPHIC_MAINMEETINGNAME = '111 ',
00936   KSPROPERTY_BIBLIOGRAPHIC_MAINUNIFORMTITLE = '031 ',
00937   KSPROPERTY_BIBLIOGRAPHIC_UNIFORMTITLE = '042 ',
00938   KSPROPERTY_BIBLIOGRAPHIC_TITLESTATEMENT = '542 ',
00939   KSPROPERTY_BIBLIOGRAPHIC_VARYINGFORMTITLE = '642 ',
00940   KSPROPERTY_BIBLIOGRAPHIC_PUBLICATION = '062 ',
00941   KSPROPERTY_BIBLIOGRAPHIC_PHYSICALDESCRIPTION = '003 ',
00942   KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTITLE = '044 ',
00943   KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENT = '094 ',
00944   KSPROPERTY_BIBLIOGRAPHIC_GENERALNOTE = '005 ',
00945   KSPROPERTY_BIBLIOGRAPHIC_BIBLIOGRAPHYNOTE = '405 ',
00946   KSPROPERTY_BIBLIOGRAPHIC_CONTENTSNOTE = '505 ',
00947   KSPROPERTY_BIBLIOGRAPHIC_CREATIONCREDIT = '805 ',
00948   KSPROPERTY_BIBLIOGRAPHIC_CITATION = '015 ',
00949   KSPROPERTY_BIBLIOGRAPHIC_PARTICIPANT = '115 ',
00950   KSPROPERTY_BIBLIOGRAPHIC_SUMMARY = '025 ',
00951   KSPROPERTY_BIBLIOGRAPHIC_TARGETAUDIENCE = '125 ',
00952   KSPROPERTY_BIBLIOGRAPHIC_ADDEDFORMAVAILABLE = '035 ',
00953   KSPROPERTY_BIBLIOGRAPHIC_SYSTEMDETAILS = '835 ',
00954   KSPROPERTY_BIBLIOGRAPHIC_AWARDS = '685 ',
00955   KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYPERSONALNAME = '006 ',
00956   KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTOPICALTERM = '056 ',
00957   KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYGEOGRAPHIC = '156 ',
00958   KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMGENRE = '556 ',
00959   KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMCURRICULUM = '856 ',
00960   KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYUNIFORMTITLE = '037 ',
00961   KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYRELATED = '047 ',
00962   KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTPERSONALNAME = '008 ',
00963   KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTUNIFORMTITLE = '038 '
00964 } KSPROPERTY_BIBLIOGRAPHIC;
00965 
00966 #define STATIC_KSPROPSETID_TopologyNode                                 \
00967         0x45FFAAA1L,0x6E1B,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00
00968 DEFINE_GUIDSTRUCT("45FFAAA1-6E1B-11D0-BCF2-444553540000",KSPROPSETID_TopologyNode);
00969 #define KSPROPSETID_TopologyNode DEFINE_GUIDNAMED(KSPROPSETID_TopologyNode)
00970 
00971 typedef enum {
00972   KSPROPERTY_TOPOLOGYNODE_ENABLE = 1,
00973   KSPROPERTY_TOPOLOGYNODE_RESET
00974 } KSPROPERTY_TOPOLOGYNODE;
00975 
00976 #define STATIC_KSPROPSETID_RtAudio                                      \
00977         0xa855a48c,0x2f78,0x4729,0x90,0x51,0x19,0x68,0x74,0x6b,0x9e,0xef
00978 DEFINE_GUIDSTRUCT("A855A48C-2F78-4729-9051-1968746B9EEF",KSPROPSETID_RtAudio);
00979 #define KSPROPSETID_RtAudio DEFINE_GUIDNAMED(KSPROPSETID_RtAudio)
00980 
00981 typedef enum {
00982   KSPROPERTY_RTAUDIO_GETPOSITIONFUNCTION
00983 } KSPROPERTY_RTAUDIO;
00984 
00985 #define STATIC_KSPROPSETID_DrmAudioStream                               \
00986         0x2f2c8ddd,0x4198,0x4fac,0xba,0x29,0x61,0xbb,0x5,0xb7,0xde,0x6
00987 DEFINE_GUIDSTRUCT("2F2C8DDD-4198-4fac-BA29-61BB05B7DE06",KSPROPSETID_DrmAudioStream);
00988 #define KSPROPSETID_DrmAudioStream DEFINE_GUIDNAMED(KSPROPSETID_DrmAudioStream)
00989 
00990 typedef enum {
00991   KSPROPERTY_DRMAUDIOSTREAM_CONTENTID
00992 } KSPROPERTY_DRMAUDIOSTREAM;
00993 
00994 #define STATIC_KSPROPSETID_Audio                                        \
00995         0x45FFAAA0L,0x6E1B,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00
00996 DEFINE_GUIDSTRUCT("45FFAAA0-6E1B-11D0-BCF2-444553540000",KSPROPSETID_Audio);
00997 #define KSPROPSETID_Audio DEFINE_GUIDNAMED(KSPROPSETID_Audio)
00998 
00999 typedef enum {
01000   KSPROPERTY_AUDIO_LATENCY = 1,
01001   KSPROPERTY_AUDIO_COPY_PROTECTION,
01002   KSPROPERTY_AUDIO_CHANNEL_CONFIG,
01003   KSPROPERTY_AUDIO_VOLUMELEVEL,
01004   KSPROPERTY_AUDIO_POSITION,
01005   KSPROPERTY_AUDIO_DYNAMIC_RANGE,
01006   KSPROPERTY_AUDIO_QUALITY,
01007   KSPROPERTY_AUDIO_SAMPLING_RATE,
01008   KSPROPERTY_AUDIO_DYNAMIC_SAMPLING_RATE,
01009   KSPROPERTY_AUDIO_MIX_LEVEL_TABLE,
01010   KSPROPERTY_AUDIO_MIX_LEVEL_CAPS,
01011   KSPROPERTY_AUDIO_MUX_SOURCE,
01012   KSPROPERTY_AUDIO_MUTE,
01013   KSPROPERTY_AUDIO_BASS,
01014   KSPROPERTY_AUDIO_MID,
01015   KSPROPERTY_AUDIO_TREBLE,
01016   KSPROPERTY_AUDIO_BASS_BOOST,
01017   KSPROPERTY_AUDIO_EQ_LEVEL,
01018   KSPROPERTY_AUDIO_NUM_EQ_BANDS,
01019   KSPROPERTY_AUDIO_EQ_BANDS,
01020   KSPROPERTY_AUDIO_AGC,
01021   KSPROPERTY_AUDIO_DELAY,
01022   KSPROPERTY_AUDIO_LOUDNESS,
01023   KSPROPERTY_AUDIO_WIDE_MODE,
01024   KSPROPERTY_AUDIO_WIDENESS,
01025   KSPROPERTY_AUDIO_REVERB_LEVEL,
01026   KSPROPERTY_AUDIO_CHORUS_LEVEL,
01027   KSPROPERTY_AUDIO_DEV_SPECIFIC,
01028   KSPROPERTY_AUDIO_DEMUX_DEST,
01029   KSPROPERTY_AUDIO_STEREO_ENHANCE,
01030   KSPROPERTY_AUDIO_MANUFACTURE_GUID,
01031   KSPROPERTY_AUDIO_PRODUCT_GUID,
01032   KSPROPERTY_AUDIO_CPU_RESOURCES,
01033   KSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY,
01034   KSPROPERTY_AUDIO_SURROUND_ENCODE,
01035   KSPROPERTY_AUDIO_3D_INTERFACE,
01036   KSPROPERTY_AUDIO_PEAKMETER,
01037   KSPROPERTY_AUDIO_ALGORITHM_INSTANCE,
01038   KSPROPERTY_AUDIO_FILTER_STATE,
01039   KSPROPERTY_AUDIO_PREFERRED_STATUS
01040 } KSPROPERTY_AUDIO;
01041 
01042 #define KSAUDIO_QUALITY_WORST                   0x0
01043 #define KSAUDIO_QUALITY_PC                      0x1
01044 #define KSAUDIO_QUALITY_BASIC                   0x2
01045 #define KSAUDIO_QUALITY_ADVANCED                0x3
01046 
01047 #define KSAUDIO_CPU_RESOURCES_NOT_HOST_CPU      0x00000000
01048 #define KSAUDIO_CPU_RESOURCES_HOST_CPU          0x7FFFFFFF
01049 
01050 typedef struct {
01051   WINBOOL fCopyrighted;
01052   WINBOOL fOriginal;
01053 } KSAUDIO_COPY_PROTECTION,*PKSAUDIO_COPY_PROTECTION;
01054 
01055 typedef struct {
01056   LONG ActiveSpeakerPositions;
01057 } KSAUDIO_CHANNEL_CONFIG,*PKSAUDIO_CHANNEL_CONFIG;
01058 
01059 #define SPEAKER_FRONT_LEFT              0x1
01060 #define SPEAKER_FRONT_RIGHT             0x2
01061 #define SPEAKER_FRONT_CENTER            0x4
01062 #define SPEAKER_LOW_FREQUENCY           0x8
01063 #define SPEAKER_BACK_LEFT               0x10
01064 #define SPEAKER_BACK_RIGHT              0x20
01065 #define SPEAKER_FRONT_LEFT_OF_CENTER    0x40
01066 #define SPEAKER_FRONT_RIGHT_OF_CENTER   0x80
01067 #define SPEAKER_BACK_CENTER             0x100
01068 #define SPEAKER_SIDE_LEFT               0x200
01069 #define SPEAKER_SIDE_RIGHT              0x400
01070 #define SPEAKER_TOP_CENTER              0x800
01071 #define SPEAKER_TOP_FRONT_LEFT          0x1000
01072 #define SPEAKER_TOP_FRONT_CENTER        0x2000
01073 #define SPEAKER_TOP_FRONT_RIGHT         0x4000
01074 #define SPEAKER_TOP_BACK_LEFT           0x8000
01075 #define SPEAKER_TOP_BACK_CENTER         0x10000
01076 #define SPEAKER_TOP_BACK_RIGHT          0x20000
01077 
01078 #define SPEAKER_RESERVED                0x7FFC0000
01079 
01080 #define SPEAKER_ALL                     0x80000000
01081 
01082 #define KSAUDIO_SPEAKER_DIRECTOUT       0
01083 #define KSAUDIO_SPEAKER_MONO            (SPEAKER_FRONT_CENTER)
01084 #define KSAUDIO_SPEAKER_STEREO          (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT)
01085 #define KSAUDIO_SPEAKER_QUAD            (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |             \
01086                                          SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
01087 #define KSAUDIO_SPEAKER_SURROUND        (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |             \
01088                                          SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER)
01089 #define KSAUDIO_SPEAKER_5POINT1         (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |             \
01090                                          SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY |         \
01091                                          SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
01092 #define KSAUDIO_SPEAKER_7POINT1         (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |             \
01093                                          SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY |         \
01094                                          SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT |               \
01095                                          SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER)
01096 #define KSAUDIO_SPEAKER_5POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |            \
01097                                           SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY |        \
01098                                           SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
01099 #define KSAUDIO_SPEAKER_7POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |            \
01100                                           SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY |        \
01101                                           SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT |              \
01102                                           SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
01103 
01104 #define KSAUDIO_SPEAKER_5POINT1_BACK    KSAUDIO_SPEAKER_5POINT1
01105 #define KSAUDIO_SPEAKER_7POINT1_WIDE    KSAUDIO_SPEAKER_7POINT1
01106 
01107 #define KSAUDIO_SPEAKER_GROUND_FRONT_LEFT       SPEAKER_FRONT_LEFT
01108 #define KSAUDIO_SPEAKER_GROUND_FRONT_CENTER     SPEAKER_FRONT_CENTER
01109 #define KSAUDIO_SPEAKER_GROUND_FRONT_RIGHT      SPEAKER_FRONT_RIGHT
01110 #define KSAUDIO_SPEAKER_GROUND_REAR_LEFT        SPEAKER_BACK_LEFT
01111 #define KSAUDIO_SPEAKER_GROUND_REAR_RIGHT       SPEAKER_BACK_RIGHT
01112 #define KSAUDIO_SPEAKER_TOP_MIDDLE              SPEAKER_TOP_CENTER
01113 #define KSAUDIO_SPEAKER_SUPER_WOOFER            SPEAKER_LOW_FREQUENCY
01114 
01115 typedef struct {
01116   ULONG QuietCompression;
01117   ULONG LoudCompression;
01118 } KSAUDIO_DYNAMIC_RANGE,*PKSAUDIO_DYNAMIC_RANGE;
01119 
01120 typedef struct {
01121   WINBOOL Mute;
01122   LONG Level;
01123 } KSAUDIO_MIXLEVEL,*PKSAUDIO_MIXLEVEL;
01124 
01125 typedef struct {
01126   WINBOOL Mute;
01127   LONG Minimum;
01128   LONG Maximum;
01129   LONG Reset;
01130 } KSAUDIO_MIX_CAPS,*PKSAUDIO_MIX_CAPS;
01131 
01132 typedef struct {
01133   ULONG InputChannels;
01134   ULONG OutputChannels;
01135   KSAUDIO_MIX_CAPS Capabilities[1];
01136 } KSAUDIO_MIXCAP_TABLE,*PKSAUDIO_MIXCAP_TABLE;
01137 
01138 typedef enum {
01139   SE_TECH_NONE,
01140   SE_TECH_ANALOG_DEVICES_PHAT,
01141   SE_TECH_CREATIVE,
01142   SE_TECH_NATIONAL_SEMI,
01143   SE_TECH_YAMAHA_YMERSION,
01144   SE_TECH_BBE,
01145   SE_TECH_CRYSTAL_SEMI,
01146   SE_TECH_QSOUND_QXPANDER,
01147   SE_TECH_SPATIALIZER,
01148   SE_TECH_SRS,
01149   SE_TECH_PLATFORM_TECH,
01150   SE_TECH_AKM,
01151   SE_TECH_AUREAL,
01152   SE_TECH_AZTECH,
01153   SE_TECH_BINAURA,
01154   SE_TECH_ESS_TECH,
01155   SE_TECH_HARMAN_VMAX,
01156   SE_TECH_NVIDEA,
01157   SE_TECH_PHILIPS_INCREDIBLE,
01158   SE_TECH_TEXAS_INST,
01159   SE_TECH_VLSI_TECH
01160 } SE_TECHNIQUE;
01161 
01162 typedef struct {
01163   SE_TECHNIQUE Technique;
01164   ULONG Center;
01165   ULONG Depth;
01166   ULONG Reserved;
01167 } KSAUDIO_STEREO_ENHANCE,*PKSAUDIO_STEREO_ENHANCE;
01168 
01169 typedef enum {
01170   KSPROPERTY_SYSAUDIO_NORMAL_DEFAULT = 0,
01171   KSPROPERTY_SYSAUDIO_PLAYBACK_DEFAULT,
01172   KSPROPERTY_SYSAUDIO_RECORD_DEFAULT,
01173   KSPROPERTY_SYSAUDIO_MIDI_DEFAULT,
01174   KSPROPERTY_SYSAUDIO_MIXER_DEFAULT
01175 } KSPROPERTY_SYSAUDIO_DEFAULT_TYPE;
01176 
01177 typedef struct {
01178   WINBOOL Enable;
01179   KSPROPERTY_SYSAUDIO_DEFAULT_TYPE DeviceType;
01180   ULONG Flags;
01181   ULONG Reserved;
01182 } KSAUDIO_PREFERRED_STATUS,*PKSAUDIO_PREFERRED_STATUS;
01183 
01184 #define STATIC_KSNODETYPE_DAC                                           \
01185         0x507AE360L,0xC554,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01186 DEFINE_GUIDSTRUCT("507AE360-C554-11D0-8A2B-00A0C9255AC1",KSNODETYPE_DAC);
01187 #define KSNODETYPE_DAC DEFINE_GUIDNAMED(KSNODETYPE_DAC)
01188 
01189 #define STATIC_KSNODETYPE_ADC                                           \
01190         0x4D837FE0L,0xC555,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01191 DEFINE_GUIDSTRUCT("4D837FE0-C555-11D0-8A2B-00A0C9255AC1",KSNODETYPE_ADC);
01192 #define KSNODETYPE_ADC DEFINE_GUIDNAMED(KSNODETYPE_ADC)
01193 
01194 #define STATIC_KSNODETYPE_SRC                                           \
01195         0x9DB7B9E0L,0xC555,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01196 DEFINE_GUIDSTRUCT("9DB7B9E0-C555-11D0-8A2B-00A0C9255AC1",KSNODETYPE_SRC);
01197 #define KSNODETYPE_SRC DEFINE_GUIDNAMED(KSNODETYPE_SRC)
01198 
01199 #define STATIC_KSNODETYPE_SUPERMIX                                      \
01200         0xE573ADC0L,0xC555,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01201 DEFINE_GUIDSTRUCT("E573ADC0-C555-11D0-8A2B-00A0C9255AC1",KSNODETYPE_SUPERMIX);
01202 #define KSNODETYPE_SUPERMIX DEFINE_GUIDNAMED(KSNODETYPE_SUPERMIX)
01203 
01204 #define STATIC_KSNODETYPE_MUX                                           \
01205         0x2CEAF780L,0xC556,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01206 DEFINE_GUIDSTRUCT("2CEAF780-C556-11D0-8A2B-00A0C9255AC1",KSNODETYPE_MUX);
01207 #define KSNODETYPE_MUX DEFINE_GUIDNAMED(KSNODETYPE_MUX)
01208 
01209 #define STATIC_KSNODETYPE_DEMUX                                         \
01210         0xC0EB67D4L,0xE807,0x11D0,0x95,0x8A,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01211 DEFINE_GUIDSTRUCT("C0EB67D4-E807-11D0-958A-00C04FB925D3",KSNODETYPE_DEMUX);
01212 #define KSNODETYPE_DEMUX DEFINE_GUIDNAMED(KSNODETYPE_DEMUX)
01213 
01214 #define STATIC_KSNODETYPE_SUM                                           \
01215         0xDA441A60L,0xC556,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01216 DEFINE_GUIDSTRUCT("DA441A60-C556-11D0-8A2B-00A0C9255AC1",KSNODETYPE_SUM);
01217 #define KSNODETYPE_SUM DEFINE_GUIDNAMED(KSNODETYPE_SUM)
01218 
01219 #define STATIC_KSNODETYPE_MUTE                                          \
01220         0x02B223C0L,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01221 DEFINE_GUIDSTRUCT("02B223C0-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_MUTE);
01222 #define KSNODETYPE_MUTE DEFINE_GUIDNAMED(KSNODETYPE_MUTE)
01223 
01224 #define STATIC_KSNODETYPE_VOLUME                                        \
01225         0x3A5ACC00L,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01226 DEFINE_GUIDSTRUCT("3A5ACC00-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_VOLUME);
01227 #define KSNODETYPE_VOLUME DEFINE_GUIDNAMED(KSNODETYPE_VOLUME)
01228 
01229 #define STATIC_KSNODETYPE_TONE                                          \
01230         0x7607E580L,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01231 DEFINE_GUIDSTRUCT("7607E580-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_TONE);
01232 #define KSNODETYPE_TONE DEFINE_GUIDNAMED(KSNODETYPE_TONE)
01233 
01234 #define STATIC_KSNODETYPE_EQUALIZER                                     \
01235         0x9D41B4A0L,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01236 DEFINE_GUIDSTRUCT("9D41B4A0-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_EQUALIZER);
01237 #define KSNODETYPE_EQUALIZER DEFINE_GUIDNAMED(KSNODETYPE_EQUALIZER)
01238 
01239 #define STATIC_KSNODETYPE_AGC                                           \
01240         0xE88C9BA0L,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01241 DEFINE_GUIDSTRUCT("E88C9BA0-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_AGC);
01242 #define KSNODETYPE_AGC DEFINE_GUIDNAMED(KSNODETYPE_AGC)
01243 
01244 #define STATIC_KSNODETYPE_NOISE_SUPPRESS                                \
01245         0xe07f903f,0x62fd,0x4e60,0x8c,0xdd,0xde,0xa7,0x23,0x66,0x65,0xb5
01246 DEFINE_GUIDSTRUCT("E07F903F-62FD-4e60-8CDD-DEA7236665B5",KSNODETYPE_NOISE_SUPPRESS);
01247 #define KSNODETYPE_NOISE_SUPPRESS DEFINE_GUIDNAMED(KSNODETYPE_NOISE_SUPPRESS)
01248 
01249 #define STATIC_KSNODETYPE_DELAY                                         \
01250         0x144981E0L,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01251 DEFINE_GUIDSTRUCT("144981E0-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_DELAY);
01252 #define KSNODETYPE_DELAY DEFINE_GUIDNAMED(KSNODETYPE_DELAY)
01253 
01254 #define STATIC_KSNODETYPE_LOUDNESS                                      \
01255         0x41887440L,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01256 DEFINE_GUIDSTRUCT("41887440-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_LOUDNESS);
01257 #define KSNODETYPE_LOUDNESS DEFINE_GUIDNAMED(KSNODETYPE_LOUDNESS)
01258 
01259 #define STATIC_KSNODETYPE_PROLOGIC_DECODER                              \
01260         0x831C2C80L,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01261 DEFINE_GUIDSTRUCT("831C2C80-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_PROLOGIC_DECODER);
01262 #define KSNODETYPE_PROLOGIC_DECODER DEFINE_GUIDNAMED(KSNODETYPE_PROLOGIC_DECODER)
01263 
01264 #define STATIC_KSNODETYPE_STEREO_WIDE                                   \
01265         0xA9E69800L,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01266 DEFINE_GUIDSTRUCT("A9E69800-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_STEREO_WIDE);
01267 #define KSNODETYPE_STEREO_WIDE DEFINE_GUIDNAMED(KSNODETYPE_STEREO_WIDE)
01268 
01269 #define STATIC_KSNODETYPE_STEREO_ENHANCE                                \
01270         0xAF6878ACL,0xE83F,0x11D0,0x95,0x8A,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01271 DEFINE_GUIDSTRUCT("AF6878AC-E83F-11D0-958A-00C04FB925D3",KSNODETYPE_STEREO_ENHANCE);
01272 #define KSNODETYPE_STEREO_ENHANCE DEFINE_GUIDNAMED(KSNODETYPE_STEREO_ENHANCE)
01273 
01274 #define STATIC_KSNODETYPE_REVERB                                        \
01275         0xEF0328E0L,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01276 DEFINE_GUIDSTRUCT("EF0328E0-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_REVERB);
01277 #define KSNODETYPE_REVERB DEFINE_GUIDNAMED(KSNODETYPE_REVERB)
01278 
01279 #define STATIC_KSNODETYPE_CHORUS                                        \
01280         0x20173F20L,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01281 DEFINE_GUIDSTRUCT("20173F20-C559-11D0-8A2B-00A0C9255AC1",KSNODETYPE_CHORUS);
01282 #define KSNODETYPE_CHORUS DEFINE_GUIDNAMED(KSNODETYPE_CHORUS)
01283 
01284 #define STATIC_KSNODETYPE_3D_EFFECTS                                    \
01285         0x55515860L,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01286 DEFINE_GUIDSTRUCT("55515860-C559-11D0-8A2B-00A0C9255AC1",KSNODETYPE_3D_EFFECTS);
01287 #define KSNODETYPE_3D_EFFECTS DEFINE_GUIDNAMED(KSNODETYPE_3D_EFFECTS)
01288 
01289 #define STATIC_KSNODETYPE_ACOUSTIC_ECHO_CANCEL STATIC_KSCATEGORY_ACOUSTIC_ECHO_CANCEL
01290 #define KSNODETYPE_ACOUSTIC_ECHO_CANCEL KSCATEGORY_ACOUSTIC_ECHO_CANCEL
01291 
01292 #define STATIC_KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL          \
01293         0x1c22c56dL,0x9879,0x4f5b,0xa3,0x89,0x27,0x99,0x6d,0xdc,0x28,0x10
01294 DEFINE_GUIDSTRUCT("1C22C56D-9879-4f5b-A389-27996DDC2810",KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL);
01295 #define KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL)
01296 
01297 #define STATIC_KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS                \
01298         0x5ab0882eL,0x7274,0x4516,0x87,0x7d,0x4e,0xee,0x99,0xba,0x4f,0xd0
01299 DEFINE_GUIDSTRUCT("5AB0882E-7274-4516-877D-4EEE99BA4FD0",KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS);
01300 #define KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS)
01301 
01302 #define STATIC_KSALGORITHMINSTANCE_SYSTEM_AGC                           \
01303         0x950e55b9L,0x877c,0x4c67,0xbe,0x8,0xe4,0x7b,0x56,0x11,0x13,0xa
01304 DEFINE_GUIDSTRUCT("950E55B9-877C-4c67-BE08-E47B5611130A",KSALGORITHMINSTANCE_SYSTEM_AGC);
01305 #define KSALGORITHMINSTANCE_SYSTEM_AGC DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_AGC)
01306 
01307 #define STATIC_KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR    \
01308         0xB6F5A0A0L,0x9E61,0x4F8C,0x91,0xE3,0x76,0xCF,0xF,0x3C,0x47,0x1F
01309 DEFINE_GUIDSTRUCT("B6F5A0A0-9E61-4f8c-91E3-76CF0F3C471F",KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR);
01310 #define KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR)
01311 
01312 #define STATIC_KSNODETYPE_MICROPHONE_ARRAY_PROCESSOR STATIC_KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR
01313 #define KSNODETYPE_MICROPHONE_ARRAY_PROCESSOR KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR
01314 
01315 #define STATIC_KSNODETYPE_DEV_SPECIFIC                                  \
01316         0x941C7AC0L,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
01317 DEFINE_GUIDSTRUCT("941C7AC0-C559-11D0-8A2B-00A0C9255AC1",KSNODETYPE_DEV_SPECIFIC);
01318 #define KSNODETYPE_DEV_SPECIFIC DEFINE_GUIDNAMED(KSNODETYPE_DEV_SPECIFIC)
01319 
01320 #define STATIC_KSNODETYPE_PROLOGIC_ENCODER                              \
01321         0x8074C5B2L,0x3C66,0x11D2,0xB4,0x5A,0x30,0x78,0x30,0x2C,0x20,0x30
01322 DEFINE_GUIDSTRUCT("8074C5B2-3C66-11D2-B45A-3078302C2030",KSNODETYPE_PROLOGIC_ENCODER);
01323 #define KSNODETYPE_PROLOGIC_ENCODER DEFINE_GUIDNAMED(KSNODETYPE_PROLOGIC_ENCODER)
01324 #define KSNODETYPE_SURROUND_ENCODER KSNODETYPE_PROLOGIC_ENCODER
01325 
01326 #define STATIC_KSNODETYPE_PEAKMETER                                     \
01327         0xa085651eL,0x5f0d,0x4b36,0xa8,0x69,0xd1,0x95,0xd6,0xab,0x4b,0x9e
01328 DEFINE_GUIDSTRUCT("A085651E-5F0D-4b36-A869-D195D6AB4B9E",KSNODETYPE_PEAKMETER);
01329 #define KSNODETYPE_PEAKMETER DEFINE_GUIDNAMED(KSNODETYPE_PEAKMETER)
01330 
01331 #define STATIC_KSAUDFNAME_BASS                                          \
01332         0x185FEDE0L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01333 DEFINE_GUIDSTRUCT("185FEDE0-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_BASS);
01334 #define KSAUDFNAME_BASS DEFINE_GUIDNAMED(KSAUDFNAME_BASS)
01335 
01336 #define STATIC_KSAUDFNAME_TREBLE                                        \
01337         0x185FEDE1L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01338 DEFINE_GUIDSTRUCT("185FEDE1-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_TREBLE);
01339 #define KSAUDFNAME_TREBLE DEFINE_GUIDNAMED(KSAUDFNAME_TREBLE)
01340 
01341 #define STATIC_KSAUDFNAME_3D_STEREO                                     \
01342         0x185FEDE2L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01343 DEFINE_GUIDSTRUCT("185FEDE2-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_3D_STEREO);
01344 #define KSAUDFNAME_3D_STEREO DEFINE_GUIDNAMED(KSAUDFNAME_3D_STEREO)
01345 
01346 #define STATIC_KSAUDFNAME_MASTER_VOLUME                                 \
01347         0x185FEDE3L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01348 DEFINE_GUIDSTRUCT("185FEDE3-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MASTER_VOLUME);
01349 #define KSAUDFNAME_MASTER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_VOLUME)
01350 
01351 #define STATIC_KSAUDFNAME_MASTER_MUTE                                   \
01352         0x185FEDE4L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01353 DEFINE_GUIDSTRUCT("185FEDE4-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MASTER_MUTE);
01354 #define KSAUDFNAME_MASTER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_MUTE)
01355 
01356 #define STATIC_KSAUDFNAME_WAVE_VOLUME                                   \
01357         0x185FEDE5L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01358 DEFINE_GUIDSTRUCT("185FEDE5-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_VOLUME);
01359 #define KSAUDFNAME_WAVE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_VOLUME)
01360 
01361 #define STATIC_KSAUDFNAME_WAVE_MUTE                                     \
01362         0x185FEDE6L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01363 DEFINE_GUIDSTRUCT("185FEDE6-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_MUTE);
01364 #define KSAUDFNAME_WAVE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_MUTE)
01365 
01366 #define STATIC_KSAUDFNAME_MIDI_VOLUME                                   \
01367         0x185FEDE7L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01368 DEFINE_GUIDSTRUCT("185FEDE7-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI_VOLUME);
01369 #define KSAUDFNAME_MIDI_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_VOLUME)
01370 
01371 #define STATIC_KSAUDFNAME_MIDI_MUTE                                     \
01372         0x185FEDE8L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01373 DEFINE_GUIDSTRUCT("185FEDE8-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI_MUTE);
01374 #define KSAUDFNAME_MIDI_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_MUTE)
01375 
01376 #define STATIC_KSAUDFNAME_CD_VOLUME                                     \
01377         0x185FEDE9L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01378 DEFINE_GUIDSTRUCT("185FEDE9-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_VOLUME);
01379 #define KSAUDFNAME_CD_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_VOLUME)
01380 
01381 #define STATIC_KSAUDFNAME_CD_MUTE                                       \
01382         0x185FEDEAL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01383 DEFINE_GUIDSTRUCT("185FEDEA-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_MUTE);
01384 #define KSAUDFNAME_CD_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_CD_MUTE)
01385 
01386 #define STATIC_KSAUDFNAME_LINE_VOLUME                                   \
01387         0x185FEDEBL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01388 DEFINE_GUIDSTRUCT("185FEDEB-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_VOLUME);
01389 #define KSAUDFNAME_LINE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_VOLUME)
01390 
01391 #define STATIC_KSAUDFNAME_LINE_MUTE                                     \
01392         0x185FEDECL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01393 DEFINE_GUIDSTRUCT("185FEDEC-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_MUTE);
01394 #define KSAUDFNAME_LINE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_LINE_MUTE)
01395 
01396 #define STATIC_KSAUDFNAME_MIC_VOLUME                                    \
01397         0x185FEDEDL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01398 DEFINE_GUIDSTRUCT("185FEDED-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIC_VOLUME);
01399 #define KSAUDFNAME_MIC_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_VOLUME)
01400 
01401 #define STATIC_KSAUDFNAME_MIC_MUTE                                      \
01402         0x185FEDEEL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01403 DEFINE_GUIDSTRUCT("185FEDEE-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIC_MUTE);
01404 #define KSAUDFNAME_MIC_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIC_MUTE)
01405 
01406 #define STATIC_KSAUDFNAME_RECORDING_SOURCE                              \
01407         0x185FEDEFL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01408 DEFINE_GUIDSTRUCT("185FEDEF-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_RECORDING_SOURCE);
01409 #define KSAUDFNAME_RECORDING_SOURCE DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_SOURCE)
01410 
01411 #define STATIC_KSAUDFNAME_PC_SPEAKER_VOLUME                             \
01412         0x185FEDF0L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01413 DEFINE_GUIDSTRUCT("185FEDF0-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_PC_SPEAKER_VOLUME);
01414 #define KSAUDFNAME_PC_SPEAKER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER_VOLUME)
01415 
01416 #define STATIC_KSAUDFNAME_PC_SPEAKER_MUTE                               \
01417         0x185FEDF1L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01418 DEFINE_GUIDSTRUCT("185FEDF1-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_PC_SPEAKER_MUTE);
01419 #define KSAUDFNAME_PC_SPEAKER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER_MUTE)
01420 
01421 #define STATIC_KSAUDFNAME_MIDI_IN_VOLUME                                \
01422         0x185FEDF2L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01423 DEFINE_GUIDSTRUCT("185FEDF2-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI_IN_VOLUME);
01424 #define KSAUDFNAME_MIDI_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_IN_VOLUME)
01425 
01426 #define STATIC_KSAUDFNAME_CD_IN_VOLUME                                  \
01427         0x185FEDF3L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01428 DEFINE_GUIDSTRUCT("185FEDF3-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_IN_VOLUME);
01429 #define KSAUDFNAME_CD_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_IN_VOLUME)
01430 
01431 #define STATIC_KSAUDFNAME_LINE_IN_VOLUME                                \
01432         0x185FEDF4L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01433 DEFINE_GUIDSTRUCT("185FEDF4-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_IN_VOLUME);
01434 #define KSAUDFNAME_LINE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN_VOLUME)
01435 
01436 #define STATIC_KSAUDFNAME_MIC_IN_VOLUME                                 \
01437         0x185FEDF5L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01438 DEFINE_GUIDSTRUCT("185FEDF5-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIC_IN_VOLUME);
01439 #define KSAUDFNAME_MIC_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_IN_VOLUME)
01440 
01441 #define STATIC_KSAUDFNAME_WAVE_IN_VOLUME                                \
01442         0x185FEDF6L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01443 DEFINE_GUIDSTRUCT("185FEDF6-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_IN_VOLUME);
01444 #define KSAUDFNAME_WAVE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_IN_VOLUME)
01445 
01446 #define STATIC_KSAUDFNAME_VOLUME_CONTROL                                \
01447         0x185FEDF7L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01448 DEFINE_GUIDSTRUCT("185FEDF7-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_VOLUME_CONTROL);
01449 #define KSAUDFNAME_VOLUME_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_VOLUME_CONTROL)
01450 
01451 #define STATIC_KSAUDFNAME_MIDI                                          \
01452         0x185FEDF8L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01453 DEFINE_GUIDSTRUCT("185FEDF8-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI);
01454 #define KSAUDFNAME_MIDI DEFINE_GUIDNAMED(KSAUDFNAME_MIDI)
01455 
01456 #define STATIC_KSAUDFNAME_LINE_IN                                       \
01457         0x185FEDF9L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01458 DEFINE_GUIDSTRUCT("185FEDF9-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_IN);
01459 #define KSAUDFNAME_LINE_IN DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN)
01460 
01461 #define STATIC_KSAUDFNAME_RECORDING_CONTROL                             \
01462         0x185FEDFAL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01463 DEFINE_GUIDSTRUCT("185FEDFA-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_RECORDING_CONTROL);
01464 #define KSAUDFNAME_RECORDING_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_CONTROL)
01465 
01466 #define STATIC_KSAUDFNAME_CD_AUDIO                                      \
01467         0x185FEDFBL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01468 DEFINE_GUIDSTRUCT("185FEDFB-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_AUDIO);
01469 #define KSAUDFNAME_CD_AUDIO DEFINE_GUIDNAMED(KSAUDFNAME_CD_AUDIO)
01470 
01471 #define STATIC_KSAUDFNAME_AUX_VOLUME                                    \
01472         0x185FEDFCL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01473 DEFINE_GUIDSTRUCT("185FEDFC-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_AUX_VOLUME);
01474 #define KSAUDFNAME_AUX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_AUX_VOLUME)
01475 
01476 #define STATIC_KSAUDFNAME_AUX_MUTE                                      \
01477         0x185FEDFDL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01478 DEFINE_GUIDSTRUCT("185FEDFD-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_AUX_MUTE);
01479 #define KSAUDFNAME_AUX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_AUX_MUTE)
01480 
01481 #define STATIC_KSAUDFNAME_AUX                                           \
01482         0x185FEDFEL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01483 DEFINE_GUIDSTRUCT("185FEDFE-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_AUX);
01484 #define KSAUDFNAME_AUX DEFINE_GUIDNAMED(KSAUDFNAME_AUX)
01485 
01486 #define STATIC_KSAUDFNAME_PC_SPEAKER                                    \
01487         0x185FEDFFL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01488 DEFINE_GUIDSTRUCT("185FEDFF-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_PC_SPEAKER);
01489 #define KSAUDFNAME_PC_SPEAKER DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER)
01490 
01491 #define STATIC_KSAUDFNAME_WAVE_OUT_MIX                                  \
01492         0x185FEE00L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01493 DEFINE_GUIDSTRUCT("185FEE00-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_OUT_MIX);
01494 #define KSAUDFNAME_WAVE_OUT_MIX DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_OUT_MIX)
01495 
01496 #define STATIC_KSAUDFNAME_MONO_OUT                                      \
01497         0xf9b41dc3L,0x96e2,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01498 DEFINE_GUIDSTRUCT("F9B41DC3-96E2-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_OUT);
01499 #define KSAUDFNAME_MONO_OUT DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT)
01500 
01501 #define STATIC_KSAUDFNAME_STEREO_MIX                                    \
01502         0xdff077L,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01503 DEFINE_GUIDSTRUCT("00DFF077-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_STEREO_MIX);
01504 #define KSAUDFNAME_STEREO_MIX DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX)
01505 
01506 #define STATIC_KSAUDFNAME_MONO_MIX                                      \
01507         0xdff078L,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01508 DEFINE_GUIDSTRUCT("00DFF078-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_MIX);
01509 #define KSAUDFNAME_MONO_MIX DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX)
01510 
01511 #define STATIC_KSAUDFNAME_MONO_OUT_VOLUME                               \
01512         0x1ad247ebL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01513 DEFINE_GUIDSTRUCT("1AD247EB-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_OUT_VOLUME);
01514 #define KSAUDFNAME_MONO_OUT_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT_VOLUME)
01515 
01516 #define STATIC_KSAUDFNAME_MONO_OUT_MUTE                                 \
01517         0x1ad247ecL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01518 DEFINE_GUIDSTRUCT("1AD247EC-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_OUT_MUTE);
01519 #define KSAUDFNAME_MONO_OUT_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT_MUTE)
01520 
01521 #define STATIC_KSAUDFNAME_STEREO_MIX_VOLUME                             \
01522         0x1ad247edL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01523 DEFINE_GUIDSTRUCT("1AD247ED-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_STEREO_MIX_VOLUME);
01524 #define KSAUDFNAME_STEREO_MIX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX_VOLUME)
01525 
01526 #define STATIC_KSAUDFNAME_STEREO_MIX_MUTE                               \
01527         0x22b0eafdL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01528 DEFINE_GUIDSTRUCT("22B0EAFD-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_STEREO_MIX_MUTE);
01529 #define KSAUDFNAME_STEREO_MIX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX_MUTE)
01530 
01531 #define STATIC_KSAUDFNAME_MONO_MIX_VOLUME                               \
01532         0x22b0eafeL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01533 DEFINE_GUIDSTRUCT("22B0EAFE-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_MIX_VOLUME);
01534 #define KSAUDFNAME_MONO_MIX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX_VOLUME)
01535 
01536 #define STATIC_KSAUDFNAME_MONO_MIX_MUTE                                 \
01537         0x2bc31d69L,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01538 DEFINE_GUIDSTRUCT("2BC31D69-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_MIX_MUTE);
01539 #define KSAUDFNAME_MONO_MIX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX_MUTE)
01540 
01541 #define STATIC_KSAUDFNAME_MICROPHONE_BOOST                              \
01542         0x2bc31d6aL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01543 DEFINE_GUIDSTRUCT("2BC31D6A-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MICROPHONE_BOOST);
01544 #define KSAUDFNAME_MICROPHONE_BOOST DEFINE_GUIDNAMED(KSAUDFNAME_MICROPHONE_BOOST)
01545 
01546 #define STATIC_KSAUDFNAME_ALTERNATE_MICROPHONE                          \
01547         0x2bc31d6bL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01548 DEFINE_GUIDSTRUCT("2BC31D6B-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_ALTERNATE_MICROPHONE);
01549 #define KSAUDFNAME_ALTERNATE_MICROPHONE DEFINE_GUIDNAMED(KSAUDFNAME_ALTERNATE_MICROPHONE)
01550 
01551 #define STATIC_KSAUDFNAME_3D_DEPTH                                      \
01552         0x63ff5747L,0x991f,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01553 DEFINE_GUIDSTRUCT("63FF5747-991F-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_3D_DEPTH);
01554 #define KSAUDFNAME_3D_DEPTH DEFINE_GUIDNAMED(KSAUDFNAME_3D_DEPTH)
01555 
01556 #define STATIC_KSAUDFNAME_3D_CENTER                                     \
01557         0x9f0670b4L,0x991f,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01558 DEFINE_GUIDSTRUCT("9F0670B4-991F-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_3D_CENTER);
01559 #define KSAUDFNAME_3D_CENTER DEFINE_GUIDNAMED(KSAUDFNAME_3D_CENTER)
01560 
01561 #define STATIC_KSAUDFNAME_VIDEO_VOLUME                                  \
01562         0x9b46e708L,0x992a,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01563 DEFINE_GUIDSTRUCT("9B46E708-992A-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_VIDEO_VOLUME);
01564 #define KSAUDFNAME_VIDEO_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO_VOLUME)
01565 
01566 #define STATIC_KSAUDFNAME_VIDEO_MUTE                                    \
01567         0x9b46e709L,0x992a,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01568 DEFINE_GUIDSTRUCT("9B46E709-992A-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_VIDEO_MUTE);
01569 #define KSAUDFNAME_VIDEO_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO_MUTE)
01570 
01571 #define STATIC_KSAUDFNAME_VIDEO                                         \
01572         0x915daec4L,0xa434,0x11d2,0xac,0x52,0x0,0xc0,0x4f,0x8e,0xfb,0x68
01573 DEFINE_GUIDSTRUCT("915DAEC4-A434-11d2-AC52-00C04F8EFB68",KSAUDFNAME_VIDEO);
01574 #define KSAUDFNAME_VIDEO DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO)
01575 
01576 #define STATIC_KSAUDFNAME_PEAKMETER                                     \
01577         0x57e24340L,0xfc5b,0x4612,0xa5,0x62,0x72,0xb1,0x1a,0x29,0xdf,0xae
01578 DEFINE_GUIDSTRUCT("57E24340-FC5B-4612-A562-72B11A29DFAE",KSAUDFNAME_PEAKMETER);
01579 #define KSAUDFNAME_PEAKMETER DEFINE_GUIDNAMED(KSAUDFNAME_PEAKMETER)
01580 
01581 #define KSNODEPIN_STANDARD_IN           1
01582 #define KSNODEPIN_STANDARD_OUT          0
01583 
01584 #define KSNODEPIN_SUM_MUX_IN            1
01585 #define KSNODEPIN_SUM_MUX_OUT           0
01586 
01587 #define KSNODEPIN_DEMUX_IN              0
01588 #define KSNODEPIN_DEMUX_OUT             1
01589 
01590 #define KSNODEPIN_AEC_RENDER_IN         1
01591 #define KSNODEPIN_AEC_RENDER_OUT        0
01592 #define KSNODEPIN_AEC_CAPTURE_IN        2
01593 #define KSNODEPIN_AEC_CAPTURE_OUT       3
01594 
01595 #define STATIC_KSMETHODSETID_Wavetable                                  \
01596         0xDCEF31EBL,0xD907,0x11D0,0x95,0x83,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01597 DEFINE_GUIDSTRUCT("DCEF31EB-D907-11D0-9583-00C04FB925D3",KSMETHODSETID_Wavetable);
01598 #define KSMETHODSETID_Wavetable DEFINE_GUIDNAMED(KSMETHODSETID_Wavetable)
01599 
01600 typedef enum {
01601   KSMETHOD_WAVETABLE_WAVE_ALLOC,
01602   KSMETHOD_WAVETABLE_WAVE_FREE,
01603   KSMETHOD_WAVETABLE_WAVE_FIND,
01604   KSMETHOD_WAVETABLE_WAVE_WRITE
01605 } KSMETHOD_WAVETABLE;
01606 
01607 typedef struct {
01608   KSIDENTIFIER Identifier;
01609   ULONG Size;
01610   WINBOOL Looped;
01611   ULONG LoopPoint;
01612   WINBOOL InROM;
01613   KSDATAFORMAT Format;
01614 } KSWAVETABLE_WAVE_DESC,*PKSWAVETABLE_WAVE_DESC;
01615 
01616 #define STATIC_KSPROPSETID_Acoustic_Echo_Cancel                         \
01617         0xd7a4af8bL,0x3dc1,0x4902,0x91,0xea,0x8a,0x15,0xc9,0x0e,0x05,0xb2
01618 DEFINE_GUIDSTRUCT("D7A4AF8B-3DC1-4902-91EA-8A15C90E05B2",KSPROPSETID_Acoustic_Echo_Cancel);
01619 #define KSPROPSETID_Acoustic_Echo_Cancel DEFINE_GUIDNAMED(KSPROPSETID_Acoustic_Echo_Cancel)
01620 
01621 typedef enum {
01622   KSPROPERTY_AEC_NOISE_FILL_ENABLE = 0,
01623   KSPROPERTY_AEC_STATUS,
01624   KSPROPERTY_AEC_MODE
01625 } KSPROPERTY_AEC;
01626 
01627 #define AEC_STATUS_FD_HISTORY_UNINITIALIZED             0x0
01628 #define AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED    0x1
01629 #define AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED       0x2
01630 #define AEC_STATUS_FD_CURRENTLY_CONVERGED               0x8
01631 
01632 #define AEC_MODE_PASS_THROUGH                           0x0
01633 #define AEC_MODE_HALF_DUPLEX                            0x1
01634 #define AEC_MODE_FULL_DUPLEX                            0x2
01635 
01636 #define STATIC_KSPROPSETID_Wave                                         \
01637         0x924e54b0L,0x630f,0x11cf,0xad,0xa7,0x08,0x00,0x3e,0x30,0x49,0x4a
01638 DEFINE_GUIDSTRUCT("924e54b0-630f-11cf-ada7-08003e30494a",KSPROPSETID_Wave);
01639 #define KSPROPSETID_Wave DEFINE_GUIDNAMED(KSPROPSETID_Wave)
01640 
01641 typedef enum {
01642   KSPROPERTY_WAVE_COMPATIBLE_CAPABILITIES,
01643   KSPROPERTY_WAVE_INPUT_CAPABILITIES,
01644   KSPROPERTY_WAVE_OUTPUT_CAPABILITIES,
01645   KSPROPERTY_WAVE_BUFFER,
01646   KSPROPERTY_WAVE_FREQUENCY,
01647   KSPROPERTY_WAVE_VOLUME,
01648   KSPROPERTY_WAVE_PAN
01649 } KSPROPERTY_WAVE;
01650 
01651 typedef struct {
01652   ULONG ulDeviceType;
01653 } KSWAVE_COMPATCAPS,*PKSWAVE_COMPATCAPS;
01654 
01655 #define KSWAVE_COMPATCAPS_INPUT         0x00000000
01656 #define KSWAVE_COMPATCAPS_OUTPUT        0x00000001
01657 
01658 typedef struct {
01659   ULONG MaximumChannelsPerConnection;
01660   ULONG MinimumBitsPerSample;
01661   ULONG MaximumBitsPerSample;
01662   ULONG MinimumSampleFrequency;
01663   ULONG MaximumSampleFrequency;
01664   ULONG TotalConnections;
01665   ULONG ActiveConnections;
01666 } KSWAVE_INPUT_CAPABILITIES,*PKSWAVE_INPUT_CAPABILITIES;
01667 
01668 typedef struct {
01669   ULONG MaximumChannelsPerConnection;
01670   ULONG MinimumBitsPerSample;
01671   ULONG MaximumBitsPerSample;
01672   ULONG MinimumSampleFrequency;
01673   ULONG MaximumSampleFrequency;
01674   ULONG TotalConnections;
01675   ULONG StaticConnections;
01676   ULONG StreamingConnections;
01677   ULONG ActiveConnections;
01678   ULONG ActiveStaticConnections;
01679   ULONG ActiveStreamingConnections;
01680   ULONG Total3DConnections;
01681   ULONG Static3DConnections;
01682   ULONG Streaming3DConnections;
01683   ULONG Active3DConnections;
01684   ULONG ActiveStatic3DConnections;
01685   ULONG ActiveStreaming3DConnections;
01686   ULONG TotalSampleMemory;
01687   ULONG FreeSampleMemory;
01688   ULONG LargestFreeContiguousSampleMemory;
01689 } KSWAVE_OUTPUT_CAPABILITIES,*PKSWAVE_OUTPUT_CAPABILITIES;
01690 
01691 typedef struct {
01692   LONG LeftAttenuation;
01693   LONG RightAttenuation;
01694 } KSWAVE_VOLUME,*PKSWAVE_VOLUME;
01695 
01696 #define KSWAVE_BUFFER_ATTRIBUTEF_LOOPING        0x00000001
01697 #define KSWAVE_BUFFER_ATTRIBUTEF_STATIC         0x00000002
01698 
01699 typedef struct {
01700   ULONG Attributes;
01701   ULONG BufferSize;
01702   PVOID BufferAddress;
01703 } KSWAVE_BUFFER,*PKSWAVE_BUFFER;
01704 
01705 #define STATIC_KSMUSIC_TECHNOLOGY_PORT                                  \
01706         0x86C92E60L,0x62E8,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
01707 DEFINE_GUIDSTRUCT("86C92E60-62E8-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_PORT);
01708 #define KSMUSIC_TECHNOLOGY_PORT DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_PORT)
01709 
01710 #define STATIC_KSMUSIC_TECHNOLOGY_SQSYNTH                               \
01711         0x0ECF4380L,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
01712 DEFINE_GUIDSTRUCT("0ECF4380-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_SQSYNTH);
01713 #define KSMUSIC_TECHNOLOGY_SQSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_SQSYNTH)
01714 
01715 #define STATIC_KSMUSIC_TECHNOLOGY_FMSYNTH                               \
01716         0x252C5C80L,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
01717 DEFINE_GUIDSTRUCT("252C5C80-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_FMSYNTH);
01718 #define KSMUSIC_TECHNOLOGY_FMSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_FMSYNTH)
01719 
01720 #define STATIC_KSMUSIC_TECHNOLOGY_WAVETABLE                             \
01721         0x394EC7C0L,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
01722 DEFINE_GUIDSTRUCT("394EC7C0-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_WAVETABLE);
01723 #define KSMUSIC_TECHNOLOGY_WAVETABLE DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_WAVETABLE)
01724 
01725 #define STATIC_KSMUSIC_TECHNOLOGY_SWSYNTH                               \
01726         0x37407736L,0x3620,0x11D1,0x85,0xD3,0x00,0x00,0xF8,0x75,0x43,0x80
01727 DEFINE_GUIDSTRUCT("37407736-3620-11D1-85D3-0000F8754380",KSMUSIC_TECHNOLOGY_SWSYNTH);
01728 #define KSMUSIC_TECHNOLOGY_SWSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_SWSYNTH)
01729 
01730 #define STATIC_KSPROPSETID_WaveTable                                    \
01731         0x8539E660L,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
01732 DEFINE_GUIDSTRUCT("8539E660-62E9-11CF-A5D6-28DB04C10000",KSPROPSETID_WaveTable);
01733 #define KSPROPSETID_WaveTable DEFINE_GUIDNAMED(KSPROPSETID_WaveTable)
01734 
01735 typedef enum {
01736   KSPROPERTY_WAVETABLE_LOAD_SAMPLE,
01737   KSPROPERTY_WAVETABLE_UNLOAD_SAMPLE,
01738   KSPROPERTY_WAVETABLE_MEMORY,
01739   KSPROPERTY_WAVETABLE_VERSION
01740 } KSPROPERTY_WAVETABLE;
01741 
01742 typedef struct {
01743   KSDATARANGE DataRange;
01744   GUID Technology;
01745   ULONG Channels;
01746   ULONG Notes;
01747   ULONG ChannelMask;
01748 } KSDATARANGE_MUSIC,*PKSDATARANGE_MUSIC;
01749 
01750 #define STATIC_KSEVENTSETID_Cyclic                                      \
01751         0x142C1AC0L,0x072A,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
01752 DEFINE_GUIDSTRUCT("142C1AC0-072A-11D0-A5D6-28DB04C10000",KSEVENTSETID_Cyclic);
01753 #define KSEVENTSETID_Cyclic DEFINE_GUIDNAMED(KSEVENTSETID_Cyclic)
01754 
01755 typedef enum {
01756   KSEVENT_CYCLIC_TIME_INTERVAL
01757 } KSEVENT_CYCLIC_TIME;
01758 
01759 #define STATIC_KSPROPSETID_Cyclic                                       \
01760         0x3FFEAEA0L,0x2BEE,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
01761 DEFINE_GUIDSTRUCT("3FFEAEA0-2BEE-11CF-A5D6-28DB04C10000",KSPROPSETID_Cyclic);
01762 #define KSPROPSETID_Cyclic DEFINE_GUIDNAMED(KSPROPSETID_Cyclic)
01763 
01764 typedef enum {
01765   KSPROPERTY_CYCLIC_POSITION
01766 } KSPROPERTY_CYCLIC;
01767 
01768 #define STATIC_KSEVENTSETID_AudioControlChange                          \
01769         0xE85E9698L,0xFA2F,0x11D1,0x95,0xBD,0x00,0xC0,0x4F,0xB9,0x25,0xD3
01770 DEFINE_GUIDSTRUCT("E85E9698-FA2F-11D1-95BD-00C04FB925D3",KSEVENTSETID_AudioControlChange);
01771 #define KSEVENTSETID_AudioControlChange DEFINE_GUIDNAMED(KSEVENTSETID_AudioControlChange)
01772 
01773 typedef enum {
01774   KSEVENT_CONTROL_CHANGE
01775 } KSEVENT_AUDIO_CONTROL_CHANGE;
01776 
01777 #define STATIC_KSEVENTSETID_LoopedStreaming                             \
01778         0x4682B940L,0xC6EF,0x11D0,0x96,0xD8,0x00,0xAA,0x00,0x51,0xE5,0x1D
01779 DEFINE_GUIDSTRUCT("4682B940-C6EF-11D0-96D8-00AA0051E51D",KSEVENTSETID_LoopedStreaming);
01780 #define KSEVENTSETID_LoopedStreaming DEFINE_GUIDNAMED(KSEVENTSETID_LoopedStreaming)
01781 
01782 typedef enum {
01783   KSEVENT_LOOPEDSTREAMING_POSITION
01784 } KSEVENT_LOOPEDSTREAMING;
01785 
01786 typedef struct {
01787   KSEVENTDATA KsEventData;
01788   DWORDLONG Position;
01789 } LOOPEDSTREAMING_POSITION_EVENT_DATA,*PLOOPEDSTREAMING_POSITION_EVENT_DATA;
01790 
01791 #define STATIC_KSPROPSETID_Sysaudio                                     \
01792         0xCBE3FAA0L,0xCC75,0x11D0,0xB4,0x65,0x00,0x00,0x1A,0x18,0x18,0xE6
01793 DEFINE_GUIDSTRUCT("CBE3FAA0-CC75-11D0-B465-00001A1818E6",KSPROPSETID_Sysaudio);
01794 #define KSPROPSETID_Sysaudio DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio)
01795 
01796 typedef enum {
01797   KSPROPERTY_SYSAUDIO_DEVICE_COUNT = 1,
01798   KSPROPERTY_SYSAUDIO_DEVICE_FRIENDLY_NAME = 2,
01799   KSPROPERTY_SYSAUDIO_DEVICE_INSTANCE = 3,
01800   KSPROPERTY_SYSAUDIO_DEVICE_INTERFACE_NAME = 4,
01801   KSPROPERTY_SYSAUDIO_SELECT_GRAPH = 5,
01802   KSPROPERTY_SYSAUDIO_CREATE_VIRTUAL_SOURCE = 6,
01803   KSPROPERTY_SYSAUDIO_DEVICE_DEFAULT = 7,
01804   KSPROPERTY_SYSAUDIO_INSTANCE_INFO = 14,
01805   KSPROPERTY_SYSAUDIO_COMPONENT_ID = 16
01806 } KSPROPERTY_SYSAUDIO;
01807 
01808 typedef struct {
01809   KSPROPERTY Property;
01810   GUID PinCategory;
01811   GUID PinName;
01812 } SYSAUDIO_CREATE_VIRTUAL_SOURCE,*PSYSAUDIO_CREATE_VIRTUAL_SOURCE;
01813 
01814 typedef struct {
01815   KSPROPERTY Property;
01816   ULONG PinId;
01817   ULONG NodeId;
01818   ULONG Flags;
01819   ULONG Reserved;
01820 } SYSAUDIO_SELECT_GRAPH,*PSYSAUDIO_SELECT_GRAPH;
01821 
01822 typedef struct {
01823   KSPROPERTY Property;
01824   ULONG Flags;
01825   ULONG DeviceNumber;
01826 } SYSAUDIO_INSTANCE_INFO,*PSYSAUDIO_INSTANCE_INFO;
01827 
01828 #define SYSAUDIO_FLAGS_DONT_COMBINE_PINS        0x00000001
01829 
01830 #define STATIC_KSPROPSETID_Sysaudio_Pin                                 \
01831         0xA3A53220L,0xC6E4,0x11D0,0xB4,0x65,0x00,0x00,0x1A,0x18,0x18,0xE6
01832 DEFINE_GUIDSTRUCT("A3A53220-C6E4-11D0-B465-00001A1818E6",KSPROPSETID_Sysaudio_Pin);
01833 #define KSPROPSETID_Sysaudio_Pin DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio_Pin)
01834 
01835 typedef enum {
01836   KSPROPERTY_SYSAUDIO_ATTACH_VIRTUAL_SOURCE = 1
01837 } KSPROPERTY_SYSAUDIO_PIN;
01838 
01839 typedef struct {
01840   KSPROPERTY Property;
01841   ULONG MixerPinId;
01842   ULONG Reserved;
01843 } SYSAUDIO_ATTACH_VIRTUAL_SOURCE,*PSYSAUDIO_ATTACH_VIRTUAL_SOURCE;
01844 
01845 typedef struct {
01846   KSPROPERTY Property;
01847   ULONG NodeId;
01848   ULONG Reserved;
01849 } KSNODEPROPERTY,*PKSNODEPROPERTY;
01850 
01851 typedef struct {
01852   KSNODEPROPERTY NodeProperty;
01853   LONG Channel;
01854   ULONG Reserved;
01855 } KSNODEPROPERTY_AUDIO_CHANNEL,*PKSNODEPROPERTY_AUDIO_CHANNEL;
01856 
01857 typedef struct {
01858   KSNODEPROPERTY NodeProperty;
01859   ULONG DevSpecificId;
01860   ULONG DeviceInfo;
01861   ULONG Length;
01862 } KSNODEPROPERTY_AUDIO_DEV_SPECIFIC,*PKSNODEPROPERTY_AUDIO_DEV_SPECIFIC;
01863 
01864 typedef struct {
01865   KSNODEPROPERTY NodeProperty;
01866   PVOID ListenerId;
01867 #ifndef _WIN64
01868   ULONG Reserved;
01869 #endif
01870 } KSNODEPROPERTY_AUDIO_3D_LISTENER,*PKSNODEPROPERTY_AUDIO_3D_LISTENER;
01871 
01872 typedef struct {
01873   KSNODEPROPERTY NodeProperty;
01874   PVOID AppContext;
01875   ULONG Length;
01876 #ifndef _WIN64
01877   ULONG Reserved;
01878 #endif
01879 } KSNODEPROPERTY_AUDIO_PROPERTY,*PKSNODEPROPERTY_AUDIO_PROPERTY;
01880 
01881 #define STATIC_KSPROPSETID_AudioGfx                                     \
01882         0x79a9312eL,0x59ae,0x43b0,0xa3,0x50,0x8b,0x5,0x28,0x4c,0xab,0x24
01883 DEFINE_GUIDSTRUCT("79A9312E-59AE-43b0-A350-8B05284CAB24",KSPROPSETID_AudioGfx);
01884 #define KSPROPSETID_AudioGfx DEFINE_GUIDNAMED(KSPROPSETID_AudioGfx)
01885 
01886 typedef enum {
01887   KSPROPERTY_AUDIOGFX_RENDERTARGETDEVICEID,
01888   KSPROPERTY_AUDIOGFX_CAPTURETARGETDEVICEID
01889 } KSPROPERTY_AUDIOGFX;
01890 
01891 #define STATIC_KSPROPSETID_Linear                                       \
01892         0x5A2FFE80L,0x16B9,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
01893 DEFINE_GUIDSTRUCT("5A2FFE80-16B9-11D0-A5D6-28DB04C10000",KSPROPSETID_Linear);
01894 #define KSPROPSETID_Linear DEFINE_GUIDNAMED(KSPROPSETID_Linear)
01895 
01896 typedef enum {
01897   KSPROPERTY_LINEAR_POSITION
01898 } KSPROPERTY_LINEAR;
01899 
01900 #define STATIC_KSDATAFORMAT_TYPE_MUSIC                                  \
01901         0xE725D360L,0x62CC,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
01902 DEFINE_GUIDSTRUCT("E725D360-62CC-11CF-A5D6-28DB04C10000",KSDATAFORMAT_TYPE_MUSIC);
01903 #define KSDATAFORMAT_TYPE_MUSIC DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MUSIC)
01904 
01905 #define STATIC_KSDATAFORMAT_TYPE_MIDI                                   \
01906         0x7364696DL,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
01907 DEFINE_GUIDSTRUCT("7364696D-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_MIDI);
01908 #define KSDATAFORMAT_TYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MIDI)
01909 
01910 #define STATIC_KSDATAFORMAT_SUBTYPE_MIDI                                \
01911         0x1D262760L,0xE957,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
01912 DEFINE_GUIDSTRUCT("1D262760-E957-11CF-A5D6-28DB04C10000",KSDATAFORMAT_SUBTYPE_MIDI);
01913 #define KSDATAFORMAT_SUBTYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI)
01914 
01915 #define STATIC_KSDATAFORMAT_SUBTYPE_MIDI_BUS                            \
01916         0x2CA15FA0L,0x6CFE,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
01917 DEFINE_GUIDSTRUCT("2CA15FA0-6CFE-11CF-A5D6-28DB04C10000",KSDATAFORMAT_SUBTYPE_MIDI_BUS);
01918 #define KSDATAFORMAT_SUBTYPE_MIDI_BUS DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI_BUS)
01919 
01920 #define STATIC_KSDATAFORMAT_SUBTYPE_RIFFMIDI                            \
01921         0x4995DAF0L,0x9EE6,0x11D0,0xA4,0x0E,0x00,0xA0,0xC9,0x22,0x31,0x96
01922 DEFINE_GUIDSTRUCT("4995DAF0-9EE6-11D0-A40E-00A0C9223196",KSDATAFORMAT_SUBTYPE_RIFFMIDI);
01923 #define KSDATAFORMAT_SUBTYPE_RIFFMIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFFMIDI)
01924 
01925 typedef struct {
01926   ULONG TimeDeltaMs;
01927 
01928   ULONG ByteCount;
01929 } KSMUSICFORMAT,*PKSMUSICFORMAT;
01930 
01931 #define STATIC_KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM             \
01932         0x36523b11L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01933 DEFINE_GUIDSTRUCT("36523B11-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM);
01934 #define KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM)
01935 
01936 #define STATIC_KSDATAFORMAT_TYPE_STANDARD_PES_PACKET                    \
01937         0x36523b12L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01938 DEFINE_GUIDSTRUCT("36523B12-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_TYPE_STANDARD_PES_PACKET);
01939 #define KSDATAFORMAT_TYPE_STANDARD_PES_PACKET DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_PES_PACKET)
01940 
01941 #define STATIC_KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER                   \
01942         0x36523b13L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01943 DEFINE_GUIDSTRUCT("36523B13-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER);
01944 #define KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER)
01945 
01946 #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO                \
01947         0x36523b21L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01948 DEFINE_GUIDSTRUCT("36523B21-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO);
01949 #define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO)
01950 
01951 #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO                \
01952         0x36523b22L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01953 DEFINE_GUIDSTRUCT("36523B22-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO);
01954 #define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO)
01955 
01956 #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO                \
01957         0x36523b23L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01958 DEFINE_GUIDSTRUCT("36523B23-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO);
01959 #define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO)
01960 
01961 #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO                \
01962         0x36523b24L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01963 DEFINE_GUIDSTRUCT("36523B24-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO);
01964 #define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO)
01965 
01966 #define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO                  \
01967         0x36523b25L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01968 DEFINE_GUIDSTRUCT("36523B25-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO);
01969 #define KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO)
01970 
01971 #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO               \
01972         0x36523b31L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01973 DEFINE_GUIDSTRUCT("36523B31-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO);
01974 #define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO)
01975 
01976 #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO               \
01977         0x36523b32L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01978 DEFINE_GUIDSTRUCT("36523B32-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO);
01979 #define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO)
01980 
01981 #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO               \
01982         0x36523b33L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01983 DEFINE_GUIDSTRUCT("36523B33-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO);
01984 #define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO)
01985 
01986 #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO               \
01987         0x36523b34L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01988 DEFINE_GUIDSTRUCT("36523B34-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO);
01989 #define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO)
01990 
01991 #define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO                 \
01992         0x36523b35L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
01993 DEFINE_GUIDSTRUCT("36523B35-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO);
01994 #define KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO)
01995 
01996 #define STATIC_KSDATAFORMAT_SUBTYPE_DSS_VIDEO                           \
01997         0xa0af4f81L,0xe163,0x11d0,0xba,0xd9,0x00,0x60,0x97,0x44,0x11,0x1a
01998 DEFINE_GUIDSTRUCT("a0af4f81-e163-11d0-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_DSS_VIDEO);
01999 #define KSDATAFORMAT_SUBTYPE_DSS_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DSS_VIDEO)
02000 
02001 #define STATIC_KSDATAFORMAT_SUBTYPE_DSS_AUDIO                           \
02002                 0xa0af4f82L,0xe163,0x11d0,0xba,0xd9,0x00,0x60,0x97,0x44,0x11,0x1a
02003 DEFINE_GUIDSTRUCT("a0af4f82-e163-11d0-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_DSS_AUDIO);
02004 #define KSDATAFORMAT_SUBTYPE_DSS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DSS_AUDIO)
02005 
02006 #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Packet                         \
02007         0xe436eb80,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
02008 DEFINE_GUIDSTRUCT("e436eb80-524f-11ce-9F53-0020af0ba770",KSDATAFORMAT_SUBTYPE_MPEG1Packet);
02009 #define KSDATAFORMAT_SUBTYPE_MPEG1Packet DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Packet)
02010 
02011 #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Payload                        \
02012         0xe436eb81,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
02013 DEFINE_GUIDSTRUCT("e436eb81-524f-11ce-9F53-0020af0ba770",KSDATAFORMAT_SUBTYPE_MPEG1Payload);
02014 #define KSDATAFORMAT_SUBTYPE_MPEG1Payload DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Payload)
02015 
02016 #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Video                          \
02017         0xe436eb86,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
02018 DEFINE_GUIDSTRUCT("e436eb86-524f-11ce-9f53-0020af0ba770",KSDATAFORMAT_SUBTYPE_MPEG1Video);
02019 #define KSDATAFORMAT_SUBTYPE_MPEG1Video DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Video)
02020 
02021 #define STATIC_KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO                       \
02022         0x05589f82L,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a
02023 DEFINE_GUIDSTRUCT("05589f82-c356-11ce-bf01-00aa0055595a",KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO);
02024 #define KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO)
02025 
02026 #define STATIC_KSDATAFORMAT_TYPE_MPEG2_PES                              \
02027         0xe06d8020L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02028 DEFINE_GUIDSTRUCT("e06d8020-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_TYPE_MPEG2_PES);
02029 #define KSDATAFORMAT_TYPE_MPEG2_PES DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_PES)
02030 
02031 #define STATIC_KSDATAFORMAT_TYPE_MPEG2_PROGRAM                          \
02032         0xe06d8022L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02033 DEFINE_GUIDSTRUCT("e06d8022-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_TYPE_MPEG2_PROGRAM);
02034 #define KSDATAFORMAT_TYPE_MPEG2_PROGRAM DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_PROGRAM)
02035 
02036 #define STATIC_KSDATAFORMAT_TYPE_MPEG2_TRANSPORT                        \
02037         0xe06d8023L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02038 DEFINE_GUIDSTRUCT("e06d8023-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_TYPE_MPEG2_TRANSPORT);
02039 #define KSDATAFORMAT_TYPE_MPEG2_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_TRANSPORT)
02040 
02041 #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO                         \
02042         0xe06d8026L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02043 DEFINE_GUIDSTRUCT("e06d8026-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO);
02044 #define KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO)
02045 
02046 #define STATIC_KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO                       \
02047         0xe06d80e3L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02048 DEFINE_GUIDSTRUCT("e06d80e3-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO);
02049 #define KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO)
02050 
02051 #define STATIC_KSPROPSETID_Mpeg2Vid                                     \
02052         0xC8E11B60L,0x0CC9,0x11D0,0xBD,0x69,0x00,0x35,0x05,0xC1,0x03,0xA9
02053 DEFINE_GUIDSTRUCT("C8E11B60-0CC9-11D0-BD69-003505C103A9",KSPROPSETID_Mpeg2Vid);
02054 #define KSPROPSETID_Mpeg2Vid DEFINE_GUIDNAMED(KSPROPSETID_Mpeg2Vid)
02055 
02056 typedef enum {
02057   KSPROPERTY_MPEG2VID_MODES,
02058   KSPROPERTY_MPEG2VID_CUR_MODE,
02059   KSPROPERTY_MPEG2VID_4_3_RECT,
02060   KSPROPERTY_MPEG2VID_16_9_RECT,
02061   KSPROPERTY_MPEG2VID_16_9_PANSCAN
02062 } KSPROPERTY_MPEG2VID;
02063 
02064 #define KSMPEGVIDMODE_PANSCAN   0x0001
02065 #define KSMPEGVIDMODE_LTRBOX    0x0002
02066 #define KSMPEGVIDMODE_SCALE     0x0004
02067 
02068 typedef struct _KSMPEGVID_RECT {
02069   ULONG StartX;
02070   ULONG StartY;
02071   ULONG EndX;
02072   ULONG EndY;
02073 } KSMPEGVID_RECT,*PKSMPEGVID_RECT;
02074 
02075 #define STATIC_KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO                         \
02076         0xe06d802bL,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02077 DEFINE_GUIDSTRUCT("e06d802b-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO);
02078 #define KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO)
02079 
02080 #define STATIC_KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO                       \
02081         0xe06d80e5L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02082 DEFINE_GUIDSTRUCT("e06d80e5-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO);
02083 #define KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO)
02084 
02085 #define STATIC_KSDATAFORMAT_SUBTYPE_LPCM_AUDIO                          \
02086         0xe06d8032L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02087 DEFINE_GUIDSTRUCT("e06d8032-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_LPCM_AUDIO);
02088 #define KSDATAFORMAT_SUBTYPE_LPCM_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_LPCM_AUDIO)
02089 
02090 #define STATIC_KSDATAFORMAT_SPECIFIER_LPCM_AUDIO                        \
02091         0xe06d80e6L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02092 DEFINE_GUIDSTRUCT("e06d80e6-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_LPCM_AUDIO);
02093 #define KSDATAFORMAT_SPECIFIER_LPCM_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_LPCM_AUDIO)
02094 
02095 #define STATIC_KSDATAFORMAT_SUBTYPE_AC3_AUDIO                           \
02096         0xe06d802cL,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02097 DEFINE_GUIDSTRUCT("e06d802c-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_AC3_AUDIO);
02098 #define KSDATAFORMAT_SUBTYPE_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_AC3_AUDIO)
02099 
02100 #define STATIC_KSDATAFORMAT_SPECIFIER_AC3_AUDIO                         \
02101         0xe06d80e4L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02102 DEFINE_GUIDSTRUCT("e06d80e4-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_AC3_AUDIO);
02103 #define KSDATAFORMAT_SPECIFIER_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_AC3_AUDIO)
02104 
02105 #define STATIC_KSPROPSETID_AC3                                          \
02106         0xBFABE720L,0x6E1F,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00
02107 DEFINE_GUIDSTRUCT("BFABE720-6E1F-11D0-BCF2-444553540000",KSPROPSETID_AC3);
02108 #define KSPROPSETID_AC3 DEFINE_GUIDNAMED(KSPROPSETID_AC3)
02109 
02110 typedef enum {
02111   KSPROPERTY_AC3_ERROR_CONCEALMENT = 1,
02112   KSPROPERTY_AC3_ALTERNATE_AUDIO,
02113   KSPROPERTY_AC3_DOWNMIX,
02114   KSPROPERTY_AC3_BIT_STREAM_MODE,
02115   KSPROPERTY_AC3_DIALOGUE_LEVEL,
02116   KSPROPERTY_AC3_LANGUAGE_CODE,
02117   KSPROPERTY_AC3_ROOM_TYPE
02118 } KSPROPERTY_AC3;
02119 
02120 typedef struct {
02121   WINBOOL fRepeatPreviousBlock;
02122   WINBOOL fErrorInCurrentBlock;
02123 } KSAC3_ERROR_CONCEALMENT,*PKSAC3_ERROR_CONCEALMENT;
02124 
02125 typedef struct {
02126   WINBOOL fStereo;
02127   ULONG DualMode;
02128 } KSAC3_ALTERNATE_AUDIO,*PKSAC3_ALTERNATE_AUDIO;
02129 
02130 #define KSAC3_ALTERNATE_AUDIO_1         1
02131 #define KSAC3_ALTERNATE_AUDIO_2         2
02132 #define KSAC3_ALTERNATE_AUDIO_BOTH      3
02133 
02134 typedef struct {
02135   WINBOOL fDownMix;
02136   WINBOOL fDolbySurround;
02137 } KSAC3_DOWNMIX,*PKSAC3_DOWNMIX;
02138 
02139 typedef struct {
02140   LONG BitStreamMode;
02141 } KSAC3_BIT_STREAM_MODE,*PKSAC3_BIT_STREAM_MODE;
02142 
02143 #define KSAC3_SERVICE_MAIN_AUDIO        0
02144 #define KSAC3_SERVICE_NO_DIALOG         1
02145 #define KSAC3_SERVICE_VISUALLY_IMPAIRED 2
02146 #define KSAC3_SERVICE_HEARING_IMPAIRED  3
02147 #define KSAC3_SERVICE_DIALOG_ONLY       4
02148 #define KSAC3_SERVICE_COMMENTARY        5
02149 #define KSAC3_SERVICE_EMERGENCY_FLASH   6
02150 #define KSAC3_SERVICE_VOICE_OVER        7
02151 
02152 typedef struct {
02153   ULONG DialogueLevel;
02154 } KSAC3_DIALOGUE_LEVEL,*PKSAC3_DIALOGUE_LEVEL;
02155 
02156 typedef struct {
02157   WINBOOL fLargeRoom;
02158 } KSAC3_ROOM_TYPE,*PKSAC3_ROOM_TYPE;
02159 
02160 #define STATIC_KSDATAFORMAT_SUBTYPE_DTS_AUDIO                           \
02161         0xe06d8033L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02162 DEFINE_GUIDSTRUCT("e06d8033-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_DTS_AUDIO);
02163 #define KSDATAFORMAT_SUBTYPE_DTS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DTS_AUDIO)
02164 
02165 #define STATIC_KSDATAFORMAT_SUBTYPE_SDDS_AUDIO                          \
02166         0xe06d8034L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02167 DEFINE_GUIDSTRUCT("e06d8034-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_SDDS_AUDIO);
02168 #define KSDATAFORMAT_SUBTYPE_SDDS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_SDDS_AUDIO)
02169 
02170 #define STATIC_KSPROPSETID_AudioDecoderOut                              \
02171         0x6ca6e020L,0x43bd,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9
02172 DEFINE_GUIDSTRUCT("6ca6e020-43bd-11d0-bd6a-003505c103a9",KSPROPSETID_AudioDecoderOut);
02173 #define KSPROPSETID_AudioDecoderOut DEFINE_GUIDNAMED(KSPROPSETID_AudioDecoderOut)
02174 
02175 typedef enum {
02176   KSPROPERTY_AUDDECOUT_MODES,
02177   KSPROPERTY_AUDDECOUT_CUR_MODE
02178 } KSPROPERTY_AUDDECOUT;
02179 
02180 #define KSAUDDECOUTMODE_STEREO_ANALOG   0x0001
02181 #define KSAUDDECOUTMODE_PCM_51          0x0002
02182 #define KSAUDDECOUTMODE_SPDIFF          0x0004
02183 
02184 #define STATIC_KSDATAFORMAT_SUBTYPE_SUBPICTURE                          \
02185         0xe06d802dL,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
02186 DEFINE_GUIDSTRUCT("e06d802d-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_SUBPICTURE);
02187 #define KSDATAFORMAT_SUBTYPE_SUBPICTURE DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_SUBPICTURE)
02188 
02189 #define STATIC_KSPROPSETID_DvdSubPic                                    \
02190         0xac390460L,0x43af,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9
02191 DEFINE_GUIDSTRUCT("ac390460-43af-11d0-bd6a-003505c103a9",KSPROPSETID_DvdSubPic);
02192 #define KSPROPSETID_DvdSubPic DEFINE_GUIDNAMED(KSPROPSETID_DvdSubPic)
02193 
02194 typedef enum {
02195   KSPROPERTY_DVDSUBPIC_PALETTE,
02196   KSPROPERTY_DVDSUBPIC_HLI,
02197   KSPROPERTY_DVDSUBPIC_COMPOSIT_ON
02198 } KSPROPERTY_DVDSUBPIC;
02199 
02200 typedef struct _KS_DVD_YCrCb {
02201   UCHAR Reserved;
02202   UCHAR Y;
02203   UCHAR Cr;
02204   UCHAR Cb;
02205 } KS_DVD_YCrCb,*PKS_DVD_YCrCb;
02206 
02207 typedef struct _KS_DVD_YUV {
02208   UCHAR Reserved;
02209   UCHAR Y;
02210   UCHAR V;
02211   UCHAR U;
02212 } KS_DVD_YUV,*PKS_DVD_YUV;
02213 
02214 typedef struct _KSPROPERTY_SPPAL {
02215   KS_DVD_YUV sppal[16];
02216 } KSPROPERTY_SPPAL,*PKSPROPERTY_SPPAL;
02217 
02218 typedef struct _KS_COLCON {
02219   UCHAR emph1col:4;
02220   UCHAR emph2col:4;
02221   UCHAR backcol:4;
02222   UCHAR patcol:4;
02223   UCHAR emph1con:4;
02224   UCHAR emph2con:4;
02225   UCHAR backcon:4;
02226   UCHAR patcon:4;
02227 } KS_COLCON,*PKS_COLCON;
02228 
02229 typedef struct _KSPROPERTY_SPHLI {
02230   USHORT HLISS;
02231   USHORT Reserved;
02232   ULONG StartPTM;
02233   ULONG EndPTM;
02234   USHORT StartX;
02235   USHORT StartY;
02236   USHORT StopX;
02237   USHORT StopY;
02238   KS_COLCON ColCon;
02239 } KSPROPERTY_SPHLI,*PKSPROPERTY_SPHLI;
02240 
02241 typedef WINBOOL KSPROPERTY_COMPOSIT_ON,*PKSPROPERTY_COMPOSIT_ON;
02242 
02243 #define STATIC_KSPROPSETID_CopyProt                                     \
02244         0x0E8A0A40L,0x6AEF,0x11D0,0x9E,0xD0,0x00,0xA0,0x24,0xCA,0x19,0xB3
02245 DEFINE_GUIDSTRUCT("0E8A0A40-6AEF-11D0-9ED0-00A024CA19B3",KSPROPSETID_CopyProt);
02246 #define KSPROPSETID_CopyProt DEFINE_GUIDNAMED(KSPROPSETID_CopyProt)
02247 
02248 typedef enum {
02249   KSPROPERTY_DVDCOPY_CHLG_KEY = 0x01,
02250   KSPROPERTY_DVDCOPY_DVD_KEY1,
02251   KSPROPERTY_DVDCOPY_DEC_KEY2,
02252   KSPROPERTY_DVDCOPY_TITLE_KEY,
02253   KSPROPERTY_COPY_MACROVISION,
02254   KSPROPERTY_DVDCOPY_REGION,
02255   KSPROPERTY_DVDCOPY_SET_COPY_STATE,
02256   KSPROPERTY_DVDCOPY_DISC_KEY = 0x80
02257 } KSPROPERTY_COPYPROT;
02258 
02259 typedef struct _KS_DVDCOPY_CHLGKEY {
02260   BYTE ChlgKey[10];
02261   BYTE Reserved[2];
02262 } KS_DVDCOPY_CHLGKEY,*PKS_DVDCOPY_CHLGKEY;
02263 
02264 typedef struct _KS_DVDCOPY_BUSKEY {
02265   BYTE BusKey[5];
02266   BYTE Reserved[1];
02267 } KS_DVDCOPY_BUSKEY,*PKS_DVDCOPY_BUSKEY;
02268 
02269 typedef struct _KS_DVDCOPY_DISCKEY {
02270   BYTE DiscKey[2048];
02271 } KS_DVDCOPY_DISCKEY,*PKS_DVDCOPY_DISCKEY;
02272 
02273 typedef struct _KS_DVDCOPY_REGION {
02274   UCHAR Reserved;
02275   UCHAR RegionData;
02276   UCHAR Reserved2[2];
02277 } KS_DVDCOPY_REGION,*PKS_DVDCOPY_REGION;
02278 
02279 typedef struct _KS_DVDCOPY_TITLEKEY {
02280   ULONG KeyFlags;
02281   ULONG ReservedNT[2];
02282   UCHAR TitleKey[6];
02283   UCHAR Reserved[2];
02284 } KS_DVDCOPY_TITLEKEY,*PKS_DVDCOPY_TITLEKEY;
02285 
02286 typedef struct _KS_COPY_MACROVISION {
02287   ULONG MACROVISIONLevel;
02288 } KS_COPY_MACROVISION,*PKS_COPY_MACROVISION;
02289 
02290 typedef struct _KS_DVDCOPY_SET_COPY_STATE {
02291   ULONG DVDCopyState;
02292 } KS_DVDCOPY_SET_COPY_STATE,*PKS_DVDCOPY_SET_COPY_STATE;
02293 
02294 typedef enum {
02295   KS_DVDCOPYSTATE_INITIALIZE,
02296   KS_DVDCOPYSTATE_INITIALIZE_TITLE,
02297   KS_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED,
02298   KS_DVDCOPYSTATE_AUTHENTICATION_REQUIRED,
02299   KS_DVDCOPYSTATE_DONE
02300 } KS_DVDCOPYSTATE;
02301 
02302 typedef enum {
02303   KS_MACROVISION_DISABLED,
02304   KS_MACROVISION_LEVEL1,
02305   KS_MACROVISION_LEVEL2,
02306   KS_MACROVISION_LEVEL3
02307 } KS_COPY_MACROVISION_LEVEL,*PKS_COPY_MACROVISION_LEVEL;
02308 
02309 #define KS_DVD_CGMS_RESERVED_MASK       0x00000078
02310 
02311 #define KS_DVD_CGMS_COPY_PROTECT_MASK   0x00000018
02312 #define KS_DVD_CGMS_COPY_PERMITTED      0x00000000
02313 #define KS_DVD_CGMS_COPY_ONCE           0x00000010
02314 #define KS_DVD_CGMS_NO_COPY             0x00000018
02315 
02316 #define KS_DVD_COPYRIGHT_MASK           0x00000040
02317 #define KS_DVD_NOT_COPYRIGHTED          0x00000000
02318 #define KS_DVD_COPYRIGHTED              0x00000040
02319 
02320 #define KS_DVD_SECTOR_PROTECT_MASK      0x00000020
02321 #define KS_DVD_SECTOR_NOT_PROTECTED     0x00000000
02322 #define KS_DVD_SECTOR_PROTECTED         0x00000020
02323 
02324 #define STATIC_KSCATEGORY_TVTUNER                                       \
02325         0xa799a800L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4
02326 DEFINE_GUIDSTRUCT("a799a800-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_TVTUNER);
02327 #define KSCATEGORY_TVTUNER DEFINE_GUIDNAMED(KSCATEGORY_TVTUNER)
02328 
02329 #define STATIC_KSCATEGORY_CROSSBAR                                      \
02330         0xa799a801L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4
02331 DEFINE_GUIDSTRUCT("a799a801-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_CROSSBAR);
02332 #define KSCATEGORY_CROSSBAR DEFINE_GUIDNAMED(KSCATEGORY_CROSSBAR)
02333 
02334 #define STATIC_KSCATEGORY_TVAUDIO                                       \
02335         0xa799a802L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4
02336 DEFINE_GUIDSTRUCT("a799a802-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_TVAUDIO);
02337 #define KSCATEGORY_TVAUDIO DEFINE_GUIDNAMED(KSCATEGORY_TVAUDIO)
02338 
02339 #define STATIC_KSCATEGORY_VPMUX                                         \
02340         0xa799a803L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4
02341 DEFINE_GUIDSTRUCT("a799a803-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_VPMUX);
02342 #define KSCATEGORY_VPMUX DEFINE_GUIDNAMED(KSCATEGORY_VPMUX)
02343 
02344 #define STATIC_KSCATEGORY_VBICODEC                                      \
02345         0x07dad660L,0x22f1,0x11d1,0xa9,0xf4,0x00,0xc0,0x4f,0xbb,0xde,0x8f
02346 DEFINE_GUIDSTRUCT("07dad660-22f1-11d1-a9f4-00c04fbbde8f",KSCATEGORY_VBICODEC);
02347 #define KSCATEGORY_VBICODEC DEFINE_GUIDNAMED(KSCATEGORY_VBICODEC)
02348 
02349 #define STATIC_KSDATAFORMAT_SUBTYPE_VPVideo                             \
02350         0x5a9b6a40L,0x1a22,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a
02351 DEFINE_GUIDSTRUCT("5a9b6a40-1a22-11d1-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_VPVideo);
02352 #define KSDATAFORMAT_SUBTYPE_VPVideo DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_VPVideo)
02353 
02354 #define STATIC_KSDATAFORMAT_SUBTYPE_VPVBI                               \
02355         0x5a9b6a41L,0x1a22,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a
02356 DEFINE_GUIDSTRUCT("5a9b6a41-1a22-11d1-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_VPVBI);
02357 #define KSDATAFORMAT_SUBTYPE_VPVBI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_VPVBI)
02358 
02359 #define STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO                         \
02360         0x05589f80L,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a
02361 DEFINE_GUIDSTRUCT("05589f80-c356-11ce-bf01-00aa0055595a",KSDATAFORMAT_SPECIFIER_VIDEOINFO);
02362 #define KSDATAFORMAT_SPECIFIER_VIDEOINFO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VIDEOINFO)
02363 
02364 #define STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO2                        \
02365         0xf72a76A0L,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
02366 DEFINE_GUIDSTRUCT("f72a76A0-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SPECIFIER_VIDEOINFO2);
02367 #define KSDATAFORMAT_SPECIFIER_VIDEOINFO2 DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VIDEOINFO2)
02368 
02369 #define STATIC_KSDATAFORMAT_TYPE_ANALOGVIDEO                            \
02370         0x0482dde1L,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65
02371 DEFINE_GUIDSTRUCT("0482dde1-7817-11cf-8a03-00aa006ecb65",KSDATAFORMAT_TYPE_ANALOGVIDEO);
02372 #define KSDATAFORMAT_TYPE_ANALOGVIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_ANALOGVIDEO)
02373 
02374 #define STATIC_KSDATAFORMAT_SPECIFIER_ANALOGVIDEO                       \
02375         0x0482dde0L,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65
02376 DEFINE_GUIDSTRUCT("0482dde0-7817-11cf-8a03-00aa006ecb65",KSDATAFORMAT_SPECIFIER_ANALOGVIDEO);
02377 #define KSDATAFORMAT_SPECIFIER_ANALOGVIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_ANALOGVIDEO)
02378 
02379 #define STATIC_KSDATAFORMAT_TYPE_ANALOGAUDIO                            \
02380         0x0482dee1L,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65
02381 DEFINE_GUIDSTRUCT("0482DEE1-7817-11cf-8a03-00aa006ecb65",KSDATAFORMAT_TYPE_ANALOGAUDIO);
02382 #define KSDATAFORMAT_TYPE_ANALOGAUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_ANALOGAUDIO)
02383 
02384 #define STATIC_KSDATAFORMAT_SPECIFIER_VBI                               \
02385         0xf72a76e0L,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
02386 DEFINE_GUIDSTRUCT("f72a76e0-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SPECIFIER_VBI);
02387 #define KSDATAFORMAT_SPECIFIER_VBI DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VBI)
02388 
02389 #define STATIC_KSDATAFORMAT_TYPE_VBI                                    \
02390         0xf72a76e1L,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
02391 DEFINE_GUIDSTRUCT("f72a76e1-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_TYPE_VBI);
02392 #define KSDATAFORMAT_TYPE_VBI DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_VBI)
02393 
02394 #define STATIC_KSDATAFORMAT_SUBTYPE_RAW8                                \
02395         0xca20d9a0,0x3e3e,0x11d1,0x9b,0xf9,0x0,0xc0,0x4f,0xbb,0xde,0xbf
02396 DEFINE_GUIDSTRUCT("ca20d9a0-3e3e-11d1-9bf9-00c04fbbdebf",KSDATAFORMAT_SUBTYPE_RAW8);
02397 #define KSDATAFORMAT_SUBTYPE_RAW8 DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RAW8)
02398 
02399 #define STATIC_KSDATAFORMAT_SUBTYPE_CC                                  \
02400         0x33214cc1,0x11f,0x11d2,0xb4,0xb1,0x0,0xa0,0xd1,0x2,0xcf,0xbe
02401 DEFINE_GUIDSTRUCT("33214CC1-011F-11D2-B4B1-00A0D102CFBE",KSDATAFORMAT_SUBTYPE_CC);
02402 #define KSDATAFORMAT_SUBTYPE_CC DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_CC)
02403 
02404 #define STATIC_KSDATAFORMAT_SUBTYPE_NABTS                               \
02405         0xf72a76e2L,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
02406 DEFINE_GUIDSTRUCT("f72a76e2-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SUBTYPE_NABTS);
02407 #define KSDATAFORMAT_SUBTYPE_NABTS DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_NABTS)
02408 
02409 #define STATIC_KSDATAFORMAT_SUBTYPE_TELETEXT                            \
02410         0xf72a76e3L,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
02411 DEFINE_GUIDSTRUCT("f72a76e3-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SUBTYPE_TELETEXT);
02412 #define KSDATAFORMAT_SUBTYPE_TELETEXT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_TELETEXT)
02413 
02414 #define KS_BI_RGB               0L
02415 #define KS_BI_RLE8              1L
02416 #define KS_BI_RLE4              2L
02417 #define KS_BI_BITFIELDS         3L
02418 
02419 typedef struct tagKS_RGBQUAD {
02420   BYTE rgbBlue;
02421   BYTE rgbGreen;
02422   BYTE rgbRed;
02423   BYTE rgbReserved;
02424 } KS_RGBQUAD,*PKS_RGBQUAD;
02425 
02426 #define KS_iPALETTE_COLORS      256
02427 #define KS_iEGA_COLORS          16
02428 #define KS_iMASK_COLORS         3
02429 #define KS_iTRUECOLOR           16
02430 #define KS_iRED                 0
02431 #define KS_iGREEN               1
02432 #define KS_iBLUE                2
02433 #define KS_iPALETTE             8
02434 #define KS_iMAXBITS             8
02435 #define KS_SIZE_EGA_PALETTE     (KS_iEGA_COLORS *sizeof(KS_RGBQUAD))
02436 #define KS_SIZE_PALETTE         (KS_iPALETTE_COLORS *sizeof(KS_RGBQUAD))
02437 
02438 typedef struct tagKS_BITMAPINFOHEADER {
02439   DWORD biSize;
02440   LONG biWidth;
02441   LONG biHeight;
02442   WORD biPlanes;
02443   WORD biBitCount;
02444   DWORD biCompression;
02445   DWORD biSizeImage;
02446   LONG biXPelsPerMeter;
02447   LONG biYPelsPerMeter;
02448   DWORD biClrUsed;
02449   DWORD biClrImportant;
02450 } KS_BITMAPINFOHEADER,*PKS_BITMAPINFOHEADER;
02451 
02452 typedef struct tag_KS_TRUECOLORINFO {
02453   DWORD dwBitMasks[KS_iMASK_COLORS];
02454   KS_RGBQUAD bmiColors[KS_iPALETTE_COLORS];
02455 } KS_TRUECOLORINFO,*PKS_TRUECOLORINFO;
02456 
02457 #define KS_WIDTHBYTES(bits)     ((DWORD)(((bits)+31) & (~31)) / 8)
02458 #define KS_DIBWIDTHBYTES(bi)    (DWORD)KS_WIDTHBYTES((DWORD)(bi).biWidth *(DWORD)(bi).biBitCount)
02459 #define KS__DIBSIZE(bi)         (KS_DIBWIDTHBYTES(bi) *(DWORD)(bi).biHeight)
02460 #define KS_DIBSIZE(bi)          ((bi).biHeight < 0 ? (-1)*(KS__DIBSIZE(bi)) : KS__DIBSIZE(bi))
02461 
02462 typedef LONGLONG REFERENCE_TIME;
02463 
02464 typedef struct tagKS_VIDEOINFOHEADER {
02465   RECT rcSource;
02466   RECT rcTarget;
02467   DWORD dwBitRate;
02468   DWORD dwBitErrorRate;
02469   REFERENCE_TIME AvgTimePerFrame;
02470   KS_BITMAPINFOHEADER bmiHeader;
02471 } KS_VIDEOINFOHEADER,*PKS_VIDEOINFOHEADER;
02472 
02473 typedef struct tagKS_VIDEOINFO {
02474   RECT rcSource;
02475   RECT rcTarget;
02476   DWORD dwBitRate;
02477   DWORD dwBitErrorRate;
02478   REFERENCE_TIME AvgTimePerFrame;
02479   KS_BITMAPINFOHEADER bmiHeader;
02480   __MINGW_EXTENSION union {
02481     KS_RGBQUAD bmiColors[KS_iPALETTE_COLORS];
02482     DWORD dwBitMasks[KS_iMASK_COLORS];
02483     KS_TRUECOLORINFO TrueColorInfo;
02484   };
02485 } KS_VIDEOINFO,*PKS_VIDEOINFO;
02486 
02487 #define KS_SIZE_MASKS                   (KS_iMASK_COLORS *sizeof(DWORD))
02488 #define KS_SIZE_PREHEADER               (FIELD_OFFSET(KS_VIDEOINFOHEADER,bmiHeader))
02489 
02490 #define KS_SIZE_VIDEOHEADER(pbmi)       ((pbmi)->bmiHeader.biSize + KS_SIZE_PREHEADER)
02491 
02492 typedef struct tagKS_VBIINFOHEADER {
02493   ULONG StartLine;
02494   ULONG EndLine;
02495   ULONG SamplingFrequency;
02496   ULONG MinLineStartTime;
02497   ULONG MaxLineStartTime;
02498   ULONG ActualLineStartTime;
02499   ULONG ActualLineEndTime;
02500   ULONG VideoStandard;
02501   ULONG SamplesPerLine;
02502   ULONG StrideInBytes;
02503   ULONG BufferSize;
02504 } KS_VBIINFOHEADER,*PKS_VBIINFOHEADER;
02505 
02506 #define KS_VBIDATARATE_NABTS            (5727272L)
02507 #define KS_VBIDATARATE_CC               (503493L)
02508 #define KS_VBISAMPLINGRATE_4X_NABTS     ((long)(4*KS_VBIDATARATE_NABTS))
02509 #define KS_VBISAMPLINGRATE_47X_NABTS    ((long)(27000000))
02510 #define KS_VBISAMPLINGRATE_5X_NABTS     ((long)(5*KS_VBIDATARATE_NABTS))
02511 
02512 #define KS_47NABTS_SCALER               (KS_VBISAMPLINGRATE_47X_NABTS/(double)KS_VBIDATARATE_NABTS)
02513 
02514 typedef struct tagKS_AnalogVideoInfo {
02515   RECT rcSource;
02516   RECT rcTarget;
02517   DWORD dwActiveWidth;
02518   DWORD dwActiveHeight;
02519   REFERENCE_TIME AvgTimePerFrame;
02520 } KS_ANALOGVIDEOINFO,*PKS_ANALOGVIDEOINFO;
02521 
02522 #define KS_TVTUNER_CHANGE_BEGIN_TUNE    0x0001L
02523 #define KS_TVTUNER_CHANGE_END_TUNE      0x0002L
02524 
02525 typedef struct tagKS_TVTUNER_CHANGE_INFO {
02526   DWORD dwFlags;
02527   DWORD dwCountryCode;
02528   DWORD dwAnalogVideoStandard;
02529   DWORD dwChannel;
02530 } KS_TVTUNER_CHANGE_INFO,*PKS_TVTUNER_CHANGE_INFO;
02531 
02532 typedef enum {
02533   KS_MPEG2Level_Low,
02534   KS_MPEG2Level_Main,
02535   KS_MPEG2Level_High1440,
02536   KS_MPEG2Level_High
02537 } KS_MPEG2Level;
02538 
02539 typedef enum {
02540   KS_MPEG2Profile_Simple,
02541   KS_MPEG2Profile_Main,
02542   KS_MPEG2Profile_SNRScalable,
02543   KS_MPEG2Profile_SpatiallyScalable,
02544   KS_MPEG2Profile_High
02545 } KS_MPEG2Profile;
02546 
02547 #define KS_INTERLACE_IsInterlaced               0x00000001
02548 #define KS_INTERLACE_1FieldPerSample            0x00000002
02549 #define KS_INTERLACE_Field1First                0x00000004
02550 #define KS_INTERLACE_UNUSED                     0x00000008
02551 #define KS_INTERLACE_FieldPatternMask           0x00000030
02552 #define KS_INTERLACE_FieldPatField1Only         0x00000000
02553 #define KS_INTERLACE_FieldPatField2Only         0x00000010
02554 #define KS_INTERLACE_FieldPatBothRegular        0x00000020
02555 #define KS_INTERLACE_FieldPatBothIrregular      0x00000030
02556 #define KS_INTERLACE_DisplayModeMask            0x000000c0
02557 #define KS_INTERLACE_DisplayModeBobOnly         0x00000000
02558 #define KS_INTERLACE_DisplayModeWeaveOnly       0x00000040
02559 #define KS_INTERLACE_DisplayModeBobOrWeave      0x00000080
02560 
02561 #define KS_MPEG2_DoPanScan                      0x00000001
02562 #define KS_MPEG2_DVDLine21Field1                0x00000002
02563 #define KS_MPEG2_DVDLine21Field2                0x00000004
02564 #define KS_MPEG2_SourceIsLetterboxed            0x00000008
02565 #define KS_MPEG2_FilmCameraMode                 0x00000010
02566 #define KS_MPEG2_LetterboxAnalogOut             0x00000020
02567 #define KS_MPEG2_DSS_UserData                   0x00000040
02568 #define KS_MPEG2_DVB_UserData                   0x00000080
02569 #define KS_MPEG2_27MhzTimebase                  0x00000100
02570 
02571 typedef struct tagKS_VIDEOINFOHEADER2 {
02572   RECT rcSource;
02573   RECT rcTarget;
02574   DWORD dwBitRate;
02575   DWORD dwBitErrorRate;
02576   REFERENCE_TIME AvgTimePerFrame;
02577   DWORD dwInterlaceFlags;
02578   DWORD dwCopyProtectFlags;
02579   DWORD dwPictAspectRatioX;
02580   DWORD dwPictAspectRatioY;
02581   DWORD dwReserved1;
02582   DWORD dwReserved2;
02583   KS_BITMAPINFOHEADER bmiHeader;
02584 } KS_VIDEOINFOHEADER2,*PKS_VIDEOINFOHEADER2;
02585 
02586 typedef struct tagKS_MPEG1VIDEOINFO {
02587   KS_VIDEOINFOHEADER hdr;
02588   DWORD dwStartTimeCode;
02589   DWORD cbSequenceHeader;
02590   BYTE bSequenceHeader[1];
02591 } KS_MPEG1VIDEOINFO,*PKS_MPEG1VIDEOINFO;
02592 
02593 #define KS_MAX_SIZE_MPEG1_SEQUENCE_INFO 140
02594 #define KS_SIZE_MPEG1VIDEOINFO(pv)      (FIELD_OFFSET(KS_MPEG1VIDEOINFO,bSequenceHeader[0]) + (pv)->cbSequenceHeader)
02595 #define KS_MPEG1_SEQUENCE_INFO(pv)      ((const BYTE *)(pv)->bSequenceHeader)
02596 
02597 typedef struct tagKS_MPEGVIDEOINFO2 {
02598   KS_VIDEOINFOHEADER2 hdr;
02599   DWORD dwStartTimeCode;
02600   DWORD cbSequenceHeader;
02601   DWORD dwProfile;
02602   DWORD dwLevel;
02603   DWORD dwFlags;
02604   DWORD bSequenceHeader[1];
02605 } KS_MPEGVIDEOINFO2,*PKS_MPEGVIDEOINFO2;
02606 
02607 #define KS_SIZE_MPEGVIDEOINFO2(pv)      (FIELD_OFFSET(KS_MPEGVIDEOINFO2,bSequenceHeader[0]) + (pv)->cbSequenceHeader)
02608 #define KS_MPEG1_SEQUENCE_INFO(pv)      ((const BYTE *)(pv)->bSequenceHeader)
02609 
02610 #define KS_MPEGAUDIOINFO_27MhzTimebase  0x00000001
02611 
02612 typedef struct tagKS_MPEAUDIOINFO {
02613   DWORD dwFlags;
02614   DWORD dwReserved1;
02615   DWORD dwReserved2;
02616   DWORD dwReserved3;
02617 } KS_MPEGAUDIOINFO,*PKS_MPEGAUDIOINFO;
02618 
02619 typedef struct tagKS_DATAFORMAT_VIDEOINFOHEADER {
02620   KSDATAFORMAT DataFormat;
02621   KS_VIDEOINFOHEADER VideoInfoHeader;
02622 } KS_DATAFORMAT_VIDEOINFOHEADER,*PKS_DATAFORMAT_VIDEOINFOHEADER;
02623 
02624 typedef struct tagKS_DATAFORMAT_VIDEOINFOHEADER2 {
02625   KSDATAFORMAT DataFormat;
02626   KS_VIDEOINFOHEADER2 VideoInfoHeader2;
02627 } KS_DATAFORMAT_VIDEOINFOHEADER2,*PKS_DATAFORMAT_VIDEOINFOHEADER2;
02628 
02629 typedef struct tagKS_DATAFORMAT_VIDEOINFO_PALETTE {
02630   KSDATAFORMAT DataFormat;
02631   KS_VIDEOINFO VideoInfo;
02632 } KS_DATAFORMAT_VIDEOINFO_PALETTE,*PKS_DATAFORMAT_VIDEOINFO_PALETTE;
02633 
02634 typedef struct tagKS_DATAFORMAT_VBIINFOHEADER {
02635   KSDATAFORMAT DataFormat;
02636   KS_VBIINFOHEADER VBIInfoHeader;
02637 } KS_DATAFORMAT_VBIINFOHEADER,*PKS_DATAFORMAT_VBIINFOHEADER;
02638 
02639 typedef struct _KS_VIDEO_STREAM_CONFIG_CAPS {
02640   GUID guid;
02641   ULONG VideoStandard;
02642   SIZE InputSize;
02643   SIZE MinCroppingSize;
02644   SIZE MaxCroppingSize;
02645   int CropGranularityX;
02646   int CropGranularityY;
02647   int CropAlignX;
02648   int CropAlignY;
02649   SIZE MinOutputSize;
02650   SIZE MaxOutputSize;
02651   int OutputGranularityX;
02652   int OutputGranularityY;
02653   int StretchTapsX;
02654   int StretchTapsY;
02655   int ShrinkTapsX;
02656   int ShrinkTapsY;
02657   LONGLONG MinFrameInterval;
02658   LONGLONG MaxFrameInterval;
02659   LONG MinBitsPerSecond;
02660   LONG MaxBitsPerSecond;
02661 } KS_VIDEO_STREAM_CONFIG_CAPS,*PKS_VIDEO_STREAM_CONFIG_CAPS;
02662 
02663 typedef struct tagKS_DATARANGE_VIDEO {
02664   KSDATARANGE DataRange;
02665   WINBOOL bFixedSizeSamples;
02666   WINBOOL bTemporalCompression;
02667   DWORD StreamDescriptionFlags;
02668   DWORD MemoryAllocationFlags;
02669   KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
02670   KS_VIDEOINFOHEADER VideoInfoHeader;
02671 } KS_DATARANGE_VIDEO,*PKS_DATARANGE_VIDEO;
02672 
02673 typedef struct tagKS_DATARANGE_VIDEO2 {
02674   KSDATARANGE DataRange;
02675   WINBOOL bFixedSizeSamples;
02676   WINBOOL bTemporalCompression;
02677   DWORD StreamDescriptionFlags;
02678   DWORD MemoryAllocationFlags;
02679   KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
02680   KS_VIDEOINFOHEADER2 VideoInfoHeader;
02681 } KS_DATARANGE_VIDEO2,*PKS_DATARANGE_VIDEO2;
02682 
02683 typedef struct tagKS_DATARANGE_MPEG1_VIDEO {
02684   KSDATARANGE DataRange;
02685   WINBOOL bFixedSizeSamples;
02686   WINBOOL bTemporalCompression;
02687   DWORD StreamDescriptionFlags;
02688   DWORD MemoryAllocationFlags;
02689   KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
02690   KS_MPEG1VIDEOINFO VideoInfoHeader;
02691 } KS_DATARANGE_MPEG1_VIDEO,*PKS_DATARANGE_MPEG1_VIDEO;
02692 
02693 typedef struct tagKS_DATARANGE_MPEG2_VIDEO {
02694   KSDATARANGE DataRange;
02695   WINBOOL bFixedSizeSamples;
02696   WINBOOL bTemporalCompression;
02697   DWORD StreamDescriptionFlags;
02698   DWORD MemoryAllocationFlags;
02699   KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
02700   KS_MPEGVIDEOINFO2 VideoInfoHeader;
02701 } KS_DATARANGE_MPEG2_VIDEO,*PKS_DATARANGE_MPEG2_VIDEO;
02702 
02703 typedef struct tagKS_DATARANGE_VIDEO_PALETTE {
02704   KSDATARANGE DataRange;
02705   WINBOOL bFixedSizeSamples;
02706   WINBOOL bTemporalCompression;
02707   DWORD StreamDescriptionFlags;
02708   DWORD MemoryAllocationFlags;
02709   KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
02710   KS_VIDEOINFO VideoInfo;
02711 } KS_DATARANGE_VIDEO_PALETTE,*PKS_DATARANGE_VIDEO_PALETTE;
02712 
02713 typedef struct tagKS_DATARANGE_VIDEO_VBI {
02714   KSDATARANGE DataRange;
02715   WINBOOL bFixedSizeSamples;
02716   WINBOOL bTemporalCompression;
02717   DWORD StreamDescriptionFlags;
02718   DWORD MemoryAllocationFlags;
02719   KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
02720   KS_VBIINFOHEADER VBIInfoHeader;
02721 } KS_DATARANGE_VIDEO_VBI,*PKS_DATARANGE_VIDEO_VBI;
02722 
02723 typedef struct tagKS_DATARANGE_ANALOGVIDEO {
02724   KSDATARANGE DataRange;
02725   KS_ANALOGVIDEOINFO AnalogVideoInfo;
02726 } KS_DATARANGE_ANALOGVIDEO,*PKS_DATARANGE_ANALOGVIDEO;
02727 
02728 #define KS_VIDEOSTREAM_PREVIEW          0x0001
02729 #define KS_VIDEOSTREAM_CAPTURE          0x0002
02730 #define KS_VIDEOSTREAM_VBI              0x0010
02731 #define KS_VIDEOSTREAM_NABTS            0x0020
02732 #define KS_VIDEOSTREAM_CC               0x0100
02733 #define KS_VIDEOSTREAM_EDS              0x0200
02734 #define KS_VIDEOSTREAM_TELETEXT         0x0400
02735 #define KS_VIDEOSTREAM_STILL            0x1000
02736 #define KS_VIDEOSTREAM_IS_VPE           0x8000
02737 
02738 #define KS_VIDEO_ALLOC_VPE_SYSTEM       0x0001
02739 #define KS_VIDEO_ALLOC_VPE_DISPLAY      0x0002
02740 #define KS_VIDEO_ALLOC_VPE_AGP          0x0004
02741 
02742 #define STATIC_KSPROPSETID_VBICAP_PROPERTIES                            \
02743         0xf162c607,0x7b35,0x496f,0xad,0x7f,0x2d,0xca,0x3b,0x46,0xb7,0x18
02744 DEFINE_GUIDSTRUCT("F162C607-7B35-496f-AD7F-2DCA3B46B718",KSPROPSETID_VBICAP_PROPERTIES);
02745 #define KSPROPSETID_VBICAP_PROPERTIES DEFINE_GUIDNAMED(KSPROPSETID_VBICAP_PROPERTIES)
02746 
02747 typedef enum {
02748   KSPROPERTY_VBICAP_PROPERTIES_PROTECTION = 0x01
02749 } KSPROPERTY_VBICAP;
02750 
02751 typedef struct _VBICAP_PROPERTIES_PROTECTION_S {
02752   KSPROPERTY Property;
02753   ULONG StreamIndex;
02754   ULONG Status;
02755 } VBICAP_PROPERTIES_PROTECTION_S,*PVBICAP_PROPERTIES_PROTECTION_S;
02756 
02757 #define KS_VBICAP_PROTECTION_MV_PRESENT                         0x0001L
02758 #define KS_VBICAP_PROTECTION_MV_HARDWARE                        0x0002L
02759 #define KS_VBICAP_PROTECTION_MV_DETECTED                        0x0004L
02760 
02761 #define KS_NABTS_GROUPID_ORIGINAL_CONTENT_BASE                  0x800
02762 #define KS_NABTS_GROUPID_ORIGINAL_CONTENT_ADVERTISER_BASE       0x810
02763 
02764 #define KS_NABTS_GROUPID_PRODUCTION_COMPANY_CONTENT_BASE        0x820
02765 #define KS_NABTS_GROUPID_PRODUCTION_COMPANY_ADVERTISER_BASE     0x830
02766 
02767 #define KS_NABTS_GROUPID_SYNDICATED_SHOW_CONTENT_BASE           0x840
02768 #define KS_NABTS_GROUPID_SYNDICATED_SHOW_ADVERTISER_BASE        0x850
02769 
02770 #define KS_NABTS_GROUPID_NETWORK_WIDE_CONTENT_BASE              0x860
02771 #define KS_NABTS_GROUPID_NETWORK_WIDE_ADVERTISER_BASE           0x870
02772 
02773 #define KS_NABTS_GROUPID_TELEVISION_STATION_CONTENT_BASE        0x880
02774 #define KS_NABTS_GROUPID_TELEVISION_STATION_ADVERTISER_BASE     0x890
02775 
02776 #define KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_CONTENT_BASE        0x8A0
02777 #define KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_ADVERTISER_BASE     0x8B0
02778 
02779 #define KS_NABTS_GROUPID_MICROSOFT_RESERVED_TEST_DATA_BASE      0x8F0
02780 
02781 #define STATIC_KSDATAFORMAT_TYPE_NABTS                                  \
02782         0xe757bca0,0x39ac,0x11d1,0xa9,0xf5,0x0,0xc0,0x4f,0xbb,0xde,0x8f
02783 DEFINE_GUIDSTRUCT("E757BCA0-39AC-11d1-A9F5-00C04FBBDE8F",KSDATAFORMAT_TYPE_NABTS);
02784 #define KSDATAFORMAT_TYPE_NABTS DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_NABTS)
02785 
02786 #define STATIC_KSDATAFORMAT_SUBTYPE_NABTS_FEC                           \
02787         0xe757bca1,0x39ac,0x11d1,0xa9,0xf5,0x0,0xc0,0x4f,0xbb,0xde,0x8f
02788 DEFINE_GUIDSTRUCT("E757BCA1-39AC-11d1-A9F5-00C04FBBDE8F",KSDATAFORMAT_SUBTYPE_NABTS_FEC);
02789 #define KSDATAFORMAT_SUBTYPE_NABTS_FEC DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_NABTS_FEC)
02790 
02791 #define MAX_NABTS_VBI_LINES_PER_FIELD   11
02792 #define NABTS_LINES_PER_BUNDLE          16
02793 #define NABTS_PAYLOAD_PER_LINE          28
02794 #define NABTS_BYTES_PER_LINE            36
02795 
02796 typedef struct _NABTSFEC_BUFFER {
02797   ULONG dataSize;
02798   USHORT groupID;
02799   USHORT Reserved;
02800   UCHAR data[NABTS_LINES_PER_BUNDLE *NABTS_PAYLOAD_PER_LINE];
02801 } NABTSFEC_BUFFER,*PNABTSFEC_BUFFER;
02802 
02803 #define STATIC_KSPROPSETID_VBICodecFiltering                            \
02804         0xcafeb0caL,0x8715,0x11d0,0xbd,0x6a,0x00,0x35,0xc0,0xed,0xba,0xbe
02805 DEFINE_GUIDSTRUCT("cafeb0ca-8715-11d0-bd6a-0035c0edbabe",KSPROPSETID_VBICodecFiltering);
02806 #define KSPROPSETID_VBICodecFiltering DEFINE_GUIDNAMED(KSPROPSETID_VBICodecFiltering)
02807 
02808 typedef enum {
02809   KSPROPERTY_VBICODECFILTERING_SCANLINES_REQUESTED_BIT_ARRAY = 0x01,
02810   KSPROPERTY_VBICODECFILTERING_SCANLINES_DISCOVERED_BIT_ARRAY,
02811   KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_REQUESTED_BIT_ARRAY,
02812   KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_DISCOVERED_BIT_ARRAY,
02813   KSPROPERTY_VBICODECFILTERING_STATISTICS
02814 } KSPROPERTY_VBICODECFILTERING;
02815 
02816 typedef struct _VBICODECFILTERING_SCANLINES {
02817   DWORD DwordBitArray[32];
02818 } VBICODECFILTERING_SCANLINES,*PVBICODECFILTERING_SCANLINES;
02819 
02820 typedef struct _VBICODECFILTERING_NABTS_SUBSTREAMS {
02821   DWORD SubstreamMask[128];
02822 } VBICODECFILTERING_NABTS_SUBSTREAMS,*PVBICODECFILTERING_NABTS_SUBSTREAMS;
02823 
02824 typedef struct _VBICODECFILTERING_CC_SUBSTREAMS {
02825   DWORD SubstreamMask;
02826 } VBICODECFILTERING_CC_SUBSTREAMS,*PVBICODECFILTERING_CC_SUBSTREAMS;
02827 
02828 #define KS_CC_SUBSTREAM_ODD             0x0001L
02829 #define KS_CC_SUBSTREAM_EVEN            0x0002L
02830 
02831 #define KS_CC_SUBSTREAM_FIELD1_MASK     0x00F0L
02832 #define KS_CC_SUBSTREAM_SERVICE_CC1     0x0010L
02833 #define KS_CC_SUBSTREAM_SERVICE_CC2     0x0020L
02834 #define KS_CC_SUBSTREAM_SERVICE_T1      0x0040L
02835 #define KS_CC_SUBSTREAM_SERVICE_T2      0x0080L
02836 
02837 #define KS_CC_SUBSTREAM_FIELD2_MASK     0x1F00L
02838 #define KS_CC_SUBSTREAM_SERVICE_CC3     0x0100L
02839 #define KS_CC_SUBSTREAM_SERVICE_CC4     0x0200L
02840 #define KS_CC_SUBSTREAM_SERVICE_T3      0x0400L
02841 #define KS_CC_SUBSTREAM_SERVICE_T4      0x0800L
02842 #define KS_CC_SUBSTREAM_SERVICE_XDS     0x1000L
02843 
02844 #define CC_MAX_HW_DECODE_LINES          12
02845 typedef struct _CC_BYTE_PAIR {
02846   BYTE Decoded[2];
02847   USHORT Reserved;
02848 } CC_BYTE_PAIR,*PCC_BYTE_PAIR;
02849 
02850 typedef struct _CC_HW_FIELD {
02851   VBICODECFILTERING_SCANLINES ScanlinesRequested;
02852   ULONG fieldFlags;
02853   LONGLONG PictureNumber;
02854   CC_BYTE_PAIR Lines[CC_MAX_HW_DECODE_LINES];
02855 } CC_HW_FIELD,*PCC_HW_FIELD;
02856 
02857 #ifndef PACK_PRAGMAS_NOT_SUPPORTED
02858 #include <pshpack1.h>
02859 #endif
02860 typedef struct _NABTS_BUFFER_LINE {
02861   BYTE Confidence;
02862   BYTE Bytes[NABTS_BYTES_PER_LINE];
02863 } NABTS_BUFFER_LINE,*PNABTS_BUFFER_LINE;
02864 
02865 #define NABTS_BUFFER_PICTURENUMBER_SUPPORT      1
02866 typedef struct _NABTS_BUFFER {
02867   VBICODECFILTERING_SCANLINES ScanlinesRequested;
02868   LONGLONG PictureNumber;
02869   NABTS_BUFFER_LINE NabtsLines[MAX_NABTS_VBI_LINES_PER_FIELD];
02870 } NABTS_BUFFER,*PNABTS_BUFFER;
02871 #ifndef PACK_PRAGMAS_NOT_SUPPORTED
02872 #include <poppack.h>
02873 #endif
02874 
02875 #define WST_TVTUNER_CHANGE_BEGIN_TUNE   0x1000L
02876 #define WST_TVTUNER_CHANGE_END_TUNE     0x2000L
02877 
02878 #define MAX_WST_VBI_LINES_PER_FIELD     17
02879 #define WST_BYTES_PER_LINE              42
02880 
02881 typedef struct _WST_BUFFER_LINE {
02882   BYTE Confidence;
02883   BYTE Bytes[WST_BYTES_PER_LINE];
02884 } WST_BUFFER_LINE,*PWST_BUFFER_LINE;
02885 
02886 typedef struct _WST_BUFFER {
02887   VBICODECFILTERING_SCANLINES ScanlinesRequested;
02888   WST_BUFFER_LINE WstLines[MAX_WST_VBI_LINES_PER_FIELD];
02889 } WST_BUFFER,*PWST_BUFFER;
02890 
02891 typedef struct _VBICODECFILTERING_STATISTICS_COMMON {
02892   DWORD InputSRBsProcessed;
02893   DWORD OutputSRBsProcessed;
02894   DWORD SRBsIgnored;
02895   DWORD InputSRBsMissing;
02896   DWORD OutputSRBsMissing;
02897   DWORD OutputFailures;
02898   DWORD InternalErrors;
02899   DWORD ExternalErrors;
02900   DWORD InputDiscontinuities;
02901   DWORD DSPFailures;
02902   DWORD TvTunerChanges;
02903   DWORD VBIHeaderChanges;
02904   DWORD LineConfidenceAvg;
02905   DWORD BytesOutput;
02906 } VBICODECFILTERING_STATISTICS_COMMON,*PVBICODECFILTERING_STATISTICS_COMMON;
02907 
02908 typedef struct _VBICODECFILTERING_STATISTICS_COMMON_PIN {
02909   DWORD SRBsProcessed;
02910   DWORD SRBsIgnored;
02911   DWORD SRBsMissing;
02912   DWORD InternalErrors;
02913   DWORD ExternalErrors;
02914   DWORD Discontinuities;
02915   DWORD LineConfidenceAvg;
02916   DWORD BytesOutput;
02917 } VBICODECFILTERING_STATISTICS_COMMON_PIN,*PVBICODECFILTERING_STATISTICS_COMMON_PIN;
02918 
02919 typedef struct _VBICODECFILTERING_STATISTICS_NABTS {
02920   VBICODECFILTERING_STATISTICS_COMMON Common;
02921   DWORD FECBundleBadLines;
02922   DWORD FECQueueOverflows;
02923   DWORD FECCorrectedLines;
02924   DWORD FECUncorrectableLines;
02925   DWORD BundlesProcessed;
02926   DWORD BundlesSent2IP;
02927   DWORD FilteredLines;
02928 } VBICODECFILTERING_STATISTICS_NABTS,*PVBICODECFILTERING_STATISTICS_NABTS;
02929 
02930 typedef struct _VBICODECFILTERING_STATISTICS_NABTS_PIN {
02931   VBICODECFILTERING_STATISTICS_COMMON_PIN Common;
02932 } VBICODECFILTERING_STATISTICS_NABTS_PIN,*PVBICODECFILTERING_STATISTICS_NABTS_PIN;
02933 
02934 typedef struct _VBICODECFILTERING_STATISTICS_CC {
02935   VBICODECFILTERING_STATISTICS_COMMON Common;
02936 } VBICODECFILTERING_STATISTICS_CC,*PVBICODECFILTERING_STATISTICS_CC;
02937 
02938 typedef struct _VBICODECFILTERING_STATISTICS_CC_PIN {
02939   VBICODECFILTERING_STATISTICS_COMMON_PIN Common;
02940 } VBICODECFILTERING_STATISTICS_CC_PIN,*PVBICODECFILTERING_STATISTICS_CC_PIN;
02941 
02942 typedef struct _VBICODECFILTERING_STATISTICS_TELETEXT {
02943   VBICODECFILTERING_STATISTICS_COMMON Common;
02944 } VBICODECFILTERING_STATISTICS_TELETEXT,*PVBICODECFILTERING_STATISTICS_TELETEXT;
02945 
02946 typedef struct _VBICODECFILTERING_STATISTICS_TELETEXT_PIN {
02947   VBICODECFILTERING_STATISTICS_COMMON_PIN Common;
02948 } VBICODECFILTERING_STATISTICS_TELETEXT_PIN,*PVBICODECFILTERING_STATISTICS_TELETEXT_PIN;
02949 
02950 typedef struct {
02951   KSPROPERTY Property;
02952   VBICODECFILTERING_SCANLINES Scanlines;
02953 } KSPROPERTY_VBICODECFILTERING_SCANLINES_S,*PKSPROPERTY_VBICODECFILTERING_SCANLINES_S;
02954 
02955 typedef struct {
02956   KSPROPERTY Property;
02957   VBICODECFILTERING_NABTS_SUBSTREAMS Substreams;
02958 } KSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S,*PKSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S;
02959 
02960 typedef struct {
02961   KSPROPERTY Property;
02962   VBICODECFILTERING_CC_SUBSTREAMS Substreams;
02963 } KSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S,*PKSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S;
02964 
02965 typedef struct {
02966   KSPROPERTY Property;
02967   VBICODECFILTERING_STATISTICS_COMMON Statistics;
02968 } KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S;
02969 
02970 typedef struct {
02971   KSPROPERTY Property;
02972   VBICODECFILTERING_STATISTICS_COMMON_PIN Statistics;
02973 } KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S;
02974 
02975 typedef struct {
02976   KSPROPERTY Property;
02977   VBICODECFILTERING_STATISTICS_NABTS Statistics;
02978 } KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S;
02979 
02980 typedef struct {
02981   KSPROPERTY Property;
02982   VBICODECFILTERING_STATISTICS_NABTS_PIN Statistics;
02983 } KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S;
02984 
02985 typedef struct {
02986   KSPROPERTY Property;
02987   VBICODECFILTERING_STATISTICS_CC Statistics;
02988 } KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S;
02989 
02990 typedef struct {
02991   KSPROPERTY Property;
02992   VBICODECFILTERING_STATISTICS_CC_PIN Statistics;
02993 } KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S;
02994 
02995 #define STATIC_PINNAME_VIDEO_CAPTURE                                    \
02996         0xfb6c4281,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
02997 #define STATIC_PINNAME_CAPTURE STATIC_PINNAME_VIDEO_CAPTURE
02998 DEFINE_GUIDSTRUCT("FB6C4281-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_CAPTURE);
02999 #define PINNAME_VIDEO_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CAPTURE)
03000 #define PINNAME_CAPTURE PINNAME_VIDEO_CAPTURE
03001 
03002 #define STATIC_PINNAME_VIDEO_CC_CAPTURE                                 \
03003         0x1aad8061,0x12d,0x11d2,0xb4,0xb1,0x0,0xa0,0xd1,0x2,0xcf,0xbe
03004 #define STATIC_PINNAME_CC_CAPTURE STATIC_PINNAME_VIDEO_CC_CAPTURE
03005 DEFINE_GUIDSTRUCT("1AAD8061-012D-11d2-B4B1-00A0D102CFBE",PINNAME_VIDEO_CC_CAPTURE);
03006 #define PINNAME_VIDEO_CC_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CC_CAPTURE)
03007 
03008 #define STATIC_PINNAME_VIDEO_NABTS_CAPTURE                              \
03009         0x29703660,0x498a,0x11d2,0xb4,0xb1,0x0,0xa0,0xd1,0x2,0xcf,0xbe
03010 #define STATIC_PINNAME_NABTS_CAPTURE STATIC_PINNAME_VIDEO_NABTS_CAPTURE
03011 DEFINE_GUIDSTRUCT("29703660-498A-11d2-B4B1-00A0D102CFBE",PINNAME_VIDEO_NABTS_CAPTURE);
03012 #define PINNAME_VIDEO_NABTS_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_NABTS_CAPTURE)
03013 
03014 #define STATIC_PINNAME_VIDEO_PREVIEW                                    \
03015         0xfb6c4282,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
03016 #define STATIC_PINNAME_PREVIEW STATIC_PINNAME_VIDEO_PREVIEW
03017 DEFINE_GUIDSTRUCT("FB6C4282-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_PREVIEW);
03018 #define PINNAME_VIDEO_PREVIEW DEFINE_GUIDNAMED(PINNAME_VIDEO_PREVIEW)
03019 #define PINNAME_PREVIEW PINNAME_VIDEO_PREVIEW
03020 
03021 #define STATIC_PINNAME_VIDEO_ANALOGVIDEOIN                              \
03022         0xfb6c4283,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
03023 DEFINE_GUIDSTRUCT("FB6C4283-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_ANALOGVIDEOIN);
03024 #define PINNAME_VIDEO_ANALOGVIDEOIN DEFINE_GUIDNAMED(PINNAME_VIDEO_ANALOGVIDEOIN)
03025 
03026 #define STATIC_PINNAME_VIDEO_VBI                                        \
03027         0xfb6c4284,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
03028 DEFINE_GUIDSTRUCT("FB6C4284-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VBI);
03029 #define PINNAME_VIDEO_VBI DEFINE_GUIDNAMED(PINNAME_VIDEO_VBI)
03030 
03031 #define STATIC_PINNAME_VIDEO_VIDEOPORT                                  \
03032         0xfb6c4285,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
03033 DEFINE_GUIDSTRUCT("FB6C4285-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VIDEOPORT);
03034 #define PINNAME_VIDEO_VIDEOPORT DEFINE_GUIDNAMED(PINNAME_VIDEO_VIDEOPORT)
03035 
03036 #define STATIC_PINNAME_VIDEO_NABTS                                      \
03037         0xfb6c4286,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
03038 DEFINE_GUIDSTRUCT("FB6C4286-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_NABTS);
03039 #define PINNAME_VIDEO_NABTS DEFINE_GUIDNAMED(PINNAME_VIDEO_NABTS)
03040 
03041 #define STATIC_PINNAME_VIDEO_EDS                                        \
03042         0xfb6c4287,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
03043 DEFINE_GUIDSTRUCT("FB6C4287-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_EDS);
03044 #define PINNAME_VIDEO_EDS DEFINE_GUIDNAMED(PINNAME_VIDEO_EDS)
03045 
03046 #define STATIC_PINNAME_VIDEO_TELETEXT                                   \
03047         0xfb6c4288,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
03048 DEFINE_GUIDSTRUCT("FB6C4288-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_TELETEXT);
03049 #define PINNAME_VIDEO_TELETEXT DEFINE_GUIDNAMED(PINNAME_VIDEO_TELETEXT)
03050 
03051 #define STATIC_PINNAME_VIDEO_CC                                         \
03052         0xfb6c4289,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
03053 DEFINE_GUIDSTRUCT("FB6C4289-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_CC);
03054 #define PINNAME_VIDEO_CC DEFINE_GUIDNAMED(PINNAME_VIDEO_CC)
03055 
03056 #define STATIC_PINNAME_VIDEO_STILL                                      \
03057         0xfb6c428A,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
03058 DEFINE_GUIDSTRUCT("FB6C428A-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_STILL);
03059 #define PINNAME_VIDEO_STILL DEFINE_GUIDNAMED(PINNAME_VIDEO_STILL)
03060 
03061 #define STATIC_PINNAME_VIDEO_TIMECODE                                   \
03062         0xfb6c428B,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
03063 DEFINE_GUIDSTRUCT("FB6C428B-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_TIMECODE);
03064 #define PINNAME_VIDEO_TIMECODE DEFINE_GUIDNAMED(PINNAME_VIDEO_TIMECODE)
03065 
03066 #define STATIC_PINNAME_VIDEO_VIDEOPORT_VBI                              \
03067         0xfb6c428C,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
03068 DEFINE_GUIDSTRUCT("FB6C428C-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VIDEOPORT_VBI);
03069 #define PINNAME_VIDEO_VIDEOPORT_VBI DEFINE_GUIDNAMED(PINNAME_VIDEO_VIDEOPORT_VBI)
03070 
03071 #define KS_VIDEO_FLAG_FRAME             0x0000L
03072 #define KS_VIDEO_FLAG_FIELD1            0x0001L
03073 #define KS_VIDEO_FLAG_FIELD2            0x0002L
03074 
03075 #define KS_VIDEO_FLAG_I_FRAME           0x0000L
03076 #define KS_VIDEO_FLAG_P_FRAME           0x0010L
03077 #define KS_VIDEO_FLAG_B_FRAME           0x0020L
03078 
03079 typedef struct tagKS_FRAME_INFO {
03080   ULONG ExtendedHeaderSize;
03081   DWORD dwFrameFlags;
03082   LONGLONG PictureNumber;
03083   LONGLONG DropCount;
03084   HANDLE hDirectDraw;
03085   HANDLE hSurfaceHandle;
03086   RECT DirectDrawRect;
03087 
03088   DWORD Reserved1;
03089   DWORD Reserved2;
03090   DWORD Reserved3;
03091   DWORD Reserved4;
03092 } KS_FRAME_INFO,*PKS_FRAME_INFO;
03093 
03094 #define KS_VBI_FLAG_FIELD1              0x0001L
03095 #define KS_VBI_FLAG_FIELD2              0x0002L
03096 
03097 #define KS_VBI_FLAG_MV_PRESENT          0x0100L
03098 #define KS_VBI_FLAG_MV_HARDWARE         0x0200L
03099 #define KS_VBI_FLAG_MV_DETECTED         0x0400L
03100 
03101 #define KS_VBI_FLAG_TVTUNER_CHANGE      0x0010L
03102 #define KS_VBI_FLAG_VBIINFOHEADER_CHANGE 0x0020L
03103 
03104 typedef struct tagKS_VBI_FRAME_INFO {
03105   ULONG ExtendedHeaderSize;
03106   DWORD dwFrameFlags;
03107   LONGLONG PictureNumber;
03108   LONGLONG DropCount;
03109   DWORD dwSamplingFrequency;
03110   KS_TVTUNER_CHANGE_INFO TvTunerChangeInfo;
03111   KS_VBIINFOHEADER VBIInfoHeader;
03112 } KS_VBI_FRAME_INFO,*PKS_VBI_FRAME_INFO;
03113 
03114 typedef enum
03115 {
03116   KS_AnalogVideo_None = 0x00000000,
03117   KS_AnalogVideo_NTSC_M = 0x00000001,
03118   KS_AnalogVideo_NTSC_M_J = 0x00000002,
03119   KS_AnalogVideo_NTSC_433 = 0x00000004,
03120   KS_AnalogVideo_PAL_B = 0x00000010,
03121   KS_AnalogVideo_PAL_D = 0x00000020,
03122   KS_AnalogVideo_PAL_G = 0x00000040,
03123   KS_AnalogVideo_PAL_H = 0x00000080,
03124   KS_AnalogVideo_PAL_I = 0x00000100,
03125   KS_AnalogVideo_PAL_M = 0x00000200,
03126   KS_AnalogVideo_PAL_N = 0x00000400,
03127   KS_AnalogVideo_PAL_60 = 0x00000800,
03128   KS_AnalogVideo_SECAM_B = 0x00001000,
03129   KS_AnalogVideo_SECAM_D = 0x00002000,
03130   KS_AnalogVideo_SECAM_G = 0x00004000,
03131   KS_AnalogVideo_SECAM_H = 0x00008000,
03132   KS_AnalogVideo_SECAM_K = 0x00010000,
03133   KS_AnalogVideo_SECAM_K1 = 0x00020000,
03134   KS_AnalogVideo_SECAM_L = 0x00040000,
03135   KS_AnalogVideo_SECAM_L1 = 0x00080000,
03136   KS_AnalogVideo_PAL_N_COMBO = 0x00100000
03137 } KS_AnalogVideoStandard;
03138 
03139 #define KS_AnalogVideo_NTSC_Mask        0x00000007
03140 #define KS_AnalogVideo_PAL_Mask         0x00100FF0
03141 #define KS_AnalogVideo_SECAM_Mask       0x000FF000
03142 
03143 #define STATIC_PROPSETID_ALLOCATOR_CONTROL                              \
03144         0x53171960,0x148e,0x11d2,0x99,0x79,0x0,0x0,0xc0,0xcc,0x16,0xba
03145 DEFINE_GUIDSTRUCT("53171960-148E-11d2-9979-0000C0CC16BA",PROPSETID_ALLOCATOR_CONTROL);
03146 #define PROPSETID_ALLOCATOR_CONTROL DEFINE_GUIDNAMED(PROPSETID_ALLOCATOR_CONTROL)
03147 
03148 typedef enum {
03149   KSPROPERTY_ALLOCATOR_CONTROL_HONOR_COUNT,
03150   KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE,
03151   KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS,
03152   KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE
03153 } KSPROPERTY_ALLOCATOR_CONTROL;
03154 
03155 typedef struct {
03156   ULONG CX;
03157   ULONG CY;
03158 } KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S,*PKSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S;
03159 
03160 typedef struct {
03161   ULONG InterleavedCapSupported;
03162 } KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S,*PKSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S;
03163 
03164 typedef struct {
03165   ULONG InterleavedCapPossible;
03166 } KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S,*PKSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S;
03167 
03168 #define STATIC_PROPSETID_VIDCAP_VIDEOPROCAMP                            \
03169         0xC6E13360L,0x30AC,0x11d0,0xa1,0x8c,0x00,0xA0,0xC9,0x11,0x89,0x56
03170 DEFINE_GUIDSTRUCT("C6E13360-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEOPROCAMP);
03171 #define PROPSETID_VIDCAP_VIDEOPROCAMP DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOPROCAMP)
03172 
03173 typedef enum {
03174   KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS,
03175   KSPROPERTY_VIDEOPROCAMP_CONTRAST,
03176   KSPROPERTY_VIDEOPROCAMP_HUE,
03177   KSPROPERTY_VIDEOPROCAMP_SATURATION,
03178   KSPROPERTY_VIDEOPROCAMP_SHARPNESS,
03179   KSPROPERTY_VIDEOPROCAMP_GAMMA,
03180   KSPROPERTY_VIDEOPROCAMP_COLORENABLE,
03181   KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE,
03182   KSPROPERTY_VIDEOPROCAMP_BACKLIGHT_COMPENSATION,
03183   KSPROPERTY_VIDEOPROCAMP_GAIN,
03184   KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER,
03185   KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER_LIMIT,
03186   KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE_COMPONENT,
03187   KSPROPERTY_VIDEOPROCAMP_POWERLINE_FREQUENCY
03188 } KSPROPERTY_VIDCAP_VIDEOPROCAMP;
03189 
03190 typedef struct {
03191   KSPROPERTY Property;
03192   LONG Value;
03193   ULONG Flags;
03194   ULONG Capabilities;
03195 } KSPROPERTY_VIDEOPROCAMP_S,*PKSPROPERTY_VIDEOPROCAMP_S;
03196 
03197 typedef struct {
03198   KSP_NODE NodeProperty;
03199   LONG Value;
03200   ULONG Flags;
03201   ULONG Capabilities;
03202 } KSPROPERTY_VIDEOPROCAMP_NODE_S,*PKSPROPERTY_VIDEOPROCAMP_NODE_S;
03203 
03204 typedef struct {
03205   KSPROPERTY Property;
03206   LONG Value1;
03207   ULONG Flags;
03208   ULONG Capabilities;
03209   LONG Value2;
03210 } KSPROPERTY_VIDEOPROCAMP_S2,*PKSPROPERTY_VIDEOPROCAMP_S2;
03211 
03212 typedef struct {
03213   KSP_NODE NodeProperty;
03214   LONG Value1;
03215   ULONG Flags;
03216   ULONG Capabilities;
03217   LONG Value2;
03218 } KSPROPERTY_VIDEOPROCAMP_NODE_S2,*PKSPROPERTY_VIDEOPROCAMP_NODE_S2;
03219 
03220 #define KSPROPERTY_VIDEOPROCAMP_FLAGS_AUTO      0X0001L
03221 #define KSPROPERTY_VIDEOPROCAMP_FLAGS_MANUAL    0X0002L
03222 
03223 #define STATIC_PROPSETID_VIDCAP_SELECTOR                                \
03224         0x1ABDAECA,0x68B6,0x4F83,0x93,0x71,0xB4,0x13,0x90,0x7C,0x7B,0x9F
03225 DEFINE_GUIDSTRUCT("1ABDAECA-68B6-4F83-9371-B413907C7B9F",PROPSETID_VIDCAP_SELECTOR);
03226 #define PROPSETID_VIDCAP_SELECTOR DEFINE_GUIDNAMED(PROPSETID_VIDCAP_SELECTOR)
03227 
03228 typedef enum {
03229   KSPROPERTY_SELECTOR_SOURCE_NODE_ID,
03230   KSPROPERTY_SELECTOR_NUM_SOURCES
03231 } KSPROPERTY_VIDCAP_SELECTOR,*PKSPROPERTY_VIDCAP_SELECTOR;
03232 
03233 typedef struct {
03234   KSPROPERTY Property;
03235   LONG Value;
03236   ULONG Flags;
03237   ULONG Capabilities;
03238 } KSPROPERTY_SELECTOR_S,*PKSPROPERTY_SELECTOR_S;
03239 
03240 typedef struct {
03241   KSP_NODE NodeProperty;
03242   LONG Value;
03243   ULONG Flags;
03244   ULONG Capabilities;
03245 } KSPROPERTY_SELECTOR_NODE_S,*PKSPROPERTY_SELECTOR_NODE_S;
03246 
03247 #define STATIC_PROPSETID_TUNER                                          \
03248         0x6a2e0605L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
03249 DEFINE_GUIDSTRUCT("6a2e0605-28e4-11d0-a18c-00a0c9118956",PROPSETID_TUNER);
03250 #define PROPSETID_TUNER DEFINE_GUIDNAMED(PROPSETID_TUNER)
03251 
03252 typedef enum {
03253   KSPROPERTY_TUNER_CAPS,
03254   KSPROPERTY_TUNER_MODE_CAPS,
03255   KSPROPERTY_TUNER_MODE,
03256   KSPROPERTY_TUNER_STANDARD,
03257   KSPROPERTY_TUNER_FREQUENCY,
03258   KSPROPERTY_TUNER_INPUT,
03259   KSPROPERTY_TUNER_STATUS,
03260   KSPROPERTY_TUNER_IF_MEDIUM
03261 } KSPROPERTY_TUNER;
03262 
03263 typedef enum {
03264   KSPROPERTY_TUNER_MODE_TV = 0X0001,
03265   KSPROPERTY_TUNER_MODE_FM_RADIO = 0X0002,
03266   KSPROPERTY_TUNER_MODE_AM_RADIO = 0X0004,
03267   KSPROPERTY_TUNER_MODE_DSS = 0X0008,
03268   KSPROPERTY_TUNER_MODE_ATSC = 0X0010
03269 } KSPROPERTY_TUNER_MODES;
03270 
03271 typedef enum {
03272   KS_TUNER_TUNING_EXACT = 1,
03273   KS_TUNER_TUNING_FINE,
03274   KS_TUNER_TUNING_COARSE
03275 } KS_TUNER_TUNING_FLAGS;
03276 
03277 typedef enum {
03278   KS_TUNER_STRATEGY_PLL = 0X01,
03279   KS_TUNER_STRATEGY_SIGNAL_STRENGTH = 0X02,
03280   KS_TUNER_STRATEGY_DRIVER_TUNES = 0X04
03281 } KS_TUNER_STRATEGY;
03282 
03283 typedef struct {
03284   KSPROPERTY Property;
03285   ULONG ModesSupported;
03286   KSPIN_MEDIUM VideoMedium;
03287   KSPIN_MEDIUM TVAudioMedium;
03288   KSPIN_MEDIUM RadioAudioMedium;
03289 } KSPROPERTY_TUNER_CAPS_S,*PKSPROPERTY_TUNER_CAPS_S;
03290 
03291 typedef struct {
03292   KSPROPERTY Property;
03293   KSPIN_MEDIUM IFMedium;
03294 } KSPROPERTY_TUNER_IF_MEDIUM_S,*PKSPROPERTY_TUNER_IF_MEDIUM_S;
03295 
03296 typedef struct {
03297   KSPROPERTY Property;
03298   ULONG Mode;
03299   ULONG StandardsSupported;
03300   ULONG MinFrequency;
03301   ULONG MaxFrequency;
03302   ULONG TuningGranularity;
03303   ULONG NumberOfInputs;
03304   ULONG SettlingTime;
03305   ULONG Strategy;
03306 } KSPROPERTY_TUNER_MODE_CAPS_S,*PKSPROPERTY_TUNER_MODE_CAPS_S;
03307 
03308 typedef struct {
03309   KSPROPERTY Property;
03310   ULONG Mode;
03311 } KSPROPERTY_TUNER_MODE_S,*PKSPROPERTY_TUNER_MODE_S;
03312 
03313 typedef struct {
03314   KSPROPERTY Property;
03315   ULONG Frequency;
03316   ULONG LastFrequency;
03317   ULONG TuningFlags;
03318   ULONG VideoSubChannel;
03319   ULONG AudioSubChannel;
03320   ULONG Channel;
03321   ULONG Country;
03322 } KSPROPERTY_TUNER_FREQUENCY_S,*PKSPROPERTY_TUNER_FREQUENCY_S;
03323 
03324 typedef struct {
03325   KSPROPERTY Property;
03326   ULONG Standard;
03327 } KSPROPERTY_TUNER_STANDARD_S,*PKSPROPERTY_TUNER_STANDARD_S;
03328 
03329 typedef struct {
03330   KSPROPERTY Property;
03331   ULONG InputIndex;
03332 } KSPROPERTY_TUNER_INPUT_S,*PKSPROPERTY_TUNER_INPUT_S;
03333 
03334 typedef struct {
03335   KSPROPERTY Property;
03336   ULONG CurrentFrequency;
03337   ULONG PLLOffset;
03338   ULONG SignalStrength;
03339   ULONG Busy;
03340 } KSPROPERTY_TUNER_STATUS_S,*PKSPROPERTY_TUNER_STATUS_S;
03341 
03342 #define STATIC_EVENTSETID_TUNER                                         \
03343         0x6a2e0606L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
03344 DEFINE_GUIDSTRUCT("6a2e0606-28e4-11d0-a18c-00a0c9118956",EVENTSETID_TUNER);
03345 #define EVENTSETID_TUNER DEFINE_GUIDNAMED(EVENTSETID_TUNER)
03346 
03347 typedef enum {
03348   KSEVENT_TUNER_CHANGED
03349 } KSEVENT_TUNER;
03350 
03351 #define STATIC_KSNODETYPE_VIDEO_STREAMING                               \
03352         0xDFF229E1L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
03353 DEFINE_GUIDSTRUCT("DFF229E1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_STREAMING);
03354 #define KSNODETYPE_VIDEO_STREAMING DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_STREAMING)
03355 
03356 #define STATIC_KSNODETYPE_VIDEO_INPUT_TERMINAL                          \
03357         0xDFF229E2L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
03358 DEFINE_GUIDSTRUCT("DFF229E2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_INPUT_TERMINAL);
03359 #define KSNODETYPE_VIDEO_INPUT_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_INPUT_TERMINAL)
03360 
03361 #define STATIC_KSNODETYPE_VIDEO_OUTPUT_TERMINAL                         \
03362         0xDFF229E3L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
03363 DEFINE_GUIDSTRUCT("DFF229E3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_OUTPUT_TERMINAL);
03364 #define KSNODETYPE_VIDEO_OUTPUT_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_OUTPUT_TERMINAL)
03365 
03366 #define STATIC_KSNODETYPE_VIDEO_SELECTOR                                \
03367         0xDFF229E4L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
03368 DEFINE_GUIDSTRUCT("DFF229E4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_SELECTOR);
03369 #define KSNODETYPE_VIDEO_SELECTOR DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_SELECTOR)
03370 
03371 #define STATIC_KSNODETYPE_VIDEO_PROCESSING                              \
03372         0xDFF229E5L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
03373 DEFINE_GUIDSTRUCT("DFF229E5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_PROCESSING);
03374 #define KSNODETYPE_VIDEO_PROCESSING DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_PROCESSING)
03375 
03376 #define STATIC_KSNODETYPE_VIDEO_CAMERA_TERMINAL                         \
03377         0xDFF229E6L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
03378 DEFINE_GUIDSTRUCT("DFF229E6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_CAMERA_TERMINAL);
03379 #define KSNODETYPE_VIDEO_CAMERA_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_CAMERA_TERMINAL)
03380 
03381 #define STATIC_KSNODETYPE_VIDEO_INPUT_MTT                               \
03382         0xDFF229E7L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
03383 DEFINE_GUIDSTRUCT("DFF229E7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_INPUT_MTT);
03384 #define KSNODETYPE_VIDEO_INPUT_MTT DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_INPUT_MTT)
03385 
03386 #define STATIC_KSNODETYPE_VIDEO_OUTPUT_MTT                              \
03387         0xDFF229E8L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
03388 DEFINE_GUIDSTRUCT("DFF229E8-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_OUTPUT_MTT);
03389 #define KSNODETYPE_VIDEO_OUTPUT_MTT DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_OUTPUT_MTT)
03390 
03391 #define STATIC_PROPSETID_VIDCAP_VIDEOENCODER                            \
03392         0x6a2e0610L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
03393 DEFINE_GUIDSTRUCT("6a2e0610-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_VIDEOENCODER);
03394 #define PROPSETID_VIDCAP_VIDEOENCODER DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOENCODER)
03395 
03396 typedef enum {
03397   KSPROPERTY_VIDEOENCODER_CAPS,
03398   KSPROPERTY_VIDEOENCODER_STANDARD,
03399   KSPROPERTY_VIDEOENCODER_COPYPROTECTION,
03400   KSPROPERTY_VIDEOENCODER_CC_ENABLE
03401 } KSPROPERTY_VIDCAP_VIDEOENCODER;
03402 
03403 typedef struct {
03404   KSPROPERTY Property;
03405   LONG Value;
03406   ULONG Flags;
03407   ULONG Capabilities;
03408 } KSPROPERTY_VIDEOENCODER_S,*PKSPROPERTY_VIDEOENCODER_S;
03409 
03410 #define STATIC_PROPSETID_VIDCAP_VIDEODECODER                            \
03411         0xC6E13350L,0x30AC,0x11d0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56
03412 DEFINE_GUIDSTRUCT("C6E13350-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEODECODER);
03413 #define PROPSETID_VIDCAP_VIDEODECODER DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEODECODER)
03414 
03415 typedef enum {
03416   KSPROPERTY_VIDEODECODER_CAPS,
03417   KSPROPERTY_VIDEODECODER_STANDARD,
03418   KSPROPERTY_VIDEODECODER_STATUS,
03419   KSPROPERTY_VIDEODECODER_OUTPUT_ENABLE,
03420   KSPROPERTY_VIDEODECODER_VCR_TIMING
03421 } KSPROPERTY_VIDCAP_VIDEODECODER;
03422 
03423 typedef enum {
03424   KS_VIDEODECODER_FLAGS_CAN_DISABLE_OUTPUT = 0X0001,
03425   KS_VIDEODECODER_FLAGS_CAN_USE_VCR_LOCKING = 0X0002,
03426   KS_VIDEODECODER_FLAGS_CAN_INDICATE_LOCKED = 0X0004
03427 } KS_VIDEODECODER_FLAGS;
03428 
03429 typedef struct {
03430   KSPROPERTY Property;
03431   ULONG StandardsSupported;
03432   ULONG Capabilities;
03433   ULONG SettlingTime;
03434   ULONG HSyncPerVSync;
03435 } KSPROPERTY_VIDEODECODER_CAPS_S,*PKSPROPERTY_VIDEODECODER_CAPS_S;
03436 
03437 typedef struct {
03438   KSPROPERTY Property;
03439   ULONG NumberOfLines;
03440   ULONG SignalLocked;
03441 } KSPROPERTY_VIDEODECODER_STATUS_S,*PKSPROPERTY_VIDEODECODER_STATUS_S;
03442 
03443 typedef struct {
03444   KSPROPERTY Property;
03445   ULONG Value;
03446 } KSPROPERTY_VIDEODECODER_S,*PKSPROPERTY_VIDEODECODER_S;
03447 
03448 #define STATIC_EVENTSETID_VIDEODECODER                                  \
03449         0x6a2e0621L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
03450 DEFINE_GUIDSTRUCT("6a2e0621-28e4-11d0-a18c-00a0c9118956",EVENTSETID_VIDEODECODER);
03451 #define EVENTSETID_VIDEODECODER DEFINE_GUIDNAMED(EVENTSETID_VIDEODECODER)
03452 
03453 typedef enum {
03454   KSEVENT_VIDEODECODER_CHANGED
03455 } KSEVENT_VIDEODECODER;
03456 
03457 #define STATIC_PROPSETID_VIDCAP_CAMERACONTROL                           \
03458         0xC6E13370L,0x30AC,0x11d0,0xa1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56
03459 DEFINE_GUIDSTRUCT("C6E13370-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_CAMERACONTROL);
03460 #define PROPSETID_VIDCAP_CAMERACONTROL DEFINE_GUIDNAMED(PROPSETID_VIDCAP_CAMERACONTROL)
03461 
03462 typedef enum {
03463   KSPROPERTY_CAMERACONTROL_PAN,
03464   KSPROPERTY_CAMERACONTROL_TILT,
03465   KSPROPERTY_CAMERACONTROL_ROLL,
03466   KSPROPERTY_CAMERACONTROL_ZOOM,
03467   KSPROPERTY_CAMERACONTROL_EXPOSURE,
03468   KSPROPERTY_CAMERACONTROL_IRIS,
03469   KSPROPERTY_CAMERACONTROL_FOCUS,
03470   KSPROPERTY_CAMERACONTROL_SCANMODE,
03471   KSPROPERTY_CAMERACONTROL_PRIVACY,
03472   KSPROPERTY_CAMERACONTROL_PANTILT,
03473   KSPROPERTY_CAMERACONTROL_PAN_RELATIVE,
03474   KSPROPERTY_CAMERACONTROL_TILT_RELATIVE,
03475   KSPROPERTY_CAMERACONTROL_ROLL_RELATIVE,
03476   KSPROPERTY_CAMERACONTROL_ZOOM_RELATIVE,
03477   KSPROPERTY_CAMERACONTROL_EXPOSURE_RELATIVE,
03478   KSPROPERTY_CAMERACONTROL_IRIS_RELATIVE,
03479   KSPROPERTY_CAMERACONTROL_FOCUS_RELATIVE,
03480   KSPROPERTY_CAMERACONTROL_PANTILT_RELATIVE,
03481   KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH
03482 } KSPROPERTY_VIDCAP_CAMERACONTROL;
03483 
03484 typedef struct {
03485   KSPROPERTY Property;
03486   LONG Value;
03487   ULONG Flags;
03488   ULONG Capabilities;
03489 } KSPROPERTY_CAMERACONTROL_S,*PKSPROPERTY_CAMERACONTROL_S;
03490 
03491 typedef struct {
03492   KSP_NODE NodeProperty;
03493   LONG Value;
03494   ULONG Flags;
03495   ULONG Capabilities;
03496 } KSPROPERTY_CAMERACONTROL_NODE_S,PKSPROPERTY_CAMERACONTROL_NODE_S;
03497 
03498 typedef struct {
03499   KSPROPERTY Property;
03500   LONG Value1;
03501   ULONG Flags;
03502   ULONG Capabilities;
03503   LONG Value2;
03504 } KSPROPERTY_CAMERACONTROL_S2,*PKSPROPERTY_CAMERACONTROL_S2;
03505 
03506 typedef struct {
03507   KSP_NODE NodeProperty;
03508   LONG Value1;
03509   ULONG Flags;
03510   ULONG Capabilities;
03511   LONG Value2;
03512 } KSPROPERTY_CAMERACONTROL_NODE_S2,*PKSPROPERTY_CAMERACONTROL_NODE_S2;
03513 
03514 typedef struct {
03515   KSPROPERTY Property;
03516   LONG lOcularFocalLength;
03517   LONG lObjectiveFocalLengthMin;
03518   LONG lObjectiveFocalLengthMax;
03519 } KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S,*PKSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S;
03520 
03521 typedef struct {
03522   KSNODEPROPERTY NodeProperty;
03523   LONG lOcularFocalLength;
03524   LONG lObjectiveFocalLengthMin;
03525   LONG lObjectiveFocalLengthMax;
03526 } KSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S,*PKSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S;
03527 
03528 #define KSPROPERTY_CAMERACONTROL_FLAGS_AUTO     0X0001L
03529 #define KSPROPERTY_CAMERACONTROL_FLAGS_MANUAL   0X0002L
03530 
03531 #define KSPROPERTY_CAMERACONTROL_FLAGS_ABSOLUTE 0X0000L
03532 #define KSPROPERTY_CAMERACONTROL_FLAGS_RELATIVE 0X0010L
03533 
03534 #ifndef __EDevCtrl__
03535 #define __EDevCtrl__
03536 
03537 #define STATIC_PROPSETID_EXT_DEVICE                                     \
03538         0xB5730A90L,0x1A2C,0x11cf,0x8c,0x23,0x00,0xAA,0x00,0x6B,0x68,0x14
03539 DEFINE_GUIDSTRUCT("B5730A90-1A2C-11cf-8C23-00AA006B6814",PROPSETID_EXT_DEVICE);
03540 #define PROPSETID_EXT_DEVICE DEFINE_GUIDNAMED(PROPSETID_EXT_DEVICE)
03541 
03542 typedef enum {
03543   KSPROPERTY_EXTDEVICE_ID,
03544   KSPROPERTY_EXTDEVICE_VERSION,
03545   KSPROPERTY_EXTDEVICE_POWER_STATE,
03546   KSPROPERTY_EXTDEVICE_PORT,
03547   KSPROPERTY_EXTDEVICE_CAPABILITIES
03548 } KSPROPERTY_EXTDEVICE;
03549 
03550 typedef struct tagDEVCAPS{
03551   LONG CanRecord;
03552   LONG CanRecordStrobe;
03553   LONG HasAudio;
03554   LONG HasVideo;
03555   LONG UsesFiles;
03556   LONG CanSave;
03557   LONG DeviceType;
03558   LONG TCRead;
03559   LONG TCWrite;
03560   LONG CTLRead;
03561   LONG IndexRead;
03562   LONG Preroll;
03563   LONG Postroll;
03564   LONG SyncAcc;
03565   LONG NormRate;
03566   LONG CanPreview;
03567   LONG CanMonitorSrc;
03568   LONG CanTest;
03569   LONG VideoIn;
03570   LONG AudioIn;
03571   LONG Calibrate;
03572   LONG SeekType;
03573   LONG SimulatedHardware;
03574 } DEVCAPS,*PDEVCAPS;
03575 
03576 typedef struct {
03577   KSPROPERTY Property;
03578   union {
03579     DEVCAPS Capabilities;
03580     ULONG DevPort;
03581     ULONG PowerState;
03582     WCHAR pawchString[MAX_PATH];
03583     DWORD NodeUniqueID[2];
03584   } u;
03585 } KSPROPERTY_EXTDEVICE_S,*PKSPROPERTY_EXTDEVICE_S;
03586 
03587 #define STATIC_PROPSETID_EXT_TRANSPORT                                  \
03588         0xA03CD5F0L,0x3045,0x11cf,0x8c,0x44,0x00,0xAA,0x00,0x6B,0x68,0x14
03589 DEFINE_GUIDSTRUCT("A03CD5F0-3045-11cf-8C44-00AA006B6814",PROPSETID_EXT_TRANSPORT);
03590 #define PROPSETID_EXT_TRANSPORT DEFINE_GUIDNAMED(PROPSETID_EXT_TRANSPORT)
03591 
03592 typedef enum {
03593   KSPROPERTY_EXTXPORT_CAPABILITIES,
03594   KSPROPERTY_EXTXPORT_INPUT_SIGNAL_MODE,
03595   KSPROPERTY_EXTXPORT_OUTPUT_SIGNAL_MODE,
03596   KSPROPERTY_EXTXPORT_LOAD_MEDIUM,
03597   KSPROPERTY_EXTXPORT_MEDIUM_INFO,
03598   KSPROPERTY_EXTXPORT_STATE,
03599   KSPROPERTY_EXTXPORT_STATE_NOTIFY,
03600   KSPROPERTY_EXTXPORT_TIMECODE_SEARCH,
03601   KSPROPERTY_EXTXPORT_ATN_SEARCH,
03602   KSPROPERTY_EXTXPORT_RTC_SEARCH,
03603   KSPROPERTY_RAW_AVC_CMD
03604 } KSPROPERTY_EXTXPORT;
03605 
03606 typedef struct tagTRANSPORTSTATUS {
03607   LONG Mode;
03608   LONG LastError;
03609   LONG RecordInhibit;
03610   LONG ServoLock;
03611   LONG MediaPresent;
03612   LONG MediaLength;
03613   LONG MediaSize;
03614   LONG MediaTrackCount;
03615   LONG MediaTrackLength;
03616   LONG MediaTrackSide;
03617   LONG MediaType;
03618   LONG LinkMode;
03619   LONG NotifyOn;
03620 } TRANSPORTSTATUS,*PTRANSPORTSTATUS;
03621 
03622 typedef struct tagTRANSPORTBASICPARMS {
03623   LONG TimeFormat;
03624   LONG TimeReference;
03625   LONG Superimpose;
03626   LONG EndStopAction;
03627   LONG RecordFormat;
03628   LONG StepFrames;
03629   LONG SetpField;
03630   LONG Preroll;
03631   LONG RecPreroll;
03632   LONG Postroll;
03633   LONG EditDelay;
03634   LONG PlayTCDelay;
03635   LONG RecTCDelay;
03636   LONG EditField;
03637   LONG FrameServo;
03638   LONG ColorFrameServo;
03639   LONG ServoRef;
03640   LONG WarnGenlock;
03641   LONG SetTracking;
03642   TCHAR VolumeName[40];
03643   LONG Ballistic[20];
03644   LONG Speed;
03645   LONG CounterFormat;
03646   LONG TunerChannel;
03647   LONG TunerNumber;
03648   LONG TimerEvent;
03649   LONG TimerStartDay;
03650   LONG TimerStartTime;
03651   LONG TimerStopDay;
03652   LONG TimerStopTime;
03653 } TRANSPORTBASICPARMS,*PTRANSPORTBASICPARMS;
03654 
03655 typedef struct tagTRANSPORTVIDEOPARMS {
03656   LONG OutputMode;
03657   LONG Input;
03658 } TRANSPORTVIDEOPARMS,*PTRANSPORTVIDEOPARMS;
03659 
03660 typedef struct tagTRANSPORTAUDIOPARMS {
03661   LONG EnableOutput;
03662   LONG EnableRecord;
03663   LONG EnableSelsync;
03664   LONG Input;
03665   LONG MonitorSource;
03666 } TRANSPORTAUDIOPARMS,*PTRANSPORTAUDIOPARMS;
03667 
03668 typedef struct {
03669   WINBOOL MediaPresent;
03670   ULONG MediaType;
03671   WINBOOL RecordInhibit;
03672 } MEDIUM_INFO,*PMEDIUM_INFO;
03673 
03674 typedef struct {
03675   ULONG Mode;
03676   ULONG State;
03677 } TRANSPORT_STATE,*PTRANSPORT_STATE;
03678 
03679 typedef struct {
03680   KSPROPERTY Property;
03681   union {
03682     ULONG Capabilities;
03683     ULONG SignalMode;
03684     ULONG LoadMedium;
03685     MEDIUM_INFO MediumInfo;
03686     TRANSPORT_STATE XPrtState;
03687     struct {
03688       BYTE frame;
03689       BYTE second;
03690       BYTE minute;
03691       BYTE hour;
03692     } Timecode;
03693     DWORD dwTimecode;
03694     DWORD dwAbsTrackNumber;
03695     struct {
03696       ULONG PayloadSize;
03697       BYTE Payload[512];
03698     } RawAVC;
03699   } u;
03700 } KSPROPERTY_EXTXPORT_S,*PKSPROPERTY_EXTXPORT_S;
03701 
03702 typedef struct {
03703   KSP_NODE NodeProperty;
03704   union {
03705     ULONG Capabilities;
03706     ULONG SignalMode;
03707     ULONG LoadMedium;
03708     MEDIUM_INFO MediumInfo;
03709     TRANSPORT_STATE XPrtState;
03710     struct {
03711       BYTE frame;
03712       BYTE second;
03713       BYTE minute;
03714       BYTE hour;
03715     } Timecode;
03716     DWORD dwTimecode;
03717     DWORD dwAbsTrackNumber;
03718     struct {
03719       ULONG PayloadSize;
03720       BYTE Payload[512];
03721     } RawAVC;
03722   } u;
03723 } KSPROPERTY_EXTXPORT_NODE_S,*PKSPROPERTY_EXTXPORT_NODE_S;
03724 
03725 #define STATIC_PROPSETID_TIMECODE_READER                                \
03726         0x9B496CE1L,0x811B,0x11cf,0x8C,0x77,0x00,0xAA,0x00,0x6B,0x68,0x14
03727 DEFINE_GUIDSTRUCT("9B496CE1-811B-11cf-8C77-00AA006B6814",PROPSETID_TIMECODE_READER);
03728 #define PROPSETID_TIMECODE_READER DEFINE_GUIDNAMED(PROPSETID_TIMECODE_READER)
03729 
03730 typedef enum {
03731   KSPROPERTY_TIMECODE_READER,
03732   KSPROPERTY_ATN_READER,
03733   KSPROPERTY_RTC_READER
03734 } KSPROPERTY_TIMECODE;
03735 
03736 #ifndef TIMECODE_DEFINED
03737 #define TIMECODE_DEFINED
03738 typedef union _timecode {
03739   struct {
03740     WORD wFrameRate;
03741     WORD wFrameFract;
03742     DWORD dwFrames;
03743   };
03744   DWORDLONG qw;
03745 } TIMECODE;
03746 typedef TIMECODE *PTIMECODE;
03747 
03748 typedef struct tagTIMECODE_SAMPLE {
03749   LONGLONG qwTick;
03750   TIMECODE timecode;
03751   DWORD dwUser;
03752   DWORD dwFlags;
03753 } TIMECODE_SAMPLE;
03754 
03755 typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE;
03756 #endif /* TIMECODE_DEFINED */
03757 
03758 typedef struct {
03759   KSPROPERTY Property;
03760   TIMECODE_SAMPLE TimecodeSamp;
03761 } KSPROPERTY_TIMECODE_S,*PKSPROPERTY_TIMECODE_S;
03762 
03763 typedef struct {
03764   KSP_NODE NodeProperty;
03765   TIMECODE_SAMPLE TimecodeSamp;
03766 } KSPROPERTY_TIMECODE_NODE_S,*PKSPROPERTY_TIMECODE_NODE_S;
03767 
03768 #define STATIC_KSEVENTSETID_EXTDEV_Command                              \
03769         0x109c7988L,0xb3cb,0x11d2,0xb4,0x8e,0x00,0x60,0x97,0xb3,0x39,0x1b
03770 DEFINE_GUIDSTRUCT("109c7988-b3cb-11d2-b48e-006097b3391b",KSEVENTSETID_EXTDEV_Command);
03771 #define KSEVENTSETID_EXTDEV_Command DEFINE_GUIDNAMED(KSEVENTSETID_EXTDEV_Command)
03772 
03773 typedef enum {
03774   KSEVENT_EXTDEV_COMMAND_NOTIFY_INTERIM_READY,
03775   KSEVENT_EXTDEV_COMMAND_CONTROL_INTERIM_READY,
03776   KSEVENT_EXTDEV_COMMAND_BUSRESET,
03777   KSEVENT_EXTDEV_TIMECODE_UPDATE,
03778   KSEVENT_EXTDEV_OPERATION_MODE_UPDATE,
03779   KSEVENT_EXTDEV_TRANSPORT_STATE_UPDATE,
03780   KSEVENT_EXTDEV_NOTIFY_REMOVAL,
03781   KSEVENT_EXTDEV_NOTIFY_MEDIUM_CHANGE
03782 } KSEVENT_DEVCMD;
03783 #endif /* __EDevCtrl__ */
03784 
03785 #define STATIC_PROPSETID_VIDCAP_CROSSBAR                                \
03786         0x6a2e0640L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
03787 DEFINE_GUIDSTRUCT("6a2e0640-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_CROSSBAR);
03788 #define PROPSETID_VIDCAP_CROSSBAR DEFINE_GUIDNAMED(PROPSETID_VIDCAP_CROSSBAR)
03789 
03790 typedef enum {
03791   KSPROPERTY_CROSSBAR_CAPS,
03792   KSPROPERTY_CROSSBAR_PININFO,
03793   KSPROPERTY_CROSSBAR_CAN_ROUTE,
03794   KSPROPERTY_CROSSBAR_ROUTE
03795 } KSPROPERTY_VIDCAP_CROSSBAR;
03796 
03797 typedef struct {
03798   KSPROPERTY Property;
03799   ULONG NumberOfInputs;
03800   ULONG NumberOfOutputs;
03801 } KSPROPERTY_CROSSBAR_CAPS_S,*PKSPROPERTY_CROSSBAR_CAPS_S;
03802 
03803 typedef struct {
03804   KSPROPERTY Property;
03805   KSPIN_DATAFLOW Direction;
03806   ULONG Index;
03807   ULONG PinType;
03808   ULONG RelatedPinIndex;
03809   KSPIN_MEDIUM Medium;
03810 } KSPROPERTY_CROSSBAR_PININFO_S,*PKSPROPERTY_CROSSBAR_PININFO_S;
03811 
03812 typedef struct {
03813   KSPROPERTY Property;
03814   ULONG IndexInputPin;
03815   ULONG IndexOutputPin;
03816   ULONG CanRoute;
03817 } KSPROPERTY_CROSSBAR_ROUTE_S,*PKSPROPERTY_CROSSBAR_ROUTE_S;
03818 
03819 #define STATIC_EVENTSETID_CROSSBAR                                      \
03820         0x6a2e0641L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
03821 DEFINE_GUIDSTRUCT("6a2e0641-28e4-11d0-a18c-00a0c9118956",EVENTSETID_CROSSBAR);
03822 #define EVENTSETID_CROSSBAR DEFINE_GUIDNAMED(EVENTSETID_CROSSBAR)
03823 
03824 typedef enum {
03825   KSEVENT_CROSSBAR_CHANGED
03826 } KSEVENT_CROSSBAR;
03827 
03828 typedef enum {
03829   KS_PhysConn_Video_Tuner = 1,
03830   KS_PhysConn_Video_Composite,
03831   KS_PhysConn_Video_SVideo,
03832   KS_PhysConn_Video_RGB,
03833   KS_PhysConn_Video_YRYBY,
03834   KS_PhysConn_Video_SerialDigital,
03835   KS_PhysConn_Video_ParallelDigital,
03836   KS_PhysConn_Video_SCSI,
03837   KS_PhysConn_Video_AUX,
03838   KS_PhysConn_Video_1394,
03839   KS_PhysConn_Video_USB,
03840   KS_PhysConn_Video_VideoDecoder,
03841   KS_PhysConn_Video_VideoEncoder,
03842   KS_PhysConn_Video_SCART,
03843   KS_PhysConn_Audio_Tuner = 4096,
03844   KS_PhysConn_Audio_Line,
03845   KS_PhysConn_Audio_Mic,
03846   KS_PhysConn_Audio_AESDigital,
03847   KS_PhysConn_Audio_SPDIFDigital,
03848   KS_PhysConn_Audio_SCSI,
03849   KS_PhysConn_Audio_AUX,
03850   KS_PhysConn_Audio_1394,
03851   KS_PhysConn_Audio_USB,
03852   KS_PhysConn_Audio_AudioDecoder
03853 } KS_PhysicalConnectorType;
03854 
03855 #define STATIC_PROPSETID_VIDCAP_TVAUDIO                                 \
03856         0x6a2e0650L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
03857 DEFINE_GUIDSTRUCT("6a2e0650-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_TVAUDIO);
03858 #define PROPSETID_VIDCAP_TVAUDIO DEFINE_GUIDNAMED(PROPSETID_VIDCAP_TVAUDIO)
03859 
03860 typedef enum {
03861   KSPROPERTY_TVAUDIO_CAPS,
03862   KSPROPERTY_TVAUDIO_MODE,
03863   KSPROPERTY_TVAUDIO_CURRENTLY_AVAILABLE_MODES
03864 } KSPROPERTY_VIDCAP_TVAUDIO;
03865 
03866 #define KS_TVAUDIO_MODE_MONO    0x0001
03867 #define KS_TVAUDIO_MODE_STEREO  0x0002
03868 #define KS_TVAUDIO_MODE_LANG_A  0x0010
03869 #define KS_TVAUDIO_MODE_LANG_B  0x0020
03870 #define KS_TVAUDIO_MODE_LANG_C  0x0040
03871 
03872 typedef struct {
03873   KSPROPERTY Property;
03874   ULONG Capabilities;
03875   KSPIN_MEDIUM InputMedium;
03876   KSPIN_MEDIUM OutputMedium;
03877 } KSPROPERTY_TVAUDIO_CAPS_S,*PKSPROPERTY_TVAUDIO_CAPS_S;
03878 
03879 typedef struct {
03880   KSPROPERTY Property;
03881   ULONG Mode;
03882 } KSPROPERTY_TVAUDIO_S,*PKSPROPERTY_TVAUDIO_S;
03883 
03884 #define STATIC_KSEVENTSETID_VIDCAP_TVAUDIO                              \
03885         0x6a2e0651L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
03886 DEFINE_GUIDSTRUCT("6a2e0651-28e4-11d0-a18c-00a0c9118956",KSEVENTSETID_VIDCAP_TVAUDIO);
03887 #define KSEVENTSETID_VIDCAP_TVAUDIO DEFINE_GUIDNAMED(KSEVENTSETID_VIDCAP_TVAUDIO)
03888 
03889 typedef enum {
03890   KSEVENT_TVAUDIO_CHANGED
03891 } KSEVENT_TVAUDIO;
03892 
03893 #define STATIC_PROPSETID_VIDCAP_VIDEOCOMPRESSION                        \
03894         0xC6E13343L,0x30AC,0x11d0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56
03895 DEFINE_GUIDSTRUCT("C6E13343-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEOCOMPRESSION);
03896 #define PROPSETID_VIDCAP_VIDEOCOMPRESSION DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOCOMPRESSION)
03897 
03898 typedef enum {
03899   KSPROPERTY_VIDEOCOMPRESSION_GETINFO,
03900   KSPROPERTY_VIDEOCOMPRESSION_KEYFRAME_RATE,
03901   KSPROPERTY_VIDEOCOMPRESSION_PFRAMES_PER_KEYFRAME,
03902   KSPROPERTY_VIDEOCOMPRESSION_QUALITY,
03903   KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_KEYFRAME,
03904   KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_FRAME_SIZE,
03905   KSPROPERTY_VIDEOCOMPRESSION_WINDOWSIZE
03906 } KSPROPERTY_VIDCAP_VIDEOCOMPRESSION;
03907 
03908 typedef enum {
03909   KS_CompressionCaps_CanQuality = 1,
03910   KS_CompressionCaps_CanCrunch = 2,
03911   KS_CompressionCaps_CanKeyFrame = 4,
03912   KS_CompressionCaps_CanBFrame = 8,
03913   KS_CompressionCaps_CanWindow = 0x10
03914 } KS_CompressionCaps;
03915 
03916 typedef enum {
03917   KS_StreamingHint_FrameInterval = 0x0100,
03918   KS_StreamingHint_KeyFrameRate = 0x0200,
03919   KS_StreamingHint_PFrameRate = 0x0400,
03920   KS_StreamingHint_CompQuality = 0x0800,
03921   KS_StreamingHint_CompWindowSize = 0x1000
03922 } KS_VideoStreamingHints;
03923 
03924 typedef struct {
03925   KSPROPERTY Property;
03926   ULONG StreamIndex;
03927   LONG DefaultKeyFrameRate;
03928   LONG DefaultPFrameRate;
03929   LONG DefaultQuality;
03930   LONG NumberOfQualitySettings;
03931   LONG Capabilities;
03932 } KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S,*PKSPROPERTY_VIDEOCOMPRESSION_GETINFO_S;
03933 
03934 typedef struct {
03935   KSPROPERTY Property;
03936   ULONG StreamIndex;
03937   LONG Value;
03938 } KSPROPERTY_VIDEOCOMPRESSION_S,*PKSPROPERTY_VIDEOCOMPRESSION_S;
03939 
03940 typedef struct {
03941   KSPROPERTY Property;
03942   ULONG StreamIndex;
03943   LONG Value;
03944   ULONG Flags;
03945 } KSPROPERTY_VIDEOCOMPRESSION_S1,*PKSPROPERTY_VIDEOCOMPRESSION_S1;
03946 
03947 #define STATIC_KSDATAFORMAT_SUBTYPE_OVERLAY                             \
03948         0xe436eb7fL,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
03949 DEFINE_GUIDSTRUCT("e436eb7f-524f-11ce-9f53-0020af0ba770",KSDATAFORMAT_SUBTYPE_OVERLAY);
03950 #define KSDATAFORMAT_SUBTYPE_OVERLAY DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_OVERLAY)
03951 
03952 #define STATIC_KSPROPSETID_OverlayUpdate                                \
03953         0x490EA5CFL,0x7681,0x11D1,0xA2,0x1C,0x00,0xA0,0xC9,0x22,0x31,0x96
03954 DEFINE_GUIDSTRUCT("490EA5CF-7681-11D1-A21C-00A0C9223196",KSPROPSETID_OverlayUpdate);
03955 #define KSPROPSETID_OverlayUpdate DEFINE_GUIDNAMED(KSPROPSETID_OverlayUpdate)
03956 
03957 typedef enum {
03958   KSPROPERTY_OVERLAYUPDATE_INTERESTS,
03959   KSPROPERTY_OVERLAYUPDATE_CLIPLIST = 0x1,
03960   KSPROPERTY_OVERLAYUPDATE_PALETTE = 0x2,
03961   KSPROPERTY_OVERLAYUPDATE_COLORKEY = 0x4,
03962   KSPROPERTY_OVERLAYUPDATE_VIDEOPOSITION = 0x8,
03963   KSPROPERTY_OVERLAYUPDATE_DISPLAYCHANGE = 0x10,
03964   KSPROPERTY_OVERLAYUPDATE_COLORREF = 0x10000000
03965 } KSPROPERTY_OVERLAYUPDATE;
03966 
03967 typedef struct {
03968   ULONG PelsWidth;
03969   ULONG PelsHeight;
03970   ULONG BitsPerPel;
03971   WCHAR DeviceID[1];
03972 } KSDISPLAYCHANGE,*PKSDISPLAYCHANGE;
03973 
03974 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_INTERESTS(Handler)         \
03975         DEFINE_KSPROPERTY_ITEM(                                         \
03976                                 KSPROPERTY_OVERLAYUPDATE_INTERESTS,     \
03977                                 (Handler),                              \
03978                                 sizeof(KSPROPERTY),                     \
03979                                 sizeof(ULONG),                          \
03980                                 NULL, NULL, 0, NULL, NULL, 0)
03981 
03982 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_PALETTE(Handler)           \
03983         DEFINE_KSPROPERTY_ITEM(                                         \
03984                                 KSPROPERTY_OVERLAYUPDATE_PALETTE,       \
03985                                 NULL,                                   \
03986                                 sizeof(KSPROPERTY),                     \
03987                                 0,                                      \
03988                                 (Handler),                              \
03989                                 NULL, 0, NULL, NULL, 0)
03990 
03991 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_COLORKEY(Handler)          \
03992         DEFINE_KSPROPERTY_ITEM(                                         \
03993                                 KSPROPERTY_OVERLAYUPDATE_COLORKEY,      \
03994                                 NULL,                                   \
03995                                 sizeof(KSPROPERTY),                     \
03996                                 sizeof(COLORKEY),                       \
03997                                 (Handler),                              \
03998                                 NULL, 0, NULL, NULL, 0)
03999 
04000 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_CLIPLIST(Handler)          \
04001         DEFINE_KSPROPERTY_ITEM(                                         \
04002                                 KSPROPERTY_OVERLAYUPDATE_CLIPLIST,      \
04003                                 NULL,                                   \
04004                                 sizeof(KSPROPERTY),                     \
04005                                 2 *sizeof(RECT) + sizeof(RGNDATAHEADER),\
04006                                 (Handler),                              \
04007                                 NULL, 0, NULL, NULL, 0)
04008 
04009 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_VIDEOPOSITION(Handler)     \
04010         DEFINE_KSPROPERTY_ITEM(                                         \
04011                                 KSPROPERTY_OVERLAYUPDATE_VIDEOPOSITION, \
04012                                 NULL,                                   \
04013                                 sizeof(KSPROPERTY),                     \
04014                                 2 *sizeof(RECT),                        \
04015                                 (Handler),                              \
04016                                 NULL, 0, NULL, NULL, 0)
04017 
04018 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_DISPLAYCHANGE(Handler)     \
04019         DEFINE_KSPROPERTY_ITEM(                                         \
04020                                 KSPROPERTY_OVERLAYUPDATE_DISPLAYCHANGE, \
04021                                 NULL,                                   \
04022                                 sizeof(KSPROPERTY),                     \
04023                                 sizeof(KSDISPLAYCHANGE),                \
04024                                 (Handler),                              \
04025                                 NULL, 0, NULL, NULL, 0)
04026 
04027 #define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_COLORREF(Handler)          \
04028         DEFINE_KSPROPERTY_ITEM(                                         \
04029                                 KSPROPERTY_OVERLAYUPDATE_COLORREF,      \
04030                                 (Handler),                              \
04031                                 sizeof(KSPROPERTY),                     \
04032                                 sizeof(COLORREF),                       \
04033                                 NULL,                                   \
04034                                 NULL, 0, NULL, NULL, 0)
04035 
04036 #define STATIC_PROPSETID_VIDCAP_VIDEOCONTROL                            \
04037         0x6a2e0670L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
04038 DEFINE_GUIDSTRUCT("6a2e0670-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_VIDEOCONTROL);
04039 #define PROPSETID_VIDCAP_VIDEOCONTROL DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOCONTROL)
04040 
04041 typedef enum {
04042   KSPROPERTY_VIDEOCONTROL_CAPS,
04043   KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE,
04044   KSPROPERTY_VIDEOCONTROL_FRAME_RATES,
04045   KSPROPERTY_VIDEOCONTROL_MODE
04046 } KSPROPERTY_VIDCAP_VIDEOCONTROL;
04047 
04048 typedef enum {
04049   KS_VideoControlFlag_FlipHorizontal = 0x0001,
04050   KS_VideoControlFlag_FlipVertical = 0x0002,
04051   KS_Obsolete_VideoControlFlag_ExternalTriggerEnable = 0x0010,
04052   KS_Obsolete_VideoControlFlag_Trigger = 0x0020,
04053   KS_VideoControlFlag_ExternalTriggerEnable = 0x0004,
04054   KS_VideoControlFlag_Trigger = 0x0008
04055 } KS_VideoControlFlags;
04056 
04057 typedef struct {
04058   KSPROPERTY Property;
04059   ULONG StreamIndex;
04060   ULONG VideoControlCaps;
04061 } KSPROPERTY_VIDEOCONTROL_CAPS_S,*PKSPROPERTY_VIDEOCONTROL_CAPS_S;
04062 
04063 typedef struct {
04064   KSPROPERTY Property;
04065   ULONG StreamIndex;
04066   LONG Mode;
04067 } KSPROPERTY_VIDEOCONTROL_MODE_S,*PKSPROPERTY_VIDEOCONTROL_MODE_S;
04068 
04069 typedef struct {
04070   KSPROPERTY Property;
04071   ULONG StreamIndex;
04072   ULONG RangeIndex;
04073   SIZE Dimensions;
04074   LONGLONG CurrentActualFrameRate;
04075   LONGLONG CurrentMaxAvailableFrameRate;
04076 } KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S,*PKSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S;
04077 
04078 typedef struct {
04079   KSPROPERTY Property;
04080   ULONG StreamIndex;
04081   ULONG RangeIndex;
04082   SIZE Dimensions;
04083 } KSPROPERTY_VIDEOCONTROL_FRAME_RATES_S,*PKSPROPERTY_VIDEOCONTROL_FRAME_RATES_S;
04084 
04085 #define STATIC_PROPSETID_VIDCAP_DROPPEDFRAMES                           \
04086         0xC6E13344L,0x30AC,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
04087 DEFINE_GUIDSTRUCT("C6E13344-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_DROPPEDFRAMES);
04088 #define PROPSETID_VIDCAP_DROPPEDFRAMES DEFINE_GUIDNAMED(PROPSETID_VIDCAP_DROPPEDFRAMES)
04089 
04090 typedef enum {
04091   KSPROPERTY_DROPPEDFRAMES_CURRENT
04092 } KSPROPERTY_VIDCAP_DROPPEDFRAMES;
04093 
04094 typedef struct {
04095   KSPROPERTY Property;
04096   LONGLONG PictureNumber;
04097   LONGLONG DropCount;
04098   ULONG AverageFrameSize;
04099 } KSPROPERTY_DROPPEDFRAMES_CURRENT_S,*PKSPROPERTY_DROPPEDFRAMES_CURRENT_S;
04100 
04101 #define STATIC_KSPROPSETID_VPConfig                                     \
04102         0xbc29a660L,0x30e3,0x11d0,0x9e,0x69,0x00,0xc0,0x4f,0xd7,0xc1,0x5b
04103 DEFINE_GUIDSTRUCT("bc29a660-30e3-11d0-9e69-00c04fd7c15b",KSPROPSETID_VPConfig);
04104 #define KSPROPSETID_VPConfig DEFINE_GUIDNAMED(KSPROPSETID_VPConfig)
04105 
04106 #define STATIC_KSPROPSETID_VPVBIConfig                                  \
04107         0xec529b00L,0x1a1f,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a
04108 DEFINE_GUIDSTRUCT("ec529b00-1a1f-11d1-bad9-00609744111a",KSPROPSETID_VPVBIConfig);
04109 #define KSPROPSETID_VPVBIConfig DEFINE_GUIDNAMED(KSPROPSETID_VPVBIConfig)
04110 
04111 typedef enum {
04112   KSPROPERTY_VPCONFIG_NUMCONNECTINFO,
04113   KSPROPERTY_VPCONFIG_GETCONNECTINFO,
04114   KSPROPERTY_VPCONFIG_SETCONNECTINFO,
04115   KSPROPERTY_VPCONFIG_VPDATAINFO,
04116   KSPROPERTY_VPCONFIG_MAXPIXELRATE,
04117   KSPROPERTY_VPCONFIG_INFORMVPINPUT,
04118   KSPROPERTY_VPCONFIG_NUMVIDEOFORMAT,
04119   KSPROPERTY_VPCONFIG_GETVIDEOFORMAT,
04120   KSPROPERTY_VPCONFIG_SETVIDEOFORMAT,
04121   KSPROPERTY_VPCONFIG_INVERTPOLARITY,
04122   KSPROPERTY_VPCONFIG_DECIMATIONCAPABILITY,
04123   KSPROPERTY_VPCONFIG_SCALEFACTOR,
04124   KSPROPERTY_VPCONFIG_DDRAWHANDLE,
04125   KSPROPERTY_VPCONFIG_VIDEOPORTID,
04126   KSPROPERTY_VPCONFIG_DDRAWSURFACEHANDLE,
04127   KSPROPERTY_VPCONFIG_SURFACEPARAMS
04128 } KSPROPERTY_VPCONFIG;
04129 
04130 #define STATIC_CLSID_KsIBasicAudioInterfaceHandler                      \
04131         0xb9f8ac3e,0x0f71,0x11d2,0xb7,0x2c,0x00,0xc0,0x4f,0xb6,0xbd,0x3d
04132 DEFINE_GUIDSTRUCT("b9f8ac3e-0f71-11d2-b72c-00c04fb6bd3d",CLSID_KsIBasicAudioInterfaceHandler);
04133 #define CLSID_KsIBasicAudioInterfaceHandler DEFINE_GUIDNAMED(CLSID_KsIBasicAudioInterfaceHandler)
04134 
04135 #ifdef __IVPType__
04136 typedef struct {
04137   AMVPSIZE Size;
04138   DWORD MaxPixelsPerSecond;
04139   DWORD Reserved;
04140 } KSVPMAXPIXELRATE,*PKSVPMAXPIXELRATE;
04141 
04142 typedef struct {
04143   KSPROPERTY Property;
04144   AMVPSIZE Size;
04145 } KSVPSIZE_PROP,*PKSVPSIZE_PROP;
04146 
04147 typedef struct {
04148   DWORD dwPitch;
04149   DWORD dwXOrigin;
04150   DWORD dwYOrigin;
04151 } KSVPSURFACEPARAMS,*PKSVPSURFACEPARAMS;
04152 #else /* __IVPType__ */
04153 
04154 #ifndef __DDRAW_INCLUDED__
04155 #define DDPF_FOURCC 0x00000004l
04156 
04157 typedef struct _DDPIXELFORMAT
04158 {
04159   DWORD dwSize;
04160   DWORD dwFlags;
04161   DWORD dwFourCC;
04162   __MINGW_EXTENSION union
04163   {
04164     DWORD dwRGBBitCount;
04165     DWORD dwYUVBitCount;
04166     DWORD dwZBufferBitDepth;
04167     DWORD dwAlphaBitDepth;
04168   };
04169   __MINGW_EXTENSION union
04170   {
04171     DWORD dwRBitMask;
04172     DWORD dwYBitMask;
04173   };
04174   __MINGW_EXTENSION union
04175   {
04176     DWORD dwGBitMask;
04177     DWORD dwUBitMask;
04178   };
04179   __MINGW_EXTENSION union
04180   {
04181     DWORD dwBBitMask;
04182     DWORD dwVBitMask;
04183   };
04184   __MINGW_EXTENSION union
04185   {
04186     DWORD dwRGBAlphaBitMask;
04187     DWORD dwYUVAlphaBitMask;
04188     DWORD dwRGBZBitMask;
04189     DWORD dwYUVZBitMask;
04190   };
04191 } DDPIXELFORMAT,*LPDDPIXELFORMAT;
04192 #endif /* __DDRAW_INCLUDED__ */
04193 
04194 #ifndef __DVP_INCLUDED__
04195 typedef struct _DDVIDEOPORTCONNECT {
04196   DWORD dwSize;
04197   DWORD dwPortWidth;
04198   GUID guidTypeID;
04199   DWORD dwFlags;
04200   ULONG_PTR dwReserved1;
04201 } DDVIDEOPORTCONNECT,*LPDDVIDEOPORTCONNECT;
04202 
04203 #define DDVPTYPE_E_HREFH_VREFH                                          \
04204         0x54F39980L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8
04205 
04206 #define DDVPTYPE_E_HREFL_VREFL                                          \
04207         0xE09C77E0L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8
04208 #endif /* __DVP_INCLUDED__ */
04209 
04210 typedef enum
04211 {
04212   KS_PixAspectRatio_NTSC4x3,
04213   KS_PixAspectRatio_NTSC16x9,
04214   KS_PixAspectRatio_PAL4x3,
04215   KS_PixAspectRatio_PAL16x9
04216 } KS_AMPixAspectRatio;
04217 
04218 typedef enum
04219 {
04220   KS_AMVP_DO_NOT_CARE,
04221   KS_AMVP_BEST_BANDWIDTH,
04222   KS_AMVP_INPUT_SAME_AS_OUTPUT
04223 } KS_AMVP_SELECTFORMATBY;
04224 
04225 typedef enum
04226 {
04227   KS_AMVP_MODE_WEAVE,
04228   KS_AMVP_MODE_BOBINTERLEAVED,
04229   KS_AMVP_MODE_BOBNONINTERLEAVED,
04230   KS_AMVP_MODE_SKIPEVEN,
04231   KS_AMVP_MODE_SKIPODD
04232 } KS_AMVP_MODE;
04233 
04234 typedef struct tagKS_AMVPDIMINFO
04235 {
04236   DWORD dwFieldWidth;
04237   DWORD dwFieldHeight;
04238   DWORD dwVBIWidth;
04239   DWORD dwVBIHeight;
04240   RECT rcValidRegion;
04241 } KS_AMVPDIMINFO,*PKS_AMVPDIMINFO;
04242 
04243 typedef struct tagKS_AMVPDATAINFO
04244 {
04245   DWORD dwSize;
04246   DWORD dwMicrosecondsPerField;
04247   KS_AMVPDIMINFO amvpDimInfo;
04248   DWORD dwPictAspectRatioX;
04249   DWORD dwPictAspectRatioY;
04250   WINBOOL bEnableDoubleClock;
04251   WINBOOL bEnableVACT;
04252   WINBOOL bDataIsInterlaced;
04253   LONG lHalfLinesOdd;
04254   WINBOOL bFieldPolarityInverted;
04255   DWORD dwNumLinesInVREF;
04256   LONG lHalfLinesEven;
04257   DWORD dwReserved1;
04258 } KS_AMVPDATAINFO,*PKS_AMVPDATAINFO;
04259 
04260 typedef struct tagKS_AMVPSIZE
04261 {
04262   DWORD dwWidth;
04263   DWORD dwHeight;
04264 } KS_AMVPSIZE,*PKS_AMVPSIZE;
04265 
04266 typedef struct {
04267   KS_AMVPSIZE Size;
04268   DWORD MaxPixelsPerSecond;
04269   DWORD Reserved;
04270 } KSVPMAXPIXELRATE,*PKSVPMAXPIXELRATE;
04271 
04272 typedef struct {
04273   KSPROPERTY Property;
04274   KS_AMVPSIZE Size;
04275 } KSVPSIZE_PROP,*PKSVPSIZE_PROP;
04276 
04277 typedef struct {
04278   DWORD dwPitch;
04279   DWORD dwXOrigin;
04280   DWORD dwYOrigin;
04281 } KSVPSURFACEPARAMS,*PKSVPSURFACEPARAMS;
04282 #endif /* __IVPType__ */
04283 
04284 #define STATIC_KSEVENTSETID_VPNotify                                    \
04285         0x20c5598eL,0xd3c8,0x11d0,0x8d,0xfc,0x00,0xc0,0x4f,0xd7,0xc0,0x8b
04286 DEFINE_GUIDSTRUCT("20c5598e-d3c8-11d0-8dfc-00c04fd7c08b",KSEVENTSETID_VPNotify);
04287 #define KSEVENTSETID_VPNotify DEFINE_GUIDNAMED(KSEVENTSETID_VPNotify)
04288 
04289 typedef enum {
04290   KSEVENT_VPNOTIFY_FORMATCHANGE
04291 } KSEVENT_VPNOTIFY;
04292 
04293 #define STATIC_KSEVENTSETID_VIDCAPTOSTI                                 \
04294         0xdb47de20,0xf628,0x11d1,0xba,0x41,0x0,0xa0,0xc9,0xd,0x2b,0x5
04295 DEFINE_GUIDSTRUCT("DB47DE20-F628-11d1-BA41-00A0C90D2B05",KSEVENTSETID_VIDCAPTOSTI);
04296 #define KSEVENTSETID_VIDCAPNotify DEFINE_GUIDNAMED(KSEVENTSETID_VIDCAPTOSTI)
04297 
04298 typedef enum {
04299   KSEVENT_VIDCAPTOSTI_EXT_TRIGGER,
04300   KSEVENT_VIDCAP_AUTO_UPDATE,
04301   KSEVENT_VIDCAP_SEARCH
04302 } KSEVENT_VIDCAPTOSTI;
04303 
04304 typedef enum {
04305   KSPROPERTY_EXTENSION_UNIT_INFO,
04306   KSPROPERTY_EXTENSION_UNIT_CONTROL,
04307   KSPROPERTY_EXTENSION_UNIT_PASS_THROUGH = 0xffff
04308 } KSPROPERTY_EXTENSION_UNIT,*PKSPROPERTY_EXTENSION_UNIT;
04309 
04310 #define STATIC_KSEVENTSETID_VPVBINotify                                 \
04311         0xec529b01L,0x1a1f,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a
04312 DEFINE_GUIDSTRUCT("ec529b01-1a1f-11d1-bad9-00609744111a",KSEVENTSETID_VPVBINotify);
04313 #define KSEVENTSETID_VPVBINotify DEFINE_GUIDNAMED(KSEVENTSETID_VPVBINotify)
04314 
04315 typedef enum {
04316   KSEVENT_VPVBINOTIFY_FORMATCHANGE
04317 } KSEVENT_VPVBINOTIFY;
04318 
04319 #define STATIC_KSDATAFORMAT_TYPE_AUXLine21Data                          \
04320         0x670aea80L,0x3a82,0x11d0,0xb7,0x9b,0x00,0xaa,0x00,0x37,0x67,0xa7
04321 DEFINE_GUIDSTRUCT("670aea80-3a82-11d0-b79b-00aa003767a7",KSDATAFORMAT_TYPE_AUXLine21Data);
04322 #define KSDATAFORMAT_TYPE_AUXLine21Data DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUXLine21Data)
04323 
04324 #define STATIC_KSDATAFORMAT_SUBTYPE_Line21_BytePair                     \
04325         0x6e8d4a22L,0x310c,0x11d0,0xb7,0x9a,0x00,0xaa,0x00,0x37,0x67,0xa7
04326 DEFINE_GUIDSTRUCT("6e8d4a22-310c-11d0-b79a-00aa003767a7",KSDATAFORMAT_SUBTYPE_Line21_BytePair);
04327 #define KSDATAFORMAT_SUBTYPE_Line21_BytePair DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_Line21_BytePair)
04328 
04329 #define STATIC_KSDATAFORMAT_SUBTYPE_Line21_GOPPacket                    \
04330         0x6e8d4a23L,0x310c,0x11d0,0xb7,0x9a,0x00,0xaa,0x00,0x37,0x67,0xa7
04331 DEFINE_GUIDSTRUCT("6e8d4a23-310c-11d0-b79a-00aa003767a7",KSDATAFORMAT_SUBTYPE_Line21_GOPPacket);
04332 #define KSDATAFORMAT_SUBTYPE_Line21_GOPPacket DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_Line21_GOPPacket)
04333 
04334 typedef struct _KSGOP_USERDATA {
04335   ULONG sc;
04336   ULONG reserved1;
04337   BYTE cFields;
04338   CHAR l21Data[3];
04339 } KSGOP_USERDATA,*PKSGOP_USERDATA;
04340 
04341 #define STATIC_KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK                     \
04342         0xed0b916a,0x044d,0x11d1,0xaa,0x78,0x00,0xc0,0x4f,0xc3,0x1d,0x60
04343 DEFINE_GUIDSTRUCT("ed0b916a-044d-11d1-aa78-00c04fc31d60",KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK);
04344 #define KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK)
04345 
04346 #define KS_AM_UseNewCSSKey                      0x1
04347 
04348 #define STATIC_KSPROPSETID_TSRateChange                                 \
04349         0xa503c5c0,0x1d1d,0x11d1,0xad,0x80,0x44,0x45,0x53,0x54,0x0,0x0
04350 DEFINE_GUIDSTRUCT("A503C5C0-1D1D-11D1-AD80-444553540000",KSPROPSETID_TSRateChange);
04351 #define KSPROPSETID_TSRateChange DEFINE_GUIDNAMED(KSPROPSETID_TSRateChange)
04352 
04353 typedef enum {
04354   KS_AM_RATE_SimpleRateChange = 1,
04355   KS_AM_RATE_ExactRateChange = 2,
04356   KS_AM_RATE_MaxFullDataRate = 3,
04357   KS_AM_RATE_Step = 4
04358 } KS_AM_PROPERTY_TS_RATE_CHANGE;
04359 
04360 typedef struct {
04361   REFERENCE_TIME StartTime;
04362   LONG Rate;
04363 } KS_AM_SimpleRateChange,*PKS_AM_SimpleRateChange;
04364 
04365 typedef struct {
04366   REFERENCE_TIME OutputZeroTime;
04367   LONG Rate;
04368 } KS_AM_ExactRateChange,*PKS_AM_ExactRateChange;
04369 
04370 typedef LONG KS_AM_MaxFullDataRate;
04371 typedef DWORD KS_AM_Step;
04372 
04373 #define STATIC_KSCATEGORY_ENCODER                                       \
04374         0x19689bf6,0xc384,0x48fd,0xad,0x51,0x90,0xe5,0x8c,0x79,0xf7,0xb
04375 DEFINE_GUIDSTRUCT("19689BF6-C384-48fd-AD51-90E58C79F70B",KSCATEGORY_ENCODER);
04376 #define KSCATEGORY_ENCODER DEFINE_GUIDNAMED(KSCATEGORY_ENCODER)
04377 
04378 #define STATIC_KSCATEGORY_MULTIPLEXER                                   \
04379         0x7a5de1d3,0x1a1,0x452c,0xb4,0x81,0x4f,0xa2,0xb9,0x62,0x71,0xe8
04380 DEFINE_GUIDSTRUCT("7A5DE1D3-01A1-452c-B481-4FA2B96271E8",KSCATEGORY_MULTIPLEXER);
04381 #define KSCATEGORY_MULTIPLEXER DEFINE_GUIDNAMED(KSCATEGORY_MULTIPLEXER)
04382 
04383 #ifndef __ENCODER_API_GUIDS__
04384 #define __ENCODER_API_GUIDS__
04385 
04386 #define STATIC_ENCAPIPARAM_BITRATE                                      \
04387         0x49cc4c43,0xca83,0x4ad4,0xa9,0xaf,0xf3,0x69,0x6a,0xf6,0x66,0xdf
04388 DEFINE_GUIDSTRUCT("49CC4C43-CA83-4ad4-A9AF-F3696AF666DF",ENCAPIPARAM_BITRATE);
04389 #define ENCAPIPARAM_BITRATE DEFINE_GUIDNAMED(ENCAPIPARAM_BITRATE)
04390 
04391 #define STATIC_ENCAPIPARAM_PEAK_BITRATE                                 \
04392         0x703f16a9,0x3d48,0x44a1,0xb0,0x77,0x1,0x8d,0xff,0x91,0x5d,0x19
04393 DEFINE_GUIDSTRUCT("703F16A9-3D48-44a1-B077-018DFF915D19",ENCAPIPARAM_PEAK_BITRATE);
04394 #define ENCAPIPARAM_PEAK_BITRATE DEFINE_GUIDNAMED(ENCAPIPARAM_PEAK_BITRATE)
04395 
04396 #define STATIC_ENCAPIPARAM_BITRATE_MODE                                 \
04397         0xee5fb25c,0xc713,0x40d1,0x9d,0x58,0xc0,0xd7,0x24,0x1e,0x25,0xf
04398 DEFINE_GUIDSTRUCT("EE5FB25C-C713-40d1-9D58-C0D7241E250F",ENCAPIPARAM_BITRATE_MODE);
04399 #define ENCAPIPARAM_BITRATE_MODE DEFINE_GUIDNAMED(ENCAPIPARAM_BITRATE_MODE)
04400 
04401 #define STATIC_CODECAPI_CHANGELISTS                                     \
04402         0x62b12acf,0xf6b0,0x47d9,0x94,0x56,0x96,0xf2,0x2c,0x4e,0x0b,0x9d
04403 DEFINE_GUIDSTRUCT("62B12ACF-F6B0-47D9-9456-96F22C4E0B9D",CODECAPI_CHANGELISTS);
04404 #define CODECAPI_CHANGELISTS DEFINE_GUIDNAMED(CODECAPI_CHANGELISTS)
04405 
04406 #define STATIC_CODECAPI_VIDEO_ENCODER                                   \
04407         0x7112e8e1,0x3d03,0x47ef,0x8e,0x60,0x03,0xf1,0xcf,0x53,0x73,0x01
04408 DEFINE_GUIDSTRUCT("7112E8E1-3D03-47EF-8E60-03F1CF537301",CODECAPI_VIDEO_ENCODER);
04409 #define CODECAPI_VIDEO_ENCODER DEFINE_GUIDNAMED(CODECAPI_VIDEO_ENCODER)
04410 
04411 #define STATIC_CODECAPI_AUDIO_ENCODER                                   \
04412         0xb9d19a3e,0xf897,0x429c,0xbc,0x46,0x81,0x38,0xb7,0x27,0x2b,0x2d
04413 DEFINE_GUIDSTRUCT("B9D19A3E-F897-429C-BC46-8138B7272B2D",CODECAPI_AUDIO_ENCODER);
04414 #define CODECAPI_AUDIO_ENCODER DEFINE_GUIDNAMED(CODECAPI_AUDIO_ENCODER)
04415 
04416 #define STATIC_CODECAPI_SETALLDEFAULTS                                  \
04417         0x6c5e6a7c,0xacf8,0x4f55,0xa9,0x99,0x1a,0x62,0x81,0x09,0x05,0x1b
04418 DEFINE_GUIDSTRUCT("6C5E6A7C-ACF8-4F55-A999-1A628109051B",CODECAPI_SETALLDEFAULTS);
04419 #define CODECAPI_SETALLDEFAULTS DEFINE_GUIDNAMED(CODECAPI_SETALLDEFAULTS)
04420 
04421 #define STATIC_CODECAPI_ALLSETTINGS                                     \
04422         0x6a577e92,0x83e1,0x4113,0xad,0xc2,0x4f,0xce,0xc3,0x2f,0x83,0xa1
04423 DEFINE_GUIDSTRUCT("6A577E92-83E1-4113-ADC2-4FCEC32F83A1",CODECAPI_ALLSETTINGS);
04424 #define CODECAPI_ALLSETTINGS DEFINE_GUIDNAMED(CODECAPI_ALLSETTINGS)
04425 
04426 #define STATIC_CODECAPI_SUPPORTSEVENTS                                  \
04427         0x0581af97,0x7693,0x4dbd,0x9d,0xca,0x3f,0x9e,0xbd,0x65,0x85,0xa1
04428 DEFINE_GUIDSTRUCT("0581AF97-7693-4DBD-9DCA-3F9EBD6585A1",CODECAPI_SUPPORTSEVENTS);
04429 #define CODECAPI_SUPPORTSEVENTS DEFINE_GUIDNAMED(CODECAPI_SUPPORTSEVENTS)
04430 
04431 #define STATIC_CODECAPI_CURRENTCHANGELIST                               \
04432         0x1cb14e83,0x7d72,0x4657,0x83,0xfd,0x47,0xa2,0xc5,0xb9,0xd1,0x3d
04433 DEFINE_GUIDSTRUCT("1CB14E83-7D72-4657-83FD-47A2C5B9D13D",CODECAPI_CURRENTCHANGELIST);
04434 #define CODECAPI_CURRENTCHANGELIST DEFINE_GUIDNAMED(CODECAPI_CURRENTCHANGELIST)
04435 #endif /* __ENCODER_API_GUIDS__ */
04436 
04437 #ifndef __ENCODER_API_DEFINES__
04438 #define __ENCODER_API_DEFINES__
04439 typedef enum {
04440   ConstantBitRate = 0,
04441   VariableBitRateAverage,
04442   VariableBitRatePeak
04443 } VIDEOENCODER_BITRATE_MODE;
04444 #endif /* __ENCODER_API_DEFINES__ */
04445 
04446 #define STATIC_KSPROPSETID_Jack\
04447     0x4509f757, 0x2d46, 0x4637, 0x8e, 0x62, 0xce, 0x7d, 0xb9, 0x44, 0xf5, 0x7b
04448 DEFINE_GUIDSTRUCT("4509F757-2D46-4637-8E62-CE7DB944F57B", KSPROPSETID_Jack);
04449 #define KSPROPSETID_Jack DEFINE_GUIDNAMED(KSPROPSETID_Jack)
04450 
04451 typedef enum {
04452     KSPROPERTY_JACK_DESCRIPTION = 1,
04453     KSPROPERTY_JACK_DESCRIPTION2,
04454     KSPROPERTY_JACK_SINK_INFO
04455 } KSPROPERTY_JACK;
04456 
04457 typedef enum
04458 {
04459     eConnTypeUnknown,
04460     eConnType3Point5mm,
04461     eConnTypeQuarter,
04462     eConnTypeAtapiInternal,
04463     eConnTypeRCA,
04464     eConnTypeOptical,
04465     eConnTypeOtherDigital,
04466     eConnTypeOtherAnalog,
04467     eConnTypeMultichannelAnalogDIN,
04468     eConnTypeXlrProfessional,
04469     eConnTypeRJ11Modem,
04470     eConnTypeCombination
04471 } EPcxConnectionType;
04472 
04473 typedef enum
04474 {
04475     eGeoLocRear = 0x1,
04476     eGeoLocFront,
04477     eGeoLocLeft,
04478     eGeoLocRight,
04479     eGeoLocTop,
04480     eGeoLocBottom,
04481     eGeoLocRearPanel,
04482     eGeoLocRiser,
04483     eGeoLocInsideMobileLid,
04484     eGeoLocDrivebay,
04485     eGeoLocHDMI,
04486     eGeoLocOutsideMobileLid,
04487     eGeoLocATAPI,
04488     eGeoLocReserved5,
04489     eGeoLocReserved6,
04490     EPcxGeoLocation_enum_count
04491 } EPcxGeoLocation;
04492 
04493 typedef enum
04494 {
04495     eGenLocPrimaryBox = 0,
04496     eGenLocInternal,
04497     eGenLocSeparate,
04498     eGenLocOther,
04499     EPcxGenLocation_enum_count
04500 } EPcxGenLocation;
04501 
04502 typedef enum
04503 {
04504     ePortConnJack = 0,
04505     ePortConnIntegratedDevice,
04506     ePortConnBothIntegratedAndJack,
04507     ePortConnUnknown
04508 } EPxcPortConnection;
04509 
04510 typedef struct 
04511 {
04512     DWORD                 ChannelMapping;
04513     COLORREF              Color;
04514     EPcxConnectionType    ConnectionType;
04515     EPcxGeoLocation       GeoLocation;
04516     EPcxGenLocation       GenLocation;
04517     EPxcPortConnection    PortConnection;
04518     BOOL                  IsConnected;
04519 } KSJACK_DESCRIPTION, *PKSJACK_DESCRIPTION;
04520 
04521 typedef enum 
04522 {
04523     KSJACK_SINK_CONNECTIONTYPE_HDMI = 0,           
04524     KSJACK_SINK_CONNECTIONTYPE_DISPLAYPORT,         
04525 } KSJACK_SINK_CONNECTIONTYPE;
04526 
04527 #define MAX_SINK_DESCRIPTION_NAME_LENGTH 32
04528 typedef struct _tagKSJACK_SINK_INFORMATION
04529 {
04530   KSJACK_SINK_CONNECTIONTYPE ConnType;              
04531   WORD  ManufacturerId;                            
04532   WORD  ProductId;                                  
04533   WORD  AudioLatency;                               
04534   BOOL  HDCPCapable;                                
04535   BOOL  AICapable;                                  
04536   UCHAR SinkDescriptionLength;                      
04537   WCHAR SinkDescription[MAX_SINK_DESCRIPTION_NAME_LENGTH];
04538   LUID  PortId;                                 
04539 }  KSJACK_SINK_INFORMATION, *PKSJACK_SINK_INFORMATION;
04540 
04541 #define JACKDESC2_PRESENCE_DETECT_CAPABILITY       0x00000001 
04542 #define JACKDESC2_DYNAMIC_FORMAT_CHANGE_CAPABILITY 0x00000002
04543 
04544 typedef struct _tagKSJACK_DESCRIPTION2
04545 {
04546   DWORD              DeviceStateInfo;
04547   DWORD              JackCapabilities;
04548 } KSJACK_DESCRIPTION2, *PKSJACK_DESCRIPTION2;
04549 
04550 #endif /* _KSMEDIA_ */
04551