rtmidi 0.1

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