1 /*
2  * bdamedia.h
3  *
4  * This file is part of the ReactOS DXSDK package.
5  *
6  * THIS SOFTWARE IS NOT COPYRIGHTED
7  *
8  * This source code is offered for use in the public domain. You may
9  * use, modify or distribute it freely.
10  *
11  * This code is distributed in the hope that it will be useful but
12  * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
13  * DISCLAIMED. This includes but is not limited to warranties of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15  *
16  */
17 
18 #ifndef _BDAMEDIA_
19 #define _BDAMEDIA_
20 
21 #include <ksmedia.h>
22 #include <bdatypes.h>
23 
24 typedef struct _KSP_BDA_NODE_PIN {
25   KSPROPERTY Property;
26   ULONG ulNodeType;
27   ULONG ulInputPinId;
28   ULONG ulOutputPinId;
29 } KSP_BDA_NODE_PIN, *PKSP_BDA_NODE_PIN;
30 
31 typedef struct _KSM_BDA_PIN {
32   KSMETHOD Method;
33   __C89_NAMELESS union {
34     ULONG PinId;
35     ULONG PinType;
36   };
37   ULONG Reserved;
38 } KSM_BDA_PIN, *PKSM_BDA_PIN;
39 
40 typedef struct _KSM_BDA_PIN_PAIR {
41   KSMETHOD Method;
42   __C89_NAMELESS union {
43     ULONG InputPinId;
44     ULONG InputPinType;
45   };
46   __C89_NAMELESS union {
47     ULONG OutputPinId;
48     ULONG OutputPinType;
49   };
50 } KSM_BDA_PIN_PAIR, *PKSM_BDA_PIN_PAIR;
51 
52 
53 /* ------------------------------------------------------------
54     BDA Topology Property Set {A14EE835-0A23-11d3-9CC7-00C04F7971E0}
55 */
56 
57 #define STATIC_KSPROPSETID_BdaTopology						\
58 	0xa14ee835, 0x0a23, 0x11d3, 0x9c, 0xc7, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
59 DEFINE_GUIDSTRUCT("A14EE835-0A23-11d3-9CC7-00C04F7971E0", KSPROPSETID_BdaTopology);
60 #define KSPROPSETID_BdaTopology		DEFINE_GUIDNAMED(KSPROPSETID_BdaTopology)
61 
62 typedef enum {
63   KSPROPERTY_BDA_NODE_TYPES,
64   KSPROPERTY_BDA_PIN_TYPES,
65   KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,
66   KSPROPERTY_BDA_NODE_METHODS,
67   KSPROPERTY_BDA_NODE_PROPERTIES,
68   KSPROPERTY_BDA_NODE_EVENTS,
69   KSPROPERTY_BDA_CONTROLLING_PIN_ID,
70   KSPROPERTY_BDA_NODE_DESCRIPTORS
71 } KSPROPERTY_BDA_TOPOLOGY;
72 
73 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_TYPES(GetHandler, SetHandler)		\
74 	DEFINE_KSPROPERTY_ITEM(							\
75 				KSPROPERTY_BDA_NODE_TYPES,			\
76 				(GetHandler),					\
77 				sizeof(KSPROPERTY),				\
78 				0,						\
79 				FALSE,						\
80 				NULL, 0, NULL, NULL, 0)
81 
82 #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPES(GetHandler, SetHandler)		\
83 	DEFINE_KSPROPERTY_ITEM(							\
84 				KSPROPERTY_BDA_PIN_TYPES,			\
85 				(GetHandler),					\
86 				sizeof(KSPROPERTY),				\
87 				0,						\
88 				FALSE,						\
89 				NULL, 0, NULL, NULL, 0)
90 
91 #define DEFINE_KSPROPERTY_ITEM_BDA_TEMPLATE_CONNECTIONS(GetHandler, SetHandler)	\
92 	DEFINE_KSPROPERTY_ITEM(							\
93 				KSPROPERTY_BDA_TEMPLATE_CONNECTIONS,		\
94 				(GetHandler),					\
95 				sizeof(KSPROPERTY),				\
96 				sizeof(BDA_TEMPLATE_CONNECTION),		\
97 				FALSE,						\
98 				NULL, 0, NULL, NULL, 0)
99 
100 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_METHODS(GetHandler, SetHandler)		\
101 	DEFINE_KSPROPERTY_ITEM(							\
102 				KSPROPERTY_BDA_NODE_METHODS,			\
103 				(GetHandler),					\
104 				sizeof(KSP_NODE),				\
105 				0,						\
106 				FALSE,						\
107 				NULL, 0, NULL, NULL, 0)
108 
109 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_PROPERTIES(GetHandler, SetHandler)	\
110 	DEFINE_KSPROPERTY_ITEM(							\
111 				KSPROPERTY_BDA_NODE_PROPERTIES,			\
112 				(GetHandler),					\
113 				sizeof(KSP_NODE),				\
114 				0,						\
115 				FALSE,						\
116 				NULL, 0, NULL, NULL, 0)
117 
118 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_EVENTS(GetHandler, SetHandler)		\
119 	DEFINE_KSPROPERTY_ITEM(							\
120 				KSPROPERTY_BDA_NODE_EVENTS,			\
121 				(GetHandler),					\
122 				sizeof(KSP_NODE),				\
123 				0,						\
124 				FALSE,						\
125 				NULL, 0, NULL, NULL, 0)
126 
127 #define DEFINE_KSPROPERTY_ITEM_BDA_CONTROLLING_PIN_ID(GetHandler, SetHandler)	\
128 	DEFINE_KSPROPERTY_ITEM(							\
129 				KSPROPERTY_BDA_CONTROLLING_PIN_ID,		\
130 				(GetHandler),					\
131 				sizeof(KSP_BDA_NODE_PIN),			\
132 				sizeof(ULONG),					\
133 				FALSE,						\
134 				NULL, 0, NULL, NULL, 0)
135 
136 #define DEFINE_KSPROPERTY_ITEM_BDA_NODE_DESCRIPTORS(GetHandler, SetHandler)	\
137 	DEFINE_KSPROPERTY_ITEM(							\
138 				KSPROPERTY_BDA_NODE_DESCRIPTORS,		\
139 				(GetHandler),					\
140 				sizeof(KSPROPERTY),				\
141 				0,						\
142 				FALSE,						\
143 				NULL, 0, NULL, NULL, 0)
144 
145 
146 /* ------------------------------------------------------------
147     BDA Device Configuration Method Set {71985F45-1CA1-11d3-9CC8-00C04F7971E0}
148 */
149 
150 #define STATIC_KSMETHODSETID_BdaDeviceConfiguration				\
151 	0x71985f45, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
152 DEFINE_GUIDSTRUCT("71985F45-1CA1-11d3-9CC8-00C04F7971E0", KSMETHODSETID_BdaDeviceConfiguration);
153 #define KSMETHODSETID_BdaDeviceConfiguration DEFINE_GUIDNAMED(KSMETHODSETID_BdaDeviceConfiguration)
154 
155 typedef enum {
156   KSMETHOD_BDA_CREATE_PIN_FACTORY = 0,
157   KSMETHOD_BDA_DELETE_PIN_FACTORY,
158   KSMETHOD_BDA_CREATE_TOPOLOGY
159 } KSMETHOD_BDA_DEVICE_CONFIGURATION;
160 
161 #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_PIN_FACTORY(MethodHandler, SupportHandler) \
162 	DEFINE_KSMETHOD_ITEM(							\
163 				KSMETHOD_BDA_CREATE_PIN_FACTORY,		\
164 				KSMETHOD_TYPE_READ,				\
165 				(MethodHandler),				\
166 				sizeof(KSM_BDA_PIN),				\
167 				sizeof(ULONG),					\
168 				SupportHandler)
169 
170 #define DEFINE_KSMETHOD_ITEM_BDA_DELETE_PIN_FACTORY(MethodHandler, SupportHandler) \
171 	DEFINE_KSMETHOD_ITEM(							\
172 				KSMETHOD_BDA_DELETE_PIN_FACTORY,		\
173 				KSMETHOD_TYPE_NONE,				\
174 				(MethodHandler),				\
175 				sizeof(KSM_BDA_PIN),				\
176 				0,						\
177 				SupportHandler)
178 
179 #define DEFINE_KSMETHOD_ITEM_BDA_CREATE_TOPOLOGY(MethodHandler, SupportHandler)	\
180 	DEFINE_KSMETHOD_ITEM(							\
181 				KSMETHOD_BDA_CREATE_TOPOLOGY,			\
182 				KSMETHOD_TYPE_WRITE,				\
183 				(MethodHandler),				\
184 				sizeof(KSM_BDA_PIN_PAIR),			\
185 				0,						\
186 				SupportHandler)
187 
188 
189 /* ------------------------------------------------------------
190   BDA Pin Control Property {0DED49D5-A8B7-4d5d-97A1-12B0C195874D}
191 */
192 
193 #define STATIC_KSPROPSETID_BdaPinControl					\
194 	0xded49d5, 0xa8b7, 0x4d5d, 0x97, 0xa1, 0x12, 0xb0, 0xc1, 0x95, 0x87, 0x4d
195 DEFINE_GUIDSTRUCT("0DED49D5-A8B7-4d5d-97A1-12B0C195874D", KSPROPSETID_BdaPinControl);
196 #define KSPROPSETID_BdaPinControl	DEFINE_GUIDNAMED(KSPROPSETID_BdaPinControl)
197 
198 typedef enum {
199   KSPROPERTY_BDA_PIN_ID = 0,
200   KSPROPERTY_BDA_PIN_TYPE
201 } KSPROPERTY_BDA_PIN_CONTROL;
202 
203 #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_ID(GetHandler, SetHandler)		\
204 	DEFINE_KSPROPERTY_ITEM(							\
205 				KSPROPERTY_BDA_PIN_ID,				\
206 				(GetHandler),					\
207 				sizeof(KSPROPERTY),				\
208 				sizeof(ULONG),					\
209 				FALSE,						\
210 				NULL, 0, NULL, NULL, 0)
211 
212 #define DEFINE_KSPROPERTY_ITEM_BDA_PIN_TYPE(GetHandler, SetHandler)		\
213 	DEFINE_KSPROPERTY_ITEM(							\
214 				KSPROPERTY_BDA_PIN_TYPE,			\
215 				(GetHandler),					\
216 				sizeof(KSPROPERTY),				\
217 				sizeof(ULONG),					\
218 				FALSE,						\
219 				NULL, 0, NULL, NULL, 0)
220 
221 
222 /* ------------------------------------------------------------
223   BDA Change Sync Method Set {FD0A5AF3-B41D-11d2-9C95-00C04F7971E0}
224 */
225 
226 #define STATIC_KSMETHODSETID_BdaChangeSync					\
227 	0xfd0a5af3, 0xb41d, 0x11d2, 0x9c, 0x95, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
228 DEFINE_GUIDSTRUCT("FD0A5AF3-B41D-11d2-9C95-00C04F7971E0", KSMETHODSETID_BdaChangeSync);
229 #define KSMETHODSETID_BdaChangeSync DEFINE_GUIDNAMED(KSMETHODSETID_BdaChangeSync)
230 
231 typedef enum {
232   KSMETHOD_BDA_START_CHANGES = 0,
233   KSMETHOD_BDA_CHECK_CHANGES,
234   KSMETHOD_BDA_COMMIT_CHANGES,
235   KSMETHOD_BDA_GET_CHANGE_STATE
236 } KSMETHOD_BDA_CHANGE_SYNC;
237 
238 #define DEFINE_KSMETHOD_ITEM_BDA_START_CHANGES(MethodHandler, SupportHandler)	\
239 	DEFINE_KSMETHOD_ITEM(							\
240 				KSMETHOD_BDA_START_CHANGES,			\
241 				KSMETHOD_TYPE_NONE,				\
242 				(MethodHandler),				\
243 				sizeof(KSMETHOD),				\
244 				0,						\
245 				SupportHandler)
246 
247 #define DEFINE_KSMETHOD_ITEM_BDA_CHECK_CHANGES(MethodHandler, SupportHandler)	\
248 	DEFINE_KSMETHOD_ITEM(							\
249 				KSMETHOD_BDA_CHECK_CHANGES,			\
250 				KSMETHOD_TYPE_NONE,				\
251 				(MethodHandler),				\
252 				sizeof(KSMETHOD),				\
253 				0,						\
254 				SupportHandler)
255 
256 #define DEFINE_KSMETHOD_ITEM_BDA_COMMIT_CHANGES(MethodHandler, SupportHandler)	\
257 	DEFINE_KSMETHOD_ITEM(							\
258 				KSMETHOD_BDA_COMMIT_CHANGES,			\
259 				KSMETHOD_TYPE_NONE,				\
260 				(MethodHandler),				\
261 				sizeof(KSMETHOD),				\
262 				0,						\
263 				SupportHandler)
264 
265 #define DEFINE_KSMETHOD_ITEM_BDA_GET_CHANGE_STATE(MethodHandler, SupportHandler) \
266 	DEFINE_KSMETHOD_ITEM(							\
267 				KSMETHOD_BDA_GET_CHANGE_STATE,			\
268 				KSMETHOD_TYPE_READ,				\
269 				(MethodHandler),				\
270 				sizeof(KSMETHOD),				\
271 				0,						\
272 				SupportHandler)
273 
274 #define STATIC_KSPROPSETID_BdaFrequencyFilter					\
275 	0x71985f47, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
276 DEFINE_GUIDSTRUCT("71985F47-1CA1-11d3-9CC8-00C04F7971E0", KSPROPSETID_BdaFrequencyFilter);
277 #define KSPROPSETID_BdaFrequencyFilter DEFINE_GUIDNAMED(KSPROPSETID_BdaFrequencyFilter)
278 
279 typedef enum {
280   KSPROPERTY_BDA_RF_TUNER_FREQUENCY = 0,
281   KSPROPERTY_BDA_RF_TUNER_POLARITY,
282   KSPROPERTY_BDA_RF_TUNER_RANGE,
283   KSPROPERTY_BDA_RF_TUNER_TRANSPONDER,
284   KSPROPERTY_BDA_RF_TUNER_BANDWIDTH,
285   KSPROPERTY_BDA_RF_TUNER_FREQUENCY_MULTIPLIER,
286   KSPROPERTY_BDA_RF_TUNER_CAPS,
287   KSPROPERTY_BDA_RF_TUNER_SCAN_STATUS,
288   KSPROPERTY_BDA_RF_TUNER_STANDARD,
289   KSPROPERTY_BDA_RF_TUNER_STANDARD_MODE
290 } KSPROPERTY_BDA_FREQUENCY_FILTER;
291 
292 #define STATIC_KSPROPSETID_BdaDigitalDemodulator				\
293 	0xef30f379, 0x985b, 0x4d10, 0xb6, 0x40, 0xa7, 0x9d, 0x5e, 0x4, 0xe1, 0xe0
294 DEFINE_GUIDSTRUCT("EF30F379-985B-4d10-B640-A79D5E04E1E0", KSPROPSETID_BdaDigitalDemodulator);
295 #define KSPROPSETID_BdaDigitalDemodulator DEFINE_GUIDNAMED(KSPROPSETID_BdaDigitalDemodulator)
296 
297 typedef enum {
298   KSPROPERTY_BDA_MODULATION_TYPE = 0,
299   KSPROPERTY_BDA_INNER_FEC_TYPE,
300   KSPROPERTY_BDA_INNER_FEC_RATE,
301   KSPROPERTY_BDA_OUTER_FEC_TYPE,
302   KSPROPERTY_BDA_OUTER_FEC_RATE,
303   KSPROPERTY_BDA_SYMBOL_RATE,
304   KSPROPERTY_BDA_SPECTRAL_INVERSION,
305   KSPROPERTY_BDA_GUARD_INTERVAL,
306   KSPROPERTY_BDA_TRANSMISSION_MODE,
307   KSPROPERTY_BDA_ROLL_OFF,
308   KSPROPERTY_BDA_PILOT,
309   KSPROPERTY_BDA_SIGNALTIMEOUTS
310 } KSPROPERTY_BDA_DIGITAL_DEMODULATOR;
311 
312 #define STATIC_KSPROPSETID_BdaLNBInfo						\
313 	0x992cf102, 0x49f9, 0x4719, 0xa6, 0x64, 0xc4, 0xf2, 0x3e, 0x24, 0x8, 0xf4
314 DEFINE_GUIDSTRUCT("992CF102-49F9-4719-A664-C4F23E2408F4", KSPROPSETID_BdaLNBInfo);
315 #define KSPROPSETID_BdaLNBInfo		DEFINE_GUIDNAMED(KSPROPSETID_BdaLNBInfo)
316 
317 typedef enum {
318   KSPROPERTY_BDA_LNB_LOF_LOW_BAND = 0,
319   KSPROPERTY_BDA_LNB_LOF_HIGH_BAND,
320   KSPROPERTY_BDA_LNB_SWITCH_FREQUENCY
321 } KSPROPERTY_BDA_LNB_INFO;
322 
323 #define STATIC_KSPROPSETID_BdaSignalStats					\
324 	0x1347d106, 0xcf3a, 0x428a, 0xa5, 0xcb, 0xac, 0xd, 0x9a, 0x2a, 0x43, 0x38
325 DEFINE_GUIDSTRUCT("1347D106-CF3A-428a-A5CB-AC0D9A2A4338", KSPROPSETID_BdaSignalStats);
326 #define KSPROPSETID_BdaSignalStats	DEFINE_GUIDNAMED(KSPROPSETID_BdaSignalStats)
327 
328 typedef enum {
329   KSPROPERTY_BDA_SIGNAL_STRENGTH = 0,
330   KSPROPERTY_BDA_SIGNAL_QUALITY,
331   KSPROPERTY_BDA_SIGNAL_PRESENT,
332   KSPROPERTY_BDA_SIGNAL_LOCKED,
333   KSPROPERTY_BDA_SAMPLE_TIME
334 } KSPROPERTY_BDA_SIGNAL_STATS;
335 
336 typedef struct tagBDA_TRANSPORT_INFO {
337   ULONG ulcbPhyiscalPacket;
338   ULONG ulcbPhyiscalFrame;
339   ULONG ulcbPhyiscalFrameAlignment;
340   REFERENCE_TIME AvgTimePerFrame;
341 } BDA_TRANSPORT_INFO, *PBDA_TRANSPORT_INFO;
342 
343 typedef struct tagKS_DATARANGE_BDA_TRANSPORT {
344   KSDATARANGE DataRange;
345   BDA_TRANSPORT_INFO BdaTransportInfo;
346 } KS_DATARANGE_BDA_TRANSPORT, *PKS_DATARANGE_BDA_TRANSPORT;
347 
348 #if (_WIN32_WINNT >= 0x0601)
349 typedef enum tagChannelChangeSpanningEvent_State {
350   ChannelChangeSpanningEvent_Start   = 0,
351   ChannelChangeSpanningEvent_End     = 2
352 } ChannelChangeSpanningEvent_State;
353 
354 typedef struct _ChannelChangeInfo {
355   ChannelChangeSpanningEvent_State state;
356   ULONGLONG                        TimeStamp;
357 } ChannelChangeInfo;
358 
359 typedef struct _ChannelInfo {
360   LONG lFrequency;
361   __C89_NAMELESS union {
362      struct {
363       LONG lONID;
364       LONG lTSID;
365       LONG lSID;
366     } DVB;
367     struct {
368       LONG lProgNumber;
369     } DC;
370     struct {
371       LONG lProgNumber;
372     } ATSC;
373   } ;
374 } ChannelInfo;
375 
376 typedef enum _PBDAParentalControlPolicy {
377   PBDAParentalControlGeneralPolicy    = 0,
378   PBDAParentalControlLiveOnlyPolicy   = 1
379 } PBDAParentalControlPolicy;
380 
381 typedef enum _SignalAndServiceStatusSpanningEvent_State {
382   SignalAndServiceStatusSpanningEvent_Clear           = 0,
383   SignalAndServiceStatusSpanningEvent_NoTVSignal      = 1,
384   SignalAndServiceStatusSpanningEvent_ServiceOffAir   = 2
385 } SignalAndServiceStatusSpanningEvent_State;
386 
387 typedef struct _DualMonoInfo {
388   LANGID LangID1;
389   LANGID LangID2;
390   LONG   lISOLangCode1;
391   LONG   lISOLangCode2;
392 } DualMonoInfo;
393 
394 typedef struct _DVBScramblingControlSpanningEvent {
395   ULONG ulPID;
396   WINBOOL fScrambled;
397 } DVBScramblingControlSpanningEvent;
398 
399 typedef struct _LanguageInfo {
400   LANGID LangID;
401   LONG   lISOLangCode;
402 } LanguageInfo;
403 
404 typedef struct _PBDAParentalControl {
405   ULONG ulStartTime;
406   ULONG ulEndTime;
407   ULONG ulPolicy;
408 } PBDAParentalControl;
409 
410 typedef struct _PIDListSpanningEvent {
411   WORD  wPIDCount;
412   ULONG pulPIDs[1];
413 } PIDListSpanningEvent;
414 
415 typedef struct _SpanningEventDescriptor {
416   WORD wDataLen;
417   WORD wProgNumber;
418   WORD wSID;
419   BYTE bDescriptor[1];
420 } SpanningEventDescriptor;
421 
422 typedef struct _SpanningEventEmmMessage {
423   BYTE  bCAbroadcasterGroupId;
424   BYTE  bMessageControl;
425   WORD  wServiceId;
426   WORD  wTableIdExtension;
427   BYTE  bDeletionStatus;
428   BYTE  bDisplayingDuration1;
429   BYTE  bDisplayingDuration2;
430   BYTE  bDisplayingDuration3;
431   BYTE  bDisplayingCycle;
432   BYTE  bFormatVersion;
433   BYTE  bDisplayPosition;
434   WORD  wMessageLength;
435   WCHAR szMessageArea[MIN_DIMENSION];
436 } SpanningEventEmmMessage;
437 
438 #endif /*(_WIN32_WINNT >= 0x0601)*/
439 
440 /* ------------------------------------------------------------
441   BDA Stream Format GUIDs
442 */
443 
444 #define STATIC_KSDATAFORMAT_TYPE_BDA_ANTENNA					\
445 	0x71985f41, 0x1ca1, 0x11d3, 0x9c, 0xc8, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0
446 DEFINE_GUIDSTRUCT("71985F41-1CA1-11d3-9CC8-00C04F7971E0", KSDATAFORMAT_TYPE_BDA_ANTENNA);
447 #define KSDATAFORMAT_TYPE_BDA_ANTENNA DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_ANTENNA)
448 
449 #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT				\
450 	0xf4aeb342, 0x0329, 0x4fdd, 0xa8, 0xfd, 0x4a, 0xff, 0x49, 0x26, 0xc9, 0x78
451 DEFINE_GUIDSTRUCT("F4AEB342-0329-4fdd-A8FD-4AFF4926C978", KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT);
452 #define KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_MPEG2_TRANSPORT)
453 
454 #define STATIC_KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT				\
455 	0x8deda6fd, 0xac5f, 0x4334, 0x8e, 0xcf, 0xa4, 0xba, 0x8f, 0xa7, 0xd0, 0xf0
456 DEFINE_GUIDSTRUCT("8DEDA6FD-AC5F-4334-8ECF-A4BA8FA7D0F0", KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT);
457 #define KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT DEFINE_GUIDNAMED(KSDATAFORMAT_SPECIFIER_BDA_TRANSPORT)
458 
459 #define STATIC_KSDATAFORMAT_TYPE_BDA_IF_SIGNAL					\
460 	0x61be0b47, 0xa5eb, 0x499b, 0x9a, 0x85, 0x5b, 0x16, 0xc0, 0x7f, 0x12, 0x58
461 DEFINE_GUIDSTRUCT("61BE0B47-A5EB-499b-9A85-5B16C07F1258", KSDATAFORMAT_TYPE_BDA_IF_SIGNAL);
462 #define KSDATAFORMAT_TYPE_BDA_IF_SIGNAL DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_BDA_IF_SIGNAL)
463 
464 #define STATIC_KSDATAFORMAT_TYPE_MPEG2_SECTIONS					\
465 	0x455f176c, 0x4b06, 0x47ce, 0x9a, 0xef, 0x8c, 0xae, 0xf7, 0x3d, 0xf7, 0xb5
466 DEFINE_GUIDSTRUCT("455F176C-4B06-47CE-9AEF-8CAEF73DF7B5", KSDATAFORMAT_TYPE_MPEG2_SECTIONS);
467 #define KSDATAFORMAT_TYPE_MPEG2_SECTIONS DEFINE_GUIDNAMED(KSDATAFORMAT_TYPE_MPEG2_SECTIONS)
468 
469 #define STATIC_KSDATAFORMAT_SUBTYPE_ATSC_SI					\
470 	0xb3c7397c, 0xd303, 0x414d, 0xb3, 0x3c, 0x4e, 0xd2, 0xc9, 0xd2, 0x97, 0x33
471 DEFINE_GUIDSTRUCT("B3C7397C-D303-414D-B33C-4ED2C9D29733", KSDATAFORMAT_SUBTYPE_ATSC_SI);
472 #define KSDATAFORMAT_SUBTYPE_ATSC_SI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ATSC_SI)
473 
474 #define STATIC_KSDATAFORMAT_SUBTYPE_DVB_SI					\
475 	0xe9dd31a3, 0x221d, 0x4adb, 0x85, 0x32, 0x9a, 0xf3, 0x9, 0xc1, 0xa4, 0x8
476 DEFINE_GUIDSTRUCT("e9dd31a3-221d-4adb-8532-9af309c1a408", KSDATAFORMAT_SUBTYPE_DVB_SI);
477 #define KSDATAFORMAT_SUBTYPE_DVB_SI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_DVB_SI)
478 
479 #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP				\
480 	0x762e3f66, 0x336f, 0x48d1, 0xbf, 0x83, 0x2b, 0x0, 0x35, 0x2c, 0x11, 0xf0
481 DEFINE_GUIDSTRUCT("762E3F66-336F-48d1-BF83-2B00352C11F0", KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP);
482 #define KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_PSIP)
483 
484 #define STATIC_KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP			\
485 	0x951727db, 0xd2ce, 0x4528, 0x96, 0xf6, 0x33, 0x1, 0xfa, 0xbb, 0x2d, 0xe0
486 DEFINE_GUIDSTRUCT("951727DB-D2CE-4528-96F6-3301FABB2DE0", KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP);
487 #define KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_BDA_OPENCABLE_OOB_PSIP)
488 
489 #define STATIC_KSDATAFORMAT_SUBTYPE_ISDB_SI					\
490 	0x4a2eeb99, 0x6458, 0x4538, 0xb1, 0x87, 0x04, 0x01, 0x7c, 0x41, 0x41, 0x3f
491 DEFINE_GUIDSTRUCT("4a2eeb99-6458-4538-b187-04017c41413f", KSDATAFORMAT_SUBTYPE_ISDB_SI);
492 #define KSDATAFORMAT_SUBTYPE_ISDB_SI DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_ISDB_SI)
493 
494 #define STATIC_KSDATAFORMAT_SUBTYPE_PBDA_TRANSPORT_RAW				\
495 	0x0d7aed42, 0xcb9a, 0x11db, 0x97, 0x05, 0x00, 0x50, 0x56, 0xc0, 0x00, 0x08
496 DEFINE_GUIDSTRUCT("0d7AED42-CB9A-11DB-9705-005056C00008", KSDATAFORMAT_SUBTYPE_PBDA_TRANSPORT_RAW);
497 #define KSDATAFORMAT_SUBTYPE_PBDA_TRANSPORT_RAW DEFINE_GUIDNAMED(KSDATAFORMAT_SUBTYPE_PBDA_TRANSPORT_RAW)
498 
499 #endif /* _BDAMEDIA_ */
500 
501