rtmidi 0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -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
+