To check out this repository please hg clone the following URL, or open the URL using EasyMercurial or your preferred Mercurial client.

The primary repository for this project is hosted at https://github.com/sonic-visualiser/sv-dependency-builds .
This repository is a read-only copy which is updated automatically every hour.

Statistics Download as Zip
| Branch: | Tag: | Revision:

root / src / portaudio_20161030_catalina_patch / src / hostapi / wasapi / mingw-include / ksmedia.h @ 162:d43aab368df9

History | View | Annotate | Download (169 KB)

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
 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5
 */
6
#if !defined(_KS_)
7
#warning ks.h must be included before ksmedia.h
8
#include "ks.h"
9
#endif
10

    
11
#if __GNUC__ >= 3
12
#pragma GCC system_header
13
#endif
14

    
15
#if !defined(_KSMEDIA_)
16
#define _KSMEDIA_
17

    
18
typedef struct {
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
  KSINTERFACE_MEDIA_MUSIC,
40
  KSINTERFACE_MEDIA_WAVE_BUFFERED,
41
  KSINTERFACE_MEDIA_WAVE_QUEUED
42
} KSINTERFACE_MEDIA;
43

    
44
#ifndef INIT_USBAUDIO_MID
45
#define INIT_USBAUDIO_MID(guid,id)                                        \
46
{                                                                        \
47
        (guid)->Data1 = 0x4e1cecd2 + (USHORT)(id);                        \
48
        (guid)->Data2 = 0x1679;                                                \
49
        (guid)->Data3 = 0x463b;                                                \
50
        (guid)->Data4[0] = 0xa7;                                        \
51
        (guid)->Data4[1] = 0x2f;                                        \
52
        (guid)->Data4[2] = 0xa5;                                        \
53
        (guid)->Data4[3] = 0xbf;                                        \
54
        (guid)->Data4[4] = 0x64;                                        \
55
        (guid)->Data4[5] = 0xc8;                                        \
56
        (guid)->Data4[6] = 0x6e;                                        \
57
        (guid)->Data4[7] = 0xba;                                        \
58
}
59
#define EXTRACT_USBAUDIO_MID(guid)                                        \
60
        (USHORT)((guid)->Data1 - 0x4e1cecd2)
61
#define DEFINE_USBAUDIO_MID_GUID(id)                                        \
62
        0x4e1cecd2+(USHORT)(id),0x1679,0x463b,0xa7,0x2f,0xa5,0xbf,0x64,0xc8,0x6e,0xba
63
#define IS_COMPATIBLE_USBAUDIO_MID(guid)                                \
64
        (((guid)->Data1 >= 0x4e1cecd2) &&                                \
65
         ((guid)->Data1 < 0x4e1cecd2 + 0xffff) &&                        \
66
         ((guid)->Data2 == 0x1679) &&                                        \
67
         ((guid)->Data3 == 0x463b) &&                                        \
68
         ((guid)->Data4[0] == 0xa7) &&                                        \
69
         ((guid)->Data4[1] == 0x2f) &&                                        \
70
         ((guid)->Data4[2] == 0xa5) &&                                        \
71
         ((guid)->Data4[3] == 0xbf) &&                                        \
72
         ((guid)->Data4[4] == 0x64) &&                                        \
73
         ((guid)->Data4[5] == 0xc8) &&                                        \
74
         ((guid)->Data4[6] == 0x6e) &&                                        \
75
         ((guid)->Data4[7] == 0xba) )
76
#endif /* INIT_USBAUDIO_MID */
77

    
78
#ifndef INIT_USBAUDIO_PID
79
#define INIT_USBAUDIO_PID(guid,id)                                        \
80
{                                                                        \
81
        (guid)->Data1 = 0xabcc5a5e + (USHORT)(id);                        \
82
        (guid)->Data2 = 0xc263;                                                \
83
        (guid)->Data3 = 0x463b;                                                \
84
        (guid)->Data4[0] = 0xa7;                                        \
85
        (guid)->Data4[1] = 0x2f;                                        \
86
        (guid)->Data4[2] = 0xa5;                                        \
87
        (guid)->Data4[3] = 0xbf;                                        \
88
        (guid)->Data4[4] = 0x64;                                        \
89
        (guid)->Data4[5] = 0xc8;                                        \
90
        (guid)->Data4[6] = 0x6e;                                        \
91
        (guid)->Data4[7] = 0xba;                                        \
92
}
93
#define EXTRACT_USBAUDIO_PID(guid)                                        \
94
        (USHORT)((guid)->Data1 - 0xabcc5a5e)
95
#define DEFINE_USBAUDIO_PID_GUID(id)                                        \
96
        0xabcc5a5e+(USHORT)(id),0xc263,0x463b,0xa7,0x2f,0xa5,0xbf,0x64,0xc8,0x6e,0xba
97
#define IS_COMPATIBLE_USBAUDIO_PID(guid)                                \
98
        (((guid)->Data1 >= 0xabcc5a5e) &&                                \
99
         ((guid)->Data1 < 0xabcc5a5e + 0xffff) &&                        \
100
         ((guid)->Data2 == 0xc263) &&                                        \
101
         ((guid)->Data3 == 0x463b) &&                                        \
102
         ((guid)->Data4[0] == 0xa7) &&                                        \
103
         ((guid)->Data4[1] == 0x2f) &&                                        \
104
         ((guid)->Data4[2] == 0xa5) &&                                        \
105
         ((guid)->Data4[3] == 0xbf) &&                                        \
106
         ((guid)->Data4[4] == 0x64) &&                                        \
107
         ((guid)->Data4[5] == 0xc8) &&                                        \
108
         ((guid)->Data4[6] == 0x6e) &&                                        \
109
         ((guid)->Data4[7] == 0xba) )
110
#endif /* INIT_USBAUDIO_PID */
111

    
112
#ifndef INIT_USBAUDIO_PRODUCT_NAME
113
#define INIT_USBAUDIO_PRODUCT_NAME(guid,vid,pid,strIndex)                \
114
{                                                                        \
115
        (guid)->Data1 = 0XFC575048 + (USHORT)(vid);                        \
116
        (guid)->Data2 = 0x2E08 + (USHORT)(pid);                                \
117
        (guid)->Data3 = 0x463B + (USHORT)(strIndex);                        \
118
        (guid)->Data4[0] = 0xA7;                                        \
119
        (guid)->Data4[1] = 0x2F;                                        \
120
        (guid)->Data4[2] = 0xA5;                                        \
121
        (guid)->Data4[3] = 0xBF;                                        \
122
        (guid)->Data4[4] = 0x64;                                        \
123
        (guid)->Data4[5] = 0xC8;                                        \
124
        (guid)->Data4[6] = 0x6E;                                        \
125
        (guid)->Data4[7] = 0xBA;                                        \
126
}
127
#define DEFINE_USBAUDIO_PRODUCT_NAME(vid,pid,strIndex)                        \
128
        0xFC575048+(USHORT)(vid),0x2E08+(USHORT)(pid),0x463B+(USHORT)(strIndex),0xA7,0x2F,0xA5,0xBF,0x64,0xC8,0x6E,0xBA
129
#endif /* INIT_USBAUDIO_PRODUCT_NAME */
130

    
131
#define STATIC_KSCOMPONENTID_USBAUDIO                                        \
132
        0x8F1275F0,0x26E9,0x4264,0xBA,0x4D,0x39,0xFF,0xF0,0x1D,0x94,0xAA
133
DEFINE_GUIDSTRUCT("8F1275F0-26E9-4264-BA4D-39FFF01D94AA",KSCOMPONENTID_USBAUDIO);
134
#define KSCOMPONENTID_USBAUDIO DEFINE_GUIDNAMED(KSCOMPONENTID_USBAUDIO)
135

    
136
#define INIT_USB_TERMINAL(guid,id)                                        \
137
{                                                                        \
138
        (guid)->Data1 = 0xDFF219E0 + (USHORT)(id);                        \
139
        (guid)->Data2 = 0xF70F;                                                \
140
        (guid)->Data3 = 0x11D0;                                                \
141
        (guid)->Data4[0] = 0xb9;                                        \
142
        (guid)->Data4[1] = 0x17;                                        \
143
        (guid)->Data4[2] = 0x00;                                        \
144
        (guid)->Data4[3] = 0xa0;                                        \
145
        (guid)->Data4[4] = 0xc9;                                        \
146
        (guid)->Data4[5] = 0x22;                                        \
147
        (guid)->Data4[6] = 0x31;                                        \
148
        (guid)->Data4[7] = 0x96;                                        \
149
}
150
#define EXTRACT_USB_TERMINAL(guid)                                        \
151
        (USHORT)((guid)->Data1 - 0xDFF219E0)
152
#define DEFINE_USB_TERMINAL_GUID(id)                                        \
153
        0xDFF219E0+(USHORT)(id),0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
154

    
155
#define STATIC_KSNODETYPE_MICROPHONE                                        \
156
        DEFINE_USB_TERMINAL_GUID(0x0201)
157
DEFINE_GUIDSTRUCT("DFF21BE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MICROPHONE);
158
#define KSNODETYPE_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE)
159

    
160
#define STATIC_KSNODETYPE_DESKTOP_MICROPHONE                                \
161
        DEFINE_USB_TERMINAL_GUID(0x0202)
162
DEFINE_GUIDSTRUCT("DFF21BE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DESKTOP_MICROPHONE);
163
#define KSNODETYPE_DESKTOP_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_DESKTOP_MICROPHONE)
164

    
165
#define STATIC_KSNODETYPE_PERSONAL_MICROPHONE                                \
166
        DEFINE_USB_TERMINAL_GUID(0x0203)
167
DEFINE_GUIDSTRUCT("DFF21BE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PERSONAL_MICROPHONE);
168
#define KSNODETYPE_PERSONAL_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_PERSONAL_MICROPHONE)
169

    
170
#define STATIC_KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE                        \
171
        DEFINE_USB_TERMINAL_GUID(0x0204)
172
DEFINE_GUIDSTRUCT("DFF21BE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE);
173
#define KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE DEFINE_GUIDNAMED(KSNODETYPE_OMNI_DIRECTIONAL_MICROPHONE)
174

    
175
#define STATIC_KSNODETYPE_MICROPHONE_ARRAY                                \
176
        DEFINE_USB_TERMINAL_GUID(0x0205)
177
DEFINE_GUIDSTRUCT("DFF21BE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MICROPHONE_ARRAY);
178
#define KSNODETYPE_MICROPHONE_ARRAY DEFINE_GUIDNAMED(KSNODETYPE_MICROPHONE_ARRAY)
179

    
180
#define STATIC_KSNODETYPE_PROCESSING_MICROPHONE_ARRAY                        \
181
        DEFINE_USB_TERMINAL_GUID(0x0206)
182
DEFINE_GUIDSTRUCT("DFF21BE6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PROCESSING_MICROPHONE_ARRAY);
183
#define KSNODETYPE_PROCESSING_MICROPHONE_ARRAY DEFINE_GUIDNAMED(KSNODETYPE_PROCESSING_MICROPHONE_ARRAY)
184

    
185
#define STATIC_KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR                        \
186
        0x830a44f2,0xa32d,0x476b,0xbe,0x97,0x42,0x84,0x56,0x73,0xb3,0x5a
187
DEFINE_GUIDSTRUCT("830a44f2-a32d-476b-be97-42845673b35a",KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR);
188
#define KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR DEFINE_GUIDNAMED(KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR)
189

    
190
#define STATIC_KSNODETYPE_SPEAKER                                        \
191
        DEFINE_USB_TERMINAL_GUID(0x0301)
192
DEFINE_GUIDSTRUCT("DFF21CE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SPEAKER);
193
#define KSNODETYPE_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_SPEAKER)
194

    
195
#define STATIC_KSNODETYPE_HEADPHONES                                        \
196
        DEFINE_USB_TERMINAL_GUID(0x0302)
197
DEFINE_GUIDSTRUCT("DFF21CE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HEADPHONES);
198
#define KSNODETYPE_HEADPHONES DEFINE_GUIDNAMED(KSNODETYPE_HEADPHONES)
199

    
200
#define STATIC_KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO                        \
201
        DEFINE_USB_TERMINAL_GUID(0x0303)
202
DEFINE_GUIDSTRUCT("DFF21CE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO);
203
#define KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_HEAD_MOUNTED_DISPLAY_AUDIO)
204

    
205
#define STATIC_KSNODETYPE_DESKTOP_SPEAKER                                \
206
        DEFINE_USB_TERMINAL_GUID(0x0304)
207
DEFINE_GUIDSTRUCT("DFF21CE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DESKTOP_SPEAKER);
208
#define KSNODETYPE_DESKTOP_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_DESKTOP_SPEAKER)
209

    
210
#define STATIC_KSNODETYPE_ROOM_SPEAKER                                        \
211
        DEFINE_USB_TERMINAL_GUID(0x0305)
212
DEFINE_GUIDSTRUCT("DFF21CE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ROOM_SPEAKER);
213
#define KSNODETYPE_ROOM_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_ROOM_SPEAKER)
214

    
215
#define STATIC_KSNODETYPE_COMMUNICATION_SPEAKER                                \
216
        DEFINE_USB_TERMINAL_GUID(0x0306)
217
DEFINE_GUIDSTRUCT("DFF21CE6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_COMMUNICATION_SPEAKER);
218
#define KSNODETYPE_COMMUNICATION_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_COMMUNICATION_SPEAKER)
219

    
220
#define STATIC_KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER                        \
221
        DEFINE_USB_TERMINAL_GUID(0x0307)
222
DEFINE_GUIDSTRUCT("DFF21CE7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER);
223
#define KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER DEFINE_GUIDNAMED(KSNODETYPE_LOW_FREQUENCY_EFFECTS_SPEAKER)
224

    
225
#define STATIC_KSNODETYPE_HANDSET                                        \
226
        DEFINE_USB_TERMINAL_GUID(0x0401)
227
DEFINE_GUIDSTRUCT("DFF21DE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HANDSET);
228
#define KSNODETYPE_HANDSET DEFINE_GUIDNAMED(KSNODETYPE_HANDSET)
229

    
230
#define STATIC_KSNODETYPE_HEADSET                                        \
231
        DEFINE_USB_TERMINAL_GUID(0x0402)
232
DEFINE_GUIDSTRUCT("DFF21DE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_HEADSET);
233
#define KSNODETYPE_HEADSET DEFINE_GUIDNAMED(KSNODETYPE_HEADSET)
234

    
235
#define STATIC_KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION                \
236
        DEFINE_USB_TERMINAL_GUID(0x0403)
237
DEFINE_GUIDSTRUCT("DFF21DE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION);
238
#define KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION DEFINE_GUIDNAMED(KSNODETYPE_SPEAKERPHONE_NO_ECHO_REDUCTION)
239

    
240
#define STATIC_KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE                        \
241
        DEFINE_USB_TERMINAL_GUID(0x0404)
242
DEFINE_GUIDSTRUCT("DFF21DE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE);
243
#define KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE DEFINE_GUIDNAMED(KSNODETYPE_ECHO_SUPPRESSING_SPEAKERPHONE)
244

    
245
#define STATIC_KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE                        \
246
        DEFINE_USB_TERMINAL_GUID(0x0405)
247
DEFINE_GUIDSTRUCT("DFF21DE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE);
248
#define KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE DEFINE_GUIDNAMED(KSNODETYPE_ECHO_CANCELING_SPEAKERPHONE)
249

    
250
#define STATIC_KSNODETYPE_PHONE_LINE                                        \
251
        DEFINE_USB_TERMINAL_GUID(0x0501)
252
DEFINE_GUIDSTRUCT("DFF21EE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PHONE_LINE);
253
#define KSNODETYPE_PHONE_LINE DEFINE_GUIDNAMED(KSNODETYPE_PHONE_LINE)
254

    
255
#define STATIC_KSNODETYPE_TELEPHONE                                        \
256
        DEFINE_USB_TERMINAL_GUID(0x0502)
257
DEFINE_GUIDSTRUCT("DFF21EE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_TELEPHONE);
258
#define KSNODETYPE_TELEPHONE DEFINE_GUIDNAMED(KSNODETYPE_TELEPHONE)
259

    
260
#define STATIC_KSNODETYPE_DOWN_LINE_PHONE                                \
261
        DEFINE_USB_TERMINAL_GUID(0x0503)
262
DEFINE_GUIDSTRUCT("DFF21EE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DOWN_LINE_PHONE);
263
#define KSNODETYPE_DOWN_LINE_PHONE DEFINE_GUIDNAMED(KSNODETYPE_DOWN_LINE_PHONE)
264

    
265
#define STATIC_KSNODETYPE_ANALOG_CONNECTOR                                \
266
        DEFINE_USB_TERMINAL_GUID(0x601)
267
DEFINE_GUIDSTRUCT("DFF21FE1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ANALOG_CONNECTOR);
268
#define KSNODETYPE_ANALOG_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_CONNECTOR)
269

    
270
#define STATIC_KSNODETYPE_DIGITAL_AUDIO_INTERFACE                        \
271
        DEFINE_USB_TERMINAL_GUID(0x0602)
272
DEFINE_GUIDSTRUCT("DFF21FE2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DIGITAL_AUDIO_INTERFACE);
273
#define KSNODETYPE_DIGITAL_AUDIO_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_DIGITAL_AUDIO_INTERFACE)
274

    
275
#define STATIC_KSNODETYPE_LINE_CONNECTOR                                \
276
        DEFINE_USB_TERMINAL_GUID(0x0603)
277
DEFINE_GUIDSTRUCT("DFF21FE3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LINE_CONNECTOR);
278
#define KSNODETYPE_LINE_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LINE_CONNECTOR)
279

    
280
#define STATIC_KSNODETYPE_LEGACY_AUDIO_CONNECTOR                        \
281
        DEFINE_USB_TERMINAL_GUID(0x0604)
282
DEFINE_GUIDSTRUCT("DFF21FE4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LEGACY_AUDIO_CONNECTOR);
283
#define KSNODETYPE_LEGACY_AUDIO_CONNECTOR DEFINE_GUIDNAMED(KSNODETYPE_LEGACY_AUDIO_CONNECTOR)
284

    
285
#define STATIC_KSNODETYPE_SPDIF_INTERFACE                                \
286
        DEFINE_USB_TERMINAL_GUID(0x0605)
287
DEFINE_GUIDSTRUCT("DFF21FE5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SPDIF_INTERFACE);
288
#define KSNODETYPE_SPDIF_INTERFACE DEFINE_GUIDNAMED(KSNODETYPE_SPDIF_INTERFACE)
289

    
290
#define STATIC_KSNODETYPE_1394_DA_STREAM                                \
291
        DEFINE_USB_TERMINAL_GUID(0x0606)
292
DEFINE_GUIDSTRUCT("DFF21FE6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_1394_DA_STREAM);
293
#define KSNODETYPE_1394_DA_STREAM DEFINE_GUIDNAMED(KSNODETYPE_1394_DA_STREAM)
294

    
295
#define STATIC_KSNODETYPE_1394_DV_STREAM_SOUNDTRACK                        \
296
        DEFINE_USB_TERMINAL_GUID(0x0607)
297
DEFINE_GUIDSTRUCT("DFF21FE7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_1394_DV_STREAM_SOUNDTRACK);
298
#define KSNODETYPE_1394_DV_STREAM_SOUNDTRACK DEFINE_GUIDNAMED(KSNODETYPE_1394_DV_STREAM_SOUNDTRACK)
299

    
300
#define STATIC_KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE                \
301
        DEFINE_USB_TERMINAL_GUID(0x0701)
302
DEFINE_GUIDSTRUCT("DFF220E1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE);
303
#define KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE DEFINE_GUIDNAMED(KSNODETYPE_LEVEL_CALIBRATION_NOISE_SOURCE)
304

    
305
#define STATIC_KSNODETYPE_EQUALIZATION_NOISE                                \
306
        DEFINE_USB_TERMINAL_GUID(0x0702)
307
DEFINE_GUIDSTRUCT("DFF220E2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_EQUALIZATION_NOISE);
308
#define KSNODETYPE_EQUALIZATION_NOISE DEFINE_GUIDNAMED(KSNODETYPE_EQUALIZATION_NOISE)
309

    
310
#define STATIC_KSNODETYPE_CD_PLAYER                                        \
311
        DEFINE_USB_TERMINAL_GUID(0x0703)
312
DEFINE_GUIDSTRUCT("DFF220E3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_CD_PLAYER);
313
#define KSNODETYPE_CD_PLAYER DEFINE_GUIDNAMED(KSNODETYPE_CD_PLAYER)
314

    
315
#define STATIC_KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE                        \
316
        DEFINE_USB_TERMINAL_GUID(0x0704)
317
DEFINE_GUIDSTRUCT("DFF220E4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE);
318
#define KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE DEFINE_GUIDNAMED(KSNODETYPE_DAT_IO_DIGITAL_AUDIO_TAPE)
319

    
320
#define STATIC_KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE                \
321
        DEFINE_USB_TERMINAL_GUID(0x0705)
322
DEFINE_GUIDSTRUCT("DFF220E5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE);
323
#define KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE DEFINE_GUIDNAMED(KSNODETYPE_DCC_IO_DIGITAL_COMPACT_CASSETTE)
324

    
325
#define STATIC_KSNODETYPE_MINIDISK                                        \
326
        DEFINE_USB_TERMINAL_GUID(0x0706)
327
DEFINE_GUIDSTRUCT("DFF220E6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MINIDISK);
328
#define KSNODETYPE_MINIDISK DEFINE_GUIDNAMED(KSNODETYPE_MINIDISK)
329

    
330
#define STATIC_KSNODETYPE_ANALOG_TAPE                                        \
331
        DEFINE_USB_TERMINAL_GUID(0x0707)
332
DEFINE_GUIDSTRUCT("DFF220E7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_ANALOG_TAPE);
333
#define KSNODETYPE_ANALOG_TAPE DEFINE_GUIDNAMED(KSNODETYPE_ANALOG_TAPE)
334

    
335
#define STATIC_KSNODETYPE_PHONOGRAPH                                        \
336
        DEFINE_USB_TERMINAL_GUID(0x0708)
337
DEFINE_GUIDSTRUCT("DFF220E8-F70F-11D0-B917-00A0C9223196",KSNODETYPE_PHONOGRAPH);
338
#define KSNODETYPE_PHONOGRAPH DEFINE_GUIDNAMED(KSNODETYPE_PHONOGRAPH)
339

    
340
#define STATIC_KSNODETYPE_VCR_AUDIO                                        \
341
        DEFINE_USB_TERMINAL_GUID(0x0708)
342
DEFINE_GUIDSTRUCT("DFF220E9-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VCR_AUDIO);
343
#define KSNODETYPE_VCR_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_VCR_AUDIO)
344

    
345
#define STATIC_KSNODETYPE_VIDEO_DISC_AUDIO                                \
346
        DEFINE_USB_TERMINAL_GUID(0x070A)
347
DEFINE_GUIDSTRUCT("DFF220EA-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_DISC_AUDIO);
348
#define KSNODETYPE_VIDEO_DISC_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_DISC_AUDIO)
349

    
350
#define STATIC_KSNODETYPE_DVD_AUDIO                                        \
351
        DEFINE_USB_TERMINAL_GUID(0x070B)
352
DEFINE_GUIDSTRUCT("DFF220EB-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DVD_AUDIO);
353
#define KSNODETYPE_DVD_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_DVD_AUDIO)
354

    
355
#define STATIC_KSNODETYPE_TV_TUNER_AUDIO                                \
356
        DEFINE_USB_TERMINAL_GUID(0x070C)
357
DEFINE_GUIDSTRUCT("DFF220EC-F70F-11D0-B917-00A0C9223196",KSNODETYPE_TV_TUNER_AUDIO);
358
#define KSNODETYPE_TV_TUNER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_TV_TUNER_AUDIO)
359

    
360
#define STATIC_KSNODETYPE_SATELLITE_RECEIVER_AUDIO                        \
361
        DEFINE_USB_TERMINAL_GUID(0x070D)
362
DEFINE_GUIDSTRUCT("DFF220ED-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SATELLITE_RECEIVER_AUDIO);
363
#define KSNODETYPE_SATELLITE_RECEIVER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_SATELLITE_RECEIVER_AUDIO)
364

    
365
#define STATIC_KSNODETYPE_CABLE_TUNER_AUDIO                                \
366
        DEFINE_USB_TERMINAL_GUID(0x070E)
367
DEFINE_GUIDSTRUCT("DFF220EE-F70F-11D0-B917-00A0C9223196",KSNODETYPE_CABLE_TUNER_AUDIO);
368
#define KSNODETYPE_CABLE_TUNER_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_CABLE_TUNER_AUDIO)
369

    
370
#define STATIC_KSNODETYPE_DSS_AUDIO                                        \
371
        DEFINE_USB_TERMINAL_GUID(0x070F)
372
DEFINE_GUIDSTRUCT("DFF220EF-F70F-11D0-B917-00A0C9223196",KSNODETYPE_DSS_AUDIO);
373
#define KSNODETYPE_DSS_AUDIO DEFINE_GUIDNAMED(KSNODETYPE_DSS_AUDIO)
374

    
375
#define STATIC_KSNODETYPE_RADIO_RECEIVER                                \
376
        DEFINE_USB_TERMINAL_GUID(0x0710)
377
DEFINE_GUIDSTRUCT("DFF220F0-F70F-11D0-B917-00A0C9223196",KSNODETYPE_RADIO_RECEIVER);
378
#define KSNODETYPE_RADIO_RECEIVER DEFINE_GUIDNAMED(KSNODETYPE_RADIO_RECEIVER)
379

    
380
#define STATIC_KSNODETYPE_RADIO_TRANSMITTER                                \
381
        DEFINE_USB_TERMINAL_GUID(0x0711)
382
DEFINE_GUIDSTRUCT("DFF220F1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_RADIO_TRANSMITTER);
383
#define KSNODETYPE_RADIO_TRANSMITTER DEFINE_GUIDNAMED(KSNODETYPE_RADIO_TRANSMITTER)
384

    
385
#define STATIC_KSNODETYPE_MULTITRACK_RECORDER                                \
386
        DEFINE_USB_TERMINAL_GUID(0x0712)
387
DEFINE_GUIDSTRUCT("DFF220F2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_MULTITRACK_RECORDER);
388
#define KSNODETYPE_MULTITRACK_RECORDER DEFINE_GUIDNAMED(KSNODETYPE_MULTITRACK_RECORDER)
389

    
390
#define STATIC_KSNODETYPE_SYNTHESIZER                                        \
391
        DEFINE_USB_TERMINAL_GUID(0x0713)
392
DEFINE_GUIDSTRUCT("DFF220F3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_SYNTHESIZER);
393
#define KSNODETYPE_SYNTHESIZER DEFINE_GUIDNAMED(KSNODETYPE_SYNTHESIZER)
394

    
395
#define STATIC_KSNODETYPE_SWSYNTH                                        \
396
        0x423274A0L,0x8B81,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88
397
DEFINE_GUIDSTRUCT("423274A0-8B81-11D1-A050-0000F8004788",KSNODETYPE_SWSYNTH);
398
#define KSNODETYPE_SWSYNTH DEFINE_GUIDNAMED(KSNODETYPE_SWSYNTH)
399

    
400
#define STATIC_KSNODETYPE_SWMIDI                                        \
401
        0xCB9BEFA0L,0xA251,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88
402
DEFINE_GUIDSTRUCT("CB9BEFA0-A251-11D1-A050-0000F8004788",KSNODETYPE_SWMIDI);
403
#define KSNODETYPE_SWMIDI DEFINE_GUIDNAMED(KSNODETYPE_SWMIDI)
404

    
405
#define STATIC_KSNODETYPE_DRM_DESCRAMBLE                                \
406
        0xFFBB6E3FL,0xCCFE,0x4D84,0x90,0xD9,0x42,0x14,0x18,0xB0,0x3A,0x8E
407
DEFINE_GUIDSTRUCT("FFBB6E3F-CCFE-4D84-90D9-421418B03A8E",KSNODETYPE_DRM_DESCRAMBLE);
408
#define KSNODETYPE_DRM_DESCRAMBLE DEFINE_GUIDNAMED(KSNODETYPE_DRM_DESCRAMBLE)
409

    
410
#define STATIC_KSCATEGORY_AUDIO                                                \
411
        0x6994AD04L,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96
412
DEFINE_GUIDSTRUCT("6994AD04-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_AUDIO);
413
#define KSCATEGORY_AUDIO DEFINE_GUIDNAMED(KSCATEGORY_AUDIO)
414

    
415
#define STATIC_KSCATEGORY_VIDEO                                                \
416
        0x6994AD05L,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96
417
DEFINE_GUIDSTRUCT("6994AD05-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_VIDEO);
418
#define KSCATEGORY_VIDEO DEFINE_GUIDNAMED(KSCATEGORY_VIDEO)
419

    
420
/* Added for Vista and later */
421
#define STATIC_KSCATEGORY_REALTIME \
422
    0xEB115FFCL, 0x10C8, 0x4964, 0x83, 0x1D, 0x6D, 0xCB, 0x02, 0xE6, 0xF2, 0x3F
423
DEFINE_GUIDSTRUCT("EB115FFC-10C8-4964-831D-6DCB02E6F23F", KSCATEGORY_REALTIME);
424
#define KSCATEGORY_REALTIME DEFINE_GUIDNAMED(KSCATEGORY_REALTIME)
425

    
426
#define STATIC_KSCATEGORY_TEXT                                                \
427
        0x6994AD06L,0x93EF,0x11D0,0xA3,0xCC,0x00,0xA0,0xC9,0x22,0x31,0x96
428
DEFINE_GUIDSTRUCT("6994AD06-93EF-11D0-A3CC-00A0C9223196",KSCATEGORY_TEXT);
429
#define KSCATEGORY_TEXT DEFINE_GUIDNAMED(KSCATEGORY_TEXT)
430

    
431
#define STATIC_KSCATEGORY_NETWORK                                        \
432
        0x67C9CC3CL,0x69C4,0x11D2,0x87,0x59,0x00,0xA0,0xC9,0x22,0x31,0x96
433
DEFINE_GUIDSTRUCT("67C9CC3C-69C4-11D2-8759-00A0C9223196",KSCATEGORY_NETWORK);
434
#define KSCATEGORY_NETWORK DEFINE_GUIDNAMED(KSCATEGORY_NETWORK)
435

    
436
#define STATIC_KSCATEGORY_TOPOLOGY                                        \
437
        0xDDA54A40L,0x1E4C,0x11D1,0xA0,0x50,0x40,0x57,0x05,0xC1,0x00,0x00
438
DEFINE_GUIDSTRUCT("DDA54A40-1E4C-11D1-A050-405705C10000",KSCATEGORY_TOPOLOGY);
439
#define KSCATEGORY_TOPOLOGY DEFINE_GUIDNAMED(KSCATEGORY_TOPOLOGY)
440

    
441
#define STATIC_KSCATEGORY_VIRTUAL                                        \
442
        0x3503EAC4L,0x1F26,0x11D1,0x8A,0xB0,0x00,0xA0,0xC9,0x22,0x31,0x96
443
DEFINE_GUIDSTRUCT("3503EAC4-1F26-11D1-8AB0-00A0C9223196",KSCATEGORY_VIRTUAL);
444
#define KSCATEGORY_VIRTUAL DEFINE_GUIDNAMED(KSCATEGORY_VIRTUAL)
445

    
446
#define STATIC_KSCATEGORY_ACOUSTIC_ECHO_CANCEL                                \
447
        0xBF963D80L,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
448
DEFINE_GUIDSTRUCT("BF963D80-C559-11D0-8A2B-00A0C9255AC1",KSCATEGORY_ACOUSTIC_ECHO_CANCEL);
449
#define KSCATEGORY_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSCATEGORY_ACOUSTIC_ECHO_CANCEL)
450

    
451
#define STATIC_KSCATEGORY_SYSAUDIO                                        \
452
        0xA7C7A5B1L,0x5AF3,0x11D1,0x9C,0xED,0x00,0xA0,0x24,0xBF,0x04,0x07
453
DEFINE_GUIDSTRUCT("A7C7A5B1-5AF3-11D1-9CED-00A024BF0407",KSCATEGORY_SYSAUDIO);
454
#define KSCATEGORY_SYSAUDIO DEFINE_GUIDNAMED(KSCATEGORY_SYSAUDIO)
455

    
456
#define STATIC_KSCATEGORY_WDMAUD                                        \
457
        0x3E227E76L,0x690D,0x11D2,0x81,0x61,0x00,0x00,0xF8,0x77,0x5B,0xF1
458
DEFINE_GUIDSTRUCT("3E227E76-690D-11D2-8161-0000F8775BF1",KSCATEGORY_WDMAUD);
459
#define KSCATEGORY_WDMAUD DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD)
460

    
461
#define STATIC_KSCATEGORY_AUDIO_GFX                                        \
462
        0x9BAF9572L,0x340C,0x11D3,0xAB,0xDC,0x00,0xA0,0xC9,0x0A,0xB1,0x6F
463
DEFINE_GUIDSTRUCT("9BAF9572-340C-11D3-ABDC-00A0C90AB16F",KSCATEGORY_AUDIO_GFX);
464
#define KSCATEGORY_AUDIO_GFX DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_GFX)
465

    
466
#define STATIC_KSCATEGORY_AUDIO_SPLITTER                                \
467
        0x9EA331FAL,0xB91B,0x45F8,0x92,0x85,0xBD,0x2B,0xC7,0x7A,0xFC,0xDE
468
DEFINE_GUIDSTRUCT("9EA331FA-B91B-45F8-9285-BD2BC77AFCDE",KSCATEGORY_AUDIO_SPLITTER);
469
#define KSCATEGORY_AUDIO_SPLITTER DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_SPLITTER)
470

    
471
#define STATIC_KSCATEGORY_SYNTHESIZER                STATIC_KSNODETYPE_SYNTHESIZER
472
#define KSCATEGORY_SYNTHESIZER                        KSNODETYPE_SYNTHESIZER
473

    
474
#define STATIC_KSCATEGORY_DRM_DESCRAMBLE        STATIC_KSNODETYPE_DRM_DESCRAMBLE
475
#define KSCATEGORY_DRM_DESCRAMBLE                KSNODETYPE_DRM_DESCRAMBLE
476

    
477
#define STATIC_KSCATEGORY_AUDIO_DEVICE                                        \
478
        0xFBF6F530L,0x07B9,0x11D2,0xA7,0x1E,0x00,0x00,0xF8,0x00,0x47,0x88
479
DEFINE_GUIDSTRUCT("FBF6F530-07B9-11D2-A71E-0000F8004788",KSCATEGORY_AUDIO_DEVICE);
480
#define KSCATEGORY_AUDIO_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_AUDIO_DEVICE)
481

    
482
#define STATIC_KSCATEGORY_PREFERRED_WAVEOUT_DEVICE                        \
483
        0xD6C5066EL,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88
484
DEFINE_GUIDSTRUCT("D6C5066E-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_WAVEOUT_DEVICE);
485
#define KSCATEGORY_PREFERRED_WAVEOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEOUT_DEVICE)
486

    
487
#define STATIC_KSCATEGORY_PREFERRED_WAVEIN_DEVICE                        \
488
        0xD6C50671L,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88
489
DEFINE_GUIDSTRUCT("D6C50671-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_WAVEIN_DEVICE);
490
#define KSCATEGORY_PREFERRED_WAVEIN_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_WAVEIN_DEVICE)
491

    
492
#define STATIC_KSCATEGORY_PREFERRED_MIDIOUT_DEVICE                        \
493
        0xD6C50674L,0x72C1,0x11D2,0x97,0x55,0x00,0x00,0xF8,0x00,0x47,0x88
494
DEFINE_GUIDSTRUCT("D6C50674-72C1-11D2-9755-0000F8004788",KSCATEGORY_PREFERRED_MIDIOUT_DEVICE);
495
#define KSCATEGORY_PREFERRED_MIDIOUT_DEVICE DEFINE_GUIDNAMED(KSCATEGORY_PREFERRED_MIDIOUT_DEVICE)
496

    
497
#define STATIC_KSCATEGORY_WDMAUD_USE_PIN_NAME                                \
498
        0x47A4FA20L,0xA251,0x11D1,0xA0,0x50,0x00,0x00,0xF8,0x00,0x47,0x88
499
DEFINE_GUIDSTRUCT("47A4FA20-A251-11D1-A050-0000F8004788",KSCATEGORY_WDMAUD_USE_PIN_NAME);
500
#define KSCATEGORY_WDMAUD_USE_PIN_NAME DEFINE_GUIDNAMED(KSCATEGORY_WDMAUD_USE_PIN_NAME)
501

    
502
#define STATIC_KSCATEGORY_ESCALANTE_PLATFORM_DRIVER                        \
503
        0x74f3aea8L,0x9768,0x11d1,0x8e,0x07,0x00,0xa0,0xc9,0x5e,0xc2,0x2e
504
DEFINE_GUIDSTRUCT("74f3aea8-9768-11d1-8e07-00a0c95ec22e",KSCATEGORY_ESCALANTE_PLATFORM_DRIVER);
505
#define KSCATEGORY_ESCALANTE_PLATFORM_DRIVER DEFINE_GUIDNAMED(KSCATEGORY_ESCALANTE_PLATFORM_DRIVER)
506

    
507
#define STATIC_KSDATAFORMAT_TYPE_VIDEO                                        \
508
        0x73646976L,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
509
DEFINE_GUIDSTRUCT("73646976-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_VIDEO);
510
#define KSDATAFORMAT_TYPE_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_VIDEO)
511

    
512
#define STATIC_KSDATAFORMAT_TYPE_AUDIO                                        \
513
        0x73647561L,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
514
DEFINE_GUIDSTRUCT("73647561-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_AUDIO);
515
#define KSDATAFORMAT_TYPE_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUDIO)
516

    
517
#define STATIC_KSDATAFORMAT_TYPE_TEXT                                        \
518
        0x73747874L,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
519
DEFINE_GUIDSTRUCT("73747874-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_TEXT);
520
#define KSDATAFORMAT_TYPE_TEXT DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_TEXT)
521

    
522
#if !defined(DEFINE_WAVEFORMATEX_GUID)
523
#define DEFINE_WAVEFORMATEX_GUID(x)                                        \
524
        (USHORT)(x),0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
525
#endif
526

    
527
#define STATIC_KSDATAFORMAT_SUBTYPE_WAVEFORMATEX                        \
528
        0x00000000L,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
529
DEFINE_GUIDSTRUCT("00000000-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_WAVEFORMATEX);
530
#define KSDATAFORMAT_SUBTYPE_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_WAVEFORMATEX)
531

    
532
#define INIT_WAVEFORMATEX_GUID(Guid,x)                                        \
533
{                                                                        \
534
        *(Guid) = KSDATAFORMAT_SUBTYPE_WAVEFORMATEX;                        \
535
        (Guid)->Data1 = (USHORT)(x);                                        \
536
}
537

    
538
#define EXTRACT_WAVEFORMATEX_ID(Guid)                                        \
539
        (USHORT)((Guid)->Data1)
540

    
541
#define IS_VALID_WAVEFORMATEX_GUID(Guid)                                \
542
        (!memcmp(((PUSHORT)&KSDATAFORMAT_SUBTYPE_WAVEFORMATEX) + 1, ((PUSHORT)(Guid)) + 1,sizeof(GUID) - sizeof(USHORT)))
543

    
544
#ifndef INIT_MMREG_MID
545
#define INIT_MMREG_MID(guid,id)                                                \
546
{                                                                        \
547
        (guid)->Data1 = 0xd5a47fa7 + (USHORT)(id);                        \
548
        (guid)->Data2 = 0x6d98;                                                \
549
        (guid)->Data3 = 0x11d1;                                                \
550
        (guid)->Data4[0] = 0xa2;                                        \
551
        (guid)->Data4[1] = 0x1a;                                        \
552
        (guid)->Data4[2] = 0x00;                                        \
553
        (guid)->Data4[3] = 0xa0;                                        \
554
        (guid)->Data4[4] = 0xc9;                                        \
555
        (guid)->Data4[5] = 0x22;                                        \
556
        (guid)->Data4[6] = 0x31;                                        \
557
        (guid)->Data4[7] = 0x96;                                        \
558
}
559
#define EXTRACT_MMREG_MID(guid)                                                \
560
        (USHORT)((guid)->Data1 - 0xd5a47fa7)
561
#define DEFINE_MMREG_MID_GUID(id)                                        \
562
        0xd5a47fa7+(USHORT)(id),0x6d98,0x11d1,0xa2,0x1a,0x00,0xa0,0xc9,0x22,0x31,0x96
563

    
564
#define IS_COMPATIBLE_MMREG_MID(guid)                                        \
565
        (((guid)->Data1 >= 0xd5a47fa7) &&                                \
566
         ((guid)->Data1 < 0xd5a47fa7 + 0xffff) &&                        \
567
         ((guid)->Data2 == 0x6d98) &&                                        \
568
         ((guid)->Data3 == 0x11d1) &&                                        \
569
         ((guid)->Data4[0] == 0xa2) &&                                        \
570
         ((guid)->Data4[1] == 0x1a) &&                                        \
571
         ((guid)->Data4[2] == 0x00) &&                                        \
572
         ((guid)->Data4[3] == 0xa0) &&                                        \
573
         ((guid)->Data4[4] == 0xc9) &&                                        \
574
         ((guid)->Data4[5] == 0x22) &&                                        \
575
         ((guid)->Data4[6] == 0x31) &&                                        \
576
         ((guid)->Data4[7] == 0x96) )
577
#endif /* INIT_MMREG_MID */
578

    
579
#ifndef INIT_MMREG_PID
580
#define INIT_MMREG_PID(guid,id)                                                \
581
{                                                                        \
582
        (guid)->Data1 = 0xe36dc2ac + (USHORT)(id);                        \
583
        (guid)->Data2 = 0x6d9a;                                                \
584
        (guid)->Data3 = 0x11d1;                                                \
585
        (guid)->Data4[0] = 0xa2;                                        \
586
        (guid)->Data4[1] = 0x1a;                                        \
587
        (guid)->Data4[2] = 0x00;                                        \
588
        (guid)->Data4[3] = 0xa0;                                        \
589
        (guid)->Data4[4] = 0xc9;                                        \
590
        (guid)->Data4[5] = 0x22;                                        \
591
        (guid)->Data4[6] = 0x31;                                        \
592
        (guid)->Data4[7] = 0x96;                                        \
593
}
594
#define EXTRACT_MMREG_PID(guid)                                                \
595
        (USHORT)((guid)->Data1 - 0xe36dc2ac)
596
#define DEFINE_MMREG_PID_GUID(id)                                        \
597
        0xe36dc2ac+(USHORT)(id),0x6d9a,0x11d1,0xa2,0x1a,0x00,0xa0,0xc9,0x22,0x31,0x96
598

    
599
#define IS_COMPATIBLE_MMREG_PID(guid)                                        \
600
        (((guid)->Data1 >= 0xe36dc2ac) &&                                \
601
         ((guid)->Data1 < 0xe36dc2ac + 0xffff) &&                        \
602
         ((guid)->Data2 == 0x6d9a) &&                                        \
603
         ((guid)->Data3 == 0x11d1) &&                                        \
604
         ((guid)->Data4[0] == 0xa2) &&                                        \
605
         ((guid)->Data4[1] == 0x1a) &&                                        \
606
         ((guid)->Data4[2] == 0x00) &&                                        \
607
         ((guid)->Data4[3] == 0xa0) &&                                        \
608
         ((guid)->Data4[4] == 0xc9) &&                                        \
609
         ((guid)->Data4[5] == 0x22) &&                                        \
610
         ((guid)->Data4[6] == 0x31) &&                                        \
611
         ((guid)->Data4[7] == 0x96) )
612
#endif /* INIT_MMREG_PID */
613

    
614
#define STATIC_KSDATAFORMAT_SUBTYPE_ANALOG                                \
615
        0x6dba3190L,0x67bd,0x11cf,0xa0,0xf7,0x00,0x20,0xaf,0xd1,0x56,0xe4
616
DEFINE_GUIDSTRUCT("6dba3190-67bd-11cf-a0f7-0020afd156e4",KSDATAFORMAT_SUBTYPE_ANALOG);
617
#define KSDATAFORMAT_SUBTYPE_ANALOG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ANALOG)
618

    
619
#define STATIC_KSDATAFORMAT_SUBTYPE_PCM                                        \
620
        DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_PCM)
621
DEFINE_GUIDSTRUCT("00000001-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_PCM);
622
#define KSDATAFORMAT_SUBTYPE_PCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_PCM)
623

    
624
#ifdef _INC_MMREG
625
#define STATIC_KSDATAFORMAT_SUBTYPE_IEEE_FLOAT                                \
626
        DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_IEEE_FLOAT)
627
DEFINE_GUIDSTRUCT("00000003-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_IEEE_FLOAT);
628
#define KSDATAFORMAT_SUBTYPE_IEEE_FLOAT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_IEEE_FLOAT)
629

    
630
#define STATIC_KSDATAFORMAT_SUBTYPE_DRM                                        \
631
        DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_DRM)
632
DEFINE_GUIDSTRUCT("00000009-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_DRM);
633
#define KSDATAFORMAT_SUBTYPE_DRM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DRM)
634

    
635
#define STATIC_KSDATAFORMAT_SUBTYPE_ALAW                                \
636
        DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_ALAW)
637
DEFINE_GUIDSTRUCT("00000006-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_ALAW);
638
#define KSDATAFORMAT_SUBTYPE_ALAW DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ALAW)
639

    
640
#define STATIC_KSDATAFORMAT_SUBTYPE_MULAW                                \
641
        DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_MULAW)
642
DEFINE_GUIDSTRUCT("00000007-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_MULAW);
643
#define KSDATAFORMAT_SUBTYPE_MULAW DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MULAW)
644

    
645
#define STATIC_KSDATAFORMAT_SUBTYPE_ADPCM                                \
646
        DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_ADPCM)
647
DEFINE_GUIDSTRUCT("00000002-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_ADPCM);
648
#define KSDATAFORMAT_SUBTYPE_ADPCM DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ADPCM)
649

    
650
#define STATIC_KSDATAFORMAT_SUBTYPE_MPEG                                \
651
        DEFINE_WAVEFORMATEX_GUID(WAVE_FORMAT_MPEG)
652
DEFINE_GUIDSTRUCT("00000050-0000-0010-8000-00aa00389b71",KSDATAFORMAT_SUBTYPE_MPEG);
653
#define KSDATAFORMAT_SUBTYPE_MPEG DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG)
654
#endif /* _INC_MMREG */
655

    
656
#define STATIC_KSDATAFORMAT_SPECIFIER_VC_ID                                \
657
        0xAD98D184L,0xAAC3,0x11D0,0xA4,0x1C,0x00,0xA0,0xC9,0x22,0x31,0x96
658
DEFINE_GUIDSTRUCT("AD98D184-AAC3-11D0-A41C-00A0C9223196",KSDATAFORMAT_SPECIFIER_VC_ID);
659
#define KSDATAFORMAT_SPECIFIER_VC_ID DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VC_ID)
660

    
661
#define STATIC_KSDATAFORMAT_SPECIFIER_WAVEFORMATEX                        \
662
        0x05589f81L,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a
663
DEFINE_GUIDSTRUCT("05589f81-c356-11ce-bf01-00aa0055595a",KSDATAFORMAT_SPECIFIER_WAVEFORMATEX);
664
#define KSDATAFORMAT_SPECIFIER_WAVEFORMATEX DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_WAVEFORMATEX)
665

    
666
#define STATIC_KSDATAFORMAT_SPECIFIER_DSOUND                                \
667
        0x518590a2L,0xa184,0x11d0,0x85,0x22,0x00,0xc0,0x4f,0xd9,0xba,0xf3
668
DEFINE_GUIDSTRUCT("518590a2-a184-11d0-8522-00c04fd9baf3",KSDATAFORMAT_SPECIFIER_DSOUND);
669
#define KSDATAFORMAT_SPECIFIER_DSOUND DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DSOUND)
670

    
671
#if defined(_INC_MMSYSTEM) || defined(_INC_MMREG)
672
#if !defined(PACK_PRAGMAS_NOT_SUPPORTED)
673
#include <pshpack1.h>
674
#endif
675
typedef struct {
676
  KSDATAFORMAT DataFormat;
677
  WAVEFORMATEX WaveFormatEx;
678
} KSDATAFORMAT_WAVEFORMATEX,*PKSDATAFORMAT_WAVEFORMATEX;
679

    
680
#ifndef _WAVEFORMATEXTENSIBLE_
681
#define _WAVEFORMATEXTENSIBLE_
682
typedef struct {
683
  WAVEFORMATEX Format;
684
  union {
685
    WORD wValidBitsPerSample;
686
    WORD wSamplesPerBlock;
687
    WORD wReserved;
688
  } Samples;
689
  DWORD dwChannelMask;
690

    
691
  GUID SubFormat;
692
} WAVEFORMATEXTENSIBLE,*PWAVEFORMATEXTENSIBLE;
693
#endif /* _WAVEFORMATEXTENSIBLE_ */
694

    
695
#if !defined(WAVE_FORMAT_EXTENSIBLE)
696
#define WAVE_FORMAT_EXTENSIBLE                        0xFFFE
697
#endif
698

    
699
typedef struct {
700
  ULONG Flags;
701
  ULONG Control;
702
  WAVEFORMATEX WaveFormatEx;
703
} KSDSOUND_BUFFERDESC,*PKSDSOUND_BUFFERDESC;
704

    
705
typedef struct {
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
  DWORDLONG PlayOffset;
728
  DWORDLONG WriteOffset;
729
} KSAUDIO_POSITION,*PKSAUDIO_POSITION;
730

    
731
typedef struct _DS3DVECTOR {
732
  __MINGW_EXTENSION union {
733
    FLOAT x;
734
    FLOAT dvX;
735
  };
736
  __MINGW_EXTENSION union {
737
    FLOAT y;
738
    FLOAT dvY;
739
  };
740
  __MINGW_EXTENSION union {
741
    FLOAT z;
742
    FLOAT dvZ;
743
  };
744
} DS3DVECTOR,*PDS3DVECTOR;
745

    
746
#define STATIC_KSPROPSETID_DirectSound3DListener                        \
747
        0x437b3414L,0xd060,0x11d0,0x85,0x83,0x00,0xc0,0x4f,0xd9,0xba,0xf3
748
DEFINE_GUIDSTRUCT("437b3414-d060-11d0-8583-00c04fd9baf3",KSPROPSETID_DirectSound3DListener);
749
#define KSPROPSETID_DirectSound3DListener DEFINE_GUIDNAMED(KSPROPSETID_DirectSound3DListener)
750

    
751
typedef enum {
752
  KSPROPERTY_DIRECTSOUND3DLISTENER_ALL,
753
  KSPROPERTY_DIRECTSOUND3DLISTENER_POSITION,
754
  KSPROPERTY_DIRECTSOUND3DLISTENER_VELOCITY,
755
  KSPROPERTY_DIRECTSOUND3DLISTENER_ORIENTATION,
756
  KSPROPERTY_DIRECTSOUND3DLISTENER_DISTANCEFACTOR,
757
  KSPROPERTY_DIRECTSOUND3DLISTENER_ROLLOFFFACTOR,
758
  KSPROPERTY_DIRECTSOUND3DLISTENER_DOPPLERFACTOR,
759
  KSPROPERTY_DIRECTSOUND3DLISTENER_BATCH,
760
  KSPROPERTY_DIRECTSOUND3DLISTENER_ALLOCATION
761
} KSPROPERTY_DIRECTSOUND3DLISTENER;
762

    
763
typedef struct {
764
  DS3DVECTOR Position;
765
  DS3DVECTOR Velocity;
766
  DS3DVECTOR OrientFront;
767
  DS3DVECTOR OrientTop;
768
  FLOAT DistanceFactor;
769
  FLOAT RolloffFactor;
770
  FLOAT DopplerFactor;
771
} KSDS3D_LISTENER_ALL,*PKSDS3D_LISTENER_ALL;
772

    
773
typedef struct {
774
  DS3DVECTOR Front;
775
  DS3DVECTOR Top;
776
} KSDS3D_LISTENER_ORIENTATION,*PKSDS3D_LISTENER_ORIENTATION;
777

    
778
#define STATIC_KSPROPSETID_DirectSound3DBuffer                                \
779
        0x437b3411L,0xd060,0x11d0,0x85,0x83,0x00,0xc0,0x4f,0xd9,0xba,0xf3
780
DEFINE_GUIDSTRUCT("437b3411-d060-11d0-8583-00c04fd9baf3",KSPROPSETID_DirectSound3DBuffer);
781
#define KSPROPSETID_DirectSound3DBuffer DEFINE_GUIDNAMED(KSPROPSETID_DirectSound3DBuffer)
782

    
783
typedef enum {
784
  KSPROPERTY_DIRECTSOUND3DBUFFER_ALL,
785
  KSPROPERTY_DIRECTSOUND3DBUFFER_POSITION,
786
  KSPROPERTY_DIRECTSOUND3DBUFFER_VELOCITY,
787
  KSPROPERTY_DIRECTSOUND3DBUFFER_CONEANGLES,
788
  KSPROPERTY_DIRECTSOUND3DBUFFER_CONEORIENTATION,
789
  KSPROPERTY_DIRECTSOUND3DBUFFER_CONEOUTSIDEVOLUME,
790
  KSPROPERTY_DIRECTSOUND3DBUFFER_MINDISTANCE,
791
  KSPROPERTY_DIRECTSOUND3DBUFFER_MAXDISTANCE,
792
  KSPROPERTY_DIRECTSOUND3DBUFFER_MODE
793
} KSPROPERTY_DIRECTSOUND3DBUFFER;
794

    
795
typedef struct {
796
  DS3DVECTOR Position;
797
  DS3DVECTOR Velocity;
798
  ULONG InsideConeAngle;
799
  ULONG OutsideConeAngle;
800
  DS3DVECTOR ConeOrientation;
801
  LONG ConeOutsideVolume;
802
  FLOAT MinDistance;
803
  FLOAT MaxDistance;
804
  ULONG Mode;
805
} KSDS3D_BUFFER_ALL,*PKSDS3D_BUFFER_ALL;
806

    
807
typedef struct {
808
  ULONG InsideConeAngle;
809
  ULONG OutsideConeAngle;
810
} KSDS3D_BUFFER_CONE_ANGLES,*PKSDS3D_BUFFER_CONE_ANGLES;
811

    
812
#define KSAUDIO_STEREO_SPEAKER_GEOMETRY_HEADPHONE        (-1)
813
#define KSAUDIO_STEREO_SPEAKER_GEOMETRY_MIN                5
814
#define KSAUDIO_STEREO_SPEAKER_GEOMETRY_NARROW                10
815
#define KSAUDIO_STEREO_SPEAKER_GEOMETRY_WIDE                20
816
#define KSAUDIO_STEREO_SPEAKER_GEOMETRY_MAX                180
817

    
818
#define KSDSOUND_3D_MODE_NORMAL                        0x00000000
819
#define KSDSOUND_3D_MODE_HEADRELATIVE                0x00000001
820
#define KSDSOUND_3D_MODE_DISABLE                0x00000002
821

    
822
#define KSDSOUND_BUFFER_CTRL_HRTF_3D                0x40000000
823

    
824
typedef struct {
825
  ULONG Size;
826
  ULONG Enabled;
827
  WINBOOL SwapChannels;
828
  WINBOOL ZeroAzimuth;
829
  WINBOOL CrossFadeOutput;
830
  ULONG FilterSize;
831
} KSDS3D_HRTF_PARAMS_MSG,*PKSDS3D_HRTF_PARAMS_MSG;
832

    
833
typedef enum {
834
  FULL_FILTER,
835
  LIGHT_FILTER,
836
  KSDS3D_FILTER_QUALITY_COUNT
837
} KSDS3D_HRTF_FILTER_QUALITY;
838

    
839
typedef struct {
840
  ULONG Size;
841
  KSDS3D_HRTF_FILTER_QUALITY Quality;
842
  FLOAT SampleRate;
843
  ULONG MaxFilterSize;
844
  ULONG FilterTransientMuteLength;
845
  ULONG FilterOverlapBufferLength;
846
  ULONG OutputOverlapBufferLength;
847
  ULONG Reserved;
848
} KSDS3D_HRTF_INIT_MSG,*PKSDS3D_HRTF_INIT_MSG;
849

    
850
typedef enum {
851
  FLOAT_COEFF,
852
  SHORT_COEFF,
853
  KSDS3D_COEFF_COUNT
854
} KSDS3D_HRTF_COEFF_FORMAT;
855

    
856
typedef enum {
857
  DIRECT_FORM,
858
  CASCADE_FORM,
859
  KSDS3D_FILTER_METHOD_COUNT
860
} KSDS3D_HRTF_FILTER_METHOD;
861

    
862
typedef enum {
863
  DS3D_HRTF_VERSION_1
864
} KSDS3D_HRTF_FILTER_VERSION;
865

    
866
typedef struct {
867
  KSDS3D_HRTF_FILTER_METHOD FilterMethod;
868
  KSDS3D_HRTF_COEFF_FORMAT CoeffFormat;
869
  KSDS3D_HRTF_FILTER_VERSION Version;
870
  ULONG Reserved;
871
} KSDS3D_HRTF_FILTER_FORMAT_MSG,*PKSDS3D_HRTF_FILTER_FORMAT_MSG;
872

    
873
#define STATIC_KSPROPSETID_Hrtf3d                                        \
874
        0xb66decb0L,0xa083,0x11d0,0x85,0x1e,0x00,0xc0,0x4f,0xd9,0xba,0xf3
875
DEFINE_GUIDSTRUCT("b66decb0-a083-11d0-851e-00c04fd9baf3",KSPROPSETID_Hrtf3d);
876
#define KSPROPSETID_Hrtf3d DEFINE_GUIDNAMED(KSPROPSETID_Hrtf3d)
877

    
878
typedef enum {
879
  KSPROPERTY_HRTF3D_PARAMS = 0,
880
  KSPROPERTY_HRTF3D_INITIALIZE,
881
  KSPROPERTY_HRTF3D_FILTER_FORMAT
882
} KSPROPERTY_HRTF3D;
883

    
884
typedef struct {
885
  LONG Channel;
886
  FLOAT VolSmoothScale;
887
  FLOAT TotalDryAttenuation;
888
  FLOAT TotalWetAttenuation;
889
  LONG SmoothFrequency;
890
  LONG Delay;
891
} KSDS3D_ITD_PARAMS,*PKSDS3D_ITD_PARAMS;
892

    
893
typedef struct {
894
  ULONG Enabled;
895
  KSDS3D_ITD_PARAMS LeftParams;
896
  KSDS3D_ITD_PARAMS RightParams;
897
  ULONG Reserved;
898
} KSDS3D_ITD_PARAMS_MSG,*PKSDS3D_ITD_PARAMS_MSG;
899

    
900
#define STATIC_KSPROPSETID_Itd3d                                        \
901
        0x6429f090L,0x9fd9,0x11d0,0xa7,0x5b,0x00,0xa0,0xc9,0x03,0x65,0xe3
902
DEFINE_GUIDSTRUCT("6429f090-9fd9-11d0-a75b-00a0c90365e3",KSPROPSETID_Itd3d);
903
#define KSPROPSETID_Itd3d DEFINE_GUIDNAMED(KSPROPSETID_Itd3d)
904

    
905
typedef enum {
906
  KSPROPERTY_ITD3D_PARAMS = 0
907
} KSPROPERTY_ITD3D;
908

    
909
typedef struct {
910
  KSDATARANGE DataRange;
911
  ULONG MaximumChannels;
912
  ULONG MinimumBitsPerSample;
913
  ULONG MaximumBitsPerSample;
914
  ULONG MinimumSampleFrequency;
915
  ULONG MaximumSampleFrequency;
916
} KSDATARANGE_AUDIO,*PKSDATARANGE_AUDIO;
917

    
918
#define STATIC_KSDATAFORMAT_SUBTYPE_RIFF                                \
919
        0x4995DAEEL,0x9EE6,0x11D0,0xA4,0x0E,0x00,0xA0,0xC9,0x22,0x31,0x96
920
DEFINE_GUIDSTRUCT("4995DAEE-9EE6-11D0-A40E-00A0C9223196",KSDATAFORMAT_SUBTYPE_RIFF);
921
#define KSDATAFORMAT_SUBTYPE_RIFF DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFF)
922

    
923
#define STATIC_KSDATAFORMAT_SUBTYPE_RIFFWAVE                                \
924
        0xe436eb8bL,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
925
DEFINE_GUIDSTRUCT("e436eb8b-524f-11ce-9f53-0020af0ba770",KSDATAFORMAT_SUBTYPE_RIFFWAVE);
926
#define KSDATAFORMAT_SUBTYPE_RIFFWAVE DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFFWAVE)
927

    
928
#define STATIC_KSPROPSETID_Bibliographic                                \
929
        0x07BA150EL,0xE2B1,0x11D0,0xAC,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
930
DEFINE_GUIDSTRUCT("07BA150E-E2B1-11D0-AC17-00A0C9223196",KSPROPSETID_Bibliographic);
931
#define KSPROPSETID_Bibliographic DEFINE_GUIDNAMED(KSPROPSETID_Bibliographic)
932

    
933
typedef enum {
934
  KSPROPERTY_BIBLIOGRAPHIC_LEADER = 'RDL ',
935
  KSPROPERTY_BIBLIOGRAPHIC_LCCN = '010 ',
936
  KSPROPERTY_BIBLIOGRAPHIC_ISBN = '020 ',
937
  KSPROPERTY_BIBLIOGRAPHIC_ISSN = '220 ',
938
  KSPROPERTY_BIBLIOGRAPHIC_CATALOGINGSOURCE = '040 ',
939
  KSPROPERTY_BIBLIOGRAPHIC_MAINPERSONALNAME = '001 ',
940
  KSPROPERTY_BIBLIOGRAPHIC_MAINCORPORATEBODY = '011 ',
941
  KSPROPERTY_BIBLIOGRAPHIC_MAINMEETINGNAME = '111 ',
942
  KSPROPERTY_BIBLIOGRAPHIC_MAINUNIFORMTITLE = '031 ',
943
  KSPROPERTY_BIBLIOGRAPHIC_UNIFORMTITLE = '042 ',
944
  KSPROPERTY_BIBLIOGRAPHIC_TITLESTATEMENT = '542 ',
945
  KSPROPERTY_BIBLIOGRAPHIC_VARYINGFORMTITLE = '642 ',
946
  KSPROPERTY_BIBLIOGRAPHIC_PUBLICATION = '062 ',
947
  KSPROPERTY_BIBLIOGRAPHIC_PHYSICALDESCRIPTION = '003 ',
948
  KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTITLE = '044 ',
949
  KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENT = '094 ',
950
  KSPROPERTY_BIBLIOGRAPHIC_GENERALNOTE = '005 ',
951
  KSPROPERTY_BIBLIOGRAPHIC_BIBLIOGRAPHYNOTE = '405 ',
952
  KSPROPERTY_BIBLIOGRAPHIC_CONTENTSNOTE = '505 ',
953
  KSPROPERTY_BIBLIOGRAPHIC_CREATIONCREDIT = '805 ',
954
  KSPROPERTY_BIBLIOGRAPHIC_CITATION = '015 ',
955
  KSPROPERTY_BIBLIOGRAPHIC_PARTICIPANT = '115 ',
956
  KSPROPERTY_BIBLIOGRAPHIC_SUMMARY = '025 ',
957
  KSPROPERTY_BIBLIOGRAPHIC_TARGETAUDIENCE = '125 ',
958
  KSPROPERTY_BIBLIOGRAPHIC_ADDEDFORMAVAILABLE = '035 ',
959
  KSPROPERTY_BIBLIOGRAPHIC_SYSTEMDETAILS = '835 ',
960
  KSPROPERTY_BIBLIOGRAPHIC_AWARDS = '685 ',
961
  KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYPERSONALNAME = '006 ',
962
  KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYTOPICALTERM = '056 ',
963
  KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYGEOGRAPHIC = '156 ',
964
  KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMGENRE = '556 ',
965
  KSPROPERTY_BIBLIOGRAPHIC_INDEXTERMCURRICULUM = '856 ',
966
  KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYUNIFORMTITLE = '037 ',
967
  KSPROPERTY_BIBLIOGRAPHIC_ADDEDENTRYRELATED = '047 ',
968
  KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTPERSONALNAME = '008 ',
969
  KSPROPERTY_BIBLIOGRAPHIC_SERIESSTATEMENTUNIFORMTITLE = '038 '
970
} KSPROPERTY_BIBLIOGRAPHIC;
971

    
972
#define STATIC_KSPROPSETID_TopologyNode                                        \
973
        0x45FFAAA1L,0x6E1B,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00
974
DEFINE_GUIDSTRUCT("45FFAAA1-6E1B-11D0-BCF2-444553540000",KSPROPSETID_TopologyNode);
975
#define KSPROPSETID_TopologyNode DEFINE_GUIDNAMED(KSPROPSETID_TopologyNode)
976

    
977
typedef enum {
978
  KSPROPERTY_TOPOLOGYNODE_ENABLE = 1,
979
  KSPROPERTY_TOPOLOGYNODE_RESET
980
} KSPROPERTY_TOPOLOGYNODE;
981

    
982
#define STATIC_KSPROPSETID_RtAudio                                        \
983
        0xa855a48c,0x2f78,0x4729,0x90,0x51,0x19,0x68,0x74,0x6b,0x9e,0xef
984
DEFINE_GUIDSTRUCT("A855A48C-2F78-4729-9051-1968746B9EEF",KSPROPSETID_RtAudio);
985
#define KSPROPSETID_RtAudio DEFINE_GUIDNAMED(KSPROPSETID_RtAudio)
986

    
987
typedef enum {
988
  KSPROPERTY_RTAUDIO_GETPOSITIONFUNCTION,
989
  /* Added for Vista and later */
990
  KSPROPERTY_RTAUDIO_BUFFER,
991
  KSPROPERTY_RTAUDIO_HWLATENCY,
992
  KSPROPERTY_RTAUDIO_POSITIONREGISTER,
993
  KSPROPERTY_RTAUDIO_CLOCKREGISTER,
994
  KSPROPERTY_RTAUDIO_BUFFER_WITH_NOTIFICATION,
995
  KSPROPERTY_RTAUDIO_REGISTER_NOTIFICATION_EVENT,
996
  KSPROPERTY_RTAUDIO_UNREGISTER_NOTIFICATION_EVENT
997
} KSPROPERTY_RTAUDIO;
998

    
999
#define STATIC_KSPROPSETID_DrmAudioStream                                \
1000
        0x2f2c8ddd,0x4198,0x4fac,0xba,0x29,0x61,0xbb,0x5,0xb7,0xde,0x6
1001
DEFINE_GUIDSTRUCT("2F2C8DDD-4198-4fac-BA29-61BB05B7DE06",KSPROPSETID_DrmAudioStream);
1002
#define KSPROPSETID_DrmAudioStream DEFINE_GUIDNAMED(KSPROPSETID_DrmAudioStream)
1003

    
1004
typedef enum {
1005
  KSPROPERTY_DRMAUDIOSTREAM_CONTENTID
1006
} KSPROPERTY_DRMAUDIOSTREAM;
1007

    
1008
#define STATIC_KSPROPSETID_Audio                                        \
1009
        0x45FFAAA0L,0x6E1B,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00
1010
DEFINE_GUIDSTRUCT("45FFAAA0-6E1B-11D0-BCF2-444553540000",KSPROPSETID_Audio);
1011
#define KSPROPSETID_Audio DEFINE_GUIDNAMED(KSPROPSETID_Audio)
1012

    
1013
typedef enum {
1014
  KSPROPERTY_AUDIO_LATENCY = 1,
1015
  KSPROPERTY_AUDIO_COPY_PROTECTION,
1016
  KSPROPERTY_AUDIO_CHANNEL_CONFIG,
1017
  KSPROPERTY_AUDIO_VOLUMELEVEL,
1018
  KSPROPERTY_AUDIO_POSITION,
1019
  KSPROPERTY_AUDIO_DYNAMIC_RANGE,
1020
  KSPROPERTY_AUDIO_QUALITY,
1021
  KSPROPERTY_AUDIO_SAMPLING_RATE,
1022
  KSPROPERTY_AUDIO_DYNAMIC_SAMPLING_RATE,
1023
  KSPROPERTY_AUDIO_MIX_LEVEL_TABLE,
1024
  KSPROPERTY_AUDIO_MIX_LEVEL_CAPS,
1025
  KSPROPERTY_AUDIO_MUX_SOURCE,
1026
  KSPROPERTY_AUDIO_MUTE,
1027
  KSPROPERTY_AUDIO_BASS,
1028
  KSPROPERTY_AUDIO_MID,
1029
  KSPROPERTY_AUDIO_TREBLE,
1030
  KSPROPERTY_AUDIO_BASS_BOOST,
1031
  KSPROPERTY_AUDIO_EQ_LEVEL,
1032
  KSPROPERTY_AUDIO_NUM_EQ_BANDS,
1033
  KSPROPERTY_AUDIO_EQ_BANDS,
1034
  KSPROPERTY_AUDIO_AGC,
1035
  KSPROPERTY_AUDIO_DELAY,
1036
  KSPROPERTY_AUDIO_LOUDNESS,
1037
  KSPROPERTY_AUDIO_WIDE_MODE,
1038
  KSPROPERTY_AUDIO_WIDENESS,
1039
  KSPROPERTY_AUDIO_REVERB_LEVEL,
1040
  KSPROPERTY_AUDIO_CHORUS_LEVEL,
1041
  KSPROPERTY_AUDIO_DEV_SPECIFIC,
1042
  KSPROPERTY_AUDIO_DEMUX_DEST,
1043
  KSPROPERTY_AUDIO_STEREO_ENHANCE,
1044
  KSPROPERTY_AUDIO_MANUFACTURE_GUID,
1045
  KSPROPERTY_AUDIO_PRODUCT_GUID,
1046
  KSPROPERTY_AUDIO_CPU_RESOURCES,
1047
  KSPROPERTY_AUDIO_STEREO_SPEAKER_GEOMETRY,
1048
  KSPROPERTY_AUDIO_SURROUND_ENCODE,
1049
  KSPROPERTY_AUDIO_3D_INTERFACE,
1050
  KSPROPERTY_AUDIO_PEAKMETER,
1051
  KSPROPERTY_AUDIO_ALGORITHM_INSTANCE,
1052
  KSPROPERTY_AUDIO_FILTER_STATE,
1053
  KSPROPERTY_AUDIO_PREFERRED_STATUS
1054
} KSPROPERTY_AUDIO;
1055

    
1056
#define KSAUDIO_QUALITY_WORST                        0x0
1057
#define KSAUDIO_QUALITY_PC                        0x1
1058
#define KSAUDIO_QUALITY_BASIC                        0x2
1059
#define KSAUDIO_QUALITY_ADVANCED                0x3
1060

    
1061
#define KSAUDIO_CPU_RESOURCES_NOT_HOST_CPU        0x00000000
1062
#define KSAUDIO_CPU_RESOURCES_HOST_CPU                0x7FFFFFFF
1063

    
1064
typedef struct {
1065
  WINBOOL fCopyrighted;
1066
  WINBOOL fOriginal;
1067
} KSAUDIO_COPY_PROTECTION,*PKSAUDIO_COPY_PROTECTION;
1068

    
1069
typedef struct {
1070
  LONG ActiveSpeakerPositions;
1071
} KSAUDIO_CHANNEL_CONFIG,*PKSAUDIO_CHANNEL_CONFIG;
1072

    
1073
#define SPEAKER_FRONT_LEFT                0x1
1074
#define SPEAKER_FRONT_RIGHT                0x2
1075
#define SPEAKER_FRONT_CENTER                0x4
1076
#define SPEAKER_LOW_FREQUENCY                0x8
1077
#define SPEAKER_BACK_LEFT                0x10
1078
#define SPEAKER_BACK_RIGHT                0x20
1079
#define SPEAKER_FRONT_LEFT_OF_CENTER        0x40
1080
#define SPEAKER_FRONT_RIGHT_OF_CENTER        0x80
1081
#define SPEAKER_BACK_CENTER                0x100
1082
#define SPEAKER_SIDE_LEFT                0x200
1083
#define SPEAKER_SIDE_RIGHT                0x400
1084
#define SPEAKER_TOP_CENTER                0x800
1085
#define SPEAKER_TOP_FRONT_LEFT                0x1000
1086
#define SPEAKER_TOP_FRONT_CENTER        0x2000
1087
#define SPEAKER_TOP_FRONT_RIGHT                0x4000
1088
#define SPEAKER_TOP_BACK_LEFT                0x8000
1089
#define SPEAKER_TOP_BACK_CENTER                0x10000
1090
#define SPEAKER_TOP_BACK_RIGHT                0x20000
1091

    
1092
#define SPEAKER_RESERVED                0x7FFC0000
1093

    
1094
#define SPEAKER_ALL                        0x80000000
1095

    
1096
#define KSAUDIO_SPEAKER_DIRECTOUT        0
1097
#define KSAUDIO_SPEAKER_MONO                (SPEAKER_FRONT_CENTER)
1098
#define KSAUDIO_SPEAKER_STEREO                (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT)
1099
#define KSAUDIO_SPEAKER_QUAD                (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |                \
1100
                                         SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
1101
#define KSAUDIO_SPEAKER_SURROUND        (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |                \
1102
                                         SPEAKER_FRONT_CENTER | SPEAKER_BACK_CENTER)
1103
#define KSAUDIO_SPEAKER_5POINT1                (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |                \
1104
                                         SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY |                \
1105
                                         SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT)
1106
#define KSAUDIO_SPEAKER_7POINT1                (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |                \
1107
                                         SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY |                \
1108
                                         SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT |                \
1109
                                         SPEAKER_FRONT_LEFT_OF_CENTER | SPEAKER_FRONT_RIGHT_OF_CENTER)
1110
#define KSAUDIO_SPEAKER_5POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |                \
1111
                                          SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY |        \
1112
                                          SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
1113
#define KSAUDIO_SPEAKER_7POINT1_SURROUND (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT |                \
1114
                                          SPEAKER_FRONT_CENTER | SPEAKER_LOW_FREQUENCY |        \
1115
                                          SPEAKER_BACK_LEFT | SPEAKER_BACK_RIGHT |                \
1116
                                          SPEAKER_SIDE_LEFT | SPEAKER_SIDE_RIGHT)
1117

    
1118
#define KSAUDIO_SPEAKER_5POINT1_BACK        KSAUDIO_SPEAKER_5POINT1
1119
#define KSAUDIO_SPEAKER_7POINT1_WIDE        KSAUDIO_SPEAKER_7POINT1
1120

    
1121
#define KSAUDIO_SPEAKER_GROUND_FRONT_LEFT        SPEAKER_FRONT_LEFT
1122
#define KSAUDIO_SPEAKER_GROUND_FRONT_CENTER        SPEAKER_FRONT_CENTER
1123
#define KSAUDIO_SPEAKER_GROUND_FRONT_RIGHT        SPEAKER_FRONT_RIGHT
1124
#define KSAUDIO_SPEAKER_GROUND_REAR_LEFT        SPEAKER_BACK_LEFT
1125
#define KSAUDIO_SPEAKER_GROUND_REAR_RIGHT        SPEAKER_BACK_RIGHT
1126
#define KSAUDIO_SPEAKER_TOP_MIDDLE                SPEAKER_TOP_CENTER
1127
#define KSAUDIO_SPEAKER_SUPER_WOOFER                SPEAKER_LOW_FREQUENCY
1128

    
1129
typedef struct {
1130
  ULONG QuietCompression;
1131
  ULONG LoudCompression;
1132
} KSAUDIO_DYNAMIC_RANGE,*PKSAUDIO_DYNAMIC_RANGE;
1133

    
1134
typedef struct {
1135
  WINBOOL Mute;
1136
  LONG Level;
1137
} KSAUDIO_MIXLEVEL,*PKSAUDIO_MIXLEVEL;
1138

    
1139
typedef struct {
1140
  WINBOOL Mute;
1141
  LONG Minimum;
1142
  LONG Maximum;
1143
  LONG Reset;
1144
} KSAUDIO_MIX_CAPS,*PKSAUDIO_MIX_CAPS;
1145

    
1146
typedef struct {
1147
  ULONG InputChannels;
1148
  ULONG OutputChannels;
1149
  KSAUDIO_MIX_CAPS Capabilities[1];
1150
} KSAUDIO_MIXCAP_TABLE,*PKSAUDIO_MIXCAP_TABLE;
1151

    
1152
typedef enum {
1153
  SE_TECH_NONE,
1154
  SE_TECH_ANALOG_DEVICES_PHAT,
1155
  SE_TECH_CREATIVE,
1156
  SE_TECH_NATIONAL_SEMI,
1157
  SE_TECH_YAMAHA_YMERSION,
1158
  SE_TECH_BBE,
1159
  SE_TECH_CRYSTAL_SEMI,
1160
  SE_TECH_QSOUND_QXPANDER,
1161
  SE_TECH_SPATIALIZER,
1162
  SE_TECH_SRS,
1163
  SE_TECH_PLATFORM_TECH,
1164
  SE_TECH_AKM,
1165
  SE_TECH_AUREAL,
1166
  SE_TECH_AZTECH,
1167
  SE_TECH_BINAURA,
1168
  SE_TECH_ESS_TECH,
1169
  SE_TECH_HARMAN_VMAX,
1170
  SE_TECH_NVIDEA,
1171
  SE_TECH_PHILIPS_INCREDIBLE,
1172
  SE_TECH_TEXAS_INST,
1173
  SE_TECH_VLSI_TECH
1174
} SE_TECHNIQUE;
1175

    
1176
typedef struct {
1177
  SE_TECHNIQUE Technique;
1178
  ULONG Center;
1179
  ULONG Depth;
1180
  ULONG Reserved;
1181
} KSAUDIO_STEREO_ENHANCE,*PKSAUDIO_STEREO_ENHANCE;
1182

    
1183
typedef enum {
1184
  KSPROPERTY_SYSAUDIO_NORMAL_DEFAULT = 0,
1185
  KSPROPERTY_SYSAUDIO_PLAYBACK_DEFAULT,
1186
  KSPROPERTY_SYSAUDIO_RECORD_DEFAULT,
1187
  KSPROPERTY_SYSAUDIO_MIDI_DEFAULT,
1188
  KSPROPERTY_SYSAUDIO_MIXER_DEFAULT
1189
} KSPROPERTY_SYSAUDIO_DEFAULT_TYPE;
1190

    
1191
typedef struct {
1192
  WINBOOL Enable;
1193
  KSPROPERTY_SYSAUDIO_DEFAULT_TYPE DeviceType;
1194
  ULONG Flags;
1195
  ULONG Reserved;
1196
} KSAUDIO_PREFERRED_STATUS,*PKSAUDIO_PREFERRED_STATUS;
1197

    
1198
#define STATIC_KSNODETYPE_DAC                                                \
1199
        0x507AE360L,0xC554,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1200
DEFINE_GUIDSTRUCT("507AE360-C554-11D0-8A2B-00A0C9255AC1",KSNODETYPE_DAC);
1201
#define KSNODETYPE_DAC DEFINE_GUIDNAMED(KSNODETYPE_DAC)
1202

    
1203
#define STATIC_KSNODETYPE_ADC                                                \
1204
        0x4D837FE0L,0xC555,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1205
DEFINE_GUIDSTRUCT("4D837FE0-C555-11D0-8A2B-00A0C9255AC1",KSNODETYPE_ADC);
1206
#define KSNODETYPE_ADC DEFINE_GUIDNAMED(KSNODETYPE_ADC)
1207

    
1208
#define STATIC_KSNODETYPE_SRC                                                \
1209
        0x9DB7B9E0L,0xC555,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1210
DEFINE_GUIDSTRUCT("9DB7B9E0-C555-11D0-8A2B-00A0C9255AC1",KSNODETYPE_SRC);
1211
#define KSNODETYPE_SRC DEFINE_GUIDNAMED(KSNODETYPE_SRC)
1212

    
1213
#define STATIC_KSNODETYPE_SUPERMIX                                        \
1214
        0xE573ADC0L,0xC555,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1215
DEFINE_GUIDSTRUCT("E573ADC0-C555-11D0-8A2B-00A0C9255AC1",KSNODETYPE_SUPERMIX);
1216
#define KSNODETYPE_SUPERMIX DEFINE_GUIDNAMED(KSNODETYPE_SUPERMIX)
1217

    
1218
#define STATIC_KSNODETYPE_MUX                                                \
1219
        0x2CEAF780L,0xC556,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1220
DEFINE_GUIDSTRUCT("2CEAF780-C556-11D0-8A2B-00A0C9255AC1",KSNODETYPE_MUX);
1221
#define KSNODETYPE_MUX DEFINE_GUIDNAMED(KSNODETYPE_MUX)
1222

    
1223
#define STATIC_KSNODETYPE_DEMUX                                                \
1224
        0xC0EB67D4L,0xE807,0x11D0,0x95,0x8A,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1225
DEFINE_GUIDSTRUCT("C0EB67D4-E807-11D0-958A-00C04FB925D3",KSNODETYPE_DEMUX);
1226
#define KSNODETYPE_DEMUX DEFINE_GUIDNAMED(KSNODETYPE_DEMUX)
1227

    
1228
#define STATIC_KSNODETYPE_SUM                                                \
1229
        0xDA441A60L,0xC556,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1230
DEFINE_GUIDSTRUCT("DA441A60-C556-11D0-8A2B-00A0C9255AC1",KSNODETYPE_SUM);
1231
#define KSNODETYPE_SUM DEFINE_GUIDNAMED(KSNODETYPE_SUM)
1232

    
1233
#define STATIC_KSNODETYPE_MUTE                                                \
1234
        0x02B223C0L,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1235
DEFINE_GUIDSTRUCT("02B223C0-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_MUTE);
1236
#define KSNODETYPE_MUTE DEFINE_GUIDNAMED(KSNODETYPE_MUTE)
1237

    
1238
#define STATIC_KSNODETYPE_VOLUME                                        \
1239
        0x3A5ACC00L,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1240
DEFINE_GUIDSTRUCT("3A5ACC00-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_VOLUME);
1241
#define KSNODETYPE_VOLUME DEFINE_GUIDNAMED(KSNODETYPE_VOLUME)
1242

    
1243
#define STATIC_KSNODETYPE_TONE                                                \
1244
        0x7607E580L,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1245
DEFINE_GUIDSTRUCT("7607E580-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_TONE);
1246
#define KSNODETYPE_TONE DEFINE_GUIDNAMED(KSNODETYPE_TONE)
1247

    
1248
#define STATIC_KSNODETYPE_EQUALIZER                                        \
1249
        0x9D41B4A0L,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1250
DEFINE_GUIDSTRUCT("9D41B4A0-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_EQUALIZER);
1251
#define KSNODETYPE_EQUALIZER DEFINE_GUIDNAMED(KSNODETYPE_EQUALIZER)
1252

    
1253
#define STATIC_KSNODETYPE_AGC                                                \
1254
        0xE88C9BA0L,0xC557,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1255
DEFINE_GUIDSTRUCT("E88C9BA0-C557-11D0-8A2B-00A0C9255AC1",KSNODETYPE_AGC);
1256
#define KSNODETYPE_AGC DEFINE_GUIDNAMED(KSNODETYPE_AGC)
1257

    
1258
#define STATIC_KSNODETYPE_NOISE_SUPPRESS                                \
1259
        0xe07f903f,0x62fd,0x4e60,0x8c,0xdd,0xde,0xa7,0x23,0x66,0x65,0xb5
1260
DEFINE_GUIDSTRUCT("E07F903F-62FD-4e60-8CDD-DEA7236665B5",KSNODETYPE_NOISE_SUPPRESS);
1261
#define KSNODETYPE_NOISE_SUPPRESS DEFINE_GUIDNAMED(KSNODETYPE_NOISE_SUPPRESS)
1262

    
1263
#define STATIC_KSNODETYPE_DELAY                                                \
1264
        0x144981E0L,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1265
DEFINE_GUIDSTRUCT("144981E0-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_DELAY);
1266
#define KSNODETYPE_DELAY DEFINE_GUIDNAMED(KSNODETYPE_DELAY)
1267

    
1268
#define STATIC_KSNODETYPE_LOUDNESS                                        \
1269
        0x41887440L,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1270
DEFINE_GUIDSTRUCT("41887440-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_LOUDNESS);
1271
#define KSNODETYPE_LOUDNESS DEFINE_GUIDNAMED(KSNODETYPE_LOUDNESS)
1272

    
1273
#define STATIC_KSNODETYPE_PROLOGIC_DECODER                                \
1274
        0x831C2C80L,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1275
DEFINE_GUIDSTRUCT("831C2C80-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_PROLOGIC_DECODER);
1276
#define KSNODETYPE_PROLOGIC_DECODER DEFINE_GUIDNAMED(KSNODETYPE_PROLOGIC_DECODER)
1277

    
1278
#define STATIC_KSNODETYPE_STEREO_WIDE                                        \
1279
        0xA9E69800L,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1280
DEFINE_GUIDSTRUCT("A9E69800-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_STEREO_WIDE);
1281
#define KSNODETYPE_STEREO_WIDE DEFINE_GUIDNAMED(KSNODETYPE_STEREO_WIDE)
1282

    
1283
#define STATIC_KSNODETYPE_STEREO_ENHANCE                                \
1284
        0xAF6878ACL,0xE83F,0x11D0,0x95,0x8A,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1285
DEFINE_GUIDSTRUCT("AF6878AC-E83F-11D0-958A-00C04FB925D3",KSNODETYPE_STEREO_ENHANCE);
1286
#define KSNODETYPE_STEREO_ENHANCE DEFINE_GUIDNAMED(KSNODETYPE_STEREO_ENHANCE)
1287

    
1288
#define STATIC_KSNODETYPE_REVERB                                        \
1289
        0xEF0328E0L,0xC558,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1290
DEFINE_GUIDSTRUCT("EF0328E0-C558-11D0-8A2B-00A0C9255AC1",KSNODETYPE_REVERB);
1291
#define KSNODETYPE_REVERB DEFINE_GUIDNAMED(KSNODETYPE_REVERB)
1292

    
1293
#define STATIC_KSNODETYPE_CHORUS                                        \
1294
        0x20173F20L,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1295
DEFINE_GUIDSTRUCT("20173F20-C559-11D0-8A2B-00A0C9255AC1",KSNODETYPE_CHORUS);
1296
#define KSNODETYPE_CHORUS DEFINE_GUIDNAMED(KSNODETYPE_CHORUS)
1297

    
1298
#define STATIC_KSNODETYPE_3D_EFFECTS                                        \
1299
        0x55515860L,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1300
DEFINE_GUIDSTRUCT("55515860-C559-11D0-8A2B-00A0C9255AC1",KSNODETYPE_3D_EFFECTS);
1301
#define KSNODETYPE_3D_EFFECTS DEFINE_GUIDNAMED(KSNODETYPE_3D_EFFECTS)
1302

    
1303
#define STATIC_KSNODETYPE_ACOUSTIC_ECHO_CANCEL STATIC_KSCATEGORY_ACOUSTIC_ECHO_CANCEL
1304
#define KSNODETYPE_ACOUSTIC_ECHO_CANCEL KSCATEGORY_ACOUSTIC_ECHO_CANCEL
1305

    
1306
#define STATIC_KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL                \
1307
        0x1c22c56dL,0x9879,0x4f5b,0xa3,0x89,0x27,0x99,0x6d,0xdc,0x28,0x10
1308
DEFINE_GUIDSTRUCT("1C22C56D-9879-4f5b-A389-27996DDC2810",KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL);
1309
#define KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_ACOUSTIC_ECHO_CANCEL)
1310

    
1311
#define STATIC_KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS                \
1312
        0x5ab0882eL,0x7274,0x4516,0x87,0x7d,0x4e,0xee,0x99,0xba,0x4f,0xd0
1313
DEFINE_GUIDSTRUCT("5AB0882E-7274-4516-877D-4EEE99BA4FD0",KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS);
1314
#define KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_NOISE_SUPPRESS)
1315

    
1316
#define STATIC_KSALGORITHMINSTANCE_SYSTEM_AGC                                \
1317
        0x950e55b9L,0x877c,0x4c67,0xbe,0x8,0xe4,0x7b,0x56,0x11,0x13,0xa
1318
DEFINE_GUIDSTRUCT("950E55B9-877C-4c67-BE08-E47B5611130A",KSALGORITHMINSTANCE_SYSTEM_AGC);
1319
#define KSALGORITHMINSTANCE_SYSTEM_AGC DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_AGC)
1320

    
1321
#define STATIC_KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR        \
1322
        0xB6F5A0A0L,0x9E61,0x4F8C,0x91,0xE3,0x76,0xCF,0xF,0x3C,0x47,0x1F
1323
DEFINE_GUIDSTRUCT("B6F5A0A0-9E61-4f8c-91E3-76CF0F3C471F",KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR);
1324
#define KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR DEFINE_GUIDNAMED(KSALGORITHMINSTANCE_SYSTEM_MICROPHONE_ARRAY_PROCESSOR)
1325

    
1326
#define STATIC_KSNODETYPE_MICROPHONE_ARRAY_PROCESSOR STATIC_KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR
1327
#define KSNODETYPE_MICROPHONE_ARRAY_PROCESSOR KSCATEGORY_MICROPHONE_ARRAY_PROCESSOR
1328

    
1329
#define STATIC_KSNODETYPE_DEV_SPECIFIC                                        \
1330
        0x941C7AC0L,0xC559,0x11D0,0x8A,0x2B,0x00,0xA0,0xC9,0x25,0x5A,0xC1
1331
DEFINE_GUIDSTRUCT("941C7AC0-C559-11D0-8A2B-00A0C9255AC1",KSNODETYPE_DEV_SPECIFIC);
1332
#define KSNODETYPE_DEV_SPECIFIC DEFINE_GUIDNAMED(KSNODETYPE_DEV_SPECIFIC)
1333

    
1334
#define STATIC_KSNODETYPE_PROLOGIC_ENCODER                                \
1335
        0x8074C5B2L,0x3C66,0x11D2,0xB4,0x5A,0x30,0x78,0x30,0x2C,0x20,0x30
1336
DEFINE_GUIDSTRUCT("8074C5B2-3C66-11D2-B45A-3078302C2030",KSNODETYPE_PROLOGIC_ENCODER);
1337
#define KSNODETYPE_PROLOGIC_ENCODER DEFINE_GUIDNAMED(KSNODETYPE_PROLOGIC_ENCODER)
1338
#define KSNODETYPE_SURROUND_ENCODER KSNODETYPE_PROLOGIC_ENCODER
1339

    
1340
#define STATIC_KSNODETYPE_PEAKMETER                                        \
1341
        0xa085651eL,0x5f0d,0x4b36,0xa8,0x69,0xd1,0x95,0xd6,0xab,0x4b,0x9e
1342
DEFINE_GUIDSTRUCT("A085651E-5F0D-4b36-A869-D195D6AB4B9E",KSNODETYPE_PEAKMETER);
1343
#define KSNODETYPE_PEAKMETER DEFINE_GUIDNAMED(KSNODETYPE_PEAKMETER)
1344

    
1345
#define STATIC_KSAUDFNAME_BASS                                                \
1346
        0x185FEDE0L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1347
DEFINE_GUIDSTRUCT("185FEDE0-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_BASS);
1348
#define KSAUDFNAME_BASS DEFINE_GUIDNAMED(KSAUDFNAME_BASS)
1349

    
1350
#define STATIC_KSAUDFNAME_TREBLE                                        \
1351
        0x185FEDE1L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1352
DEFINE_GUIDSTRUCT("185FEDE1-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_TREBLE);
1353
#define KSAUDFNAME_TREBLE DEFINE_GUIDNAMED(KSAUDFNAME_TREBLE)
1354

    
1355
#define STATIC_KSAUDFNAME_3D_STEREO                                        \
1356
        0x185FEDE2L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1357
DEFINE_GUIDSTRUCT("185FEDE2-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_3D_STEREO);
1358
#define KSAUDFNAME_3D_STEREO DEFINE_GUIDNAMED(KSAUDFNAME_3D_STEREO)
1359

    
1360
#define STATIC_KSAUDFNAME_MASTER_VOLUME                                        \
1361
        0x185FEDE3L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1362
DEFINE_GUIDSTRUCT("185FEDE3-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MASTER_VOLUME);
1363
#define KSAUDFNAME_MASTER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_VOLUME)
1364

    
1365
#define STATIC_KSAUDFNAME_MASTER_MUTE                                        \
1366
        0x185FEDE4L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1367
DEFINE_GUIDSTRUCT("185FEDE4-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MASTER_MUTE);
1368
#define KSAUDFNAME_MASTER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MASTER_MUTE)
1369

    
1370
#define STATIC_KSAUDFNAME_WAVE_VOLUME                                        \
1371
        0x185FEDE5L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1372
DEFINE_GUIDSTRUCT("185FEDE5-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_VOLUME);
1373
#define KSAUDFNAME_WAVE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_VOLUME)
1374

    
1375
#define STATIC_KSAUDFNAME_WAVE_MUTE                                        \
1376
        0x185FEDE6L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1377
DEFINE_GUIDSTRUCT("185FEDE6-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_MUTE);
1378
#define KSAUDFNAME_WAVE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_MUTE)
1379

    
1380
#define STATIC_KSAUDFNAME_MIDI_VOLUME                                        \
1381
        0x185FEDE7L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1382
DEFINE_GUIDSTRUCT("185FEDE7-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI_VOLUME);
1383
#define KSAUDFNAME_MIDI_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_VOLUME)
1384

    
1385
#define STATIC_KSAUDFNAME_MIDI_MUTE                                        \
1386
        0x185FEDE8L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1387
DEFINE_GUIDSTRUCT("185FEDE8-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI_MUTE);
1388
#define KSAUDFNAME_MIDI_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_MUTE)
1389

    
1390
#define STATIC_KSAUDFNAME_CD_VOLUME                                        \
1391
        0x185FEDE9L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1392
DEFINE_GUIDSTRUCT("185FEDE9-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_VOLUME);
1393
#define KSAUDFNAME_CD_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_VOLUME)
1394

    
1395
#define STATIC_KSAUDFNAME_CD_MUTE                                        \
1396
        0x185FEDEAL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1397
DEFINE_GUIDSTRUCT("185FEDEA-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_MUTE);
1398
#define KSAUDFNAME_CD_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_CD_MUTE)
1399

    
1400
#define STATIC_KSAUDFNAME_LINE_VOLUME                                        \
1401
        0x185FEDEBL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1402
DEFINE_GUIDSTRUCT("185FEDEB-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_VOLUME);
1403
#define KSAUDFNAME_LINE_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_VOLUME)
1404

    
1405
#define STATIC_KSAUDFNAME_LINE_MUTE                                        \
1406
        0x185FEDECL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1407
DEFINE_GUIDSTRUCT("185FEDEC-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_MUTE);
1408
#define KSAUDFNAME_LINE_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_LINE_MUTE)
1409

    
1410
#define STATIC_KSAUDFNAME_MIC_VOLUME                                        \
1411
        0x185FEDEDL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1412
DEFINE_GUIDSTRUCT("185FEDED-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIC_VOLUME);
1413
#define KSAUDFNAME_MIC_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_VOLUME)
1414

    
1415
#define STATIC_KSAUDFNAME_MIC_MUTE                                        \
1416
        0x185FEDEEL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1417
DEFINE_GUIDSTRUCT("185FEDEE-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIC_MUTE);
1418
#define KSAUDFNAME_MIC_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MIC_MUTE)
1419

    
1420
#define STATIC_KSAUDFNAME_RECORDING_SOURCE                                \
1421
        0x185FEDEFL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1422
DEFINE_GUIDSTRUCT("185FEDEF-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_RECORDING_SOURCE);
1423
#define KSAUDFNAME_RECORDING_SOURCE DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_SOURCE)
1424

    
1425
#define STATIC_KSAUDFNAME_PC_SPEAKER_VOLUME                                \
1426
        0x185FEDF0L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1427
DEFINE_GUIDSTRUCT("185FEDF0-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_PC_SPEAKER_VOLUME);
1428
#define KSAUDFNAME_PC_SPEAKER_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER_VOLUME)
1429

    
1430
#define STATIC_KSAUDFNAME_PC_SPEAKER_MUTE                                \
1431
        0x185FEDF1L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1432
DEFINE_GUIDSTRUCT("185FEDF1-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_PC_SPEAKER_MUTE);
1433
#define KSAUDFNAME_PC_SPEAKER_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER_MUTE)
1434

    
1435
#define STATIC_KSAUDFNAME_MIDI_IN_VOLUME                                \
1436
        0x185FEDF2L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1437
DEFINE_GUIDSTRUCT("185FEDF2-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI_IN_VOLUME);
1438
#define KSAUDFNAME_MIDI_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIDI_IN_VOLUME)
1439

    
1440
#define STATIC_KSAUDFNAME_CD_IN_VOLUME                                        \
1441
        0x185FEDF3L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1442
DEFINE_GUIDSTRUCT("185FEDF3-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_IN_VOLUME);
1443
#define KSAUDFNAME_CD_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_CD_IN_VOLUME)
1444

    
1445
#define STATIC_KSAUDFNAME_LINE_IN_VOLUME                                \
1446
        0x185FEDF4L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1447
DEFINE_GUIDSTRUCT("185FEDF4-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_IN_VOLUME);
1448
#define KSAUDFNAME_LINE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN_VOLUME)
1449

    
1450
#define STATIC_KSAUDFNAME_MIC_IN_VOLUME                                        \
1451
        0x185FEDF5L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1452
DEFINE_GUIDSTRUCT("185FEDF5-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIC_IN_VOLUME);
1453
#define KSAUDFNAME_MIC_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MIC_IN_VOLUME)
1454

    
1455
#define STATIC_KSAUDFNAME_WAVE_IN_VOLUME                                \
1456
        0x185FEDF6L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1457
DEFINE_GUIDSTRUCT("185FEDF6-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_IN_VOLUME);
1458
#define KSAUDFNAME_WAVE_IN_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_IN_VOLUME)
1459

    
1460
#define STATIC_KSAUDFNAME_VOLUME_CONTROL                                \
1461
        0x185FEDF7L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1462
DEFINE_GUIDSTRUCT("185FEDF7-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_VOLUME_CONTROL);
1463
#define KSAUDFNAME_VOLUME_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_VOLUME_CONTROL)
1464

    
1465
#define STATIC_KSAUDFNAME_MIDI                                                \
1466
        0x185FEDF8L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1467
DEFINE_GUIDSTRUCT("185FEDF8-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_MIDI);
1468
#define KSAUDFNAME_MIDI DEFINE_GUIDNAMED(KSAUDFNAME_MIDI)
1469

    
1470
#define STATIC_KSAUDFNAME_LINE_IN                                        \
1471
        0x185FEDF9L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1472
DEFINE_GUIDSTRUCT("185FEDF9-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_LINE_IN);
1473
#define KSAUDFNAME_LINE_IN DEFINE_GUIDNAMED(KSAUDFNAME_LINE_IN)
1474

    
1475
#define STATIC_KSAUDFNAME_RECORDING_CONTROL                                \
1476
        0x185FEDFAL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1477
DEFINE_GUIDSTRUCT("185FEDFA-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_RECORDING_CONTROL);
1478
#define KSAUDFNAME_RECORDING_CONTROL DEFINE_GUIDNAMED(KSAUDFNAME_RECORDING_CONTROL)
1479

    
1480
#define STATIC_KSAUDFNAME_CD_AUDIO                                        \
1481
        0x185FEDFBL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1482
DEFINE_GUIDSTRUCT("185FEDFB-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_CD_AUDIO);
1483
#define KSAUDFNAME_CD_AUDIO DEFINE_GUIDNAMED(KSAUDFNAME_CD_AUDIO)
1484

    
1485
#define STATIC_KSAUDFNAME_AUX_VOLUME                                        \
1486
        0x185FEDFCL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1487
DEFINE_GUIDSTRUCT("185FEDFC-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_AUX_VOLUME);
1488
#define KSAUDFNAME_AUX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_AUX_VOLUME)
1489

    
1490
#define STATIC_KSAUDFNAME_AUX_MUTE                                        \
1491
        0x185FEDFDL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1492
DEFINE_GUIDSTRUCT("185FEDFD-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_AUX_MUTE);
1493
#define KSAUDFNAME_AUX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_AUX_MUTE)
1494

    
1495
#define STATIC_KSAUDFNAME_AUX                                                \
1496
        0x185FEDFEL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1497
DEFINE_GUIDSTRUCT("185FEDFE-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_AUX);
1498
#define KSAUDFNAME_AUX DEFINE_GUIDNAMED(KSAUDFNAME_AUX)
1499

    
1500
#define STATIC_KSAUDFNAME_PC_SPEAKER                                        \
1501
        0x185FEDFFL,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1502
DEFINE_GUIDSTRUCT("185FEDFF-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_PC_SPEAKER);
1503
#define KSAUDFNAME_PC_SPEAKER DEFINE_GUIDNAMED(KSAUDFNAME_PC_SPEAKER)
1504

    
1505
#define STATIC_KSAUDFNAME_WAVE_OUT_MIX                                        \
1506
        0x185FEE00L,0x9905,0x11D1,0x95,0xA9,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1507
DEFINE_GUIDSTRUCT("185FEE00-9905-11D1-95A9-00C04FB925D3",KSAUDFNAME_WAVE_OUT_MIX);
1508
#define KSAUDFNAME_WAVE_OUT_MIX DEFINE_GUIDNAMED(KSAUDFNAME_WAVE_OUT_MIX)
1509

    
1510
#define STATIC_KSAUDFNAME_MONO_OUT                                        \
1511
        0xf9b41dc3L,0x96e2,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1512
DEFINE_GUIDSTRUCT("F9B41DC3-96E2-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_OUT);
1513
#define KSAUDFNAME_MONO_OUT DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT)
1514

    
1515
#define STATIC_KSAUDFNAME_STEREO_MIX                                        \
1516
        0xdff077L,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1517
DEFINE_GUIDSTRUCT("00DFF077-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_STEREO_MIX);
1518
#define KSAUDFNAME_STEREO_MIX DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX)
1519

    
1520
#define STATIC_KSAUDFNAME_MONO_MIX                                        \
1521
        0xdff078L,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1522
DEFINE_GUIDSTRUCT("00DFF078-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_MIX);
1523
#define KSAUDFNAME_MONO_MIX DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX)
1524

    
1525
#define STATIC_KSAUDFNAME_MONO_OUT_VOLUME                                \
1526
        0x1ad247ebL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1527
DEFINE_GUIDSTRUCT("1AD247EB-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_OUT_VOLUME);
1528
#define KSAUDFNAME_MONO_OUT_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT_VOLUME)
1529

    
1530
#define STATIC_KSAUDFNAME_MONO_OUT_MUTE                                        \
1531
        0x1ad247ecL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1532
DEFINE_GUIDSTRUCT("1AD247EC-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_OUT_MUTE);
1533
#define KSAUDFNAME_MONO_OUT_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MONO_OUT_MUTE)
1534

    
1535
#define STATIC_KSAUDFNAME_STEREO_MIX_VOLUME                                \
1536
        0x1ad247edL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1537
DEFINE_GUIDSTRUCT("1AD247ED-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_STEREO_MIX_VOLUME);
1538
#define KSAUDFNAME_STEREO_MIX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX_VOLUME)
1539

    
1540
#define STATIC_KSAUDFNAME_STEREO_MIX_MUTE                                \
1541
        0x22b0eafdL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1542
DEFINE_GUIDSTRUCT("22B0EAFD-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_STEREO_MIX_MUTE);
1543
#define KSAUDFNAME_STEREO_MIX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_STEREO_MIX_MUTE)
1544

    
1545
#define STATIC_KSAUDFNAME_MONO_MIX_VOLUME                                \
1546
        0x22b0eafeL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1547
DEFINE_GUIDSTRUCT("22B0EAFE-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_MIX_VOLUME);
1548
#define KSAUDFNAME_MONO_MIX_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX_VOLUME)
1549

    
1550
#define STATIC_KSAUDFNAME_MONO_MIX_MUTE                                        \
1551
        0x2bc31d69L,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1552
DEFINE_GUIDSTRUCT("2BC31D69-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MONO_MIX_MUTE);
1553
#define KSAUDFNAME_MONO_MIX_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_MONO_MIX_MUTE)
1554

    
1555
#define STATIC_KSAUDFNAME_MICROPHONE_BOOST                                \
1556
        0x2bc31d6aL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1557
DEFINE_GUIDSTRUCT("2BC31D6A-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_MICROPHONE_BOOST);
1558
#define KSAUDFNAME_MICROPHONE_BOOST DEFINE_GUIDNAMED(KSAUDFNAME_MICROPHONE_BOOST)
1559

    
1560
#define STATIC_KSAUDFNAME_ALTERNATE_MICROPHONE                                \
1561
        0x2bc31d6bL,0x96e3,0x11d2,0xac,0x4c,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1562
DEFINE_GUIDSTRUCT("2BC31D6B-96E3-11d2-AC4C-00C04F8EFB68",KSAUDFNAME_ALTERNATE_MICROPHONE);
1563
#define KSAUDFNAME_ALTERNATE_MICROPHONE DEFINE_GUIDNAMED(KSAUDFNAME_ALTERNATE_MICROPHONE)
1564

    
1565
#define STATIC_KSAUDFNAME_3D_DEPTH                                        \
1566
        0x63ff5747L,0x991f,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1567
DEFINE_GUIDSTRUCT("63FF5747-991F-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_3D_DEPTH);
1568
#define KSAUDFNAME_3D_DEPTH DEFINE_GUIDNAMED(KSAUDFNAME_3D_DEPTH)
1569

    
1570
#define STATIC_KSAUDFNAME_3D_CENTER                                        \
1571
        0x9f0670b4L,0x991f,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1572
DEFINE_GUIDSTRUCT("9F0670B4-991F-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_3D_CENTER);
1573
#define KSAUDFNAME_3D_CENTER DEFINE_GUIDNAMED(KSAUDFNAME_3D_CENTER)
1574

    
1575
#define STATIC_KSAUDFNAME_VIDEO_VOLUME                                        \
1576
        0x9b46e708L,0x992a,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1577
DEFINE_GUIDSTRUCT("9B46E708-992A-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_VIDEO_VOLUME);
1578
#define KSAUDFNAME_VIDEO_VOLUME DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO_VOLUME)
1579

    
1580
#define STATIC_KSAUDFNAME_VIDEO_MUTE                                        \
1581
        0x9b46e709L,0x992a,0x11d2,0xac,0x4d,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1582
DEFINE_GUIDSTRUCT("9B46E709-992A-11d2-AC4D-00C04F8EFB68",KSAUDFNAME_VIDEO_MUTE);
1583
#define KSAUDFNAME_VIDEO_MUTE DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO_MUTE)
1584

    
1585
#define STATIC_KSAUDFNAME_VIDEO                                                \
1586
        0x915daec4L,0xa434,0x11d2,0xac,0x52,0x0,0xc0,0x4f,0x8e,0xfb,0x68
1587
DEFINE_GUIDSTRUCT("915DAEC4-A434-11d2-AC52-00C04F8EFB68",KSAUDFNAME_VIDEO);
1588
#define KSAUDFNAME_VIDEO DEFINE_GUIDNAMED(KSAUDFNAME_VIDEO)
1589

    
1590
#define STATIC_KSAUDFNAME_PEAKMETER                                        \
1591
        0x57e24340L,0xfc5b,0x4612,0xa5,0x62,0x72,0xb1,0x1a,0x29,0xdf,0xae
1592
DEFINE_GUIDSTRUCT("57E24340-FC5B-4612-A562-72B11A29DFAE",KSAUDFNAME_PEAKMETER);
1593
#define KSAUDFNAME_PEAKMETER DEFINE_GUIDNAMED(KSAUDFNAME_PEAKMETER)
1594

    
1595
#define KSNODEPIN_STANDARD_IN                1
1596
#define KSNODEPIN_STANDARD_OUT                0
1597

    
1598
#define KSNODEPIN_SUM_MUX_IN                1
1599
#define KSNODEPIN_SUM_MUX_OUT                0
1600

    
1601
#define KSNODEPIN_DEMUX_IN                0
1602
#define KSNODEPIN_DEMUX_OUT                1
1603

    
1604
#define KSNODEPIN_AEC_RENDER_IN                1
1605
#define KSNODEPIN_AEC_RENDER_OUT        0
1606
#define KSNODEPIN_AEC_CAPTURE_IN        2
1607
#define KSNODEPIN_AEC_CAPTURE_OUT        3
1608

    
1609
#define STATIC_KSMETHODSETID_Wavetable                                        \
1610
        0xDCEF31EBL,0xD907,0x11D0,0x95,0x83,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1611
DEFINE_GUIDSTRUCT("DCEF31EB-D907-11D0-9583-00C04FB925D3",KSMETHODSETID_Wavetable);
1612
#define KSMETHODSETID_Wavetable DEFINE_GUIDNAMED(KSMETHODSETID_Wavetable)
1613

    
1614
typedef enum {
1615
  KSMETHOD_WAVETABLE_WAVE_ALLOC,
1616
  KSMETHOD_WAVETABLE_WAVE_FREE,
1617
  KSMETHOD_WAVETABLE_WAVE_FIND,
1618
  KSMETHOD_WAVETABLE_WAVE_WRITE
1619
} KSMETHOD_WAVETABLE;
1620

    
1621
typedef struct {
1622
  KSIDENTIFIER Identifier;
1623
  ULONG Size;
1624
  WINBOOL Looped;
1625
  ULONG LoopPoint;
1626
  WINBOOL InROM;
1627
  KSDATAFORMAT Format;
1628
} KSWAVETABLE_WAVE_DESC,*PKSWAVETABLE_WAVE_DESC;
1629

    
1630
#define STATIC_KSPROPSETID_Acoustic_Echo_Cancel                                \
1631
        0xd7a4af8bL,0x3dc1,0x4902,0x91,0xea,0x8a,0x15,0xc9,0x0e,0x05,0xb2
1632
DEFINE_GUIDSTRUCT("D7A4AF8B-3DC1-4902-91EA-8A15C90E05B2",KSPROPSETID_Acoustic_Echo_Cancel);
1633
#define KSPROPSETID_Acoustic_Echo_Cancel DEFINE_GUIDNAMED(KSPROPSETID_Acoustic_Echo_Cancel)
1634

    
1635
typedef enum {
1636
  KSPROPERTY_AEC_NOISE_FILL_ENABLE = 0,
1637
  KSPROPERTY_AEC_STATUS,
1638
  KSPROPERTY_AEC_MODE
1639
} KSPROPERTY_AEC;
1640

    
1641
#define AEC_STATUS_FD_HISTORY_UNINITIALIZED                0x0
1642
#define AEC_STATUS_FD_HISTORY_CONTINUOUSLY_CONVERGED        0x1
1643
#define AEC_STATUS_FD_HISTORY_PREVIOUSLY_DIVERGED        0x2
1644
#define AEC_STATUS_FD_CURRENTLY_CONVERGED                0x8
1645

    
1646
#define AEC_MODE_PASS_THROUGH                                0x0
1647
#define AEC_MODE_HALF_DUPLEX                                0x1
1648
#define AEC_MODE_FULL_DUPLEX                                0x2
1649

    
1650
#define STATIC_KSPROPSETID_Wave                                                \
1651
        0x924e54b0L,0x630f,0x11cf,0xad,0xa7,0x08,0x00,0x3e,0x30,0x49,0x4a
1652
DEFINE_GUIDSTRUCT("924e54b0-630f-11cf-ada7-08003e30494a",KSPROPSETID_Wave);
1653
#define KSPROPSETID_Wave DEFINE_GUIDNAMED(KSPROPSETID_Wave)
1654

    
1655
typedef enum {
1656
  KSPROPERTY_WAVE_COMPATIBLE_CAPABILITIES,
1657
  KSPROPERTY_WAVE_INPUT_CAPABILITIES,
1658
  KSPROPERTY_WAVE_OUTPUT_CAPABILITIES,
1659
  KSPROPERTY_WAVE_BUFFER,
1660
  KSPROPERTY_WAVE_FREQUENCY,
1661
  KSPROPERTY_WAVE_VOLUME,
1662
  KSPROPERTY_WAVE_PAN
1663
} KSPROPERTY_WAVE;
1664

    
1665
typedef struct {
1666
  ULONG ulDeviceType;
1667
} KSWAVE_COMPATCAPS,*PKSWAVE_COMPATCAPS;
1668

    
1669
#define KSWAVE_COMPATCAPS_INPUT                0x00000000
1670
#define KSWAVE_COMPATCAPS_OUTPUT        0x00000001
1671

    
1672
typedef struct {
1673
  ULONG MaximumChannelsPerConnection;
1674
  ULONG MinimumBitsPerSample;
1675
  ULONG MaximumBitsPerSample;
1676
  ULONG MinimumSampleFrequency;
1677
  ULONG MaximumSampleFrequency;
1678
  ULONG TotalConnections;
1679
  ULONG ActiveConnections;
1680
} KSWAVE_INPUT_CAPABILITIES,*PKSWAVE_INPUT_CAPABILITIES;
1681

    
1682
typedef struct {
1683
  ULONG MaximumChannelsPerConnection;
1684
  ULONG MinimumBitsPerSample;
1685
  ULONG MaximumBitsPerSample;
1686
  ULONG MinimumSampleFrequency;
1687
  ULONG MaximumSampleFrequency;
1688
  ULONG TotalConnections;
1689
  ULONG StaticConnections;
1690
  ULONG StreamingConnections;
1691
  ULONG ActiveConnections;
1692
  ULONG ActiveStaticConnections;
1693
  ULONG ActiveStreamingConnections;
1694
  ULONG Total3DConnections;
1695
  ULONG Static3DConnections;
1696
  ULONG Streaming3DConnections;
1697
  ULONG Active3DConnections;
1698
  ULONG ActiveStatic3DConnections;
1699
  ULONG ActiveStreaming3DConnections;
1700
  ULONG TotalSampleMemory;
1701
  ULONG FreeSampleMemory;
1702
  ULONG LargestFreeContiguousSampleMemory;
1703
} KSWAVE_OUTPUT_CAPABILITIES,*PKSWAVE_OUTPUT_CAPABILITIES;
1704

    
1705
typedef struct {
1706
  LONG LeftAttenuation;
1707
  LONG RightAttenuation;
1708
} KSWAVE_VOLUME,*PKSWAVE_VOLUME;
1709

    
1710
#define KSWAVE_BUFFER_ATTRIBUTEF_LOOPING        0x00000001
1711
#define KSWAVE_BUFFER_ATTRIBUTEF_STATIC                0x00000002
1712

    
1713
typedef struct {
1714
  ULONG Attributes;
1715
  ULONG BufferSize;
1716
  PVOID BufferAddress;
1717
} KSWAVE_BUFFER,*PKSWAVE_BUFFER;
1718

    
1719
#define STATIC_KSMUSIC_TECHNOLOGY_PORT                                        \
1720
        0x86C92E60L,0x62E8,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
1721
DEFINE_GUIDSTRUCT("86C92E60-62E8-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_PORT);
1722
#define KSMUSIC_TECHNOLOGY_PORT DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_PORT)
1723

    
1724
#define STATIC_KSMUSIC_TECHNOLOGY_SQSYNTH                                \
1725
        0x0ECF4380L,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
1726
DEFINE_GUIDSTRUCT("0ECF4380-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_SQSYNTH);
1727
#define KSMUSIC_TECHNOLOGY_SQSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_SQSYNTH)
1728

    
1729
#define STATIC_KSMUSIC_TECHNOLOGY_FMSYNTH                                \
1730
        0x252C5C80L,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
1731
DEFINE_GUIDSTRUCT("252C5C80-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_FMSYNTH);
1732
#define KSMUSIC_TECHNOLOGY_FMSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_FMSYNTH)
1733

    
1734
#define STATIC_KSMUSIC_TECHNOLOGY_WAVETABLE                                \
1735
        0x394EC7C0L,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
1736
DEFINE_GUIDSTRUCT("394EC7C0-62E9-11CF-A5D6-28DB04C10000",KSMUSIC_TECHNOLOGY_WAVETABLE);
1737
#define KSMUSIC_TECHNOLOGY_WAVETABLE DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_WAVETABLE)
1738

    
1739
#define STATIC_KSMUSIC_TECHNOLOGY_SWSYNTH                                \
1740
        0x37407736L,0x3620,0x11D1,0x85,0xD3,0x00,0x00,0xF8,0x75,0x43,0x80
1741
DEFINE_GUIDSTRUCT("37407736-3620-11D1-85D3-0000F8754380",KSMUSIC_TECHNOLOGY_SWSYNTH);
1742
#define KSMUSIC_TECHNOLOGY_SWSYNTH DEFINE_GUIDNAMED(KSMUSIC_TECHNOLOGY_SWSYNTH)
1743

    
1744
#define STATIC_KSPROPSETID_WaveTable                                        \
1745
        0x8539E660L,0x62E9,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
1746
DEFINE_GUIDSTRUCT("8539E660-62E9-11CF-A5D6-28DB04C10000",KSPROPSETID_WaveTable);
1747
#define KSPROPSETID_WaveTable DEFINE_GUIDNAMED(KSPROPSETID_WaveTable)
1748

    
1749
typedef enum {
1750
  KSPROPERTY_WAVETABLE_LOAD_SAMPLE,
1751
  KSPROPERTY_WAVETABLE_UNLOAD_SAMPLE,
1752
  KSPROPERTY_WAVETABLE_MEMORY,
1753
  KSPROPERTY_WAVETABLE_VERSION
1754
} KSPROPERTY_WAVETABLE;
1755

    
1756
typedef struct {
1757
  KSDATARANGE DataRange;
1758
  GUID Technology;
1759
  ULONG Channels;
1760
  ULONG Notes;
1761
  ULONG ChannelMask;
1762
} KSDATARANGE_MUSIC,*PKSDATARANGE_MUSIC;
1763

    
1764
#define STATIC_KSEVENTSETID_Cyclic                                        \
1765
        0x142C1AC0L,0x072A,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
1766
DEFINE_GUIDSTRUCT("142C1AC0-072A-11D0-A5D6-28DB04C10000",KSEVENTSETID_Cyclic);
1767
#define KSEVENTSETID_Cyclic DEFINE_GUIDNAMED(KSEVENTSETID_Cyclic)
1768

    
1769
typedef enum {
1770
  KSEVENT_CYCLIC_TIME_INTERVAL
1771
} KSEVENT_CYCLIC_TIME;
1772

    
1773
#define STATIC_KSPROPSETID_Cyclic                                        \
1774
        0x3FFEAEA0L,0x2BEE,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
1775
DEFINE_GUIDSTRUCT("3FFEAEA0-2BEE-11CF-A5D6-28DB04C10000",KSPROPSETID_Cyclic);
1776
#define KSPROPSETID_Cyclic DEFINE_GUIDNAMED(KSPROPSETID_Cyclic)
1777

    
1778
typedef enum {
1779
  KSPROPERTY_CYCLIC_POSITION
1780
} KSPROPERTY_CYCLIC;
1781

    
1782
#define STATIC_KSEVENTSETID_AudioControlChange                                \
1783
        0xE85E9698L,0xFA2F,0x11D1,0x95,0xBD,0x00,0xC0,0x4F,0xB9,0x25,0xD3
1784
DEFINE_GUIDSTRUCT("E85E9698-FA2F-11D1-95BD-00C04FB925D3",KSEVENTSETID_AudioControlChange);
1785
#define KSEVENTSETID_AudioControlChange DEFINE_GUIDNAMED(KSEVENTSETID_AudioControlChange)
1786

    
1787
typedef enum {
1788
  KSEVENT_CONTROL_CHANGE
1789
} KSEVENT_AUDIO_CONTROL_CHANGE;
1790

    
1791
#define STATIC_KSEVENTSETID_LoopedStreaming                                \
1792
        0x4682B940L,0xC6EF,0x11D0,0x96,0xD8,0x00,0xAA,0x00,0x51,0xE5,0x1D
1793
DEFINE_GUIDSTRUCT("4682B940-C6EF-11D0-96D8-00AA0051E51D",KSEVENTSETID_LoopedStreaming);
1794
#define KSEVENTSETID_LoopedStreaming DEFINE_GUIDNAMED(KSEVENTSETID_LoopedStreaming)
1795

    
1796
typedef enum {
1797
  KSEVENT_LOOPEDSTREAMING_POSITION
1798
} KSEVENT_LOOPEDSTREAMING;
1799

    
1800
typedef struct {
1801
  KSEVENTDATA KsEventData;
1802
  DWORDLONG Position;
1803
} LOOPEDSTREAMING_POSITION_EVENT_DATA,*PLOOPEDSTREAMING_POSITION_EVENT_DATA;
1804

    
1805
#define STATIC_KSPROPSETID_Sysaudio                                        \
1806
        0xCBE3FAA0L,0xCC75,0x11D0,0xB4,0x65,0x00,0x00,0x1A,0x18,0x18,0xE6
1807
DEFINE_GUIDSTRUCT("CBE3FAA0-CC75-11D0-B465-00001A1818E6",KSPROPSETID_Sysaudio);
1808
#define KSPROPSETID_Sysaudio DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio)
1809

    
1810
typedef enum {
1811
  KSPROPERTY_SYSAUDIO_DEVICE_COUNT = 1,
1812
  KSPROPERTY_SYSAUDIO_DEVICE_FRIENDLY_NAME = 2,
1813
  KSPROPERTY_SYSAUDIO_DEVICE_INSTANCE = 3,
1814
  KSPROPERTY_SYSAUDIO_DEVICE_INTERFACE_NAME = 4,
1815
  KSPROPERTY_SYSAUDIO_SELECT_GRAPH = 5,
1816
  KSPROPERTY_SYSAUDIO_CREATE_VIRTUAL_SOURCE = 6,
1817
  KSPROPERTY_SYSAUDIO_DEVICE_DEFAULT = 7,
1818
  KSPROPERTY_SYSAUDIO_INSTANCE_INFO = 14,
1819
  KSPROPERTY_SYSAUDIO_COMPONENT_ID = 16
1820
} KSPROPERTY_SYSAUDIO;
1821

    
1822
typedef struct {
1823
  KSPROPERTY Property;
1824
  GUID PinCategory;
1825
  GUID PinName;
1826
} SYSAUDIO_CREATE_VIRTUAL_SOURCE,*PSYSAUDIO_CREATE_VIRTUAL_SOURCE;
1827

    
1828
typedef struct {
1829
  KSPROPERTY Property;
1830
  ULONG PinId;
1831
  ULONG NodeId;
1832
  ULONG Flags;
1833
  ULONG Reserved;
1834
} SYSAUDIO_SELECT_GRAPH,*PSYSAUDIO_SELECT_GRAPH;
1835

    
1836
typedef struct {
1837
  KSPROPERTY Property;
1838
  ULONG Flags;
1839
  ULONG DeviceNumber;
1840
} SYSAUDIO_INSTANCE_INFO,*PSYSAUDIO_INSTANCE_INFO;
1841

    
1842
#define SYSAUDIO_FLAGS_DONT_COMBINE_PINS        0x00000001
1843

    
1844
#define STATIC_KSPROPSETID_Sysaudio_Pin                                        \
1845
        0xA3A53220L,0xC6E4,0x11D0,0xB4,0x65,0x00,0x00,0x1A,0x18,0x18,0xE6
1846
DEFINE_GUIDSTRUCT("A3A53220-C6E4-11D0-B465-00001A1818E6",KSPROPSETID_Sysaudio_Pin);
1847
#define KSPROPSETID_Sysaudio_Pin DEFINE_GUIDNAMED(KSPROPSETID_Sysaudio_Pin)
1848

    
1849
typedef enum {
1850
  KSPROPERTY_SYSAUDIO_ATTACH_VIRTUAL_SOURCE = 1
1851
} KSPROPERTY_SYSAUDIO_PIN;
1852

    
1853
typedef struct {
1854
  KSPROPERTY Property;
1855
  ULONG MixerPinId;
1856
  ULONG Reserved;
1857
} SYSAUDIO_ATTACH_VIRTUAL_SOURCE,*PSYSAUDIO_ATTACH_VIRTUAL_SOURCE;
1858

    
1859
typedef struct {
1860
  KSPROPERTY Property;
1861
  ULONG NodeId;
1862
  ULONG Reserved;
1863
} KSNODEPROPERTY,*PKSNODEPROPERTY;
1864

    
1865
typedef struct {
1866
  KSNODEPROPERTY NodeProperty;
1867
  LONG Channel;
1868
  ULONG Reserved;
1869
} KSNODEPROPERTY_AUDIO_CHANNEL,*PKSNODEPROPERTY_AUDIO_CHANNEL;
1870

    
1871
typedef struct {
1872
  KSNODEPROPERTY NodeProperty;
1873
  ULONG DevSpecificId;
1874
  ULONG DeviceInfo;
1875
  ULONG Length;
1876
} KSNODEPROPERTY_AUDIO_DEV_SPECIFIC,*PKSNODEPROPERTY_AUDIO_DEV_SPECIFIC;
1877

    
1878
typedef struct {
1879
  KSNODEPROPERTY NodeProperty;
1880
  PVOID ListenerId;
1881
#ifndef _WIN64
1882
  ULONG Reserved;
1883
#endif
1884
} KSNODEPROPERTY_AUDIO_3D_LISTENER,*PKSNODEPROPERTY_AUDIO_3D_LISTENER;
1885

    
1886
typedef struct {
1887
  KSNODEPROPERTY NodeProperty;
1888
  PVOID AppContext;
1889
  ULONG Length;
1890
#ifndef _WIN64
1891
  ULONG Reserved;
1892
#endif
1893
} KSNODEPROPERTY_AUDIO_PROPERTY,*PKSNODEPROPERTY_AUDIO_PROPERTY;
1894

    
1895
#define STATIC_KSPROPSETID_AudioGfx                                        \
1896
        0x79a9312eL,0x59ae,0x43b0,0xa3,0x50,0x8b,0x5,0x28,0x4c,0xab,0x24
1897
DEFINE_GUIDSTRUCT("79A9312E-59AE-43b0-A350-8B05284CAB24",KSPROPSETID_AudioGfx);
1898
#define KSPROPSETID_AudioGfx DEFINE_GUIDNAMED(KSPROPSETID_AudioGfx)
1899

    
1900
typedef enum {
1901
  KSPROPERTY_AUDIOGFX_RENDERTARGETDEVICEID,
1902
  KSPROPERTY_AUDIOGFX_CAPTURETARGETDEVICEID
1903
} KSPROPERTY_AUDIOGFX;
1904

    
1905
#define STATIC_KSPROPSETID_Linear                                        \
1906
        0x5A2FFE80L,0x16B9,0x11D0,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
1907
DEFINE_GUIDSTRUCT("5A2FFE80-16B9-11D0-A5D6-28DB04C10000",KSPROPSETID_Linear);
1908
#define KSPROPSETID_Linear DEFINE_GUIDNAMED(KSPROPSETID_Linear)
1909

    
1910
typedef enum {
1911
  KSPROPERTY_LINEAR_POSITION
1912
} KSPROPERTY_LINEAR;
1913

    
1914
#define STATIC_KSDATAFORMAT_TYPE_MUSIC                                        \
1915
        0xE725D360L,0x62CC,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
1916
DEFINE_GUIDSTRUCT("E725D360-62CC-11CF-A5D6-28DB04C10000",KSDATAFORMAT_TYPE_MUSIC);
1917
#define KSDATAFORMAT_TYPE_MUSIC DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MUSIC)
1918

    
1919
#define STATIC_KSDATAFORMAT_TYPE_MIDI                                        \
1920
        0x7364696DL,0x0000,0x0010,0x80,0x00,0x00,0xaa,0x00,0x38,0x9b,0x71
1921
DEFINE_GUIDSTRUCT("7364696D-0000-0010-8000-00aa00389b71",KSDATAFORMAT_TYPE_MIDI);
1922
#define KSDATAFORMAT_TYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MIDI)
1923

    
1924
#define STATIC_KSDATAFORMAT_SUBTYPE_MIDI                                \
1925
        0x1D262760L,0xE957,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
1926
DEFINE_GUIDSTRUCT("1D262760-E957-11CF-A5D6-28DB04C10000",KSDATAFORMAT_SUBTYPE_MIDI);
1927
#define KSDATAFORMAT_SUBTYPE_MIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI)
1928

    
1929
#define STATIC_KSDATAFORMAT_SUBTYPE_MIDI_BUS                                \
1930
        0x2CA15FA0L,0x6CFE,0x11CF,0xA5,0xD6,0x28,0xDB,0x04,0xC1,0x00,0x00
1931
DEFINE_GUIDSTRUCT("2CA15FA0-6CFE-11CF-A5D6-28DB04C10000",KSDATAFORMAT_SUBTYPE_MIDI_BUS);
1932
#define KSDATAFORMAT_SUBTYPE_MIDI_BUS DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MIDI_BUS)
1933

    
1934
#define STATIC_KSDATAFORMAT_SUBTYPE_RIFFMIDI                                \
1935
        0x4995DAF0L,0x9EE6,0x11D0,0xA4,0x0E,0x00,0xA0,0xC9,0x22,0x31,0x96
1936
DEFINE_GUIDSTRUCT("4995DAF0-9EE6-11D0-A40E-00A0C9223196",KSDATAFORMAT_SUBTYPE_RIFFMIDI);
1937
#define KSDATAFORMAT_SUBTYPE_RIFFMIDI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RIFFMIDI)
1938

    
1939
typedef struct {
1940
  ULONG TimeDeltaMs;
1941

    
1942
  ULONG ByteCount;
1943
} KSMUSICFORMAT,*PKSMUSICFORMAT;
1944

    
1945
#define STATIC_KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM                \
1946
        0x36523b11L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
1947
DEFINE_GUIDSTRUCT("36523B11-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM);
1948
#define KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_ELEMENTARY_STREAM)
1949

    
1950
#define STATIC_KSDATAFORMAT_TYPE_STANDARD_PES_PACKET                        \
1951
        0x36523b12L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
1952
DEFINE_GUIDSTRUCT("36523B12-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_TYPE_STANDARD_PES_PACKET);
1953
#define KSDATAFORMAT_TYPE_STANDARD_PES_PACKET DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_PES_PACKET)
1954

    
1955
#define STATIC_KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER                        \
1956
        0x36523b13L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
1957
DEFINE_GUIDSTRUCT("36523B13-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER);
1958
#define KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_STANDARD_PACK_HEADER)
1959

    
1960
#define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO                \
1961
        0x36523b21L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
1962
DEFINE_GUIDSTRUCT("36523B21-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO);
1963
#define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_VIDEO)
1964

    
1965
#define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO                \
1966
        0x36523b22L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
1967
DEFINE_GUIDSTRUCT("36523B22-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO);
1968
#define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG1_AUDIO)
1969

    
1970
#define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO                \
1971
        0x36523b23L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
1972
DEFINE_GUIDSTRUCT("36523B23-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO);
1973
#define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_VIDEO)
1974

    
1975
#define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO                \
1976
        0x36523b24L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
1977
DEFINE_GUIDSTRUCT("36523B24-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO);
1978
#define KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_MPEG2_AUDIO)
1979

    
1980
#define STATIC_KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO                        \
1981
        0x36523b25L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
1982
DEFINE_GUIDSTRUCT("36523B25-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO);
1983
#define KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_STANDARD_AC3_AUDIO)
1984

    
1985
#define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO                \
1986
        0x36523b31L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
1987
DEFINE_GUIDSTRUCT("36523B31-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO);
1988
#define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_VIDEO)
1989

    
1990
#define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO                \
1991
        0x36523b32L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
1992
DEFINE_GUIDSTRUCT("36523B32-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO);
1993
#define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG1_AUDIO)
1994

    
1995
#define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO                \
1996
        0x36523b33L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
1997
DEFINE_GUIDSTRUCT("36523B33-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO);
1998
#define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_VIDEO)
1999

    
2000
#define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO                \
2001
        0x36523b34L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
2002
DEFINE_GUIDSTRUCT("36523B34-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO);
2003
#define KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_MPEG2_AUDIO)
2004

    
2005
#define STATIC_KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO                        \
2006
        0x36523b35L,0x8ee5,0x11d1,0x8c,0xa3,0x00,0x60,0xb0,0x57,0x66,0x4a
2007
DEFINE_GUIDSTRUCT("36523B35-8EE5-11d1-8CA3-0060B057664A",KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO);
2008
#define KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_DIALECT_AC3_AUDIO)
2009

    
2010
#define STATIC_KSDATAFORMAT_SUBTYPE_DSS_VIDEO                                \
2011
        0xa0af4f81L,0xe163,0x11d0,0xba,0xd9,0x00,0x60,0x97,0x44,0x11,0x1a
2012
DEFINE_GUIDSTRUCT("a0af4f81-e163-11d0-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_DSS_VIDEO);
2013
#define KSDATAFORMAT_SUBTYPE_DSS_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DSS_VIDEO)
2014

    
2015
#define STATIC_KSDATAFORMAT_SUBTYPE_DSS_AUDIO                                \
2016
                0xa0af4f82L,0xe163,0x11d0,0xba,0xd9,0x00,0x60,0x97,0x44,0x11,0x1a
2017
DEFINE_GUIDSTRUCT("a0af4f82-e163-11d0-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_DSS_AUDIO);
2018
#define KSDATAFORMAT_SUBTYPE_DSS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DSS_AUDIO)
2019

    
2020
#define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Packet                                \
2021
        0xe436eb80,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
2022
DEFINE_GUIDSTRUCT("e436eb80-524f-11ce-9F53-0020af0ba770",KSDATAFORMAT_SUBTYPE_MPEG1Packet);
2023
#define KSDATAFORMAT_SUBTYPE_MPEG1Packet DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Packet)
2024

    
2025
#define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Payload                        \
2026
        0xe436eb81,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
2027
DEFINE_GUIDSTRUCT("e436eb81-524f-11ce-9F53-0020af0ba770",KSDATAFORMAT_SUBTYPE_MPEG1Payload);
2028
#define KSDATAFORMAT_SUBTYPE_MPEG1Payload DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Payload)
2029

    
2030
#define STATIC_KSDATAFORMAT_SUBTYPE_MPEG1Video                                \
2031
        0xe436eb86,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
2032
DEFINE_GUIDSTRUCT("e436eb86-524f-11ce-9f53-0020af0ba770",KSDATAFORMAT_SUBTYPE_MPEG1Video);
2033
#define KSDATAFORMAT_SUBTYPE_MPEG1Video DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG1Video)
2034

    
2035
#define STATIC_KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO                        \
2036
        0x05589f82L,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a
2037
DEFINE_GUIDSTRUCT("05589f82-c356-11ce-bf01-00aa0055595a",KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO);
2038
#define KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG1_VIDEO)
2039

    
2040
#define STATIC_KSDATAFORMAT_TYPE_MPEG2_PES                                \
2041
        0xe06d8020L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2042
DEFINE_GUIDSTRUCT("e06d8020-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_TYPE_MPEG2_PES);
2043
#define KSDATAFORMAT_TYPE_MPEG2_PES DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_PES)
2044

    
2045
#define STATIC_KSDATAFORMAT_TYPE_MPEG2_PROGRAM                                \
2046
        0xe06d8022L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2047
DEFINE_GUIDSTRUCT("e06d8022-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_TYPE_MPEG2_PROGRAM);
2048
#define KSDATAFORMAT_TYPE_MPEG2_PROGRAM DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_PROGRAM)
2049

    
2050
#define STATIC_KSDATAFORMAT_TYPE_MPEG2_TRANSPORT                        \
2051
        0xe06d8023L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2052
DEFINE_GUIDSTRUCT("e06d8023-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_TYPE_MPEG2_TRANSPORT);
2053
#define KSDATAFORMAT_TYPE_MPEG2_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_TRANSPORT)
2054

    
2055
#define STATIC_KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO                                \
2056
        0xe06d8026L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2057
DEFINE_GUIDSTRUCT("e06d8026-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO);
2058
#define KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG2_VIDEO)
2059

    
2060
#define STATIC_KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO                        \
2061
        0xe06d80e3L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2062
DEFINE_GUIDSTRUCT("e06d80e3-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO);
2063
#define KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG2_VIDEO)
2064

    
2065
#define STATIC_KSPROPSETID_Mpeg2Vid                                        \
2066
        0xC8E11B60L,0x0CC9,0x11D0,0xBD,0x69,0x00,0x35,0x05,0xC1,0x03,0xA9
2067
DEFINE_GUIDSTRUCT("C8E11B60-0CC9-11D0-BD69-003505C103A9",KSPROPSETID_Mpeg2Vid);
2068
#define KSPROPSETID_Mpeg2Vid DEFINE_GUIDNAMED(KSPROPSETID_Mpeg2Vid)
2069

    
2070
typedef enum {
2071
  KSPROPERTY_MPEG2VID_MODES,
2072
  KSPROPERTY_MPEG2VID_CUR_MODE,
2073
  KSPROPERTY_MPEG2VID_4_3_RECT,
2074
  KSPROPERTY_MPEG2VID_16_9_RECT,
2075
  KSPROPERTY_MPEG2VID_16_9_PANSCAN
2076
} KSPROPERTY_MPEG2VID;
2077

    
2078
#define KSMPEGVIDMODE_PANSCAN        0x0001
2079
#define KSMPEGVIDMODE_LTRBOX        0x0002
2080
#define KSMPEGVIDMODE_SCALE        0x0004
2081

    
2082
typedef struct _KSMPEGVID_RECT {
2083
  ULONG StartX;
2084
  ULONG StartY;
2085
  ULONG EndX;
2086
  ULONG EndY;
2087
} KSMPEGVID_RECT,*PKSMPEGVID_RECT;
2088

    
2089
#define STATIC_KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO                                \
2090
        0xe06d802bL,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2091
DEFINE_GUIDSTRUCT("e06d802b-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO);
2092
#define KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_MPEG2_AUDIO)
2093

    
2094
#define STATIC_KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO                        \
2095
        0xe06d80e5L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2096
DEFINE_GUIDSTRUCT("e06d80e5-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO);
2097
#define KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_MPEG2_AUDIO)
2098

    
2099
#define STATIC_KSDATAFORMAT_SUBTYPE_LPCM_AUDIO                                \
2100
        0xe06d8032L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2101
DEFINE_GUIDSTRUCT("e06d8032-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_LPCM_AUDIO);
2102
#define KSDATAFORMAT_SUBTYPE_LPCM_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_LPCM_AUDIO)
2103

    
2104
#define STATIC_KSDATAFORMAT_SPECIFIER_LPCM_AUDIO                        \
2105
        0xe06d80e6L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2106
DEFINE_GUIDSTRUCT("e06d80e6-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_LPCM_AUDIO);
2107
#define KSDATAFORMAT_SPECIFIER_LPCM_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_LPCM_AUDIO)
2108

    
2109
#define STATIC_KSDATAFORMAT_SUBTYPE_AC3_AUDIO                                \
2110
        0xe06d802cL,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2111
DEFINE_GUIDSTRUCT("e06d802c-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_AC3_AUDIO);
2112
#define KSDATAFORMAT_SUBTYPE_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_AC3_AUDIO)
2113

    
2114
#define STATIC_KSDATAFORMAT_SPECIFIER_AC3_AUDIO                                \
2115
        0xe06d80e4L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2116
DEFINE_GUIDSTRUCT("e06d80e4-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SPECIFIER_AC3_AUDIO);
2117
#define KSDATAFORMAT_SPECIFIER_AC3_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_AC3_AUDIO)
2118

    
2119
#define STATIC_KSPROPSETID_AC3                                                \
2120
        0xBFABE720L,0x6E1F,0x11D0,0xBC,0xF2,0x44,0x45,0x53,0x54,0x00,0x00
2121
DEFINE_GUIDSTRUCT("BFABE720-6E1F-11D0-BCF2-444553540000",KSPROPSETID_AC3);
2122
#define KSPROPSETID_AC3 DEFINE_GUIDNAMED(KSPROPSETID_AC3)
2123

    
2124
typedef enum {
2125
  KSPROPERTY_AC3_ERROR_CONCEALMENT = 1,
2126
  KSPROPERTY_AC3_ALTERNATE_AUDIO,
2127
  KSPROPERTY_AC3_DOWNMIX,
2128
  KSPROPERTY_AC3_BIT_STREAM_MODE,
2129
  KSPROPERTY_AC3_DIALOGUE_LEVEL,
2130
  KSPROPERTY_AC3_LANGUAGE_CODE,
2131
  KSPROPERTY_AC3_ROOM_TYPE
2132
} KSPROPERTY_AC3;
2133

    
2134
typedef struct {
2135
  WINBOOL fRepeatPreviousBlock;
2136
  WINBOOL fErrorInCurrentBlock;
2137
} KSAC3_ERROR_CONCEALMENT,*PKSAC3_ERROR_CONCEALMENT;
2138

    
2139
typedef struct {
2140
  WINBOOL fStereo;
2141
  ULONG DualMode;
2142
} KSAC3_ALTERNATE_AUDIO,*PKSAC3_ALTERNATE_AUDIO;
2143

    
2144
#define KSAC3_ALTERNATE_AUDIO_1                1
2145
#define KSAC3_ALTERNATE_AUDIO_2                2
2146
#define KSAC3_ALTERNATE_AUDIO_BOTH        3
2147

    
2148
typedef struct {
2149
  WINBOOL fDownMix;
2150
  WINBOOL fDolbySurround;
2151
} KSAC3_DOWNMIX,*PKSAC3_DOWNMIX;
2152

    
2153
typedef struct {
2154
  LONG BitStreamMode;
2155
} KSAC3_BIT_STREAM_MODE,*PKSAC3_BIT_STREAM_MODE;
2156

    
2157
#define KSAC3_SERVICE_MAIN_AUDIO        0
2158
#define KSAC3_SERVICE_NO_DIALOG                1
2159
#define KSAC3_SERVICE_VISUALLY_IMPAIRED        2
2160
#define KSAC3_SERVICE_HEARING_IMPAIRED        3
2161
#define KSAC3_SERVICE_DIALOG_ONLY        4
2162
#define KSAC3_SERVICE_COMMENTARY        5
2163
#define KSAC3_SERVICE_EMERGENCY_FLASH        6
2164
#define KSAC3_SERVICE_VOICE_OVER        7
2165

    
2166
typedef struct {
2167
  ULONG DialogueLevel;
2168
} KSAC3_DIALOGUE_LEVEL,*PKSAC3_DIALOGUE_LEVEL;
2169

    
2170
typedef struct {
2171
  WINBOOL fLargeRoom;
2172
} KSAC3_ROOM_TYPE,*PKSAC3_ROOM_TYPE;
2173

    
2174
#define STATIC_KSDATAFORMAT_SUBTYPE_DTS_AUDIO                                \
2175
        0xe06d8033L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2176
DEFINE_GUIDSTRUCT("e06d8033-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_DTS_AUDIO);
2177
#define KSDATAFORMAT_SUBTYPE_DTS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DTS_AUDIO)
2178

    
2179
#define STATIC_KSDATAFORMAT_SUBTYPE_SDDS_AUDIO                                \
2180
        0xe06d8034L,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2181
DEFINE_GUIDSTRUCT("e06d8034-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_SDDS_AUDIO);
2182
#define KSDATAFORMAT_SUBTYPE_SDDS_AUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_SDDS_AUDIO)
2183

    
2184
#define STATIC_KSPROPSETID_AudioDecoderOut                                \
2185
        0x6ca6e020L,0x43bd,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9
2186
DEFINE_GUIDSTRUCT("6ca6e020-43bd-11d0-bd6a-003505c103a9",KSPROPSETID_AudioDecoderOut);
2187
#define KSPROPSETID_AudioDecoderOut DEFINE_GUIDNAMED(KSPROPSETID_AudioDecoderOut)
2188

    
2189
typedef enum {
2190
  KSPROPERTY_AUDDECOUT_MODES,
2191
  KSPROPERTY_AUDDECOUT_CUR_MODE
2192
} KSPROPERTY_AUDDECOUT;
2193

    
2194
#define KSAUDDECOUTMODE_STEREO_ANALOG        0x0001
2195
#define KSAUDDECOUTMODE_PCM_51                0x0002
2196
#define KSAUDDECOUTMODE_SPDIFF                0x0004
2197

    
2198
#define STATIC_KSDATAFORMAT_SUBTYPE_SUBPICTURE                                \
2199
        0xe06d802dL,0xdb46,0x11cf,0xb4,0xd1,0x00,0x80,0x5f,0x6c,0xbb,0xea
2200
DEFINE_GUIDSTRUCT("e06d802d-db46-11cf-b4d1-00805f6cbbea",KSDATAFORMAT_SUBTYPE_SUBPICTURE);
2201
#define KSDATAFORMAT_SUBTYPE_SUBPICTURE DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_SUBPICTURE)
2202

    
2203
#define STATIC_KSPROPSETID_DvdSubPic                                        \
2204
        0xac390460L,0x43af,0x11d0,0xbd,0x6a,0x00,0x35,0x05,0xc1,0x03,0xa9
2205
DEFINE_GUIDSTRUCT("ac390460-43af-11d0-bd6a-003505c103a9",KSPROPSETID_DvdSubPic);
2206
#define KSPROPSETID_DvdSubPic DEFINE_GUIDNAMED(KSPROPSETID_DvdSubPic)
2207

    
2208
typedef enum {
2209
  KSPROPERTY_DVDSUBPIC_PALETTE,
2210
  KSPROPERTY_DVDSUBPIC_HLI,
2211
  KSPROPERTY_DVDSUBPIC_COMPOSIT_ON
2212
} KSPROPERTY_DVDSUBPIC;
2213

    
2214
typedef struct _KS_DVD_YCrCb {
2215
  UCHAR Reserved;
2216
  UCHAR Y;
2217
  UCHAR Cr;
2218
  UCHAR Cb;
2219
} KS_DVD_YCrCb,*PKS_DVD_YCrCb;
2220

    
2221
typedef struct _KS_DVD_YUV {
2222
  UCHAR Reserved;
2223
  UCHAR Y;
2224
  UCHAR V;
2225
  UCHAR U;
2226
} KS_DVD_YUV,*PKS_DVD_YUV;
2227

    
2228
typedef struct _KSPROPERTY_SPPAL {
2229
  KS_DVD_YUV sppal[16];
2230
} KSPROPERTY_SPPAL,*PKSPROPERTY_SPPAL;
2231

    
2232
typedef struct _KS_COLCON {
2233
  UCHAR emph1col:4;
2234
  UCHAR emph2col:4;
2235
  UCHAR backcol:4;
2236
  UCHAR patcol:4;
2237
  UCHAR emph1con:4;
2238
  UCHAR emph2con:4;
2239
  UCHAR backcon:4;
2240
  UCHAR patcon:4;
2241
} KS_COLCON,*PKS_COLCON;
2242

    
2243
typedef struct _KSPROPERTY_SPHLI {
2244
  USHORT HLISS;
2245
  USHORT Reserved;
2246
  ULONG StartPTM;
2247
  ULONG EndPTM;
2248
  USHORT StartX;
2249
  USHORT StartY;
2250
  USHORT StopX;
2251
  USHORT StopY;
2252
  KS_COLCON ColCon;
2253
} KSPROPERTY_SPHLI,*PKSPROPERTY_SPHLI;
2254

    
2255
typedef WINBOOL KSPROPERTY_COMPOSIT_ON,*PKSPROPERTY_COMPOSIT_ON;
2256

    
2257
#define STATIC_KSPROPSETID_CopyProt                                        \
2258
        0x0E8A0A40L,0x6AEF,0x11D0,0x9E,0xD0,0x00,0xA0,0x24,0xCA,0x19,0xB3
2259
DEFINE_GUIDSTRUCT("0E8A0A40-6AEF-11D0-9ED0-00A024CA19B3",KSPROPSETID_CopyProt);
2260
#define KSPROPSETID_CopyProt DEFINE_GUIDNAMED(KSPROPSETID_CopyProt)
2261

    
2262
typedef enum {
2263
  KSPROPERTY_DVDCOPY_CHLG_KEY = 0x01,
2264
  KSPROPERTY_DVDCOPY_DVD_KEY1,
2265
  KSPROPERTY_DVDCOPY_DEC_KEY2,
2266
  KSPROPERTY_DVDCOPY_TITLE_KEY,
2267
  KSPROPERTY_COPY_MACROVISION,
2268
  KSPROPERTY_DVDCOPY_REGION,
2269
  KSPROPERTY_DVDCOPY_SET_COPY_STATE,
2270
  KSPROPERTY_DVDCOPY_DISC_KEY = 0x80
2271
} KSPROPERTY_COPYPROT;
2272

    
2273
typedef struct _KS_DVDCOPY_CHLGKEY {
2274
  BYTE ChlgKey[10];
2275
  BYTE Reserved[2];
2276
} KS_DVDCOPY_CHLGKEY,*PKS_DVDCOPY_CHLGKEY;
2277

    
2278
typedef struct _KS_DVDCOPY_BUSKEY {
2279
  BYTE BusKey[5];
2280
  BYTE Reserved[1];
2281
} KS_DVDCOPY_BUSKEY,*PKS_DVDCOPY_BUSKEY;
2282

    
2283
typedef struct _KS_DVDCOPY_DISCKEY {
2284
  BYTE DiscKey[2048];
2285
} KS_DVDCOPY_DISCKEY,*PKS_DVDCOPY_DISCKEY;
2286

    
2287
typedef struct _KS_DVDCOPY_REGION {
2288
  UCHAR Reserved;
2289
  UCHAR RegionData;
2290
  UCHAR Reserved2[2];
2291
} KS_DVDCOPY_REGION,*PKS_DVDCOPY_REGION;
2292

    
2293
typedef struct _KS_DVDCOPY_TITLEKEY {
2294
  ULONG KeyFlags;
2295
  ULONG ReservedNT[2];
2296
  UCHAR TitleKey[6];
2297
  UCHAR Reserved[2];
2298
} KS_DVDCOPY_TITLEKEY,*PKS_DVDCOPY_TITLEKEY;
2299

    
2300
typedef struct _KS_COPY_MACROVISION {
2301
  ULONG MACROVISIONLevel;
2302
} KS_COPY_MACROVISION,*PKS_COPY_MACROVISION;
2303

    
2304
typedef struct _KS_DVDCOPY_SET_COPY_STATE {
2305
  ULONG DVDCopyState;
2306
} KS_DVDCOPY_SET_COPY_STATE,*PKS_DVDCOPY_SET_COPY_STATE;
2307

    
2308
typedef enum {
2309
  KS_DVDCOPYSTATE_INITIALIZE,
2310
  KS_DVDCOPYSTATE_INITIALIZE_TITLE,
2311
  KS_DVDCOPYSTATE_AUTHENTICATION_NOT_REQUIRED,
2312
  KS_DVDCOPYSTATE_AUTHENTICATION_REQUIRED,
2313
  KS_DVDCOPYSTATE_DONE
2314
} KS_DVDCOPYSTATE;
2315

    
2316
typedef enum {
2317
  KS_MACROVISION_DISABLED,
2318
  KS_MACROVISION_LEVEL1,
2319
  KS_MACROVISION_LEVEL2,
2320
  KS_MACROVISION_LEVEL3
2321
} KS_COPY_MACROVISION_LEVEL,*PKS_COPY_MACROVISION_LEVEL;
2322

    
2323
#define KS_DVD_CGMS_RESERVED_MASK        0x00000078
2324

    
2325
#define KS_DVD_CGMS_COPY_PROTECT_MASK        0x00000018
2326
#define KS_DVD_CGMS_COPY_PERMITTED        0x00000000
2327
#define KS_DVD_CGMS_COPY_ONCE                0x00000010
2328
#define KS_DVD_CGMS_NO_COPY                0x00000018
2329

    
2330
#define KS_DVD_COPYRIGHT_MASK                0x00000040
2331
#define KS_DVD_NOT_COPYRIGHTED                0x00000000
2332
#define KS_DVD_COPYRIGHTED                0x00000040
2333

    
2334
#define KS_DVD_SECTOR_PROTECT_MASK        0x00000020
2335
#define KS_DVD_SECTOR_NOT_PROTECTED        0x00000000
2336
#define KS_DVD_SECTOR_PROTECTED                0x00000020
2337

    
2338
#define STATIC_KSCATEGORY_TVTUNER                                        \
2339
        0xa799a800L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4
2340
DEFINE_GUIDSTRUCT("a799a800-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_TVTUNER);
2341
#define KSCATEGORY_TVTUNER DEFINE_GUIDNAMED(KSCATEGORY_TVTUNER)
2342

    
2343
#define STATIC_KSCATEGORY_CROSSBAR                                        \
2344
        0xa799a801L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4
2345
DEFINE_GUIDSTRUCT("a799a801-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_CROSSBAR);
2346
#define KSCATEGORY_CROSSBAR DEFINE_GUIDNAMED(KSCATEGORY_CROSSBAR)
2347

    
2348
#define STATIC_KSCATEGORY_TVAUDIO                                        \
2349
        0xa799a802L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4
2350
DEFINE_GUIDSTRUCT("a799a802-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_TVAUDIO);
2351
#define KSCATEGORY_TVAUDIO DEFINE_GUIDNAMED(KSCATEGORY_TVAUDIO)
2352

    
2353
#define STATIC_KSCATEGORY_VPMUX                                                \
2354
        0xa799a803L,0xa46d,0x11d0,0xa1,0x8c,0x00,0xa0,0x24,0x01,0xdc,0xd4
2355
DEFINE_GUIDSTRUCT("a799a803-a46d-11d0-a18c-00a02401dcd4",KSCATEGORY_VPMUX);
2356
#define KSCATEGORY_VPMUX DEFINE_GUIDNAMED(KSCATEGORY_VPMUX)
2357

    
2358
#define STATIC_KSCATEGORY_VBICODEC                                        \
2359
        0x07dad660L,0x22f1,0x11d1,0xa9,0xf4,0x00,0xc0,0x4f,0xbb,0xde,0x8f
2360
DEFINE_GUIDSTRUCT("07dad660-22f1-11d1-a9f4-00c04fbbde8f",KSCATEGORY_VBICODEC);
2361
#define KSCATEGORY_VBICODEC DEFINE_GUIDNAMED(KSCATEGORY_VBICODEC)
2362

    
2363
#define STATIC_KSDATAFORMAT_SUBTYPE_VPVideo                                \
2364
        0x5a9b6a40L,0x1a22,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a
2365
DEFINE_GUIDSTRUCT("5a9b6a40-1a22-11d1-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_VPVideo);
2366
#define KSDATAFORMAT_SUBTYPE_VPVideo DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_VPVideo)
2367

    
2368
#define STATIC_KSDATAFORMAT_SUBTYPE_VPVBI                                \
2369
        0x5a9b6a41L,0x1a22,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a
2370
DEFINE_GUIDSTRUCT("5a9b6a41-1a22-11d1-bad9-00609744111a",KSDATAFORMAT_SUBTYPE_VPVBI);
2371
#define KSDATAFORMAT_SUBTYPE_VPVBI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_VPVBI)
2372

    
2373
#define STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO                                \
2374
        0x05589f80L,0xc356,0x11ce,0xbf,0x01,0x00,0xaa,0x00,0x55,0x59,0x5a
2375
DEFINE_GUIDSTRUCT("05589f80-c356-11ce-bf01-00aa0055595a",KSDATAFORMAT_SPECIFIER_VIDEOINFO);
2376
#define KSDATAFORMAT_SPECIFIER_VIDEOINFO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VIDEOINFO)
2377

    
2378
#define STATIC_KSDATAFORMAT_SPECIFIER_VIDEOINFO2                        \
2379
        0xf72a76A0L,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
2380
DEFINE_GUIDSTRUCT("f72a76A0-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SPECIFIER_VIDEOINFO2);
2381
#define KSDATAFORMAT_SPECIFIER_VIDEOINFO2 DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VIDEOINFO2)
2382

    
2383
#define STATIC_KSDATAFORMAT_TYPE_ANALOGVIDEO                                \
2384
        0x0482dde1L,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65
2385
DEFINE_GUIDSTRUCT("0482dde1-7817-11cf-8a03-00aa006ecb65",KSDATAFORMAT_TYPE_ANALOGVIDEO);
2386
#define KSDATAFORMAT_TYPE_ANALOGVIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_ANALOGVIDEO)
2387

    
2388
#define STATIC_KSDATAFORMAT_SPECIFIER_ANALOGVIDEO                        \
2389
        0x0482dde0L,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65
2390
DEFINE_GUIDSTRUCT("0482dde0-7817-11cf-8a03-00aa006ecb65",KSDATAFORMAT_SPECIFIER_ANALOGVIDEO);
2391
#define KSDATAFORMAT_SPECIFIER_ANALOGVIDEO DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_ANALOGVIDEO)
2392

    
2393
#define STATIC_KSDATAFORMAT_TYPE_ANALOGAUDIO                                \
2394
        0x0482dee1L,0x7817,0x11cf,0x8a,0x03,0x00,0xaa,0x00,0x6e,0xcb,0x65
2395
DEFINE_GUIDSTRUCT("0482DEE1-7817-11cf-8a03-00aa006ecb65",KSDATAFORMAT_TYPE_ANALOGAUDIO);
2396
#define KSDATAFORMAT_TYPE_ANALOGAUDIO DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_ANALOGAUDIO)
2397

    
2398
#define STATIC_KSDATAFORMAT_SPECIFIER_VBI                                \
2399
        0xf72a76e0L,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
2400
DEFINE_GUIDSTRUCT("f72a76e0-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SPECIFIER_VBI);
2401
#define KSDATAFORMAT_SPECIFIER_VBI DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_VBI)
2402

    
2403
#define STATIC_KSDATAFORMAT_TYPE_VBI                                        \
2404
        0xf72a76e1L,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
2405
DEFINE_GUIDSTRUCT("f72a76e1-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_TYPE_VBI);
2406
#define KSDATAFORMAT_TYPE_VBI DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_VBI)
2407

    
2408
#define STATIC_KSDATAFORMAT_SUBTYPE_RAW8                                \
2409
        0xca20d9a0,0x3e3e,0x11d1,0x9b,0xf9,0x0,0xc0,0x4f,0xbb,0xde,0xbf
2410
DEFINE_GUIDSTRUCT("ca20d9a0-3e3e-11d1-9bf9-00c04fbbdebf",KSDATAFORMAT_SUBTYPE_RAW8);
2411
#define KSDATAFORMAT_SUBTYPE_RAW8 DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_RAW8)
2412

    
2413
#define STATIC_KSDATAFORMAT_SUBTYPE_CC                                        \
2414
        0x33214cc1,0x11f,0x11d2,0xb4,0xb1,0x0,0xa0,0xd1,0x2,0xcf,0xbe
2415
DEFINE_GUIDSTRUCT("33214CC1-011F-11D2-B4B1-00A0D102CFBE",KSDATAFORMAT_SUBTYPE_CC);
2416
#define KSDATAFORMAT_SUBTYPE_CC DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_CC)
2417

    
2418
#define STATIC_KSDATAFORMAT_SUBTYPE_NABTS                                \
2419
        0xf72a76e2L,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
2420
DEFINE_GUIDSTRUCT("f72a76e2-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SUBTYPE_NABTS);
2421
#define KSDATAFORMAT_SUBTYPE_NABTS DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_NABTS)
2422

    
2423
#define STATIC_KSDATAFORMAT_SUBTYPE_TELETEXT                                \
2424
        0xf72a76e3L,0xeb0a,0x11d0,0xac,0xe4,0x00,0x00,0xc0,0xcc,0x16,0xba
2425
DEFINE_GUIDSTRUCT("f72a76e3-eb0a-11d0-ace4-0000c0cc16ba",KSDATAFORMAT_SUBTYPE_TELETEXT);
2426
#define KSDATAFORMAT_SUBTYPE_TELETEXT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_TELETEXT)
2427

    
2428
#define KS_BI_RGB                0L
2429
#define KS_BI_RLE8                1L
2430
#define KS_BI_RLE4                2L
2431
#define KS_BI_BITFIELDS                3L
2432

    
2433
typedef struct tagKS_RGBQUAD {
2434
  BYTE rgbBlue;
2435
  BYTE rgbGreen;
2436
  BYTE rgbRed;
2437
  BYTE rgbReserved;
2438
} KS_RGBQUAD,*PKS_RGBQUAD;
2439

    
2440
#define KS_iPALETTE_COLORS        256
2441
#define KS_iEGA_COLORS                16
2442
#define KS_iMASK_COLORS                3
2443
#define KS_iTRUECOLOR                16
2444
#define KS_iRED                        0
2445
#define KS_iGREEN                1
2446
#define KS_iBLUE                2
2447
#define KS_iPALETTE                8
2448
#define KS_iMAXBITS                8
2449
#define KS_SIZE_EGA_PALETTE        (KS_iEGA_COLORS *sizeof(KS_RGBQUAD))
2450
#define KS_SIZE_PALETTE                (KS_iPALETTE_COLORS *sizeof(KS_RGBQUAD))
2451

    
2452
typedef struct tagKS_BITMAPINFOHEADER {
2453
  DWORD biSize;
2454
  LONG biWidth;
2455
  LONG biHeight;
2456
  WORD biPlanes;
2457
  WORD biBitCount;
2458
  DWORD biCompression;
2459
  DWORD biSizeImage;
2460
  LONG biXPelsPerMeter;
2461
  LONG biYPelsPerMeter;
2462
  DWORD biClrUsed;
2463
  DWORD biClrImportant;
2464
} KS_BITMAPINFOHEADER,*PKS_BITMAPINFOHEADER;
2465

    
2466
typedef struct tag_KS_TRUECOLORINFO {
2467
  DWORD dwBitMasks[KS_iMASK_COLORS];
2468
  KS_RGBQUAD bmiColors[KS_iPALETTE_COLORS];
2469
} KS_TRUECOLORINFO,*PKS_TRUECOLORINFO;
2470

    
2471
#define KS_WIDTHBYTES(bits)        ((DWORD)(((bits)+31) & (~31)) / 8)
2472
#define KS_DIBWIDTHBYTES(bi)        (DWORD)KS_WIDTHBYTES((DWORD)(bi).biWidth *(DWORD)(bi).biBitCount)
2473
#define KS__DIBSIZE(bi)                (KS_DIBWIDTHBYTES(bi) *(DWORD)(bi).biHeight)
2474
#define KS_DIBSIZE(bi)                ((bi).biHeight < 0 ? (-1)*(KS__DIBSIZE(bi)) : KS__DIBSIZE(bi))
2475

    
2476
typedef LONGLONG REFERENCE_TIME;
2477

    
2478
typedef struct tagKS_VIDEOINFOHEADER {
2479
  RECT rcSource;
2480
  RECT rcTarget;
2481
  DWORD dwBitRate;
2482
  DWORD dwBitErrorRate;
2483
  REFERENCE_TIME AvgTimePerFrame;
2484
  KS_BITMAPINFOHEADER bmiHeader;
2485
} KS_VIDEOINFOHEADER,*PKS_VIDEOINFOHEADER;
2486

    
2487
typedef struct tagKS_VIDEOINFO {
2488
  RECT rcSource;
2489
  RECT rcTarget;
2490
  DWORD dwBitRate;
2491
  DWORD dwBitErrorRate;
2492
  REFERENCE_TIME AvgTimePerFrame;
2493
  KS_BITMAPINFOHEADER bmiHeader;
2494
  __MINGW_EXTENSION union {
2495
    KS_RGBQUAD bmiColors[KS_iPALETTE_COLORS];
2496
    DWORD dwBitMasks[KS_iMASK_COLORS];
2497
    KS_TRUECOLORINFO TrueColorInfo;
2498
  };
2499
} KS_VIDEOINFO,*PKS_VIDEOINFO;
2500

    
2501
#define KS_SIZE_MASKS                        (KS_iMASK_COLORS *sizeof(DWORD))
2502
#define KS_SIZE_PREHEADER                (FIELD_OFFSET(KS_VIDEOINFOHEADER,bmiHeader))
2503

    
2504
#define KS_SIZE_VIDEOHEADER(pbmi)        ((pbmi)->bmiHeader.biSize + KS_SIZE_PREHEADER)
2505

    
2506
typedef struct tagKS_VBIINFOHEADER {
2507
  ULONG StartLine;
2508
  ULONG EndLine;
2509
  ULONG SamplingFrequency;
2510
  ULONG MinLineStartTime;
2511
  ULONG MaxLineStartTime;
2512
  ULONG ActualLineStartTime;
2513
  ULONG ActualLineEndTime;
2514
  ULONG VideoStandard;
2515
  ULONG SamplesPerLine;
2516
  ULONG StrideInBytes;
2517
  ULONG BufferSize;
2518
} KS_VBIINFOHEADER,*PKS_VBIINFOHEADER;
2519

    
2520
#define KS_VBIDATARATE_NABTS                (5727272L)
2521
#define KS_VBIDATARATE_CC                (503493L)
2522
#define KS_VBISAMPLINGRATE_4X_NABTS        ((long)(4*KS_VBIDATARATE_NABTS))
2523
#define KS_VBISAMPLINGRATE_47X_NABTS        ((long)(27000000))
2524
#define KS_VBISAMPLINGRATE_5X_NABTS        ((long)(5*KS_VBIDATARATE_NABTS))
2525

    
2526
#define KS_47NABTS_SCALER                (KS_VBISAMPLINGRATE_47X_NABTS/(double)KS_VBIDATARATE_NABTS)
2527

    
2528
typedef struct tagKS_AnalogVideoInfo {
2529
  RECT rcSource;
2530
  RECT rcTarget;
2531
  DWORD dwActiveWidth;
2532
  DWORD dwActiveHeight;
2533
  REFERENCE_TIME AvgTimePerFrame;
2534
} KS_ANALOGVIDEOINFO,*PKS_ANALOGVIDEOINFO;
2535

    
2536
#define KS_TVTUNER_CHANGE_BEGIN_TUNE        0x0001L
2537
#define KS_TVTUNER_CHANGE_END_TUNE        0x0002L
2538

    
2539
typedef struct tagKS_TVTUNER_CHANGE_INFO {
2540
  DWORD dwFlags;
2541
  DWORD dwCountryCode;
2542
  DWORD dwAnalogVideoStandard;
2543
  DWORD dwChannel;
2544
} KS_TVTUNER_CHANGE_INFO,*PKS_TVTUNER_CHANGE_INFO;
2545

    
2546
typedef enum {
2547
  KS_MPEG2Level_Low,
2548
  KS_MPEG2Level_Main,
2549
  KS_MPEG2Level_High1440,
2550
  KS_MPEG2Level_High
2551
} KS_MPEG2Level;
2552

    
2553
typedef enum {
2554
  KS_MPEG2Profile_Simple,
2555
  KS_MPEG2Profile_Main,
2556
  KS_MPEG2Profile_SNRScalable,
2557
  KS_MPEG2Profile_SpatiallyScalable,
2558
  KS_MPEG2Profile_High
2559
} KS_MPEG2Profile;
2560

    
2561
#define KS_INTERLACE_IsInterlaced                0x00000001
2562
#define KS_INTERLACE_1FieldPerSample                0x00000002
2563
#define KS_INTERLACE_Field1First                0x00000004
2564
#define KS_INTERLACE_UNUSED                        0x00000008
2565
#define KS_INTERLACE_FieldPatternMask                0x00000030
2566
#define KS_INTERLACE_FieldPatField1Only                0x00000000
2567
#define KS_INTERLACE_FieldPatField2Only                0x00000010
2568
#define KS_INTERLACE_FieldPatBothRegular        0x00000020
2569
#define KS_INTERLACE_FieldPatBothIrregular        0x00000030
2570
#define KS_INTERLACE_DisplayModeMask                0x000000c0
2571
#define KS_INTERLACE_DisplayModeBobOnly                0x00000000
2572
#define KS_INTERLACE_DisplayModeWeaveOnly        0x00000040
2573
#define KS_INTERLACE_DisplayModeBobOrWeave        0x00000080
2574

    
2575
#define KS_MPEG2_DoPanScan                        0x00000001
2576
#define KS_MPEG2_DVDLine21Field1                0x00000002
2577
#define KS_MPEG2_DVDLine21Field2                0x00000004
2578
#define KS_MPEG2_SourceIsLetterboxed                0x00000008
2579
#define KS_MPEG2_FilmCameraMode                        0x00000010
2580
#define KS_MPEG2_LetterboxAnalogOut                0x00000020
2581
#define KS_MPEG2_DSS_UserData                        0x00000040
2582
#define KS_MPEG2_DVB_UserData                        0x00000080
2583
#define KS_MPEG2_27MhzTimebase                        0x00000100
2584

    
2585
typedef struct tagKS_VIDEOINFOHEADER2 {
2586
  RECT rcSource;
2587
  RECT rcTarget;
2588
  DWORD dwBitRate;
2589
  DWORD dwBitErrorRate;
2590
  REFERENCE_TIME AvgTimePerFrame;
2591
  DWORD dwInterlaceFlags;
2592
  DWORD dwCopyProtectFlags;
2593
  DWORD dwPictAspectRatioX;
2594
  DWORD dwPictAspectRatioY;
2595
  DWORD dwReserved1;
2596
  DWORD dwReserved2;
2597
  KS_BITMAPINFOHEADER bmiHeader;
2598
} KS_VIDEOINFOHEADER2,*PKS_VIDEOINFOHEADER2;
2599

    
2600
typedef struct tagKS_MPEG1VIDEOINFO {
2601
  KS_VIDEOINFOHEADER hdr;
2602
  DWORD dwStartTimeCode;
2603
  DWORD cbSequenceHeader;
2604
  BYTE bSequenceHeader[1];
2605
} KS_MPEG1VIDEOINFO,*PKS_MPEG1VIDEOINFO;
2606

    
2607
#define KS_MAX_SIZE_MPEG1_SEQUENCE_INFO        140
2608
#define KS_SIZE_MPEG1VIDEOINFO(pv)        (FIELD_OFFSET(KS_MPEG1VIDEOINFO,bSequenceHeader[0]) + (pv)->cbSequenceHeader)
2609
#define KS_MPEG1_SEQUENCE_INFO(pv)        ((const BYTE *)(pv)->bSequenceHeader)
2610

    
2611
typedef struct tagKS_MPEGVIDEOINFO2 {
2612
  KS_VIDEOINFOHEADER2 hdr;
2613
  DWORD dwStartTimeCode;
2614
  DWORD cbSequenceHeader;
2615
  DWORD dwProfile;
2616
  DWORD dwLevel;
2617
  DWORD dwFlags;
2618
  DWORD bSequenceHeader[1];
2619
} KS_MPEGVIDEOINFO2,*PKS_MPEGVIDEOINFO2;
2620

    
2621
#define KS_SIZE_MPEGVIDEOINFO2(pv)        (FIELD_OFFSET(KS_MPEGVIDEOINFO2,bSequenceHeader[0]) + (pv)->cbSequenceHeader)
2622
#define KS_MPEG1_SEQUENCE_INFO(pv)        ((const BYTE *)(pv)->bSequenceHeader)
2623

    
2624
#define KS_MPEGAUDIOINFO_27MhzTimebase        0x00000001
2625

    
2626
typedef struct tagKS_MPEAUDIOINFO {
2627
  DWORD dwFlags;
2628
  DWORD dwReserved1;
2629
  DWORD dwReserved2;
2630
  DWORD dwReserved3;
2631
} KS_MPEGAUDIOINFO,*PKS_MPEGAUDIOINFO;
2632

    
2633
typedef struct tagKS_DATAFORMAT_VIDEOINFOHEADER {
2634
  KSDATAFORMAT DataFormat;
2635
  KS_VIDEOINFOHEADER VideoInfoHeader;
2636
} KS_DATAFORMAT_VIDEOINFOHEADER,*PKS_DATAFORMAT_VIDEOINFOHEADER;
2637

    
2638
typedef struct tagKS_DATAFORMAT_VIDEOINFOHEADER2 {
2639
  KSDATAFORMAT DataFormat;
2640
  KS_VIDEOINFOHEADER2 VideoInfoHeader2;
2641
} KS_DATAFORMAT_VIDEOINFOHEADER2,*PKS_DATAFORMAT_VIDEOINFOHEADER2;
2642

    
2643
typedef struct tagKS_DATAFORMAT_VIDEOINFO_PALETTE {
2644
  KSDATAFORMAT DataFormat;
2645
  KS_VIDEOINFO VideoInfo;
2646
} KS_DATAFORMAT_VIDEOINFO_PALETTE,*PKS_DATAFORMAT_VIDEOINFO_PALETTE;
2647

    
2648
typedef struct tagKS_DATAFORMAT_VBIINFOHEADER {
2649
  KSDATAFORMAT DataFormat;
2650
  KS_VBIINFOHEADER VBIInfoHeader;
2651
} KS_DATAFORMAT_VBIINFOHEADER,*PKS_DATAFORMAT_VBIINFOHEADER;
2652

    
2653
typedef struct _KS_VIDEO_STREAM_CONFIG_CAPS {
2654
  GUID guid;
2655
  ULONG VideoStandard;
2656
  SIZE InputSize;
2657
  SIZE MinCroppingSize;
2658
  SIZE MaxCroppingSize;
2659
  int CropGranularityX;
2660
  int CropGranularityY;
2661
  int CropAlignX;
2662
  int CropAlignY;
2663
  SIZE MinOutputSize;
2664
  SIZE MaxOutputSize;
2665
  int OutputGranularityX;
2666
  int OutputGranularityY;
2667
  int StretchTapsX;
2668
  int StretchTapsY;
2669
  int ShrinkTapsX;
2670
  int ShrinkTapsY;
2671
  LONGLONG MinFrameInterval;
2672
  LONGLONG MaxFrameInterval;
2673
  LONG MinBitsPerSecond;
2674
  LONG MaxBitsPerSecond;
2675
} KS_VIDEO_STREAM_CONFIG_CAPS,*PKS_VIDEO_STREAM_CONFIG_CAPS;
2676

    
2677
typedef struct tagKS_DATARANGE_VIDEO {
2678
  KSDATARANGE DataRange;
2679
  WINBOOL bFixedSizeSamples;
2680
  WINBOOL bTemporalCompression;
2681
  DWORD StreamDescriptionFlags;
2682
  DWORD MemoryAllocationFlags;
2683
  KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
2684
  KS_VIDEOINFOHEADER VideoInfoHeader;
2685
} KS_DATARANGE_VIDEO,*PKS_DATARANGE_VIDEO;
2686

    
2687
typedef struct tagKS_DATARANGE_VIDEO2 {
2688
  KSDATARANGE DataRange;
2689
  WINBOOL bFixedSizeSamples;
2690
  WINBOOL bTemporalCompression;
2691
  DWORD StreamDescriptionFlags;
2692
  DWORD MemoryAllocationFlags;
2693
  KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
2694
  KS_VIDEOINFOHEADER2 VideoInfoHeader;
2695
} KS_DATARANGE_VIDEO2,*PKS_DATARANGE_VIDEO2;
2696

    
2697
typedef struct tagKS_DATARANGE_MPEG1_VIDEO {
2698
  KSDATARANGE DataRange;
2699
  WINBOOL bFixedSizeSamples;
2700
  WINBOOL bTemporalCompression;
2701
  DWORD StreamDescriptionFlags;
2702
  DWORD MemoryAllocationFlags;
2703
  KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
2704
  KS_MPEG1VIDEOINFO VideoInfoHeader;
2705
} KS_DATARANGE_MPEG1_VIDEO,*PKS_DATARANGE_MPEG1_VIDEO;
2706

    
2707
typedef struct tagKS_DATARANGE_MPEG2_VIDEO {
2708
  KSDATARANGE DataRange;
2709
  WINBOOL bFixedSizeSamples;
2710
  WINBOOL bTemporalCompression;
2711
  DWORD StreamDescriptionFlags;
2712
  DWORD MemoryAllocationFlags;
2713
  KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
2714
  KS_MPEGVIDEOINFO2 VideoInfoHeader;
2715
} KS_DATARANGE_MPEG2_VIDEO,*PKS_DATARANGE_MPEG2_VIDEO;
2716

    
2717
typedef struct tagKS_DATARANGE_VIDEO_PALETTE {
2718
  KSDATARANGE DataRange;
2719
  WINBOOL bFixedSizeSamples;
2720
  WINBOOL bTemporalCompression;
2721
  DWORD StreamDescriptionFlags;
2722
  DWORD MemoryAllocationFlags;
2723
  KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
2724
  KS_VIDEOINFO VideoInfo;
2725
} KS_DATARANGE_VIDEO_PALETTE,*PKS_DATARANGE_VIDEO_PALETTE;
2726

    
2727
typedef struct tagKS_DATARANGE_VIDEO_VBI {
2728
  KSDATARANGE DataRange;
2729
  WINBOOL bFixedSizeSamples;
2730
  WINBOOL bTemporalCompression;
2731
  DWORD StreamDescriptionFlags;
2732
  DWORD MemoryAllocationFlags;
2733
  KS_VIDEO_STREAM_CONFIG_CAPS ConfigCaps;
2734
  KS_VBIINFOHEADER VBIInfoHeader;
2735
} KS_DATARANGE_VIDEO_VBI,*PKS_DATARANGE_VIDEO_VBI;
2736

    
2737
typedef struct tagKS_DATARANGE_ANALOGVIDEO {
2738
  KSDATARANGE DataRange;
2739
  KS_ANALOGVIDEOINFO AnalogVideoInfo;
2740
} KS_DATARANGE_ANALOGVIDEO,*PKS_DATARANGE_ANALOGVIDEO;
2741

    
2742
#define KS_VIDEOSTREAM_PREVIEW                0x0001
2743
#define KS_VIDEOSTREAM_CAPTURE                0x0002
2744
#define KS_VIDEOSTREAM_VBI                0x0010
2745
#define KS_VIDEOSTREAM_NABTS                0x0020
2746
#define KS_VIDEOSTREAM_CC                0x0100
2747
#define KS_VIDEOSTREAM_EDS                0x0200
2748
#define KS_VIDEOSTREAM_TELETEXT                0x0400
2749
#define KS_VIDEOSTREAM_STILL                0x1000
2750
#define KS_VIDEOSTREAM_IS_VPE                0x8000
2751

    
2752
#define KS_VIDEO_ALLOC_VPE_SYSTEM        0x0001
2753
#define KS_VIDEO_ALLOC_VPE_DISPLAY        0x0002
2754
#define KS_VIDEO_ALLOC_VPE_AGP                0x0004
2755

    
2756
#define STATIC_KSPROPSETID_VBICAP_PROPERTIES                                \
2757
        0xf162c607,0x7b35,0x496f,0xad,0x7f,0x2d,0xca,0x3b,0x46,0xb7,0x18
2758
DEFINE_GUIDSTRUCT("F162C607-7B35-496f-AD7F-2DCA3B46B718",KSPROPSETID_VBICAP_PROPERTIES);
2759
#define KSPROPSETID_VBICAP_PROPERTIES DEFINE_GUIDNAMED(KSPROPSETID_VBICAP_PROPERTIES)
2760

    
2761
typedef enum {
2762
  KSPROPERTY_VBICAP_PROPERTIES_PROTECTION = 0x01
2763
} KSPROPERTY_VBICAP;
2764

    
2765
typedef struct _VBICAP_PROPERTIES_PROTECTION_S {
2766
  KSPROPERTY Property;
2767
  ULONG StreamIndex;
2768
  ULONG Status;
2769
} VBICAP_PROPERTIES_PROTECTION_S,*PVBICAP_PROPERTIES_PROTECTION_S;
2770

    
2771
#define KS_VBICAP_PROTECTION_MV_PRESENT                                0x0001L
2772
#define KS_VBICAP_PROTECTION_MV_HARDWARE                        0x0002L
2773
#define KS_VBICAP_PROTECTION_MV_DETECTED                        0x0004L
2774

    
2775
#define KS_NABTS_GROUPID_ORIGINAL_CONTENT_BASE                        0x800
2776
#define KS_NABTS_GROUPID_ORIGINAL_CONTENT_ADVERTISER_BASE        0x810
2777

    
2778
#define KS_NABTS_GROUPID_PRODUCTION_COMPANY_CONTENT_BASE        0x820
2779
#define KS_NABTS_GROUPID_PRODUCTION_COMPANY_ADVERTISER_BASE        0x830
2780

    
2781
#define KS_NABTS_GROUPID_SYNDICATED_SHOW_CONTENT_BASE                0x840
2782
#define KS_NABTS_GROUPID_SYNDICATED_SHOW_ADVERTISER_BASE        0x850
2783

    
2784
#define KS_NABTS_GROUPID_NETWORK_WIDE_CONTENT_BASE                0x860
2785
#define KS_NABTS_GROUPID_NETWORK_WIDE_ADVERTISER_BASE                0x870
2786

    
2787
#define KS_NABTS_GROUPID_TELEVISION_STATION_CONTENT_BASE        0x880
2788
#define KS_NABTS_GROUPID_TELEVISION_STATION_ADVERTISER_BASE        0x890
2789

    
2790
#define KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_CONTENT_BASE        0x8A0
2791
#define KS_NABTS_GROUPID_LOCAL_CABLE_SYSTEM_ADVERTISER_BASE        0x8B0
2792

    
2793
#define KS_NABTS_GROUPID_MICROSOFT_RESERVED_TEST_DATA_BASE        0x8F0
2794

    
2795
#define STATIC_KSDATAFORMAT_TYPE_NABTS                                        \
2796
        0xe757bca0,0x39ac,0x11d1,0xa9,0xf5,0x0,0xc0,0x4f,0xbb,0xde,0x8f
2797
DEFINE_GUIDSTRUCT("E757BCA0-39AC-11d1-A9F5-00C04FBBDE8F",KSDATAFORMAT_TYPE_NABTS);
2798
#define KSDATAFORMAT_TYPE_NABTS DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_NABTS)
2799

    
2800
#define STATIC_KSDATAFORMAT_SUBTYPE_NABTS_FEC                                \
2801
        0xe757bca1,0x39ac,0x11d1,0xa9,0xf5,0x0,0xc0,0x4f,0xbb,0xde,0x8f
2802
DEFINE_GUIDSTRUCT("E757BCA1-39AC-11d1-A9F5-00C04FBBDE8F",KSDATAFORMAT_SUBTYPE_NABTS_FEC);
2803
#define KSDATAFORMAT_SUBTYPE_NABTS_FEC DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_NABTS_FEC)
2804

    
2805
#define MAX_NABTS_VBI_LINES_PER_FIELD        11
2806
#define NABTS_LINES_PER_BUNDLE                16
2807
#define NABTS_PAYLOAD_PER_LINE                28
2808
#define NABTS_BYTES_PER_LINE                36
2809

    
2810
typedef struct _NABTSFEC_BUFFER {
2811
  ULONG dataSize;
2812
  USHORT groupID;
2813
  USHORT Reserved;
2814
  UCHAR data[NABTS_LINES_PER_BUNDLE *NABTS_PAYLOAD_PER_LINE];
2815
} NABTSFEC_BUFFER,*PNABTSFEC_BUFFER;
2816

    
2817
#define STATIC_KSPROPSETID_VBICodecFiltering                                \
2818
        0xcafeb0caL,0x8715,0x11d0,0xbd,0x6a,0x00,0x35,0xc0,0xed,0xba,0xbe
2819
DEFINE_GUIDSTRUCT("cafeb0ca-8715-11d0-bd6a-0035c0edbabe",KSPROPSETID_VBICodecFiltering);
2820
#define KSPROPSETID_VBICodecFiltering DEFINE_GUIDNAMED(KSPROPSETID_VBICodecFiltering)
2821

    
2822
typedef enum {
2823
  KSPROPERTY_VBICODECFILTERING_SCANLINES_REQUESTED_BIT_ARRAY = 0x01,
2824
  KSPROPERTY_VBICODECFILTERING_SCANLINES_DISCOVERED_BIT_ARRAY,
2825
  KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_REQUESTED_BIT_ARRAY,
2826
  KSPROPERTY_VBICODECFILTERING_SUBSTREAMS_DISCOVERED_BIT_ARRAY,
2827
  KSPROPERTY_VBICODECFILTERING_STATISTICS
2828
} KSPROPERTY_VBICODECFILTERING;
2829

    
2830
typedef struct _VBICODECFILTERING_SCANLINES {
2831
  DWORD DwordBitArray[32];
2832
} VBICODECFILTERING_SCANLINES,*PVBICODECFILTERING_SCANLINES;
2833

    
2834
typedef struct _VBICODECFILTERING_NABTS_SUBSTREAMS {
2835
  DWORD SubstreamMask[128];
2836
} VBICODECFILTERING_NABTS_SUBSTREAMS,*PVBICODECFILTERING_NABTS_SUBSTREAMS;
2837

    
2838
typedef struct _VBICODECFILTERING_CC_SUBSTREAMS {
2839
  DWORD SubstreamMask;
2840
} VBICODECFILTERING_CC_SUBSTREAMS,*PVBICODECFILTERING_CC_SUBSTREAMS;
2841

    
2842
#define KS_CC_SUBSTREAM_ODD                0x0001L
2843
#define KS_CC_SUBSTREAM_EVEN                0x0002L
2844

    
2845
#define KS_CC_SUBSTREAM_FIELD1_MASK        0x00F0L
2846
#define KS_CC_SUBSTREAM_SERVICE_CC1        0x0010L
2847
#define KS_CC_SUBSTREAM_SERVICE_CC2        0x0020L
2848
#define KS_CC_SUBSTREAM_SERVICE_T1        0x0040L
2849
#define KS_CC_SUBSTREAM_SERVICE_T2        0x0080L
2850

    
2851
#define KS_CC_SUBSTREAM_FIELD2_MASK        0x1F00L
2852
#define KS_CC_SUBSTREAM_SERVICE_CC3        0x0100L
2853
#define KS_CC_SUBSTREAM_SERVICE_CC4        0x0200L
2854
#define KS_CC_SUBSTREAM_SERVICE_T3        0x0400L
2855
#define KS_CC_SUBSTREAM_SERVICE_T4        0x0800L
2856
#define KS_CC_SUBSTREAM_SERVICE_XDS        0x1000L
2857

    
2858
#define CC_MAX_HW_DECODE_LINES                12
2859
typedef struct _CC_BYTE_PAIR {
2860
  BYTE Decoded[2];
2861
  USHORT Reserved;
2862
} CC_BYTE_PAIR,*PCC_BYTE_PAIR;
2863

    
2864
typedef struct _CC_HW_FIELD {
2865
  VBICODECFILTERING_SCANLINES ScanlinesRequested;
2866
  ULONG fieldFlags;
2867
  LONGLONG PictureNumber;
2868
  CC_BYTE_PAIR Lines[CC_MAX_HW_DECODE_LINES];
2869
} CC_HW_FIELD,*PCC_HW_FIELD;
2870

    
2871
#ifndef PACK_PRAGMAS_NOT_SUPPORTED
2872
#include <pshpack1.h>
2873
#endif
2874
typedef struct _NABTS_BUFFER_LINE {
2875
  BYTE Confidence;
2876
  BYTE Bytes[NABTS_BYTES_PER_LINE];
2877
} NABTS_BUFFER_LINE,*PNABTS_BUFFER_LINE;
2878

    
2879
#define NABTS_BUFFER_PICTURENUMBER_SUPPORT        1
2880
typedef struct _NABTS_BUFFER {
2881
  VBICODECFILTERING_SCANLINES ScanlinesRequested;
2882
  LONGLONG PictureNumber;
2883
  NABTS_BUFFER_LINE NabtsLines[MAX_NABTS_VBI_LINES_PER_FIELD];
2884
} NABTS_BUFFER,*PNABTS_BUFFER;
2885
#ifndef PACK_PRAGMAS_NOT_SUPPORTED
2886
#include <poppack.h>
2887
#endif
2888

    
2889
#define WST_TVTUNER_CHANGE_BEGIN_TUNE        0x1000L
2890
#define WST_TVTUNER_CHANGE_END_TUNE        0x2000L
2891

    
2892
#define MAX_WST_VBI_LINES_PER_FIELD        17
2893
#define WST_BYTES_PER_LINE                42
2894

    
2895
typedef struct _WST_BUFFER_LINE {
2896
  BYTE Confidence;
2897
  BYTE Bytes[WST_BYTES_PER_LINE];
2898
} WST_BUFFER_LINE,*PWST_BUFFER_LINE;
2899

    
2900
typedef struct _WST_BUFFER {
2901
  VBICODECFILTERING_SCANLINES ScanlinesRequested;
2902
  WST_BUFFER_LINE WstLines[MAX_WST_VBI_LINES_PER_FIELD];
2903
} WST_BUFFER,*PWST_BUFFER;
2904

    
2905
typedef struct _VBICODECFILTERING_STATISTICS_COMMON {
2906
  DWORD InputSRBsProcessed;
2907
  DWORD OutputSRBsProcessed;
2908
  DWORD SRBsIgnored;
2909
  DWORD InputSRBsMissing;
2910
  DWORD OutputSRBsMissing;
2911
  DWORD OutputFailures;
2912
  DWORD InternalErrors;
2913
  DWORD ExternalErrors;
2914
  DWORD InputDiscontinuities;
2915
  DWORD DSPFailures;
2916
  DWORD TvTunerChanges;
2917
  DWORD VBIHeaderChanges;
2918
  DWORD LineConfidenceAvg;
2919
  DWORD BytesOutput;
2920
} VBICODECFILTERING_STATISTICS_COMMON,*PVBICODECFILTERING_STATISTICS_COMMON;
2921

    
2922
typedef struct _VBICODECFILTERING_STATISTICS_COMMON_PIN {
2923
  DWORD SRBsProcessed;
2924
  DWORD SRBsIgnored;
2925
  DWORD SRBsMissing;
2926
  DWORD InternalErrors;
2927
  DWORD ExternalErrors;
2928
  DWORD Discontinuities;
2929
  DWORD LineConfidenceAvg;
2930
  DWORD BytesOutput;
2931
} VBICODECFILTERING_STATISTICS_COMMON_PIN,*PVBICODECFILTERING_STATISTICS_COMMON_PIN;
2932

    
2933
typedef struct _VBICODECFILTERING_STATISTICS_NABTS {
2934
  VBICODECFILTERING_STATISTICS_COMMON Common;
2935
  DWORD FECBundleBadLines;
2936
  DWORD FECQueueOverflows;
2937
  DWORD FECCorrectedLines;
2938
  DWORD FECUncorrectableLines;
2939
  DWORD BundlesProcessed;
2940
  DWORD BundlesSent2IP;
2941
  DWORD FilteredLines;
2942
} VBICODECFILTERING_STATISTICS_NABTS,*PVBICODECFILTERING_STATISTICS_NABTS;
2943

    
2944
typedef struct _VBICODECFILTERING_STATISTICS_NABTS_PIN {
2945
  VBICODECFILTERING_STATISTICS_COMMON_PIN Common;
2946
} VBICODECFILTERING_STATISTICS_NABTS_PIN,*PVBICODECFILTERING_STATISTICS_NABTS_PIN;
2947

    
2948
typedef struct _VBICODECFILTERING_STATISTICS_CC {
2949
  VBICODECFILTERING_STATISTICS_COMMON Common;
2950
} VBICODECFILTERING_STATISTICS_CC,*PVBICODECFILTERING_STATISTICS_CC;
2951

    
2952
typedef struct _VBICODECFILTERING_STATISTICS_CC_PIN {
2953
  VBICODECFILTERING_STATISTICS_COMMON_PIN Common;
2954
} VBICODECFILTERING_STATISTICS_CC_PIN,*PVBICODECFILTERING_STATISTICS_CC_PIN;
2955

    
2956
typedef struct _VBICODECFILTERING_STATISTICS_TELETEXT {
2957
  VBICODECFILTERING_STATISTICS_COMMON Common;
2958
} VBICODECFILTERING_STATISTICS_TELETEXT,*PVBICODECFILTERING_STATISTICS_TELETEXT;
2959

    
2960
typedef struct _VBICODECFILTERING_STATISTICS_TELETEXT_PIN {
2961
  VBICODECFILTERING_STATISTICS_COMMON_PIN Common;
2962
} VBICODECFILTERING_STATISTICS_TELETEXT_PIN,*PVBICODECFILTERING_STATISTICS_TELETEXT_PIN;
2963

    
2964
typedef struct {
2965
  KSPROPERTY Property;
2966
  VBICODECFILTERING_SCANLINES Scanlines;
2967
} KSPROPERTY_VBICODECFILTERING_SCANLINES_S,*PKSPROPERTY_VBICODECFILTERING_SCANLINES_S;
2968

    
2969
typedef struct {
2970
  KSPROPERTY Property;
2971
  VBICODECFILTERING_NABTS_SUBSTREAMS Substreams;
2972
} KSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S,*PKSPROPERTY_VBICODECFILTERING_NABTS_SUBSTREAMS_S;
2973

    
2974
typedef struct {
2975
  KSPROPERTY Property;
2976
  VBICODECFILTERING_CC_SUBSTREAMS Substreams;
2977
} KSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S,*PKSPROPERTY_VBICODECFILTERING_CC_SUBSTREAMS_S;
2978

    
2979
typedef struct {
2980
  KSPROPERTY Property;
2981
  VBICODECFILTERING_STATISTICS_COMMON Statistics;
2982
} KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_S;
2983

    
2984
typedef struct {
2985
  KSPROPERTY Property;
2986
  VBICODECFILTERING_STATISTICS_COMMON_PIN Statistics;
2987
} KSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_COMMON_PIN_S;
2988

    
2989
typedef struct {
2990
  KSPROPERTY Property;
2991
  VBICODECFILTERING_STATISTICS_NABTS Statistics;
2992
} KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_S;
2993

    
2994
typedef struct {
2995
  KSPROPERTY Property;
2996
  VBICODECFILTERING_STATISTICS_NABTS_PIN Statistics;
2997
} KSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_NABTS_PIN_S;
2998

    
2999
typedef struct {
3000
  KSPROPERTY Property;
3001
  VBICODECFILTERING_STATISTICS_CC Statistics;
3002
} KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_CC_S;
3003

    
3004
typedef struct {
3005
  KSPROPERTY Property;
3006
  VBICODECFILTERING_STATISTICS_CC_PIN Statistics;
3007
} KSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S,*PKSPROPERTY_VBICODECFILTERING_STATISTICS_CC_PIN_S;
3008

    
3009
#define STATIC_PINNAME_VIDEO_CAPTURE                                        \
3010
        0xfb6c4281,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
3011
#define STATIC_PINNAME_CAPTURE STATIC_PINNAME_VIDEO_CAPTURE
3012
DEFINE_GUIDSTRUCT("FB6C4281-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_CAPTURE);
3013
#define PINNAME_VIDEO_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CAPTURE)
3014
#define PINNAME_CAPTURE PINNAME_VIDEO_CAPTURE
3015

    
3016
#define STATIC_PINNAME_VIDEO_CC_CAPTURE                                        \
3017
        0x1aad8061,0x12d,0x11d2,0xb4,0xb1,0x0,0xa0,0xd1,0x2,0xcf,0xbe
3018
#define STATIC_PINNAME_CC_CAPTURE STATIC_PINNAME_VIDEO_CC_CAPTURE
3019
DEFINE_GUIDSTRUCT("1AAD8061-012D-11d2-B4B1-00A0D102CFBE",PINNAME_VIDEO_CC_CAPTURE);
3020
#define PINNAME_VIDEO_CC_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_CC_CAPTURE)
3021

    
3022
#define STATIC_PINNAME_VIDEO_NABTS_CAPTURE                                \
3023
        0x29703660,0x498a,0x11d2,0xb4,0xb1,0x0,0xa0,0xd1,0x2,0xcf,0xbe
3024
#define STATIC_PINNAME_NABTS_CAPTURE STATIC_PINNAME_VIDEO_NABTS_CAPTURE
3025
DEFINE_GUIDSTRUCT("29703660-498A-11d2-B4B1-00A0D102CFBE",PINNAME_VIDEO_NABTS_CAPTURE);
3026
#define PINNAME_VIDEO_NABTS_CAPTURE DEFINE_GUIDNAMED(PINNAME_VIDEO_NABTS_CAPTURE)
3027

    
3028
#define STATIC_PINNAME_VIDEO_PREVIEW                                        \
3029
        0xfb6c4282,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
3030
#define STATIC_PINNAME_PREVIEW STATIC_PINNAME_VIDEO_PREVIEW
3031
DEFINE_GUIDSTRUCT("FB6C4282-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_PREVIEW);
3032
#define PINNAME_VIDEO_PREVIEW DEFINE_GUIDNAMED(PINNAME_VIDEO_PREVIEW)
3033
#define PINNAME_PREVIEW PINNAME_VIDEO_PREVIEW
3034

    
3035
#define STATIC_PINNAME_VIDEO_ANALOGVIDEOIN                                \
3036
        0xfb6c4283,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
3037
DEFINE_GUIDSTRUCT("FB6C4283-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_ANALOGVIDEOIN);
3038
#define PINNAME_VIDEO_ANALOGVIDEOIN DEFINE_GUIDNAMED(PINNAME_VIDEO_ANALOGVIDEOIN)
3039

    
3040
#define STATIC_PINNAME_VIDEO_VBI                                        \
3041
        0xfb6c4284,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
3042
DEFINE_GUIDSTRUCT("FB6C4284-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VBI);
3043
#define PINNAME_VIDEO_VBI DEFINE_GUIDNAMED(PINNAME_VIDEO_VBI)
3044

    
3045
#define STATIC_PINNAME_VIDEO_VIDEOPORT                                        \
3046
        0xfb6c4285,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
3047
DEFINE_GUIDSTRUCT("FB6C4285-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VIDEOPORT);
3048
#define PINNAME_VIDEO_VIDEOPORT DEFINE_GUIDNAMED(PINNAME_VIDEO_VIDEOPORT)
3049

    
3050
#define STATIC_PINNAME_VIDEO_NABTS                                        \
3051
        0xfb6c4286,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
3052
DEFINE_GUIDSTRUCT("FB6C4286-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_NABTS);
3053
#define PINNAME_VIDEO_NABTS DEFINE_GUIDNAMED(PINNAME_VIDEO_NABTS)
3054

    
3055
#define STATIC_PINNAME_VIDEO_EDS                                        \
3056
        0xfb6c4287,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
3057
DEFINE_GUIDSTRUCT("FB6C4287-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_EDS);
3058
#define PINNAME_VIDEO_EDS DEFINE_GUIDNAMED(PINNAME_VIDEO_EDS)
3059

    
3060
#define STATIC_PINNAME_VIDEO_TELETEXT                                        \
3061
        0xfb6c4288,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
3062
DEFINE_GUIDSTRUCT("FB6C4288-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_TELETEXT);
3063
#define PINNAME_VIDEO_TELETEXT DEFINE_GUIDNAMED(PINNAME_VIDEO_TELETEXT)
3064

    
3065
#define STATIC_PINNAME_VIDEO_CC                                                \
3066
        0xfb6c4289,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
3067
DEFINE_GUIDSTRUCT("FB6C4289-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_CC);
3068
#define PINNAME_VIDEO_CC DEFINE_GUIDNAMED(PINNAME_VIDEO_CC)
3069

    
3070
#define STATIC_PINNAME_VIDEO_STILL                                        \
3071
        0xfb6c428A,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
3072
DEFINE_GUIDSTRUCT("FB6C428A-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_STILL);
3073
#define PINNAME_VIDEO_STILL DEFINE_GUIDNAMED(PINNAME_VIDEO_STILL)
3074

    
3075
#define STATIC_PINNAME_VIDEO_TIMECODE                                        \
3076
        0xfb6c428B,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
3077
DEFINE_GUIDSTRUCT("FB6C428B-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_TIMECODE);
3078
#define PINNAME_VIDEO_TIMECODE DEFINE_GUIDNAMED(PINNAME_VIDEO_TIMECODE)
3079

    
3080
#define STATIC_PINNAME_VIDEO_VIDEOPORT_VBI                                \
3081
        0xfb6c428C,0x353,0x11d1,0x90,0x5f,0x0,0x0,0xc0,0xcc,0x16,0xba
3082
DEFINE_GUIDSTRUCT("FB6C428C-0353-11d1-905F-0000C0CC16BA",PINNAME_VIDEO_VIDEOPORT_VBI);
3083
#define PINNAME_VIDEO_VIDEOPORT_VBI DEFINE_GUIDNAMED(PINNAME_VIDEO_VIDEOPORT_VBI)
3084

    
3085
#define KS_VIDEO_FLAG_FRAME                0x0000L
3086
#define KS_VIDEO_FLAG_FIELD1                0x0001L
3087
#define KS_VIDEO_FLAG_FIELD2                0x0002L
3088

    
3089
#define KS_VIDEO_FLAG_I_FRAME                0x0000L
3090
#define KS_VIDEO_FLAG_P_FRAME                0x0010L
3091
#define KS_VIDEO_FLAG_B_FRAME                0x0020L
3092

    
3093
typedef struct tagKS_FRAME_INFO {
3094
  ULONG ExtendedHeaderSize;
3095
  DWORD dwFrameFlags;
3096
  LONGLONG PictureNumber;
3097
  LONGLONG DropCount;
3098
  HANDLE hDirectDraw;
3099
  HANDLE hSurfaceHandle;
3100
  RECT DirectDrawRect;
3101

    
3102
  DWORD Reserved1;
3103
  DWORD Reserved2;
3104
  DWORD Reserved3;
3105
  DWORD Reserved4;
3106
} KS_FRAME_INFO,*PKS_FRAME_INFO;
3107

    
3108
#define KS_VBI_FLAG_FIELD1                0x0001L
3109
#define KS_VBI_FLAG_FIELD2                0x0002L
3110

    
3111
#define KS_VBI_FLAG_MV_PRESENT                0x0100L
3112
#define KS_VBI_FLAG_MV_HARDWARE                0x0200L
3113
#define KS_VBI_FLAG_MV_DETECTED                0x0400L
3114

    
3115
#define KS_VBI_FLAG_TVTUNER_CHANGE        0x0010L
3116
#define KS_VBI_FLAG_VBIINFOHEADER_CHANGE 0x0020L
3117

    
3118
typedef struct tagKS_VBI_FRAME_INFO {
3119
  ULONG ExtendedHeaderSize;
3120
  DWORD dwFrameFlags;
3121
  LONGLONG PictureNumber;
3122
  LONGLONG DropCount;
3123
  DWORD dwSamplingFrequency;
3124
  KS_TVTUNER_CHANGE_INFO TvTunerChangeInfo;
3125
  KS_VBIINFOHEADER VBIInfoHeader;
3126
} KS_VBI_FRAME_INFO,*PKS_VBI_FRAME_INFO;
3127

    
3128
typedef enum
3129
{
3130
  KS_AnalogVideo_None = 0x00000000,
3131
  KS_AnalogVideo_NTSC_M = 0x00000001,
3132
  KS_AnalogVideo_NTSC_M_J = 0x00000002,
3133
  KS_AnalogVideo_NTSC_433 = 0x00000004,
3134
  KS_AnalogVideo_PAL_B = 0x00000010,
3135
  KS_AnalogVideo_PAL_D = 0x00000020,
3136
  KS_AnalogVideo_PAL_G = 0x00000040,
3137
  KS_AnalogVideo_PAL_H = 0x00000080,
3138
  KS_AnalogVideo_PAL_I = 0x00000100,
3139
  KS_AnalogVideo_PAL_M = 0x00000200,
3140
  KS_AnalogVideo_PAL_N = 0x00000400,
3141
  KS_AnalogVideo_PAL_60 = 0x00000800,
3142
  KS_AnalogVideo_SECAM_B = 0x00001000,
3143
  KS_AnalogVideo_SECAM_D = 0x00002000,
3144
  KS_AnalogVideo_SECAM_G = 0x00004000,
3145
  KS_AnalogVideo_SECAM_H = 0x00008000,
3146
  KS_AnalogVideo_SECAM_K = 0x00010000,
3147
  KS_AnalogVideo_SECAM_K1 = 0x00020000,
3148
  KS_AnalogVideo_SECAM_L = 0x00040000,
3149
  KS_AnalogVideo_SECAM_L1 = 0x00080000,
3150
  KS_AnalogVideo_PAL_N_COMBO = 0x00100000
3151
} KS_AnalogVideoStandard;
3152

    
3153
#define KS_AnalogVideo_NTSC_Mask        0x00000007
3154
#define KS_AnalogVideo_PAL_Mask                0x00100FF0
3155
#define KS_AnalogVideo_SECAM_Mask        0x000FF000
3156

    
3157
#define STATIC_PROPSETID_ALLOCATOR_CONTROL                                \
3158
        0x53171960,0x148e,0x11d2,0x99,0x79,0x0,0x0,0xc0,0xcc,0x16,0xba
3159
DEFINE_GUIDSTRUCT("53171960-148E-11d2-9979-0000C0CC16BA",PROPSETID_ALLOCATOR_CONTROL);
3160
#define PROPSETID_ALLOCATOR_CONTROL DEFINE_GUIDNAMED(PROPSETID_ALLOCATOR_CONTROL)
3161

    
3162
typedef enum {
3163
  KSPROPERTY_ALLOCATOR_CONTROL_HONOR_COUNT,
3164
  KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE,
3165
  KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS,
3166
  KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE
3167
} KSPROPERTY_ALLOCATOR_CONTROL;
3168

    
3169
typedef struct {
3170
  ULONG CX;
3171
  ULONG CY;
3172
} KSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S,*PKSPROPERTY_ALLOCATOR_CONTROL_SURFACE_SIZE_S;
3173

    
3174
typedef struct {
3175
  ULONG InterleavedCapSupported;
3176
} KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S,*PKSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_CAPS_S;
3177

    
3178
typedef struct {
3179
  ULONG InterleavedCapPossible;
3180
} KSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S,*PKSPROPERTY_ALLOCATOR_CONTROL_CAPTURE_INTERLEAVE_S;
3181

    
3182
#define STATIC_PROPSETID_VIDCAP_VIDEOPROCAMP                                \
3183
        0xC6E13360L,0x30AC,0x11d0,0xa1,0x8c,0x00,0xA0,0xC9,0x11,0x89,0x56
3184
DEFINE_GUIDSTRUCT("C6E13360-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEOPROCAMP);
3185
#define PROPSETID_VIDCAP_VIDEOPROCAMP DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOPROCAMP)
3186

    
3187
typedef enum {
3188
  KSPROPERTY_VIDEOPROCAMP_BRIGHTNESS,
3189
  KSPROPERTY_VIDEOPROCAMP_CONTRAST,
3190
  KSPROPERTY_VIDEOPROCAMP_HUE,
3191
  KSPROPERTY_VIDEOPROCAMP_SATURATION,
3192
  KSPROPERTY_VIDEOPROCAMP_SHARPNESS,
3193
  KSPROPERTY_VIDEOPROCAMP_GAMMA,
3194
  KSPROPERTY_VIDEOPROCAMP_COLORENABLE,
3195
  KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE,
3196
  KSPROPERTY_VIDEOPROCAMP_BACKLIGHT_COMPENSATION,
3197
  KSPROPERTY_VIDEOPROCAMP_GAIN,
3198
  KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER,
3199
  KSPROPERTY_VIDEOPROCAMP_DIGITAL_MULTIPLIER_LIMIT,
3200
  KSPROPERTY_VIDEOPROCAMP_WHITEBALANCE_COMPONENT,
3201
  KSPROPERTY_VIDEOPROCAMP_POWERLINE_FREQUENCY
3202
} KSPROPERTY_VIDCAP_VIDEOPROCAMP;
3203

    
3204
typedef struct {
3205
  KSPROPERTY Property;
3206
  LONG Value;
3207
  ULONG Flags;
3208
  ULONG Capabilities;
3209
} KSPROPERTY_VIDEOPROCAMP_S,*PKSPROPERTY_VIDEOPROCAMP_S;
3210

    
3211
typedef struct {
3212
  KSP_NODE NodeProperty;
3213
  LONG Value;
3214
  ULONG Flags;
3215
  ULONG Capabilities;
3216
} KSPROPERTY_VIDEOPROCAMP_NODE_S,*PKSPROPERTY_VIDEOPROCAMP_NODE_S;
3217

    
3218
typedef struct {
3219
  KSPROPERTY Property;
3220
  LONG Value1;
3221
  ULONG Flags;
3222
  ULONG Capabilities;
3223
  LONG Value2;
3224
} KSPROPERTY_VIDEOPROCAMP_S2,*PKSPROPERTY_VIDEOPROCAMP_S2;
3225

    
3226
typedef struct {
3227
  KSP_NODE NodeProperty;
3228
  LONG Value1;
3229
  ULONG Flags;
3230
  ULONG Capabilities;
3231
  LONG Value2;
3232
} KSPROPERTY_VIDEOPROCAMP_NODE_S2,*PKSPROPERTY_VIDEOPROCAMP_NODE_S2;
3233

    
3234
#define KSPROPERTY_VIDEOPROCAMP_FLAGS_AUTO        0X0001L
3235
#define KSPROPERTY_VIDEOPROCAMP_FLAGS_MANUAL        0X0002L
3236

    
3237
#define STATIC_PROPSETID_VIDCAP_SELECTOR                                \
3238
        0x1ABDAECA,0x68B6,0x4F83,0x93,0x71,0xB4,0x13,0x90,0x7C,0x7B,0x9F
3239
DEFINE_GUIDSTRUCT("1ABDAECA-68B6-4F83-9371-B413907C7B9F",PROPSETID_VIDCAP_SELECTOR);
3240
#define PROPSETID_VIDCAP_SELECTOR DEFINE_GUIDNAMED(PROPSETID_VIDCAP_SELECTOR)
3241

    
3242
typedef enum {
3243
  KSPROPERTY_SELECTOR_SOURCE_NODE_ID,
3244
  KSPROPERTY_SELECTOR_NUM_SOURCES
3245
} KSPROPERTY_VIDCAP_SELECTOR,*PKSPROPERTY_VIDCAP_SELECTOR;
3246

    
3247
typedef struct {
3248
  KSPROPERTY Property;
3249
  LONG Value;
3250
  ULONG Flags;
3251
  ULONG Capabilities;
3252
} KSPROPERTY_SELECTOR_S,*PKSPROPERTY_SELECTOR_S;
3253

    
3254
typedef struct {
3255
  KSP_NODE NodeProperty;
3256
  LONG Value;
3257
  ULONG Flags;
3258
  ULONG Capabilities;
3259
} KSPROPERTY_SELECTOR_NODE_S,*PKSPROPERTY_SELECTOR_NODE_S;
3260

    
3261
#define STATIC_PROPSETID_TUNER                                                \
3262
        0x6a2e0605L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
3263
DEFINE_GUIDSTRUCT("6a2e0605-28e4-11d0-a18c-00a0c9118956",PROPSETID_TUNER);
3264
#define PROPSETID_TUNER DEFINE_GUIDNAMED(PROPSETID_TUNER)
3265

    
3266
typedef enum {
3267
  KSPROPERTY_TUNER_CAPS,
3268
  KSPROPERTY_TUNER_MODE_CAPS,
3269
  KSPROPERTY_TUNER_MODE,
3270
  KSPROPERTY_TUNER_STANDARD,
3271
  KSPROPERTY_TUNER_FREQUENCY,
3272
  KSPROPERTY_TUNER_INPUT,
3273
  KSPROPERTY_TUNER_STATUS,
3274
  KSPROPERTY_TUNER_IF_MEDIUM
3275
} KSPROPERTY_TUNER;
3276

    
3277
typedef enum {
3278
  KSPROPERTY_TUNER_MODE_TV = 0X0001,
3279
  KSPROPERTY_TUNER_MODE_FM_RADIO = 0X0002,
3280
  KSPROPERTY_TUNER_MODE_AM_RADIO = 0X0004,
3281
  KSPROPERTY_TUNER_MODE_DSS = 0X0008,
3282
  KSPROPERTY_TUNER_MODE_ATSC = 0X0010
3283
} KSPROPERTY_TUNER_MODES;
3284

    
3285
typedef enum {
3286
  KS_TUNER_TUNING_EXACT = 1,
3287
  KS_TUNER_TUNING_FINE,
3288
  KS_TUNER_TUNING_COARSE
3289
} KS_TUNER_TUNING_FLAGS;
3290

    
3291
typedef enum {
3292
  KS_TUNER_STRATEGY_PLL = 0X01,
3293
  KS_TUNER_STRATEGY_SIGNAL_STRENGTH = 0X02,
3294
  KS_TUNER_STRATEGY_DRIVER_TUNES = 0X04
3295
} KS_TUNER_STRATEGY;
3296

    
3297
typedef struct {
3298
  KSPROPERTY Property;
3299
  ULONG ModesSupported;
3300
  KSPIN_MEDIUM VideoMedium;
3301
  KSPIN_MEDIUM TVAudioMedium;
3302
  KSPIN_MEDIUM RadioAudioMedium;
3303
} KSPROPERTY_TUNER_CAPS_S,*PKSPROPERTY_TUNER_CAPS_S;
3304

    
3305
typedef struct {
3306
  KSPROPERTY Property;
3307
  KSPIN_MEDIUM IFMedium;
3308
} KSPROPERTY_TUNER_IF_MEDIUM_S,*PKSPROPERTY_TUNER_IF_MEDIUM_S;
3309

    
3310
typedef struct {
3311
  KSPROPERTY Property;
3312
  ULONG Mode;
3313
  ULONG StandardsSupported;
3314
  ULONG MinFrequency;
3315
  ULONG MaxFrequency;
3316
  ULONG TuningGranularity;
3317
  ULONG NumberOfInputs;
3318
  ULONG SettlingTime;
3319
  ULONG Strategy;
3320
} KSPROPERTY_TUNER_MODE_CAPS_S,*PKSPROPERTY_TUNER_MODE_CAPS_S;
3321

    
3322
typedef struct {
3323
  KSPROPERTY Property;
3324
  ULONG Mode;
3325
} KSPROPERTY_TUNER_MODE_S,*PKSPROPERTY_TUNER_MODE_S;
3326

    
3327
typedef struct {
3328
  KSPROPERTY Property;
3329
  ULONG Frequency;
3330
  ULONG LastFrequency;
3331
  ULONG TuningFlags;
3332
  ULONG VideoSubChannel;
3333
  ULONG AudioSubChannel;
3334
  ULONG Channel;
3335
  ULONG Country;
3336
} KSPROPERTY_TUNER_FREQUENCY_S,*PKSPROPERTY_TUNER_FREQUENCY_S;
3337

    
3338
typedef struct {
3339
  KSPROPERTY Property;
3340
  ULONG Standard;
3341
} KSPROPERTY_TUNER_STANDARD_S,*PKSPROPERTY_TUNER_STANDARD_S;
3342

    
3343
typedef struct {
3344
  KSPROPERTY Property;
3345
  ULONG InputIndex;
3346
} KSPROPERTY_TUNER_INPUT_S,*PKSPROPERTY_TUNER_INPUT_S;
3347

    
3348
typedef struct {
3349
  KSPROPERTY Property;
3350
  ULONG CurrentFrequency;
3351
  ULONG PLLOffset;
3352
  ULONG SignalStrength;
3353
  ULONG Busy;
3354
} KSPROPERTY_TUNER_STATUS_S,*PKSPROPERTY_TUNER_STATUS_S;
3355

    
3356
#define STATIC_EVENTSETID_TUNER                                                \
3357
        0x6a2e0606L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
3358
DEFINE_GUIDSTRUCT("6a2e0606-28e4-11d0-a18c-00a0c9118956",EVENTSETID_TUNER);
3359
#define EVENTSETID_TUNER DEFINE_GUIDNAMED(EVENTSETID_TUNER)
3360

    
3361
typedef enum {
3362
  KSEVENT_TUNER_CHANGED
3363
} KSEVENT_TUNER;
3364

    
3365
#define STATIC_KSNODETYPE_VIDEO_STREAMING                                \
3366
        0xDFF229E1L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
3367
DEFINE_GUIDSTRUCT("DFF229E1-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_STREAMING);
3368
#define KSNODETYPE_VIDEO_STREAMING DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_STREAMING)
3369

    
3370
#define STATIC_KSNODETYPE_VIDEO_INPUT_TERMINAL                                \
3371
        0xDFF229E2L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
3372
DEFINE_GUIDSTRUCT("DFF229E2-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_INPUT_TERMINAL);
3373
#define KSNODETYPE_VIDEO_INPUT_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_INPUT_TERMINAL)
3374

    
3375
#define STATIC_KSNODETYPE_VIDEO_OUTPUT_TERMINAL                                \
3376
        0xDFF229E3L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
3377
DEFINE_GUIDSTRUCT("DFF229E3-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_OUTPUT_TERMINAL);
3378
#define KSNODETYPE_VIDEO_OUTPUT_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_OUTPUT_TERMINAL)
3379

    
3380
#define STATIC_KSNODETYPE_VIDEO_SELECTOR                                \
3381
        0xDFF229E4L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
3382
DEFINE_GUIDSTRUCT("DFF229E4-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_SELECTOR);
3383
#define KSNODETYPE_VIDEO_SELECTOR DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_SELECTOR)
3384

    
3385
#define STATIC_KSNODETYPE_VIDEO_PROCESSING                                \
3386
        0xDFF229E5L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
3387
DEFINE_GUIDSTRUCT("DFF229E5-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_PROCESSING);
3388
#define KSNODETYPE_VIDEO_PROCESSING DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_PROCESSING)
3389

    
3390
#define STATIC_KSNODETYPE_VIDEO_CAMERA_TERMINAL                                \
3391
        0xDFF229E6L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
3392
DEFINE_GUIDSTRUCT("DFF229E6-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_CAMERA_TERMINAL);
3393
#define KSNODETYPE_VIDEO_CAMERA_TERMINAL DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_CAMERA_TERMINAL)
3394

    
3395
#define STATIC_KSNODETYPE_VIDEO_INPUT_MTT                                \
3396
        0xDFF229E7L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
3397
DEFINE_GUIDSTRUCT("DFF229E7-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_INPUT_MTT);
3398
#define KSNODETYPE_VIDEO_INPUT_MTT DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_INPUT_MTT)
3399

    
3400
#define STATIC_KSNODETYPE_VIDEO_OUTPUT_MTT                                \
3401
        0xDFF229E8L,0xF70F,0x11D0,0xB9,0x17,0x00,0xA0,0xC9,0x22,0x31,0x96
3402
DEFINE_GUIDSTRUCT("DFF229E8-F70F-11D0-B917-00A0C9223196",KSNODETYPE_VIDEO_OUTPUT_MTT);
3403
#define KSNODETYPE_VIDEO_OUTPUT_MTT DEFINE_GUIDNAMED(KSNODETYPE_VIDEO_OUTPUT_MTT)
3404

    
3405
#define STATIC_PROPSETID_VIDCAP_VIDEOENCODER                                \
3406
        0x6a2e0610L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
3407
DEFINE_GUIDSTRUCT("6a2e0610-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_VIDEOENCODER);
3408
#define PROPSETID_VIDCAP_VIDEOENCODER DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOENCODER)
3409

    
3410
typedef enum {
3411
  KSPROPERTY_VIDEOENCODER_CAPS,
3412
  KSPROPERTY_VIDEOENCODER_STANDARD,
3413
  KSPROPERTY_VIDEOENCODER_COPYPROTECTION,
3414
  KSPROPERTY_VIDEOENCODER_CC_ENABLE
3415
} KSPROPERTY_VIDCAP_VIDEOENCODER;
3416

    
3417
typedef struct {
3418
  KSPROPERTY Property;
3419
  LONG Value;
3420
  ULONG Flags;
3421
  ULONG Capabilities;
3422
} KSPROPERTY_VIDEOENCODER_S,*PKSPROPERTY_VIDEOENCODER_S;
3423

    
3424
#define STATIC_PROPSETID_VIDCAP_VIDEODECODER                                \
3425
        0xC6E13350L,0x30AC,0x11d0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56
3426
DEFINE_GUIDSTRUCT("C6E13350-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEODECODER);
3427
#define PROPSETID_VIDCAP_VIDEODECODER DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEODECODER)
3428

    
3429
typedef enum {
3430
  KSPROPERTY_VIDEODECODER_CAPS,
3431
  KSPROPERTY_VIDEODECODER_STANDARD,
3432
  KSPROPERTY_VIDEODECODER_STATUS,
3433
  KSPROPERTY_VIDEODECODER_OUTPUT_ENABLE,
3434
  KSPROPERTY_VIDEODECODER_VCR_TIMING
3435
} KSPROPERTY_VIDCAP_VIDEODECODER;
3436

    
3437
typedef enum {
3438
  KS_VIDEODECODER_FLAGS_CAN_DISABLE_OUTPUT = 0X0001,
3439
  KS_VIDEODECODER_FLAGS_CAN_USE_VCR_LOCKING = 0X0002,
3440
  KS_VIDEODECODER_FLAGS_CAN_INDICATE_LOCKED = 0X0004
3441
} KS_VIDEODECODER_FLAGS;
3442

    
3443
typedef struct {
3444
  KSPROPERTY Property;
3445
  ULONG StandardsSupported;
3446
  ULONG Capabilities;
3447
  ULONG SettlingTime;
3448
  ULONG HSyncPerVSync;
3449
} KSPROPERTY_VIDEODECODER_CAPS_S,*PKSPROPERTY_VIDEODECODER_CAPS_S;
3450

    
3451
typedef struct {
3452
  KSPROPERTY Property;
3453
  ULONG NumberOfLines;
3454
  ULONG SignalLocked;
3455
} KSPROPERTY_VIDEODECODER_STATUS_S,*PKSPROPERTY_VIDEODECODER_STATUS_S;
3456

    
3457
typedef struct {
3458
  KSPROPERTY Property;
3459
  ULONG Value;
3460
} KSPROPERTY_VIDEODECODER_S,*PKSPROPERTY_VIDEODECODER_S;
3461

    
3462
#define STATIC_EVENTSETID_VIDEODECODER                                        \
3463
        0x6a2e0621L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
3464
DEFINE_GUIDSTRUCT("6a2e0621-28e4-11d0-a18c-00a0c9118956",EVENTSETID_VIDEODECODER);
3465
#define EVENTSETID_VIDEODECODER DEFINE_GUIDNAMED(EVENTSETID_VIDEODECODER)
3466

    
3467
typedef enum {
3468
  KSEVENT_VIDEODECODER_CHANGED
3469
} KSEVENT_VIDEODECODER;
3470

    
3471
#define STATIC_PROPSETID_VIDCAP_CAMERACONTROL                                \
3472
        0xC6E13370L,0x30AC,0x11d0,0xa1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56
3473
DEFINE_GUIDSTRUCT("C6E13370-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_CAMERACONTROL);
3474
#define PROPSETID_VIDCAP_CAMERACONTROL DEFINE_GUIDNAMED(PROPSETID_VIDCAP_CAMERACONTROL)
3475

    
3476
typedef enum {
3477
  KSPROPERTY_CAMERACONTROL_PAN,
3478
  KSPROPERTY_CAMERACONTROL_TILT,
3479
  KSPROPERTY_CAMERACONTROL_ROLL,
3480
  KSPROPERTY_CAMERACONTROL_ZOOM,
3481
  KSPROPERTY_CAMERACONTROL_EXPOSURE,
3482
  KSPROPERTY_CAMERACONTROL_IRIS,
3483
  KSPROPERTY_CAMERACONTROL_FOCUS,
3484
  KSPROPERTY_CAMERACONTROL_SCANMODE,
3485
  KSPROPERTY_CAMERACONTROL_PRIVACY,
3486
  KSPROPERTY_CAMERACONTROL_PANTILT,
3487
  KSPROPERTY_CAMERACONTROL_PAN_RELATIVE,
3488
  KSPROPERTY_CAMERACONTROL_TILT_RELATIVE,
3489
  KSPROPERTY_CAMERACONTROL_ROLL_RELATIVE,
3490
  KSPROPERTY_CAMERACONTROL_ZOOM_RELATIVE,
3491
  KSPROPERTY_CAMERACONTROL_EXPOSURE_RELATIVE,
3492
  KSPROPERTY_CAMERACONTROL_IRIS_RELATIVE,
3493
  KSPROPERTY_CAMERACONTROL_FOCUS_RELATIVE,
3494
  KSPROPERTY_CAMERACONTROL_PANTILT_RELATIVE,
3495
  KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH
3496
} KSPROPERTY_VIDCAP_CAMERACONTROL;
3497

    
3498
typedef struct {
3499
  KSPROPERTY Property;
3500
  LONG Value;
3501
  ULONG Flags;
3502
  ULONG Capabilities;
3503
} KSPROPERTY_CAMERACONTROL_S,*PKSPROPERTY_CAMERACONTROL_S;
3504

    
3505
typedef struct {
3506
  KSP_NODE NodeProperty;
3507
  LONG Value;
3508
  ULONG Flags;
3509
  ULONG Capabilities;
3510
} KSPROPERTY_CAMERACONTROL_NODE_S,PKSPROPERTY_CAMERACONTROL_NODE_S;
3511

    
3512
typedef struct {
3513
  KSPROPERTY Property;
3514
  LONG Value1;
3515
  ULONG Flags;
3516
  ULONG Capabilities;
3517
  LONG Value2;
3518
} KSPROPERTY_CAMERACONTROL_S2,*PKSPROPERTY_CAMERACONTROL_S2;
3519

    
3520
typedef struct {
3521
  KSP_NODE NodeProperty;
3522
  LONG Value1;
3523
  ULONG Flags;
3524
  ULONG Capabilities;
3525
  LONG Value2;
3526
} KSPROPERTY_CAMERACONTROL_NODE_S2,*PKSPROPERTY_CAMERACONTROL_NODE_S2;
3527

    
3528
typedef struct {
3529
  KSPROPERTY Property;
3530
  LONG lOcularFocalLength;
3531
  LONG lObjectiveFocalLengthMin;
3532
  LONG lObjectiveFocalLengthMax;
3533
} KSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S,*PKSPROPERTY_CAMERACONTROL_FOCAL_LENGTH_S;
3534

    
3535
typedef struct {
3536
  KSNODEPROPERTY NodeProperty;
3537
  LONG lOcularFocalLength;
3538
  LONG lObjectiveFocalLengthMin;
3539
  LONG lObjectiveFocalLengthMax;
3540
} KSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S,*PKSPROPERTY_CAMERACONTROL_NODE_FOCAL_LENGTH_S;
3541

    
3542
#define KSPROPERTY_CAMERACONTROL_FLAGS_AUTO        0X0001L
3543
#define KSPROPERTY_CAMERACONTROL_FLAGS_MANUAL        0X0002L
3544

    
3545
#define KSPROPERTY_CAMERACONTROL_FLAGS_ABSOLUTE        0X0000L
3546
#define KSPROPERTY_CAMERACONTROL_FLAGS_RELATIVE        0X0010L
3547

    
3548
#ifndef __EDevCtrl__
3549
#define __EDevCtrl__
3550

    
3551
#define STATIC_PROPSETID_EXT_DEVICE                                        \
3552
        0xB5730A90L,0x1A2C,0x11cf,0x8c,0x23,0x00,0xAA,0x00,0x6B,0x68,0x14
3553
DEFINE_GUIDSTRUCT("B5730A90-1A2C-11cf-8C23-00AA006B6814",PROPSETID_EXT_DEVICE);
3554
#define PROPSETID_EXT_DEVICE DEFINE_GUIDNAMED(PROPSETID_EXT_DEVICE)
3555

    
3556
typedef enum {
3557
  KSPROPERTY_EXTDEVICE_ID,
3558
  KSPROPERTY_EXTDEVICE_VERSION,
3559
  KSPROPERTY_EXTDEVICE_POWER_STATE,
3560
  KSPROPERTY_EXTDEVICE_PORT,
3561
  KSPROPERTY_EXTDEVICE_CAPABILITIES
3562
} KSPROPERTY_EXTDEVICE;
3563

    
3564
typedef struct tagDEVCAPS{
3565
  LONG CanRecord;
3566
  LONG CanRecordStrobe;
3567
  LONG HasAudio;
3568
  LONG HasVideo;
3569
  LONG UsesFiles;
3570
  LONG CanSave;
3571
  LONG DeviceType;
3572
  LONG TCRead;
3573
  LONG TCWrite;
3574
  LONG CTLRead;
3575
  LONG IndexRead;
3576
  LONG Preroll;
3577
  LONG Postroll;
3578
  LONG SyncAcc;
3579
  LONG NormRate;
3580
  LONG CanPreview;
3581
  LONG CanMonitorSrc;
3582
  LONG CanTest;
3583
  LONG VideoIn;
3584
  LONG AudioIn;
3585
  LONG Calibrate;
3586
  LONG SeekType;
3587
  LONG SimulatedHardware;
3588
} DEVCAPS,*PDEVCAPS;
3589

    
3590
typedef struct {
3591
  KSPROPERTY Property;
3592
  union {
3593
    DEVCAPS Capabilities;
3594
    ULONG DevPort;
3595
    ULONG PowerState;
3596
    WCHAR pawchString[MAX_PATH];
3597
    DWORD NodeUniqueID[2];
3598
  } u;
3599
} KSPROPERTY_EXTDEVICE_S,*PKSPROPERTY_EXTDEVICE_S;
3600

    
3601
#define STATIC_PROPSETID_EXT_TRANSPORT                                        \
3602
        0xA03CD5F0L,0x3045,0x11cf,0x8c,0x44,0x00,0xAA,0x00,0x6B,0x68,0x14
3603
DEFINE_GUIDSTRUCT("A03CD5F0-3045-11cf-8C44-00AA006B6814",PROPSETID_EXT_TRANSPORT);
3604
#define PROPSETID_EXT_TRANSPORT DEFINE_GUIDNAMED(PROPSETID_EXT_TRANSPORT)
3605

    
3606
typedef enum {
3607
  KSPROPERTY_EXTXPORT_CAPABILITIES,
3608
  KSPROPERTY_EXTXPORT_INPUT_SIGNAL_MODE,
3609
  KSPROPERTY_EXTXPORT_OUTPUT_SIGNAL_MODE,
3610
  KSPROPERTY_EXTXPORT_LOAD_MEDIUM,
3611
  KSPROPERTY_EXTXPORT_MEDIUM_INFO,
3612
  KSPROPERTY_EXTXPORT_STATE,
3613
  KSPROPERTY_EXTXPORT_STATE_NOTIFY,
3614
  KSPROPERTY_EXTXPORT_TIMECODE_SEARCH,
3615
  KSPROPERTY_EXTXPORT_ATN_SEARCH,
3616
  KSPROPERTY_EXTXPORT_RTC_SEARCH,
3617
  KSPROPERTY_RAW_AVC_CMD
3618
} KSPROPERTY_EXTXPORT;
3619

    
3620
typedef struct tagTRANSPORTSTATUS {
3621
  LONG Mode;
3622
  LONG LastError;
3623
  LONG RecordInhibit;
3624
  LONG ServoLock;
3625
  LONG MediaPresent;
3626
  LONG MediaLength;
3627
  LONG MediaSize;
3628
  LONG MediaTrackCount;
3629
  LONG MediaTrackLength;
3630
  LONG MediaTrackSide;
3631
  LONG MediaType;
3632
  LONG LinkMode;
3633
  LONG NotifyOn;
3634
} TRANSPORTSTATUS,*PTRANSPORTSTATUS;
3635

    
3636
typedef struct tagTRANSPORTBASICPARMS {
3637
  LONG TimeFormat;
3638
  LONG TimeReference;
3639
  LONG Superimpose;
3640
  LONG EndStopAction;
3641
  LONG RecordFormat;
3642
  LONG StepFrames;
3643
  LONG SetpField;
3644
  LONG Preroll;
3645
  LONG RecPreroll;
3646
  LONG Postroll;
3647
  LONG EditDelay;
3648
  LONG PlayTCDelay;
3649
  LONG RecTCDelay;
3650
  LONG EditField;
3651
  LONG FrameServo;
3652
  LONG ColorFrameServo;
3653
  LONG ServoRef;
3654
  LONG WarnGenlock;
3655
  LONG SetTracking;
3656
  TCHAR VolumeName[40];
3657
  LONG Ballistic[20];
3658
  LONG Speed;
3659
  LONG CounterFormat;
3660
  LONG TunerChannel;
3661
  LONG TunerNumber;
3662
  LONG TimerEvent;
3663
  LONG TimerStartDay;
3664
  LONG TimerStartTime;
3665
  LONG TimerStopDay;
3666
  LONG TimerStopTime;
3667
} TRANSPORTBASICPARMS,*PTRANSPORTBASICPARMS;
3668

    
3669
typedef struct tagTRANSPORTVIDEOPARMS {
3670
  LONG OutputMode;
3671
  LONG Input;
3672
} TRANSPORTVIDEOPARMS,*PTRANSPORTVIDEOPARMS;
3673

    
3674
typedef struct tagTRANSPORTAUDIOPARMS {
3675
  LONG EnableOutput;
3676
  LONG EnableRecord;
3677
  LONG EnableSelsync;
3678
  LONG Input;
3679
  LONG MonitorSource;
3680
} TRANSPORTAUDIOPARMS,*PTRANSPORTAUDIOPARMS;
3681

    
3682
typedef struct {
3683
  WINBOOL MediaPresent;
3684
  ULONG MediaType;
3685
  WINBOOL RecordInhibit;
3686
} MEDIUM_INFO,*PMEDIUM_INFO;
3687

    
3688
typedef struct {
3689
  ULONG Mode;
3690
  ULONG State;
3691
} TRANSPORT_STATE,*PTRANSPORT_STATE;
3692

    
3693
typedef struct {
3694
  KSPROPERTY Property;
3695
  union {
3696
    ULONG Capabilities;
3697
    ULONG SignalMode;
3698
    ULONG LoadMedium;
3699
    MEDIUM_INFO MediumInfo;
3700
    TRANSPORT_STATE XPrtState;
3701
    struct {
3702
      BYTE frame;
3703
      BYTE second;
3704
      BYTE minute;
3705
      BYTE hour;
3706
    } Timecode;
3707
    DWORD dwTimecode;
3708
    DWORD dwAbsTrackNumber;
3709
    struct {
3710
      ULONG PayloadSize;
3711
      BYTE Payload[512];
3712
    } RawAVC;
3713
  } u;
3714
} KSPROPERTY_EXTXPORT_S,*PKSPROPERTY_EXTXPORT_S;
3715

    
3716
typedef struct {
3717
  KSP_NODE NodeProperty;
3718
  union {
3719
    ULONG Capabilities;
3720
    ULONG SignalMode;
3721
    ULONG LoadMedium;
3722
    MEDIUM_INFO MediumInfo;
3723
    TRANSPORT_STATE XPrtState;
3724
    struct {
3725
      BYTE frame;
3726
      BYTE second;
3727
      BYTE minute;
3728
      BYTE hour;
3729
    } Timecode;
3730
    DWORD dwTimecode;
3731
    DWORD dwAbsTrackNumber;
3732
    struct {
3733
      ULONG PayloadSize;
3734
      BYTE Payload[512];
3735
    } RawAVC;
3736
  } u;
3737
} KSPROPERTY_EXTXPORT_NODE_S,*PKSPROPERTY_EXTXPORT_NODE_S;
3738

    
3739
#define STATIC_PROPSETID_TIMECODE_READER                                \
3740
        0x9B496CE1L,0x811B,0x11cf,0x8C,0x77,0x00,0xAA,0x00,0x6B,0x68,0x14
3741
DEFINE_GUIDSTRUCT("9B496CE1-811B-11cf-8C77-00AA006B6814",PROPSETID_TIMECODE_READER);
3742
#define PROPSETID_TIMECODE_READER DEFINE_GUIDNAMED(PROPSETID_TIMECODE_READER)
3743

    
3744
typedef enum {
3745
  KSPROPERTY_TIMECODE_READER,
3746
  KSPROPERTY_ATN_READER,
3747
  KSPROPERTY_RTC_READER
3748
} KSPROPERTY_TIMECODE;
3749

    
3750
#ifndef TIMECODE_DEFINED
3751
#define TIMECODE_DEFINED
3752
typedef union _timecode {
3753
  struct {
3754
    WORD wFrameRate;
3755
    WORD wFrameFract;
3756
    DWORD dwFrames;
3757
  };
3758
  DWORDLONG qw;
3759
} TIMECODE;
3760
typedef TIMECODE *PTIMECODE;
3761

    
3762
typedef struct tagTIMECODE_SAMPLE {
3763
  LONGLONG qwTick;
3764
  TIMECODE timecode;
3765
  DWORD dwUser;
3766
  DWORD dwFlags;
3767
} TIMECODE_SAMPLE;
3768

    
3769
typedef TIMECODE_SAMPLE *PTIMECODE_SAMPLE;
3770
#endif /* TIMECODE_DEFINED */
3771

    
3772
typedef struct {
3773
  KSPROPERTY Property;
3774
  TIMECODE_SAMPLE TimecodeSamp;
3775
} KSPROPERTY_TIMECODE_S,*PKSPROPERTY_TIMECODE_S;
3776

    
3777
typedef struct {
3778
  KSP_NODE NodeProperty;
3779
  TIMECODE_SAMPLE TimecodeSamp;
3780
} KSPROPERTY_TIMECODE_NODE_S,*PKSPROPERTY_TIMECODE_NODE_S;
3781

    
3782
#define STATIC_KSEVENTSETID_EXTDEV_Command                                \
3783
        0x109c7988L,0xb3cb,0x11d2,0xb4,0x8e,0x00,0x60,0x97,0xb3,0x39,0x1b
3784
DEFINE_GUIDSTRUCT("109c7988-b3cb-11d2-b48e-006097b3391b",KSEVENTSETID_EXTDEV_Command);
3785
#define KSEVENTSETID_EXTDEV_Command DEFINE_GUIDNAMED(KSEVENTSETID_EXTDEV_Command)
3786

    
3787
typedef enum {
3788
  KSEVENT_EXTDEV_COMMAND_NOTIFY_INTERIM_READY,
3789
  KSEVENT_EXTDEV_COMMAND_CONTROL_INTERIM_READY,
3790
  KSEVENT_EXTDEV_COMMAND_BUSRESET,
3791
  KSEVENT_EXTDEV_TIMECODE_UPDATE,
3792
  KSEVENT_EXTDEV_OPERATION_MODE_UPDATE,
3793
  KSEVENT_EXTDEV_TRANSPORT_STATE_UPDATE,
3794
  KSEVENT_EXTDEV_NOTIFY_REMOVAL,
3795
  KSEVENT_EXTDEV_NOTIFY_MEDIUM_CHANGE
3796
} KSEVENT_DEVCMD;
3797
#endif /* __EDevCtrl__ */
3798

    
3799
#define STATIC_PROPSETID_VIDCAP_CROSSBAR                                \
3800
        0x6a2e0640L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
3801
DEFINE_GUIDSTRUCT("6a2e0640-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_CROSSBAR);
3802
#define PROPSETID_VIDCAP_CROSSBAR DEFINE_GUIDNAMED(PROPSETID_VIDCAP_CROSSBAR)
3803

    
3804
typedef enum {
3805
  KSPROPERTY_CROSSBAR_CAPS,
3806
  KSPROPERTY_CROSSBAR_PININFO,
3807
  KSPROPERTY_CROSSBAR_CAN_ROUTE,
3808
  KSPROPERTY_CROSSBAR_ROUTE
3809
} KSPROPERTY_VIDCAP_CROSSBAR;
3810

    
3811
typedef struct {
3812
  KSPROPERTY Property;
3813
  ULONG NumberOfInputs;
3814
  ULONG NumberOfOutputs;
3815
} KSPROPERTY_CROSSBAR_CAPS_S,*PKSPROPERTY_CROSSBAR_CAPS_S;
3816

    
3817
typedef struct {
3818
  KSPROPERTY Property;
3819
  KSPIN_DATAFLOW Direction;
3820
  ULONG Index;
3821
  ULONG PinType;
3822
  ULONG RelatedPinIndex;
3823
  KSPIN_MEDIUM Medium;
3824
} KSPROPERTY_CROSSBAR_PININFO_S,*PKSPROPERTY_CROSSBAR_PININFO_S;
3825

    
3826
typedef struct {
3827
  KSPROPERTY Property;
3828
  ULONG IndexInputPin;
3829
  ULONG IndexOutputPin;
3830
  ULONG CanRoute;
3831
} KSPROPERTY_CROSSBAR_ROUTE_S,*PKSPROPERTY_CROSSBAR_ROUTE_S;
3832

    
3833
#define STATIC_EVENTSETID_CROSSBAR                                        \
3834
        0x6a2e0641L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
3835
DEFINE_GUIDSTRUCT("6a2e0641-28e4-11d0-a18c-00a0c9118956",EVENTSETID_CROSSBAR);
3836
#define EVENTSETID_CROSSBAR DEFINE_GUIDNAMED(EVENTSETID_CROSSBAR)
3837

    
3838
typedef enum {
3839
  KSEVENT_CROSSBAR_CHANGED
3840
} KSEVENT_CROSSBAR;
3841

    
3842
typedef enum {
3843
  KS_PhysConn_Video_Tuner = 1,
3844
  KS_PhysConn_Video_Composite,
3845
  KS_PhysConn_Video_SVideo,
3846
  KS_PhysConn_Video_RGB,
3847
  KS_PhysConn_Video_YRYBY,
3848
  KS_PhysConn_Video_SerialDigital,
3849
  KS_PhysConn_Video_ParallelDigital,
3850
  KS_PhysConn_Video_SCSI,
3851
  KS_PhysConn_Video_AUX,
3852
  KS_PhysConn_Video_1394,
3853
  KS_PhysConn_Video_USB,
3854
  KS_PhysConn_Video_VideoDecoder,
3855
  KS_PhysConn_Video_VideoEncoder,
3856
  KS_PhysConn_Video_SCART,
3857
  KS_PhysConn_Audio_Tuner = 4096,
3858
  KS_PhysConn_Audio_Line,
3859
  KS_PhysConn_Audio_Mic,
3860
  KS_PhysConn_Audio_AESDigital,
3861
  KS_PhysConn_Audio_SPDIFDigital,
3862
  KS_PhysConn_Audio_SCSI,
3863
  KS_PhysConn_Audio_AUX,
3864
  KS_PhysConn_Audio_1394,
3865
  KS_PhysConn_Audio_USB,
3866
  KS_PhysConn_Audio_AudioDecoder
3867
} KS_PhysicalConnectorType;
3868

    
3869
#define STATIC_PROPSETID_VIDCAP_TVAUDIO                                        \
3870
        0x6a2e0650L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
3871
DEFINE_GUIDSTRUCT("6a2e0650-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_TVAUDIO);
3872
#define PROPSETID_VIDCAP_TVAUDIO DEFINE_GUIDNAMED(PROPSETID_VIDCAP_TVAUDIO)
3873

    
3874
typedef enum {
3875
  KSPROPERTY_TVAUDIO_CAPS,
3876
  KSPROPERTY_TVAUDIO_MODE,
3877
  KSPROPERTY_TVAUDIO_CURRENTLY_AVAILABLE_MODES
3878
} KSPROPERTY_VIDCAP_TVAUDIO;
3879

    
3880
#define KS_TVAUDIO_MODE_MONO        0x0001
3881
#define KS_TVAUDIO_MODE_STEREO        0x0002
3882
#define KS_TVAUDIO_MODE_LANG_A        0x0010
3883
#define KS_TVAUDIO_MODE_LANG_B        0x0020
3884
#define KS_TVAUDIO_MODE_LANG_C        0x0040
3885

    
3886
typedef struct {
3887
  KSPROPERTY Property;
3888
  ULONG Capabilities;
3889
  KSPIN_MEDIUM InputMedium;
3890
  KSPIN_MEDIUM OutputMedium;
3891
} KSPROPERTY_TVAUDIO_CAPS_S,*PKSPROPERTY_TVAUDIO_CAPS_S;
3892

    
3893
typedef struct {
3894
  KSPROPERTY Property;
3895
  ULONG Mode;
3896
} KSPROPERTY_TVAUDIO_S,*PKSPROPERTY_TVAUDIO_S;
3897

    
3898
#define STATIC_KSEVENTSETID_VIDCAP_TVAUDIO                                \
3899
        0x6a2e0651L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
3900
DEFINE_GUIDSTRUCT("6a2e0651-28e4-11d0-a18c-00a0c9118956",KSEVENTSETID_VIDCAP_TVAUDIO);
3901
#define KSEVENTSETID_VIDCAP_TVAUDIO DEFINE_GUIDNAMED(KSEVENTSETID_VIDCAP_TVAUDIO)
3902

    
3903
typedef enum {
3904
  KSEVENT_TVAUDIO_CHANGED
3905
} KSEVENT_TVAUDIO;
3906

    
3907
#define STATIC_PROPSETID_VIDCAP_VIDEOCOMPRESSION                        \
3908
        0xC6E13343L,0x30AC,0x11d0,0xA1,0x8C,0x00,0xA0,0xC9,0x11,0x89,0x56
3909
DEFINE_GUIDSTRUCT("C6E13343-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_VIDEOCOMPRESSION);
3910
#define PROPSETID_VIDCAP_VIDEOCOMPRESSION DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOCOMPRESSION)
3911

    
3912
typedef enum {
3913
  KSPROPERTY_VIDEOCOMPRESSION_GETINFO,
3914
  KSPROPERTY_VIDEOCOMPRESSION_KEYFRAME_RATE,
3915
  KSPROPERTY_VIDEOCOMPRESSION_PFRAMES_PER_KEYFRAME,
3916
  KSPROPERTY_VIDEOCOMPRESSION_QUALITY,
3917
  KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_KEYFRAME,
3918
  KSPROPERTY_VIDEOCOMPRESSION_OVERRIDE_FRAME_SIZE,
3919
  KSPROPERTY_VIDEOCOMPRESSION_WINDOWSIZE
3920
} KSPROPERTY_VIDCAP_VIDEOCOMPRESSION;
3921

    
3922
typedef enum {
3923
  KS_CompressionCaps_CanQuality = 1,
3924
  KS_CompressionCaps_CanCrunch = 2,
3925
  KS_CompressionCaps_CanKeyFrame = 4,
3926
  KS_CompressionCaps_CanBFrame = 8,
3927
  KS_CompressionCaps_CanWindow = 0x10
3928
} KS_CompressionCaps;
3929

    
3930
typedef enum {
3931
  KS_StreamingHint_FrameInterval = 0x0100,
3932
  KS_StreamingHint_KeyFrameRate = 0x0200,
3933
  KS_StreamingHint_PFrameRate = 0x0400,
3934
  KS_StreamingHint_CompQuality = 0x0800,
3935
  KS_StreamingHint_CompWindowSize = 0x1000
3936
} KS_VideoStreamingHints;
3937

    
3938
typedef struct {
3939
  KSPROPERTY Property;
3940
  ULONG StreamIndex;
3941
  LONG DefaultKeyFrameRate;
3942
  LONG DefaultPFrameRate;
3943
  LONG DefaultQuality;
3944
  LONG NumberOfQualitySettings;
3945
  LONG Capabilities;
3946
} KSPROPERTY_VIDEOCOMPRESSION_GETINFO_S,*PKSPROPERTY_VIDEOCOMPRESSION_GETINFO_S;
3947

    
3948
typedef struct {
3949
  KSPROPERTY Property;
3950
  ULONG StreamIndex;
3951
  LONG Value;
3952
} KSPROPERTY_VIDEOCOMPRESSION_S,*PKSPROPERTY_VIDEOCOMPRESSION_S;
3953

    
3954
typedef struct {
3955
  KSPROPERTY Property;
3956
  ULONG StreamIndex;
3957
  LONG Value;
3958
  ULONG Flags;
3959
} KSPROPERTY_VIDEOCOMPRESSION_S1,*PKSPROPERTY_VIDEOCOMPRESSION_S1;
3960

    
3961
#define STATIC_KSDATAFORMAT_SUBTYPE_OVERLAY                                \
3962
        0xe436eb7fL,0x524f,0x11ce,0x9f,0x53,0x00,0x20,0xaf,0x0b,0xa7,0x70
3963
DEFINE_GUIDSTRUCT("e436eb7f-524f-11ce-9f53-0020af0ba770",KSDATAFORMAT_SUBTYPE_OVERLAY);
3964
#define KSDATAFORMAT_SUBTYPE_OVERLAY DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_OVERLAY)
3965

    
3966
#define STATIC_KSPROPSETID_OverlayUpdate                                \
3967
        0x490EA5CFL,0x7681,0x11D1,0xA2,0x1C,0x00,0xA0,0xC9,0x22,0x31,0x96
3968
DEFINE_GUIDSTRUCT("490EA5CF-7681-11D1-A21C-00A0C9223196",KSPROPSETID_OverlayUpdate);
3969
#define KSPROPSETID_OverlayUpdate DEFINE_GUIDNAMED(KSPROPSETID_OverlayUpdate)
3970

    
3971
typedef enum {
3972
  KSPROPERTY_OVERLAYUPDATE_INTERESTS,
3973
  KSPROPERTY_OVERLAYUPDATE_CLIPLIST = 0x1,
3974
  KSPROPERTY_OVERLAYUPDATE_PALETTE = 0x2,
3975
  KSPROPERTY_OVERLAYUPDATE_COLORKEY = 0x4,
3976
  KSPROPERTY_OVERLAYUPDATE_VIDEOPOSITION = 0x8,
3977
  KSPROPERTY_OVERLAYUPDATE_DISPLAYCHANGE = 0x10,
3978
  KSPROPERTY_OVERLAYUPDATE_COLORREF = 0x10000000
3979
} KSPROPERTY_OVERLAYUPDATE;
3980

    
3981
typedef struct {
3982
  ULONG PelsWidth;
3983
  ULONG PelsHeight;
3984
  ULONG BitsPerPel;
3985
  WCHAR DeviceID[1];
3986
} KSDISPLAYCHANGE,*PKSDISPLAYCHANGE;
3987

    
3988
#define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_INTERESTS(Handler)                \
3989
        DEFINE_KSPROPERTY_ITEM(                                                \
3990
                                KSPROPERTY_OVERLAYUPDATE_INTERESTS,        \
3991
                                (Handler),                                \
3992
                                sizeof(KSPROPERTY),                        \
3993
                                sizeof(ULONG),                                \
3994
                                NULL, NULL, 0, NULL, NULL, 0)
3995

    
3996
#define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_PALETTE(Handler)                \
3997
        DEFINE_KSPROPERTY_ITEM(                                                \
3998
                                KSPROPERTY_OVERLAYUPDATE_PALETTE,        \
3999
                                NULL,                                        \
4000
                                sizeof(KSPROPERTY),                        \
4001
                                0,                                        \
4002
                                (Handler),                                \
4003
                                NULL, 0, NULL, NULL, 0)
4004

    
4005
#define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_COLORKEY(Handler)                \
4006
        DEFINE_KSPROPERTY_ITEM(                                                \
4007
                                KSPROPERTY_OVERLAYUPDATE_COLORKEY,        \
4008
                                NULL,                                        \
4009
                                sizeof(KSPROPERTY),                        \
4010
                                sizeof(COLORKEY),                        \
4011
                                (Handler),                                \
4012
                                NULL, 0, NULL, NULL, 0)
4013

    
4014
#define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_CLIPLIST(Handler)                \
4015
        DEFINE_KSPROPERTY_ITEM(                                                \
4016
                                KSPROPERTY_OVERLAYUPDATE_CLIPLIST,        \
4017
                                NULL,                                        \
4018
                                sizeof(KSPROPERTY),                        \
4019
                                2 *sizeof(RECT) + sizeof(RGNDATAHEADER),\
4020
                                (Handler),                                \
4021
                                NULL, 0, NULL, NULL, 0)
4022

    
4023
#define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_VIDEOPOSITION(Handler)        \
4024
        DEFINE_KSPROPERTY_ITEM(                                                \
4025
                                KSPROPERTY_OVERLAYUPDATE_VIDEOPOSITION,        \
4026
                                NULL,                                        \
4027
                                sizeof(KSPROPERTY),                        \
4028
                                2 *sizeof(RECT),                        \
4029
                                (Handler),                                \
4030
                                NULL, 0, NULL, NULL, 0)
4031

    
4032
#define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_DISPLAYCHANGE(Handler)        \
4033
        DEFINE_KSPROPERTY_ITEM(                                                \
4034
                                KSPROPERTY_OVERLAYUPDATE_DISPLAYCHANGE,        \
4035
                                NULL,                                        \
4036
                                sizeof(KSPROPERTY),                        \
4037
                                sizeof(KSDISPLAYCHANGE),                \
4038
                                (Handler),                                \
4039
                                NULL, 0, NULL, NULL, 0)
4040

    
4041
#define DEFINE_KSPROPERTY_ITEM_OVERLAYUPDATE_COLORREF(Handler)                \
4042
        DEFINE_KSPROPERTY_ITEM(                                                \
4043
                                KSPROPERTY_OVERLAYUPDATE_COLORREF,        \
4044
                                (Handler),                                \
4045
                                sizeof(KSPROPERTY),                        \
4046
                                sizeof(COLORREF),                        \
4047
                                NULL,                                        \
4048
                                NULL, 0, NULL, NULL, 0)
4049

    
4050
#define STATIC_PROPSETID_VIDCAP_VIDEOCONTROL                                \
4051
        0x6a2e0670L,0x28e4,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
4052
DEFINE_GUIDSTRUCT("6a2e0670-28e4-11d0-a18c-00a0c9118956",PROPSETID_VIDCAP_VIDEOCONTROL);
4053
#define PROPSETID_VIDCAP_VIDEOCONTROL DEFINE_GUIDNAMED(PROPSETID_VIDCAP_VIDEOCONTROL)
4054

    
4055
typedef enum {
4056
  KSPROPERTY_VIDEOCONTROL_CAPS,
4057
  KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE,
4058
  KSPROPERTY_VIDEOCONTROL_FRAME_RATES,
4059
  KSPROPERTY_VIDEOCONTROL_MODE
4060
} KSPROPERTY_VIDCAP_VIDEOCONTROL;
4061

    
4062
typedef enum {
4063
  KS_VideoControlFlag_FlipHorizontal = 0x0001,
4064
  KS_VideoControlFlag_FlipVertical = 0x0002,
4065
  KS_Obsolete_VideoControlFlag_ExternalTriggerEnable = 0x0010,
4066
  KS_Obsolete_VideoControlFlag_Trigger = 0x0020,
4067
  KS_VideoControlFlag_ExternalTriggerEnable = 0x0004,
4068
  KS_VideoControlFlag_Trigger = 0x0008
4069
} KS_VideoControlFlags;
4070

    
4071
typedef struct {
4072
  KSPROPERTY Property;
4073
  ULONG StreamIndex;
4074
  ULONG VideoControlCaps;
4075
} KSPROPERTY_VIDEOCONTROL_CAPS_S,*PKSPROPERTY_VIDEOCONTROL_CAPS_S;
4076

    
4077
typedef struct {
4078
  KSPROPERTY Property;
4079
  ULONG StreamIndex;
4080
  LONG Mode;
4081
} KSPROPERTY_VIDEOCONTROL_MODE_S,*PKSPROPERTY_VIDEOCONTROL_MODE_S;
4082

    
4083
typedef struct {
4084
  KSPROPERTY Property;
4085
  ULONG StreamIndex;
4086
  ULONG RangeIndex;
4087
  SIZE Dimensions;
4088
  LONGLONG CurrentActualFrameRate;
4089
  LONGLONG CurrentMaxAvailableFrameRate;
4090
} KSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S,*PKSPROPERTY_VIDEOCONTROL_ACTUAL_FRAME_RATE_S;
4091

    
4092
typedef struct {
4093
  KSPROPERTY Property;
4094
  ULONG StreamIndex;
4095
  ULONG RangeIndex;
4096
  SIZE Dimensions;
4097
} KSPROPERTY_VIDEOCONTROL_FRAME_RATES_S,*PKSPROPERTY_VIDEOCONTROL_FRAME_RATES_S;
4098

    
4099
#define STATIC_PROPSETID_VIDCAP_DROPPEDFRAMES                                \
4100
        0xC6E13344L,0x30AC,0x11d0,0xa1,0x8c,0x00,0xa0,0xc9,0x11,0x89,0x56
4101
DEFINE_GUIDSTRUCT("C6E13344-30AC-11d0-A18C-00A0C9118956",PROPSETID_VIDCAP_DROPPEDFRAMES);
4102
#define PROPSETID_VIDCAP_DROPPEDFRAMES DEFINE_GUIDNAMED(PROPSETID_VIDCAP_DROPPEDFRAMES)
4103

    
4104
typedef enum {
4105
  KSPROPERTY_DROPPEDFRAMES_CURRENT
4106
} KSPROPERTY_VIDCAP_DROPPEDFRAMES;
4107

    
4108
typedef struct {
4109
  KSPROPERTY Property;
4110
  LONGLONG PictureNumber;
4111
  LONGLONG DropCount;
4112
  ULONG AverageFrameSize;
4113
} KSPROPERTY_DROPPEDFRAMES_CURRENT_S,*PKSPROPERTY_DROPPEDFRAMES_CURRENT_S;
4114

    
4115
#define STATIC_KSPROPSETID_VPConfig                                        \
4116
        0xbc29a660L,0x30e3,0x11d0,0x9e,0x69,0x00,0xc0,0x4f,0xd7,0xc1,0x5b
4117
DEFINE_GUIDSTRUCT("bc29a660-30e3-11d0-9e69-00c04fd7c15b",KSPROPSETID_VPConfig);
4118
#define KSPROPSETID_VPConfig DEFINE_GUIDNAMED(KSPROPSETID_VPConfig)
4119

    
4120
#define STATIC_KSPROPSETID_VPVBIConfig                                        \
4121
        0xec529b00L,0x1a1f,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a
4122
DEFINE_GUIDSTRUCT("ec529b00-1a1f-11d1-bad9-00609744111a",KSPROPSETID_VPVBIConfig);
4123
#define KSPROPSETID_VPVBIConfig DEFINE_GUIDNAMED(KSPROPSETID_VPVBIConfig)
4124

    
4125
typedef enum {
4126
  KSPROPERTY_VPCONFIG_NUMCONNECTINFO,
4127
  KSPROPERTY_VPCONFIG_GETCONNECTINFO,
4128
  KSPROPERTY_VPCONFIG_SETCONNECTINFO,
4129
  KSPROPERTY_VPCONFIG_VPDATAINFO,
4130
  KSPROPERTY_VPCONFIG_MAXPIXELRATE,
4131
  KSPROPERTY_VPCONFIG_INFORMVPINPUT,
4132
  KSPROPERTY_VPCONFIG_NUMVIDEOFORMAT,
4133
  KSPROPERTY_VPCONFIG_GETVIDEOFORMAT,
4134
  KSPROPERTY_VPCONFIG_SETVIDEOFORMAT,
4135
  KSPROPERTY_VPCONFIG_INVERTPOLARITY,
4136
  KSPROPERTY_VPCONFIG_DECIMATIONCAPABILITY,
4137
  KSPROPERTY_VPCONFIG_SCALEFACTOR,
4138
  KSPROPERTY_VPCONFIG_DDRAWHANDLE,
4139
  KSPROPERTY_VPCONFIG_VIDEOPORTID,
4140
  KSPROPERTY_VPCONFIG_DDRAWSURFACEHANDLE,
4141
  KSPROPERTY_VPCONFIG_SURFACEPARAMS
4142
} KSPROPERTY_VPCONFIG;
4143

    
4144
#define STATIC_CLSID_KsIBasicAudioInterfaceHandler                        \
4145
        0xb9f8ac3e,0x0f71,0x11d2,0xb7,0x2c,0x00,0xc0,0x4f,0xb6,0xbd,0x3d
4146
DEFINE_GUIDSTRUCT("b9f8ac3e-0f71-11d2-b72c-00c04fb6bd3d",CLSID_KsIBasicAudioInterfaceHandler);
4147
#define CLSID_KsIBasicAudioInterfaceHandler DEFINE_GUIDNAMED(CLSID_KsIBasicAudioInterfaceHandler)
4148

    
4149
#ifdef __IVPType__
4150
typedef struct {
4151
  AMVPSIZE Size;
4152
  DWORD MaxPixelsPerSecond;
4153
  DWORD Reserved;
4154
} KSVPMAXPIXELRATE,*PKSVPMAXPIXELRATE;
4155

    
4156
typedef struct {
4157
  KSPROPERTY Property;
4158
  AMVPSIZE Size;
4159
} KSVPSIZE_PROP,*PKSVPSIZE_PROP;
4160

    
4161
typedef struct {
4162
  DWORD dwPitch;
4163
  DWORD dwXOrigin;
4164
  DWORD dwYOrigin;
4165
} KSVPSURFACEPARAMS,*PKSVPSURFACEPARAMS;
4166
#else /* __IVPType__ */
4167

    
4168
#ifndef __DDRAW_INCLUDED__
4169
#define DDPF_FOURCC 0x00000004l
4170

    
4171
typedef struct _DDPIXELFORMAT
4172
{
4173
  DWORD dwSize;
4174
  DWORD dwFlags;
4175
  DWORD dwFourCC;
4176
  __MINGW_EXTENSION union
4177
  {
4178
    DWORD dwRGBBitCount;
4179
    DWORD dwYUVBitCount;
4180
    DWORD dwZBufferBitDepth;
4181
    DWORD dwAlphaBitDepth;
4182
  };
4183
  __MINGW_EXTENSION union
4184
  {
4185
    DWORD dwRBitMask;
4186
    DWORD dwYBitMask;
4187
  };
4188
  __MINGW_EXTENSION union
4189
  {
4190
    DWORD dwGBitMask;
4191
    DWORD dwUBitMask;
4192
  };
4193
  __MINGW_EXTENSION union
4194
  {
4195
    DWORD dwBBitMask;
4196
    DWORD dwVBitMask;
4197
  };
4198
  __MINGW_EXTENSION union
4199
  {
4200
    DWORD dwRGBAlphaBitMask;
4201
    DWORD dwYUVAlphaBitMask;
4202
    DWORD dwRGBZBitMask;
4203
    DWORD dwYUVZBitMask;
4204
  };
4205
} DDPIXELFORMAT,*LPDDPIXELFORMAT;
4206
#endif /* __DDRAW_INCLUDED__ */
4207

    
4208
#ifndef __DVP_INCLUDED__
4209
typedef struct _DDVIDEOPORTCONNECT {
4210
  DWORD dwSize;
4211
  DWORD dwPortWidth;
4212
  GUID guidTypeID;
4213
  DWORD dwFlags;
4214
  ULONG_PTR dwReserved1;
4215
} DDVIDEOPORTCONNECT,*LPDDVIDEOPORTCONNECT;
4216

    
4217
#define DDVPTYPE_E_HREFH_VREFH                                                \
4218
        0x54F39980L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8
4219

    
4220
#define DDVPTYPE_E_HREFL_VREFL                                                \
4221
        0xE09C77E0L,0xDA60,0x11CF,0x9B,0x06,0x00,0xA0,0xC9,0x03,0xA3,0xB8
4222
#endif /* __DVP_INCLUDED__ */
4223

    
4224
typedef enum
4225
{
4226
  KS_PixAspectRatio_NTSC4x3,
4227
  KS_PixAspectRatio_NTSC16x9,
4228
  KS_PixAspectRatio_PAL4x3,
4229
  KS_PixAspectRatio_PAL16x9
4230
} KS_AMPixAspectRatio;
4231

    
4232
typedef enum
4233
{
4234
  KS_AMVP_DO_NOT_CARE,
4235
  KS_AMVP_BEST_BANDWIDTH,
4236
  KS_AMVP_INPUT_SAME_AS_OUTPUT
4237
} KS_AMVP_SELECTFORMATBY;
4238

    
4239
typedef enum
4240
{
4241
  KS_AMVP_MODE_WEAVE,
4242
  KS_AMVP_MODE_BOBINTERLEAVED,
4243
  KS_AMVP_MODE_BOBNONINTERLEAVED,
4244
  KS_AMVP_MODE_SKIPEVEN,
4245
  KS_AMVP_MODE_SKIPODD
4246
} KS_AMVP_MODE;
4247

    
4248
typedef struct tagKS_AMVPDIMINFO
4249
{
4250
  DWORD dwFieldWidth;
4251
  DWORD dwFieldHeight;
4252
  DWORD dwVBIWidth;
4253
  DWORD dwVBIHeight;
4254
  RECT rcValidRegion;
4255
} KS_AMVPDIMINFO,*PKS_AMVPDIMINFO;
4256

    
4257
typedef struct tagKS_AMVPDATAINFO
4258
{
4259
  DWORD dwSize;
4260
  DWORD dwMicrosecondsPerField;
4261
  KS_AMVPDIMINFO amvpDimInfo;
4262
  DWORD dwPictAspectRatioX;
4263
  DWORD dwPictAspectRatioY;
4264
  WINBOOL bEnableDoubleClock;
4265
  WINBOOL bEnableVACT;
4266
  WINBOOL bDataIsInterlaced;
4267
  LONG lHalfLinesOdd;
4268
  WINBOOL bFieldPolarityInverted;
4269
  DWORD dwNumLinesInVREF;
4270
  LONG lHalfLinesEven;
4271
  DWORD dwReserved1;
4272
} KS_AMVPDATAINFO,*PKS_AMVPDATAINFO;
4273

    
4274
typedef struct tagKS_AMVPSIZE
4275
{
4276
  DWORD dwWidth;
4277
  DWORD dwHeight;
4278
} KS_AMVPSIZE,*PKS_AMVPSIZE;
4279

    
4280
typedef struct {
4281
  KS_AMVPSIZE Size;
4282
  DWORD MaxPixelsPerSecond;
4283
  DWORD Reserved;
4284
} KSVPMAXPIXELRATE,*PKSVPMAXPIXELRATE;
4285

    
4286
typedef struct {
4287
  KSPROPERTY Property;
4288
  KS_AMVPSIZE Size;
4289
} KSVPSIZE_PROP,*PKSVPSIZE_PROP;
4290

    
4291
typedef struct {
4292
  DWORD dwPitch;
4293
  DWORD dwXOrigin;
4294
  DWORD dwYOrigin;
4295
} KSVPSURFACEPARAMS,*PKSVPSURFACEPARAMS;
4296
#endif /* __IVPType__ */
4297

    
4298
#define STATIC_KSEVENTSETID_VPNotify                                        \
4299
        0x20c5598eL,0xd3c8,0x11d0,0x8d,0xfc,0x00,0xc0,0x4f,0xd7,0xc0,0x8b
4300
DEFINE_GUIDSTRUCT("20c5598e-d3c8-11d0-8dfc-00c04fd7c08b",KSEVENTSETID_VPNotify);
4301
#define KSEVENTSETID_VPNotify DEFINE_GUIDNAMED(KSEVENTSETID_VPNotify)
4302

    
4303
typedef enum {
4304
  KSEVENT_VPNOTIFY_FORMATCHANGE
4305
} KSEVENT_VPNOTIFY;
4306

    
4307
#define STATIC_KSEVENTSETID_VIDCAPTOSTI                                        \
4308
        0xdb47de20,0xf628,0x11d1,0xba,0x41,0x0,0xa0,0xc9,0xd,0x2b,0x5
4309
DEFINE_GUIDSTRUCT("DB47DE20-F628-11d1-BA41-00A0C90D2B05",KSEVENTSETID_VIDCAPTOSTI);
4310
#define KSEVENTSETID_VIDCAPNotify DEFINE_GUIDNAMED(KSEVENTSETID_VIDCAPTOSTI)
4311

    
4312
typedef enum {
4313
  KSEVENT_VIDCAPTOSTI_EXT_TRIGGER,
4314
  KSEVENT_VIDCAP_AUTO_UPDATE,
4315
  KSEVENT_VIDCAP_SEARCH
4316
} KSEVENT_VIDCAPTOSTI;
4317

    
4318
typedef enum {
4319
  KSPROPERTY_EXTENSION_UNIT_INFO,
4320
  KSPROPERTY_EXTENSION_UNIT_CONTROL,
4321
  KSPROPERTY_EXTENSION_UNIT_PASS_THROUGH = 0xffff
4322
} KSPROPERTY_EXTENSION_UNIT,*PKSPROPERTY_EXTENSION_UNIT;
4323

    
4324
#define STATIC_KSEVENTSETID_VPVBINotify                                        \
4325
        0xec529b01L,0x1a1f,0x11d1,0xba,0xd9,0x0,0x60,0x97,0x44,0x11,0x1a
4326
DEFINE_GUIDSTRUCT("ec529b01-1a1f-11d1-bad9-00609744111a",KSEVENTSETID_VPVBINotify);
4327
#define KSEVENTSETID_VPVBINotify DEFINE_GUIDNAMED(KSEVENTSETID_VPVBINotify)
4328

    
4329
typedef enum {
4330
  KSEVENT_VPVBINOTIFY_FORMATCHANGE
4331
} KSEVENT_VPVBINOTIFY;
4332

    
4333
#define STATIC_KSDATAFORMAT_TYPE_AUXLine21Data                                \
4334
        0x670aea80L,0x3a82,0x11d0,0xb7,0x9b,0x00,0xaa,0x00,0x37,0x67,0xa7
4335
DEFINE_GUIDSTRUCT("670aea80-3a82-11d0-b79b-00aa003767a7",KSDATAFORMAT_TYPE_AUXLine21Data);
4336
#define KSDATAFORMAT_TYPE_AUXLine21Data DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_AUXLine21Data)
4337

    
4338
#define STATIC_KSDATAFORMAT_SUBTYPE_Line21_BytePair                        \
4339
        0x6e8d4a22L,0x310c,0x11d0,0xb7,0x9a,0x00,0xaa,0x00,0x37,0x67,0xa7
4340
DEFINE_GUIDSTRUCT("6e8d4a22-310c-11d0-b79a-00aa003767a7",KSDATAFORMAT_SUBTYPE_Line21_BytePair);
4341
#define KSDATAFORMAT_SUBTYPE_Line21_BytePair DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_Line21_BytePair)
4342

    
4343
#define STATIC_KSDATAFORMAT_SUBTYPE_Line21_GOPPacket                        \
4344
        0x6e8d4a23L,0x310c,0x11d0,0xb7,0x9a,0x00,0xaa,0x00,0x37,0x67,0xa7
4345
DEFINE_GUIDSTRUCT("6e8d4a23-310c-11d0-b79a-00aa003767a7",KSDATAFORMAT_SUBTYPE_Line21_GOPPacket);
4346
#define KSDATAFORMAT_SUBTYPE_Line21_GOPPacket DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_Line21_GOPPacket)
4347

    
4348
typedef struct _KSGOP_USERDATA {
4349
  ULONG sc;
4350
  ULONG reserved1;
4351
  BYTE cFields;
4352
  CHAR l21Data[3];
4353
} KSGOP_USERDATA,*PKSGOP_USERDATA;
4354

    
4355
#define STATIC_KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK                        \
4356
        0xed0b916a,0x044d,0x11d1,0xaa,0x78,0x00,0xc0,0x4f,0xc3,0x1d,0x60
4357
DEFINE_GUIDSTRUCT("ed0b916a-044d-11d1-aa78-00c04fc31d60",KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK);
4358
#define KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_DVD_ENCRYPTED_PACK)
4359

    
4360
#define KS_AM_UseNewCSSKey                        0x1
4361

    
4362
#define STATIC_KSPROPSETID_TSRateChange                                        \
4363
        0xa503c5c0,0x1d1d,0x11d1,0xad,0x80,0x44,0x45,0x53,0x54,0x0,0x0
4364
DEFINE_GUIDSTRUCT("A503C5C0-1D1D-11D1-AD80-444553540000",KSPROPSETID_TSRateChange);
4365
#define KSPROPSETID_TSRateChange DEFINE_GUIDNAMED(KSPROPSETID_TSRateChange)
4366

    
4367
typedef enum {
4368
  KS_AM_RATE_SimpleRateChange = 1,
4369
  KS_AM_RATE_ExactRateChange = 2,
4370
  KS_AM_RATE_MaxFullDataRate = 3,
4371
  KS_AM_RATE_Step = 4
4372
} KS_AM_PROPERTY_TS_RATE_CHANGE;
4373

    
4374
typedef struct {
4375
  REFERENCE_TIME StartTime;
4376
  LONG Rate;
4377
} KS_AM_SimpleRateChange,*PKS_AM_SimpleRateChange;
4378

    
4379
typedef struct {
4380
  REFERENCE_TIME OutputZeroTime;
4381
  LONG Rate;
4382
} KS_AM_ExactRateChange,*PKS_AM_ExactRateChange;
4383

    
4384
typedef LONG KS_AM_MaxFullDataRate;
4385
typedef DWORD KS_AM_Step;
4386

    
4387
#define STATIC_KSCATEGORY_ENCODER                                        \
4388
        0x19689bf6,0xc384,0x48fd,0xad,0x51,0x90,0xe5,0x8c,0x79,0xf7,0xb
4389
DEFINE_GUIDSTRUCT("19689BF6-C384-48fd-AD51-90E58C79F70B",KSCATEGORY_ENCODER);
4390
#define KSCATEGORY_ENCODER DEFINE_GUIDNAMED(KSCATEGORY_ENCODER)
4391

    
4392
#define STATIC_KSCATEGORY_MULTIPLEXER                                        \
4393
        0x7a5de1d3,0x1a1,0x452c,0xb4,0x81,0x4f,0xa2,0xb9,0x62,0x71,0xe8
4394
DEFINE_GUIDSTRUCT("7A5DE1D3-01A1-452c-B481-4FA2B96271E8",KSCATEGORY_MULTIPLEXER);
4395
#define KSCATEGORY_MULTIPLEXER DEFINE_GUIDNAMED(KSCATEGORY_MULTIPLEXER)
4396

    
4397
#ifndef __ENCODER_API_GUIDS__
4398
#define __ENCODER_API_GUIDS__
4399

    
4400
#define STATIC_ENCAPIPARAM_BITRATE                                        \
4401
        0x49cc4c43,0xca83,0x4ad4,0xa9,0xaf,0xf3,0x69,0x6a,0xf6,0x66,0xdf
4402
DEFINE_GUIDSTRUCT("49CC4C43-CA83-4ad4-A9AF-F3696AF666DF",ENCAPIPARAM_BITRATE);
4403
#define ENCAPIPARAM_BITRATE DEFINE_GUIDNAMED(ENCAPIPARAM_BITRATE)
4404

    
4405
#define STATIC_ENCAPIPARAM_PEAK_BITRATE                                        \
4406
        0x703f16a9,0x3d48,0x44a1,0xb0,0x77,0x1,0x8d,0xff,0x91,0x5d,0x19
4407
DEFINE_GUIDSTRUCT("703F16A9-3D48-44a1-B077-018DFF915D19",ENCAPIPARAM_PEAK_BITRATE);
4408
#define ENCAPIPARAM_PEAK_BITRATE DEFINE_GUIDNAMED(ENCAPIPARAM_PEAK_BITRATE)
4409

    
4410
#define STATIC_ENCAPIPARAM_BITRATE_MODE                                        \
4411
        0xee5fb25c,0xc713,0x40d1,0x9d,0x58,0xc0,0xd7,0x24,0x1e,0x25,0xf
4412
DEFINE_GUIDSTRUCT("EE5FB25C-C713-40d1-9D58-C0D7241E250F",ENCAPIPARAM_BITRATE_MODE);
4413
#define ENCAPIPARAM_BITRATE_MODE DEFINE_GUIDNAMED(ENCAPIPARAM_BITRATE_MODE)
4414

    
4415
#define STATIC_CODECAPI_CHANGELISTS                                        \
4416
        0x62b12acf,0xf6b0,0x47d9,0x94,0x56,0x96,0xf2,0x2c,0x4e,0x0b,0x9d
4417
DEFINE_GUIDSTRUCT("62B12ACF-F6B0-47D9-9456-96F22C4E0B9D",CODECAPI_CHANGELISTS);
4418
#define CODECAPI_CHANGELISTS DEFINE_GUIDNAMED(CODECAPI_CHANGELISTS)
4419

    
4420
#define STATIC_CODECAPI_VIDEO_ENCODER                                        \
4421
        0x7112e8e1,0x3d03,0x47ef,0x8e,0x60,0x03,0xf1,0xcf,0x53,0x73,0x01
4422
DEFINE_GUIDSTRUCT("7112E8E1-3D03-47EF-8E60-03F1CF537301",CODECAPI_VIDEO_ENCODER);
4423
#define CODECAPI_VIDEO_ENCODER DEFINE_GUIDNAMED(CODECAPI_VIDEO_ENCODER)
4424

    
4425
#define STATIC_CODECAPI_AUDIO_ENCODER                                        \
4426
        0xb9d19a3e,0xf897,0x429c,0xbc,0x46,0x81,0x38,0xb7,0x27,0x2b,0x2d
4427
DEFINE_GUIDSTRUCT("B9D19A3E-F897-429C-BC46-8138B7272B2D",CODECAPI_AUDIO_ENCODER);
4428
#define CODECAPI_AUDIO_ENCODER DEFINE_GUIDNAMED(CODECAPI_AUDIO_ENCODER)
4429

    
4430
#define STATIC_CODECAPI_SETALLDEFAULTS                                        \
4431
        0x6c5e6a7c,0xacf8,0x4f55,0xa9,0x99,0x1a,0x62,0x81,0x09,0x05,0x1b
4432
DEFINE_GUIDSTRUCT("6C5E6A7C-ACF8-4F55-A999-1A628109051B",CODECAPI_SETALLDEFAULTS);
4433
#define CODECAPI_SETALLDEFAULTS DEFINE_GUIDNAMED(CODECAPI_SETALLDEFAULTS)
4434

    
4435
#define STATIC_CODECAPI_ALLSETTINGS                                        \
4436
        0x6a577e92,0x83e1,0x4113,0xad,0xc2,0x4f,0xce,0xc3,0x2f,0x83,0xa1
4437
DEFINE_GUIDSTRUCT("6A577E92-83E1-4113-ADC2-4FCEC32F83A1",CODECAPI_ALLSETTINGS);
4438
#define CODECAPI_ALLSETTINGS DEFINE_GUIDNAMED(CODECAPI_ALLSETTINGS)
4439

    
4440
#define STATIC_CODECAPI_SUPPORTSEVENTS                                        \
4441
        0x0581af97,0x7693,0x4dbd,0x9d,0xca,0x3f,0x9e,0xbd,0x65,0x85,0xa1
4442
DEFINE_GUIDSTRUCT("0581AF97-7693-4DBD-9DCA-3F9EBD6585A1",CODECAPI_SUPPORTSEVENTS);
4443
#define CODECAPI_SUPPORTSEVENTS DEFINE_GUIDNAMED(CODECAPI_SUPPORTSEVENTS)
4444

    
4445
#define STATIC_CODECAPI_CURRENTCHANGELIST                                \
4446
        0x1cb14e83,0x7d72,0x4657,0x83,0xfd,0x47,0xa2,0xc5,0xb9,0xd1,0x3d
4447
DEFINE_GUIDSTRUCT("1CB14E83-7D72-4657-83FD-47A2C5B9D13D",CODECAPI_CURRENTCHANGELIST);
4448
#define CODECAPI_CURRENTCHANGELIST DEFINE_GUIDNAMED(CODECAPI_CURRENTCHANGELIST)
4449
#endif /* __ENCODER_API_GUIDS__ */
4450

    
4451
#ifndef __ENCODER_API_DEFINES__
4452
#define __ENCODER_API_DEFINES__
4453
typedef enum {
4454
  ConstantBitRate = 0,
4455
  VariableBitRateAverage,
4456
  VariableBitRatePeak
4457
} VIDEOENCODER_BITRATE_MODE;
4458
#endif /* __ENCODER_API_DEFINES__ */
4459

    
4460
#define STATIC_KSPROPSETID_Jack\
4461
    0x4509f757, 0x2d46, 0x4637, 0x8e, 0x62, 0xce, 0x7d, 0xb9, 0x44, 0xf5, 0x7b
4462
DEFINE_GUIDSTRUCT("4509F757-2D46-4637-8E62-CE7DB944F57B", KSPROPSETID_Jack);
4463
#define KSPROPSETID_Jack DEFINE_GUIDNAMED(KSPROPSETID_Jack)
4464

    
4465
typedef enum {
4466
    KSPROPERTY_JACK_DESCRIPTION = 1,
4467
    KSPROPERTY_JACK_DESCRIPTION2,
4468
    KSPROPERTY_JACK_SINK_INFO
4469
} KSPROPERTY_JACK;
4470

    
4471
typedef enum
4472
{
4473
    eConnTypeUnknown,
4474
    eConnType3Point5mm,
4475
    eConnTypeQuarter,
4476
    eConnTypeAtapiInternal,
4477
    eConnTypeRCA,
4478
    eConnTypeOptical,
4479
    eConnTypeOtherDigital,
4480
    eConnTypeOtherAnalog,
4481
    eConnTypeMultichannelAnalogDIN,
4482
    eConnTypeXlrProfessional,
4483
    eConnTypeRJ11Modem,
4484
    eConnTypeCombination
4485
} EPcxConnectionType;
4486

    
4487
typedef enum
4488
{
4489
    eGeoLocRear = 0x1,
4490
    eGeoLocFront,
4491
    eGeoLocLeft,
4492
    eGeoLocRight,
4493
    eGeoLocTop,
4494
    eGeoLocBottom,
4495
    eGeoLocRearPanel,
4496
    eGeoLocRiser,
4497
    eGeoLocInsideMobileLid,
4498
    eGeoLocDrivebay,
4499
    eGeoLocHDMI,
4500
    eGeoLocOutsideMobileLid,
4501
    eGeoLocATAPI,
4502
    eGeoLocReserved5,
4503
    eGeoLocReserved6,
4504
    EPcxGeoLocation_enum_count
4505
} EPcxGeoLocation;
4506

    
4507
typedef enum
4508
{
4509
    eGenLocPrimaryBox = 0,
4510
    eGenLocInternal,
4511
    eGenLocSeparate,
4512
    eGenLocOther,
4513
    EPcxGenLocation_enum_count
4514
} EPcxGenLocation;
4515

    
4516
typedef enum
4517
{
4518
    ePortConnJack = 0,
4519
    ePortConnIntegratedDevice,
4520
    ePortConnBothIntegratedAndJack,
4521
    ePortConnUnknown
4522
} EPxcPortConnection;
4523

    
4524
typedef struct 
4525
{
4526
    DWORD                 ChannelMapping;
4527
    COLORREF              Color;
4528
    EPcxConnectionType    ConnectionType;
4529
    EPcxGeoLocation       GeoLocation;
4530
    EPcxGenLocation       GenLocation;
4531
    EPxcPortConnection    PortConnection;
4532
    BOOL                  IsConnected;
4533
} KSJACK_DESCRIPTION, *PKSJACK_DESCRIPTION;
4534

    
4535
typedef enum 
4536
{
4537
    KSJACK_SINK_CONNECTIONTYPE_HDMI = 0,           
4538
    KSJACK_SINK_CONNECTIONTYPE_DISPLAYPORT,         
4539
} KSJACK_SINK_CONNECTIONTYPE;
4540

    
4541
#define MAX_SINK_DESCRIPTION_NAME_LENGTH 32
4542
typedef struct _tagKSJACK_SINK_INFORMATION
4543
{
4544
  KSJACK_SINK_CONNECTIONTYPE ConnType;              
4545
  WORD  ManufacturerId;                            
4546
  WORD  ProductId;                                  
4547
  WORD  AudioLatency;                               
4548
  BOOL  HDCPCapable;                                
4549
  BOOL  AICapable;                                  
4550
  UCHAR SinkDescriptionLength;                      
4551
  WCHAR SinkDescription[MAX_SINK_DESCRIPTION_NAME_LENGTH];
4552
  LUID  PortId;                                 
4553
}  KSJACK_SINK_INFORMATION, *PKSJACK_SINK_INFORMATION;
4554

    
4555
#define JACKDESC2_PRESENCE_DETECT_CAPABILITY       0x00000001 
4556
#define JACKDESC2_DYNAMIC_FORMAT_CHANGE_CAPABILITY 0x00000002
4557

    
4558
typedef struct _tagKSJACK_DESCRIPTION2
4559
{
4560
  DWORD              DeviceStateInfo;
4561
  DWORD              JackCapabilities;
4562
} KSJACK_DESCRIPTION2, *PKSJACK_DESCRIPTION2;
4563

    
4564
/* Additional structs for Windows Vista and later */
4565
typedef struct _tagKSRTAUDIO_BUFFER_PROPERTY {
4566
    KSPROPERTY  Property;
4567
    PVOID       BaseAddress;
4568
    ULONG       RequestedBufferSize;
4569
} KSRTAUDIO_BUFFER_PROPERTY, *PKSRTAUDIO_BUFFER_PROPERTY;
4570

    
4571
typedef struct _tagKSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION {
4572
    KSPROPERTY  Property;
4573
    PVOID       BaseAddress;
4574
    ULONG       RequestedBufferSize;
4575
    ULONG       NotificationCount;
4576
} KSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION, *PKSRTAUDIO_BUFFER_PROPERTY_WITH_NOTIFICATION;
4577

    
4578
typedef struct _tagKSRTAUDIO_BUFFER {
4579
    PVOID   BufferAddress;
4580
    ULONG   ActualBufferSize;
4581
    BOOL    CallMemoryBarrier;
4582
} KSRTAUDIO_BUFFER, *PKSRTAUDIO_BUFFER;
4583

    
4584
typedef struct _tagKSRTAUDIO_HWLATENCY {
4585
    ULONG   FifoSize;
4586
    ULONG   ChipsetDelay;
4587
    ULONG   CodecDelay;
4588
} KSRTAUDIO_HWLATENCY, *PKSRTAUDIO_HWLATENCY;
4589

    
4590
typedef struct _tagKSRTAUDIO_HWREGISTER_PROPERTY {
4591
    KSPROPERTY  Property;
4592
    PVOID       BaseAddress;
4593
} KSRTAUDIO_HWREGISTER_PROPERTY, *PKSRTAUDIO_HWREGISTER_PROPERTY;
4594

    
4595
typedef struct _tagKSRTAUDIO_HWREGISTER {
4596
    PVOID       Register;
4597
    ULONG       Width;
4598
    ULONGLONG   Numerator;
4599
    ULONGLONG   Denominator;
4600
    ULONG       Accuracy;
4601
} KSRTAUDIO_HWREGISTER, *PKSRTAUDIO_HWREGISTER;
4602

    
4603
typedef struct _tagKSRTAUDIO_NOTIFICATION_EVENT_PROPERTY {
4604
    KSPROPERTY  Property;
4605
    HANDLE      NotificationEvent;
4606
} KSRTAUDIO_NOTIFICATION_EVENT_PROPERTY, *PKSRTAUDIO_NOTIFICATION_EVENT_PROPERTY;
4607

    
4608

    
4609
#endif /* _KSMEDIA_ */
4610