Update tk to version 8.5.13
[msysgit.git] / mingw / include / strmif.h
blob38cbc9600c9c701a0dddd3337fdee93674932326
1 #ifndef _STRMIF_H
2 #define _STRMIF_H
3 #if __GNUC__ >= 3
4 #pragma GCC system_header
5 #endif
7 #ifdef __cplusplus
8 extern "C" {
9 #endif
11 /*--- DirectShow Reference - DirectShow Enumerated Types - TVAudioMode Enumeration */
12 #define TVAUDIO_MODE_MASK 0x000000FF
13 #define TVAUDIO_PRESET_MASK 0x0000FF00
14 /*--- DirectShow Reference - DirectShow Data Types */
15 typedef LONGLONG REFERENCE_TIME;
16 typedef double REFTIME;
17 /*--- DirectShow Reference - Constants and GUIDs */
18 enum {
19 MERIT_PREFERRED = 0x800000,
20 MERIT_NORMAL = 0x600000,
21 MERIT_UNLIKELY = 0x400000,
22 MERIT_DO_NOT_USE = 0x200000,
23 MERIT_SW_COMPRESSOR = 0x100000,
24 MERIT_HW_COMPRESSOR = 0x100050
26 /*--- DirectShow Reference - DirectShow Enumerated Types */
27 typedef enum _AM_AUDIO_RENDERER_STAT_PARAM {
28 AM_AUDREND_STAT_PARAM_BREAK_COUNT = 1,
29 AM_AUDREND_STAT_PARAM_SLAVE_MODE,
30 AM_AUDREND_STAT_PARAM_SILENCE_DUR,
31 AM_AUDREND_STAT_PARAM_LAST_BUFFER_DUR,
32 AM_AUDREND_STAT_PARAM_DISCONTINUITIES,
33 AM_AUDREND_STAT_PARAM_SLAVE_RATE,
34 AM_AUDREND_STAT_PARAM_SLAVE_DROPWRITE_DUR,
35 AM_AUDREND_STAT_PARAM_SLAVE_HIGHLOWERROR,
36 AM_AUDREND_STAT_PARAM_SLAVE_LASTHIGHLOWERROR,
37 AM_AUDREND_STAT_PARAM_SLAVE_ACCUMERROR,
38 AM_AUDREND_STAT_PARAM_BUFFERFULLNESS,
39 AM_AUDREND_STAT_PARAM_JITTER
40 } AM_AUDIO_RENDERER_STAT_PARAM;
41 typedef enum _AM_DVD_GRAPH_FLAGS {
42 AM_DVD_HWDEC_PREFER = 0x01,
43 AM_DVD_HWDEC_ONLY = 0x02,
44 AM_DVD_SWDEC_PREFER = 0x04,
45 AM_DVD_SWDEC_ONLY = 0x08,
46 AM_DVD_NOVPE = 0x100,
47 AM_DVD_VMR9_ONLY = 0x800,
48 AM_DVD_EVR_ONLY = 0x1000
49 } AM_DVD_GRAPH_FLAGS;
50 typedef enum _AM_DVD_STREAM_FLAGS {
51 AM_DVD_STREAM_VIDEO = 0x01,
52 AM_DVD_STREAM_AUDIO = 0x02,
53 AM_DVD_STREAM_SUBPIC = 0x04
54 } AM_DVD_STREAM_FLAGS;
55 typedef enum _AM_FILTER_MISC_FLAGS {
56 AM_FILTER_MISC_FLAGS_IS_RENDERER = 0x00000001,
57 AM_FILTER_MISC_FLAGS_IS_SOURCE = 0x00000002
58 } AM_FILTER_MISC_FLAGS;
59 typedef enum _AM_GRAPH_CONFIG_RECONNECT_FLAGS {
60 AM_GRAPH_CONFIG_RECONNECT_DIRECTCONNECT = 0x00000001,
61 AM_GRAPH_CONFIG_RECONNECT_CACHE_REMOVED_FILTERS = 0x00000002,
62 AM_GRAPH_CONFIG_RECONNECT_USE_ONLY_CACHED_FILTERS = 0x00000004
63 } AM_GRAPH_CONFIG_RECONNECT_FLAGS;
64 typedef enum _AM_INTF_SEARCH_FLAGS {
65 AM_INTF_SEARCH_INPUT_PIN = 0x00000001,
66 AM_INTF_SEARCH_OUTPUT_PIN = 0x00000002,
67 AM_INTF_SEARCH_FILTER = 0x00000004
68 } AM_INTF_SEARCH_FLAGS;
69 typedef enum _AM_OVERLAY_NOTIFY_FLAGS {
70 AM_OVERLAY_NOTIFY_VISIBLE_CHANGE = 0x00000001,
71 AM_OVERLAY_NOTIFY_SOURCE_CHANGE = 0x00000002,
72 AM_OVERLAY_NOTIFY_DEST_CHANGE = 0x00000004
73 } AM_OVERLAY_NOTIFY_FLAGS;
74 typedef enum _AM_PIN_CONNECTION_BLOCK_FLAGS {
75 AM_PIN_FLOW_CONTROL_BLOCK = 0x00000001,
76 AM_PIN_PUSH_THROUGH_DATA = 0x00000002
77 } AM_PIN_CONNECTION_BLOCK_FLAGS;
78 typedef enum _AM_PUSHSOURCE_FLAGS {
79 AM_PUSHSOURCECAPS_INTERNAL_RM = 0x00000001,
80 AM_PUSHSOURCECAPS_NOT_LIVE = 0x00000002,
81 AM_PUSHSOURCECAPS_PRIVATE_CLOCK = 0x00000004,
82 AM_PUSHSOURCEREQS_USE_STREAM_CLOCK = 0x00010000
83 } AM_PUSHSOURCE_FLAGS;
84 typedef enum tagAM_SAMPLE_PROPERTY_FLAGS {
85 AM_SAMPLE_SPLICEPOINT = 0x01,
86 AM_SAMPLE_PREROLL = 0x02,
87 AM_SAMPLE_DATADISCONTINUITY = 0x04,
88 AM_SAMPLE_TYPECHANGED = 0x08,
89 AM_SAMPLE_TIMEVALID = 0x10,
90 AM_SAMPLE_TIMEDISCONTINUITY = 0x40,
91 AM_SAMPLE_FLUSH_ON_PAUSE = 0x80,
92 AM_SAMPLE_STOPVALID = 0x100,
93 AM_SAMPLE_ENDOFSTREAM = 0x200,
94 AM_STREAM_MEDIA = 0,
95 AM_STREAM_CONTROL = 1
96 } AM_SAMPLE_PROPERTY_FLAGS;
97 typedef enum AM_SEEKING_SeekingCapabilities {
98 AM_SEEKING_CanSeekAbsolute = 0x1,
99 AM_SEEKING_CanSeekForwards = 0x2,
100 AM_SEEKING_CanSeekBackwards = 0x4,
101 AM_SEEKING_CanGetCurrentPos = 0x8,
102 AM_SEEKING_CanGetStopPos = 0x10,
103 AM_SEEKING_CanGetDuration = 0x20,
104 AM_SEEKING_CanPlayBackwards = 0x40,
105 AM_SEEKING_CanDoSegments = 0x80,
106 AM_SEEKING_Source = 0x100
107 } AM_SEEKING_SEEKING_CAPABILITIES;
108 typedef enum {
109 AM_STREAM_INFO_START_DEFINED = 0x00000001,
110 AM_STREAM_INFO_STOP_DEFINED = 0x00000002,
111 AM_STREAM_INFO_DISCARDING = 0x00000004,
112 AM_STREAM_INFO_STOP_SEND_EXTRA = 0x00000010
113 } AM_STREAM_INFO_FLAGS;
114 enum AMOVERLAYFX {
115 AMOVERFX_NOFX = 0x00000000,
116 AMOVERFX_MIRRORLEFTRIGHT = 0x00000002,
117 AMOVERFX_MIRRORUPDOWN = 0x00000004,
118 AMOVERFX_DEINTERLACE = 0x00000008
120 typedef enum _AMRESCTL_RESERVEFLAGS {
121 AMRESCTL_RESERVEFLAGS_RESERVE = 0x00,
122 AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x01
123 } AMRESCTL_RESERVEFLAGS;
124 typedef enum tagAMTunerModeType {
125 AMTUNER_MODE_DEFAULT = 0x0000,
126 AMTUNER_MODE_TV = 0x0001,
127 AMTUNER_MODE_FM_RADIO = 0x0002,
128 AMTUNER_MODE_AM_RADIO = 0x0004,
129 AMTUNER_MODE_DSS = 0x0008
130 } AMTunerModeType;
131 typedef enum tagAnalogVideoStandard {
132 AnalogVideo_None = 0x00000000,
133 AnalogVideo_NTSC_M = 0x00000001,
134 AnalogVideo_NTSC_M_J = 0x00000002,
135 AnalogVideo_NTSC_433 = 0x00000004,
136 AnalogVideo_PAL_B = 0x00000010,
137 AnalogVideo_PAL_D = 0x00000020,
138 AnalogVideo_PAL_H = 0x00000080,
139 AnalogVideo_PAL_I = 0x00000100,
140 AnalogVideo_PAL_M = 0x00000200,
141 AnalogVideo_PAL_N = 0x00000400,
142 AnalogVideo_PAL_60 = 0x00000800,
143 AnalogVideo_SECAM_B = 0x00001000,
144 AnalogVideo_SECAM_D = 0x00002000,
145 AnalogVideo_SECAM_G = 0x00004000,
146 AnalogVideo_SECAM_H = 0x00008000,
147 AnalogVideo_SECAM_K = 0x00010000,
148 AnalogVideo_SECAM_K1 = 0x00020000,
149 AnalogVideo_SECAM_L = 0x00040000,
150 AnalogVideo_SECAM_L1 = 0x00080000,
151 AnalogVideo_PAL_N_COMBO = 0x00100000
152 } AnalogVideoStandard;
153 typedef enum {
154 CameraControl_Flags_Auto = 0x0001,
155 CameraControl_Flags_Manual = 0x0002
156 } CameraControlFlags;
157 typedef enum {
158 CameraControl_Pan = 1,
159 CameraControl_Tilt,
160 CameraControl_Roll,
161 CameraControl_Zoom,
162 CameraControl_Exposure,
163 CameraControl_Iris,
164 CameraControl_Focus
165 } CameraControlProperty;
166 typedef enum {
167 CompressionCaps_CanQuality = 0x01,
168 CompressionCaps_CanCrunch = 0x02,
169 CompressionCaps_CanKeyFrame = 0x04,
170 CompressionCaps_CanBFrame = 0x08,
171 CompressionCaps_CanWindow = 0x10
172 } CompressionCaps;
173 typedef enum {
174 DECIMATION_LEGACY,
175 DECIMATION_USE_DECODER_ONLY,
176 DECIMATION_USE_VIDEOPORT_ONLY,
177 DECIMATION_USE_OVERLAY_ONLY,
178 DECIMATION_DEFAULT
179 } DECIMATION_USAGE;
180 typedef enum tagDVD_AUDIO_APPMODE {
181 DVD_AudioMode_None = 0,
182 DVD_AudioMode_Karaoke = 1,
183 DVD_AudioMode_Surround = 2,
184 DVD_AudioMode_Other = 3
185 } DVD_AUDIO_APPMODE;
186 typedef enum tagDVD_AUDIO_FORMAT {
187 DVD_AudioFormat_AC3 = 0,
188 DVD_AudioFormat_MPEG1 = 1,
189 DVD_AudioFormat_MPEG1_DRC = 2,
190 DVD_AudioFormat_MPEG2 = 3,
191 DVD_AudioFormat_MPEG2_DRC = 4,
192 DVD_AudioFormat_LPCM = 5,
193 DVD_AudioFormat_DTS = 6,
194 DVD_AudioFormat_SDDS = 7,
195 DVD_AudioFormat_Other = 8
196 } DVD_AUDIO_FORMAT;
197 typedef enum tagDVD_AUDIO_LANG_EXT {
198 DVD_AUD_EXT_NotSpecified = 0,
199 DVD_AUD_EXT_Captions = 1,
200 DVD_AUD_EXT_VisuallyImpaired = 2,
201 DVD_AUD_EXT_DirectorComments1 = 3,
202 DVD_AUD_EXT_DirectorComments2 = 4
203 } DVD_AUDIO_LANG_EXT;
204 typedef enum {
205 DVD_CMD_FLAG_None = 0x00000000,
206 DVD_CMD_FLAG_Flush = 0x00000001,
207 DVD_CMD_FLAG_SendEvents = 0x00000002,
208 DVD_CMD_FLAG_Block = 0x00000004,
209 DVD_CMD_FLAG_StartWhenRendered = 0x00000008,
210 DVD_CMD_FLAG_EndAfterRendered = 0x00000010
211 } DVD_CMD_FLAGS;
212 typedef enum tagDVD_DISC_SIDE {
213 DVD_SIDE_A,
214 DVD_SIDE_B
215 } DVD_DISC_SIDE;
216 typedef enum tagDVD_DOMAIN {
217 DVD_DOMAIN_FirstPlay,
218 DVD_DOMAIN_VideoManagerMenu,
219 DVD_DOMAIN_VideoTitleSetMenu,
220 DVD_DOMAIN_Title,
221 DVD_DOMAIN_Stop
222 } DVD_DOMAIN;
223 typedef enum tagDVD_FRAMERATE {
224 DVD_FPS_25 = 1,
225 DVD_FPS_30NonDrop = 3
226 } DVD_FRAMERATE;
227 typedef enum tagDVD_KARAOKE_ASSIGNMENT {
228 DVD_Assignment_reserved0 = 0,
229 DVD_Assignment_reserved1 = 1,
230 DVD_Assignment_LR = 2,
231 DVD_Assignment_LRM = 3,
232 DVD_Assignment_LR1 = 4,
233 DVD_Assignment_LRM1 = 5,
234 DVD_Assignment_LR12 = 6,
235 DVD_Assignment_LRM12 = 7
236 } DVD_KARAOKE_ASSIGNMENT;
237 typedef enum tagDVD_KARAOKE_CONTENTS {
238 DVD_Karaoke_GuideVocal1 = 0x0001,
239 DVD_Karaoke_GuideVocal2 = 0x0002,
240 DVD_Karaoke_GuideMelody1 = 0x0004,
241 DVD_Karaoke_GuideMelody2 = 0x0008,
242 DVD_Karaoke_GuideMelodyA = 0x0010,
243 DVD_Karaoke_GuideMelodyB = 0x0020,
244 DVD_Karaoke_SoundEffectA = 0x0040,
245 DVD_Karaoke_SoundEffectB = 0x0080
246 } DVD_KARAOKE_CONTENTS;
247 typedef enum tagDVD_KARAOKE_DOWNMIX {
248 DVD_Mix_0to0 = 0x0001,
249 DVD_Mix_1to0 = 0x0002,
250 DVD_Mix_2to0 = 0x0004,
251 DVD_Mix_3to0 = 0x0008,
252 DVD_Mix_4to0 = 0x0010,
253 DVD_Mix_Lto0 = 0x0020,
254 DVD_Mix_Rto0 = 0x0040,
255 DVD_Mix_0to1 = 0x0100,
256 DVD_Mix_1to1 = 0x0200,
257 DVD_Mix_2to1 = 0x0400,
258 DVD_Mix_3to1 = 0x0800,
259 DVD_Mix_4to1 = 0x1000,
260 DVD_Mix_Lto1 = 0x2000,
261 DVD_Mix_Rto1 = 0x4000
262 } DVD_KARAOKE_DOWNMIX;
263 typedef enum tagDVD_MENU_ID {
264 DVD_MENU_Title = 2,
265 DVD_MENU_Root = 3,
266 DVD_MENU_Subpicture = 4,
267 DVD_MENU_Audio = 5,
268 DVD_MENU_Angle = 6,
269 DVD_MENU_Chapter = 7
270 } DVD_MENU_ID;
271 typedef enum {
272 DVD_ResetOnStop = 1,
273 DVD_NotifyParentalLevelChange = 2,
274 DVD_HMSF_TimeCodeEvents = 3,
275 DVD_AudioDuringFFwdRew = 4,
276 DVD_EnableNonblockingAPIs = 5,
277 DVD_CacheSizeInMB = 6,
278 DVD_EnablePortableBookmarks = 7
279 } DVD_OPTION_FLAG;
280 typedef enum tagDVD_PARENTAL_LEVEL {
281 DVD_PARENTAL_LEVEL_8 = 0x8000,
282 DVD_PARENTAL_LEVEL_7 = 0x4000,
283 DVD_PARENTAL_LEVEL_6 = 0x2000,
284 DVD_PARENTAL_LEVEL_5 = 0x1000,
285 DVD_PARENTAL_LEVEL_4 = 0x0800,
286 DVD_PARENTAL_LEVEL_3 = 0x0400,
287 DVD_PARENTAL_LEVEL_2 = 0x0200,
288 DVD_PARENTAL_LEVEL_1 = 0x0100
289 } DVD_PARENTAL_LEVEL;
290 typedef enum tagDVD_PREFERRED_DISPLAY_MODE {
291 DISPLAY_CONTENT_DEFAULT = 0,
292 DISPLAY_16x9 = 1,
293 DISPLAY_4x3_PANSCAN_PREFERRED = 2,
294 DISPLAY_4x3_LETTERBOX_PREFERRED = 3
295 } DVD_PREFERRED_DISPLAY_MODE;
296 typedef enum tagDVD_RELATIVE_BUTTON {
297 DVD_Relative_Upper = 1,
298 DVD_Relative_Lower = 2,
299 DVD_Relative_Left = 3,
300 DVD_Relative_Right = 4
301 } DVD_RELATIVE_BUTTON;
302 typedef enum tagDVD_SUBPICTURE_LANG_EXT {
303 DVD_SP_EXT_NotSpecified = 0,
304 DVD_SP_EXT_Caption_Normal = 1,
305 DVD_SP_EXT_Caption_Big = 2,
306 DVD_SP_EXT_Caption_Children = 3,
307 DVD_SP_EXT_CC_Normal = 5,
308 DVD_SP_EXT_CC_Big = 6,
309 DVD_SP_EXT_CC_Children = 7,
310 DVD_SP_EXT_Forced = 9,
311 DVD_SP_EXT_DirectorComments_Normal = 13,
312 DVD_SP_EXT_DirectorComments_Big = 14,
313 DVD_SP_EXT_DirectorComments_Children = 15
314 } DVD_SUBPICTURE_LANG_EXT;
315 typedef enum tagDVD_SUBPICTURE_TYPE {
316 DVD_SPType_NotSpecified = 0,
317 DVD_SPType_Language = 1,
318 DVD_SPType_Other = 2
319 } DVD_SUBPICTURE_TYPE;
320 typedef enum tagDVD_SUBPICTURE_CODING {
321 DVD_SPCoding_RunLength = 0,
322 DVD_SPCoding_Extended = 1,
323 DVD_SPCoding_Other = 2
324 } DVD_SUBPICTURE_CODING;
325 enum DVD_TextCharSet {
326 DVD_CharSet_Unicode = 0,
327 DVD_CharSet_ISO646 = 1,
328 DVD_CharSet_JIS_Roman_Kanji = 2,
329 DVD_CharSet_ISO8859_1 = 3,
330 DVD_CharSet_ShiftJIS_Kanji_Roman_Katakana = 4
332 enum DVD_TextStringType {
333 DVD_Struct_Volume = 0x01,
334 DVD_Struct_Title = 0x02,
335 DVD_Struct_ParentalID = 0x03,
336 DVD_Struct_PartOfTitle = 0x04,
337 DVD_Struct_Cell = 0x05,
338 DVD_Stream_Audio = 0x10,
339 DVD_Stream_Subpicture = 0x11,
340 DVD_Stream_Angle = 0x12,
341 DVD_Channel_Audio = 0x20,
342 DVD_General_Name = 0x30,
343 DVD_General_Comments = 0x31,
344 DVD_Title_Series = 0x38,
345 DVD_Title_Movie = 0x39,
346 DVD_Title_Video = 0x3a,
347 DVD_Title_Album = 0x3b,
348 DVD_Title_Song = 0x3c,
349 DVD_Title_Other = 0x3f,
350 DVD_Title_Sub_Series = 0x40,
351 DVD_Title_Sub_Movie = 0x41,
352 DVD_Title_Sub_Video = 0x42,
353 DVD_Title_Sub_Album = 0x43,
354 DVD_Title_Sub_Song = 0x44,
355 DVD_Title_Sub_Other = 0x47,
356 DVD_Title_Orig_Series = 0x48,
357 DVD_Title_Orig_Movie = 0x49,
358 DVD_Title_Orig_Video = 0x4a,
359 DVD_Title_Orig_Album = 0x4b,
360 DVD_Title_Orig_Song = 0x4c,
361 DVD_Title_Orig_Other = 0x4f,
362 DVD_Other_Scene = 0x50,
363 DVD_Other_Cut = 0x51,
364 DVD_Other_Take = 0x52
366 typedef enum tagDVD_TIMECODE_FLAGS {
367 DVD_TC_FLAG_25fps = 0x00000001,
368 DVD_TC_FLAG_30fps = 0x00000002,
369 DVD_TC_FLAG_DropFrame = 0x00000004,
370 DVD_TC_FLAG_Interpolated = 0x00000008
371 } DVD_TIMECODE_FLAGS;
372 typedef enum tagDVD_TITLE_APPMODE {
373 DVD_AppMode_Not_Specified = 0,
374 DVD_AppMode_Karaoke = 1,
375 DVD_AppMode_Other = 3
376 } DVD_TITLE_APPMODE;
377 typedef enum tagDVD_VIDEO_COMPRESSION {
378 DVD_VideoCompression_Other = 0,
379 DVD_VideoCompression_MPEG1 = 1,
380 DVD_VideoCompression_MPEG2 = 2
381 } DVD_VIDEO_COMPRESSION;
382 typedef enum _DVDECODERRESOLUTION {
383 DVDECODERRESOLUTION_720x480 = 1000,
384 DVDECODERRESOLUTION_360x240 = 1001,
385 DVDECODERRESOLUTION_180x120 = 1002,
386 DVDECODERRESOLUTION_88x60 = 1003
387 } DVDECODERRESOLUTION;
388 typedef enum _DVRESOLUTION {
389 DVRESOLUTION_FULL = 1000,
390 DVRESOLUTION_HALF = 1001,
391 DVRESOLUTION_QUARTER = 1002,
392 DVRESOLUTION_DC = 1003
393 } DVRESOLUTION;
394 typedef enum _DVENCODERFORMAT {
395 DVENCODERFORMAT_DVSD = 2007,
396 DVENCODERFORMAT_DVHD = 2008,
397 DVENCODERFORMAT_DVSL = 2009
398 } DVENCODERFORMAT;
399 typedef enum _DVENCODERRESOLUTION {
400 DVENCODERRESOLUTION_720x480 = 2012,
401 DVENCODERRESOLUTION_360x240 = 2013,
402 DVENCODERRESOLUTION_180x120 = 2014,
403 DVENCODERRESOLUTION_88x60 = 2015
404 } DVENCODERRESOLUTION;
405 typedef enum _DVENCODERVIDEOFORMAT {
406 DVENCODERVIDEOFORMAT_NTSC = 2000,
407 DVENCODERVIDEOFORMAT_PAL = 2001
408 } DVENCODERVIDEOFORMAT;
409 typedef enum _FilterState {
410 State_Stopped,
411 State_Paused,
412 State_Running
413 } FILTER_STATE;
414 typedef enum {
415 INTERLEAVE_NONE,
416 INTERLEAVE_CAPTURE,
417 INTERLEAVE_FULL,
418 INTERLEAVE_NONE_BUFFERED
419 } InterleavingMode;
420 typedef enum {
421 PhysConn_Video_Tuner = 1,
422 PhysConn_Video_Composite,
423 PhysConn_Video_SVideo,
424 PhysConn_Video_RGB,
425 PhysConn_Video_YRYBY,
426 PhysConn_Video_SerialDigital,
427 PhysConn_Video_ParallelDigital,
428 PhysConn_Video_SCSI,
429 PhysConn_Video_AUX,
430 PhysConn_Video_1394,
431 PhysConn_Video_USB,
432 PhysConn_Video_VideoDecoder,
433 PhysConn_Video_VideoEncoder,
434 PhysConn_Video_SCART,
435 PhysConn_Video_Black,
436 PhysConn_Audio_Tuner = 4096,
437 PhysConn_Audio_Line,
438 PhysConn_Audio_Mic,
439 PhysConn_Audio_AESDigital,
440 PhysConn_Audio_SPDIFDigital,
441 PhysConn_Audio_SCSI,
442 PhysConn_Audio_AUX,
443 PhysConn_Audio_1394,
444 PhysConn_Audio_USB,
445 PhysConn_Audio_AudioDecoder
446 } PhysicalConnectorType;
447 typedef enum _PinDirection {
448 PINDIR_INPUT,
449 PINDIR_OUTPUT
450 } PIN_DIRECTION;
451 typedef enum {
452 Famine,
453 Flood
454 } QualityMessageType;
455 enum {
456 REG_PINFLAG_B_ZERO = 0x1,
457 REG_PINFLAG_B_RENDERER = 0x2,
458 REG_PINFLAG_B_MANY = 0x4,
459 REG_PINFLAG_B_OUTPUT = 0x8
460 } REG_PINFLAG;
461 typedef enum _REM_FILTER_FLAGS {
462 REMFILTERF_LEAVECONNECTED = 0x00000001
463 } REM_FILTER_FLAGS;
464 typedef enum {
465 TunerInputCable,
466 TunerInputAntenna
467 } TunerInputType;
468 typedef enum tagTVAudioMode {
469 AMTVAUDIO_MODE_MONO = 0x0001,
470 AMTVAUDIO_MODE_STEREO = 0x0002,
471 AMTVAUDIO_MODE_LANG_A = 0x0010,
472 AMTVAUDIO_MODE_LANG_B = 0x0020,
473 AMTVAUDIO_MODE_LANG_C = 0x0040,
474 AMTVAUDIO_PRESET_STEREO = 0x0200,
475 AMTVAUDIO_PRESET_LANG_A = 0x1000,
476 AMTVAUDIO_PRESET_LANG_B = 0x2000,
477 AMTVAUDIO_PRESET_LANG_C = 0x4000
478 } TVAudioMode;
479 typedef enum {
480 UOP_FLAG_Play_Title_Or_AtTime = 0x00000001,
481 UOP_FLAG_Play_Chapter = 0x00000002,
482 UOP_FLAG_Play_Title = 0x00000004,
483 UOP_FLAG_Stop = 0x00000008,
484 UOP_FLAG_ReturnFromSubMenu = 0x00000010,
485 UOP_FLAG_Play_Chapter_Or_AtTime = 0x00000020,
486 UOP_FLAG_PlayPrev_Or_Replay_Chapter = 0x00000040,
487 UOP_FLAG_PlayNext_Chapter = 0x00000080,
488 UOP_FLAG_Play_Forwards = 0x00000100,
489 UOP_FLAG_Play_Backwards = 0x00000200,
490 UOP_FLAG_ShowMenu_Title = 0x00000400,
491 UOP_FLAG_ShowMenu_Root = 0x00000800,
492 UOP_FLAG_ShowMenu_SubPic = 0x00001000,
493 UOP_FLAG_ShowMenu_Audio = 0x00002000,
494 UOP_FLAG_ShowMenu_Angle = 0x00004000,
495 UOP_FLAG_ShowMenu_Chapter = 0x00008000,
496 UOP_FLAG_Resume = 0x00010000,
497 UOP_FLAG_Select_Or_Activate_Button = 0x00020000,
498 UOP_FLAG_Still_Off = 0x00040000,
499 UOP_FLAG_Pause_On = 0x00080000,
500 UOP_FLAG_Select_Audio_Stream = 0x00100000,
501 UOP_FLAG_Select_SubPic_Stream = 0x00200000,
502 UOP_FLAG_Select_Angle = 0x00400000,
503 UOP_FLAG_Select_Karaoke_Audio_Presentation_Mode = 0x00800000,
504 UOP_FLAG_Select_Video_Mode_Preference = 0x01000000
505 } VALID_UOP_FLAG;
506 typedef enum {
507 VfwCaptureDialog_Source = 0x01,
508 VfwCaptureDialog_Format = 0x02,
509 VfwCaptureDialog_Display = 0x04
510 } VfwCaptureDialogs;
511 typedef enum {
512 VfwCompressDialog_Config = 0x01,
513 VfwCompressDialog_About = 0x02,
514 VfwCompressDialog_QueryConfig = 0x04,
515 VfwCompressDialog_QueryAbout = 0x08
516 } VfwCompressDialogs;
517 typedef enum tagVideoControlFlags {
518 VideoControlFlag_FlipHorizontal = 0x0001,
519 VideoControlFlag_FlipVertical = 0x0002,
520 VideoControlFlag_ExternalTriggerEnable = 0x0004,
521 VideoControlFlag_Trigger = 0x0008
522 } VideoControlFlags;
523 typedef enum {
524 ConstantBitRate = 0,
525 VariableBitRateAverage,
526 VariableBitRatePeak
527 } VIDEOENCODER_BITRATE_MODE;
528 typedef enum tagVideoProcAmpFlags {
529 VideoProcAmp_Flags_Auto = 0x0001,
530 VideoProcAmp_Flags_Manual = 0x0002
531 } VideoProcAmpFlags;
532 typedef enum tagVideoProcAmpProperty {
533 VideoProcAmp_Brightness,
534 VideoProcAmp_Contrast,
535 VideoProcAmp_Hue,
536 VideoProcAmp_Saturation,
537 VideoProcAmp_Sharpness,
538 VideoProcAmp_Gamma,
539 VideoProcAmp_ColorEnable,
540 VideoProcAmp_WhiteBalance,
541 VideoProcAmp_BacklightCompensation,
542 VideoProcAmp_Gain
543 } VideoProcAmpProperty;
544 enum VMR_ASPECT_RATIO_MODE {
545 VMR_ARMODE_NONE,
546 VMR_ARMODE_LETTER_BOX
548 typedef enum {
549 DeinterlacePref_NextBest = 0x01,
550 DeinterlacePref_BOB = 0x02,
551 DeinterlacePref_Weave = 0x04,
552 DeinterlacePref_Mask = 0x07
553 } VMRDeinterlacePrefs;
554 typedef enum {
555 DeinterlaceTech_Unknown = 0x0000,
556 DeinterlaceTech_BOBLineReplicate = 0x0001,
557 DeinterlaceTech_BOBVerticalStretch = 0x0002,
558 DeinterlaceTech_MedianFiltering = 0x0004,
559 DeinterlaceTech_EdgeFiltering = 0x0010,
560 DeinterlaceTech_FieldAdaptive = 0x0020,
561 DeinterlaceTech_PixelAdaptive = 0x0040,
562 DeinterlaceTech_MotionVectorSteered = 0x0080
563 } VMRDeinterlaceTech;
564 typedef enum {
565 MixerPref_NoDecimation = 0x00000001,
566 MixerPref_DecimateOutput = 0x00000002,
567 MixerPref_ARAdjustXorY = 0x00000004,
568 MixerPref_DecimationReserved = 0x00000008,
569 MixerPref_DecimateMask = 0x0000000F,
570 MixerPref_BiLinearFiltering = 0x00000010,
571 MixerPref_PointFiltering = 0x00000020,
572 MixerPref_FilteringMask = 0x000000F0,
573 MixerPref_RenderTargetRGB = 0x00000100,
574 MixerPref_RenderTargetYUV = 0x00001000,
575 MixerPref_RenderTargetYUV420 = 0x00000200,
576 MixerPref_RenderTargetYUV422 = 0x00000400,
577 MixerPref_RenderTargetYUV444 = 0x00000800,
578 MixerPref_RenderTargetReserved = 0x0000E000,
579 MixerPref_RenderTargetMask = 0x0000FF00,
580 MixerPref_DynamicSwitchToBOB = 0x00010000,
581 MixerPref_DynamicDecimateBy2 = 0x00020000,
582 MixerPref_DynamicReserved = 0x000C0000,
583 MixerPref_DynamicMask = 0x000F0000
584 } VMRMixerPrefs;
585 enum VMRMode {
586 VMRMode_Windowed = 0x00000001,
587 VMRMode_Windowless = 0x00000002,
588 VMRMode_Renderless = 0x00000004,
589 VMRMode_Mask = 0x00000007
591 typedef enum {
592 VMRSample_SyncPoint = 0x00000001,
593 VMRSample_Preroll = 0x00000002,
594 VMRSample_Discontinuity = 0x00000004,
595 VMRSample_TimeValid = 0x00000008
596 } VMRPresentationFlags;
597 typedef enum {
598 RenderPrefs_ForceOffscreen = 0x00000001,
599 RenderPrefs_ForceOverlays = 0x00000002,
600 RenderPrefs_AllowOverlays = 0x00000000,
601 RenderPrefs_AllowOffscreen = 0x00000000,
602 RenderPrefs_DoNotRenderColorKeyAndBorder = 0x00000008,
603 RenderPrefs_RestrictToInitialMonitor = 0x00000010,
604 RenderPrefs_PreferAGPMemWhenMixing = 0x00000020,
605 RenderPrefs_Mask = 0x0000003f
606 } VMRRenderPrefs;
607 typedef enum {
608 AMAP_PIXELFORMAT_VALID = 0x01,
609 AMAP_3D_TARGET = 0x02,
610 AMAP_ALLOW_SYSMEM = 0x04,
611 AMAP_FORCE_SYSMEM = 0x08,
612 AMAP_DIRECTED_FLIP = 0x10,
613 AMAP_DXVA_TARGET = 0x20
614 } VMRSurfaceAllocationFlags;
615 /*--- DirectShow Reference - DirectShow Structures */
616 typedef struct _AllocatorProperties {
617 long cBuffers;
618 long cbBuffer;
619 long cbAlign;
620 long cbPrefix;
621 } ALLOCATOR_PROPERTIES;
622 typedef struct {
623 HRESULT hrVPEStatus;
624 BOOL bDvdVolInvalid;
625 BOOL bDvdVolUnknown;
626 BOOL bNoLine21In;
627 BOOL bNoLine21Out;
628 int iNumStreams;
629 int iNumStreamsFailed;
630 DWORD dwFailedStreamsFlag;
631 } AM_DVD_RENDERSTATUS;
632 typedef struct _AMCOPPCommand {
633 GUID macKDI;
634 GUID guidCommandID;
635 DWORD dwSequence;
636 DWORD cbSizeData;
637 BYTE CommandData[4056];
638 } AMCOPPCommand,*LPAMCOPPCommand;
639 typedef struct _AMCOPPSignature {
640 BYTE Signature[256];
641 } AMCOPPSignature;
642 typedef struct _AMCOPPStatusInput {
643 GUID rApp;
644 GUID guidStatusRequestID;
645 DWORD dwSequence;
646 DWORD cbSizeData;
647 BYTE StatusData[4056];
648 } AMCOPPStatusInput,*LPAMCOPPStatusInput;
649 typedef struct _AMCOPPStatusOutput {
650 GUID macKDI;
651 DWORD cbSizeData;
652 BYTE COPPStatus[4076];
653 } AMCOPPStatusOutput,*LPAMCOPPStatusOutput;
654 typedef struct _AMMediaType {
655 GUID majortype;
656 GUID subtype;
657 BOOL bFixedSizeSamples;
658 BOOL bTemporalCompression;
659 ULONG lSampleSize;
660 GUID formattype;
661 IUnknown *pUnk;
662 ULONG cbFormat;
663 BYTE *pbFormat;
664 } AM_MEDIA_TYPE;
665 typedef struct tagAM_SAMPLE2_PROPERTIES {
666 DWORD cbData;
667 DWORD dwTypeSpecificFlags;
668 DWORD dwSampleFlags;
669 LONG lActual;
670 REFERENCE_TIME tStart;
671 REFERENCE_TIME tStop;
672 DWORD dwStreamId;
673 AM_MEDIA_TYPE *pMediaType;
674 BYTE *pbBuffer;
675 LONG cbBuffer;
676 } AM_SAMPLE2_PROPERTIES;
677 typedef struct {
678 REFERENCE_TIME tStart;
679 REFERENCE_TIME tStop;
680 DWORD dwStartCookie;
681 DWORD dwStopCookie;
682 DWORD dwFlags;
683 } AM_STREAM_INFO;
684 typedef struct {
685 const CLSID *clsMajorType;
686 const CLSID *clsMinorType;
687 } REGPINTYPES;
688 typedef REGPINTYPES AMOVIESETUP_MEDIATYPE,*PAMOVIESETUP_MEDIATYPE,*LPAMOVIESETUP_MEDIATYPE;
689 typedef struct {
690 LPWSTR strName;
691 BOOL bRendered;
692 BOOL bOutput;
693 BOOL bZero;
694 BOOL bMany;
695 const CLSID *clsConnectsToFilter;
696 const WCHAR *strConnectsToPin;
697 UINT nMediaTypes;
698 const REGPINTYPES *lpMediaType;
699 } REGFILTERPINS;
700 typedef REGFILTERPINS AMOVIESETUP_PIN,*PAMOVIESETUP_PIN,*LPAMOVIESETUP_PIN;
701 typedef struct _AMOVIESETUP_FILTER {
702 const CLSID *clsID;
703 const WCHAR *strName;
704 DWORD dwMerit;
705 UINT nPins;
706 const AMOVIESETUP_PIN *lpPin;
707 } AMOVIESETUP_FILTER,*PAMOVIESETUP_FILTER,*LPAMOVIESETUP_FILTER;
708 typedef struct _AUDIO_STREAM_CONFIG_CAPS {
709 GUID guid;
710 ULONG MinimumChannels;
711 ULONG MaximumChannels;
712 ULONG ChannelsGranularity;
713 ULONG MinimumBitsPerSample;
714 ULONG MaximumBitsPerSample;
715 ULONG BitsPerSampleGranularity;
716 ULONG MinimumSampleFrequency;
717 ULONG MaximumSampleFrequency;
718 ULONG SampleFrequencyGranularity;
719 } AUDIO_STREAM_CONFIG_CAPS;
720 struct CodecAPIEventData {
721 GUID guid;
722 DWORD dataLength;
723 DWORD reserved[3];
725 typedef struct tagCOLORKEY {
726 DWORD KeyType;
727 DWORD PaletteIndex;
728 COLORREF LowColorValue;
729 COLORREF HighColorValue;
730 } COLORKEY;
731 #define CK_NOCOLORKEY 0x00000000
732 #define CK_INDEX 0x00000001
733 #define CK_RGB 0x00000002
734 typedef struct {
735 DWORD dw1;
736 DWORD dw2;
737 } DDCOLORKEY;
738 typedef struct tagDVD_AudioAttributes {
739 DVD_AUDIO_APPMODE AppMode;
740 DVD_AUDIO_FORMAT AudioFormat;
741 LCID Language;
742 DVD_AUDIO_LANG_EXT LanguageExtension;
743 BOOL fHasMultichannelInfo;
744 DWORD dwFrequency;
745 BYTE bQuantization;
746 BYTE bNumberOfChannels;
747 DWORD dwReserved[2];
748 } DVD_AudioAttributes;
749 typedef struct tagDVD_DECODER_CAPS {
750 DWORD dwSize;
751 DWORD dwAudioCaps;
752 double dFwdMaxRateVideo;
753 double dFwdMaxRateAudio;
754 double dFwdMaxRateSP;
755 double dBwdMaxRateVideo;
756 double dBwdMaxRateAudio;
757 double dBwdMaxRateSP;
758 DWORD dwRes1;
759 DWORD dwRes2;
760 DWORD dwRes3;
761 DWORD dwRes4;
762 } DVD_DECODER_CAPS;
763 #define DVD_AUDIO_CAPS_AC3 0x00000001
764 #define DVD_AUDIO_CAPS_MPEG2 0x00000002
765 #define DVD_AUDIO_CAPS_LPCM 0x00000004
766 #define DVD_AUDIO_CAPS_DTS 0x00000008
767 #define DVD_AUDIO_CAPS_SDDS 0x00000010
768 typedef struct tagDVD_HMSF_TIMECODE {
769 BYTE bHours;
770 BYTE bMinutes;
771 BYTE bSeconds;
772 BYTE bFrames;
773 } DVD_HMSF_TIMECODE;
774 typedef struct tagDVD_KaraokeAttributes {
775 BYTE bVersion;
776 BOOL fMasterOfCeremoniesInGuideVocal1;
777 BOOL fDuet;
778 DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
779 WORD wChannelContents[8];
780 } DVD_KaraokeAttributes;
781 typedef struct tagDVD_MUA_Coeff {
782 double log2_alpha;
783 double log2_beta;
784 } DVD_MUA_Coeff;
785 typedef struct tagDVD_MUA_MixingInfo {
786 BOOL fMixTo0;
787 BOOL fMixTo1;
788 BOOL fMix0InPhase;
789 BOOL fMix1InPhase;
790 DWORD dwSpeakerPosition;
791 } DVD_MUA_MixingInfo;
792 #define KSAUDIO_SPEAKER_LEFT 0x00000001
793 #define KSAUDIO_SPEAKER_RIGHT 0x00000002
794 #define KSAUDIO_SPEAKER_CENTER 0x00000004
795 #define KSAUDIO_SPEAKER_SURROUND_LEFT 0x00000008
796 #define KSAUDIO_SPEAKER_SURROUND_RIGHT 0x00000010
797 #define KSAUDIO_SPEAKER_SUBWOOFER 0x00000020
798 #define KSAUDIO_SPEAKER_LEFT_OF_CENTER 0x00000040
799 #define KSAUDIO_SPEAKER_RIGHT_OF_CENTER 0x00000080
800 #define KSAUDIO_SPEAKER_SURROUND_MONO 0x00000100
801 #define KSAUDIO_SPEAKER_SIDE_LEFT 0x00000200
802 #define KSAUDIO_SPEAKER_SIDE_RIGHT 0x00000400
803 #define KSAUDIO_SPEAKER_TOP 0x00000800
804 typedef struct tagDVD_MultichannelAudioAttributes {
805 DVD_MUA_MixingInfo Info[8];
806 DVD_MUA_Coeff Coeff[8];
807 } DVD_MultichannelAudioAttributes;
808 typedef struct tagDVD_PLAYBACK_LOCATION {
809 ULONG TitleNum;
810 ULONG ChapterNum;
811 ULONG TimeCode;
812 } DVD_PLAYBACK_LOCATION;
813 typedef struct tagDVD_PLAYBACK_LOCATION2 {
814 ULONG TitleNum;
815 ULONG ChapterNum;
816 DVD_HMSF_TIMECODE TimeCode;
817 ULONG TimeCodeFlags;
818 } DVD_PLAYBACK_LOCATION2;
819 typedef struct tagDVD_SubpictureAttributes {
820 DVD_SUBPICTURE_TYPE Type;
821 DVD_SUBPICTURE_CODING CodingMode;
822 LCID Language;
823 DVD_SUBPICTURE_LANG_EXT LanguageExtension;
824 } DVD_SubpictureAttributes;
825 typedef struct tagDVD_TIMECODE {
826 ULONG Hours1:4;
827 ULONG Hours10:4;
828 ULONG Minutes1:4;
829 ULONG Minutes10:4;
830 ULONG Seconds1:4;
831 ULONG Seconds10:4;
832 ULONG Frames1:4;
833 ULONG Frames10:2;
834 ULONG FrameRateCode:2;
835 } DVD_TIMECODE;
836 typedef struct tagDVD_VideoAttributes {
837 BOOL fPanscanPermitted;
838 BOOL fLetterboxPermitted;
839 ULONG ulAspectX;
840 ULONG ulAspectY;
841 ULONG ulFrameRate;
842 ULONG ulFrameHeight;
843 DVD_VIDEO_COMPRESSION Compression;
844 BOOL fLine21Field1InGOP;
845 BOOL fLine21Field2InGOP;
846 ULONG ulSourceResolutionX;
847 ULONG ulSourceResolutionY;
848 BOOL fIsSourceLetterboxed;
849 BOOL fIsFilmMode;
850 } DVD_VideoAttributes;
851 struct tagDVD_MenuAttributes {
852 BOOL fCompatibleRegion[8];
853 DVD_VideoAttributes VideoAttributes;
854 BOOL fAudioPresent;
855 DVD_AudioAttributes AudioAttributes;
856 BOOL fSubpicturePresent;
857 DVD_SubpictureAttributes SubpictureAttributes;
858 } DVD_MenuAttributes;
859 typedef struct tagDVD_TitleMainAttributes {
860 DVD_TITLE_APPMODE AppMode;
861 DVD_VideoAttributes VideoAttributes;
862 ULONG ulNumberOfAudioStreams;
863 DVD_AudioAttributes AudioAttributes[8];
864 DVD_MultichannelAudioAttributes MultichannelAudioAttributes[8];
865 ULONG ulNumberOfSubpictureStreams;
866 DVD_SubpictureAttributes SubpictureAttributes[32];
867 } DVD_TitleAttributes;
868 typedef struct tag_DVINFO {
869 DWORD dwDVAAuxSrc;
870 DWORD dwDVAAuxCtl;
871 DWORD dwDVAAuxSrc1;
872 DWORD dwDVAAuxCtl1;
873 DWORD dwDVVAuxSrc;
874 DWORD dwDVVAuxCtl;
875 DWORD dwDVReserved[2];
876 } DVINFO,*PDVINFO;
877 /***************
878 #define MAX_FILTER_NAME 128
879 typedef struct _FilterInfo {
880 WCHAR achName[MAX_FILTER_NAME];
881 IFilterGraph *pGraph;
882 } FILTER_INFO;
883 ***************/
884 typedef struct _NORMALIZEDRECT {
885 float left;
886 float top;
887 float right;
888 float bottom;
889 } NORMALIZEDRECT,*PNORMALIZEDRECT;
890 #define MAX_PIN_NAME 128
891 typedef struct _PinInfo {
892 IBaseFilter *pFilter;
893 PIN_DIRECTION dir;
894 WCHAR achName[MAX_PIN_NAME];
895 } PIN_INFO;
896 typedef struct{
897 QualityMessageType Type;
898 long Proportion;
899 REFERENCE_TIME Late;
900 REFERENCE_TIME TimeStamp;
901 } Quality;
902 typedef struct {
903 CLSID clsMedium;
904 DWORD dw1;
905 DWORD dw2;
906 } REGPINMEDIUM;
907 typedef struct {
908 DWORD dwFlags;
909 UINT cInstances;
910 UINT nMediaTypes;
911 const REGPINTYPES *lpMediaType;
912 UINT nMediums;
913 const REGPINMEDIUM *lpMedium;
914 const CLSID *clsPinCategory;
915 } REGFILTERPINS2;
916 typedef struct {
917 DWORD dwVersion;
918 DWORD dwMerit;
919 union {
920 struct {
921 ULONG cPins;
922 const REGFILTERPINS *rgPins;
924 struct {
925 ULONG cPins2;
926 const REGFILTERPINS2 *rgPins2;
929 } REGFILTER2;
930 typedef struct {
931 ULONG stream_id;
932 DWORD dwMediaSampleContent;
933 ULONG ulSubstreamFilterValue;
934 int iDataOffset;
935 } STREAM_ID_MAP;
936 #define MPEG2_PROGRAM_STREAM_MAP 0x00000000
937 #define MPEG2_PROGRAM_ELEMENTARY_STREAM 0x00000001
938 #define MPEG2_PROGRAM_DIRECTORY_PES_PACKET 0x00000002
939 #define MPEG2_PROGRAM_PACK_HEADER 0x00000003
940 #define MPEG2_PROGRAM_PES_STREAM 0x00000004
941 #define MPEG2_PROGRAM_SYSTEM_HEADER 0x00000005
942 #define SUBSTREAM_FILTER_VAL_NONE 0x10000000
943 typedef struct tagTIMECODE {
944 WORD wFrameRate;
945 WORD wFrameFract;
946 DWORD dwFrames;
947 } TIMECODE;
948 #define ED_FORMAT_SMPTE_30 0x00001196
949 #define ED_FORMAT_SMPTE_30DROP 0x00001197
950 #define ED_FORMAT_SMPTE_25 0x00001198
951 #define ED_FORMAT_SMPTE_24 0x00001199
952 typedef struct tagTIMECODE_SAMPLE {
953 LONGLONG qwTick;
954 TIMECODE timecode;
955 DWORD dwUser;
956 DWORD dwFlags;
957 } TIMECODE_SAMPLE;
958 /*#define AM_TIMECODE_FLAG_FCM */
959 /*#define AM_TIMECODE_FLAG_CF */
960 /*#define AM_TIMECODE_FLAG_FIELD */
961 /*#define AM_TIMECODE_FLAG_DF */
962 /*#define AM_TIMECODE_COLORFRAME */
963 /*#define AM_TIMECODE_COLORSEQUENCE */
964 /*#define AM_TIMECODE_FILMSEQUENCE_TYPE */
965 typedef struct _VIDEO_STREAM_CONFIG_CAPS {
966 GUID guid;
967 ULONG VideoStandard;
968 SIZE InputSize;
969 SIZE MinCroppingSize;
970 SIZE MaxCroppingSize;
971 int CropGranularityX;
972 int CropGranularityY;
973 int CropAlignX;
974 int CropAlignY;
975 SIZE MinOutputSize;
976 SIZE MaxOutputSize;
977 int OutputGranularityX;
978 int OutputGranularityY;
979 int StretchTapsX;
980 int StretchTapsY;
981 int ShrinkTapsX;
982 int ShrinkTapsY;
983 LONGLONG MinFrameInterval;
984 LONGLONG MaxFrameInterval;
985 LONG MinBitsPerSecond;
986 LONG MaxBitsPerSecond;
987 } VIDEO_STREAM_CONFIG_CAPS;
988 typedef struct tagVMRALLOCATIONINFO {
989 DWORD dwFlags;
990 LPBITMAPINFOHEADER lpHdr;
991 LPDDPIXELFORMAT lpPixFmt;
992 SIZE szAspectRatio;
993 DWORD dwMinBuffers;
994 DWORD dwMaxBuffers;
995 DWORD dwInterlaceFlags;
996 SIZE szNativeSize;
997 } VMRALLOCATIONINFO;
998 /**********
999 typedef struct _VMRALPHABITMAP {
1000 DWORD dwFlags;
1001 HDC hdc;
1002 LPDIRECTDRAWSURFACE7 pDDS;
1003 RECT rSrc;
1004 NORMALIZEDRECT rDest;
1005 FLOAT fAlpha;
1006 COLORREF clrSrcKey;
1007 } VMRALPHABITMAP,*PVMRALPHABITMAP;
1008 **********/
1009 #define VMRBITMAP_DISABLE 0x00000001
1010 #define VMRBITMAP_HDC 0x00000002
1011 #define VMRBITMAP_ENTIREDDS 0x00000004
1012 #define VMRBITMAP_SRCCOLORKEY 0x00000008
1013 #define VMRBITMAP_SRCRECT 0x00000010
1014 typedef struct _VMRDeinterlaceCaps {
1015 DWORD dwSize;
1016 DWORD dwNumPreviousOutputFrames;
1017 DWORD dwNumForwardRefSamples;
1018 DWORD dwNumBackwardRefSamples;
1019 VMRDeinterlaceTech DeinterlaceTechnology;
1020 } VMRDeinterlaceCaps;
1021 typedef struct _VMRFrequency {
1022 DWORD dwNumerator;
1023 DWORD dwDenominator;
1024 } VMRFrequency;
1025 typedef struct tagVMRGUID {
1026 GUID *pGUID;
1027 GUID GUID;
1028 } VMRGUID;
1029 typedef struct tagVMRMONITORINFO {
1030 VMRGUID guid;
1031 RECT rcMonitor;
1032 HMONITOR hMon;
1033 DWORD dwFlags;
1034 wchar_t szDevice[32];
1035 wchar_t szDescription[256];
1036 } VMRMONITORINFO;
1037 /**********
1038 typedef struct tagVMRPRESENTATIONINFO {
1039 DWORD dwFlags;
1040 LPDIRECTDRAWSURFACE7 lpSurf;
1041 REFERENCE_TIME rtStart;
1042 REFERENCE_TIME rtEnd;
1043 SIZE szAspectRatio;
1044 RECT rcSrc;
1045 RECT rcDst;
1046 DWORD dwTypeSpecificFlags;
1047 DWORD dwInterlaceFlags;
1048 } VMRPRESENTATIONINFO;
1049 **********/
1050 typedef struct _VMRVideoDesc {
1051 DWORD dwSize;
1052 DWORD dwSampleWidth;
1053 DWORD dwSampleHeight;
1054 BOOL SingleFieldPerSample;
1055 DWORD dwFourCC;
1056 VMRFrequency InputSampleFreq;
1057 VMRFrequency OutputFrameFreq;
1058 } VMRVideoDesc;
1059 /**********
1060 typedef struct _VMRVIDEOSTREAMINFO {
1061 LPDIRECTDRAWSURFACE7 pddsVideoSurface;
1062 DWORD dwWidth;
1063 DWORD dwHeight;
1064 DWORD dwStrmID;
1065 FLOAT fAlpha;
1066 DDCOLORKEY ddClrKey;
1067 NORMALIZEDRECT rNormal;
1068 } VMRVIDEOSTREAMINFO;
1069 **********/
1070 /*--- DirectShow Reference - Interfaces */
1071 #define INTERFACE IAMAnalogVideoDecoder
1072 DECLARE_INTERFACE_(IAMAnalogVideoDecoder, IUnknown)
1074 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
1075 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1076 STDMETHOD_(ULONG,Release)(THIS) PURE;
1077 STDMETHOD_(HRESULT,get_AvailableTVFormats)(THIS_ long*) PURE;
1078 STDMETHOD_(HRESULT,get_HorizontalLocked)(THIS_ long*) PURE;
1079 STDMETHOD_(HRESULT,get_NumberOfLines)(THIS_ long*) PURE;
1080 STDMETHOD_(HRESULT,get_OutputEnable)(THIS_ long*) PURE;
1081 STDMETHOD_(HRESULT,get_TVFormat)(THIS_ long*) PURE;
1082 STDMETHOD_(HRESULT,get_VCRHorizontalLocking)(THIS_ long*) PURE;
1083 STDMETHOD_(HRESULT,put_OutputEnable)(THIS_ long) PURE;
1084 STDMETHOD_(HRESULT,put_TVFormat)(THIS_ long) PURE;
1085 STDMETHOD_(HRESULT,put_VCRHorizontalLocking)(THIS_ long) PURE;
1087 #undef INTERFACE
1088 #define INTERFACE IAMAudioInputMixer
1089 DECLARE_INTERFACE_(IAMAudioInputMixer, IUnknown)
1091 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
1092 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1093 STDMETHOD_(ULONG,Release)(THIS) PURE;
1094 STDMETHOD_(HRESULT,get_Bass)(THIS_ double*) PURE;
1095 STDMETHOD_(HRESULT,get_BassRange)(THIS_ double*) PURE;
1096 STDMETHOD_(HRESULT,get_Enable)(THIS_ BOOL*) PURE;
1097 STDMETHOD_(HRESULT,get_Loudness)(THIS_ BOOL*) PURE;
1098 STDMETHOD_(HRESULT,get_MixLevel)(THIS_ double*) PURE;
1099 STDMETHOD_(HRESULT,get_Mono)(THIS_ BOOL*) PURE;
1100 STDMETHOD_(HRESULT,get_Pan)(THIS_ double*) PURE;
1101 STDMETHOD_(HRESULT,get_Treble)(THIS_ double*) PURE;
1102 STDMETHOD_(HRESULT,get_TrebleRange)(THIS_ double*) PURE;
1103 STDMETHOD_(HRESULT,put_Bass)(THIS_ double) PURE;
1104 STDMETHOD_(HRESULT,put_Enable)(THIS_ BOOL) PURE;
1105 STDMETHOD_(HRESULT,put_Loudness)(THIS_ BOOL) PURE;
1106 STDMETHOD_(HRESULT,put_MixLevel)(THIS_ double) PURE;
1107 STDMETHOD_(HRESULT,put_Mono)(THIS_ BOOL) PURE;
1108 STDMETHOD_(HRESULT,put_Pan)(THIS_ double) PURE;
1109 STDMETHOD_(HRESULT,put_Treble)(THIS_ double) PURE;
1111 #undef INTERFACE
1112 #define INTERFACE IAMAudioRendererStats
1113 DECLARE_INTERFACE_(IAMAudioRendererStats, IUnknown)
1115 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
1116 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1117 STDMETHOD_(ULONG,Release)(THIS) PURE;
1118 STDMETHOD_(HRESULT,GetStatParam)(THIS_ DWORD,DWORD*,DWORD*) PURE;
1120 #undef INTERFACE
1121 #define INTERFACE IAMBufferNegotiation
1122 DECLARE_INTERFACE_(IAMBufferNegotiation, IUnknown)
1124 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
1125 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1126 STDMETHOD_(ULONG,Release)(THIS) PURE;
1127 STDMETHOD_(HRESULT,GetAllocatorProperties)(THIS_ ALLOCATOR_PROPERTIES*) PURE;
1128 STDMETHOD_(HRESULT,SuggestAllocatorProperties)(THIS_ const ALLOCATOR_PROPERTIES*) PURE;
1130 #undef INTERFACE
1131 #define INTERFACE IAMCameraControl
1132 DECLARE_INTERFACE_(IAMCameraControl, IUnknown)
1134 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
1135 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1136 STDMETHOD_(ULONG,Release)(THIS) PURE;
1137 STDMETHOD_(HRESULT,Get)(THIS_ long,long*,long*) PURE;
1138 STDMETHOD_(HRESULT,GetRange)(THIS_ long,long*,long*,long*,long*,long*) PURE;
1139 STDMETHOD_(HRESULT,Set)(THIS_ long,long,long) PURE;
1141 #undef INTERFACE
1143 #define INTERFACE IAMCertifiedOutputProtection
1144 DECLARE_INTERFACE_(IAMCertifiedOutputProtection, IUnknown)
1146 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
1147 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
1148 STDMETHOD_(ULONG,Release)(THIS) PURE;
1149 STDMETHOD_(HRESULT,KeyExchange)(THIS_ GUID*,BYTE**,DWORD*) PURE;
1150 STDMETHOD_(HRESULT,ProtectionCommand)(THIS_ const AMCOPPCommand*) PURE;
1151 STDMETHOD_(HRESULT,ProtectionStatus)(THIS_ const AMCOPPStatusInput*,AMCOPPStatusOutput*) PURE;
1152 STDMETHOD_(HRESULT,SessionSequenceStart)(THIS_ const AMCOPPSignature*) PURE;
1154 #undef INTERFACE
1156 #ifdef __cplusplus
1158 #endif
1159 #endif