source: Daodan/MinGW/include/strmif.h@ 1163

Last change on this file since 1163 was 1046, checked in by alloc, 8 years ago

Daodan: Added Windows MinGW and build batch file

File size: 32.8 KB
Line 
1#ifndef _STRMIF_H
2#define _STRMIF_H
3#if __GNUC__ >= 3
4#pragma GCC system_header
5#endif
6
7#ifdef __cplusplus
8extern "C" {
9#endif
10
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 */
15typedef LONGLONG REFERENCE_TIME;
16typedef double REFTIME;
17/*--- DirectShow Reference - Constants and GUIDs */
18enum {
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
25};
26/*--- DirectShow Reference - DirectShow Enumerated Types */
27typedef 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;
41typedef 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;
50typedef 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;
55typedef 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;
59typedef 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;
64typedef 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;
69typedef 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;
74typedef 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;
78typedef 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;
84typedef 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;
97typedef 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;
108typedef 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;
114enum AMOVERLAYFX {
115 AMOVERFX_NOFX = 0x00000000,
116 AMOVERFX_MIRRORLEFTRIGHT = 0x00000002,
117 AMOVERFX_MIRRORUPDOWN = 0x00000004,
118 AMOVERFX_DEINTERLACE = 0x00000008
119};
120typedef enum _AMRESCTL_RESERVEFLAGS {
121 AMRESCTL_RESERVEFLAGS_RESERVE = 0x00,
122 AMRESCTL_RESERVEFLAGS_UNRESERVE = 0x01
123} AMRESCTL_RESERVEFLAGS;
124typedef 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;
131typedef 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;
153typedef enum {
154 CameraControl_Flags_Auto = 0x0001,
155 CameraControl_Flags_Manual = 0x0002
156} CameraControlFlags;
157typedef 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;
166typedef enum {
167 CompressionCaps_CanQuality = 0x01,
168 CompressionCaps_CanCrunch = 0x02,
169 CompressionCaps_CanKeyFrame = 0x04,
170 CompressionCaps_CanBFrame = 0x08,
171 CompressionCaps_CanWindow = 0x10
172} CompressionCaps;
173typedef 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;
180typedef 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;
186typedef 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;
197typedef 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;
204typedef 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;
212typedef enum tagDVD_DISC_SIDE {
213 DVD_SIDE_A,
214 DVD_SIDE_B
215} DVD_DISC_SIDE;
216typedef 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;
223typedef enum tagDVD_FRAMERATE {
224 DVD_FPS_25 = 1,
225 DVD_FPS_30NonDrop = 3
226} DVD_FRAMERATE;
227typedef 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;
237typedef 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;
247typedef 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;
263typedef 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;
271typedef 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;
280typedef 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;
290typedef 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;
296typedef 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;
302typedef 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;
315typedef enum tagDVD_SUBPICTURE_TYPE {
316 DVD_SPType_NotSpecified = 0,
317 DVD_SPType_Language = 1,
318 DVD_SPType_Other = 2
319} DVD_SUBPICTURE_TYPE;
320typedef enum tagDVD_SUBPICTURE_CODING {
321 DVD_SPCoding_RunLength = 0,
322 DVD_SPCoding_Extended = 1,
323 DVD_SPCoding_Other = 2
324} DVD_SUBPICTURE_CODING;
325enum 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
331};
332enum 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
365};
366typedef 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;
372typedef enum tagDVD_TITLE_APPMODE {
373 DVD_AppMode_Not_Specified = 0,
374 DVD_AppMode_Karaoke = 1,
375 DVD_AppMode_Other = 3
376} DVD_TITLE_APPMODE;
377typedef enum tagDVD_VIDEO_COMPRESSION {
378 DVD_VideoCompression_Other = 0,
379 DVD_VideoCompression_MPEG1 = 1,
380 DVD_VideoCompression_MPEG2 = 2
381} DVD_VIDEO_COMPRESSION;
382typedef enum _DVDECODERRESOLUTION {
383 DVDECODERRESOLUTION_720x480 = 1000,
384 DVDECODERRESOLUTION_360x240 = 1001,
385 DVDECODERRESOLUTION_180x120 = 1002,
386 DVDECODERRESOLUTION_88x60 = 1003
387} DVDECODERRESOLUTION;
388typedef enum _DVRESOLUTION {
389 DVRESOLUTION_FULL = 1000,
390 DVRESOLUTION_HALF = 1001,
391 DVRESOLUTION_QUARTER = 1002,
392 DVRESOLUTION_DC = 1003
393} DVRESOLUTION;
394typedef enum _DVENCODERFORMAT {
395 DVENCODERFORMAT_DVSD = 2007,
396 DVENCODERFORMAT_DVHD = 2008,
397 DVENCODERFORMAT_DVSL = 2009
398} DVENCODERFORMAT;
399typedef enum _DVENCODERRESOLUTION {
400 DVENCODERRESOLUTION_720x480 = 2012,
401 DVENCODERRESOLUTION_360x240 = 2013,
402 DVENCODERRESOLUTION_180x120 = 2014,
403 DVENCODERRESOLUTION_88x60 = 2015
404} DVENCODERRESOLUTION;
405typedef enum _DVENCODERVIDEOFORMAT {
406 DVENCODERVIDEOFORMAT_NTSC = 2000,
407 DVENCODERVIDEOFORMAT_PAL = 2001
408} DVENCODERVIDEOFORMAT;
409typedef enum _FilterState {
410 State_Stopped,
411 State_Paused,
412 State_Running
413} FILTER_STATE;
414typedef enum {
415 INTERLEAVE_NONE,
416 INTERLEAVE_CAPTURE,
417 INTERLEAVE_FULL,
418 INTERLEAVE_NONE_BUFFERED
419} InterleavingMode;
420typedef 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;
447typedef enum _PinDirection {
448 PINDIR_INPUT,
449 PINDIR_OUTPUT
450} PIN_DIRECTION;
451typedef enum {
452 Famine,
453 Flood
454} QualityMessageType;
455enum {
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;
461typedef enum _REM_FILTER_FLAGS {
462 REMFILTERF_LEAVECONNECTED = 0x00000001
463} REM_FILTER_FLAGS;
464typedef enum {
465 TunerInputCable,
466 TunerInputAntenna
467} TunerInputType;
468typedef 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;
479typedef 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;
506typedef enum {
507 VfwCaptureDialog_Source = 0x01,
508 VfwCaptureDialog_Format = 0x02,
509 VfwCaptureDialog_Display = 0x04
510} VfwCaptureDialogs;
511typedef enum {
512 VfwCompressDialog_Config = 0x01,
513 VfwCompressDialog_About = 0x02,
514 VfwCompressDialog_QueryConfig = 0x04,
515 VfwCompressDialog_QueryAbout = 0x08
516} VfwCompressDialogs;
517typedef enum tagVideoControlFlags {
518 VideoControlFlag_FlipHorizontal = 0x0001,
519 VideoControlFlag_FlipVertical = 0x0002,
520 VideoControlFlag_ExternalTriggerEnable = 0x0004,
521 VideoControlFlag_Trigger = 0x0008
522} VideoControlFlags;
523typedef enum {
524 ConstantBitRate = 0,
525 VariableBitRateAverage,
526 VariableBitRatePeak
527} VIDEOENCODER_BITRATE_MODE;
528typedef enum tagVideoProcAmpFlags {
529 VideoProcAmp_Flags_Auto = 0x0001,
530 VideoProcAmp_Flags_Manual = 0x0002
531} VideoProcAmpFlags;
532typedef 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;
544enum VMR_ASPECT_RATIO_MODE {
545 VMR_ARMODE_NONE,
546 VMR_ARMODE_LETTER_BOX
547};
548typedef enum {
549 DeinterlacePref_NextBest = 0x01,
550 DeinterlacePref_BOB = 0x02,
551 DeinterlacePref_Weave = 0x04,
552 DeinterlacePref_Mask = 0x07
553} VMRDeinterlacePrefs;
554typedef 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;
564typedef 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;
585enum VMRMode {
586 VMRMode_Windowed = 0x00000001,
587 VMRMode_Windowless = 0x00000002,
588 VMRMode_Renderless = 0x00000004,
589 VMRMode_Mask = 0x00000007
590};
591typedef enum {
592 VMRSample_SyncPoint = 0x00000001,
593 VMRSample_Preroll = 0x00000002,
594 VMRSample_Discontinuity = 0x00000004,
595 VMRSample_TimeValid = 0x00000008
596} VMRPresentationFlags;
597typedef 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;
607typedef 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 */
616typedef struct _AllocatorProperties {
617 long cBuffers;
618 long cbBuffer;
619 long cbAlign;
620 long cbPrefix;
621} ALLOCATOR_PROPERTIES;
622typedef 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;
632typedef struct _AMCOPPCommand {
633 GUID macKDI;
634 GUID guidCommandID;
635 DWORD dwSequence;
636 DWORD cbSizeData;
637 BYTE CommandData[4056];
638} AMCOPPCommand,*LPAMCOPPCommand;
639typedef struct _AMCOPPSignature {
640 BYTE Signature[256];
641} AMCOPPSignature;
642typedef struct _AMCOPPStatusInput {
643 GUID rApp;
644 GUID guidStatusRequestID;
645 DWORD dwSequence;
646 DWORD cbSizeData;
647 BYTE StatusData[4056];
648} AMCOPPStatusInput,*LPAMCOPPStatusInput;
649typedef struct _AMCOPPStatusOutput {
650 GUID macKDI;
651 DWORD cbSizeData;
652 BYTE COPPStatus[4076];
653} AMCOPPStatusOutput,*LPAMCOPPStatusOutput;
654typedef 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;
665typedef 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;
677typedef struct {
678 REFERENCE_TIME tStart;
679 REFERENCE_TIME tStop;
680 DWORD dwStartCookie;
681 DWORD dwStopCookie;
682 DWORD dwFlags;
683} AM_STREAM_INFO;
684typedef struct {
685 const CLSID *clsMajorType;
686 const CLSID *clsMinorType;
687} REGPINTYPES;
688typedef REGPINTYPES AMOVIESETUP_MEDIATYPE,*PAMOVIESETUP_MEDIATYPE,*LPAMOVIESETUP_MEDIATYPE;
689typedef 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;
700typedef REGFILTERPINS AMOVIESETUP_PIN,*PAMOVIESETUP_PIN,*LPAMOVIESETUP_PIN;
701typedef 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;
708typedef 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;
720struct CodecAPIEventData {
721 GUID guid;
722 DWORD dataLength;
723 DWORD reserved[3];
724};
725typedef 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
734typedef struct {
735 DWORD dw1;
736 DWORD dw2;
737} DDCOLORKEY;
738typedef 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;
749typedef 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
768typedef struct tagDVD_HMSF_TIMECODE {
769 BYTE bHours;
770 BYTE bMinutes;
771 BYTE bSeconds;
772 BYTE bFrames;
773} DVD_HMSF_TIMECODE;
774typedef struct tagDVD_KaraokeAttributes {
775 BYTE bVersion;
776 BOOL fMasterOfCeremoniesInGuideVocal1;
777 BOOL fDuet;
778 DVD_KARAOKE_ASSIGNMENT ChannelAssignment;
779 WORD wChannelContents[8];
780} DVD_KaraokeAttributes;
781typedef struct tagDVD_MUA_Coeff {
782 double log2_alpha;
783 double log2_beta;
784} DVD_MUA_Coeff;
785typedef 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
804typedef struct tagDVD_MultichannelAudioAttributes {
805 DVD_MUA_MixingInfo Info[8];
806 DVD_MUA_Coeff Coeff[8];
807} DVD_MultichannelAudioAttributes;
808typedef struct tagDVD_PLAYBACK_LOCATION {
809 ULONG TitleNum;
810 ULONG ChapterNum;
811 ULONG TimeCode;
812} DVD_PLAYBACK_LOCATION;
813typedef struct tagDVD_PLAYBACK_LOCATION2 {
814 ULONG TitleNum;
815 ULONG ChapterNum;
816 DVD_HMSF_TIMECODE TimeCode;
817 ULONG TimeCodeFlags;
818} DVD_PLAYBACK_LOCATION2;
819typedef 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;
825typedef 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;
836typedef 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;
851struct 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;
859typedef 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;
868typedef 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
879typedef struct _FilterInfo {
880 WCHAR achName[MAX_FILTER_NAME];
881 IFilterGraph *pGraph;
882} FILTER_INFO;
883***************/
884typedef struct _NORMALIZEDRECT {
885 float left;
886 float top;
887 float right;
888 float bottom;
889} NORMALIZEDRECT,*PNORMALIZEDRECT;
890#define MAX_PIN_NAME 128
891typedef struct _PinInfo {
892 IBaseFilter *pFilter;
893 PIN_DIRECTION dir;
894 WCHAR achName[MAX_PIN_NAME];
895} PIN_INFO;
896typedef struct{
897 QualityMessageType Type;
898 long Proportion;
899 REFERENCE_TIME Late;
900 REFERENCE_TIME TimeStamp;
901} Quality;
902typedef struct {
903 CLSID clsMedium;
904 DWORD dw1;
905 DWORD dw2;
906} REGPINMEDIUM;
907typedef 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;
916typedef struct {
917 DWORD dwVersion;
918 DWORD dwMerit;
919 union {
920 struct {
921 ULONG cPins;
922 const REGFILTERPINS *rgPins;
923 };
924 struct {
925 ULONG cPins2;
926 const REGFILTERPINS2 *rgPins2;
927 };
928 };
929} REGFILTER2;
930typedef 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
943typedef 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
952typedef 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 */
965typedef 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;
988typedef 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/**********
999typedef 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
1014typedef struct _VMRDeinterlaceCaps {
1015 DWORD dwSize;
1016 DWORD dwNumPreviousOutputFrames;
1017 DWORD dwNumForwardRefSamples;
1018 DWORD dwNumBackwardRefSamples;
1019 VMRDeinterlaceTech DeinterlaceTechnology;
1020} VMRDeinterlaceCaps;
1021typedef struct _VMRFrequency {
1022 DWORD dwNumerator;
1023 DWORD dwDenominator;
1024} VMRFrequency;
1025typedef struct tagVMRGUID {
1026 GUID *pGUID;
1027 GUID GUID;
1028} VMRGUID;
1029typedef 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/**********
1038typedef 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**********/
1050typedef 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/**********
1060typedef 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
1072DECLARE_INTERFACE_(IAMAnalogVideoDecoder, IUnknown)
1073{
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;
1086};
1087#undef INTERFACE
1088#define INTERFACE IAMAudioInputMixer
1089DECLARE_INTERFACE_(IAMAudioInputMixer, IUnknown)
1090{
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;
1110};
1111#undef INTERFACE
1112#define INTERFACE IAMAudioRendererStats
1113DECLARE_INTERFACE_(IAMAudioRendererStats, IUnknown)
1114{
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;
1119};
1120#undef INTERFACE
1121#define INTERFACE IAMBufferNegotiation
1122DECLARE_INTERFACE_(IAMBufferNegotiation, IUnknown)
1123{
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;
1129};
1130#undef INTERFACE
1131#define INTERFACE IAMCameraControl
1132DECLARE_INTERFACE_(IAMCameraControl, IUnknown)
1133{
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;
1140};
1141#undef INTERFACE
1142
1143#define INTERFACE IAMCertifiedOutputProtection
1144DECLARE_INTERFACE_(IAMCertifiedOutputProtection, IUnknown)
1145{
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;
1153};
1154#undef INTERFACE
1155
1156#ifdef __cplusplus
1157}
1158#endif
1159#endif
Note: See TracBrowser for help on using the repository browser.