3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
6 /* File created by MIDL compiler version 7.00.0555 */
7 /* at Tue Sep 07 12:31:45 2010
9 /* Compiler settings for video\DeckLinkAPI.idl:
10 Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555
11 protocol : dce , ms_ext, c_ext, robust
12 error checks: allocation ref bounds_check enum stub_data
13 VC __declspec() decoration level:
14 __declspec(uuid()), __declspec(selectany), __declspec(novtable)
15 DECLSPEC_UUID(), MIDL_INTERFACE()
17 /* @@MIDL_FILE_HEADING( ) */
19 //#pragma warning( disable: 4049 ) /* more than 64k source lines */
22 /* verify that the <rpcndr.h> version is high enough to compile this file*/
23 #ifndef __REQUIRED_RPCNDR_H_VERSION__
24 #define __REQUIRED_RPCNDR_H_VERSION__ 475
30 #ifndef __RPCNDR_H_VERSION__
31 #error this stub requires an updated version of <rpcndr.h>
32 #endif // __RPCNDR_H_VERSION__
35 #ifndef __DeckLinkAPI_h_h__
36 #define __DeckLinkAPI_h_h__
38 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
42 /* Forward Declarations */
44 #ifndef __IDeckLinkVideoOutputCallback_FWD_DEFINED__
45 #define __IDeckLinkVideoOutputCallback_FWD_DEFINED__
46 typedef interface IDeckLinkVideoOutputCallback IDeckLinkVideoOutputCallback;
47 #endif /* __IDeckLinkVideoOutputCallback_FWD_DEFINED__ */
50 #ifndef __IDeckLinkInputCallback_FWD_DEFINED__
51 #define __IDeckLinkInputCallback_FWD_DEFINED__
52 typedef interface IDeckLinkInputCallback IDeckLinkInputCallback;
53 #endif /* __IDeckLinkInputCallback_FWD_DEFINED__ */
56 #ifndef __IDeckLinkMemoryAllocator_FWD_DEFINED__
57 #define __IDeckLinkMemoryAllocator_FWD_DEFINED__
58 typedef interface IDeckLinkMemoryAllocator IDeckLinkMemoryAllocator;
59 #endif /* __IDeckLinkMemoryAllocator_FWD_DEFINED__ */
62 #ifndef __IDeckLinkAudioOutputCallback_FWD_DEFINED__
63 #define __IDeckLinkAudioOutputCallback_FWD_DEFINED__
64 typedef interface IDeckLinkAudioOutputCallback IDeckLinkAudioOutputCallback;
65 #endif /* __IDeckLinkAudioOutputCallback_FWD_DEFINED__ */
68 #ifndef __IDeckLinkIterator_FWD_DEFINED__
69 #define __IDeckLinkIterator_FWD_DEFINED__
70 typedef interface IDeckLinkIterator IDeckLinkIterator;
71 #endif /* __IDeckLinkIterator_FWD_DEFINED__ */
74 #ifndef __IDeckLinkAPIInformation_FWD_DEFINED__
75 #define __IDeckLinkAPIInformation_FWD_DEFINED__
76 typedef interface IDeckLinkAPIInformation IDeckLinkAPIInformation;
77 #endif /* __IDeckLinkAPIInformation_FWD_DEFINED__ */
80 #ifndef __IDeckLinkDisplayModeIterator_FWD_DEFINED__
81 #define __IDeckLinkDisplayModeIterator_FWD_DEFINED__
82 typedef interface IDeckLinkDisplayModeIterator IDeckLinkDisplayModeIterator;
83 #endif /* __IDeckLinkDisplayModeIterator_FWD_DEFINED__ */
86 #ifndef __IDeckLinkDisplayMode_FWD_DEFINED__
87 #define __IDeckLinkDisplayMode_FWD_DEFINED__
88 typedef interface IDeckLinkDisplayMode IDeckLinkDisplayMode;
89 #endif /* __IDeckLinkDisplayMode_FWD_DEFINED__ */
92 #ifndef __IDeckLink_FWD_DEFINED__
93 #define __IDeckLink_FWD_DEFINED__
94 typedef interface IDeckLink IDeckLink;
95 #endif /* __IDeckLink_FWD_DEFINED__ */
98 #ifndef __IDeckLinkOutput_FWD_DEFINED__
99 #define __IDeckLinkOutput_FWD_DEFINED__
100 typedef interface IDeckLinkOutput IDeckLinkOutput;
101 #endif /* __IDeckLinkOutput_FWD_DEFINED__ */
104 #ifndef __IDeckLinkInput_FWD_DEFINED__
105 #define __IDeckLinkInput_FWD_DEFINED__
106 typedef interface IDeckLinkInput IDeckLinkInput;
107 #endif /* __IDeckLinkInput_FWD_DEFINED__ */
110 #ifndef __IDeckLinkTimecode_FWD_DEFINED__
111 #define __IDeckLinkTimecode_FWD_DEFINED__
112 typedef interface IDeckLinkTimecode IDeckLinkTimecode;
113 #endif /* __IDeckLinkTimecode_FWD_DEFINED__ */
116 #ifndef __IDeckLinkVideoFrame_FWD_DEFINED__
117 #define __IDeckLinkVideoFrame_FWD_DEFINED__
118 typedef interface IDeckLinkVideoFrame IDeckLinkVideoFrame;
119 #endif /* __IDeckLinkVideoFrame_FWD_DEFINED__ */
122 #ifndef __IDeckLinkMutableVideoFrame_FWD_DEFINED__
123 #define __IDeckLinkMutableVideoFrame_FWD_DEFINED__
124 typedef interface IDeckLinkMutableVideoFrame IDeckLinkMutableVideoFrame;
125 #endif /* __IDeckLinkMutableVideoFrame_FWD_DEFINED__ */
128 #ifndef __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__
129 #define __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__
130 typedef interface IDeckLinkVideoFrame3DExtensions IDeckLinkVideoFrame3DExtensions;
131 #endif /* __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ */
134 #ifndef __IDeckLinkVideoInputFrame_FWD_DEFINED__
135 #define __IDeckLinkVideoInputFrame_FWD_DEFINED__
136 typedef interface IDeckLinkVideoInputFrame IDeckLinkVideoInputFrame;
137 #endif /* __IDeckLinkVideoInputFrame_FWD_DEFINED__ */
140 #ifndef __IDeckLinkVideoFrameAncillary_FWD_DEFINED__
141 #define __IDeckLinkVideoFrameAncillary_FWD_DEFINED__
142 typedef interface IDeckLinkVideoFrameAncillary IDeckLinkVideoFrameAncillary;
143 #endif /* __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ */
146 #ifndef __IDeckLinkAudioInputPacket_FWD_DEFINED__
147 #define __IDeckLinkAudioInputPacket_FWD_DEFINED__
148 typedef interface IDeckLinkAudioInputPacket IDeckLinkAudioInputPacket;
149 #endif /* __IDeckLinkAudioInputPacket_FWD_DEFINED__ */
152 #ifndef __IDeckLinkScreenPreviewCallback_FWD_DEFINED__
153 #define __IDeckLinkScreenPreviewCallback_FWD_DEFINED__
154 typedef interface IDeckLinkScreenPreviewCallback IDeckLinkScreenPreviewCallback;
155 #endif /* __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ */
158 #ifndef __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
159 #define __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
160 typedef interface IDeckLinkGLScreenPreviewHelper IDeckLinkGLScreenPreviewHelper;
161 #endif /* __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */
164 #ifndef __IDeckLinkConfiguration_FWD_DEFINED__
165 #define __IDeckLinkConfiguration_FWD_DEFINED__
166 typedef interface IDeckLinkConfiguration IDeckLinkConfiguration;
167 #endif /* __IDeckLinkConfiguration_FWD_DEFINED__ */
170 #ifndef __IDeckLinkAttributes_FWD_DEFINED__
171 #define __IDeckLinkAttributes_FWD_DEFINED__
172 typedef interface IDeckLinkAttributes IDeckLinkAttributes;
173 #endif /* __IDeckLinkAttributes_FWD_DEFINED__ */
176 #ifndef __IDeckLinkKeyer_FWD_DEFINED__
177 #define __IDeckLinkKeyer_FWD_DEFINED__
178 typedef interface IDeckLinkKeyer IDeckLinkKeyer;
179 #endif /* __IDeckLinkKeyer_FWD_DEFINED__ */
182 #ifndef __IDeckLinkVideoConversion_FWD_DEFINED__
183 #define __IDeckLinkVideoConversion_FWD_DEFINED__
184 typedef interface IDeckLinkVideoConversion IDeckLinkVideoConversion;
185 #endif /* __IDeckLinkVideoConversion_FWD_DEFINED__ */
188 #ifndef __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__
189 #define __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__
190 typedef interface IDeckLinkDeckControlStatusCallback IDeckLinkDeckControlStatusCallback;
191 #endif /* __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ */
194 #ifndef __IDeckLinkDeckControl_FWD_DEFINED__
195 #define __IDeckLinkDeckControl_FWD_DEFINED__
196 typedef interface IDeckLinkDeckControl IDeckLinkDeckControl;
197 #endif /* __IDeckLinkDeckControl_FWD_DEFINED__ */
200 #ifndef __CDeckLinkIterator_FWD_DEFINED__
201 #define __CDeckLinkIterator_FWD_DEFINED__
204 typedef class CDeckLinkIterator CDeckLinkIterator;
206 typedef struct CDeckLinkIterator CDeckLinkIterator;
207 #endif /* __cplusplus */
209 #endif /* __CDeckLinkIterator_FWD_DEFINED__ */
212 #ifndef __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
213 #define __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
216 typedef class CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;
218 typedef struct CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;
219 #endif /* __cplusplus */
221 #endif /* __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */
224 #ifndef __CDeckLinkVideoConversion_FWD_DEFINED__
225 #define __CDeckLinkVideoConversion_FWD_DEFINED__
228 typedef class CDeckLinkVideoConversion CDeckLinkVideoConversion;
230 typedef struct CDeckLinkVideoConversion CDeckLinkVideoConversion;
231 #endif /* __cplusplus */
233 #endif /* __CDeckLinkVideoConversion_FWD_DEFINED__ */
236 #ifndef __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__
237 #define __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__
238 typedef interface IDeckLinkDisplayModeIterator_v7_6 IDeckLinkDisplayModeIterator_v7_6;
239 #endif /* __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ */
242 #ifndef __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__
243 #define __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__
244 typedef interface IDeckLinkDisplayMode_v7_6 IDeckLinkDisplayMode_v7_6;
245 #endif /* __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ */
248 #ifndef __IDeckLinkOutput_v7_6_FWD_DEFINED__
249 #define __IDeckLinkOutput_v7_6_FWD_DEFINED__
250 typedef interface IDeckLinkOutput_v7_6 IDeckLinkOutput_v7_6;
251 #endif /* __IDeckLinkOutput_v7_6_FWD_DEFINED__ */
254 #ifndef __IDeckLinkInput_v7_6_FWD_DEFINED__
255 #define __IDeckLinkInput_v7_6_FWD_DEFINED__
256 typedef interface IDeckLinkInput_v7_6 IDeckLinkInput_v7_6;
257 #endif /* __IDeckLinkInput_v7_6_FWD_DEFINED__ */
260 #ifndef __IDeckLinkTimecode_v7_6_FWD_DEFINED__
261 #define __IDeckLinkTimecode_v7_6_FWD_DEFINED__
262 typedef interface IDeckLinkTimecode_v7_6 IDeckLinkTimecode_v7_6;
263 #endif /* __IDeckLinkTimecode_v7_6_FWD_DEFINED__ */
266 #ifndef __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__
267 #define __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__
268 typedef interface IDeckLinkVideoFrame_v7_6 IDeckLinkVideoFrame_v7_6;
269 #endif /* __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ */
272 #ifndef __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__
273 #define __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__
274 typedef interface IDeckLinkMutableVideoFrame_v7_6 IDeckLinkMutableVideoFrame_v7_6;
275 #endif /* __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ */
278 #ifndef __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__
279 #define __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__
280 typedef interface IDeckLinkVideoInputFrame_v7_6 IDeckLinkVideoInputFrame_v7_6;
281 #endif /* __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ */
284 #ifndef __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__
285 #define __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__
286 typedef interface IDeckLinkScreenPreviewCallback_v7_6 IDeckLinkScreenPreviewCallback_v7_6;
287 #endif /* __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ */
290 #ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
291 #define __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
292 typedef interface IDeckLinkGLScreenPreviewHelper_v7_6 IDeckLinkGLScreenPreviewHelper_v7_6;
293 #endif /* __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */
296 #ifndef __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__
297 #define __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__
298 typedef interface IDeckLinkVideoConversion_v7_6 IDeckLinkVideoConversion_v7_6;
299 #endif /* __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */
302 #ifndef __IDeckLinkConfiguration_v7_6_FWD_DEFINED__
303 #define __IDeckLinkConfiguration_v7_6_FWD_DEFINED__
304 typedef interface IDeckLinkConfiguration_v7_6 IDeckLinkConfiguration_v7_6;
305 #endif /* __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ */
308 #ifndef __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__
309 #define __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__
310 typedef interface IDeckLinkVideoOutputCallback_v7_6 IDeckLinkVideoOutputCallback_v7_6;
311 #endif /* __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__ */
314 #ifndef __IDeckLinkInputCallback_v7_6_FWD_DEFINED__
315 #define __IDeckLinkInputCallback_v7_6_FWD_DEFINED__
316 typedef interface IDeckLinkInputCallback_v7_6 IDeckLinkInputCallback_v7_6;
317 #endif /* __IDeckLinkInputCallback_v7_6_FWD_DEFINED__ */
320 #ifndef __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
321 #define __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
324 typedef class CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;
326 typedef struct CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;
327 #endif /* __cplusplus */
329 #endif /* __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */
332 #ifndef __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__
333 #define __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__
336 typedef class CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;
338 typedef struct CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;
339 #endif /* __cplusplus */
341 #endif /* __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */
344 #ifndef __IDeckLinkInputCallback_v7_3_FWD_DEFINED__
345 #define __IDeckLinkInputCallback_v7_3_FWD_DEFINED__
346 typedef interface IDeckLinkInputCallback_v7_3 IDeckLinkInputCallback_v7_3;
347 #endif /* __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ */
350 #ifndef __IDeckLinkOutput_v7_3_FWD_DEFINED__
351 #define __IDeckLinkOutput_v7_3_FWD_DEFINED__
352 typedef interface IDeckLinkOutput_v7_3 IDeckLinkOutput_v7_3;
353 #endif /* __IDeckLinkOutput_v7_3_FWD_DEFINED__ */
356 #ifndef __IDeckLinkInput_v7_3_FWD_DEFINED__
357 #define __IDeckLinkInput_v7_3_FWD_DEFINED__
358 typedef interface IDeckLinkInput_v7_3 IDeckLinkInput_v7_3;
359 #endif /* __IDeckLinkInput_v7_3_FWD_DEFINED__ */
362 #ifndef __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__
363 #define __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__
364 typedef interface IDeckLinkVideoInputFrame_v7_3 IDeckLinkVideoInputFrame_v7_3;
365 #endif /* __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ */
368 #ifndef __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__
369 #define __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__
370 typedef interface IDeckLinkDisplayModeIterator_v7_1 IDeckLinkDisplayModeIterator_v7_1;
371 #endif /* __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ */
374 #ifndef __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__
375 #define __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__
376 typedef interface IDeckLinkDisplayMode_v7_1 IDeckLinkDisplayMode_v7_1;
377 #endif /* __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ */
380 #ifndef __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__
381 #define __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__
382 typedef interface IDeckLinkVideoFrame_v7_1 IDeckLinkVideoFrame_v7_1;
383 #endif /* __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ */
386 #ifndef __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__
387 #define __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__
388 typedef interface IDeckLinkVideoInputFrame_v7_1 IDeckLinkVideoInputFrame_v7_1;
389 #endif /* __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ */
392 #ifndef __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__
393 #define __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__
394 typedef interface IDeckLinkAudioInputPacket_v7_1 IDeckLinkAudioInputPacket_v7_1;
395 #endif /* __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ */
398 #ifndef __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__
399 #define __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__
400 typedef interface IDeckLinkVideoOutputCallback_v7_1 IDeckLinkVideoOutputCallback_v7_1;
401 #endif /* __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ */
404 #ifndef __IDeckLinkInputCallback_v7_1_FWD_DEFINED__
405 #define __IDeckLinkInputCallback_v7_1_FWD_DEFINED__
406 typedef interface IDeckLinkInputCallback_v7_1 IDeckLinkInputCallback_v7_1;
407 #endif /* __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ */
410 #ifndef __IDeckLinkOutput_v7_1_FWD_DEFINED__
411 #define __IDeckLinkOutput_v7_1_FWD_DEFINED__
412 typedef interface IDeckLinkOutput_v7_1 IDeckLinkOutput_v7_1;
413 #endif /* __IDeckLinkOutput_v7_1_FWD_DEFINED__ */
416 #ifndef __IDeckLinkInput_v7_1_FWD_DEFINED__
417 #define __IDeckLinkInput_v7_1_FWD_DEFINED__
418 typedef interface IDeckLinkInput_v7_1 IDeckLinkInput_v7_1;
419 #endif /* __IDeckLinkInput_v7_1_FWD_DEFINED__ */
422 /* header files for imported files */
431 #ifndef __DeckLinkAPI_LIBRARY_DEFINED__
432 #define __DeckLinkAPI_LIBRARY_DEFINED__
434 /* library DeckLinkAPI */
435 /* [helpstring][version][uuid] */
437 typedef LONGLONG BMDTimeValue;
439 typedef LONGLONG BMDTimeScale;
441 typedef unsigned long BMDTimecodeBCD;
443 typedef unsigned long BMDTimecodeUserBits;
445 typedef unsigned long BMDDisplayModeFlags;
446 typedef unsigned long BMDFrameFlags;
447 typedef unsigned long BMDVideoInputFlags;
448 typedef unsigned long BMDVideoInputFormatChangedEvents;
449 typedef unsigned long BMDDetectedVideoInputFormatFlags;
450 typedef unsigned long BMDTimecodeFlags;
451 typedef unsigned long BMDAnalogVideoFlags;
452 typedef unsigned long BMDDeckControlStatusFlags;
453 typedef unsigned long BMDDeckControlExportModeOpsFlags;
455 typedef enum _BMDDisplayModeFlags BMDDisplayModeFlags;
457 typedef enum _BMDFrameFlags BMDFrameFlags;
459 typedef enum _BMDVideoInputFlags BMDVideoInputFlags;
461 typedef enum _BMDVideoInputFormatChangedEvents BMDVideoInputFormatChangedEvents;
463 typedef enum _BMDDetectedVideoInputFormatFlags BMDDetectedVideoInputFormatFlags;
465 typedef enum _BMDTimecodeFlags BMDTimecodeFlags;
467 typedef enum _BMDAnalogVideoFlags BMDAnalogVideoFlags;
469 typedef enum _BMDDeckControlStatusFlags BMDDeckControlStatusFlags;
471 typedef enum _BMDDeckControlExportModeOpsFlags BMDDeckControlExportModeOpsFlags;
474 typedef /* [v1_enum] */
476 { bmdModeNTSC = 0x6e747363,
477 bmdModeNTSC2398 = 0x6e743233,
478 bmdModePAL = 0x70616c20,
479 bmdModeHD1080p2398 = 0x32337073,
480 bmdModeHD1080p24 = 0x32347073,
481 bmdModeHD1080p25 = 0x48703235,
482 bmdModeHD1080p2997 = 0x48703239,
483 bmdModeHD1080p30 = 0x48703330,
484 bmdModeHD1080i50 = 0x48693530,
485 bmdModeHD1080i5994 = 0x48693539,
486 bmdModeHD1080i6000 = 0x48693630,
487 bmdModeHD1080p50 = 0x48703530,
488 bmdModeHD1080p5994 = 0x48703539,
489 bmdModeHD1080p6000 = 0x48703630,
490 bmdModeHD720p50 = 0x68703530,
491 bmdModeHD720p5994 = 0x68703539,
492 bmdModeHD720p60 = 0x68703630,
493 bmdMode2k2398 = 0x326b3233,
494 bmdMode2k24 = 0x326b3234,
495 bmdMode2k25 = 0x326b3235
498 typedef /* [v1_enum] */
499 enum _BMDFieldDominance
500 { bmdUnknownFieldDominance = 0,
501 bmdLowerFieldFirst = 0x6c6f7772,
502 bmdUpperFieldFirst = 0x75707072,
503 bmdProgressiveFrame = 0x70726f67,
504 bmdProgressiveSegmentedFrame = 0x70736620
507 typedef /* [v1_enum] */
509 { bmdFormat8BitYUV = 0x32767579,
510 bmdFormat10BitYUV = 0x76323130,
511 bmdFormat8BitARGB = 32,
512 bmdFormat8BitBGRA = 0x42475241,
513 bmdFormat10BitRGB = 0x72323130
517 enum _BMDDisplayModeFlags
518 { bmdDisplayModeSupports3D = ( 1 << 0 ) ,
519 bmdDisplayModeColorspaceRec601 = ( 1 << 1 ) ,
520 bmdDisplayModeColorspaceRec709 = ( 1 << 2 )
522 typedef /* [v1_enum] */
523 enum _BMDVideoOutputFlags
524 { bmdVideoOutputFlagDefault = 0,
525 bmdVideoOutputVANC = ( 1 << 0 ) ,
526 bmdVideoOutputVITC = ( 1 << 1 ) ,
527 bmdVideoOutputRP188 = ( 1 << 2 ) ,
528 bmdVideoOutputDualStream3D = ( 1 << 4 )
529 } BMDVideoOutputFlags;
533 { bmdFrameFlagDefault = 0,
534 bmdFrameFlagFlipVertical = ( 1 << 0 ) ,
535 bmdFrameHasNoInputSource = ( 1 << 31 )
538 enum _BMDVideoInputFlags
539 { bmdVideoInputFlagDefault = 0,
540 bmdVideoInputEnableFormatDetection = ( 1 << 0 ) ,
541 bmdVideoInputDualStream3D = ( 1 << 1 )
544 enum _BMDVideoInputFormatChangedEvents
545 { bmdVideoInputDisplayModeChanged = ( 1 << 0 ) ,
546 bmdVideoInputFieldDominanceChanged = ( 1 << 1 ) ,
547 bmdVideoInputColorspaceChanged = ( 1 << 2 )
550 enum _BMDDetectedVideoInputFormatFlags
551 { bmdDetectedVideoInputYCbCr422 = ( 1 << 0 ) ,
552 bmdDetectedVideoInputRGB444 = ( 1 << 1 )
554 typedef /* [v1_enum] */
555 enum _BMDOutputFrameCompletionResult
556 { bmdOutputFrameCompleted = 0,
557 bmdOutputFrameDisplayedLate = ( bmdOutputFrameCompleted + 1 ) ,
558 bmdOutputFrameDropped = ( bmdOutputFrameDisplayedLate + 1 ) ,
559 bmdOutputFrameFlushed = ( bmdOutputFrameDropped + 1 )
560 } BMDOutputFrameCompletionResult;
562 typedef /* [v1_enum] */
563 enum _BMDReferenceStatus
564 { bmdReferenceNotSupportedByHardware = ( 1 << 0 ) ,
565 bmdReferenceLocked = ( 1 << 1 )
566 } BMDReferenceStatus;
568 typedef /* [v1_enum] */
569 enum _BMDAudioSampleRate
570 { bmdAudioSampleRate48kHz = 48000
571 } BMDAudioSampleRate;
573 typedef /* [v1_enum] */
574 enum _BMDAudioSampleType
575 { bmdAudioSampleType16bitInteger = 16,
576 bmdAudioSampleType32bitInteger = 32
577 } BMDAudioSampleType;
579 typedef /* [v1_enum] */
580 enum _BMDAudioOutputStreamType
581 { bmdAudioOutputStreamContinuous = 0,
582 bmdAudioOutputStreamContinuousDontResample = ( bmdAudioOutputStreamContinuous + 1 ) ,
583 bmdAudioOutputStreamTimestamped = ( bmdAudioOutputStreamContinuousDontResample + 1 )
584 } BMDAudioOutputStreamType;
586 typedef /* [v1_enum] */
587 enum _BMDDisplayModeSupport
588 { bmdDisplayModeNotSupported = 0,
589 bmdDisplayModeSupported = ( bmdDisplayModeNotSupported + 1 ) ,
590 bmdDisplayModeSupportedWithConversion = ( bmdDisplayModeSupported + 1 )
591 } BMDDisplayModeSupport;
593 typedef /* [v1_enum] */
594 enum _BMDTimecodeFormat
595 { bmdTimecodeRP188 = 0x72703138,
596 bmdTimecodeVITC = 0x76697463,
597 bmdTimecodeSerial = 0x73657269
601 enum _BMDTimecodeFlags
602 { bmdTimecodeFlagDefault = 0,
603 bmdTimecodeIsDropFrame = ( 1 << 0 )
605 typedef /* [v1_enum] */
606 enum _BMDVideoConnection
607 { bmdVideoConnectionSDI = ( 1 << 0 ) ,
608 bmdVideoConnectionHDMI = ( 1 << 1 ) ,
609 bmdVideoConnectionOpticalSDI = ( 1 << 2 ) ,
610 bmdVideoConnectionComponent = ( 1 << 3 ) ,
611 bmdVideoConnectionComposite = ( 1 << 4 ) ,
612 bmdVideoConnectionSVideo = ( 1 << 5 )
613 } BMDVideoConnection;
616 enum _BMDAnalogVideoFlags
617 { bmdAnalogVideoFlagCompositeSetup75 = ( 1 << 0 ) ,
618 bmdAnalogVideoFlagComponentBetacamLevels = ( 1 << 1 )
620 typedef /* [v1_enum] */
621 enum _BMDAudioConnection
622 { bmdAudioConnectionEmbedded = 0x656d6264,
623 bmdAudioConnectionAESEBU = 0x61657320,
624 bmdAudioConnectionAnalog = 0x616e6c67
625 } BMDAudioConnection;
627 typedef /* [v1_enum] */
628 enum _BMDAudioOutputAnalogAESSwitch
629 { bmdAudioOutputSwitchAESEBU = 0x61657320,
630 bmdAudioOutputSwitchAnalog = 0x616e6c67
631 } BMDAudioOutputAnalogAESSwitch;
633 typedef /* [v1_enum] */
634 enum _BMDVideoOutputConversionMode
635 { bmdNoVideoOutputConversion = 0x6e6f6e65,
636 bmdVideoOutputLetterboxDownconversion = 0x6c746278,
637 bmdVideoOutputAnamorphicDownconversion = 0x616d7068,
638 bmdVideoOutputHD720toHD1080Conversion = 0x37323063,
639 bmdVideoOutputHardwareLetterboxDownconversion = 0x48576c62,
640 bmdVideoOutputHardwareAnamorphicDownconversion = 0x4857616d,
641 bmdVideoOutputHardwareCenterCutDownconversion = 0x48576363,
642 bmdVideoOutputHardware720p1080pCrossconversion = 0x78636170,
643 bmdVideoOutputHardwareAnamorphic720pUpconversion = 0x75613770,
644 bmdVideoOutputHardwareAnamorphic1080iUpconversion = 0x75613169,
645 bmdVideoOutputHardwareAnamorphic149To720pUpconversion = 0x75343770,
646 bmdVideoOutputHardwareAnamorphic149To1080iUpconversion = 0x75343169,
647 bmdVideoOutputHardwarePillarbox720pUpconversion = 0x75703770,
648 bmdVideoOutputHardwarePillarbox1080iUpconversion = 0x75703169
649 } BMDVideoOutputConversionMode;
651 typedef /* [v1_enum] */
652 enum _BMDVideoInputConversionMode
653 { bmdNoVideoInputConversion = 0x6e6f6e65,
654 bmdVideoInputLetterboxDownconversionFromHD1080 = 0x31306c62,
655 bmdVideoInputAnamorphicDownconversionFromHD1080 = 0x3130616d,
656 bmdVideoInputLetterboxDownconversionFromHD720 = 0x37326c62,
657 bmdVideoInputAnamorphicDownconversionFromHD720 = 0x3732616d,
658 bmdVideoInputLetterboxUpconversion = 0x6c627570,
659 bmdVideoInputAnamorphicUpconversion = 0x616d7570
660 } BMDVideoInputConversionMode;
662 typedef /* [v1_enum] */
663 enum _BMDVideo3DPackingFormat
664 { bmdVideo3DPackingSidebySideHalf = 0x73627368,
665 bmdVideo3DPackingLinebyLine = 0x6c62796c,
666 bmdVideo3DPackingTopAndBottom = 0x7461626f,
667 bmdVideo3DPackingLeftOnly = 0x6c656674,
668 bmdVideo3DPackingRightOnly = 0x72696768
669 } BMDVideo3DPackingFormat;
671 typedef /* [v1_enum] */
672 enum _BMDDeckLinkConfigurationID
673 { bmdDeckLinkConfigUse1080pNotPsF = 0x6670726f,
674 bmdDeckLinkConfigHDMI3DPackingFormat = 0x33647066,
675 bmdDeckLinkConfigAnalogAudioConsumerLevels = 0x6161636c,
676 bmdDeckLinkConfigFieldFlickerRemoval = 0x66646672,
677 bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion = 0x746f3539,
678 bmdDeckLinkConfig444SDIVideoOutput = 0x3434346f,
679 bmdDeckLinkConfig3GBpsVideoOutput = 0x33676273,
680 bmdDeckLinkConfigBlackVideoOutputDuringCapture = 0x62766f63,
681 bmdDeckLinkConfigLowLatencyVideoOutput = 0x6c6c766f,
682 bmdDeckLinkConfigVideoOutputConnection = 0x766f636e,
683 bmdDeckLinkConfigVideoOutputConversionMode = 0x766f636d,
684 bmdDeckLinkConfigAnalogVideoOutputFlags = 0x61766f66,
685 bmdDeckLinkConfigReferenceInputTimingOffset = 0x676c6f74,
686 bmdDeckLinkConfigVideoInputConnection = 0x7669636e,
687 bmdDeckLinkConfigAnalogVideoInputFlags = 0x61766966,
688 bmdDeckLinkConfigVideoInputConversionMode = 0x7669636d,
689 bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = 0x70646966,
690 bmdDeckLinkConfigVANCSourceLine1Mapping = 0x76736c31,
691 bmdDeckLinkConfigVANCSourceLine2Mapping = 0x76736c32,
692 bmdDeckLinkConfigVANCSourceLine3Mapping = 0x76736c33,
693 bmdDeckLinkConfigAudioInputConnection = 0x6169636e,
694 bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = 0x61697331,
695 bmdDeckLinkConfigAnalogAudioInputScaleChannel2 = 0x61697332,
696 bmdDeckLinkConfigAnalogAudioInputScaleChannel3 = 0x61697333,
697 bmdDeckLinkConfigAnalogAudioInputScaleChannel4 = 0x61697334,
698 bmdDeckLinkConfigDigitalAudioInputScale = 0x64616973,
699 bmdDeckLinkConfigAudioOutputAESAnalogSwitch = 0x616f6161,
700 bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = 0x616f7331,
701 bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = 0x616f7332,
702 bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = 0x616f7333,
703 bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = 0x616f7334,
704 bmdDeckLinkConfigDigitalAudioOutputScale = 0x64616f73
705 } BMDDeckLinkConfigurationID;
707 typedef /* [v1_enum] */
708 enum _BMDDeckLinkAttributeID
709 { BMDDeckLinkSupportsInternalKeying = 0x6b657969,
710 BMDDeckLinkSupportsExternalKeying = 0x6b657965,
711 BMDDeckLinkSupportsHDKeying = 0x6b657968,
712 BMDDeckLinkSupportsInputFormatDetection = 0x696e6664,
713 BMDDeckLinkHasReferenceInput = 0x6872696e,
714 BMDDeckLinkHasSerialPort = 0x68737074,
715 BMDDeckLinkMaximumAudioChannels = 0x6d616368,
716 BMDDeckLinkNumberOfSubDevices = 0x6e736264,
717 BMDDeckLinkSubDeviceIndex = 0x73756269,
718 BMDDeckLinkVideoOutputConnections = 0x766f636e,
719 BMDDeckLinkVideoInputConnections = 0x7669636e,
720 BMDDeckLinkSerialPortDeviceName = 0x736c706e
721 } BMDDeckLinkAttributeID;
723 typedef /* [v1_enum] */
724 enum _BMDDeckLinkAPIInformationID
725 { BMDDeckLinkAPIVersion = 0x76657273
726 } BMDDeckLinkAPIInformationID;
728 typedef /* [v1_enum] */
729 enum _BMDDeckControlMode
730 { bmdDeckControlNotOpened = 0x6e746f70,
731 bmdDeckControlVTRControlMode = 0x76747263,
732 bmdDeckControlExportMode = 0x6578706d,
733 bmdDeckControlCaptureMode = 0x6361706d
734 } BMDDeckControlMode;
736 typedef /* [v1_enum] */
737 enum _BMDDeckControlEvent
738 { bmdDeckControlAbortedEvent = 0x61627465,
739 bmdDeckControlPrepareForExportEvent = 0x70666565,
740 bmdDeckControlExportCompleteEvent = 0x65786365,
741 bmdDeckControlPrepareForCaptureEvent = 0x70666365,
742 bmdDeckControlCaptureCompleteEvent = 0x63636576
743 } BMDDeckControlEvent;
745 typedef /* [v1_enum] */
746 enum _BMDDeckControlVTRControlState
747 { bmdDeckControlNotInVTRControlMode = 0x6e76636d,
748 bmdDeckControlVTRControlPlaying = 0x76747270,
749 bmdDeckControlVTRControlRecording = 0x76747272,
750 bmdDeckControlVTRControlStill = 0x76747261,
751 bmdDeckControlVTRControlSeeking = 0x76747273,
752 bmdDeckControlVTRControlStopped = 0x7674726f
753 } BMDDeckControlVTRControlState;
756 enum _BMDDeckControlStatusFlags
757 { bmdDeckControlStatusDeckConnected = ( 1 << 0 ) ,
758 bmdDeckControlStatusRemoteMode = ( 1 << 1 ) ,
759 bmdDeckControlStatusRecordInhibited = ( 1 << 2 ) ,
760 bmdDeckControlStatusCassetteOut = ( 1 << 3 )
763 enum _BMDDeckControlExportModeOpsFlags
764 { bmdDeckControlExportModeInsertVideo = ( 1 << 0 ) ,
765 bmdDeckControlExportModeInsertAudio1 = ( 1 << 1 ) ,
766 bmdDeckControlExportModeInsertAudio2 = ( 1 << 2 ) ,
767 bmdDeckControlExportModeInsertAudio3 = ( 1 << 3 ) ,
768 bmdDeckControlExportModeInsertAudio4 = ( 1 << 4 ) ,
769 bmdDeckControlExportModeInsertAudio5 = ( 1 << 5 ) ,
770 bmdDeckControlExportModeInsertAudio6 = ( 1 << 6 ) ,
771 bmdDeckControlExportModeInsertAudio7 = ( 1 << 7 ) ,
772 bmdDeckControlExportModeInsertAudio8 = ( 1 << 8 ) ,
773 bmdDeckControlExportModeInsertAudio9 = ( 1 << 9 ) ,
774 bmdDeckControlExportModeInsertAudio10 = ( 1 << 10 ) ,
775 bmdDeckControlExportModeInsertAudio11 = ( 1 << 11 ) ,
776 bmdDeckControlExportModeInsertAudio12 = ( 1 << 12 ) ,
777 bmdDeckControlExportModeInsertTimeCode = ( 1 << 13 ) ,
778 bmdDeckControlExportModeInsertAssemble = ( 1 << 14 ) ,
779 bmdDeckControlExportModeInsertPreview = ( 1 << 15 ) ,
780 bmdDeckControlUseManualExport = ( 1 << 16 )
782 typedef /* [v1_enum] */
783 enum _BMDDeckControlError
784 { bmdDeckControlNoError = 0x6e6f6572,
785 bmdDeckControlModeError = 0x6d6f6572,
786 bmdDeckControlMissedInPointError = 0x6d696572,
787 bmdDeckControlDeckTimeoutError = 0x64746572,
788 bmdDeckControlCommandFailedError = 0x63666572,
789 bmdDeckControlDeviceAlreadyOpenedError = 0x64616c6f,
790 bmdDeckControlFailedToOpenDeviceError = 0x66646572,
791 bmdDeckControlInLocalModeError = 0x6c6d6572,
792 bmdDeckControlEndOfTapeError = 0x65746572,
793 bmdDeckControlUserAbortError = 0x75616572,
794 bmdDeckControlNoTapeInDeckError = 0x6e746572,
795 bmdDeckControlNoVideoFromCardError = 0x6e766663,
796 bmdDeckControlNoCommunicationError = 0x6e636f6d,
797 bmdDeckControlUnknownError = 0x756e6572
798 } BMDDeckControlError;
800 typedef /* [v1_enum] */
801 enum _BMD3DPreviewFormat
802 { bmd3DPreviewFormatDefault = 0x64656661,
803 bmd3DPreviewFormatLeftOnly = 0x6c656674,
804 bmd3DPreviewFormatRightOnly = 0x72696768,
805 bmd3DPreviewFormatSideBySide = 0x73696465,
806 bmd3DPreviewFormatTopBottom = 0x746f7062
807 } BMD3DPreviewFormat;
835 typedef /* [v1_enum] */
836 enum _BMDVideoConnection_v7_6
837 { bmdVideoConnectionSDI_v7_6 = 0x73646920,
838 bmdVideoConnectionHDMI_v7_6 = 0x68646d69,
839 bmdVideoConnectionOpticalSDI_v7_6 = 0x6f707469,
840 bmdVideoConnectionComponent_v7_6 = 0x63706e74,
841 bmdVideoConnectionComposite_v7_6 = 0x636d7374,
842 bmdVideoConnectionSVideo_v7_6 = 0x73766964
843 } BMDVideoConnection_v7_6;
867 EXTERN_C const IID LIBID_DeckLinkAPI;
869 #ifndef __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__
870 #define __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__
872 /* interface IDeckLinkVideoOutputCallback */
873 /* [helpstring][uuid][object] */
876 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback;
878 #if defined(__cplusplus) && !defined(CINTERFACE)
880 MIDL_INTERFACE("20AA5225-1958-47CB-820B-80A8D521A6EE")
881 IDeckLinkVideoOutputCallback : public IUnknown
884 virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(
885 /* [in] */ IDeckLinkVideoFrame *completedFrame,
886 /* [in] */ BMDOutputFrameCompletionResult result) = 0;
888 virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;
892 #else /* C style interface */
894 typedef struct IDeckLinkVideoOutputCallbackVtbl
898 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
899 IDeckLinkVideoOutputCallback * This,
900 /* [in] */ REFIID riid,
901 /* [annotation][iid_is][out] */
902 __RPC__deref_out void **ppvObject);
904 ULONG ( STDMETHODCALLTYPE *AddRef )(
905 IDeckLinkVideoOutputCallback * This);
907 ULONG ( STDMETHODCALLTYPE *Release )(
908 IDeckLinkVideoOutputCallback * This);
910 HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )(
911 IDeckLinkVideoOutputCallback * This,
912 /* [in] */ IDeckLinkVideoFrame *completedFrame,
913 /* [in] */ BMDOutputFrameCompletionResult result);
915 HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )(
916 IDeckLinkVideoOutputCallback * This);
919 } IDeckLinkVideoOutputCallbackVtbl;
921 interface IDeckLinkVideoOutputCallback
923 CONST_VTBL struct IDeckLinkVideoOutputCallbackVtbl *lpVtbl;
931 #define IDeckLinkVideoOutputCallback_QueryInterface(This,riid,ppvObject) \
932 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
934 #define IDeckLinkVideoOutputCallback_AddRef(This) \
935 ( (This)->lpVtbl -> AddRef(This) )
937 #define IDeckLinkVideoOutputCallback_Release(This) \
938 ( (This)->lpVtbl -> Release(This) )
941 #define IDeckLinkVideoOutputCallback_ScheduledFrameCompleted(This,completedFrame,result) \
942 ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) )
944 #define IDeckLinkVideoOutputCallback_ScheduledPlaybackHasStopped(This) \
945 ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) )
947 #endif /* COBJMACROS */
950 #endif /* C style interface */
955 #endif /* __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ */
958 #ifndef __IDeckLinkInputCallback_INTERFACE_DEFINED__
959 #define __IDeckLinkInputCallback_INTERFACE_DEFINED__
961 /* interface IDeckLinkInputCallback */
962 /* [helpstring][uuid][object] */
965 EXTERN_C const IID IID_IDeckLinkInputCallback;
967 #if defined(__cplusplus) && !defined(CINTERFACE)
969 MIDL_INTERFACE("DD04E5EC-7415-42AB-AE4A-E80C4DFC044A")
970 IDeckLinkInputCallback : public IUnknown
973 virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(
974 /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
975 /* [in] */ IDeckLinkDisplayMode *newDisplayMode,
976 /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
978 virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(
979 /* [in] */ IDeckLinkVideoInputFrame *videoFrame,
980 /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;
984 #else /* C style interface */
986 typedef struct IDeckLinkInputCallbackVtbl
990 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
991 IDeckLinkInputCallback * This,
992 /* [in] */ REFIID riid,
993 /* [annotation][iid_is][out] */
994 __RPC__deref_out void **ppvObject);
996 ULONG ( STDMETHODCALLTYPE *AddRef )(
997 IDeckLinkInputCallback * This);
999 ULONG ( STDMETHODCALLTYPE *Release )(
1000 IDeckLinkInputCallback * This);
1002 HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )(
1003 IDeckLinkInputCallback * This,
1004 /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
1005 /* [in] */ IDeckLinkDisplayMode *newDisplayMode,
1006 /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
1008 HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(
1009 IDeckLinkInputCallback * This,
1010 /* [in] */ IDeckLinkVideoInputFrame *videoFrame,
1011 /* [in] */ IDeckLinkAudioInputPacket *audioPacket);
1014 } IDeckLinkInputCallbackVtbl;
1016 interface IDeckLinkInputCallback
1018 CONST_VTBL struct IDeckLinkInputCallbackVtbl *lpVtbl;
1026 #define IDeckLinkInputCallback_QueryInterface(This,riid,ppvObject) \
1027 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1029 #define IDeckLinkInputCallback_AddRef(This) \
1030 ( (This)->lpVtbl -> AddRef(This) )
1032 #define IDeckLinkInputCallback_Release(This) \
1033 ( (This)->lpVtbl -> Release(This) )
1036 #define IDeckLinkInputCallback_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \
1037 ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )
1039 #define IDeckLinkInputCallback_VideoInputFrameArrived(This,videoFrame,audioPacket) \
1040 ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )
1042 #endif /* COBJMACROS */
1045 #endif /* C style interface */
1050 #endif /* __IDeckLinkInputCallback_INTERFACE_DEFINED__ */
1053 #ifndef __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__
1054 #define __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__
1056 /* interface IDeckLinkMemoryAllocator */
1057 /* [helpstring][local][uuid][object] */
1060 EXTERN_C const IID IID_IDeckLinkMemoryAllocator;
1062 #if defined(__cplusplus) && !defined(CINTERFACE)
1064 MIDL_INTERFACE("B36EB6E7-9D29-4AA8-92EF-843B87A289E8")
1065 IDeckLinkMemoryAllocator : public IUnknown
1068 virtual HRESULT STDMETHODCALLTYPE AllocateBuffer(
1069 /* [in] */ unsigned long bufferSize,
1070 /* [out] */ void **allocatedBuffer) = 0;
1072 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
1073 /* [in] */ void *buffer) = 0;
1075 virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;
1077 virtual HRESULT STDMETHODCALLTYPE Decommit( void) = 0;
1081 #else /* C style interface */
1083 typedef struct IDeckLinkMemoryAllocatorVtbl
1087 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1088 IDeckLinkMemoryAllocator * This,
1089 /* [in] */ REFIID riid,
1090 /* [annotation][iid_is][out] */
1091 __RPC__deref_out void **ppvObject);
1093 ULONG ( STDMETHODCALLTYPE *AddRef )(
1094 IDeckLinkMemoryAllocator * This);
1096 ULONG ( STDMETHODCALLTYPE *Release )(
1097 IDeckLinkMemoryAllocator * This);
1099 HRESULT ( STDMETHODCALLTYPE *AllocateBuffer )(
1100 IDeckLinkMemoryAllocator * This,
1101 /* [in] */ unsigned long bufferSize,
1102 /* [out] */ void **allocatedBuffer);
1104 HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )(
1105 IDeckLinkMemoryAllocator * This,
1106 /* [in] */ void *buffer);
1108 HRESULT ( STDMETHODCALLTYPE *Commit )(
1109 IDeckLinkMemoryAllocator * This);
1111 HRESULT ( STDMETHODCALLTYPE *Decommit )(
1112 IDeckLinkMemoryAllocator * This);
1115 } IDeckLinkMemoryAllocatorVtbl;
1117 interface IDeckLinkMemoryAllocator
1119 CONST_VTBL struct IDeckLinkMemoryAllocatorVtbl *lpVtbl;
1127 #define IDeckLinkMemoryAllocator_QueryInterface(This,riid,ppvObject) \
1128 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1130 #define IDeckLinkMemoryAllocator_AddRef(This) \
1131 ( (This)->lpVtbl -> AddRef(This) )
1133 #define IDeckLinkMemoryAllocator_Release(This) \
1134 ( (This)->lpVtbl -> Release(This) )
1137 #define IDeckLinkMemoryAllocator_AllocateBuffer(This,bufferSize,allocatedBuffer) \
1138 ( (This)->lpVtbl -> AllocateBuffer(This,bufferSize,allocatedBuffer) )
1140 #define IDeckLinkMemoryAllocator_ReleaseBuffer(This,buffer) \
1141 ( (This)->lpVtbl -> ReleaseBuffer(This,buffer) )
1143 #define IDeckLinkMemoryAllocator_Commit(This) \
1144 ( (This)->lpVtbl -> Commit(This) )
1146 #define IDeckLinkMemoryAllocator_Decommit(This) \
1147 ( (This)->lpVtbl -> Decommit(This) )
1149 #endif /* COBJMACROS */
1152 #endif /* C style interface */
1157 #endif /* __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ */
1160 #ifndef __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__
1161 #define __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__
1163 /* interface IDeckLinkAudioOutputCallback */
1164 /* [helpstring][local][uuid][object] */
1167 EXTERN_C const IID IID_IDeckLinkAudioOutputCallback;
1169 #if defined(__cplusplus) && !defined(CINTERFACE)
1171 MIDL_INTERFACE("403C681B-7F46-4A12-B993-2BB127084EE6")
1172 IDeckLinkAudioOutputCallback : public IUnknown
1175 virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples(
1176 /* [in] */ BOOL preroll) = 0;
1180 #else /* C style interface */
1182 typedef struct IDeckLinkAudioOutputCallbackVtbl
1186 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1187 IDeckLinkAudioOutputCallback * This,
1188 /* [in] */ REFIID riid,
1189 /* [annotation][iid_is][out] */
1190 __RPC__deref_out void **ppvObject);
1192 ULONG ( STDMETHODCALLTYPE *AddRef )(
1193 IDeckLinkAudioOutputCallback * This);
1195 ULONG ( STDMETHODCALLTYPE *Release )(
1196 IDeckLinkAudioOutputCallback * This);
1198 HRESULT ( STDMETHODCALLTYPE *RenderAudioSamples )(
1199 IDeckLinkAudioOutputCallback * This,
1200 /* [in] */ BOOL preroll);
1203 } IDeckLinkAudioOutputCallbackVtbl;
1205 interface IDeckLinkAudioOutputCallback
1207 CONST_VTBL struct IDeckLinkAudioOutputCallbackVtbl *lpVtbl;
1215 #define IDeckLinkAudioOutputCallback_QueryInterface(This,riid,ppvObject) \
1216 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1218 #define IDeckLinkAudioOutputCallback_AddRef(This) \
1219 ( (This)->lpVtbl -> AddRef(This) )
1221 #define IDeckLinkAudioOutputCallback_Release(This) \
1222 ( (This)->lpVtbl -> Release(This) )
1225 #define IDeckLinkAudioOutputCallback_RenderAudioSamples(This,preroll) \
1226 ( (This)->lpVtbl -> RenderAudioSamples(This,preroll) )
1228 #endif /* COBJMACROS */
1231 #endif /* C style interface */
1236 #endif /* __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ */
1239 #ifndef __IDeckLinkIterator_INTERFACE_DEFINED__
1240 #define __IDeckLinkIterator_INTERFACE_DEFINED__
1242 /* interface IDeckLinkIterator */
1243 /* [helpstring][uuid][object] */
1246 EXTERN_C const IID IID_IDeckLinkIterator;
1248 #if defined(__cplusplus) && !defined(CINTERFACE)
1250 MIDL_INTERFACE("74E936FC-CC28-4A67-81A0-1E94E52D4E69")
1251 IDeckLinkIterator : public IUnknown
1254 virtual HRESULT STDMETHODCALLTYPE Next(
1255 /* [out] */ IDeckLink **deckLinkInstance) = 0;
1259 #else /* C style interface */
1261 typedef struct IDeckLinkIteratorVtbl
1265 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1266 IDeckLinkIterator * This,
1267 /* [in] */ REFIID riid,
1268 /* [annotation][iid_is][out] */
1269 __RPC__deref_out void **ppvObject);
1271 ULONG ( STDMETHODCALLTYPE *AddRef )(
1272 IDeckLinkIterator * This);
1274 ULONG ( STDMETHODCALLTYPE *Release )(
1275 IDeckLinkIterator * This);
1277 HRESULT ( STDMETHODCALLTYPE *Next )(
1278 IDeckLinkIterator * This,
1279 /* [out] */ IDeckLink **deckLinkInstance);
1282 } IDeckLinkIteratorVtbl;
1284 interface IDeckLinkIterator
1286 CONST_VTBL struct IDeckLinkIteratorVtbl *lpVtbl;
1294 #define IDeckLinkIterator_QueryInterface(This,riid,ppvObject) \
1295 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1297 #define IDeckLinkIterator_AddRef(This) \
1298 ( (This)->lpVtbl -> AddRef(This) )
1300 #define IDeckLinkIterator_Release(This) \
1301 ( (This)->lpVtbl -> Release(This) )
1304 #define IDeckLinkIterator_Next(This,deckLinkInstance) \
1305 ( (This)->lpVtbl -> Next(This,deckLinkInstance) )
1307 #endif /* COBJMACROS */
1310 #endif /* C style interface */
1315 #endif /* __IDeckLinkIterator_INTERFACE_DEFINED__ */
1318 #ifndef __IDeckLinkAPIInformation_INTERFACE_DEFINED__
1319 #define __IDeckLinkAPIInformation_INTERFACE_DEFINED__
1321 /* interface IDeckLinkAPIInformation */
1322 /* [helpstring][uuid][object] */
1325 EXTERN_C const IID IID_IDeckLinkAPIInformation;
1327 #if defined(__cplusplus) && !defined(CINTERFACE)
1329 MIDL_INTERFACE("7BEA3C68-730D-4322-AF34-8A7152B532A4")
1330 IDeckLinkAPIInformation : public IUnknown
1333 virtual HRESULT STDMETHODCALLTYPE GetFlag(
1334 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
1335 /* [out] */ BOOL *value) = 0;
1337 virtual HRESULT STDMETHODCALLTYPE GetInt(
1338 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
1339 /* [out] */ LONGLONG *value) = 0;
1341 virtual HRESULT STDMETHODCALLTYPE GetFloat(
1342 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
1343 /* [out] */ double *value) = 0;
1345 virtual HRESULT STDMETHODCALLTYPE GetString(
1346 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
1347 /* [out] */ BSTR *value) = 0;
1351 #else /* C style interface */
1353 typedef struct IDeckLinkAPIInformationVtbl
1357 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1358 IDeckLinkAPIInformation * This,
1359 /* [in] */ REFIID riid,
1360 /* [annotation][iid_is][out] */
1361 __RPC__deref_out void **ppvObject);
1363 ULONG ( STDMETHODCALLTYPE *AddRef )(
1364 IDeckLinkAPIInformation * This);
1366 ULONG ( STDMETHODCALLTYPE *Release )(
1367 IDeckLinkAPIInformation * This);
1369 HRESULT ( STDMETHODCALLTYPE *GetFlag )(
1370 IDeckLinkAPIInformation * This,
1371 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
1372 /* [out] */ BOOL *value);
1374 HRESULT ( STDMETHODCALLTYPE *GetInt )(
1375 IDeckLinkAPIInformation * This,
1376 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
1377 /* [out] */ LONGLONG *value);
1379 HRESULT ( STDMETHODCALLTYPE *GetFloat )(
1380 IDeckLinkAPIInformation * This,
1381 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
1382 /* [out] */ double *value);
1384 HRESULT ( STDMETHODCALLTYPE *GetString )(
1385 IDeckLinkAPIInformation * This,
1386 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
1387 /* [out] */ BSTR *value);
1390 } IDeckLinkAPIInformationVtbl;
1392 interface IDeckLinkAPIInformation
1394 CONST_VTBL struct IDeckLinkAPIInformationVtbl *lpVtbl;
1402 #define IDeckLinkAPIInformation_QueryInterface(This,riid,ppvObject) \
1403 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1405 #define IDeckLinkAPIInformation_AddRef(This) \
1406 ( (This)->lpVtbl -> AddRef(This) )
1408 #define IDeckLinkAPIInformation_Release(This) \
1409 ( (This)->lpVtbl -> Release(This) )
1412 #define IDeckLinkAPIInformation_GetFlag(This,cfgID,value) \
1413 ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
1415 #define IDeckLinkAPIInformation_GetInt(This,cfgID,value) \
1416 ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
1418 #define IDeckLinkAPIInformation_GetFloat(This,cfgID,value) \
1419 ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
1421 #define IDeckLinkAPIInformation_GetString(This,cfgID,value) \
1422 ( (This)->lpVtbl -> GetString(This,cfgID,value) )
1424 #endif /* COBJMACROS */
1427 #endif /* C style interface */
1432 #endif /* __IDeckLinkAPIInformation_INTERFACE_DEFINED__ */
1435 #ifndef __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__
1436 #define __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__
1438 /* interface IDeckLinkDisplayModeIterator */
1439 /* [helpstring][uuid][object] */
1442 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator;
1444 #if defined(__cplusplus) && !defined(CINTERFACE)
1446 MIDL_INTERFACE("9C88499F-F601-4021-B80B-032E4EB41C35")
1447 IDeckLinkDisplayModeIterator : public IUnknown
1450 virtual HRESULT STDMETHODCALLTYPE Next(
1451 /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0;
1455 #else /* C style interface */
1457 typedef struct IDeckLinkDisplayModeIteratorVtbl
1461 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1462 IDeckLinkDisplayModeIterator * This,
1463 /* [in] */ REFIID riid,
1464 /* [annotation][iid_is][out] */
1465 __RPC__deref_out void **ppvObject);
1467 ULONG ( STDMETHODCALLTYPE *AddRef )(
1468 IDeckLinkDisplayModeIterator * This);
1470 ULONG ( STDMETHODCALLTYPE *Release )(
1471 IDeckLinkDisplayModeIterator * This);
1473 HRESULT ( STDMETHODCALLTYPE *Next )(
1474 IDeckLinkDisplayModeIterator * This,
1475 /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode);
1478 } IDeckLinkDisplayModeIteratorVtbl;
1480 interface IDeckLinkDisplayModeIterator
1482 CONST_VTBL struct IDeckLinkDisplayModeIteratorVtbl *lpVtbl;
1490 #define IDeckLinkDisplayModeIterator_QueryInterface(This,riid,ppvObject) \
1491 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1493 #define IDeckLinkDisplayModeIterator_AddRef(This) \
1494 ( (This)->lpVtbl -> AddRef(This) )
1496 #define IDeckLinkDisplayModeIterator_Release(This) \
1497 ( (This)->lpVtbl -> Release(This) )
1500 #define IDeckLinkDisplayModeIterator_Next(This,deckLinkDisplayMode) \
1501 ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) )
1503 #endif /* COBJMACROS */
1506 #endif /* C style interface */
1511 #endif /* __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ */
1514 #ifndef __IDeckLinkDisplayMode_INTERFACE_DEFINED__
1515 #define __IDeckLinkDisplayMode_INTERFACE_DEFINED__
1517 /* interface IDeckLinkDisplayMode */
1518 /* [helpstring][uuid][object] */
1521 EXTERN_C const IID IID_IDeckLinkDisplayMode;
1523 #if defined(__cplusplus) && !defined(CINTERFACE)
1525 MIDL_INTERFACE("3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78")
1526 IDeckLinkDisplayMode : public IUnknown
1529 virtual HRESULT STDMETHODCALLTYPE GetName(
1530 /* [out] */ BSTR *name) = 0;
1532 virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
1534 virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
1536 virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
1538 virtual HRESULT STDMETHODCALLTYPE GetFrameRate(
1539 /* [out] */ BMDTimeValue *frameDuration,
1540 /* [out] */ BMDTimeScale *timeScale) = 0;
1542 virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;
1544 virtual BMDDisplayModeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
1548 #else /* C style interface */
1550 typedef struct IDeckLinkDisplayModeVtbl
1554 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1555 IDeckLinkDisplayMode * This,
1556 /* [in] */ REFIID riid,
1557 /* [annotation][iid_is][out] */
1558 __RPC__deref_out void **ppvObject);
1560 ULONG ( STDMETHODCALLTYPE *AddRef )(
1561 IDeckLinkDisplayMode * This);
1563 ULONG ( STDMETHODCALLTYPE *Release )(
1564 IDeckLinkDisplayMode * This);
1566 HRESULT ( STDMETHODCALLTYPE *GetName )(
1567 IDeckLinkDisplayMode * This,
1568 /* [out] */ BSTR *name);
1570 BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(
1571 IDeckLinkDisplayMode * This);
1573 long ( STDMETHODCALLTYPE *GetWidth )(
1574 IDeckLinkDisplayMode * This);
1576 long ( STDMETHODCALLTYPE *GetHeight )(
1577 IDeckLinkDisplayMode * This);
1579 HRESULT ( STDMETHODCALLTYPE *GetFrameRate )(
1580 IDeckLinkDisplayMode * This,
1581 /* [out] */ BMDTimeValue *frameDuration,
1582 /* [out] */ BMDTimeScale *timeScale);
1584 BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )(
1585 IDeckLinkDisplayMode * This);
1587 BMDDisplayModeFlags ( STDMETHODCALLTYPE *GetFlags )(
1588 IDeckLinkDisplayMode * This);
1591 } IDeckLinkDisplayModeVtbl;
1593 interface IDeckLinkDisplayMode
1595 CONST_VTBL struct IDeckLinkDisplayModeVtbl *lpVtbl;
1603 #define IDeckLinkDisplayMode_QueryInterface(This,riid,ppvObject) \
1604 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1606 #define IDeckLinkDisplayMode_AddRef(This) \
1607 ( (This)->lpVtbl -> AddRef(This) )
1609 #define IDeckLinkDisplayMode_Release(This) \
1610 ( (This)->lpVtbl -> Release(This) )
1613 #define IDeckLinkDisplayMode_GetName(This,name) \
1614 ( (This)->lpVtbl -> GetName(This,name) )
1616 #define IDeckLinkDisplayMode_GetDisplayMode(This) \
1617 ( (This)->lpVtbl -> GetDisplayMode(This) )
1619 #define IDeckLinkDisplayMode_GetWidth(This) \
1620 ( (This)->lpVtbl -> GetWidth(This) )
1622 #define IDeckLinkDisplayMode_GetHeight(This) \
1623 ( (This)->lpVtbl -> GetHeight(This) )
1625 #define IDeckLinkDisplayMode_GetFrameRate(This,frameDuration,timeScale) \
1626 ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) )
1628 #define IDeckLinkDisplayMode_GetFieldDominance(This) \
1629 ( (This)->lpVtbl -> GetFieldDominance(This) )
1631 #define IDeckLinkDisplayMode_GetFlags(This) \
1632 ( (This)->lpVtbl -> GetFlags(This) )
1634 #endif /* COBJMACROS */
1637 #endif /* C style interface */
1642 #endif /* __IDeckLinkDisplayMode_INTERFACE_DEFINED__ */
1645 #ifndef __IDeckLink_INTERFACE_DEFINED__
1646 #define __IDeckLink_INTERFACE_DEFINED__
1648 /* interface IDeckLink */
1649 /* [helpstring][uuid][object] */
1652 EXTERN_C const IID IID_IDeckLink;
1654 #if defined(__cplusplus) && !defined(CINTERFACE)
1656 MIDL_INTERFACE("62BFF75D-6569-4E55-8D4D-66AA03829ABC")
1657 IDeckLink : public IUnknown
1660 virtual HRESULT STDMETHODCALLTYPE GetModelName(
1661 /* [out] */ BSTR *modelName) = 0;
1665 #else /* C style interface */
1667 typedef struct IDeckLinkVtbl
1671 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1673 /* [in] */ REFIID riid,
1674 /* [annotation][iid_is][out] */
1675 __RPC__deref_out void **ppvObject);
1677 ULONG ( STDMETHODCALLTYPE *AddRef )(
1680 ULONG ( STDMETHODCALLTYPE *Release )(
1683 HRESULT ( STDMETHODCALLTYPE *GetModelName )(
1685 /* [out] */ BSTR *modelName);
1692 CONST_VTBL struct IDeckLinkVtbl *lpVtbl;
1700 #define IDeckLink_QueryInterface(This,riid,ppvObject) \
1701 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1703 #define IDeckLink_AddRef(This) \
1704 ( (This)->lpVtbl -> AddRef(This) )
1706 #define IDeckLink_Release(This) \
1707 ( (This)->lpVtbl -> Release(This) )
1710 #define IDeckLink_GetModelName(This,modelName) \
1711 ( (This)->lpVtbl -> GetModelName(This,modelName) )
1713 #endif /* COBJMACROS */
1716 #endif /* C style interface */
1721 #endif /* __IDeckLink_INTERFACE_DEFINED__ */
1724 #ifndef __IDeckLinkOutput_INTERFACE_DEFINED__
1725 #define __IDeckLinkOutput_INTERFACE_DEFINED__
1727 /* interface IDeckLinkOutput */
1728 /* [helpstring][local][uuid][object] */
1731 EXTERN_C const IID IID_IDeckLinkOutput;
1733 #if defined(__cplusplus) && !defined(CINTERFACE)
1735 MIDL_INTERFACE("A3EF0963-0862-44ED-92A9-EE89ABF431C7")
1736 IDeckLinkOutput : public IUnknown
1739 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
1740 /* [in] */ BMDDisplayMode displayMode,
1741 /* [in] */ BMDPixelFormat pixelFormat,
1742 /* [in] */ BMDVideoOutputFlags flags,
1743 /* [out] */ BMDDisplayModeSupport *result,
1744 /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
1746 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
1747 /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
1749 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
1750 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
1752 virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
1753 /* [in] */ BMDDisplayMode displayMode,
1754 /* [in] */ BMDVideoOutputFlags flags) = 0;
1756 virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
1758 virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
1759 /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
1761 virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
1762 /* [in] */ long width,
1763 /* [in] */ long height,
1764 /* [in] */ long rowBytes,
1765 /* [in] */ BMDPixelFormat pixelFormat,
1766 /* [in] */ BMDFrameFlags flags,
1767 /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;
1769 virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(
1770 /* [in] */ BMDPixelFormat pixelFormat,
1771 /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
1773 virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
1774 /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
1776 virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
1777 /* [in] */ IDeckLinkVideoFrame *theFrame,
1778 /* [in] */ BMDTimeValue displayTime,
1779 /* [in] */ BMDTimeValue displayDuration,
1780 /* [in] */ BMDTimeScale timeScale) = 0;
1782 virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
1783 /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;
1785 virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(
1786 /* [out] */ unsigned long *bufferedFrameCount) = 0;
1788 virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
1789 /* [in] */ BMDAudioSampleRate sampleRate,
1790 /* [in] */ BMDAudioSampleType sampleType,
1791 /* [in] */ unsigned long channelCount,
1792 /* [in] */ BMDAudioOutputStreamType streamType) = 0;
1794 virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
1796 virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
1797 /* [in] */ void *buffer,
1798 /* [in] */ unsigned long sampleFrameCount,
1799 /* [out] */ unsigned long *sampleFramesWritten) = 0;
1801 virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
1803 virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
1805 virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
1806 /* [in] */ void *buffer,
1807 /* [in] */ unsigned long sampleFrameCount,
1808 /* [in] */ BMDTimeValue streamTime,
1809 /* [in] */ BMDTimeScale timeScale,
1810 /* [out] */ unsigned long *sampleFramesWritten) = 0;
1812 virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
1813 /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;
1815 virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
1817 virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
1818 /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
1820 virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
1821 /* [in] */ BMDTimeValue playbackStartTime,
1822 /* [in] */ BMDTimeScale timeScale,
1823 /* [in] */ double playbackSpeed) = 0;
1825 virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
1826 /* [in] */ BMDTimeValue stopPlaybackAtTime,
1827 /* [out] */ BMDTimeValue *actualStopTime,
1828 /* [in] */ BMDTimeScale timeScale) = 0;
1830 virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(
1831 /* [out] */ BOOL *active) = 0;
1833 virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime(
1834 /* [in] */ BMDTimeScale desiredTimeScale,
1835 /* [out] */ BMDTimeValue *streamTime,
1836 /* [out] */ double *playbackSpeed) = 0;
1838 virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus(
1839 /* [out] */ BMDReferenceStatus *referenceStatus) = 0;
1841 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
1842 /* [in] */ BMDTimeScale desiredTimeScale,
1843 /* [out] */ BMDTimeValue *hardwareTime,
1844 /* [out] */ BMDTimeValue *timeInFrame,
1845 /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
1849 #else /* C style interface */
1851 typedef struct IDeckLinkOutputVtbl
1855 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1856 IDeckLinkOutput * This,
1857 /* [in] */ REFIID riid,
1858 /* [annotation][iid_is][out] */
1859 __RPC__deref_out void **ppvObject);
1861 ULONG ( STDMETHODCALLTYPE *AddRef )(
1862 IDeckLinkOutput * This);
1864 ULONG ( STDMETHODCALLTYPE *Release )(
1865 IDeckLinkOutput * This);
1867 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
1868 IDeckLinkOutput * This,
1869 /* [in] */ BMDDisplayMode displayMode,
1870 /* [in] */ BMDPixelFormat pixelFormat,
1871 /* [in] */ BMDVideoOutputFlags flags,
1872 /* [out] */ BMDDisplayModeSupport *result,
1873 /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
1875 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
1876 IDeckLinkOutput * This,
1877 /* [out] */ IDeckLinkDisplayModeIterator **iterator);
1879 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
1880 IDeckLinkOutput * This,
1881 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
1883 HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
1884 IDeckLinkOutput * This,
1885 /* [in] */ BMDDisplayMode displayMode,
1886 /* [in] */ BMDVideoOutputFlags flags);
1888 HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
1889 IDeckLinkOutput * This);
1891 HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
1892 IDeckLinkOutput * This,
1893 /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
1895 HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
1896 IDeckLinkOutput * This,
1897 /* [in] */ long width,
1898 /* [in] */ long height,
1899 /* [in] */ long rowBytes,
1900 /* [in] */ BMDPixelFormat pixelFormat,
1901 /* [in] */ BMDFrameFlags flags,
1902 /* [out] */ IDeckLinkMutableVideoFrame **outFrame);
1904 HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(
1905 IDeckLinkOutput * This,
1906 /* [in] */ BMDPixelFormat pixelFormat,
1907 /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
1909 HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
1910 IDeckLinkOutput * This,
1911 /* [in] */ IDeckLinkVideoFrame *theFrame);
1913 HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
1914 IDeckLinkOutput * This,
1915 /* [in] */ IDeckLinkVideoFrame *theFrame,
1916 /* [in] */ BMDTimeValue displayTime,
1917 /* [in] */ BMDTimeValue displayDuration,
1918 /* [in] */ BMDTimeScale timeScale);
1920 HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
1921 IDeckLinkOutput * This,
1922 /* [in] */ IDeckLinkVideoOutputCallback *theCallback);
1924 HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(
1925 IDeckLinkOutput * This,
1926 /* [out] */ unsigned long *bufferedFrameCount);
1928 HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
1929 IDeckLinkOutput * This,
1930 /* [in] */ BMDAudioSampleRate sampleRate,
1931 /* [in] */ BMDAudioSampleType sampleType,
1932 /* [in] */ unsigned long channelCount,
1933 /* [in] */ BMDAudioOutputStreamType streamType);
1935 HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
1936 IDeckLinkOutput * This);
1938 HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
1939 IDeckLinkOutput * This,
1940 /* [in] */ void *buffer,
1941 /* [in] */ unsigned long sampleFrameCount,
1942 /* [out] */ unsigned long *sampleFramesWritten);
1944 HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
1945 IDeckLinkOutput * This);
1947 HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
1948 IDeckLinkOutput * This);
1950 HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
1951 IDeckLinkOutput * This,
1952 /* [in] */ void *buffer,
1953 /* [in] */ unsigned long sampleFrameCount,
1954 /* [in] */ BMDTimeValue streamTime,
1955 /* [in] */ BMDTimeScale timeScale,
1956 /* [out] */ unsigned long *sampleFramesWritten);
1958 HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
1959 IDeckLinkOutput * This,
1960 /* [out] */ unsigned long *bufferedSampleFrameCount);
1962 HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
1963 IDeckLinkOutput * This);
1965 HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
1966 IDeckLinkOutput * This,
1967 /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
1969 HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
1970 IDeckLinkOutput * This,
1971 /* [in] */ BMDTimeValue playbackStartTime,
1972 /* [in] */ BMDTimeScale timeScale,
1973 /* [in] */ double playbackSpeed);
1975 HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
1976 IDeckLinkOutput * This,
1977 /* [in] */ BMDTimeValue stopPlaybackAtTime,
1978 /* [out] */ BMDTimeValue *actualStopTime,
1979 /* [in] */ BMDTimeScale timeScale);
1981 HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(
1982 IDeckLinkOutput * This,
1983 /* [out] */ BOOL *active);
1985 HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )(
1986 IDeckLinkOutput * This,
1987 /* [in] */ BMDTimeScale desiredTimeScale,
1988 /* [out] */ BMDTimeValue *streamTime,
1989 /* [out] */ double *playbackSpeed);
1991 HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )(
1992 IDeckLinkOutput * This,
1993 /* [out] */ BMDReferenceStatus *referenceStatus);
1995 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
1996 IDeckLinkOutput * This,
1997 /* [in] */ BMDTimeScale desiredTimeScale,
1998 /* [out] */ BMDTimeValue *hardwareTime,
1999 /* [out] */ BMDTimeValue *timeInFrame,
2000 /* [out] */ BMDTimeValue *ticksPerFrame);
2003 } IDeckLinkOutputVtbl;
2005 interface IDeckLinkOutput
2007 CONST_VTBL struct IDeckLinkOutputVtbl *lpVtbl;
2015 #define IDeckLinkOutput_QueryInterface(This,riid,ppvObject) \
2016 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2018 #define IDeckLinkOutput_AddRef(This) \
2019 ( (This)->lpVtbl -> AddRef(This) )
2021 #define IDeckLinkOutput_Release(This) \
2022 ( (This)->lpVtbl -> Release(This) )
2025 #define IDeckLinkOutput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) \
2026 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )
2028 #define IDeckLinkOutput_GetDisplayModeIterator(This,iterator) \
2029 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
2031 #define IDeckLinkOutput_SetScreenPreviewCallback(This,previewCallback) \
2032 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
2034 #define IDeckLinkOutput_EnableVideoOutput(This,displayMode,flags) \
2035 ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )
2037 #define IDeckLinkOutput_DisableVideoOutput(This) \
2038 ( (This)->lpVtbl -> DisableVideoOutput(This) )
2040 #define IDeckLinkOutput_SetVideoOutputFrameMemoryAllocator(This,theAllocator) \
2041 ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
2043 #define IDeckLinkOutput_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \
2044 ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
2046 #define IDeckLinkOutput_CreateAncillaryData(This,pixelFormat,outBuffer) \
2047 ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )
2049 #define IDeckLinkOutput_DisplayVideoFrameSync(This,theFrame) \
2050 ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
2052 #define IDeckLinkOutput_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \
2053 ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
2055 #define IDeckLinkOutput_SetScheduledFrameCompletionCallback(This,theCallback) \
2056 ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
2058 #define IDeckLinkOutput_GetBufferedVideoFrameCount(This,bufferedFrameCount) \
2059 ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )
2061 #define IDeckLinkOutput_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) \
2062 ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )
2064 #define IDeckLinkOutput_DisableAudioOutput(This) \
2065 ( (This)->lpVtbl -> DisableAudioOutput(This) )
2067 #define IDeckLinkOutput_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \
2068 ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
2070 #define IDeckLinkOutput_BeginAudioPreroll(This) \
2071 ( (This)->lpVtbl -> BeginAudioPreroll(This) )
2073 #define IDeckLinkOutput_EndAudioPreroll(This) \
2074 ( (This)->lpVtbl -> EndAudioPreroll(This) )
2076 #define IDeckLinkOutput_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) \
2077 ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
2079 #define IDeckLinkOutput_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \
2080 ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )
2082 #define IDeckLinkOutput_FlushBufferedAudioSamples(This) \
2083 ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
2085 #define IDeckLinkOutput_SetAudioCallback(This,theCallback) \
2086 ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
2088 #define IDeckLinkOutput_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \
2089 ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
2091 #define IDeckLinkOutput_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \
2092 ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
2094 #define IDeckLinkOutput_IsScheduledPlaybackRunning(This,active) \
2095 ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )
2097 #define IDeckLinkOutput_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) \
2098 ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) )
2100 #define IDeckLinkOutput_GetReferenceStatus(This,referenceStatus) \
2101 ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) )
2103 #define IDeckLinkOutput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \
2104 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
2106 #endif /* COBJMACROS */
2109 #endif /* C style interface */
2114 #endif /* __IDeckLinkOutput_INTERFACE_DEFINED__ */
2117 #ifndef __IDeckLinkInput_INTERFACE_DEFINED__
2118 #define __IDeckLinkInput_INTERFACE_DEFINED__
2120 /* interface IDeckLinkInput */
2121 /* [helpstring][uuid][object] */
2124 EXTERN_C const IID IID_IDeckLinkInput;
2126 #if defined(__cplusplus) && !defined(CINTERFACE)
2128 MIDL_INTERFACE("6D40EF78-28B9-4E21-990D-95BB7750A04F")
2129 IDeckLinkInput : public IUnknown
2132 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
2133 /* [in] */ BMDDisplayMode displayMode,
2134 /* [in] */ BMDPixelFormat pixelFormat,
2135 /* [in] */ BMDVideoInputFlags flags,
2136 /* [out] */ BMDDisplayModeSupport *result,
2137 /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
2139 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
2140 /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
2142 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
2143 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
2145 virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
2146 /* [in] */ BMDDisplayMode displayMode,
2147 /* [in] */ BMDPixelFormat pixelFormat,
2148 /* [in] */ BMDVideoInputFlags flags) = 0;
2150 virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
2152 virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(
2153 /* [out] */ unsigned long *availableFrameCount) = 0;
2155 virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
2156 /* [in] */ BMDAudioSampleRate sampleRate,
2157 /* [in] */ BMDAudioSampleType sampleType,
2158 /* [in] */ unsigned long channelCount) = 0;
2160 virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
2162 virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
2163 /* [out] */ unsigned long *availableSampleFrameCount) = 0;
2165 virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
2167 virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
2169 virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
2171 virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
2173 virtual HRESULT STDMETHODCALLTYPE SetCallback(
2174 /* [in] */ IDeckLinkInputCallback *theCallback) = 0;
2176 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
2177 /* [in] */ BMDTimeScale desiredTimeScale,
2178 /* [out] */ BMDTimeValue *hardwareTime,
2179 /* [out] */ BMDTimeValue *timeInFrame,
2180 /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
2184 #else /* C style interface */
2186 typedef struct IDeckLinkInputVtbl
2190 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2191 IDeckLinkInput * This,
2192 /* [in] */ REFIID riid,
2193 /* [annotation][iid_is][out] */
2194 __RPC__deref_out void **ppvObject);
2196 ULONG ( STDMETHODCALLTYPE *AddRef )(
2197 IDeckLinkInput * This);
2199 ULONG ( STDMETHODCALLTYPE *Release )(
2200 IDeckLinkInput * This);
2202 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
2203 IDeckLinkInput * This,
2204 /* [in] */ BMDDisplayMode displayMode,
2205 /* [in] */ BMDPixelFormat pixelFormat,
2206 /* [in] */ BMDVideoInputFlags flags,
2207 /* [out] */ BMDDisplayModeSupport *result,
2208 /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
2210 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
2211 IDeckLinkInput * This,
2212 /* [out] */ IDeckLinkDisplayModeIterator **iterator);
2214 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
2215 IDeckLinkInput * This,
2216 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
2218 HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
2219 IDeckLinkInput * This,
2220 /* [in] */ BMDDisplayMode displayMode,
2221 /* [in] */ BMDPixelFormat pixelFormat,
2222 /* [in] */ BMDVideoInputFlags flags);
2224 HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
2225 IDeckLinkInput * This);
2227 HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(
2228 IDeckLinkInput * This,
2229 /* [out] */ unsigned long *availableFrameCount);
2231 HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
2232 IDeckLinkInput * This,
2233 /* [in] */ BMDAudioSampleRate sampleRate,
2234 /* [in] */ BMDAudioSampleType sampleType,
2235 /* [in] */ unsigned long channelCount);
2237 HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
2238 IDeckLinkInput * This);
2240 HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
2241 IDeckLinkInput * This,
2242 /* [out] */ unsigned long *availableSampleFrameCount);
2244 HRESULT ( STDMETHODCALLTYPE *StartStreams )(
2245 IDeckLinkInput * This);
2247 HRESULT ( STDMETHODCALLTYPE *StopStreams )(
2248 IDeckLinkInput * This);
2250 HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
2251 IDeckLinkInput * This);
2253 HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
2254 IDeckLinkInput * This);
2256 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
2257 IDeckLinkInput * This,
2258 /* [in] */ IDeckLinkInputCallback *theCallback);
2260 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
2261 IDeckLinkInput * This,
2262 /* [in] */ BMDTimeScale desiredTimeScale,
2263 /* [out] */ BMDTimeValue *hardwareTime,
2264 /* [out] */ BMDTimeValue *timeInFrame,
2265 /* [out] */ BMDTimeValue *ticksPerFrame);
2268 } IDeckLinkInputVtbl;
2270 interface IDeckLinkInput
2272 CONST_VTBL struct IDeckLinkInputVtbl *lpVtbl;
2280 #define IDeckLinkInput_QueryInterface(This,riid,ppvObject) \
2281 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2283 #define IDeckLinkInput_AddRef(This) \
2284 ( (This)->lpVtbl -> AddRef(This) )
2286 #define IDeckLinkInput_Release(This) \
2287 ( (This)->lpVtbl -> Release(This) )
2290 #define IDeckLinkInput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) \
2291 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )
2293 #define IDeckLinkInput_GetDisplayModeIterator(This,iterator) \
2294 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
2296 #define IDeckLinkInput_SetScreenPreviewCallback(This,previewCallback) \
2297 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
2299 #define IDeckLinkInput_EnableVideoInput(This,displayMode,pixelFormat,flags) \
2300 ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
2302 #define IDeckLinkInput_DisableVideoInput(This) \
2303 ( (This)->lpVtbl -> DisableVideoInput(This) )
2305 #define IDeckLinkInput_GetAvailableVideoFrameCount(This,availableFrameCount) \
2306 ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )
2308 #define IDeckLinkInput_EnableAudioInput(This,sampleRate,sampleType,channelCount) \
2309 ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
2311 #define IDeckLinkInput_DisableAudioInput(This) \
2312 ( (This)->lpVtbl -> DisableAudioInput(This) )
2314 #define IDeckLinkInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) \
2315 ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
2317 #define IDeckLinkInput_StartStreams(This) \
2318 ( (This)->lpVtbl -> StartStreams(This) )
2320 #define IDeckLinkInput_StopStreams(This) \
2321 ( (This)->lpVtbl -> StopStreams(This) )
2323 #define IDeckLinkInput_PauseStreams(This) \
2324 ( (This)->lpVtbl -> PauseStreams(This) )
2326 #define IDeckLinkInput_FlushStreams(This) \
2327 ( (This)->lpVtbl -> FlushStreams(This) )
2329 #define IDeckLinkInput_SetCallback(This,theCallback) \
2330 ( (This)->lpVtbl -> SetCallback(This,theCallback) )
2332 #define IDeckLinkInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \
2333 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
2335 #endif /* COBJMACROS */
2338 #endif /* C style interface */
2343 #endif /* __IDeckLinkInput_INTERFACE_DEFINED__ */
2346 #ifndef __IDeckLinkTimecode_INTERFACE_DEFINED__
2347 #define __IDeckLinkTimecode_INTERFACE_DEFINED__
2349 /* interface IDeckLinkTimecode */
2350 /* [helpstring][uuid][object] */
2353 EXTERN_C const IID IID_IDeckLinkTimecode;
2355 #if defined(__cplusplus) && !defined(CINTERFACE)
2357 MIDL_INTERFACE("BC6CFBD3-8317-4325-AC1C-1216391E9340")
2358 IDeckLinkTimecode : public IUnknown
2361 virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;
2363 virtual HRESULT STDMETHODCALLTYPE GetComponents(
2364 /* [out] */ unsigned char *hours,
2365 /* [out] */ unsigned char *minutes,
2366 /* [out] */ unsigned char *seconds,
2367 /* [out] */ unsigned char *frames) = 0;
2369 virtual HRESULT STDMETHODCALLTYPE GetString(
2370 /* [out] */ BSTR *timecode) = 0;
2372 virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
2374 virtual HRESULT STDMETHODCALLTYPE GetTimecodeUserBits(
2375 /* [out] */ BMDTimecodeUserBits *userBits) = 0;
2379 #else /* C style interface */
2381 typedef struct IDeckLinkTimecodeVtbl
2385 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2386 IDeckLinkTimecode * This,
2387 /* [in] */ REFIID riid,
2388 /* [annotation][iid_is][out] */
2389 __RPC__deref_out void **ppvObject);
2391 ULONG ( STDMETHODCALLTYPE *AddRef )(
2392 IDeckLinkTimecode * This);
2394 ULONG ( STDMETHODCALLTYPE *Release )(
2395 IDeckLinkTimecode * This);
2397 BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )(
2398 IDeckLinkTimecode * This);
2400 HRESULT ( STDMETHODCALLTYPE *GetComponents )(
2401 IDeckLinkTimecode * This,
2402 /* [out] */ unsigned char *hours,
2403 /* [out] */ unsigned char *minutes,
2404 /* [out] */ unsigned char *seconds,
2405 /* [out] */ unsigned char *frames);
2407 HRESULT ( STDMETHODCALLTYPE *GetString )(
2408 IDeckLinkTimecode * This,
2409 /* [out] */ BSTR *timecode);
2411 BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )(
2412 IDeckLinkTimecode * This);
2414 HRESULT ( STDMETHODCALLTYPE *GetTimecodeUserBits )(
2415 IDeckLinkTimecode * This,
2416 /* [out] */ BMDTimecodeUserBits *userBits);
2419 } IDeckLinkTimecodeVtbl;
2421 interface IDeckLinkTimecode
2423 CONST_VTBL struct IDeckLinkTimecodeVtbl *lpVtbl;
2431 #define IDeckLinkTimecode_QueryInterface(This,riid,ppvObject) \
2432 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2434 #define IDeckLinkTimecode_AddRef(This) \
2435 ( (This)->lpVtbl -> AddRef(This) )
2437 #define IDeckLinkTimecode_Release(This) \
2438 ( (This)->lpVtbl -> Release(This) )
2441 #define IDeckLinkTimecode_GetBCD(This) \
2442 ( (This)->lpVtbl -> GetBCD(This) )
2444 #define IDeckLinkTimecode_GetComponents(This,hours,minutes,seconds,frames) \
2445 ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) )
2447 #define IDeckLinkTimecode_GetString(This,timecode) \
2448 ( (This)->lpVtbl -> GetString(This,timecode) )
2450 #define IDeckLinkTimecode_GetFlags(This) \
2451 ( (This)->lpVtbl -> GetFlags(This) )
2453 #define IDeckLinkTimecode_GetTimecodeUserBits(This,userBits) \
2454 ( (This)->lpVtbl -> GetTimecodeUserBits(This,userBits) )
2456 #endif /* COBJMACROS */
2459 #endif /* C style interface */
2464 #endif /* __IDeckLinkTimecode_INTERFACE_DEFINED__ */
2467 #ifndef __IDeckLinkVideoFrame_INTERFACE_DEFINED__
2468 #define __IDeckLinkVideoFrame_INTERFACE_DEFINED__
2470 /* interface IDeckLinkVideoFrame */
2471 /* [helpstring][local][uuid][object] */
2474 EXTERN_C const IID IID_IDeckLinkVideoFrame;
2476 #if defined(__cplusplus) && !defined(CINTERFACE)
2478 MIDL_INTERFACE("3F716FE0-F023-4111-BE5D-EF4414C05B17")
2479 IDeckLinkVideoFrame : public IUnknown
2482 virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
2484 virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
2486 virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;
2488 virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
2490 virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;
2492 virtual HRESULT STDMETHODCALLTYPE GetBytes(
2493 /* [out] */ void **buffer) = 0;
2495 virtual HRESULT STDMETHODCALLTYPE GetTimecode(
2496 /* [in] */ BMDTimecodeFormat format,
2497 /* [out] */ IDeckLinkTimecode **timecode) = 0;
2499 virtual HRESULT STDMETHODCALLTYPE GetAncillaryData(
2500 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;
2504 #else /* C style interface */
2506 typedef struct IDeckLinkVideoFrameVtbl
2510 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2511 IDeckLinkVideoFrame * This,
2512 /* [in] */ REFIID riid,
2513 /* [annotation][iid_is][out] */
2514 __RPC__deref_out void **ppvObject);
2516 ULONG ( STDMETHODCALLTYPE *AddRef )(
2517 IDeckLinkVideoFrame * This);
2519 ULONG ( STDMETHODCALLTYPE *Release )(
2520 IDeckLinkVideoFrame * This);
2522 long ( STDMETHODCALLTYPE *GetWidth )(
2523 IDeckLinkVideoFrame * This);
2525 long ( STDMETHODCALLTYPE *GetHeight )(
2526 IDeckLinkVideoFrame * This);
2528 long ( STDMETHODCALLTYPE *GetRowBytes )(
2529 IDeckLinkVideoFrame * This);
2531 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
2532 IDeckLinkVideoFrame * This);
2534 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
2535 IDeckLinkVideoFrame * This);
2537 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
2538 IDeckLinkVideoFrame * This,
2539 /* [out] */ void **buffer);
2541 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
2542 IDeckLinkVideoFrame * This,
2543 /* [in] */ BMDTimecodeFormat format,
2544 /* [out] */ IDeckLinkTimecode **timecode);
2546 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
2547 IDeckLinkVideoFrame * This,
2548 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
2551 } IDeckLinkVideoFrameVtbl;
2553 interface IDeckLinkVideoFrame
2555 CONST_VTBL struct IDeckLinkVideoFrameVtbl *lpVtbl;
2563 #define IDeckLinkVideoFrame_QueryInterface(This,riid,ppvObject) \
2564 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2566 #define IDeckLinkVideoFrame_AddRef(This) \
2567 ( (This)->lpVtbl -> AddRef(This) )
2569 #define IDeckLinkVideoFrame_Release(This) \
2570 ( (This)->lpVtbl -> Release(This) )
2573 #define IDeckLinkVideoFrame_GetWidth(This) \
2574 ( (This)->lpVtbl -> GetWidth(This) )
2576 #define IDeckLinkVideoFrame_GetHeight(This) \
2577 ( (This)->lpVtbl -> GetHeight(This) )
2579 #define IDeckLinkVideoFrame_GetRowBytes(This) \
2580 ( (This)->lpVtbl -> GetRowBytes(This) )
2582 #define IDeckLinkVideoFrame_GetPixelFormat(This) \
2583 ( (This)->lpVtbl -> GetPixelFormat(This) )
2585 #define IDeckLinkVideoFrame_GetFlags(This) \
2586 ( (This)->lpVtbl -> GetFlags(This) )
2588 #define IDeckLinkVideoFrame_GetBytes(This,buffer) \
2589 ( (This)->lpVtbl -> GetBytes(This,buffer) )
2591 #define IDeckLinkVideoFrame_GetTimecode(This,format,timecode) \
2592 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
2594 #define IDeckLinkVideoFrame_GetAncillaryData(This,ancillary) \
2595 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
2597 #endif /* COBJMACROS */
2600 #endif /* C style interface */
2605 #endif /* __IDeckLinkVideoFrame_INTERFACE_DEFINED__ */
2608 #ifndef __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__
2609 #define __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__
2611 /* interface IDeckLinkMutableVideoFrame */
2612 /* [helpstring][local][uuid][object] */
2615 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame;
2617 #if defined(__cplusplus) && !defined(CINTERFACE)
2619 MIDL_INTERFACE("69E2639F-40DA-4E19-B6F2-20ACE815C390")
2620 IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame
2623 virtual HRESULT STDMETHODCALLTYPE SetFlags(
2624 /* [in] */ BMDFrameFlags newFlags) = 0;
2626 virtual HRESULT STDMETHODCALLTYPE SetTimecode(
2627 /* [in] */ BMDTimecodeFormat format,
2628 /* [in] */ IDeckLinkTimecode *timecode) = 0;
2630 virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents(
2631 /* [in] */ BMDTimecodeFormat format,
2632 /* [in] */ unsigned char hours,
2633 /* [in] */ unsigned char minutes,
2634 /* [in] */ unsigned char seconds,
2635 /* [in] */ unsigned char frames,
2636 /* [in] */ BMDTimecodeFlags flags) = 0;
2638 virtual HRESULT STDMETHODCALLTYPE SetAncillaryData(
2639 /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;
2641 virtual HRESULT STDMETHODCALLTYPE SetTimecodeUserBits(
2642 /* [in] */ BMDTimecodeFormat format,
2643 /* [in] */ BMDTimecodeUserBits userBits) = 0;
2647 #else /* C style interface */
2649 typedef struct IDeckLinkMutableVideoFrameVtbl
2653 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2654 IDeckLinkMutableVideoFrame * This,
2655 /* [in] */ REFIID riid,
2656 /* [annotation][iid_is][out] */
2657 __RPC__deref_out void **ppvObject);
2659 ULONG ( STDMETHODCALLTYPE *AddRef )(
2660 IDeckLinkMutableVideoFrame * This);
2662 ULONG ( STDMETHODCALLTYPE *Release )(
2663 IDeckLinkMutableVideoFrame * This);
2665 long ( STDMETHODCALLTYPE *GetWidth )(
2666 IDeckLinkMutableVideoFrame * This);
2668 long ( STDMETHODCALLTYPE *GetHeight )(
2669 IDeckLinkMutableVideoFrame * This);
2671 long ( STDMETHODCALLTYPE *GetRowBytes )(
2672 IDeckLinkMutableVideoFrame * This);
2674 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
2675 IDeckLinkMutableVideoFrame * This);
2677 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
2678 IDeckLinkMutableVideoFrame * This);
2680 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
2681 IDeckLinkMutableVideoFrame * This,
2682 /* [out] */ void **buffer);
2684 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
2685 IDeckLinkMutableVideoFrame * This,
2686 /* [in] */ BMDTimecodeFormat format,
2687 /* [out] */ IDeckLinkTimecode **timecode);
2689 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
2690 IDeckLinkMutableVideoFrame * This,
2691 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
2693 HRESULT ( STDMETHODCALLTYPE *SetFlags )(
2694 IDeckLinkMutableVideoFrame * This,
2695 /* [in] */ BMDFrameFlags newFlags);
2697 HRESULT ( STDMETHODCALLTYPE *SetTimecode )(
2698 IDeckLinkMutableVideoFrame * This,
2699 /* [in] */ BMDTimecodeFormat format,
2700 /* [in] */ IDeckLinkTimecode *timecode);
2702 HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )(
2703 IDeckLinkMutableVideoFrame * This,
2704 /* [in] */ BMDTimecodeFormat format,
2705 /* [in] */ unsigned char hours,
2706 /* [in] */ unsigned char minutes,
2707 /* [in] */ unsigned char seconds,
2708 /* [in] */ unsigned char frames,
2709 /* [in] */ BMDTimecodeFlags flags);
2711 HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )(
2712 IDeckLinkMutableVideoFrame * This,
2713 /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);
2715 HRESULT ( STDMETHODCALLTYPE *SetTimecodeUserBits )(
2716 IDeckLinkMutableVideoFrame * This,
2717 /* [in] */ BMDTimecodeFormat format,
2718 /* [in] */ BMDTimecodeUserBits userBits);
2721 } IDeckLinkMutableVideoFrameVtbl;
2723 interface IDeckLinkMutableVideoFrame
2725 CONST_VTBL struct IDeckLinkMutableVideoFrameVtbl *lpVtbl;
2733 #define IDeckLinkMutableVideoFrame_QueryInterface(This,riid,ppvObject) \
2734 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2736 #define IDeckLinkMutableVideoFrame_AddRef(This) \
2737 ( (This)->lpVtbl -> AddRef(This) )
2739 #define IDeckLinkMutableVideoFrame_Release(This) \
2740 ( (This)->lpVtbl -> Release(This) )
2743 #define IDeckLinkMutableVideoFrame_GetWidth(This) \
2744 ( (This)->lpVtbl -> GetWidth(This) )
2746 #define IDeckLinkMutableVideoFrame_GetHeight(This) \
2747 ( (This)->lpVtbl -> GetHeight(This) )
2749 #define IDeckLinkMutableVideoFrame_GetRowBytes(This) \
2750 ( (This)->lpVtbl -> GetRowBytes(This) )
2752 #define IDeckLinkMutableVideoFrame_GetPixelFormat(This) \
2753 ( (This)->lpVtbl -> GetPixelFormat(This) )
2755 #define IDeckLinkMutableVideoFrame_GetFlags(This) \
2756 ( (This)->lpVtbl -> GetFlags(This) )
2758 #define IDeckLinkMutableVideoFrame_GetBytes(This,buffer) \
2759 ( (This)->lpVtbl -> GetBytes(This,buffer) )
2761 #define IDeckLinkMutableVideoFrame_GetTimecode(This,format,timecode) \
2762 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
2764 #define IDeckLinkMutableVideoFrame_GetAncillaryData(This,ancillary) \
2765 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
2768 #define IDeckLinkMutableVideoFrame_SetFlags(This,newFlags) \
2769 ( (This)->lpVtbl -> SetFlags(This,newFlags) )
2771 #define IDeckLinkMutableVideoFrame_SetTimecode(This,format,timecode) \
2772 ( (This)->lpVtbl -> SetTimecode(This,format,timecode) )
2774 #define IDeckLinkMutableVideoFrame_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) \
2775 ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) )
2777 #define IDeckLinkMutableVideoFrame_SetAncillaryData(This,ancillary) \
2778 ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) )
2780 #define IDeckLinkMutableVideoFrame_SetTimecodeUserBits(This,format,userBits) \
2781 ( (This)->lpVtbl -> SetTimecodeUserBits(This,format,userBits) )
2783 #endif /* COBJMACROS */
2786 #endif /* C style interface */
2791 #endif /* __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ */
2794 #ifndef __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__
2795 #define __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__
2797 /* interface IDeckLinkVideoFrame3DExtensions */
2798 /* [helpstring][local][uuid][object] */
2801 EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions;
2803 #if defined(__cplusplus) && !defined(CINTERFACE)
2805 MIDL_INTERFACE("DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7")
2806 IDeckLinkVideoFrame3DExtensions : public IUnknown
2809 virtual BMDVideo3DPackingFormat STDMETHODCALLTYPE Get3DPackingFormat( void) = 0;
2811 virtual HRESULT STDMETHODCALLTYPE GetFrameForRightEye(
2812 /* [in] */ IDeckLinkVideoFrame **rightEyeFrame) = 0;
2816 #else /* C style interface */
2818 typedef struct IDeckLinkVideoFrame3DExtensionsVtbl
2822 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2823 IDeckLinkVideoFrame3DExtensions * This,
2824 /* [in] */ REFIID riid,
2825 /* [annotation][iid_is][out] */
2826 __RPC__deref_out void **ppvObject);
2828 ULONG ( STDMETHODCALLTYPE *AddRef )(
2829 IDeckLinkVideoFrame3DExtensions * This);
2831 ULONG ( STDMETHODCALLTYPE *Release )(
2832 IDeckLinkVideoFrame3DExtensions * This);
2834 BMDVideo3DPackingFormat ( STDMETHODCALLTYPE *Get3DPackingFormat )(
2835 IDeckLinkVideoFrame3DExtensions * This);
2837 HRESULT ( STDMETHODCALLTYPE *GetFrameForRightEye )(
2838 IDeckLinkVideoFrame3DExtensions * This,
2839 /* [in] */ IDeckLinkVideoFrame **rightEyeFrame);
2842 } IDeckLinkVideoFrame3DExtensionsVtbl;
2844 interface IDeckLinkVideoFrame3DExtensions
2846 CONST_VTBL struct IDeckLinkVideoFrame3DExtensionsVtbl *lpVtbl;
2854 #define IDeckLinkVideoFrame3DExtensions_QueryInterface(This,riid,ppvObject) \
2855 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2857 #define IDeckLinkVideoFrame3DExtensions_AddRef(This) \
2858 ( (This)->lpVtbl -> AddRef(This) )
2860 #define IDeckLinkVideoFrame3DExtensions_Release(This) \
2861 ( (This)->lpVtbl -> Release(This) )
2864 #define IDeckLinkVideoFrame3DExtensions_Get3DPackingFormat(This) \
2865 ( (This)->lpVtbl -> Get3DPackingFormat(This) )
2867 #define IDeckLinkVideoFrame3DExtensions_GetFrameForRightEye(This,rightEyeFrame) \
2868 ( (This)->lpVtbl -> GetFrameForRightEye(This,rightEyeFrame) )
2870 #endif /* COBJMACROS */
2873 #endif /* C style interface */
2878 #endif /* __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ */
2881 #ifndef __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__
2882 #define __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__
2884 /* interface IDeckLinkVideoInputFrame */
2885 /* [helpstring][local][uuid][object] */
2888 EXTERN_C const IID IID_IDeckLinkVideoInputFrame;
2890 #if defined(__cplusplus) && !defined(CINTERFACE)
2892 MIDL_INTERFACE("05CFE374-537C-4094-9A57-680525118F44")
2893 IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame
2896 virtual HRESULT STDMETHODCALLTYPE GetStreamTime(
2897 /* [out] */ BMDTimeValue *frameTime,
2898 /* [out] */ BMDTimeValue *frameDuration,
2899 /* [in] */ BMDTimeScale timeScale) = 0;
2901 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp(
2902 /* [in] */ BMDTimeScale timeScale,
2903 /* [out] */ BMDTimeValue *frameTime,
2904 /* [out] */ BMDTimeValue *frameDuration) = 0;
2908 #else /* C style interface */
2910 typedef struct IDeckLinkVideoInputFrameVtbl
2914 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2915 IDeckLinkVideoInputFrame * This,
2916 /* [in] */ REFIID riid,
2917 /* [annotation][iid_is][out] */
2918 __RPC__deref_out void **ppvObject);
2920 ULONG ( STDMETHODCALLTYPE *AddRef )(
2921 IDeckLinkVideoInputFrame * This);
2923 ULONG ( STDMETHODCALLTYPE *Release )(
2924 IDeckLinkVideoInputFrame * This);
2926 long ( STDMETHODCALLTYPE *GetWidth )(
2927 IDeckLinkVideoInputFrame * This);
2929 long ( STDMETHODCALLTYPE *GetHeight )(
2930 IDeckLinkVideoInputFrame * This);
2932 long ( STDMETHODCALLTYPE *GetRowBytes )(
2933 IDeckLinkVideoInputFrame * This);
2935 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
2936 IDeckLinkVideoInputFrame * This);
2938 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
2939 IDeckLinkVideoInputFrame * This);
2941 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
2942 IDeckLinkVideoInputFrame * This,
2943 /* [out] */ void **buffer);
2945 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
2946 IDeckLinkVideoInputFrame * This,
2947 /* [in] */ BMDTimecodeFormat format,
2948 /* [out] */ IDeckLinkTimecode **timecode);
2950 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
2951 IDeckLinkVideoInputFrame * This,
2952 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
2954 HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
2955 IDeckLinkVideoInputFrame * This,
2956 /* [out] */ BMDTimeValue *frameTime,
2957 /* [out] */ BMDTimeValue *frameDuration,
2958 /* [in] */ BMDTimeScale timeScale);
2960 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )(
2961 IDeckLinkVideoInputFrame * This,
2962 /* [in] */ BMDTimeScale timeScale,
2963 /* [out] */ BMDTimeValue *frameTime,
2964 /* [out] */ BMDTimeValue *frameDuration);
2967 } IDeckLinkVideoInputFrameVtbl;
2969 interface IDeckLinkVideoInputFrame
2971 CONST_VTBL struct IDeckLinkVideoInputFrameVtbl *lpVtbl;
2979 #define IDeckLinkVideoInputFrame_QueryInterface(This,riid,ppvObject) \
2980 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2982 #define IDeckLinkVideoInputFrame_AddRef(This) \
2983 ( (This)->lpVtbl -> AddRef(This) )
2985 #define IDeckLinkVideoInputFrame_Release(This) \
2986 ( (This)->lpVtbl -> Release(This) )
2989 #define IDeckLinkVideoInputFrame_GetWidth(This) \
2990 ( (This)->lpVtbl -> GetWidth(This) )
2992 #define IDeckLinkVideoInputFrame_GetHeight(This) \
2993 ( (This)->lpVtbl -> GetHeight(This) )
2995 #define IDeckLinkVideoInputFrame_GetRowBytes(This) \
2996 ( (This)->lpVtbl -> GetRowBytes(This) )
2998 #define IDeckLinkVideoInputFrame_GetPixelFormat(This) \
2999 ( (This)->lpVtbl -> GetPixelFormat(This) )
3001 #define IDeckLinkVideoInputFrame_GetFlags(This) \
3002 ( (This)->lpVtbl -> GetFlags(This) )
3004 #define IDeckLinkVideoInputFrame_GetBytes(This,buffer) \
3005 ( (This)->lpVtbl -> GetBytes(This,buffer) )
3007 #define IDeckLinkVideoInputFrame_GetTimecode(This,format,timecode) \
3008 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
3010 #define IDeckLinkVideoInputFrame_GetAncillaryData(This,ancillary) \
3011 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
3014 #define IDeckLinkVideoInputFrame_GetStreamTime(This,frameTime,frameDuration,timeScale) \
3015 ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) )
3017 #define IDeckLinkVideoInputFrame_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) \
3018 ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) )
3020 #endif /* COBJMACROS */
3023 #endif /* C style interface */
3028 #endif /* __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ */
3031 #ifndef __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__
3032 #define __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__
3034 /* interface IDeckLinkVideoFrameAncillary */
3035 /* [helpstring][local][uuid][object] */
3038 EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;
3040 #if defined(__cplusplus) && !defined(CINTERFACE)
3042 MIDL_INTERFACE("732E723C-D1A4-4E29-9E8E-4A88797A0004")
3043 IDeckLinkVideoFrameAncillary : public IUnknown
3046 virtual HRESULT STDMETHODCALLTYPE GetBufferForVerticalBlankingLine(
3047 /* [in] */ unsigned long lineNumber,
3048 /* [out] */ void **buffer) = 0;
3050 virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
3052 virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
3056 #else /* C style interface */
3058 typedef struct IDeckLinkVideoFrameAncillaryVtbl
3062 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3063 IDeckLinkVideoFrameAncillary * This,
3064 /* [in] */ REFIID riid,
3065 /* [annotation][iid_is][out] */
3066 __RPC__deref_out void **ppvObject);
3068 ULONG ( STDMETHODCALLTYPE *AddRef )(
3069 IDeckLinkVideoFrameAncillary * This);
3071 ULONG ( STDMETHODCALLTYPE *Release )(
3072 IDeckLinkVideoFrameAncillary * This);
3074 HRESULT ( STDMETHODCALLTYPE *GetBufferForVerticalBlankingLine )(
3075 IDeckLinkVideoFrameAncillary * This,
3076 /* [in] */ unsigned long lineNumber,
3077 /* [out] */ void **buffer);
3079 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
3080 IDeckLinkVideoFrameAncillary * This);
3082 BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(
3083 IDeckLinkVideoFrameAncillary * This);
3086 } IDeckLinkVideoFrameAncillaryVtbl;
3088 interface IDeckLinkVideoFrameAncillary
3090 CONST_VTBL struct IDeckLinkVideoFrameAncillaryVtbl *lpVtbl;
3098 #define IDeckLinkVideoFrameAncillary_QueryInterface(This,riid,ppvObject) \
3099 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3101 #define IDeckLinkVideoFrameAncillary_AddRef(This) \
3102 ( (This)->lpVtbl -> AddRef(This) )
3104 #define IDeckLinkVideoFrameAncillary_Release(This) \
3105 ( (This)->lpVtbl -> Release(This) )
3108 #define IDeckLinkVideoFrameAncillary_GetBufferForVerticalBlankingLine(This,lineNumber,buffer) \
3109 ( (This)->lpVtbl -> GetBufferForVerticalBlankingLine(This,lineNumber,buffer) )
3111 #define IDeckLinkVideoFrameAncillary_GetPixelFormat(This) \
3112 ( (This)->lpVtbl -> GetPixelFormat(This) )
3114 #define IDeckLinkVideoFrameAncillary_GetDisplayMode(This) \
3115 ( (This)->lpVtbl -> GetDisplayMode(This) )
3117 #endif /* COBJMACROS */
3120 #endif /* C style interface */
3125 #endif /* __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ */
3128 #ifndef __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__
3129 #define __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__
3131 /* interface IDeckLinkAudioInputPacket */
3132 /* [helpstring][local][uuid][object] */
3135 EXTERN_C const IID IID_IDeckLinkAudioInputPacket;
3137 #if defined(__cplusplus) && !defined(CINTERFACE)
3139 MIDL_INTERFACE("E43D5870-2894-11DE-8C30-0800200C9A66")
3140 IDeckLinkAudioInputPacket : public IUnknown
3143 virtual long STDMETHODCALLTYPE GetSampleFrameCount( void) = 0;
3145 virtual HRESULT STDMETHODCALLTYPE GetBytes(
3146 /* [out] */ void **buffer) = 0;
3148 virtual HRESULT STDMETHODCALLTYPE GetPacketTime(
3149 /* [out] */ BMDTimeValue *packetTime,
3150 /* [in] */ BMDTimeScale timeScale) = 0;
3154 #else /* C style interface */
3156 typedef struct IDeckLinkAudioInputPacketVtbl
3160 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3161 IDeckLinkAudioInputPacket * This,
3162 /* [in] */ REFIID riid,
3163 /* [annotation][iid_is][out] */
3164 __RPC__deref_out void **ppvObject);
3166 ULONG ( STDMETHODCALLTYPE *AddRef )(
3167 IDeckLinkAudioInputPacket * This);
3169 ULONG ( STDMETHODCALLTYPE *Release )(
3170 IDeckLinkAudioInputPacket * This);
3172 long ( STDMETHODCALLTYPE *GetSampleFrameCount )(
3173 IDeckLinkAudioInputPacket * This);
3175 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
3176 IDeckLinkAudioInputPacket * This,
3177 /* [out] */ void **buffer);
3179 HRESULT ( STDMETHODCALLTYPE *GetPacketTime )(
3180 IDeckLinkAudioInputPacket * This,
3181 /* [out] */ BMDTimeValue *packetTime,
3182 /* [in] */ BMDTimeScale timeScale);
3185 } IDeckLinkAudioInputPacketVtbl;
3187 interface IDeckLinkAudioInputPacket
3189 CONST_VTBL struct IDeckLinkAudioInputPacketVtbl *lpVtbl;
3197 #define IDeckLinkAudioInputPacket_QueryInterface(This,riid,ppvObject) \
3198 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3200 #define IDeckLinkAudioInputPacket_AddRef(This) \
3201 ( (This)->lpVtbl -> AddRef(This) )
3203 #define IDeckLinkAudioInputPacket_Release(This) \
3204 ( (This)->lpVtbl -> Release(This) )
3207 #define IDeckLinkAudioInputPacket_GetSampleFrameCount(This) \
3208 ( (This)->lpVtbl -> GetSampleFrameCount(This) )
3210 #define IDeckLinkAudioInputPacket_GetBytes(This,buffer) \
3211 ( (This)->lpVtbl -> GetBytes(This,buffer) )
3213 #define IDeckLinkAudioInputPacket_GetPacketTime(This,packetTime,timeScale) \
3214 ( (This)->lpVtbl -> GetPacketTime(This,packetTime,timeScale) )
3216 #endif /* COBJMACROS */
3219 #endif /* C style interface */
3224 #endif /* __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ */
3227 #ifndef __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__
3228 #define __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__
3230 /* interface IDeckLinkScreenPreviewCallback */
3231 /* [helpstring][local][uuid][object] */
3234 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;
3236 #if defined(__cplusplus) && !defined(CINTERFACE)
3238 MIDL_INTERFACE("B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438")
3239 IDeckLinkScreenPreviewCallback : public IUnknown
3242 virtual HRESULT STDMETHODCALLTYPE DrawFrame(
3243 /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
3247 #else /* C style interface */
3249 typedef struct IDeckLinkScreenPreviewCallbackVtbl
3253 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3254 IDeckLinkScreenPreviewCallback * This,
3255 /* [in] */ REFIID riid,
3256 /* [annotation][iid_is][out] */
3257 __RPC__deref_out void **ppvObject);
3259 ULONG ( STDMETHODCALLTYPE *AddRef )(
3260 IDeckLinkScreenPreviewCallback * This);
3262 ULONG ( STDMETHODCALLTYPE *Release )(
3263 IDeckLinkScreenPreviewCallback * This);
3265 HRESULT ( STDMETHODCALLTYPE *DrawFrame )(
3266 IDeckLinkScreenPreviewCallback * This,
3267 /* [in] */ IDeckLinkVideoFrame *theFrame);
3270 } IDeckLinkScreenPreviewCallbackVtbl;
3272 interface IDeckLinkScreenPreviewCallback
3274 CONST_VTBL struct IDeckLinkScreenPreviewCallbackVtbl *lpVtbl;
3282 #define IDeckLinkScreenPreviewCallback_QueryInterface(This,riid,ppvObject) \
3283 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3285 #define IDeckLinkScreenPreviewCallback_AddRef(This) \
3286 ( (This)->lpVtbl -> AddRef(This) )
3288 #define IDeckLinkScreenPreviewCallback_Release(This) \
3289 ( (This)->lpVtbl -> Release(This) )
3292 #define IDeckLinkScreenPreviewCallback_DrawFrame(This,theFrame) \
3293 ( (This)->lpVtbl -> DrawFrame(This,theFrame) )
3295 #endif /* COBJMACROS */
3298 #endif /* C style interface */
3303 #endif /* __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ */
3306 #ifndef __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__
3307 #define __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__
3309 /* interface IDeckLinkGLScreenPreviewHelper */
3310 /* [helpstring][local][uuid][object] */
3313 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;
3315 #if defined(__cplusplus) && !defined(CINTERFACE)
3317 MIDL_INTERFACE("504E2209-CAC7-4C1A-9FB4-C5BB6274D22F")
3318 IDeckLinkGLScreenPreviewHelper : public IUnknown
3321 virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;
3323 virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;
3325 virtual HRESULT STDMETHODCALLTYPE SetFrame(
3326 /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
3328 virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat(
3329 /* [in] */ BMD3DPreviewFormat previewFormat) = 0;
3333 #else /* C style interface */
3335 typedef struct IDeckLinkGLScreenPreviewHelperVtbl
3339 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3340 IDeckLinkGLScreenPreviewHelper * This,
3341 /* [in] */ REFIID riid,
3342 /* [annotation][iid_is][out] */
3343 __RPC__deref_out void **ppvObject);
3345 ULONG ( STDMETHODCALLTYPE *AddRef )(
3346 IDeckLinkGLScreenPreviewHelper * This);
3348 ULONG ( STDMETHODCALLTYPE *Release )(
3349 IDeckLinkGLScreenPreviewHelper * This);
3351 HRESULT ( STDMETHODCALLTYPE *InitializeGL )(
3352 IDeckLinkGLScreenPreviewHelper * This);
3354 HRESULT ( STDMETHODCALLTYPE *PaintGL )(
3355 IDeckLinkGLScreenPreviewHelper * This);
3357 HRESULT ( STDMETHODCALLTYPE *SetFrame )(
3358 IDeckLinkGLScreenPreviewHelper * This,
3359 /* [in] */ IDeckLinkVideoFrame *theFrame);
3361 HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )(
3362 IDeckLinkGLScreenPreviewHelper * This,
3363 /* [in] */ BMD3DPreviewFormat previewFormat);
3366 } IDeckLinkGLScreenPreviewHelperVtbl;
3368 interface IDeckLinkGLScreenPreviewHelper
3370 CONST_VTBL struct IDeckLinkGLScreenPreviewHelperVtbl *lpVtbl;
3378 #define IDeckLinkGLScreenPreviewHelper_QueryInterface(This,riid,ppvObject) \
3379 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3381 #define IDeckLinkGLScreenPreviewHelper_AddRef(This) \
3382 ( (This)->lpVtbl -> AddRef(This) )
3384 #define IDeckLinkGLScreenPreviewHelper_Release(This) \
3385 ( (This)->lpVtbl -> Release(This) )
3388 #define IDeckLinkGLScreenPreviewHelper_InitializeGL(This) \
3389 ( (This)->lpVtbl -> InitializeGL(This) )
3391 #define IDeckLinkGLScreenPreviewHelper_PaintGL(This) \
3392 ( (This)->lpVtbl -> PaintGL(This) )
3394 #define IDeckLinkGLScreenPreviewHelper_SetFrame(This,theFrame) \
3395 ( (This)->lpVtbl -> SetFrame(This,theFrame) )
3397 #define IDeckLinkGLScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat) \
3398 ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) )
3400 #endif /* COBJMACROS */
3403 #endif /* C style interface */
3408 #endif /* __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ */
3411 #ifndef __IDeckLinkConfiguration_INTERFACE_DEFINED__
3412 #define __IDeckLinkConfiguration_INTERFACE_DEFINED__
3414 /* interface IDeckLinkConfiguration */
3415 /* [helpstring][local][uuid][object] */
3418 EXTERN_C const IID IID_IDeckLinkConfiguration;
3420 #if defined(__cplusplus) && !defined(CINTERFACE)
3422 MIDL_INTERFACE("C679A35B-610C-4D09-B748-1D0478100FC0")
3423 IDeckLinkConfiguration : public IUnknown
3426 virtual HRESULT STDMETHODCALLTYPE SetFlag(
3427 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3428 /* [in] */ BOOL value) = 0;
3430 virtual HRESULT STDMETHODCALLTYPE GetFlag(
3431 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3432 /* [out] */ BOOL *value) = 0;
3434 virtual HRESULT STDMETHODCALLTYPE SetInt(
3435 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3436 /* [in] */ LONGLONG value) = 0;
3438 virtual HRESULT STDMETHODCALLTYPE GetInt(
3439 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3440 /* [out] */ LONGLONG *value) = 0;
3442 virtual HRESULT STDMETHODCALLTYPE SetFloat(
3443 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3444 /* [in] */ double value) = 0;
3446 virtual HRESULT STDMETHODCALLTYPE GetFloat(
3447 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3448 /* [out] */ double *value) = 0;
3450 virtual HRESULT STDMETHODCALLTYPE SetString(
3451 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3452 /* [in] */ BSTR value) = 0;
3454 virtual HRESULT STDMETHODCALLTYPE GetString(
3455 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3456 /* [out] */ BSTR *value) = 0;
3458 virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
3462 #else /* C style interface */
3464 typedef struct IDeckLinkConfigurationVtbl
3468 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3469 IDeckLinkConfiguration * This,
3470 /* [in] */ REFIID riid,
3471 /* [annotation][iid_is][out] */
3472 __RPC__deref_out void **ppvObject);
3474 ULONG ( STDMETHODCALLTYPE *AddRef )(
3475 IDeckLinkConfiguration * This);
3477 ULONG ( STDMETHODCALLTYPE *Release )(
3478 IDeckLinkConfiguration * This);
3480 HRESULT ( STDMETHODCALLTYPE *SetFlag )(
3481 IDeckLinkConfiguration * This,
3482 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3483 /* [in] */ BOOL value);
3485 HRESULT ( STDMETHODCALLTYPE *GetFlag )(
3486 IDeckLinkConfiguration * This,
3487 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3488 /* [out] */ BOOL *value);
3490 HRESULT ( STDMETHODCALLTYPE *SetInt )(
3491 IDeckLinkConfiguration * This,
3492 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3493 /* [in] */ LONGLONG value);
3495 HRESULT ( STDMETHODCALLTYPE *GetInt )(
3496 IDeckLinkConfiguration * This,
3497 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3498 /* [out] */ LONGLONG *value);
3500 HRESULT ( STDMETHODCALLTYPE *SetFloat )(
3501 IDeckLinkConfiguration * This,
3502 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3503 /* [in] */ double value);
3505 HRESULT ( STDMETHODCALLTYPE *GetFloat )(
3506 IDeckLinkConfiguration * This,
3507 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3508 /* [out] */ double *value);
3510 HRESULT ( STDMETHODCALLTYPE *SetString )(
3511 IDeckLinkConfiguration * This,
3512 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3513 /* [in] */ BSTR value);
3515 HRESULT ( STDMETHODCALLTYPE *GetString )(
3516 IDeckLinkConfiguration * This,
3517 /* [in] */ BMDDeckLinkConfigurationID cfgID,
3518 /* [out] */ BSTR *value);
3520 HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(
3521 IDeckLinkConfiguration * This);
3524 } IDeckLinkConfigurationVtbl;
3526 interface IDeckLinkConfiguration
3528 CONST_VTBL struct IDeckLinkConfigurationVtbl *lpVtbl;
3536 #define IDeckLinkConfiguration_QueryInterface(This,riid,ppvObject) \
3537 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3539 #define IDeckLinkConfiguration_AddRef(This) \
3540 ( (This)->lpVtbl -> AddRef(This) )
3542 #define IDeckLinkConfiguration_Release(This) \
3543 ( (This)->lpVtbl -> Release(This) )
3546 #define IDeckLinkConfiguration_SetFlag(This,cfgID,value) \
3547 ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )
3549 #define IDeckLinkConfiguration_GetFlag(This,cfgID,value) \
3550 ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
3552 #define IDeckLinkConfiguration_SetInt(This,cfgID,value) \
3553 ( (This)->lpVtbl -> SetInt(This,cfgID,value) )
3555 #define IDeckLinkConfiguration_GetInt(This,cfgID,value) \
3556 ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
3558 #define IDeckLinkConfiguration_SetFloat(This,cfgID,value) \
3559 ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )
3561 #define IDeckLinkConfiguration_GetFloat(This,cfgID,value) \
3562 ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
3564 #define IDeckLinkConfiguration_SetString(This,cfgID,value) \
3565 ( (This)->lpVtbl -> SetString(This,cfgID,value) )
3567 #define IDeckLinkConfiguration_GetString(This,cfgID,value) \
3568 ( (This)->lpVtbl -> GetString(This,cfgID,value) )
3570 #define IDeckLinkConfiguration_WriteConfigurationToPreferences(This) \
3571 ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )
3573 #endif /* COBJMACROS */
3576 #endif /* C style interface */
3581 #endif /* __IDeckLinkConfiguration_INTERFACE_DEFINED__ */
3584 #ifndef __IDeckLinkAttributes_INTERFACE_DEFINED__
3585 #define __IDeckLinkAttributes_INTERFACE_DEFINED__
3587 /* interface IDeckLinkAttributes */
3588 /* [helpstring][local][uuid][object] */
3591 EXTERN_C const IID IID_IDeckLinkAttributes;
3593 #if defined(__cplusplus) && !defined(CINTERFACE)
3595 MIDL_INTERFACE("ABC11843-D966-44CB-96E2-A1CB5D3135C4")
3596 IDeckLinkAttributes : public IUnknown
3599 virtual HRESULT STDMETHODCALLTYPE GetFlag(
3600 /* [in] */ BMDDeckLinkAttributeID cfgID,
3601 /* [out] */ BOOL *value) = 0;
3603 virtual HRESULT STDMETHODCALLTYPE GetInt(
3604 /* [in] */ BMDDeckLinkAttributeID cfgID,
3605 /* [out] */ LONGLONG *value) = 0;
3607 virtual HRESULT STDMETHODCALLTYPE GetFloat(
3608 /* [in] */ BMDDeckLinkAttributeID cfgID,
3609 /* [out] */ double *value) = 0;
3611 virtual HRESULT STDMETHODCALLTYPE GetString(
3612 /* [in] */ BMDDeckLinkAttributeID cfgID,
3613 /* [out] */ BSTR *value) = 0;
3617 #else /* C style interface */
3619 typedef struct IDeckLinkAttributesVtbl
3623 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3624 IDeckLinkAttributes * This,
3625 /* [in] */ REFIID riid,
3626 /* [annotation][iid_is][out] */
3627 __RPC__deref_out void **ppvObject);
3629 ULONG ( STDMETHODCALLTYPE *AddRef )(
3630 IDeckLinkAttributes * This);
3632 ULONG ( STDMETHODCALLTYPE *Release )(
3633 IDeckLinkAttributes * This);
3635 HRESULT ( STDMETHODCALLTYPE *GetFlag )(
3636 IDeckLinkAttributes * This,
3637 /* [in] */ BMDDeckLinkAttributeID cfgID,
3638 /* [out] */ BOOL *value);
3640 HRESULT ( STDMETHODCALLTYPE *GetInt )(
3641 IDeckLinkAttributes * This,
3642 /* [in] */ BMDDeckLinkAttributeID cfgID,
3643 /* [out] */ LONGLONG *value);
3645 HRESULT ( STDMETHODCALLTYPE *GetFloat )(
3646 IDeckLinkAttributes * This,
3647 /* [in] */ BMDDeckLinkAttributeID cfgID,
3648 /* [out] */ double *value);
3650 HRESULT ( STDMETHODCALLTYPE *GetString )(
3651 IDeckLinkAttributes * This,
3652 /* [in] */ BMDDeckLinkAttributeID cfgID,
3653 /* [out] */ BSTR *value);
3656 } IDeckLinkAttributesVtbl;
3658 interface IDeckLinkAttributes
3660 CONST_VTBL struct IDeckLinkAttributesVtbl *lpVtbl;
3668 #define IDeckLinkAttributes_QueryInterface(This,riid,ppvObject) \
3669 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3671 #define IDeckLinkAttributes_AddRef(This) \
3672 ( (This)->lpVtbl -> AddRef(This) )
3674 #define IDeckLinkAttributes_Release(This) \
3675 ( (This)->lpVtbl -> Release(This) )
3678 #define IDeckLinkAttributes_GetFlag(This,cfgID,value) \
3679 ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
3681 #define IDeckLinkAttributes_GetInt(This,cfgID,value) \
3682 ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
3684 #define IDeckLinkAttributes_GetFloat(This,cfgID,value) \
3685 ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
3687 #define IDeckLinkAttributes_GetString(This,cfgID,value) \
3688 ( (This)->lpVtbl -> GetString(This,cfgID,value) )
3690 #endif /* COBJMACROS */
3693 #endif /* C style interface */
3698 #endif /* __IDeckLinkAttributes_INTERFACE_DEFINED__ */
3701 #ifndef __IDeckLinkKeyer_INTERFACE_DEFINED__
3702 #define __IDeckLinkKeyer_INTERFACE_DEFINED__
3704 /* interface IDeckLinkKeyer */
3705 /* [helpstring][local][uuid][object] */
3708 EXTERN_C const IID IID_IDeckLinkKeyer;
3710 #if defined(__cplusplus) && !defined(CINTERFACE)
3712 MIDL_INTERFACE("89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3")
3713 IDeckLinkKeyer : public IUnknown
3716 virtual HRESULT STDMETHODCALLTYPE Enable(
3717 /* [in] */ BOOL isExternal) = 0;
3719 virtual HRESULT STDMETHODCALLTYPE SetLevel(
3720 /* [in] */ unsigned char level) = 0;
3722 virtual HRESULT STDMETHODCALLTYPE RampUp(
3723 /* [in] */ unsigned long numberOfFrames) = 0;
3725 virtual HRESULT STDMETHODCALLTYPE RampDown(
3726 /* [in] */ unsigned long numberOfFrames) = 0;
3728 virtual HRESULT STDMETHODCALLTYPE Disable( void) = 0;
3732 #else /* C style interface */
3734 typedef struct IDeckLinkKeyerVtbl
3738 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3739 IDeckLinkKeyer * This,
3740 /* [in] */ REFIID riid,
3741 /* [annotation][iid_is][out] */
3742 __RPC__deref_out void **ppvObject);
3744 ULONG ( STDMETHODCALLTYPE *AddRef )(
3745 IDeckLinkKeyer * This);
3747 ULONG ( STDMETHODCALLTYPE *Release )(
3748 IDeckLinkKeyer * This);
3750 HRESULT ( STDMETHODCALLTYPE *Enable )(
3751 IDeckLinkKeyer * This,
3752 /* [in] */ BOOL isExternal);
3754 HRESULT ( STDMETHODCALLTYPE *SetLevel )(
3755 IDeckLinkKeyer * This,
3756 /* [in] */ unsigned char level);
3758 HRESULT ( STDMETHODCALLTYPE *RampUp )(
3759 IDeckLinkKeyer * This,
3760 /* [in] */ unsigned long numberOfFrames);
3762 HRESULT ( STDMETHODCALLTYPE *RampDown )(
3763 IDeckLinkKeyer * This,
3764 /* [in] */ unsigned long numberOfFrames);
3766 HRESULT ( STDMETHODCALLTYPE *Disable )(
3767 IDeckLinkKeyer * This);
3770 } IDeckLinkKeyerVtbl;
3772 interface IDeckLinkKeyer
3774 CONST_VTBL struct IDeckLinkKeyerVtbl *lpVtbl;
3782 #define IDeckLinkKeyer_QueryInterface(This,riid,ppvObject) \
3783 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3785 #define IDeckLinkKeyer_AddRef(This) \
3786 ( (This)->lpVtbl -> AddRef(This) )
3788 #define IDeckLinkKeyer_Release(This) \
3789 ( (This)->lpVtbl -> Release(This) )
3792 #define IDeckLinkKeyer_Enable(This,isExternal) \
3793 ( (This)->lpVtbl -> Enable(This,isExternal) )
3795 #define IDeckLinkKeyer_SetLevel(This,level) \
3796 ( (This)->lpVtbl -> SetLevel(This,level) )
3798 #define IDeckLinkKeyer_RampUp(This,numberOfFrames) \
3799 ( (This)->lpVtbl -> RampUp(This,numberOfFrames) )
3801 #define IDeckLinkKeyer_RampDown(This,numberOfFrames) \
3802 ( (This)->lpVtbl -> RampDown(This,numberOfFrames) )
3804 #define IDeckLinkKeyer_Disable(This) \
3805 ( (This)->lpVtbl -> Disable(This) )
3807 #endif /* COBJMACROS */
3810 #endif /* C style interface */
3815 #endif /* __IDeckLinkKeyer_INTERFACE_DEFINED__ */
3818 #ifndef __IDeckLinkVideoConversion_INTERFACE_DEFINED__
3819 #define __IDeckLinkVideoConversion_INTERFACE_DEFINED__
3821 /* interface IDeckLinkVideoConversion */
3822 /* [helpstring][local][uuid][object] */
3825 EXTERN_C const IID IID_IDeckLinkVideoConversion;
3827 #if defined(__cplusplus) && !defined(CINTERFACE)
3829 MIDL_INTERFACE("3BBCB8A2-DA2C-42D9-B5D8-88083644E99A")
3830 IDeckLinkVideoConversion : public IUnknown
3833 virtual HRESULT STDMETHODCALLTYPE ConvertFrame(
3834 /* [in] */ IDeckLinkVideoFrame *srcFrame,
3835 /* [in] */ IDeckLinkVideoFrame *dstFrame) = 0;
3839 #else /* C style interface */
3841 typedef struct IDeckLinkVideoConversionVtbl
3845 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3846 IDeckLinkVideoConversion * This,
3847 /* [in] */ REFIID riid,
3848 /* [annotation][iid_is][out] */
3849 __RPC__deref_out void **ppvObject);
3851 ULONG ( STDMETHODCALLTYPE *AddRef )(
3852 IDeckLinkVideoConversion * This);
3854 ULONG ( STDMETHODCALLTYPE *Release )(
3855 IDeckLinkVideoConversion * This);
3857 HRESULT ( STDMETHODCALLTYPE *ConvertFrame )(
3858 IDeckLinkVideoConversion * This,
3859 /* [in] */ IDeckLinkVideoFrame *srcFrame,
3860 /* [in] */ IDeckLinkVideoFrame *dstFrame);
3863 } IDeckLinkVideoConversionVtbl;
3865 interface IDeckLinkVideoConversion
3867 CONST_VTBL struct IDeckLinkVideoConversionVtbl *lpVtbl;
3875 #define IDeckLinkVideoConversion_QueryInterface(This,riid,ppvObject) \
3876 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3878 #define IDeckLinkVideoConversion_AddRef(This) \
3879 ( (This)->lpVtbl -> AddRef(This) )
3881 #define IDeckLinkVideoConversion_Release(This) \
3882 ( (This)->lpVtbl -> Release(This) )
3885 #define IDeckLinkVideoConversion_ConvertFrame(This,srcFrame,dstFrame) \
3886 ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) )
3888 #endif /* COBJMACROS */
3891 #endif /* C style interface */
3896 #endif /* __IDeckLinkVideoConversion_INTERFACE_DEFINED__ */
3899 #ifndef __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__
3900 #define __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__
3902 /* interface IDeckLinkDeckControlStatusCallback */
3903 /* [helpstring][uuid][object] */
3906 EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback;
3908 #if defined(__cplusplus) && !defined(CINTERFACE)
3910 MIDL_INTERFACE("E5F693C1-4283-4716-B18F-C1431521955B")
3911 IDeckLinkDeckControlStatusCallback : public IUnknown
3914 virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate(
3915 /* [in] */ BMDTimecodeBCD currentTimecode) = 0;
3917 virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged(
3918 /* [in] */ BMDDeckControlVTRControlState newState,
3919 /* [in] */ BMDDeckControlError error) = 0;
3921 virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived(
3922 /* [in] */ BMDDeckControlEvent event,
3923 /* [in] */ BMDDeckControlError error) = 0;
3925 virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged(
3926 /* [in] */ BMDDeckControlStatusFlags flags,
3927 /* [in] */ unsigned long mask) = 0;
3931 #else /* C style interface */
3933 typedef struct IDeckLinkDeckControlStatusCallbackVtbl
3937 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3938 IDeckLinkDeckControlStatusCallback * This,
3939 /* [in] */ REFIID riid,
3940 /* [annotation][iid_is][out] */
3941 __RPC__deref_out void **ppvObject);
3943 ULONG ( STDMETHODCALLTYPE *AddRef )(
3944 IDeckLinkDeckControlStatusCallback * This);
3946 ULONG ( STDMETHODCALLTYPE *Release )(
3947 IDeckLinkDeckControlStatusCallback * This);
3949 HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )(
3950 IDeckLinkDeckControlStatusCallback * This,
3951 /* [in] */ BMDTimecodeBCD currentTimecode);
3953 HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )(
3954 IDeckLinkDeckControlStatusCallback * This,
3955 /* [in] */ BMDDeckControlVTRControlState newState,
3956 /* [in] */ BMDDeckControlError error);
3958 HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )(
3959 IDeckLinkDeckControlStatusCallback * This,
3960 /* [in] */ BMDDeckControlEvent event,
3961 /* [in] */ BMDDeckControlError error);
3963 HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )(
3964 IDeckLinkDeckControlStatusCallback * This,
3965 /* [in] */ BMDDeckControlStatusFlags flags,
3966 /* [in] */ unsigned long mask);
3969 } IDeckLinkDeckControlStatusCallbackVtbl;
3971 interface IDeckLinkDeckControlStatusCallback
3973 CONST_VTBL struct IDeckLinkDeckControlStatusCallbackVtbl *lpVtbl;
3981 #define IDeckLinkDeckControlStatusCallback_QueryInterface(This,riid,ppvObject) \
3982 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3984 #define IDeckLinkDeckControlStatusCallback_AddRef(This) \
3985 ( (This)->lpVtbl -> AddRef(This) )
3987 #define IDeckLinkDeckControlStatusCallback_Release(This) \
3988 ( (This)->lpVtbl -> Release(This) )
3991 #define IDeckLinkDeckControlStatusCallback_TimecodeUpdate(This,currentTimecode) \
3992 ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) )
3994 #define IDeckLinkDeckControlStatusCallback_VTRControlStateChanged(This,newState,error) \
3995 ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) )
3997 #define IDeckLinkDeckControlStatusCallback_DeckControlEventReceived(This,event,error) \
3998 ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) )
4000 #define IDeckLinkDeckControlStatusCallback_DeckControlStatusChanged(This,flags,mask) \
4001 ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) )
4003 #endif /* COBJMACROS */
4006 #endif /* C style interface */
4011 #endif /* __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ */
4014 #ifndef __IDeckLinkDeckControl_INTERFACE_DEFINED__
4015 #define __IDeckLinkDeckControl_INTERFACE_DEFINED__
4017 /* interface IDeckLinkDeckControl */
4018 /* [helpstring][uuid][object] */
4021 EXTERN_C const IID IID_IDeckLinkDeckControl;
4023 #if defined(__cplusplus) && !defined(CINTERFACE)
4025 MIDL_INTERFACE("A4D81043-0619-42B7-8ED6-602D29041DF7")
4026 IDeckLinkDeckControl : public IUnknown
4029 virtual HRESULT STDMETHODCALLTYPE Open(
4030 /* [in] */ BMDTimeScale timeScale,
4031 /* [in] */ BMDTimeValue timeValue,
4032 /* [in] */ BOOL timecodeIsDropFrame,
4033 /* [out] */ BMDDeckControlError *error) = 0;
4035 virtual HRESULT STDMETHODCALLTYPE Close(
4036 /* [in] */ BOOL standbyOn) = 0;
4038 virtual HRESULT STDMETHODCALLTYPE GetCurrentState(
4039 /* [out] */ BMDDeckControlMode *mode,
4040 /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
4041 /* [out] */ BMDDeckControlStatusFlags *flags) = 0;
4043 virtual HRESULT STDMETHODCALLTYPE SetStandby(
4044 /* [in] */ BOOL standbyOn) = 0;
4046 virtual HRESULT STDMETHODCALLTYPE Play(
4047 /* [out] */ BMDDeckControlError *error) = 0;
4049 virtual HRESULT STDMETHODCALLTYPE Stop(
4050 /* [out] */ BMDDeckControlError *error) = 0;
4052 virtual HRESULT STDMETHODCALLTYPE TogglePlayStop(
4053 /* [out] */ BMDDeckControlError *error) = 0;
4055 virtual HRESULT STDMETHODCALLTYPE Eject(
4056 /* [out] */ BMDDeckControlError *error) = 0;
4058 virtual HRESULT STDMETHODCALLTYPE GoToTimecode(
4059 /* [in] */ BMDTimecodeBCD timecode,
4060 /* [out] */ BMDDeckControlError *error) = 0;
4062 virtual HRESULT STDMETHODCALLTYPE FastForward(
4063 /* [in] */ BOOL viewTape,
4064 /* [out] */ BMDDeckControlError *error) = 0;
4066 virtual HRESULT STDMETHODCALLTYPE Rewind(
4067 /* [in] */ BOOL viewTape,
4068 /* [out] */ BMDDeckControlError *error) = 0;
4070 virtual HRESULT STDMETHODCALLTYPE StepForward(
4071 /* [out] */ BMDDeckControlError *error) = 0;
4073 virtual HRESULT STDMETHODCALLTYPE StepBack(
4074 /* [out] */ BMDDeckControlError *error) = 0;
4076 virtual HRESULT STDMETHODCALLTYPE Jog(
4077 /* [in] */ double rate,
4078 /* [out] */ BMDDeckControlError *error) = 0;
4080 virtual HRESULT STDMETHODCALLTYPE Shuttle(
4081 /* [in] */ double rate,
4082 /* [out] */ BMDDeckControlError *error) = 0;
4084 virtual HRESULT STDMETHODCALLTYPE GetTimecodeString(
4085 /* [out] */ BSTR *currentTimeCode,
4086 /* [out] */ BMDDeckControlError *error) = 0;
4088 virtual HRESULT STDMETHODCALLTYPE GetTimecode(
4089 /* [out] */ IDeckLinkTimecode **currentTimecode,
4090 /* [out] */ BMDDeckControlError *error) = 0;
4092 virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD(
4093 /* [out] */ BMDTimecodeBCD *currentTimecode,
4094 /* [out] */ BMDDeckControlError *error) = 0;
4096 virtual HRESULT STDMETHODCALLTYPE SetPreroll(
4097 /* [in] */ unsigned long prerollSeconds) = 0;
4099 virtual HRESULT STDMETHODCALLTYPE GetPreroll(
4100 /* [out] */ unsigned long *prerollSeconds) = 0;
4102 virtual HRESULT STDMETHODCALLTYPE SetExportOffset(
4103 /* [in] */ long exportOffsetFields) = 0;
4105 virtual HRESULT STDMETHODCALLTYPE GetExportOffset(
4106 /* [out] */ long *exportOffsetFields) = 0;
4108 virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset(
4109 /* [out] */ long *deckManualExportOffsetFields) = 0;
4111 virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset(
4112 /* [in] */ long captureOffsetFields) = 0;
4114 virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset(
4115 /* [out] */ long *captureOffsetFields) = 0;
4117 virtual HRESULT STDMETHODCALLTYPE StartExport(
4118 /* [in] */ BMDTimecodeBCD inTimecode,
4119 /* [in] */ BMDTimecodeBCD outTimecode,
4120 /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
4121 /* [out] */ BMDDeckControlError *error) = 0;
4123 virtual HRESULT STDMETHODCALLTYPE StartCapture(
4124 /* [in] */ BOOL useVITC,
4125 /* [in] */ BMDTimecodeBCD inTimecode,
4126 /* [in] */ BMDTimecodeBCD outTimecode,
4127 /* [out] */ BMDDeckControlError *error) = 0;
4129 virtual HRESULT STDMETHODCALLTYPE GetDeviceID(
4130 /* [out] */ unsigned short *deviceId,
4131 /* [out] */ BMDDeckControlError *error) = 0;
4133 virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
4135 virtual HRESULT STDMETHODCALLTYPE CrashRecordStart(
4136 /* [out] */ BMDDeckControlError *error) = 0;
4138 virtual HRESULT STDMETHODCALLTYPE CrashRecordStop(
4139 /* [out] */ BMDDeckControlError *error) = 0;
4141 virtual HRESULT STDMETHODCALLTYPE SetCallback(
4142 /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;
4146 #else /* C style interface */
4148 typedef struct IDeckLinkDeckControlVtbl
4152 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4153 IDeckLinkDeckControl * This,
4154 /* [in] */ REFIID riid,
4155 /* [annotation][iid_is][out] */
4156 __RPC__deref_out void **ppvObject);
4158 ULONG ( STDMETHODCALLTYPE *AddRef )(
4159 IDeckLinkDeckControl * This);
4161 ULONG ( STDMETHODCALLTYPE *Release )(
4162 IDeckLinkDeckControl * This);
4164 HRESULT ( STDMETHODCALLTYPE *Open )(
4165 IDeckLinkDeckControl * This,
4166 /* [in] */ BMDTimeScale timeScale,
4167 /* [in] */ BMDTimeValue timeValue,
4168 /* [in] */ BOOL timecodeIsDropFrame,
4169 /* [out] */ BMDDeckControlError *error);
4171 HRESULT ( STDMETHODCALLTYPE *Close )(
4172 IDeckLinkDeckControl * This,
4173 /* [in] */ BOOL standbyOn);
4175 HRESULT ( STDMETHODCALLTYPE *GetCurrentState )(
4176 IDeckLinkDeckControl * This,
4177 /* [out] */ BMDDeckControlMode *mode,
4178 /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
4179 /* [out] */ BMDDeckControlStatusFlags *flags);
4181 HRESULT ( STDMETHODCALLTYPE *SetStandby )(
4182 IDeckLinkDeckControl * This,
4183 /* [in] */ BOOL standbyOn);
4185 HRESULT ( STDMETHODCALLTYPE *Play )(
4186 IDeckLinkDeckControl * This,
4187 /* [out] */ BMDDeckControlError *error);
4189 HRESULT ( STDMETHODCALLTYPE *Stop )(
4190 IDeckLinkDeckControl * This,
4191 /* [out] */ BMDDeckControlError *error);
4193 HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )(
4194 IDeckLinkDeckControl * This,
4195 /* [out] */ BMDDeckControlError *error);
4197 HRESULT ( STDMETHODCALLTYPE *Eject )(
4198 IDeckLinkDeckControl * This,
4199 /* [out] */ BMDDeckControlError *error);
4201 HRESULT ( STDMETHODCALLTYPE *GoToTimecode )(
4202 IDeckLinkDeckControl * This,
4203 /* [in] */ BMDTimecodeBCD timecode,
4204 /* [out] */ BMDDeckControlError *error);
4206 HRESULT ( STDMETHODCALLTYPE *FastForward )(
4207 IDeckLinkDeckControl * This,
4208 /* [in] */ BOOL viewTape,
4209 /* [out] */ BMDDeckControlError *error);
4211 HRESULT ( STDMETHODCALLTYPE *Rewind )(
4212 IDeckLinkDeckControl * This,
4213 /* [in] */ BOOL viewTape,
4214 /* [out] */ BMDDeckControlError *error);
4216 HRESULT ( STDMETHODCALLTYPE *StepForward )(
4217 IDeckLinkDeckControl * This,
4218 /* [out] */ BMDDeckControlError *error);
4220 HRESULT ( STDMETHODCALLTYPE *StepBack )(
4221 IDeckLinkDeckControl * This,
4222 /* [out] */ BMDDeckControlError *error);
4224 HRESULT ( STDMETHODCALLTYPE *Jog )(
4225 IDeckLinkDeckControl * This,
4226 /* [in] */ double rate,
4227 /* [out] */ BMDDeckControlError *error);
4229 HRESULT ( STDMETHODCALLTYPE *Shuttle )(
4230 IDeckLinkDeckControl * This,
4231 /* [in] */ double rate,
4232 /* [out] */ BMDDeckControlError *error);
4234 HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )(
4235 IDeckLinkDeckControl * This,
4236 /* [out] */ BSTR *currentTimeCode,
4237 /* [out] */ BMDDeckControlError *error);
4239 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
4240 IDeckLinkDeckControl * This,
4241 /* [out] */ IDeckLinkTimecode **currentTimecode,
4242 /* [out] */ BMDDeckControlError *error);
4244 HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )(
4245 IDeckLinkDeckControl * This,
4246 /* [out] */ BMDTimecodeBCD *currentTimecode,
4247 /* [out] */ BMDDeckControlError *error);
4249 HRESULT ( STDMETHODCALLTYPE *SetPreroll )(
4250 IDeckLinkDeckControl * This,
4251 /* [in] */ unsigned long prerollSeconds);
4253 HRESULT ( STDMETHODCALLTYPE *GetPreroll )(
4254 IDeckLinkDeckControl * This,
4255 /* [out] */ unsigned long *prerollSeconds);
4257 HRESULT ( STDMETHODCALLTYPE *SetExportOffset )(
4258 IDeckLinkDeckControl * This,
4259 /* [in] */ long exportOffsetFields);
4261 HRESULT ( STDMETHODCALLTYPE *GetExportOffset )(
4262 IDeckLinkDeckControl * This,
4263 /* [out] */ long *exportOffsetFields);
4265 HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )(
4266 IDeckLinkDeckControl * This,
4267 /* [out] */ long *deckManualExportOffsetFields);
4269 HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )(
4270 IDeckLinkDeckControl * This,
4271 /* [in] */ long captureOffsetFields);
4273 HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )(
4274 IDeckLinkDeckControl * This,
4275 /* [out] */ long *captureOffsetFields);
4277 HRESULT ( STDMETHODCALLTYPE *StartExport )(
4278 IDeckLinkDeckControl * This,
4279 /* [in] */ BMDTimecodeBCD inTimecode,
4280 /* [in] */ BMDTimecodeBCD outTimecode,
4281 /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
4282 /* [out] */ BMDDeckControlError *error);
4284 HRESULT ( STDMETHODCALLTYPE *StartCapture )(
4285 IDeckLinkDeckControl * This,
4286 /* [in] */ BOOL useVITC,
4287 /* [in] */ BMDTimecodeBCD inTimecode,
4288 /* [in] */ BMDTimecodeBCD outTimecode,
4289 /* [out] */ BMDDeckControlError *error);
4291 HRESULT ( STDMETHODCALLTYPE *GetDeviceID )(
4292 IDeckLinkDeckControl * This,
4293 /* [out] */ unsigned short *deviceId,
4294 /* [out] */ BMDDeckControlError *error);
4296 HRESULT ( STDMETHODCALLTYPE *Abort )(
4297 IDeckLinkDeckControl * This);
4299 HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )(
4300 IDeckLinkDeckControl * This,
4301 /* [out] */ BMDDeckControlError *error);
4303 HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )(
4304 IDeckLinkDeckControl * This,
4305 /* [out] */ BMDDeckControlError *error);
4307 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
4308 IDeckLinkDeckControl * This,
4309 /* [in] */ IDeckLinkDeckControlStatusCallback *callback);
4312 } IDeckLinkDeckControlVtbl;
4314 interface IDeckLinkDeckControl
4316 CONST_VTBL struct IDeckLinkDeckControlVtbl *lpVtbl;
4324 #define IDeckLinkDeckControl_QueryInterface(This,riid,ppvObject) \
4325 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4327 #define IDeckLinkDeckControl_AddRef(This) \
4328 ( (This)->lpVtbl -> AddRef(This) )
4330 #define IDeckLinkDeckControl_Release(This) \
4331 ( (This)->lpVtbl -> Release(This) )
4334 #define IDeckLinkDeckControl_Open(This,timeScale,timeValue,timecodeIsDropFrame,error) \
4335 ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) )
4337 #define IDeckLinkDeckControl_Close(This,standbyOn) \
4338 ( (This)->lpVtbl -> Close(This,standbyOn) )
4340 #define IDeckLinkDeckControl_GetCurrentState(This,mode,vtrControlState,flags) \
4341 ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) )
4343 #define IDeckLinkDeckControl_SetStandby(This,standbyOn) \
4344 ( (This)->lpVtbl -> SetStandby(This,standbyOn) )
4346 #define IDeckLinkDeckControl_Play(This,error) \
4347 ( (This)->lpVtbl -> Play(This,error) )
4349 #define IDeckLinkDeckControl_Stop(This,error) \
4350 ( (This)->lpVtbl -> Stop(This,error) )
4352 #define IDeckLinkDeckControl_TogglePlayStop(This,error) \
4353 ( (This)->lpVtbl -> TogglePlayStop(This,error) )
4355 #define IDeckLinkDeckControl_Eject(This,error) \
4356 ( (This)->lpVtbl -> Eject(This,error) )
4358 #define IDeckLinkDeckControl_GoToTimecode(This,timecode,error) \
4359 ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) )
4361 #define IDeckLinkDeckControl_FastForward(This,viewTape,error) \
4362 ( (This)->lpVtbl -> FastForward(This,viewTape,error) )
4364 #define IDeckLinkDeckControl_Rewind(This,viewTape,error) \
4365 ( (This)->lpVtbl -> Rewind(This,viewTape,error) )
4367 #define IDeckLinkDeckControl_StepForward(This,error) \
4368 ( (This)->lpVtbl -> StepForward(This,error) )
4370 #define IDeckLinkDeckControl_StepBack(This,error) \
4371 ( (This)->lpVtbl -> StepBack(This,error) )
4373 #define IDeckLinkDeckControl_Jog(This,rate,error) \
4374 ( (This)->lpVtbl -> Jog(This,rate,error) )
4376 #define IDeckLinkDeckControl_Shuttle(This,rate,error) \
4377 ( (This)->lpVtbl -> Shuttle(This,rate,error) )
4379 #define IDeckLinkDeckControl_GetTimecodeString(This,currentTimeCode,error) \
4380 ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) )
4382 #define IDeckLinkDeckControl_GetTimecode(This,currentTimecode,error) \
4383 ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) )
4385 #define IDeckLinkDeckControl_GetTimecodeBCD(This,currentTimecode,error) \
4386 ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) )
4388 #define IDeckLinkDeckControl_SetPreroll(This,prerollSeconds) \
4389 ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) )
4391 #define IDeckLinkDeckControl_GetPreroll(This,prerollSeconds) \
4392 ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) )
4394 #define IDeckLinkDeckControl_SetExportOffset(This,exportOffsetFields) \
4395 ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) )
4397 #define IDeckLinkDeckControl_GetExportOffset(This,exportOffsetFields) \
4398 ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) )
4400 #define IDeckLinkDeckControl_GetManualExportOffset(This,deckManualExportOffsetFields) \
4401 ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) )
4403 #define IDeckLinkDeckControl_SetCaptureOffset(This,captureOffsetFields) \
4404 ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) )
4406 #define IDeckLinkDeckControl_GetCaptureOffset(This,captureOffsetFields) \
4407 ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) )
4409 #define IDeckLinkDeckControl_StartExport(This,inTimecode,outTimecode,exportModeOps,error) \
4410 ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) )
4412 #define IDeckLinkDeckControl_StartCapture(This,useVITC,inTimecode,outTimecode,error) \
4413 ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) )
4415 #define IDeckLinkDeckControl_GetDeviceID(This,deviceId,error) \
4416 ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) )
4418 #define IDeckLinkDeckControl_Abort(This) \
4419 ( (This)->lpVtbl -> Abort(This) )
4421 #define IDeckLinkDeckControl_CrashRecordStart(This,error) \
4422 ( (This)->lpVtbl -> CrashRecordStart(This,error) )
4424 #define IDeckLinkDeckControl_CrashRecordStop(This,error) \
4425 ( (This)->lpVtbl -> CrashRecordStop(This,error) )
4427 #define IDeckLinkDeckControl_SetCallback(This,callback) \
4428 ( (This)->lpVtbl -> SetCallback(This,callback) )
4430 #endif /* COBJMACROS */
4433 #endif /* C style interface */
4438 #endif /* __IDeckLinkDeckControl_INTERFACE_DEFINED__ */
4441 EXTERN_C const CLSID CLSID_CDeckLinkIterator;
4445 class DECLSPEC_UUID("D9EDA3B3-2887-41FA-B724-017CF1EB1D37")
4449 EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper;
4453 class DECLSPEC_UUID("F63E77C7-B655-4A4A-9AD0-3CA85D394343")
4454 CDeckLinkGLScreenPreviewHelper;
4457 EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion;
4461 class DECLSPEC_UUID("7DBBBB11-5B7B-467D-AEA4-CEA468FD368C")
4462 CDeckLinkVideoConversion;
4465 #ifndef __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__
4466 #define __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__
4468 /* interface IDeckLinkDisplayModeIterator_v7_6 */
4469 /* [helpstring][uuid][object] */
4472 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_6;
4474 #if defined(__cplusplus) && !defined(CINTERFACE)
4476 MIDL_INTERFACE("455D741F-1779-4800-86F5-0B5D13D79751")
4477 IDeckLinkDisplayModeIterator_v7_6 : public IUnknown
4480 virtual HRESULT STDMETHODCALLTYPE Next(
4481 /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0;
4485 #else /* C style interface */
4487 typedef struct IDeckLinkDisplayModeIterator_v7_6Vtbl
4491 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4492 IDeckLinkDisplayModeIterator_v7_6 * This,
4493 /* [in] */ REFIID riid,
4494 /* [annotation][iid_is][out] */
4495 __RPC__deref_out void **ppvObject);
4497 ULONG ( STDMETHODCALLTYPE *AddRef )(
4498 IDeckLinkDisplayModeIterator_v7_6 * This);
4500 ULONG ( STDMETHODCALLTYPE *Release )(
4501 IDeckLinkDisplayModeIterator_v7_6 * This);
4503 HRESULT ( STDMETHODCALLTYPE *Next )(
4504 IDeckLinkDisplayModeIterator_v7_6 * This,
4505 /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode);
4508 } IDeckLinkDisplayModeIterator_v7_6Vtbl;
4510 interface IDeckLinkDisplayModeIterator_v7_6
4512 CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_6Vtbl *lpVtbl;
4520 #define IDeckLinkDisplayModeIterator_v7_6_QueryInterface(This,riid,ppvObject) \
4521 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4523 #define IDeckLinkDisplayModeIterator_v7_6_AddRef(This) \
4524 ( (This)->lpVtbl -> AddRef(This) )
4526 #define IDeckLinkDisplayModeIterator_v7_6_Release(This) \
4527 ( (This)->lpVtbl -> Release(This) )
4530 #define IDeckLinkDisplayModeIterator_v7_6_Next(This,deckLinkDisplayMode) \
4531 ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) )
4533 #endif /* COBJMACROS */
4536 #endif /* C style interface */
4541 #endif /* __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__ */
4544 #ifndef __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__
4545 #define __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__
4547 /* interface IDeckLinkDisplayMode_v7_6 */
4548 /* [helpstring][uuid][object] */
4551 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_6;
4553 #if defined(__cplusplus) && !defined(CINTERFACE)
4555 MIDL_INTERFACE("87451E84-2B7E-439E-A629-4393EA4A8550")
4556 IDeckLinkDisplayMode_v7_6 : public IUnknown
4559 virtual HRESULT STDMETHODCALLTYPE GetName(
4560 /* [out] */ BSTR *name) = 0;
4562 virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
4564 virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
4566 virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
4568 virtual HRESULT STDMETHODCALLTYPE GetFrameRate(
4569 /* [out] */ BMDTimeValue *frameDuration,
4570 /* [out] */ BMDTimeScale *timeScale) = 0;
4572 virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;
4576 #else /* C style interface */
4578 typedef struct IDeckLinkDisplayMode_v7_6Vtbl
4582 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4583 IDeckLinkDisplayMode_v7_6 * This,
4584 /* [in] */ REFIID riid,
4585 /* [annotation][iid_is][out] */
4586 __RPC__deref_out void **ppvObject);
4588 ULONG ( STDMETHODCALLTYPE *AddRef )(
4589 IDeckLinkDisplayMode_v7_6 * This);
4591 ULONG ( STDMETHODCALLTYPE *Release )(
4592 IDeckLinkDisplayMode_v7_6 * This);
4594 HRESULT ( STDMETHODCALLTYPE *GetName )(
4595 IDeckLinkDisplayMode_v7_6 * This,
4596 /* [out] */ BSTR *name);
4598 BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(
4599 IDeckLinkDisplayMode_v7_6 * This);
4601 long ( STDMETHODCALLTYPE *GetWidth )(
4602 IDeckLinkDisplayMode_v7_6 * This);
4604 long ( STDMETHODCALLTYPE *GetHeight )(
4605 IDeckLinkDisplayMode_v7_6 * This);
4607 HRESULT ( STDMETHODCALLTYPE *GetFrameRate )(
4608 IDeckLinkDisplayMode_v7_6 * This,
4609 /* [out] */ BMDTimeValue *frameDuration,
4610 /* [out] */ BMDTimeScale *timeScale);
4612 BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )(
4613 IDeckLinkDisplayMode_v7_6 * This);
4616 } IDeckLinkDisplayMode_v7_6Vtbl;
4618 interface IDeckLinkDisplayMode_v7_6
4620 CONST_VTBL struct IDeckLinkDisplayMode_v7_6Vtbl *lpVtbl;
4628 #define IDeckLinkDisplayMode_v7_6_QueryInterface(This,riid,ppvObject) \
4629 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4631 #define IDeckLinkDisplayMode_v7_6_AddRef(This) \
4632 ( (This)->lpVtbl -> AddRef(This) )
4634 #define IDeckLinkDisplayMode_v7_6_Release(This) \
4635 ( (This)->lpVtbl -> Release(This) )
4638 #define IDeckLinkDisplayMode_v7_6_GetName(This,name) \
4639 ( (This)->lpVtbl -> GetName(This,name) )
4641 #define IDeckLinkDisplayMode_v7_6_GetDisplayMode(This) \
4642 ( (This)->lpVtbl -> GetDisplayMode(This) )
4644 #define IDeckLinkDisplayMode_v7_6_GetWidth(This) \
4645 ( (This)->lpVtbl -> GetWidth(This) )
4647 #define IDeckLinkDisplayMode_v7_6_GetHeight(This) \
4648 ( (This)->lpVtbl -> GetHeight(This) )
4650 #define IDeckLinkDisplayMode_v7_6_GetFrameRate(This,frameDuration,timeScale) \
4651 ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) )
4653 #define IDeckLinkDisplayMode_v7_6_GetFieldDominance(This) \
4654 ( (This)->lpVtbl -> GetFieldDominance(This) )
4656 #endif /* COBJMACROS */
4659 #endif /* C style interface */
4664 #endif /* __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__ */
4667 #ifndef __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__
4668 #define __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__
4670 /* interface IDeckLinkOutput_v7_6 */
4671 /* [helpstring][local][uuid][object] */
4674 EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
4676 #if defined(__cplusplus) && !defined(CINTERFACE)
4678 MIDL_INTERFACE("29228142-EB8C-4141-A621-F74026450955")
4679 IDeckLinkOutput_v7_6 : public IUnknown
4682 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
4683 BMDDisplayMode displayMode,
4684 BMDPixelFormat pixelFormat,
4685 /* [out] */ BMDDisplayModeSupport *result) = 0;
4687 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
4688 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
4690 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
4691 /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;
4693 virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
4694 BMDDisplayMode displayMode,
4695 BMDVideoOutputFlags flags) = 0;
4697 virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
4699 virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
4700 /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
4702 virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
4706 BMDPixelFormat pixelFormat,
4707 BMDFrameFlags flags,
4708 /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;
4710 virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(
4711 BMDPixelFormat pixelFormat,
4712 /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
4714 virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
4715 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
4717 virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
4718 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
4719 BMDTimeValue displayTime,
4720 BMDTimeValue displayDuration,
4721 BMDTimeScale timeScale) = 0;
4723 virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
4724 /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0;
4726 virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(
4727 /* [out] */ unsigned long *bufferedFrameCount) = 0;
4729 virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
4730 BMDAudioSampleRate sampleRate,
4731 BMDAudioSampleType sampleType,
4732 unsigned long channelCount,
4733 BMDAudioOutputStreamType streamType) = 0;
4735 virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
4737 virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
4738 /* [in] */ void *buffer,
4739 unsigned long sampleFrameCount,
4740 /* [out] */ unsigned long *sampleFramesWritten) = 0;
4742 virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
4744 virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
4746 virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
4747 /* [in] */ void *buffer,
4748 unsigned long sampleFrameCount,
4749 BMDTimeValue streamTime,
4750 BMDTimeScale timeScale,
4751 /* [out] */ unsigned long *sampleFramesWritten) = 0;
4753 virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
4754 /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;
4756 virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
4758 virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
4759 /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
4761 virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
4762 BMDTimeValue playbackStartTime,
4763 BMDTimeScale timeScale,
4764 double playbackSpeed) = 0;
4766 virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
4767 BMDTimeValue stopPlaybackAtTime,
4768 /* [out] */ BMDTimeValue *actualStopTime,
4769 BMDTimeScale timeScale) = 0;
4771 virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(
4772 /* [out] */ BOOL *active) = 0;
4774 virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime(
4775 BMDTimeScale desiredTimeScale,
4776 /* [out] */ BMDTimeValue *streamTime,
4777 /* [out] */ double *playbackSpeed) = 0;
4779 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
4780 BMDTimeScale desiredTimeScale,
4781 /* [out] */ BMDTimeValue *hardwareTime,
4782 /* [out] */ BMDTimeValue *timeInFrame,
4783 /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
4787 #else /* C style interface */
4789 typedef struct IDeckLinkOutput_v7_6Vtbl
4793 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4794 IDeckLinkOutput_v7_6 * This,
4795 /* [in] */ REFIID riid,
4796 /* [annotation][iid_is][out] */
4797 __RPC__deref_out void **ppvObject);
4799 ULONG ( STDMETHODCALLTYPE *AddRef )(
4800 IDeckLinkOutput_v7_6 * This);
4802 ULONG ( STDMETHODCALLTYPE *Release )(
4803 IDeckLinkOutput_v7_6 * This);
4805 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
4806 IDeckLinkOutput_v7_6 * This,
4807 BMDDisplayMode displayMode,
4808 BMDPixelFormat pixelFormat,
4809 /* [out] */ BMDDisplayModeSupport *result);
4811 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
4812 IDeckLinkOutput_v7_6 * This,
4813 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
4815 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
4816 IDeckLinkOutput_v7_6 * This,
4817 /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);
4819 HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
4820 IDeckLinkOutput_v7_6 * This,
4821 BMDDisplayMode displayMode,
4822 BMDVideoOutputFlags flags);
4824 HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
4825 IDeckLinkOutput_v7_6 * This);
4827 HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
4828 IDeckLinkOutput_v7_6 * This,
4829 /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
4831 HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
4832 IDeckLinkOutput_v7_6 * This,
4836 BMDPixelFormat pixelFormat,
4837 BMDFrameFlags flags,
4838 /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);
4840 HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(
4841 IDeckLinkOutput_v7_6 * This,
4842 BMDPixelFormat pixelFormat,
4843 /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
4845 HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
4846 IDeckLinkOutput_v7_6 * This,
4847 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
4849 HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
4850 IDeckLinkOutput_v7_6 * This,
4851 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
4852 BMDTimeValue displayTime,
4853 BMDTimeValue displayDuration,
4854 BMDTimeScale timeScale);
4856 HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
4857 IDeckLinkOutput_v7_6 * This,
4858 /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback);
4860 HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(
4861 IDeckLinkOutput_v7_6 * This,
4862 /* [out] */ unsigned long *bufferedFrameCount);
4864 HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
4865 IDeckLinkOutput_v7_6 * This,
4866 BMDAudioSampleRate sampleRate,
4867 BMDAudioSampleType sampleType,
4868 unsigned long channelCount,
4869 BMDAudioOutputStreamType streamType);
4871 HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
4872 IDeckLinkOutput_v7_6 * This);
4874 HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
4875 IDeckLinkOutput_v7_6 * This,
4876 /* [in] */ void *buffer,
4877 unsigned long sampleFrameCount,
4878 /* [out] */ unsigned long *sampleFramesWritten);
4880 HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
4881 IDeckLinkOutput_v7_6 * This);
4883 HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
4884 IDeckLinkOutput_v7_6 * This);
4886 HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
4887 IDeckLinkOutput_v7_6 * This,
4888 /* [in] */ void *buffer,
4889 unsigned long sampleFrameCount,
4890 BMDTimeValue streamTime,
4891 BMDTimeScale timeScale,
4892 /* [out] */ unsigned long *sampleFramesWritten);
4894 HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
4895 IDeckLinkOutput_v7_6 * This,
4896 /* [out] */ unsigned long *bufferedSampleFrameCount);
4898 HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
4899 IDeckLinkOutput_v7_6 * This);
4901 HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
4902 IDeckLinkOutput_v7_6 * This,
4903 /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
4905 HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
4906 IDeckLinkOutput_v7_6 * This,
4907 BMDTimeValue playbackStartTime,
4908 BMDTimeScale timeScale,
4909 double playbackSpeed);
4911 HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
4912 IDeckLinkOutput_v7_6 * This,
4913 BMDTimeValue stopPlaybackAtTime,
4914 /* [out] */ BMDTimeValue *actualStopTime,
4915 BMDTimeScale timeScale);
4917 HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(
4918 IDeckLinkOutput_v7_6 * This,
4919 /* [out] */ BOOL *active);
4921 HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )(
4922 IDeckLinkOutput_v7_6 * This,
4923 BMDTimeScale desiredTimeScale,
4924 /* [out] */ BMDTimeValue *streamTime,
4925 /* [out] */ double *playbackSpeed);
4927 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
4928 IDeckLinkOutput_v7_6 * This,
4929 BMDTimeScale desiredTimeScale,
4930 /* [out] */ BMDTimeValue *hardwareTime,
4931 /* [out] */ BMDTimeValue *timeInFrame,
4932 /* [out] */ BMDTimeValue *ticksPerFrame);
4935 } IDeckLinkOutput_v7_6Vtbl;
4937 interface IDeckLinkOutput_v7_6
4939 CONST_VTBL struct IDeckLinkOutput_v7_6Vtbl *lpVtbl;
4947 #define IDeckLinkOutput_v7_6_QueryInterface(This,riid,ppvObject) \
4948 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4950 #define IDeckLinkOutput_v7_6_AddRef(This) \
4951 ( (This)->lpVtbl -> AddRef(This) )
4953 #define IDeckLinkOutput_v7_6_Release(This) \
4954 ( (This)->lpVtbl -> Release(This) )
4957 #define IDeckLinkOutput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \
4958 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
4960 #define IDeckLinkOutput_v7_6_GetDisplayModeIterator(This,iterator) \
4961 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
4963 #define IDeckLinkOutput_v7_6_SetScreenPreviewCallback(This,previewCallback) \
4964 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
4966 #define IDeckLinkOutput_v7_6_EnableVideoOutput(This,displayMode,flags) \
4967 ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )
4969 #define IDeckLinkOutput_v7_6_DisableVideoOutput(This) \
4970 ( (This)->lpVtbl -> DisableVideoOutput(This) )
4972 #define IDeckLinkOutput_v7_6_SetVideoOutputFrameMemoryAllocator(This,theAllocator) \
4973 ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
4975 #define IDeckLinkOutput_v7_6_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \
4976 ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
4978 #define IDeckLinkOutput_v7_6_CreateAncillaryData(This,pixelFormat,outBuffer) \
4979 ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )
4981 #define IDeckLinkOutput_v7_6_DisplayVideoFrameSync(This,theFrame) \
4982 ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
4984 #define IDeckLinkOutput_v7_6_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \
4985 ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
4987 #define IDeckLinkOutput_v7_6_SetScheduledFrameCompletionCallback(This,theCallback) \
4988 ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
4990 #define IDeckLinkOutput_v7_6_GetBufferedVideoFrameCount(This,bufferedFrameCount) \
4991 ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )
4993 #define IDeckLinkOutput_v7_6_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) \
4994 ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )
4996 #define IDeckLinkOutput_v7_6_DisableAudioOutput(This) \
4997 ( (This)->lpVtbl -> DisableAudioOutput(This) )
4999 #define IDeckLinkOutput_v7_6_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \
5000 ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
5002 #define IDeckLinkOutput_v7_6_BeginAudioPreroll(This) \
5003 ( (This)->lpVtbl -> BeginAudioPreroll(This) )
5005 #define IDeckLinkOutput_v7_6_EndAudioPreroll(This) \
5006 ( (This)->lpVtbl -> EndAudioPreroll(This) )
5008 #define IDeckLinkOutput_v7_6_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) \
5009 ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
5011 #define IDeckLinkOutput_v7_6_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \
5012 ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )
5014 #define IDeckLinkOutput_v7_6_FlushBufferedAudioSamples(This) \
5015 ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
5017 #define IDeckLinkOutput_v7_6_SetAudioCallback(This,theCallback) \
5018 ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
5020 #define IDeckLinkOutput_v7_6_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \
5021 ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
5023 #define IDeckLinkOutput_v7_6_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \
5024 ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
5026 #define IDeckLinkOutput_v7_6_IsScheduledPlaybackRunning(This,active) \
5027 ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )
5029 #define IDeckLinkOutput_v7_6_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) \
5030 ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) )
5032 #define IDeckLinkOutput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \
5033 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
5035 #endif /* COBJMACROS */
5038 #endif /* C style interface */
5043 #endif /* __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__ */
5046 #ifndef __IDeckLinkInput_v7_6_INTERFACE_DEFINED__
5047 #define __IDeckLinkInput_v7_6_INTERFACE_DEFINED__
5049 /* interface IDeckLinkInput_v7_6 */
5050 /* [helpstring][uuid][object] */
5053 EXTERN_C const IID IID_IDeckLinkInput_v7_6;
5055 #if defined(__cplusplus) && !defined(CINTERFACE)
5057 MIDL_INTERFACE("300C135A-9F43-48E2-9906-6D7911D93CF1")
5058 IDeckLinkInput_v7_6 : public IUnknown
5061 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
5062 BMDDisplayMode displayMode,
5063 BMDPixelFormat pixelFormat,
5064 /* [out] */ BMDDisplayModeSupport *result) = 0;
5066 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
5067 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
5069 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
5070 /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;
5072 virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
5073 BMDDisplayMode displayMode,
5074 BMDPixelFormat pixelFormat,
5075 BMDVideoInputFlags flags) = 0;
5077 virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
5079 virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(
5080 /* [out] */ unsigned long *availableFrameCount) = 0;
5082 virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
5083 BMDAudioSampleRate sampleRate,
5084 BMDAudioSampleType sampleType,
5085 unsigned long channelCount) = 0;
5087 virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
5089 virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
5090 /* [out] */ unsigned long *availableSampleFrameCount) = 0;
5092 virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
5094 virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
5096 virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
5098 virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
5100 virtual HRESULT STDMETHODCALLTYPE SetCallback(
5101 /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback) = 0;
5103 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
5104 BMDTimeScale desiredTimeScale,
5105 /* [out] */ BMDTimeValue *hardwareTime,
5106 /* [out] */ BMDTimeValue *timeInFrame,
5107 /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
5111 #else /* C style interface */
5113 typedef struct IDeckLinkInput_v7_6Vtbl
5117 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5118 IDeckLinkInput_v7_6 * This,
5119 /* [in] */ REFIID riid,
5120 /* [annotation][iid_is][out] */
5121 __RPC__deref_out void **ppvObject);
5123 ULONG ( STDMETHODCALLTYPE *AddRef )(
5124 IDeckLinkInput_v7_6 * This);
5126 ULONG ( STDMETHODCALLTYPE *Release )(
5127 IDeckLinkInput_v7_6 * This);
5129 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
5130 IDeckLinkInput_v7_6 * This,
5131 BMDDisplayMode displayMode,
5132 BMDPixelFormat pixelFormat,
5133 /* [out] */ BMDDisplayModeSupport *result);
5135 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
5136 IDeckLinkInput_v7_6 * This,
5137 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
5139 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
5140 IDeckLinkInput_v7_6 * This,
5141 /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);
5143 HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
5144 IDeckLinkInput_v7_6 * This,
5145 BMDDisplayMode displayMode,
5146 BMDPixelFormat pixelFormat,
5147 BMDVideoInputFlags flags);
5149 HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
5150 IDeckLinkInput_v7_6 * This);
5152 HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(
5153 IDeckLinkInput_v7_6 * This,
5154 /* [out] */ unsigned long *availableFrameCount);
5156 HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
5157 IDeckLinkInput_v7_6 * This,
5158 BMDAudioSampleRate sampleRate,
5159 BMDAudioSampleType sampleType,
5160 unsigned long channelCount);
5162 HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
5163 IDeckLinkInput_v7_6 * This);
5165 HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
5166 IDeckLinkInput_v7_6 * This,
5167 /* [out] */ unsigned long *availableSampleFrameCount);
5169 HRESULT ( STDMETHODCALLTYPE *StartStreams )(
5170 IDeckLinkInput_v7_6 * This);
5172 HRESULT ( STDMETHODCALLTYPE *StopStreams )(
5173 IDeckLinkInput_v7_6 * This);
5175 HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
5176 IDeckLinkInput_v7_6 * This);
5178 HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
5179 IDeckLinkInput_v7_6 * This);
5181 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
5182 IDeckLinkInput_v7_6 * This,
5183 /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback);
5185 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
5186 IDeckLinkInput_v7_6 * This,
5187 BMDTimeScale desiredTimeScale,
5188 /* [out] */ BMDTimeValue *hardwareTime,
5189 /* [out] */ BMDTimeValue *timeInFrame,
5190 /* [out] */ BMDTimeValue *ticksPerFrame);
5193 } IDeckLinkInput_v7_6Vtbl;
5195 interface IDeckLinkInput_v7_6
5197 CONST_VTBL struct IDeckLinkInput_v7_6Vtbl *lpVtbl;
5205 #define IDeckLinkInput_v7_6_QueryInterface(This,riid,ppvObject) \
5206 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5208 #define IDeckLinkInput_v7_6_AddRef(This) \
5209 ( (This)->lpVtbl -> AddRef(This) )
5211 #define IDeckLinkInput_v7_6_Release(This) \
5212 ( (This)->lpVtbl -> Release(This) )
5215 #define IDeckLinkInput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \
5216 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
5218 #define IDeckLinkInput_v7_6_GetDisplayModeIterator(This,iterator) \
5219 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
5221 #define IDeckLinkInput_v7_6_SetScreenPreviewCallback(This,previewCallback) \
5222 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
5224 #define IDeckLinkInput_v7_6_EnableVideoInput(This,displayMode,pixelFormat,flags) \
5225 ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
5227 #define IDeckLinkInput_v7_6_DisableVideoInput(This) \
5228 ( (This)->lpVtbl -> DisableVideoInput(This) )
5230 #define IDeckLinkInput_v7_6_GetAvailableVideoFrameCount(This,availableFrameCount) \
5231 ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )
5233 #define IDeckLinkInput_v7_6_EnableAudioInput(This,sampleRate,sampleType,channelCount) \
5234 ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
5236 #define IDeckLinkInput_v7_6_DisableAudioInput(This) \
5237 ( (This)->lpVtbl -> DisableAudioInput(This) )
5239 #define IDeckLinkInput_v7_6_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) \
5240 ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
5242 #define IDeckLinkInput_v7_6_StartStreams(This) \
5243 ( (This)->lpVtbl -> StartStreams(This) )
5245 #define IDeckLinkInput_v7_6_StopStreams(This) \
5246 ( (This)->lpVtbl -> StopStreams(This) )
5248 #define IDeckLinkInput_v7_6_PauseStreams(This) \
5249 ( (This)->lpVtbl -> PauseStreams(This) )
5251 #define IDeckLinkInput_v7_6_FlushStreams(This) \
5252 ( (This)->lpVtbl -> FlushStreams(This) )
5254 #define IDeckLinkInput_v7_6_SetCallback(This,theCallback) \
5255 ( (This)->lpVtbl -> SetCallback(This,theCallback) )
5257 #define IDeckLinkInput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \
5258 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
5260 #endif /* COBJMACROS */
5263 #endif /* C style interface */
5268 #endif /* __IDeckLinkInput_v7_6_INTERFACE_DEFINED__ */
5271 #ifndef __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__
5272 #define __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__
5274 /* interface IDeckLinkTimecode_v7_6 */
5275 /* [helpstring][uuid][object] */
5278 EXTERN_C const IID IID_IDeckLinkTimecode_v7_6;
5280 #if defined(__cplusplus) && !defined(CINTERFACE)
5282 MIDL_INTERFACE("EFB9BCA6-A521-44F7-BD69-2332F24D9EE6")
5283 IDeckLinkTimecode_v7_6 : public IUnknown
5286 virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;
5288 virtual HRESULT STDMETHODCALLTYPE GetComponents(
5289 /* [out] */ unsigned char *hours,
5290 /* [out] */ unsigned char *minutes,
5291 /* [out] */ unsigned char *seconds,
5292 /* [out] */ unsigned char *frames) = 0;
5294 virtual HRESULT STDMETHODCALLTYPE GetString(
5295 /* [out] */ BSTR *timecode) = 0;
5297 virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
5301 #else /* C style interface */
5303 typedef struct IDeckLinkTimecode_v7_6Vtbl
5307 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5308 IDeckLinkTimecode_v7_6 * This,
5309 /* [in] */ REFIID riid,
5310 /* [annotation][iid_is][out] */
5311 __RPC__deref_out void **ppvObject);
5313 ULONG ( STDMETHODCALLTYPE *AddRef )(
5314 IDeckLinkTimecode_v7_6 * This);
5316 ULONG ( STDMETHODCALLTYPE *Release )(
5317 IDeckLinkTimecode_v7_6 * This);
5319 BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )(
5320 IDeckLinkTimecode_v7_6 * This);
5322 HRESULT ( STDMETHODCALLTYPE *GetComponents )(
5323 IDeckLinkTimecode_v7_6 * This,
5324 /* [out] */ unsigned char *hours,
5325 /* [out] */ unsigned char *minutes,
5326 /* [out] */ unsigned char *seconds,
5327 /* [out] */ unsigned char *frames);
5329 HRESULT ( STDMETHODCALLTYPE *GetString )(
5330 IDeckLinkTimecode_v7_6 * This,
5331 /* [out] */ BSTR *timecode);
5333 BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )(
5334 IDeckLinkTimecode_v7_6 * This);
5337 } IDeckLinkTimecode_v7_6Vtbl;
5339 interface IDeckLinkTimecode_v7_6
5341 CONST_VTBL struct IDeckLinkTimecode_v7_6Vtbl *lpVtbl;
5349 #define IDeckLinkTimecode_v7_6_QueryInterface(This,riid,ppvObject) \
5350 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5352 #define IDeckLinkTimecode_v7_6_AddRef(This) \
5353 ( (This)->lpVtbl -> AddRef(This) )
5355 #define IDeckLinkTimecode_v7_6_Release(This) \
5356 ( (This)->lpVtbl -> Release(This) )
5359 #define IDeckLinkTimecode_v7_6_GetBCD(This) \
5360 ( (This)->lpVtbl -> GetBCD(This) )
5362 #define IDeckLinkTimecode_v7_6_GetComponents(This,hours,minutes,seconds,frames) \
5363 ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) )
5365 #define IDeckLinkTimecode_v7_6_GetString(This,timecode) \
5366 ( (This)->lpVtbl -> GetString(This,timecode) )
5368 #define IDeckLinkTimecode_v7_6_GetFlags(This) \
5369 ( (This)->lpVtbl -> GetFlags(This) )
5371 #endif /* COBJMACROS */
5374 #endif /* C style interface */
5379 #endif /* __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__ */
5382 #ifndef __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__
5383 #define __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__
5385 /* interface IDeckLinkVideoFrame_v7_6 */
5386 /* [helpstring][local][uuid][object] */
5389 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_6;
5391 #if defined(__cplusplus) && !defined(CINTERFACE)
5393 MIDL_INTERFACE("A8D8238E-6B18-4196-99E1-5AF717B83D32")
5394 IDeckLinkVideoFrame_v7_6 : public IUnknown
5397 virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
5399 virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
5401 virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;
5403 virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
5405 virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;
5407 virtual HRESULT STDMETHODCALLTYPE GetBytes(
5408 /* [out] */ void **buffer) = 0;
5410 virtual HRESULT STDMETHODCALLTYPE GetTimecode(
5411 BMDTimecodeFormat format,
5412 /* [out] */ IDeckLinkTimecode_v7_6 **timecode) = 0;
5414 virtual HRESULT STDMETHODCALLTYPE GetAncillaryData(
5415 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;
5419 #else /* C style interface */
5421 typedef struct IDeckLinkVideoFrame_v7_6Vtbl
5425 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5426 IDeckLinkVideoFrame_v7_6 * This,
5427 /* [in] */ REFIID riid,
5428 /* [annotation][iid_is][out] */
5429 __RPC__deref_out void **ppvObject);
5431 ULONG ( STDMETHODCALLTYPE *AddRef )(
5432 IDeckLinkVideoFrame_v7_6 * This);
5434 ULONG ( STDMETHODCALLTYPE *Release )(
5435 IDeckLinkVideoFrame_v7_6 * This);
5437 long ( STDMETHODCALLTYPE *GetWidth )(
5438 IDeckLinkVideoFrame_v7_6 * This);
5440 long ( STDMETHODCALLTYPE *GetHeight )(
5441 IDeckLinkVideoFrame_v7_6 * This);
5443 long ( STDMETHODCALLTYPE *GetRowBytes )(
5444 IDeckLinkVideoFrame_v7_6 * This);
5446 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
5447 IDeckLinkVideoFrame_v7_6 * This);
5449 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
5450 IDeckLinkVideoFrame_v7_6 * This);
5452 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
5453 IDeckLinkVideoFrame_v7_6 * This,
5454 /* [out] */ void **buffer);
5456 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
5457 IDeckLinkVideoFrame_v7_6 * This,
5458 BMDTimecodeFormat format,
5459 /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
5461 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
5462 IDeckLinkVideoFrame_v7_6 * This,
5463 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
5466 } IDeckLinkVideoFrame_v7_6Vtbl;
5468 interface IDeckLinkVideoFrame_v7_6
5470 CONST_VTBL struct IDeckLinkVideoFrame_v7_6Vtbl *lpVtbl;
5478 #define IDeckLinkVideoFrame_v7_6_QueryInterface(This,riid,ppvObject) \
5479 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5481 #define IDeckLinkVideoFrame_v7_6_AddRef(This) \
5482 ( (This)->lpVtbl -> AddRef(This) )
5484 #define IDeckLinkVideoFrame_v7_6_Release(This) \
5485 ( (This)->lpVtbl -> Release(This) )
5488 #define IDeckLinkVideoFrame_v7_6_GetWidth(This) \
5489 ( (This)->lpVtbl -> GetWidth(This) )
5491 #define IDeckLinkVideoFrame_v7_6_GetHeight(This) \
5492 ( (This)->lpVtbl -> GetHeight(This) )
5494 #define IDeckLinkVideoFrame_v7_6_GetRowBytes(This) \
5495 ( (This)->lpVtbl -> GetRowBytes(This) )
5497 #define IDeckLinkVideoFrame_v7_6_GetPixelFormat(This) \
5498 ( (This)->lpVtbl -> GetPixelFormat(This) )
5500 #define IDeckLinkVideoFrame_v7_6_GetFlags(This) \
5501 ( (This)->lpVtbl -> GetFlags(This) )
5503 #define IDeckLinkVideoFrame_v7_6_GetBytes(This,buffer) \
5504 ( (This)->lpVtbl -> GetBytes(This,buffer) )
5506 #define IDeckLinkVideoFrame_v7_6_GetTimecode(This,format,timecode) \
5507 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
5509 #define IDeckLinkVideoFrame_v7_6_GetAncillaryData(This,ancillary) \
5510 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
5512 #endif /* COBJMACROS */
5515 #endif /* C style interface */
5520 #endif /* __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__ */
5523 #ifndef __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__
5524 #define __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__
5526 /* interface IDeckLinkMutableVideoFrame_v7_6 */
5527 /* [helpstring][local][uuid][object] */
5530 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame_v7_6;
5532 #if defined(__cplusplus) && !defined(CINTERFACE)
5534 MIDL_INTERFACE("46FCEE00-B4E6-43D0-91C0-023A7FCEB34F")
5535 IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6
5538 virtual HRESULT STDMETHODCALLTYPE SetFlags(
5539 BMDFrameFlags newFlags) = 0;
5541 virtual HRESULT STDMETHODCALLTYPE SetTimecode(
5542 BMDTimecodeFormat format,
5543 /* [in] */ IDeckLinkTimecode_v7_6 *timecode) = 0;
5545 virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents(
5546 BMDTimecodeFormat format,
5547 unsigned char hours,
5548 unsigned char minutes,
5549 unsigned char seconds,
5550 unsigned char frames,
5551 BMDTimecodeFlags flags) = 0;
5553 virtual HRESULT STDMETHODCALLTYPE SetAncillaryData(
5554 /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;
5558 #else /* C style interface */
5560 typedef struct IDeckLinkMutableVideoFrame_v7_6Vtbl
5564 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5565 IDeckLinkMutableVideoFrame_v7_6 * This,
5566 /* [in] */ REFIID riid,
5567 /* [annotation][iid_is][out] */
5568 __RPC__deref_out void **ppvObject);
5570 ULONG ( STDMETHODCALLTYPE *AddRef )(
5571 IDeckLinkMutableVideoFrame_v7_6 * This);
5573 ULONG ( STDMETHODCALLTYPE *Release )(
5574 IDeckLinkMutableVideoFrame_v7_6 * This);
5576 long ( STDMETHODCALLTYPE *GetWidth )(
5577 IDeckLinkMutableVideoFrame_v7_6 * This);
5579 long ( STDMETHODCALLTYPE *GetHeight )(
5580 IDeckLinkMutableVideoFrame_v7_6 * This);
5582 long ( STDMETHODCALLTYPE *GetRowBytes )(
5583 IDeckLinkMutableVideoFrame_v7_6 * This);
5585 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
5586 IDeckLinkMutableVideoFrame_v7_6 * This);
5588 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
5589 IDeckLinkMutableVideoFrame_v7_6 * This);
5591 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
5592 IDeckLinkMutableVideoFrame_v7_6 * This,
5593 /* [out] */ void **buffer);
5595 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
5596 IDeckLinkMutableVideoFrame_v7_6 * This,
5597 BMDTimecodeFormat format,
5598 /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
5600 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
5601 IDeckLinkMutableVideoFrame_v7_6 * This,
5602 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
5604 HRESULT ( STDMETHODCALLTYPE *SetFlags )(
5605 IDeckLinkMutableVideoFrame_v7_6 * This,
5606 BMDFrameFlags newFlags);
5608 HRESULT ( STDMETHODCALLTYPE *SetTimecode )(
5609 IDeckLinkMutableVideoFrame_v7_6 * This,
5610 BMDTimecodeFormat format,
5611 /* [in] */ IDeckLinkTimecode_v7_6 *timecode);
5613 HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )(
5614 IDeckLinkMutableVideoFrame_v7_6 * This,
5615 BMDTimecodeFormat format,
5616 unsigned char hours,
5617 unsigned char minutes,
5618 unsigned char seconds,
5619 unsigned char frames,
5620 BMDTimecodeFlags flags);
5622 HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )(
5623 IDeckLinkMutableVideoFrame_v7_6 * This,
5624 /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);
5627 } IDeckLinkMutableVideoFrame_v7_6Vtbl;
5629 interface IDeckLinkMutableVideoFrame_v7_6
5631 CONST_VTBL struct IDeckLinkMutableVideoFrame_v7_6Vtbl *lpVtbl;
5639 #define IDeckLinkMutableVideoFrame_v7_6_QueryInterface(This,riid,ppvObject) \
5640 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5642 #define IDeckLinkMutableVideoFrame_v7_6_AddRef(This) \
5643 ( (This)->lpVtbl -> AddRef(This) )
5645 #define IDeckLinkMutableVideoFrame_v7_6_Release(This) \
5646 ( (This)->lpVtbl -> Release(This) )
5649 #define IDeckLinkMutableVideoFrame_v7_6_GetWidth(This) \
5650 ( (This)->lpVtbl -> GetWidth(This) )
5652 #define IDeckLinkMutableVideoFrame_v7_6_GetHeight(This) \
5653 ( (This)->lpVtbl -> GetHeight(This) )
5655 #define IDeckLinkMutableVideoFrame_v7_6_GetRowBytes(This) \
5656 ( (This)->lpVtbl -> GetRowBytes(This) )
5658 #define IDeckLinkMutableVideoFrame_v7_6_GetPixelFormat(This) \
5659 ( (This)->lpVtbl -> GetPixelFormat(This) )
5661 #define IDeckLinkMutableVideoFrame_v7_6_GetFlags(This) \
5662 ( (This)->lpVtbl -> GetFlags(This) )
5664 #define IDeckLinkMutableVideoFrame_v7_6_GetBytes(This,buffer) \
5665 ( (This)->lpVtbl -> GetBytes(This,buffer) )
5667 #define IDeckLinkMutableVideoFrame_v7_6_GetTimecode(This,format,timecode) \
5668 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
5670 #define IDeckLinkMutableVideoFrame_v7_6_GetAncillaryData(This,ancillary) \
5671 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
5674 #define IDeckLinkMutableVideoFrame_v7_6_SetFlags(This,newFlags) \
5675 ( (This)->lpVtbl -> SetFlags(This,newFlags) )
5677 #define IDeckLinkMutableVideoFrame_v7_6_SetTimecode(This,format,timecode) \
5678 ( (This)->lpVtbl -> SetTimecode(This,format,timecode) )
5680 #define IDeckLinkMutableVideoFrame_v7_6_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) \
5681 ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) )
5683 #define IDeckLinkMutableVideoFrame_v7_6_SetAncillaryData(This,ancillary) \
5684 ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) )
5686 #endif /* COBJMACROS */
5689 #endif /* C style interface */
5694 #endif /* __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__ */
5697 #ifndef __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__
5698 #define __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__
5700 /* interface IDeckLinkVideoInputFrame_v7_6 */
5701 /* [helpstring][local][uuid][object] */
5704 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_6;
5706 #if defined(__cplusplus) && !defined(CINTERFACE)
5708 MIDL_INTERFACE("9A74FA41-AE9F-47AC-8CF4-01F42DD59965")
5709 IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6
5712 virtual HRESULT STDMETHODCALLTYPE GetStreamTime(
5713 /* [out] */ BMDTimeValue *frameTime,
5714 /* [out] */ BMDTimeValue *frameDuration,
5715 BMDTimeScale timeScale) = 0;
5717 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp(
5718 BMDTimeScale timeScale,
5719 /* [out] */ BMDTimeValue *frameTime,
5720 /* [out] */ BMDTimeValue *frameDuration) = 0;
5724 #else /* C style interface */
5726 typedef struct IDeckLinkVideoInputFrame_v7_6Vtbl
5730 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5731 IDeckLinkVideoInputFrame_v7_6 * This,
5732 /* [in] */ REFIID riid,
5733 /* [annotation][iid_is][out] */
5734 __RPC__deref_out void **ppvObject);
5736 ULONG ( STDMETHODCALLTYPE *AddRef )(
5737 IDeckLinkVideoInputFrame_v7_6 * This);
5739 ULONG ( STDMETHODCALLTYPE *Release )(
5740 IDeckLinkVideoInputFrame_v7_6 * This);
5742 long ( STDMETHODCALLTYPE *GetWidth )(
5743 IDeckLinkVideoInputFrame_v7_6 * This);
5745 long ( STDMETHODCALLTYPE *GetHeight )(
5746 IDeckLinkVideoInputFrame_v7_6 * This);
5748 long ( STDMETHODCALLTYPE *GetRowBytes )(
5749 IDeckLinkVideoInputFrame_v7_6 * This);
5751 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
5752 IDeckLinkVideoInputFrame_v7_6 * This);
5754 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
5755 IDeckLinkVideoInputFrame_v7_6 * This);
5757 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
5758 IDeckLinkVideoInputFrame_v7_6 * This,
5759 /* [out] */ void **buffer);
5761 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
5762 IDeckLinkVideoInputFrame_v7_6 * This,
5763 BMDTimecodeFormat format,
5764 /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
5766 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
5767 IDeckLinkVideoInputFrame_v7_6 * This,
5768 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
5770 HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
5771 IDeckLinkVideoInputFrame_v7_6 * This,
5772 /* [out] */ BMDTimeValue *frameTime,
5773 /* [out] */ BMDTimeValue *frameDuration,
5774 BMDTimeScale timeScale);
5776 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )(
5777 IDeckLinkVideoInputFrame_v7_6 * This,
5778 BMDTimeScale timeScale,
5779 /* [out] */ BMDTimeValue *frameTime,
5780 /* [out] */ BMDTimeValue *frameDuration);
5783 } IDeckLinkVideoInputFrame_v7_6Vtbl;
5785 interface IDeckLinkVideoInputFrame_v7_6
5787 CONST_VTBL struct IDeckLinkVideoInputFrame_v7_6Vtbl *lpVtbl;
5795 #define IDeckLinkVideoInputFrame_v7_6_QueryInterface(This,riid,ppvObject) \
5796 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5798 #define IDeckLinkVideoInputFrame_v7_6_AddRef(This) \
5799 ( (This)->lpVtbl -> AddRef(This) )
5801 #define IDeckLinkVideoInputFrame_v7_6_Release(This) \
5802 ( (This)->lpVtbl -> Release(This) )
5805 #define IDeckLinkVideoInputFrame_v7_6_GetWidth(This) \
5806 ( (This)->lpVtbl -> GetWidth(This) )
5808 #define IDeckLinkVideoInputFrame_v7_6_GetHeight(This) \
5809 ( (This)->lpVtbl -> GetHeight(This) )
5811 #define IDeckLinkVideoInputFrame_v7_6_GetRowBytes(This) \
5812 ( (This)->lpVtbl -> GetRowBytes(This) )
5814 #define IDeckLinkVideoInputFrame_v7_6_GetPixelFormat(This) \
5815 ( (This)->lpVtbl -> GetPixelFormat(This) )
5817 #define IDeckLinkVideoInputFrame_v7_6_GetFlags(This) \
5818 ( (This)->lpVtbl -> GetFlags(This) )
5820 #define IDeckLinkVideoInputFrame_v7_6_GetBytes(This,buffer) \
5821 ( (This)->lpVtbl -> GetBytes(This,buffer) )
5823 #define IDeckLinkVideoInputFrame_v7_6_GetTimecode(This,format,timecode) \
5824 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
5826 #define IDeckLinkVideoInputFrame_v7_6_GetAncillaryData(This,ancillary) \
5827 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
5830 #define IDeckLinkVideoInputFrame_v7_6_GetStreamTime(This,frameTime,frameDuration,timeScale) \
5831 ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) )
5833 #define IDeckLinkVideoInputFrame_v7_6_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) \
5834 ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) )
5836 #endif /* COBJMACROS */
5839 #endif /* C style interface */
5844 #endif /* __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__ */
5847 #ifndef __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__
5848 #define __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__
5850 /* interface IDeckLinkScreenPreviewCallback_v7_6 */
5851 /* [helpstring][local][uuid][object] */
5854 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback_v7_6;
5856 #if defined(__cplusplus) && !defined(CINTERFACE)
5858 MIDL_INTERFACE("373F499D-4B4D-4518-AD22-6354E5A5825E")
5859 IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown
5862 virtual HRESULT STDMETHODCALLTYPE DrawFrame(
5863 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
5867 #else /* C style interface */
5869 typedef struct IDeckLinkScreenPreviewCallback_v7_6Vtbl
5873 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5874 IDeckLinkScreenPreviewCallback_v7_6 * This,
5875 /* [in] */ REFIID riid,
5876 /* [annotation][iid_is][out] */
5877 __RPC__deref_out void **ppvObject);
5879 ULONG ( STDMETHODCALLTYPE *AddRef )(
5880 IDeckLinkScreenPreviewCallback_v7_6 * This);
5882 ULONG ( STDMETHODCALLTYPE *Release )(
5883 IDeckLinkScreenPreviewCallback_v7_6 * This);
5885 HRESULT ( STDMETHODCALLTYPE *DrawFrame )(
5886 IDeckLinkScreenPreviewCallback_v7_6 * This,
5887 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
5890 } IDeckLinkScreenPreviewCallback_v7_6Vtbl;
5892 interface IDeckLinkScreenPreviewCallback_v7_6
5894 CONST_VTBL struct IDeckLinkScreenPreviewCallback_v7_6Vtbl *lpVtbl;
5902 #define IDeckLinkScreenPreviewCallback_v7_6_QueryInterface(This,riid,ppvObject) \
5903 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5905 #define IDeckLinkScreenPreviewCallback_v7_6_AddRef(This) \
5906 ( (This)->lpVtbl -> AddRef(This) )
5908 #define IDeckLinkScreenPreviewCallback_v7_6_Release(This) \
5909 ( (This)->lpVtbl -> Release(This) )
5912 #define IDeckLinkScreenPreviewCallback_v7_6_DrawFrame(This,theFrame) \
5913 ( (This)->lpVtbl -> DrawFrame(This,theFrame) )
5915 #endif /* COBJMACROS */
5918 #endif /* C style interface */
5923 #endif /* __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__ */
5926 #ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__
5927 #define __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__
5929 /* interface IDeckLinkGLScreenPreviewHelper_v7_6 */
5930 /* [helpstring][local][uuid][object] */
5933 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper_v7_6;
5935 #if defined(__cplusplus) && !defined(CINTERFACE)
5937 MIDL_INTERFACE("BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA")
5938 IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown
5941 virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;
5943 virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;
5945 virtual HRESULT STDMETHODCALLTYPE SetFrame(
5946 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
5950 #else /* C style interface */
5952 typedef struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl
5956 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5957 IDeckLinkGLScreenPreviewHelper_v7_6 * This,
5958 /* [in] */ REFIID riid,
5959 /* [annotation][iid_is][out] */
5960 __RPC__deref_out void **ppvObject);
5962 ULONG ( STDMETHODCALLTYPE *AddRef )(
5963 IDeckLinkGLScreenPreviewHelper_v7_6 * This);
5965 ULONG ( STDMETHODCALLTYPE *Release )(
5966 IDeckLinkGLScreenPreviewHelper_v7_6 * This);
5968 HRESULT ( STDMETHODCALLTYPE *InitializeGL )(
5969 IDeckLinkGLScreenPreviewHelper_v7_6 * This);
5971 HRESULT ( STDMETHODCALLTYPE *PaintGL )(
5972 IDeckLinkGLScreenPreviewHelper_v7_6 * This);
5974 HRESULT ( STDMETHODCALLTYPE *SetFrame )(
5975 IDeckLinkGLScreenPreviewHelper_v7_6 * This,
5976 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
5979 } IDeckLinkGLScreenPreviewHelper_v7_6Vtbl;
5981 interface IDeckLinkGLScreenPreviewHelper_v7_6
5983 CONST_VTBL struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl *lpVtbl;
5991 #define IDeckLinkGLScreenPreviewHelper_v7_6_QueryInterface(This,riid,ppvObject) \
5992 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5994 #define IDeckLinkGLScreenPreviewHelper_v7_6_AddRef(This) \
5995 ( (This)->lpVtbl -> AddRef(This) )
5997 #define IDeckLinkGLScreenPreviewHelper_v7_6_Release(This) \
5998 ( (This)->lpVtbl -> Release(This) )
6001 #define IDeckLinkGLScreenPreviewHelper_v7_6_InitializeGL(This) \
6002 ( (This)->lpVtbl -> InitializeGL(This) )
6004 #define IDeckLinkGLScreenPreviewHelper_v7_6_PaintGL(This) \
6005 ( (This)->lpVtbl -> PaintGL(This) )
6007 #define IDeckLinkGLScreenPreviewHelper_v7_6_SetFrame(This,theFrame) \
6008 ( (This)->lpVtbl -> SetFrame(This,theFrame) )
6010 #endif /* COBJMACROS */
6013 #endif /* C style interface */
6018 #endif /* __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__ */
6021 #ifndef __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__
6022 #define __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__
6024 /* interface IDeckLinkVideoConversion_v7_6 */
6025 /* [helpstring][local][uuid][object] */
6028 EXTERN_C const IID IID_IDeckLinkVideoConversion_v7_6;
6030 #if defined(__cplusplus) && !defined(CINTERFACE)
6032 MIDL_INTERFACE("3EB504C9-F97D-40FE-A158-D407D48CB53B")
6033 IDeckLinkVideoConversion_v7_6 : public IUnknown
6036 virtual HRESULT STDMETHODCALLTYPE ConvertFrame(
6037 /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,
6038 /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame) = 0;
6042 #else /* C style interface */
6044 typedef struct IDeckLinkVideoConversion_v7_6Vtbl
6048 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6049 IDeckLinkVideoConversion_v7_6 * This,
6050 /* [in] */ REFIID riid,
6051 /* [annotation][iid_is][out] */
6052 __RPC__deref_out void **ppvObject);
6054 ULONG ( STDMETHODCALLTYPE *AddRef )(
6055 IDeckLinkVideoConversion_v7_6 * This);
6057 ULONG ( STDMETHODCALLTYPE *Release )(
6058 IDeckLinkVideoConversion_v7_6 * This);
6060 HRESULT ( STDMETHODCALLTYPE *ConvertFrame )(
6061 IDeckLinkVideoConversion_v7_6 * This,
6062 /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,
6063 /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame);
6066 } IDeckLinkVideoConversion_v7_6Vtbl;
6068 interface IDeckLinkVideoConversion_v7_6
6070 CONST_VTBL struct IDeckLinkVideoConversion_v7_6Vtbl *lpVtbl;
6078 #define IDeckLinkVideoConversion_v7_6_QueryInterface(This,riid,ppvObject) \
6079 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6081 #define IDeckLinkVideoConversion_v7_6_AddRef(This) \
6082 ( (This)->lpVtbl -> AddRef(This) )
6084 #define IDeckLinkVideoConversion_v7_6_Release(This) \
6085 ( (This)->lpVtbl -> Release(This) )
6088 #define IDeckLinkVideoConversion_v7_6_ConvertFrame(This,srcFrame,dstFrame) \
6089 ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) )
6091 #endif /* COBJMACROS */
6094 #endif /* C style interface */
6099 #endif /* __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__ */
6102 #ifndef __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__
6103 #define __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__
6105 /* interface IDeckLinkConfiguration_v7_6 */
6106 /* [helpstring][uuid][object] */
6109 EXTERN_C const IID IID_IDeckLinkConfiguration_v7_6;
6111 #if defined(__cplusplus) && !defined(CINTERFACE)
6113 MIDL_INTERFACE("B8EAD569-B764-47F0-A73F-AE40DF6CBF10")
6114 IDeckLinkConfiguration_v7_6 : public IUnknown
6117 virtual HRESULT STDMETHODCALLTYPE GetConfigurationValidator(
6118 /* [out] */ IDeckLinkConfiguration_v7_6 **configObject) = 0;
6120 virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
6122 virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFormat(
6123 /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection) = 0;
6125 virtual HRESULT STDMETHODCALLTYPE IsVideoOutputActive(
6126 /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,
6127 /* [out] */ BOOL *active) = 0;
6129 virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoOutputFlags(
6130 /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;
6132 virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoOutputFlags(
6133 /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;
6135 virtual HRESULT STDMETHODCALLTYPE EnableFieldFlickerRemovalWhenPaused(
6136 /* [in] */ BOOL enable) = 0;
6138 virtual HRESULT STDMETHODCALLTYPE IsEnabledFieldFlickerRemovalWhenPaused(
6139 /* [out] */ BOOL *enabled) = 0;
6141 virtual HRESULT STDMETHODCALLTYPE Set444And3GBpsVideoOutput(
6142 /* [in] */ BOOL enable444VideoOutput,
6143 /* [in] */ BOOL enable3GbsOutput) = 0;
6145 virtual HRESULT STDMETHODCALLTYPE Get444And3GBpsVideoOutput(
6146 /* [out] */ BOOL *is444VideoOutputEnabled,
6147 /* [out] */ BOOL *threeGbsOutputEnabled) = 0;
6149 virtual HRESULT STDMETHODCALLTYPE SetVideoOutputConversionMode(
6150 /* [in] */ BMDVideoOutputConversionMode conversionMode) = 0;
6152 virtual HRESULT STDMETHODCALLTYPE GetVideoOutputConversionMode(
6153 /* [out] */ BMDVideoOutputConversionMode *conversionMode) = 0;
6155 virtual HRESULT STDMETHODCALLTYPE Set_HD1080p24_to_HD1080i5994_Conversion(
6156 /* [in] */ BOOL enable) = 0;
6158 virtual HRESULT STDMETHODCALLTYPE Get_HD1080p24_to_HD1080i5994_Conversion(
6159 /* [out] */ BOOL *enabled) = 0;
6161 virtual HRESULT STDMETHODCALLTYPE SetVideoInputFormat(
6162 /* [in] */ BMDVideoConnection_v7_6 videoInputFormat) = 0;
6164 virtual HRESULT STDMETHODCALLTYPE GetVideoInputFormat(
6165 /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat) = 0;
6167 virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoInputFlags(
6168 /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;
6170 virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoInputFlags(
6171 /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;
6173 virtual HRESULT STDMETHODCALLTYPE SetVideoInputConversionMode(
6174 /* [in] */ BMDVideoInputConversionMode conversionMode) = 0;
6176 virtual HRESULT STDMETHODCALLTYPE GetVideoInputConversionMode(
6177 /* [out] */ BMDVideoInputConversionMode *conversionMode) = 0;
6179 virtual HRESULT STDMETHODCALLTYPE SetBlackVideoOutputDuringCapture(
6180 /* [in] */ BOOL blackOutInCapture) = 0;
6182 virtual HRESULT STDMETHODCALLTYPE GetBlackVideoOutputDuringCapture(
6183 /* [out] */ BOOL *blackOutInCapture) = 0;
6185 virtual HRESULT STDMETHODCALLTYPE Set32PulldownSequenceInitialTimecodeFrame(
6186 /* [in] */ unsigned long aFrameTimecode) = 0;
6188 virtual HRESULT STDMETHODCALLTYPE Get32PulldownSequenceInitialTimecodeFrame(
6189 /* [out] */ unsigned long *aFrameTimecode) = 0;
6191 virtual HRESULT STDMETHODCALLTYPE SetVancSourceLineMapping(
6192 /* [in] */ unsigned long activeLine1VANCsource,
6193 /* [in] */ unsigned long activeLine2VANCsource,
6194 /* [in] */ unsigned long activeLine3VANCsource) = 0;
6196 virtual HRESULT STDMETHODCALLTYPE GetVancSourceLineMapping(
6197 /* [out] */ unsigned long *activeLine1VANCsource,
6198 /* [out] */ unsigned long *activeLine2VANCsource,
6199 /* [out] */ unsigned long *activeLine3VANCsource) = 0;
6201 virtual HRESULT STDMETHODCALLTYPE SetAudioInputFormat(
6202 /* [in] */ BMDAudioConnection audioInputFormat) = 0;
6204 virtual HRESULT STDMETHODCALLTYPE GetAudioInputFormat(
6205 /* [out] */ BMDAudioConnection *audioInputFormat) = 0;
6209 #else /* C style interface */
6211 typedef struct IDeckLinkConfiguration_v7_6Vtbl
6215 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6216 IDeckLinkConfiguration_v7_6 * This,
6217 /* [in] */ REFIID riid,
6218 /* [annotation][iid_is][out] */
6219 __RPC__deref_out void **ppvObject);
6221 ULONG ( STDMETHODCALLTYPE *AddRef )(
6222 IDeckLinkConfiguration_v7_6 * This);
6224 ULONG ( STDMETHODCALLTYPE *Release )(
6225 IDeckLinkConfiguration_v7_6 * This);
6227 HRESULT ( STDMETHODCALLTYPE *GetConfigurationValidator )(
6228 IDeckLinkConfiguration_v7_6 * This,
6229 /* [out] */ IDeckLinkConfiguration_v7_6 **configObject);
6231 HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(
6232 IDeckLinkConfiguration_v7_6 * This);
6234 HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFormat )(
6235 IDeckLinkConfiguration_v7_6 * This,
6236 /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection);
6238 HRESULT ( STDMETHODCALLTYPE *IsVideoOutputActive )(
6239 IDeckLinkConfiguration_v7_6 * This,
6240 /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,
6241 /* [out] */ BOOL *active);
6243 HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoOutputFlags )(
6244 IDeckLinkConfiguration_v7_6 * This,
6245 /* [in] */ BMDAnalogVideoFlags analogVideoFlags);
6247 HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoOutputFlags )(
6248 IDeckLinkConfiguration_v7_6 * This,
6249 /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);
6251 HRESULT ( STDMETHODCALLTYPE *EnableFieldFlickerRemovalWhenPaused )(
6252 IDeckLinkConfiguration_v7_6 * This,
6253 /* [in] */ BOOL enable);
6255 HRESULT ( STDMETHODCALLTYPE *IsEnabledFieldFlickerRemovalWhenPaused )(
6256 IDeckLinkConfiguration_v7_6 * This,
6257 /* [out] */ BOOL *enabled);
6259 HRESULT ( STDMETHODCALLTYPE *Set444And3GBpsVideoOutput )(
6260 IDeckLinkConfiguration_v7_6 * This,
6261 /* [in] */ BOOL enable444VideoOutput,
6262 /* [in] */ BOOL enable3GbsOutput);
6264 HRESULT ( STDMETHODCALLTYPE *Get444And3GBpsVideoOutput )(
6265 IDeckLinkConfiguration_v7_6 * This,
6266 /* [out] */ BOOL *is444VideoOutputEnabled,
6267 /* [out] */ BOOL *threeGbsOutputEnabled);
6269 HRESULT ( STDMETHODCALLTYPE *SetVideoOutputConversionMode )(
6270 IDeckLinkConfiguration_v7_6 * This,
6271 /* [in] */ BMDVideoOutputConversionMode conversionMode);
6273 HRESULT ( STDMETHODCALLTYPE *GetVideoOutputConversionMode )(
6274 IDeckLinkConfiguration_v7_6 * This,
6275 /* [out] */ BMDVideoOutputConversionMode *conversionMode);
6277 HRESULT ( STDMETHODCALLTYPE *Set_HD1080p24_to_HD1080i5994_Conversion )(
6278 IDeckLinkConfiguration_v7_6 * This,
6279 /* [in] */ BOOL enable);
6281 HRESULT ( STDMETHODCALLTYPE *Get_HD1080p24_to_HD1080i5994_Conversion )(
6282 IDeckLinkConfiguration_v7_6 * This,
6283 /* [out] */ BOOL *enabled);
6285 HRESULT ( STDMETHODCALLTYPE *SetVideoInputFormat )(
6286 IDeckLinkConfiguration_v7_6 * This,
6287 /* [in] */ BMDVideoConnection_v7_6 videoInputFormat);
6289 HRESULT ( STDMETHODCALLTYPE *GetVideoInputFormat )(
6290 IDeckLinkConfiguration_v7_6 * This,
6291 /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat);
6293 HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoInputFlags )(
6294 IDeckLinkConfiguration_v7_6 * This,
6295 /* [in] */ BMDAnalogVideoFlags analogVideoFlags);
6297 HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoInputFlags )(
6298 IDeckLinkConfiguration_v7_6 * This,
6299 /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);
6301 HRESULT ( STDMETHODCALLTYPE *SetVideoInputConversionMode )(
6302 IDeckLinkConfiguration_v7_6 * This,
6303 /* [in] */ BMDVideoInputConversionMode conversionMode);
6305 HRESULT ( STDMETHODCALLTYPE *GetVideoInputConversionMode )(
6306 IDeckLinkConfiguration_v7_6 * This,
6307 /* [out] */ BMDVideoInputConversionMode *conversionMode);
6309 HRESULT ( STDMETHODCALLTYPE *SetBlackVideoOutputDuringCapture )(
6310 IDeckLinkConfiguration_v7_6 * This,
6311 /* [in] */ BOOL blackOutInCapture);
6313 HRESULT ( STDMETHODCALLTYPE *GetBlackVideoOutputDuringCapture )(
6314 IDeckLinkConfiguration_v7_6 * This,
6315 /* [out] */ BOOL *blackOutInCapture);
6317 HRESULT ( STDMETHODCALLTYPE *Set32PulldownSequenceInitialTimecodeFrame )(
6318 IDeckLinkConfiguration_v7_6 * This,
6319 /* [in] */ unsigned long aFrameTimecode);
6321 HRESULT ( STDMETHODCALLTYPE *Get32PulldownSequenceInitialTimecodeFrame )(
6322 IDeckLinkConfiguration_v7_6 * This,
6323 /* [out] */ unsigned long *aFrameTimecode);
6325 HRESULT ( STDMETHODCALLTYPE *SetVancSourceLineMapping )(
6326 IDeckLinkConfiguration_v7_6 * This,
6327 /* [in] */ unsigned long activeLine1VANCsource,
6328 /* [in] */ unsigned long activeLine2VANCsource,
6329 /* [in] */ unsigned long activeLine3VANCsource);
6331 HRESULT ( STDMETHODCALLTYPE *GetVancSourceLineMapping )(
6332 IDeckLinkConfiguration_v7_6 * This,
6333 /* [out] */ unsigned long *activeLine1VANCsource,
6334 /* [out] */ unsigned long *activeLine2VANCsource,
6335 /* [out] */ unsigned long *activeLine3VANCsource);
6337 HRESULT ( STDMETHODCALLTYPE *SetAudioInputFormat )(
6338 IDeckLinkConfiguration_v7_6 * This,
6339 /* [in] */ BMDAudioConnection audioInputFormat);
6341 HRESULT ( STDMETHODCALLTYPE *GetAudioInputFormat )(
6342 IDeckLinkConfiguration_v7_6 * This,
6343 /* [out] */ BMDAudioConnection *audioInputFormat);
6346 } IDeckLinkConfiguration_v7_6Vtbl;
6348 interface IDeckLinkConfiguration_v7_6
6350 CONST_VTBL struct IDeckLinkConfiguration_v7_6Vtbl *lpVtbl;
6358 #define IDeckLinkConfiguration_v7_6_QueryInterface(This,riid,ppvObject) \
6359 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6361 #define IDeckLinkConfiguration_v7_6_AddRef(This) \
6362 ( (This)->lpVtbl -> AddRef(This) )
6364 #define IDeckLinkConfiguration_v7_6_Release(This) \
6365 ( (This)->lpVtbl -> Release(This) )
6368 #define IDeckLinkConfiguration_v7_6_GetConfigurationValidator(This,configObject) \
6369 ( (This)->lpVtbl -> GetConfigurationValidator(This,configObject) )
6371 #define IDeckLinkConfiguration_v7_6_WriteConfigurationToPreferences(This) \
6372 ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )
6374 #define IDeckLinkConfiguration_v7_6_SetVideoOutputFormat(This,videoOutputConnection) \
6375 ( (This)->lpVtbl -> SetVideoOutputFormat(This,videoOutputConnection) )
6377 #define IDeckLinkConfiguration_v7_6_IsVideoOutputActive(This,videoOutputConnection,active) \
6378 ( (This)->lpVtbl -> IsVideoOutputActive(This,videoOutputConnection,active) )
6380 #define IDeckLinkConfiguration_v7_6_SetAnalogVideoOutputFlags(This,analogVideoFlags) \
6381 ( (This)->lpVtbl -> SetAnalogVideoOutputFlags(This,analogVideoFlags) )
6383 #define IDeckLinkConfiguration_v7_6_GetAnalogVideoOutputFlags(This,analogVideoFlags) \
6384 ( (This)->lpVtbl -> GetAnalogVideoOutputFlags(This,analogVideoFlags) )
6386 #define IDeckLinkConfiguration_v7_6_EnableFieldFlickerRemovalWhenPaused(This,enable) \
6387 ( (This)->lpVtbl -> EnableFieldFlickerRemovalWhenPaused(This,enable) )
6389 #define IDeckLinkConfiguration_v7_6_IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) \
6390 ( (This)->lpVtbl -> IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) )
6392 #define IDeckLinkConfiguration_v7_6_Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) \
6393 ( (This)->lpVtbl -> Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) )
6395 #define IDeckLinkConfiguration_v7_6_Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) \
6396 ( (This)->lpVtbl -> Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) )
6398 #define IDeckLinkConfiguration_v7_6_SetVideoOutputConversionMode(This,conversionMode) \
6399 ( (This)->lpVtbl -> SetVideoOutputConversionMode(This,conversionMode) )
6401 #define IDeckLinkConfiguration_v7_6_GetVideoOutputConversionMode(This,conversionMode) \
6402 ( (This)->lpVtbl -> GetVideoOutputConversionMode(This,conversionMode) )
6404 #define IDeckLinkConfiguration_v7_6_Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) \
6405 ( (This)->lpVtbl -> Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) )
6407 #define IDeckLinkConfiguration_v7_6_Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) \
6408 ( (This)->lpVtbl -> Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) )
6410 #define IDeckLinkConfiguration_v7_6_SetVideoInputFormat(This,videoInputFormat) \
6411 ( (This)->lpVtbl -> SetVideoInputFormat(This,videoInputFormat) )
6413 #define IDeckLinkConfiguration_v7_6_GetVideoInputFormat(This,videoInputFormat) \
6414 ( (This)->lpVtbl -> GetVideoInputFormat(This,videoInputFormat) )
6416 #define IDeckLinkConfiguration_v7_6_SetAnalogVideoInputFlags(This,analogVideoFlags) \
6417 ( (This)->lpVtbl -> SetAnalogVideoInputFlags(This,analogVideoFlags) )
6419 #define IDeckLinkConfiguration_v7_6_GetAnalogVideoInputFlags(This,analogVideoFlags) \
6420 ( (This)->lpVtbl -> GetAnalogVideoInputFlags(This,analogVideoFlags) )
6422 #define IDeckLinkConfiguration_v7_6_SetVideoInputConversionMode(This,conversionMode) \
6423 ( (This)->lpVtbl -> SetVideoInputConversionMode(This,conversionMode) )
6425 #define IDeckLinkConfiguration_v7_6_GetVideoInputConversionMode(This,conversionMode) \
6426 ( (This)->lpVtbl -> GetVideoInputConversionMode(This,conversionMode) )
6428 #define IDeckLinkConfiguration_v7_6_SetBlackVideoOutputDuringCapture(This,blackOutInCapture) \
6429 ( (This)->lpVtbl -> SetBlackVideoOutputDuringCapture(This,blackOutInCapture) )
6431 #define IDeckLinkConfiguration_v7_6_GetBlackVideoOutputDuringCapture(This,blackOutInCapture) \
6432 ( (This)->lpVtbl -> GetBlackVideoOutputDuringCapture(This,blackOutInCapture) )
6434 #define IDeckLinkConfiguration_v7_6_Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) \
6435 ( (This)->lpVtbl -> Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) )
6437 #define IDeckLinkConfiguration_v7_6_Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) \
6438 ( (This)->lpVtbl -> Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) )
6440 #define IDeckLinkConfiguration_v7_6_SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) \
6441 ( (This)->lpVtbl -> SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) )
6443 #define IDeckLinkConfiguration_v7_6_GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) \
6444 ( (This)->lpVtbl -> GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) )
6446 #define IDeckLinkConfiguration_v7_6_SetAudioInputFormat(This,audioInputFormat) \
6447 ( (This)->lpVtbl -> SetAudioInputFormat(This,audioInputFormat) )
6449 #define IDeckLinkConfiguration_v7_6_GetAudioInputFormat(This,audioInputFormat) \
6450 ( (This)->lpVtbl -> GetAudioInputFormat(This,audioInputFormat) )
6452 #endif /* COBJMACROS */
6455 #endif /* C style interface */
6460 #endif /* __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__ */
6463 #ifndef __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__
6464 #define __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__
6466 /* interface IDeckLinkVideoOutputCallback_v7_6 */
6467 /* [helpstring][uuid][object] */
6470 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_6;
6472 #if defined(__cplusplus) && !defined(CINTERFACE)
6474 MIDL_INTERFACE("E763A626-4A3C-49D1-BF13-E7AD3692AE52")
6475 IDeckLinkVideoOutputCallback_v7_6 : public IUnknown
6478 virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(
6479 /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,
6480 /* [in] */ BMDOutputFrameCompletionResult result) = 0;
6482 virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;
6486 #else /* C style interface */
6488 typedef struct IDeckLinkVideoOutputCallback_v7_6Vtbl
6492 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6493 IDeckLinkVideoOutputCallback_v7_6 * This,
6494 /* [in] */ REFIID riid,
6495 /* [annotation][iid_is][out] */
6496 __RPC__deref_out void **ppvObject);
6498 ULONG ( STDMETHODCALLTYPE *AddRef )(
6499 IDeckLinkVideoOutputCallback_v7_6 * This);
6501 ULONG ( STDMETHODCALLTYPE *Release )(
6502 IDeckLinkVideoOutputCallback_v7_6 * This);
6504 HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )(
6505 IDeckLinkVideoOutputCallback_v7_6 * This,
6506 /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,
6507 /* [in] */ BMDOutputFrameCompletionResult result);
6509 HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )(
6510 IDeckLinkVideoOutputCallback_v7_6 * This);
6513 } IDeckLinkVideoOutputCallback_v7_6Vtbl;
6515 interface IDeckLinkVideoOutputCallback_v7_6
6517 CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_6Vtbl *lpVtbl;
6525 #define IDeckLinkVideoOutputCallback_v7_6_QueryInterface(This,riid,ppvObject) \
6526 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6528 #define IDeckLinkVideoOutputCallback_v7_6_AddRef(This) \
6529 ( (This)->lpVtbl -> AddRef(This) )
6531 #define IDeckLinkVideoOutputCallback_v7_6_Release(This) \
6532 ( (This)->lpVtbl -> Release(This) )
6535 #define IDeckLinkVideoOutputCallback_v7_6_ScheduledFrameCompleted(This,completedFrame,result) \
6536 ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) )
6538 #define IDeckLinkVideoOutputCallback_v7_6_ScheduledPlaybackHasStopped(This) \
6539 ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) )
6541 #endif /* COBJMACROS */
6544 #endif /* C style interface */
6549 #endif /* __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__ */
6552 #ifndef __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__
6553 #define __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__
6555 /* interface IDeckLinkInputCallback_v7_6 */
6556 /* [helpstring][uuid][object] */
6559 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_6;
6561 #if defined(__cplusplus) && !defined(CINTERFACE)
6563 MIDL_INTERFACE("31D28EE7-88B6-4CB1-897A-CDBF79A26414")
6564 IDeckLinkInputCallback_v7_6 : public IUnknown
6567 virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(
6568 /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
6569 /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
6570 /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
6572 virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(
6573 /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,
6574 /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;
6578 #else /* C style interface */
6580 typedef struct IDeckLinkInputCallback_v7_6Vtbl
6584 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6585 IDeckLinkInputCallback_v7_6 * This,
6586 /* [in] */ REFIID riid,
6587 /* [annotation][iid_is][out] */
6588 __RPC__deref_out void **ppvObject);
6590 ULONG ( STDMETHODCALLTYPE *AddRef )(
6591 IDeckLinkInputCallback_v7_6 * This);
6593 ULONG ( STDMETHODCALLTYPE *Release )(
6594 IDeckLinkInputCallback_v7_6 * This);
6596 HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )(
6597 IDeckLinkInputCallback_v7_6 * This,
6598 /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
6599 /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
6600 /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
6602 HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(
6603 IDeckLinkInputCallback_v7_6 * This,
6604 /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,
6605 /* [in] */ IDeckLinkAudioInputPacket *audioPacket);
6608 } IDeckLinkInputCallback_v7_6Vtbl;
6610 interface IDeckLinkInputCallback_v7_6
6612 CONST_VTBL struct IDeckLinkInputCallback_v7_6Vtbl *lpVtbl;
6620 #define IDeckLinkInputCallback_v7_6_QueryInterface(This,riid,ppvObject) \
6621 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6623 #define IDeckLinkInputCallback_v7_6_AddRef(This) \
6624 ( (This)->lpVtbl -> AddRef(This) )
6626 #define IDeckLinkInputCallback_v7_6_Release(This) \
6627 ( (This)->lpVtbl -> Release(This) )
6630 #define IDeckLinkInputCallback_v7_6_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \
6631 ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )
6633 #define IDeckLinkInputCallback_v7_6_VideoInputFrameArrived(This,videoFrame,audioPacket) \
6634 ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )
6636 #endif /* COBJMACROS */
6639 #endif /* C style interface */
6644 #endif /* __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__ */
6647 EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper_v7_6;
6651 class DECLSPEC_UUID("D398CEE7-4434-4CA3-9BA6-5AE34556B905")
6652 CDeckLinkGLScreenPreviewHelper_v7_6;
6655 EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion_v7_6;
6659 class DECLSPEC_UUID("FFA84F77-73BE-4FB7-B03E-B5E44B9F759B")
6660 CDeckLinkVideoConversion_v7_6;
6663 #ifndef __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__
6664 #define __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__
6666 /* interface IDeckLinkInputCallback_v7_3 */
6667 /* [helpstring][uuid][object] */
6670 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_3;
6672 #if defined(__cplusplus) && !defined(CINTERFACE)
6674 MIDL_INTERFACE("FD6F311D-4D00-444B-9ED4-1F25B5730AD0")
6675 IDeckLinkInputCallback_v7_3 : public IUnknown
6678 virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(
6679 /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
6680 /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
6681 /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
6683 virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(
6684 /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,
6685 /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;
6689 #else /* C style interface */
6691 typedef struct IDeckLinkInputCallback_v7_3Vtbl
6695 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6696 IDeckLinkInputCallback_v7_3 * This,
6697 /* [in] */ REFIID riid,
6698 /* [annotation][iid_is][out] */
6699 __RPC__deref_out void **ppvObject);
6701 ULONG ( STDMETHODCALLTYPE *AddRef )(
6702 IDeckLinkInputCallback_v7_3 * This);
6704 ULONG ( STDMETHODCALLTYPE *Release )(
6705 IDeckLinkInputCallback_v7_3 * This);
6707 HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )(
6708 IDeckLinkInputCallback_v7_3 * This,
6709 /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
6710 /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
6711 /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
6713 HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(
6714 IDeckLinkInputCallback_v7_3 * This,
6715 /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,
6716 /* [in] */ IDeckLinkAudioInputPacket *audioPacket);
6719 } IDeckLinkInputCallback_v7_3Vtbl;
6721 interface IDeckLinkInputCallback_v7_3
6723 CONST_VTBL struct IDeckLinkInputCallback_v7_3Vtbl *lpVtbl;
6731 #define IDeckLinkInputCallback_v7_3_QueryInterface(This,riid,ppvObject) \
6732 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6734 #define IDeckLinkInputCallback_v7_3_AddRef(This) \
6735 ( (This)->lpVtbl -> AddRef(This) )
6737 #define IDeckLinkInputCallback_v7_3_Release(This) \
6738 ( (This)->lpVtbl -> Release(This) )
6741 #define IDeckLinkInputCallback_v7_3_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \
6742 ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )
6744 #define IDeckLinkInputCallback_v7_3_VideoInputFrameArrived(This,videoFrame,audioPacket) \
6745 ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )
6747 #endif /* COBJMACROS */
6750 #endif /* C style interface */
6755 #endif /* __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ */
6758 #ifndef __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__
6759 #define __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__
6761 /* interface IDeckLinkOutput_v7_3 */
6762 /* [helpstring][local][uuid][object] */
6765 EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
6767 #if defined(__cplusplus) && !defined(CINTERFACE)
6769 MIDL_INTERFACE("271C65E3-C323-4344-A30F-D908BCB20AA3")
6770 IDeckLinkOutput_v7_3 : public IUnknown
6773 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
6774 BMDDisplayMode displayMode,
6775 BMDPixelFormat pixelFormat,
6776 /* [out] */ BMDDisplayModeSupport *result) = 0;
6778 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
6779 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
6781 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
6782 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
6784 virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
6785 BMDDisplayMode displayMode,
6786 BMDVideoOutputFlags flags) = 0;
6788 virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
6790 virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
6791 /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
6793 virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
6797 BMDPixelFormat pixelFormat,
6798 BMDFrameFlags flags,
6799 /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;
6801 virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(
6802 BMDPixelFormat pixelFormat,
6803 /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
6805 virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
6806 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
6808 virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
6809 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
6810 BMDTimeValue displayTime,
6811 BMDTimeValue displayDuration,
6812 BMDTimeScale timeScale) = 0;
6814 virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
6815 /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;
6817 virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(
6818 /* [out] */ unsigned long *bufferedFrameCount) = 0;
6820 virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
6821 BMDAudioSampleRate sampleRate,
6822 BMDAudioSampleType sampleType,
6823 unsigned long channelCount,
6824 BMDAudioOutputStreamType streamType) = 0;
6826 virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
6828 virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
6829 /* [in] */ void *buffer,
6830 unsigned long sampleFrameCount,
6831 /* [out] */ unsigned long *sampleFramesWritten) = 0;
6833 virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
6835 virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
6837 virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
6838 /* [in] */ void *buffer,
6839 unsigned long sampleFrameCount,
6840 BMDTimeValue streamTime,
6841 BMDTimeScale timeScale,
6842 /* [out] */ unsigned long *sampleFramesWritten) = 0;
6844 virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
6845 /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;
6847 virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
6849 virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
6850 /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
6852 virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
6853 BMDTimeValue playbackStartTime,
6854 BMDTimeScale timeScale,
6855 double playbackSpeed) = 0;
6857 virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
6858 BMDTimeValue stopPlaybackAtTime,
6859 /* [out] */ BMDTimeValue *actualStopTime,
6860 BMDTimeScale timeScale) = 0;
6862 virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(
6863 /* [out] */ BOOL *active) = 0;
6865 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
6866 BMDTimeScale desiredTimeScale,
6867 /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;
6871 #else /* C style interface */
6873 typedef struct IDeckLinkOutput_v7_3Vtbl
6877 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6878 IDeckLinkOutput_v7_3 * This,
6879 /* [in] */ REFIID riid,
6880 /* [annotation][iid_is][out] */
6881 __RPC__deref_out void **ppvObject);
6883 ULONG ( STDMETHODCALLTYPE *AddRef )(
6884 IDeckLinkOutput_v7_3 * This);
6886 ULONG ( STDMETHODCALLTYPE *Release )(
6887 IDeckLinkOutput_v7_3 * This);
6889 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
6890 IDeckLinkOutput_v7_3 * This,
6891 BMDDisplayMode displayMode,
6892 BMDPixelFormat pixelFormat,
6893 /* [out] */ BMDDisplayModeSupport *result);
6895 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
6896 IDeckLinkOutput_v7_3 * This,
6897 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
6899 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
6900 IDeckLinkOutput_v7_3 * This,
6901 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
6903 HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
6904 IDeckLinkOutput_v7_3 * This,
6905 BMDDisplayMode displayMode,
6906 BMDVideoOutputFlags flags);
6908 HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
6909 IDeckLinkOutput_v7_3 * This);
6911 HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
6912 IDeckLinkOutput_v7_3 * This,
6913 /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
6915 HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
6916 IDeckLinkOutput_v7_3 * This,
6920 BMDPixelFormat pixelFormat,
6921 BMDFrameFlags flags,
6922 /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);
6924 HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(
6925 IDeckLinkOutput_v7_3 * This,
6926 BMDPixelFormat pixelFormat,
6927 /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
6929 HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
6930 IDeckLinkOutput_v7_3 * This,
6931 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
6933 HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
6934 IDeckLinkOutput_v7_3 * This,
6935 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
6936 BMDTimeValue displayTime,
6937 BMDTimeValue displayDuration,
6938 BMDTimeScale timeScale);
6940 HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
6941 IDeckLinkOutput_v7_3 * This,
6942 /* [in] */ IDeckLinkVideoOutputCallback *theCallback);
6944 HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(
6945 IDeckLinkOutput_v7_3 * This,
6946 /* [out] */ unsigned long *bufferedFrameCount);
6948 HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
6949 IDeckLinkOutput_v7_3 * This,
6950 BMDAudioSampleRate sampleRate,
6951 BMDAudioSampleType sampleType,
6952 unsigned long channelCount,
6953 BMDAudioOutputStreamType streamType);
6955 HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
6956 IDeckLinkOutput_v7_3 * This);
6958 HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
6959 IDeckLinkOutput_v7_3 * This,
6960 /* [in] */ void *buffer,
6961 unsigned long sampleFrameCount,
6962 /* [out] */ unsigned long *sampleFramesWritten);
6964 HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
6965 IDeckLinkOutput_v7_3 * This);
6967 HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
6968 IDeckLinkOutput_v7_3 * This);
6970 HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
6971 IDeckLinkOutput_v7_3 * This,
6972 /* [in] */ void *buffer,
6973 unsigned long sampleFrameCount,
6974 BMDTimeValue streamTime,
6975 BMDTimeScale timeScale,
6976 /* [out] */ unsigned long *sampleFramesWritten);
6978 HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
6979 IDeckLinkOutput_v7_3 * This,
6980 /* [out] */ unsigned long *bufferedSampleFrameCount);
6982 HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
6983 IDeckLinkOutput_v7_3 * This);
6985 HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
6986 IDeckLinkOutput_v7_3 * This,
6987 /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
6989 HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
6990 IDeckLinkOutput_v7_3 * This,
6991 BMDTimeValue playbackStartTime,
6992 BMDTimeScale timeScale,
6993 double playbackSpeed);
6995 HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
6996 IDeckLinkOutput_v7_3 * This,
6997 BMDTimeValue stopPlaybackAtTime,
6998 /* [out] */ BMDTimeValue *actualStopTime,
6999 BMDTimeScale timeScale);
7001 HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(
7002 IDeckLinkOutput_v7_3 * This,
7003 /* [out] */ BOOL *active);
7005 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
7006 IDeckLinkOutput_v7_3 * This,
7007 BMDTimeScale desiredTimeScale,
7008 /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan);
7011 } IDeckLinkOutput_v7_3Vtbl;
7013 interface IDeckLinkOutput_v7_3
7015 CONST_VTBL struct IDeckLinkOutput_v7_3Vtbl *lpVtbl;
7023 #define IDeckLinkOutput_v7_3_QueryInterface(This,riid,ppvObject) \
7024 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7026 #define IDeckLinkOutput_v7_3_AddRef(This) \
7027 ( (This)->lpVtbl -> AddRef(This) )
7029 #define IDeckLinkOutput_v7_3_Release(This) \
7030 ( (This)->lpVtbl -> Release(This) )
7033 #define IDeckLinkOutput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \
7034 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
7036 #define IDeckLinkOutput_v7_3_GetDisplayModeIterator(This,iterator) \
7037 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
7039 #define IDeckLinkOutput_v7_3_SetScreenPreviewCallback(This,previewCallback) \
7040 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
7042 #define IDeckLinkOutput_v7_3_EnableVideoOutput(This,displayMode,flags) \
7043 ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )
7045 #define IDeckLinkOutput_v7_3_DisableVideoOutput(This) \
7046 ( (This)->lpVtbl -> DisableVideoOutput(This) )
7048 #define IDeckLinkOutput_v7_3_SetVideoOutputFrameMemoryAllocator(This,theAllocator) \
7049 ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
7051 #define IDeckLinkOutput_v7_3_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \
7052 ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
7054 #define IDeckLinkOutput_v7_3_CreateAncillaryData(This,pixelFormat,outBuffer) \
7055 ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )
7057 #define IDeckLinkOutput_v7_3_DisplayVideoFrameSync(This,theFrame) \
7058 ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
7060 #define IDeckLinkOutput_v7_3_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \
7061 ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
7063 #define IDeckLinkOutput_v7_3_SetScheduledFrameCompletionCallback(This,theCallback) \
7064 ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
7066 #define IDeckLinkOutput_v7_3_GetBufferedVideoFrameCount(This,bufferedFrameCount) \
7067 ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )
7069 #define IDeckLinkOutput_v7_3_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) \
7070 ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )
7072 #define IDeckLinkOutput_v7_3_DisableAudioOutput(This) \
7073 ( (This)->lpVtbl -> DisableAudioOutput(This) )
7075 #define IDeckLinkOutput_v7_3_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \
7076 ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
7078 #define IDeckLinkOutput_v7_3_BeginAudioPreroll(This) \
7079 ( (This)->lpVtbl -> BeginAudioPreroll(This) )
7081 #define IDeckLinkOutput_v7_3_EndAudioPreroll(This) \
7082 ( (This)->lpVtbl -> EndAudioPreroll(This) )
7084 #define IDeckLinkOutput_v7_3_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) \
7085 ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
7087 #define IDeckLinkOutput_v7_3_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \
7088 ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )
7090 #define IDeckLinkOutput_v7_3_FlushBufferedAudioSamples(This) \
7091 ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
7093 #define IDeckLinkOutput_v7_3_SetAudioCallback(This,theCallback) \
7094 ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
7096 #define IDeckLinkOutput_v7_3_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \
7097 ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
7099 #define IDeckLinkOutput_v7_3_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \
7100 ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
7102 #define IDeckLinkOutput_v7_3_IsScheduledPlaybackRunning(This,active) \
7103 ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )
7105 #define IDeckLinkOutput_v7_3_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) \
7106 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) )
7108 #endif /* COBJMACROS */
7111 #endif /* C style interface */
7116 #endif /* __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ */
7119 #ifndef __IDeckLinkInput_v7_3_INTERFACE_DEFINED__
7120 #define __IDeckLinkInput_v7_3_INTERFACE_DEFINED__
7122 /* interface IDeckLinkInput_v7_3 */
7123 /* [helpstring][uuid][object] */
7126 EXTERN_C const IID IID_IDeckLinkInput_v7_3;
7128 #if defined(__cplusplus) && !defined(CINTERFACE)
7130 MIDL_INTERFACE("4973F012-9925-458C-871C-18774CDBBECB")
7131 IDeckLinkInput_v7_3 : public IUnknown
7134 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
7135 BMDDisplayMode displayMode,
7136 BMDPixelFormat pixelFormat,
7137 /* [out] */ BMDDisplayModeSupport *result) = 0;
7139 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
7140 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
7142 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
7143 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
7145 virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
7146 BMDDisplayMode displayMode,
7147 BMDPixelFormat pixelFormat,
7148 BMDVideoInputFlags flags) = 0;
7150 virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
7152 virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(
7153 /* [out] */ unsigned long *availableFrameCount) = 0;
7155 virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
7156 BMDAudioSampleRate sampleRate,
7157 BMDAudioSampleType sampleType,
7158 unsigned long channelCount) = 0;
7160 virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
7162 virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
7163 /* [out] */ unsigned long *availableSampleFrameCount) = 0;
7165 virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
7167 virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
7169 virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
7171 virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
7173 virtual HRESULT STDMETHODCALLTYPE SetCallback(
7174 /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback) = 0;
7178 #else /* C style interface */
7180 typedef struct IDeckLinkInput_v7_3Vtbl
7184 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7185 IDeckLinkInput_v7_3 * This,
7186 /* [in] */ REFIID riid,
7187 /* [annotation][iid_is][out] */
7188 __RPC__deref_out void **ppvObject);
7190 ULONG ( STDMETHODCALLTYPE *AddRef )(
7191 IDeckLinkInput_v7_3 * This);
7193 ULONG ( STDMETHODCALLTYPE *Release )(
7194 IDeckLinkInput_v7_3 * This);
7196 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
7197 IDeckLinkInput_v7_3 * This,
7198 BMDDisplayMode displayMode,
7199 BMDPixelFormat pixelFormat,
7200 /* [out] */ BMDDisplayModeSupport *result);
7202 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
7203 IDeckLinkInput_v7_3 * This,
7204 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
7206 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
7207 IDeckLinkInput_v7_3 * This,
7208 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
7210 HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
7211 IDeckLinkInput_v7_3 * This,
7212 BMDDisplayMode displayMode,
7213 BMDPixelFormat pixelFormat,
7214 BMDVideoInputFlags flags);
7216 HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
7217 IDeckLinkInput_v7_3 * This);
7219 HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(
7220 IDeckLinkInput_v7_3 * This,
7221 /* [out] */ unsigned long *availableFrameCount);
7223 HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
7224 IDeckLinkInput_v7_3 * This,
7225 BMDAudioSampleRate sampleRate,
7226 BMDAudioSampleType sampleType,
7227 unsigned long channelCount);
7229 HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
7230 IDeckLinkInput_v7_3 * This);
7232 HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
7233 IDeckLinkInput_v7_3 * This,
7234 /* [out] */ unsigned long *availableSampleFrameCount);
7236 HRESULT ( STDMETHODCALLTYPE *StartStreams )(
7237 IDeckLinkInput_v7_3 * This);
7239 HRESULT ( STDMETHODCALLTYPE *StopStreams )(
7240 IDeckLinkInput_v7_3 * This);
7242 HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
7243 IDeckLinkInput_v7_3 * This);
7245 HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
7246 IDeckLinkInput_v7_3 * This);
7248 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
7249 IDeckLinkInput_v7_3 * This,
7250 /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback);
7253 } IDeckLinkInput_v7_3Vtbl;
7255 interface IDeckLinkInput_v7_3
7257 CONST_VTBL struct IDeckLinkInput_v7_3Vtbl *lpVtbl;
7265 #define IDeckLinkInput_v7_3_QueryInterface(This,riid,ppvObject) \
7266 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7268 #define IDeckLinkInput_v7_3_AddRef(This) \
7269 ( (This)->lpVtbl -> AddRef(This) )
7271 #define IDeckLinkInput_v7_3_Release(This) \
7272 ( (This)->lpVtbl -> Release(This) )
7275 #define IDeckLinkInput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \
7276 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
7278 #define IDeckLinkInput_v7_3_GetDisplayModeIterator(This,iterator) \
7279 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
7281 #define IDeckLinkInput_v7_3_SetScreenPreviewCallback(This,previewCallback) \
7282 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
7284 #define IDeckLinkInput_v7_3_EnableVideoInput(This,displayMode,pixelFormat,flags) \
7285 ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
7287 #define IDeckLinkInput_v7_3_DisableVideoInput(This) \
7288 ( (This)->lpVtbl -> DisableVideoInput(This) )
7290 #define IDeckLinkInput_v7_3_GetAvailableVideoFrameCount(This,availableFrameCount) \
7291 ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )
7293 #define IDeckLinkInput_v7_3_EnableAudioInput(This,sampleRate,sampleType,channelCount) \
7294 ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
7296 #define IDeckLinkInput_v7_3_DisableAudioInput(This) \
7297 ( (This)->lpVtbl -> DisableAudioInput(This) )
7299 #define IDeckLinkInput_v7_3_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) \
7300 ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
7302 #define IDeckLinkInput_v7_3_StartStreams(This) \
7303 ( (This)->lpVtbl -> StartStreams(This) )
7305 #define IDeckLinkInput_v7_3_StopStreams(This) \
7306 ( (This)->lpVtbl -> StopStreams(This) )
7308 #define IDeckLinkInput_v7_3_PauseStreams(This) \
7309 ( (This)->lpVtbl -> PauseStreams(This) )
7311 #define IDeckLinkInput_v7_3_FlushStreams(This) \
7312 ( (This)->lpVtbl -> FlushStreams(This) )
7314 #define IDeckLinkInput_v7_3_SetCallback(This,theCallback) \
7315 ( (This)->lpVtbl -> SetCallback(This,theCallback) )
7317 #endif /* COBJMACROS */
7320 #endif /* C style interface */
7325 #endif /* __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ */
7328 #ifndef __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__
7329 #define __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__
7331 /* interface IDeckLinkVideoInputFrame_v7_3 */
7332 /* [helpstring][local][uuid][object] */
7335 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_3;
7337 #if defined(__cplusplus) && !defined(CINTERFACE)
7339 MIDL_INTERFACE("CF317790-2894-11DE-8C30-0800200C9A66")
7340 IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6
7343 virtual HRESULT STDMETHODCALLTYPE GetStreamTime(
7344 /* [out] */ BMDTimeValue *frameTime,
7345 /* [out] */ BMDTimeValue *frameDuration,
7346 BMDTimeScale timeScale) = 0;
7350 #else /* C style interface */
7352 typedef struct IDeckLinkVideoInputFrame_v7_3Vtbl
7356 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7357 IDeckLinkVideoInputFrame_v7_3 * This,
7358 /* [in] */ REFIID riid,
7359 /* [annotation][iid_is][out] */
7360 __RPC__deref_out void **ppvObject);
7362 ULONG ( STDMETHODCALLTYPE *AddRef )(
7363 IDeckLinkVideoInputFrame_v7_3 * This);
7365 ULONG ( STDMETHODCALLTYPE *Release )(
7366 IDeckLinkVideoInputFrame_v7_3 * This);
7368 long ( STDMETHODCALLTYPE *GetWidth )(
7369 IDeckLinkVideoInputFrame_v7_3 * This);
7371 long ( STDMETHODCALLTYPE *GetHeight )(
7372 IDeckLinkVideoInputFrame_v7_3 * This);
7374 long ( STDMETHODCALLTYPE *GetRowBytes )(
7375 IDeckLinkVideoInputFrame_v7_3 * This);
7377 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
7378 IDeckLinkVideoInputFrame_v7_3 * This);
7380 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
7381 IDeckLinkVideoInputFrame_v7_3 * This);
7383 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
7384 IDeckLinkVideoInputFrame_v7_3 * This,
7385 /* [out] */ void **buffer);
7387 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
7388 IDeckLinkVideoInputFrame_v7_3 * This,
7389 BMDTimecodeFormat format,
7390 /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
7392 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
7393 IDeckLinkVideoInputFrame_v7_3 * This,
7394 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
7396 HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
7397 IDeckLinkVideoInputFrame_v7_3 * This,
7398 /* [out] */ BMDTimeValue *frameTime,
7399 /* [out] */ BMDTimeValue *frameDuration,
7400 BMDTimeScale timeScale);
7403 } IDeckLinkVideoInputFrame_v7_3Vtbl;
7405 interface IDeckLinkVideoInputFrame_v7_3
7407 CONST_VTBL struct IDeckLinkVideoInputFrame_v7_3Vtbl *lpVtbl;
7415 #define IDeckLinkVideoInputFrame_v7_3_QueryInterface(This,riid,ppvObject) \
7416 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7418 #define IDeckLinkVideoInputFrame_v7_3_AddRef(This) \
7419 ( (This)->lpVtbl -> AddRef(This) )
7421 #define IDeckLinkVideoInputFrame_v7_3_Release(This) \
7422 ( (This)->lpVtbl -> Release(This) )
7425 #define IDeckLinkVideoInputFrame_v7_3_GetWidth(This) \
7426 ( (This)->lpVtbl -> GetWidth(This) )
7428 #define IDeckLinkVideoInputFrame_v7_3_GetHeight(This) \
7429 ( (This)->lpVtbl -> GetHeight(This) )
7431 #define IDeckLinkVideoInputFrame_v7_3_GetRowBytes(This) \
7432 ( (This)->lpVtbl -> GetRowBytes(This) )
7434 #define IDeckLinkVideoInputFrame_v7_3_GetPixelFormat(This) \
7435 ( (This)->lpVtbl -> GetPixelFormat(This) )
7437 #define IDeckLinkVideoInputFrame_v7_3_GetFlags(This) \
7438 ( (This)->lpVtbl -> GetFlags(This) )
7440 #define IDeckLinkVideoInputFrame_v7_3_GetBytes(This,buffer) \
7441 ( (This)->lpVtbl -> GetBytes(This,buffer) )
7443 #define IDeckLinkVideoInputFrame_v7_3_GetTimecode(This,format,timecode) \
7444 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
7446 #define IDeckLinkVideoInputFrame_v7_3_GetAncillaryData(This,ancillary) \
7447 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
7450 #define IDeckLinkVideoInputFrame_v7_3_GetStreamTime(This,frameTime,frameDuration,timeScale) \
7451 ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) )
7453 #endif /* COBJMACROS */
7456 #endif /* C style interface */
7461 #endif /* __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ */
7464 #ifndef __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__
7465 #define __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__
7467 /* interface IDeckLinkDisplayModeIterator_v7_1 */
7468 /* [helpstring][uuid][object] */
7471 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_1;
7473 #if defined(__cplusplus) && !defined(CINTERFACE)
7475 MIDL_INTERFACE("B28131B6-59AC-4857-B5AC-CD75D5883E2F")
7476 IDeckLinkDisplayModeIterator_v7_1 : public IUnknown
7479 virtual HRESULT STDMETHODCALLTYPE Next(
7480 /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode) = 0;
7484 #else /* C style interface */
7486 typedef struct IDeckLinkDisplayModeIterator_v7_1Vtbl
7490 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7491 IDeckLinkDisplayModeIterator_v7_1 * This,
7492 /* [in] */ REFIID riid,
7493 /* [annotation][iid_is][out] */
7494 __RPC__deref_out void **ppvObject);
7496 ULONG ( STDMETHODCALLTYPE *AddRef )(
7497 IDeckLinkDisplayModeIterator_v7_1 * This);
7499 ULONG ( STDMETHODCALLTYPE *Release )(
7500 IDeckLinkDisplayModeIterator_v7_1 * This);
7502 HRESULT ( STDMETHODCALLTYPE *Next )(
7503 IDeckLinkDisplayModeIterator_v7_1 * This,
7504 /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode);
7507 } IDeckLinkDisplayModeIterator_v7_1Vtbl;
7509 interface IDeckLinkDisplayModeIterator_v7_1
7511 CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_1Vtbl *lpVtbl;
7519 #define IDeckLinkDisplayModeIterator_v7_1_QueryInterface(This,riid,ppvObject) \
7520 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7522 #define IDeckLinkDisplayModeIterator_v7_1_AddRef(This) \
7523 ( (This)->lpVtbl -> AddRef(This) )
7525 #define IDeckLinkDisplayModeIterator_v7_1_Release(This) \
7526 ( (This)->lpVtbl -> Release(This) )
7529 #define IDeckLinkDisplayModeIterator_v7_1_Next(This,deckLinkDisplayMode) \
7530 ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) )
7532 #endif /* COBJMACROS */
7535 #endif /* C style interface */
7540 #endif /* __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ */
7543 #ifndef __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__
7544 #define __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__
7546 /* interface IDeckLinkDisplayMode_v7_1 */
7547 /* [helpstring][uuid][object] */
7550 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_1;
7552 #if defined(__cplusplus) && !defined(CINTERFACE)
7554 MIDL_INTERFACE("AF0CD6D5-8376-435E-8433-54F9DD530AC3")
7555 IDeckLinkDisplayMode_v7_1 : public IUnknown
7558 virtual HRESULT STDMETHODCALLTYPE GetName(
7559 /* [out] */ BSTR *name) = 0;
7561 virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
7563 virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
7565 virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
7567 virtual HRESULT STDMETHODCALLTYPE GetFrameRate(
7568 /* [out] */ BMDTimeValue *frameDuration,
7569 /* [out] */ BMDTimeScale *timeScale) = 0;
7573 #else /* C style interface */
7575 typedef struct IDeckLinkDisplayMode_v7_1Vtbl
7579 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7580 IDeckLinkDisplayMode_v7_1 * This,
7581 /* [in] */ REFIID riid,
7582 /* [annotation][iid_is][out] */
7583 __RPC__deref_out void **ppvObject);
7585 ULONG ( STDMETHODCALLTYPE *AddRef )(
7586 IDeckLinkDisplayMode_v7_1 * This);
7588 ULONG ( STDMETHODCALLTYPE *Release )(
7589 IDeckLinkDisplayMode_v7_1 * This);
7591 HRESULT ( STDMETHODCALLTYPE *GetName )(
7592 IDeckLinkDisplayMode_v7_1 * This,
7593 /* [out] */ BSTR *name);
7595 BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(
7596 IDeckLinkDisplayMode_v7_1 * This);
7598 long ( STDMETHODCALLTYPE *GetWidth )(
7599 IDeckLinkDisplayMode_v7_1 * This);
7601 long ( STDMETHODCALLTYPE *GetHeight )(
7602 IDeckLinkDisplayMode_v7_1 * This);
7604 HRESULT ( STDMETHODCALLTYPE *GetFrameRate )(
7605 IDeckLinkDisplayMode_v7_1 * This,
7606 /* [out] */ BMDTimeValue *frameDuration,
7607 /* [out] */ BMDTimeScale *timeScale);
7610 } IDeckLinkDisplayMode_v7_1Vtbl;
7612 interface IDeckLinkDisplayMode_v7_1
7614 CONST_VTBL struct IDeckLinkDisplayMode_v7_1Vtbl *lpVtbl;
7622 #define IDeckLinkDisplayMode_v7_1_QueryInterface(This,riid,ppvObject) \
7623 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7625 #define IDeckLinkDisplayMode_v7_1_AddRef(This) \
7626 ( (This)->lpVtbl -> AddRef(This) )
7628 #define IDeckLinkDisplayMode_v7_1_Release(This) \
7629 ( (This)->lpVtbl -> Release(This) )
7632 #define IDeckLinkDisplayMode_v7_1_GetName(This,name) \
7633 ( (This)->lpVtbl -> GetName(This,name) )
7635 #define IDeckLinkDisplayMode_v7_1_GetDisplayMode(This) \
7636 ( (This)->lpVtbl -> GetDisplayMode(This) )
7638 #define IDeckLinkDisplayMode_v7_1_GetWidth(This) \
7639 ( (This)->lpVtbl -> GetWidth(This) )
7641 #define IDeckLinkDisplayMode_v7_1_GetHeight(This) \
7642 ( (This)->lpVtbl -> GetHeight(This) )
7644 #define IDeckLinkDisplayMode_v7_1_GetFrameRate(This,frameDuration,timeScale) \
7645 ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) )
7647 #endif /* COBJMACROS */
7650 #endif /* C style interface */
7655 #endif /* __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ */
7658 #ifndef __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__
7659 #define __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__
7661 /* interface IDeckLinkVideoFrame_v7_1 */
7662 /* [helpstring][local][uuid][object] */
7665 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_1;
7667 #if defined(__cplusplus) && !defined(CINTERFACE)
7669 MIDL_INTERFACE("333F3A10-8C2D-43CF-B79D-46560FEEA1CE")
7670 IDeckLinkVideoFrame_v7_1 : public IUnknown
7673 virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
7675 virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
7677 virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;
7679 virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
7681 virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;
7683 virtual HRESULT STDMETHODCALLTYPE GetBytes(
7688 #else /* C style interface */
7690 typedef struct IDeckLinkVideoFrame_v7_1Vtbl
7694 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7695 IDeckLinkVideoFrame_v7_1 * This,
7696 /* [in] */ REFIID riid,
7697 /* [annotation][iid_is][out] */
7698 __RPC__deref_out void **ppvObject);
7700 ULONG ( STDMETHODCALLTYPE *AddRef )(
7701 IDeckLinkVideoFrame_v7_1 * This);
7703 ULONG ( STDMETHODCALLTYPE *Release )(
7704 IDeckLinkVideoFrame_v7_1 * This);
7706 long ( STDMETHODCALLTYPE *GetWidth )(
7707 IDeckLinkVideoFrame_v7_1 * This);
7709 long ( STDMETHODCALLTYPE *GetHeight )(
7710 IDeckLinkVideoFrame_v7_1 * This);
7712 long ( STDMETHODCALLTYPE *GetRowBytes )(
7713 IDeckLinkVideoFrame_v7_1 * This);
7715 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
7716 IDeckLinkVideoFrame_v7_1 * This);
7718 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
7719 IDeckLinkVideoFrame_v7_1 * This);
7721 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
7722 IDeckLinkVideoFrame_v7_1 * This,
7726 } IDeckLinkVideoFrame_v7_1Vtbl;
7728 interface IDeckLinkVideoFrame_v7_1
7730 CONST_VTBL struct IDeckLinkVideoFrame_v7_1Vtbl *lpVtbl;
7738 #define IDeckLinkVideoFrame_v7_1_QueryInterface(This,riid,ppvObject) \
7739 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7741 #define IDeckLinkVideoFrame_v7_1_AddRef(This) \
7742 ( (This)->lpVtbl -> AddRef(This) )
7744 #define IDeckLinkVideoFrame_v7_1_Release(This) \
7745 ( (This)->lpVtbl -> Release(This) )
7748 #define IDeckLinkVideoFrame_v7_1_GetWidth(This) \
7749 ( (This)->lpVtbl -> GetWidth(This) )
7751 #define IDeckLinkVideoFrame_v7_1_GetHeight(This) \
7752 ( (This)->lpVtbl -> GetHeight(This) )
7754 #define IDeckLinkVideoFrame_v7_1_GetRowBytes(This) \
7755 ( (This)->lpVtbl -> GetRowBytes(This) )
7757 #define IDeckLinkVideoFrame_v7_1_GetPixelFormat(This) \
7758 ( (This)->lpVtbl -> GetPixelFormat(This) )
7760 #define IDeckLinkVideoFrame_v7_1_GetFlags(This) \
7761 ( (This)->lpVtbl -> GetFlags(This) )
7763 #define IDeckLinkVideoFrame_v7_1_GetBytes(This,buffer) \
7764 ( (This)->lpVtbl -> GetBytes(This,buffer) )
7766 #endif /* COBJMACROS */
7769 #endif /* C style interface */
7774 #endif /* __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ */
7777 #ifndef __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__
7778 #define __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__
7780 /* interface IDeckLinkVideoInputFrame_v7_1 */
7781 /* [helpstring][local][uuid][object] */
7784 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_1;
7786 #if defined(__cplusplus) && !defined(CINTERFACE)
7788 MIDL_INTERFACE("C8B41D95-8848-40EE-9B37-6E3417FB114B")
7789 IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1
7792 virtual HRESULT STDMETHODCALLTYPE GetFrameTime(
7793 BMDTimeValue *frameTime,
7794 BMDTimeValue *frameDuration,
7795 BMDTimeScale timeScale) = 0;
7799 #else /* C style interface */
7801 typedef struct IDeckLinkVideoInputFrame_v7_1Vtbl
7805 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7806 IDeckLinkVideoInputFrame_v7_1 * This,
7807 /* [in] */ REFIID riid,
7808 /* [annotation][iid_is][out] */
7809 __RPC__deref_out void **ppvObject);
7811 ULONG ( STDMETHODCALLTYPE *AddRef )(
7812 IDeckLinkVideoInputFrame_v7_1 * This);
7814 ULONG ( STDMETHODCALLTYPE *Release )(
7815 IDeckLinkVideoInputFrame_v7_1 * This);
7817 long ( STDMETHODCALLTYPE *GetWidth )(
7818 IDeckLinkVideoInputFrame_v7_1 * This);
7820 long ( STDMETHODCALLTYPE *GetHeight )(
7821 IDeckLinkVideoInputFrame_v7_1 * This);
7823 long ( STDMETHODCALLTYPE *GetRowBytes )(
7824 IDeckLinkVideoInputFrame_v7_1 * This);
7826 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
7827 IDeckLinkVideoInputFrame_v7_1 * This);
7829 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
7830 IDeckLinkVideoInputFrame_v7_1 * This);
7832 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
7833 IDeckLinkVideoInputFrame_v7_1 * This,
7836 HRESULT ( STDMETHODCALLTYPE *GetFrameTime )(
7837 IDeckLinkVideoInputFrame_v7_1 * This,
7838 BMDTimeValue *frameTime,
7839 BMDTimeValue *frameDuration,
7840 BMDTimeScale timeScale);
7843 } IDeckLinkVideoInputFrame_v7_1Vtbl;
7845 interface IDeckLinkVideoInputFrame_v7_1
7847 CONST_VTBL struct IDeckLinkVideoInputFrame_v7_1Vtbl *lpVtbl;
7855 #define IDeckLinkVideoInputFrame_v7_1_QueryInterface(This,riid,ppvObject) \
7856 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7858 #define IDeckLinkVideoInputFrame_v7_1_AddRef(This) \
7859 ( (This)->lpVtbl -> AddRef(This) )
7861 #define IDeckLinkVideoInputFrame_v7_1_Release(This) \
7862 ( (This)->lpVtbl -> Release(This) )
7865 #define IDeckLinkVideoInputFrame_v7_1_GetWidth(This) \
7866 ( (This)->lpVtbl -> GetWidth(This) )
7868 #define IDeckLinkVideoInputFrame_v7_1_GetHeight(This) \
7869 ( (This)->lpVtbl -> GetHeight(This) )
7871 #define IDeckLinkVideoInputFrame_v7_1_GetRowBytes(This) \
7872 ( (This)->lpVtbl -> GetRowBytes(This) )
7874 #define IDeckLinkVideoInputFrame_v7_1_GetPixelFormat(This) \
7875 ( (This)->lpVtbl -> GetPixelFormat(This) )
7877 #define IDeckLinkVideoInputFrame_v7_1_GetFlags(This) \
7878 ( (This)->lpVtbl -> GetFlags(This) )
7880 #define IDeckLinkVideoInputFrame_v7_1_GetBytes(This,buffer) \
7881 ( (This)->lpVtbl -> GetBytes(This,buffer) )
7884 #define IDeckLinkVideoInputFrame_v7_1_GetFrameTime(This,frameTime,frameDuration,timeScale) \
7885 ( (This)->lpVtbl -> GetFrameTime(This,frameTime,frameDuration,timeScale) )
7887 #endif /* COBJMACROS */
7890 #endif /* C style interface */
7895 #endif /* __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ */
7898 #ifndef __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__
7899 #define __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__
7901 /* interface IDeckLinkAudioInputPacket_v7_1 */
7902 /* [helpstring][local][uuid][object] */
7905 EXTERN_C const IID IID_IDeckLinkAudioInputPacket_v7_1;
7907 #if defined(__cplusplus) && !defined(CINTERFACE)
7909 MIDL_INTERFACE("C86DE4F6-A29F-42E3-AB3A-1363E29F0788")
7910 IDeckLinkAudioInputPacket_v7_1 : public IUnknown
7913 virtual long STDMETHODCALLTYPE GetSampleCount( void) = 0;
7915 virtual HRESULT STDMETHODCALLTYPE GetBytes(
7918 virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime(
7919 BMDTimeValue *packetTime,
7920 BMDTimeScale timeScale) = 0;
7924 #else /* C style interface */
7926 typedef struct IDeckLinkAudioInputPacket_v7_1Vtbl
7930 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7931 IDeckLinkAudioInputPacket_v7_1 * This,
7932 /* [in] */ REFIID riid,
7933 /* [annotation][iid_is][out] */
7934 __RPC__deref_out void **ppvObject);
7936 ULONG ( STDMETHODCALLTYPE *AddRef )(
7937 IDeckLinkAudioInputPacket_v7_1 * This);
7939 ULONG ( STDMETHODCALLTYPE *Release )(
7940 IDeckLinkAudioInputPacket_v7_1 * This);
7942 long ( STDMETHODCALLTYPE *GetSampleCount )(
7943 IDeckLinkAudioInputPacket_v7_1 * This);
7945 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
7946 IDeckLinkAudioInputPacket_v7_1 * This,
7949 HRESULT ( STDMETHODCALLTYPE *GetAudioPacketTime )(
7950 IDeckLinkAudioInputPacket_v7_1 * This,
7951 BMDTimeValue *packetTime,
7952 BMDTimeScale timeScale);
7955 } IDeckLinkAudioInputPacket_v7_1Vtbl;
7957 interface IDeckLinkAudioInputPacket_v7_1
7959 CONST_VTBL struct IDeckLinkAudioInputPacket_v7_1Vtbl *lpVtbl;
7967 #define IDeckLinkAudioInputPacket_v7_1_QueryInterface(This,riid,ppvObject) \
7968 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7970 #define IDeckLinkAudioInputPacket_v7_1_AddRef(This) \
7971 ( (This)->lpVtbl -> AddRef(This) )
7973 #define IDeckLinkAudioInputPacket_v7_1_Release(This) \
7974 ( (This)->lpVtbl -> Release(This) )
7977 #define IDeckLinkAudioInputPacket_v7_1_GetSampleCount(This) \
7978 ( (This)->lpVtbl -> GetSampleCount(This) )
7980 #define IDeckLinkAudioInputPacket_v7_1_GetBytes(This,buffer) \
7981 ( (This)->lpVtbl -> GetBytes(This,buffer) )
7983 #define IDeckLinkAudioInputPacket_v7_1_GetAudioPacketTime(This,packetTime,timeScale) \
7984 ( (This)->lpVtbl -> GetAudioPacketTime(This,packetTime,timeScale) )
7986 #endif /* COBJMACROS */
7989 #endif /* C style interface */
7994 #endif /* __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ */
7997 #ifndef __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__
7998 #define __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__
8000 /* interface IDeckLinkVideoOutputCallback_v7_1 */
8001 /* [helpstring][uuid][object] */
8004 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_1;
8006 #if defined(__cplusplus) && !defined(CINTERFACE)
8008 MIDL_INTERFACE("EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9")
8009 IDeckLinkVideoOutputCallback_v7_1 : public IUnknown
8012 virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(
8013 /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,
8014 /* [in] */ BMDOutputFrameCompletionResult result) = 0;
8018 #else /* C style interface */
8020 typedef struct IDeckLinkVideoOutputCallback_v7_1Vtbl
8024 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8025 IDeckLinkVideoOutputCallback_v7_1 * This,
8026 /* [in] */ REFIID riid,
8027 /* [annotation][iid_is][out] */
8028 __RPC__deref_out void **ppvObject);
8030 ULONG ( STDMETHODCALLTYPE *AddRef )(
8031 IDeckLinkVideoOutputCallback_v7_1 * This);
8033 ULONG ( STDMETHODCALLTYPE *Release )(
8034 IDeckLinkVideoOutputCallback_v7_1 * This);
8036 HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )(
8037 IDeckLinkVideoOutputCallback_v7_1 * This,
8038 /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,
8039 /* [in] */ BMDOutputFrameCompletionResult result);
8042 } IDeckLinkVideoOutputCallback_v7_1Vtbl;
8044 interface IDeckLinkVideoOutputCallback_v7_1
8046 CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_1Vtbl *lpVtbl;
8054 #define IDeckLinkVideoOutputCallback_v7_1_QueryInterface(This,riid,ppvObject) \
8055 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8057 #define IDeckLinkVideoOutputCallback_v7_1_AddRef(This) \
8058 ( (This)->lpVtbl -> AddRef(This) )
8060 #define IDeckLinkVideoOutputCallback_v7_1_Release(This) \
8061 ( (This)->lpVtbl -> Release(This) )
8064 #define IDeckLinkVideoOutputCallback_v7_1_ScheduledFrameCompleted(This,completedFrame,result) \
8065 ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) )
8067 #endif /* COBJMACROS */
8070 #endif /* C style interface */
8075 #endif /* __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ */
8078 #ifndef __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__
8079 #define __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__
8081 /* interface IDeckLinkInputCallback_v7_1 */
8082 /* [helpstring][uuid][object] */
8085 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_1;
8087 #if defined(__cplusplus) && !defined(CINTERFACE)
8089 MIDL_INTERFACE("7F94F328-5ED4-4E9F-9729-76A86BDC99CC")
8090 IDeckLinkInputCallback_v7_1 : public IUnknown
8093 virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(
8094 /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,
8095 /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket) = 0;
8099 #else /* C style interface */
8101 typedef struct IDeckLinkInputCallback_v7_1Vtbl
8105 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8106 IDeckLinkInputCallback_v7_1 * This,
8107 /* [in] */ REFIID riid,
8108 /* [annotation][iid_is][out] */
8109 __RPC__deref_out void **ppvObject);
8111 ULONG ( STDMETHODCALLTYPE *AddRef )(
8112 IDeckLinkInputCallback_v7_1 * This);
8114 ULONG ( STDMETHODCALLTYPE *Release )(
8115 IDeckLinkInputCallback_v7_1 * This);
8117 HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(
8118 IDeckLinkInputCallback_v7_1 * This,
8119 /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,
8120 /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket);
8123 } IDeckLinkInputCallback_v7_1Vtbl;
8125 interface IDeckLinkInputCallback_v7_1
8127 CONST_VTBL struct IDeckLinkInputCallback_v7_1Vtbl *lpVtbl;
8135 #define IDeckLinkInputCallback_v7_1_QueryInterface(This,riid,ppvObject) \
8136 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8138 #define IDeckLinkInputCallback_v7_1_AddRef(This) \
8139 ( (This)->lpVtbl -> AddRef(This) )
8141 #define IDeckLinkInputCallback_v7_1_Release(This) \
8142 ( (This)->lpVtbl -> Release(This) )
8145 #define IDeckLinkInputCallback_v7_1_VideoInputFrameArrived(This,videoFrame,audioPacket) \
8146 ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )
8148 #endif /* COBJMACROS */
8151 #endif /* C style interface */
8156 #endif /* __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ */
8159 #ifndef __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__
8160 #define __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__
8162 /* interface IDeckLinkOutput_v7_1 */
8163 /* [helpstring][local][uuid][object] */
8166 EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
8168 #if defined(__cplusplus) && !defined(CINTERFACE)
8170 MIDL_INTERFACE("AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5")
8171 IDeckLinkOutput_v7_1 : public IUnknown
8174 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
8175 BMDDisplayMode displayMode,
8176 BMDPixelFormat pixelFormat,
8177 /* [out] */ BMDDisplayModeSupport *result) = 0;
8179 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
8180 /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;
8182 virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
8183 BMDDisplayMode displayMode) = 0;
8185 virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
8187 virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
8188 /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
8190 virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
8194 BMDPixelFormat pixelFormat,
8195 BMDFrameFlags flags,
8196 IDeckLinkVideoFrame_v7_1 **outFrame) = 0;
8198 virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer(
8203 BMDPixelFormat pixelFormat,
8204 BMDFrameFlags flags,
8205 IDeckLinkVideoFrame_v7_1 **outFrame) = 0;
8207 virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
8208 IDeckLinkVideoFrame_v7_1 *theFrame) = 0;
8210 virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
8211 IDeckLinkVideoFrame_v7_1 *theFrame,
8212 BMDTimeValue displayTime,
8213 BMDTimeValue displayDuration,
8214 BMDTimeScale timeScale) = 0;
8216 virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
8217 /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback) = 0;
8219 virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
8220 BMDAudioSampleRate sampleRate,
8221 BMDAudioSampleType sampleType,
8222 unsigned long channelCount) = 0;
8224 virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
8226 virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
8228 unsigned long sampleFrameCount,
8229 /* [out] */ unsigned long *sampleFramesWritten) = 0;
8231 virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
8233 virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
8235 virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
8237 unsigned long sampleFrameCount,
8238 BMDTimeValue streamTime,
8239 BMDTimeScale timeScale,
8240 /* [out] */ unsigned long *sampleFramesWritten) = 0;
8242 virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
8243 /* [out] */ unsigned long *bufferedSampleCount) = 0;
8245 virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
8247 virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
8248 /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
8250 virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
8251 BMDTimeValue playbackStartTime,
8252 BMDTimeScale timeScale,
8253 double playbackSpeed) = 0;
8255 virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
8256 BMDTimeValue stopPlaybackAtTime,
8257 BMDTimeValue *actualStopTime,
8258 BMDTimeScale timeScale) = 0;
8260 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
8261 BMDTimeScale desiredTimeScale,
8262 BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;
8266 #else /* C style interface */
8268 typedef struct IDeckLinkOutput_v7_1Vtbl
8272 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8273 IDeckLinkOutput_v7_1 * This,
8274 /* [in] */ REFIID riid,
8275 /* [annotation][iid_is][out] */
8276 __RPC__deref_out void **ppvObject);
8278 ULONG ( STDMETHODCALLTYPE *AddRef )(
8279 IDeckLinkOutput_v7_1 * This);
8281 ULONG ( STDMETHODCALLTYPE *Release )(
8282 IDeckLinkOutput_v7_1 * This);
8284 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
8285 IDeckLinkOutput_v7_1 * This,
8286 BMDDisplayMode displayMode,
8287 BMDPixelFormat pixelFormat,
8288 /* [out] */ BMDDisplayModeSupport *result);
8290 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
8291 IDeckLinkOutput_v7_1 * This,
8292 /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);
8294 HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
8295 IDeckLinkOutput_v7_1 * This,
8296 BMDDisplayMode displayMode);
8298 HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
8299 IDeckLinkOutput_v7_1 * This);
8301 HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
8302 IDeckLinkOutput_v7_1 * This,
8303 /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
8305 HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
8306 IDeckLinkOutput_v7_1 * This,
8310 BMDPixelFormat pixelFormat,
8311 BMDFrameFlags flags,
8312 IDeckLinkVideoFrame_v7_1 **outFrame);
8314 HRESULT ( STDMETHODCALLTYPE *CreateVideoFrameFromBuffer )(
8315 IDeckLinkOutput_v7_1 * This,
8320 BMDPixelFormat pixelFormat,
8321 BMDFrameFlags flags,
8322 IDeckLinkVideoFrame_v7_1 **outFrame);
8324 HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
8325 IDeckLinkOutput_v7_1 * This,
8326 IDeckLinkVideoFrame_v7_1 *theFrame);
8328 HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
8329 IDeckLinkOutput_v7_1 * This,
8330 IDeckLinkVideoFrame_v7_1 *theFrame,
8331 BMDTimeValue displayTime,
8332 BMDTimeValue displayDuration,
8333 BMDTimeScale timeScale);
8335 HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
8336 IDeckLinkOutput_v7_1 * This,
8337 /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback);
8339 HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
8340 IDeckLinkOutput_v7_1 * This,
8341 BMDAudioSampleRate sampleRate,
8342 BMDAudioSampleType sampleType,
8343 unsigned long channelCount);
8345 HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
8346 IDeckLinkOutput_v7_1 * This);
8348 HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
8349 IDeckLinkOutput_v7_1 * This,
8351 unsigned long sampleFrameCount,
8352 /* [out] */ unsigned long *sampleFramesWritten);
8354 HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
8355 IDeckLinkOutput_v7_1 * This);
8357 HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
8358 IDeckLinkOutput_v7_1 * This);
8360 HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
8361 IDeckLinkOutput_v7_1 * This,
8363 unsigned long sampleFrameCount,
8364 BMDTimeValue streamTime,
8365 BMDTimeScale timeScale,
8366 /* [out] */ unsigned long *sampleFramesWritten);
8368 HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
8369 IDeckLinkOutput_v7_1 * This,
8370 /* [out] */ unsigned long *bufferedSampleCount);
8372 HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
8373 IDeckLinkOutput_v7_1 * This);
8375 HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
8376 IDeckLinkOutput_v7_1 * This,
8377 /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
8379 HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
8380 IDeckLinkOutput_v7_1 * This,
8381 BMDTimeValue playbackStartTime,
8382 BMDTimeScale timeScale,
8383 double playbackSpeed);
8385 HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
8386 IDeckLinkOutput_v7_1 * This,
8387 BMDTimeValue stopPlaybackAtTime,
8388 BMDTimeValue *actualStopTime,
8389 BMDTimeScale timeScale);
8391 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
8392 IDeckLinkOutput_v7_1 * This,
8393 BMDTimeScale desiredTimeScale,
8394 BMDTimeValue *elapsedTimeSinceSchedulerBegan);
8397 } IDeckLinkOutput_v7_1Vtbl;
8399 interface IDeckLinkOutput_v7_1
8401 CONST_VTBL struct IDeckLinkOutput_v7_1Vtbl *lpVtbl;
8409 #define IDeckLinkOutput_v7_1_QueryInterface(This,riid,ppvObject) \
8410 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8412 #define IDeckLinkOutput_v7_1_AddRef(This) \
8413 ( (This)->lpVtbl -> AddRef(This) )
8415 #define IDeckLinkOutput_v7_1_Release(This) \
8416 ( (This)->lpVtbl -> Release(This) )
8419 #define IDeckLinkOutput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \
8420 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
8422 #define IDeckLinkOutput_v7_1_GetDisplayModeIterator(This,iterator) \
8423 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
8425 #define IDeckLinkOutput_v7_1_EnableVideoOutput(This,displayMode) \
8426 ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode) )
8428 #define IDeckLinkOutput_v7_1_DisableVideoOutput(This) \
8429 ( (This)->lpVtbl -> DisableVideoOutput(This) )
8431 #define IDeckLinkOutput_v7_1_SetVideoOutputFrameMemoryAllocator(This,theAllocator) \
8432 ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
8434 #define IDeckLinkOutput_v7_1_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \
8435 ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
8437 #define IDeckLinkOutput_v7_1_CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) \
8438 ( (This)->lpVtbl -> CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) )
8440 #define IDeckLinkOutput_v7_1_DisplayVideoFrameSync(This,theFrame) \
8441 ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
8443 #define IDeckLinkOutput_v7_1_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \
8444 ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
8446 #define IDeckLinkOutput_v7_1_SetScheduledFrameCompletionCallback(This,theCallback) \
8447 ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
8449 #define IDeckLinkOutput_v7_1_EnableAudioOutput(This,sampleRate,sampleType,channelCount) \
8450 ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount) )
8452 #define IDeckLinkOutput_v7_1_DisableAudioOutput(This) \
8453 ( (This)->lpVtbl -> DisableAudioOutput(This) )
8455 #define IDeckLinkOutput_v7_1_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \
8456 ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
8458 #define IDeckLinkOutput_v7_1_BeginAudioPreroll(This) \
8459 ( (This)->lpVtbl -> BeginAudioPreroll(This) )
8461 #define IDeckLinkOutput_v7_1_EndAudioPreroll(This) \
8462 ( (This)->lpVtbl -> EndAudioPreroll(This) )
8464 #define IDeckLinkOutput_v7_1_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) \
8465 ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
8467 #define IDeckLinkOutput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) \
8468 ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) )
8470 #define IDeckLinkOutput_v7_1_FlushBufferedAudioSamples(This) \
8471 ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
8473 #define IDeckLinkOutput_v7_1_SetAudioCallback(This,theCallback) \
8474 ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
8476 #define IDeckLinkOutput_v7_1_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \
8477 ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
8479 #define IDeckLinkOutput_v7_1_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \
8480 ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
8482 #define IDeckLinkOutput_v7_1_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) \
8483 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) )
8485 #endif /* COBJMACROS */
8488 #endif /* C style interface */
8493 #endif /* __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ */
8496 #ifndef __IDeckLinkInput_v7_1_INTERFACE_DEFINED__
8497 #define __IDeckLinkInput_v7_1_INTERFACE_DEFINED__
8499 /* interface IDeckLinkInput_v7_1 */
8500 /* [helpstring][uuid][object] */
8503 EXTERN_C const IID IID_IDeckLinkInput_v7_1;
8505 #if defined(__cplusplus) && !defined(CINTERFACE)
8507 MIDL_INTERFACE("2B54EDEF-5B32-429F-BA11-BB990596EACD")
8508 IDeckLinkInput_v7_1 : public IUnknown
8511 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
8512 BMDDisplayMode displayMode,
8513 BMDPixelFormat pixelFormat,
8514 /* [out] */ BMDDisplayModeSupport *result) = 0;
8516 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
8517 /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;
8519 virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
8520 BMDDisplayMode displayMode,
8521 BMDPixelFormat pixelFormat,
8522 BMDVideoInputFlags flags) = 0;
8524 virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
8526 virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
8527 BMDAudioSampleRate sampleRate,
8528 BMDAudioSampleType sampleType,
8529 unsigned long channelCount) = 0;
8531 virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
8533 virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples(
8535 unsigned long sampleFrameCount,
8536 /* [out] */ unsigned long *sampleFramesRead,
8537 /* [out] */ BMDTimeValue *audioPacketTime,
8538 BMDTimeScale timeScale) = 0;
8540 virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
8541 /* [out] */ unsigned long *bufferedSampleCount) = 0;
8543 virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
8545 virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
8547 virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
8549 virtual HRESULT STDMETHODCALLTYPE SetCallback(
8550 /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback) = 0;
8554 #else /* C style interface */
8556 typedef struct IDeckLinkInput_v7_1Vtbl
8560 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8561 IDeckLinkInput_v7_1 * This,
8562 /* [in] */ REFIID riid,
8563 /* [annotation][iid_is][out] */
8564 __RPC__deref_out void **ppvObject);
8566 ULONG ( STDMETHODCALLTYPE *AddRef )(
8567 IDeckLinkInput_v7_1 * This);
8569 ULONG ( STDMETHODCALLTYPE *Release )(
8570 IDeckLinkInput_v7_1 * This);
8572 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
8573 IDeckLinkInput_v7_1 * This,
8574 BMDDisplayMode displayMode,
8575 BMDPixelFormat pixelFormat,
8576 /* [out] */ BMDDisplayModeSupport *result);
8578 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
8579 IDeckLinkInput_v7_1 * This,
8580 /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);
8582 HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
8583 IDeckLinkInput_v7_1 * This,
8584 BMDDisplayMode displayMode,
8585 BMDPixelFormat pixelFormat,
8586 BMDVideoInputFlags flags);
8588 HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
8589 IDeckLinkInput_v7_1 * This);
8591 HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
8592 IDeckLinkInput_v7_1 * This,
8593 BMDAudioSampleRate sampleRate,
8594 BMDAudioSampleType sampleType,
8595 unsigned long channelCount);
8597 HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
8598 IDeckLinkInput_v7_1 * This);
8600 HRESULT ( STDMETHODCALLTYPE *ReadAudioSamples )(
8601 IDeckLinkInput_v7_1 * This,
8603 unsigned long sampleFrameCount,
8604 /* [out] */ unsigned long *sampleFramesRead,
8605 /* [out] */ BMDTimeValue *audioPacketTime,
8606 BMDTimeScale timeScale);
8608 HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
8609 IDeckLinkInput_v7_1 * This,
8610 /* [out] */ unsigned long *bufferedSampleCount);
8612 HRESULT ( STDMETHODCALLTYPE *StartStreams )(
8613 IDeckLinkInput_v7_1 * This);
8615 HRESULT ( STDMETHODCALLTYPE *StopStreams )(
8616 IDeckLinkInput_v7_1 * This);
8618 HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
8619 IDeckLinkInput_v7_1 * This);
8621 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
8622 IDeckLinkInput_v7_1 * This,
8623 /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback);
8626 } IDeckLinkInput_v7_1Vtbl;
8628 interface IDeckLinkInput_v7_1
8630 CONST_VTBL struct IDeckLinkInput_v7_1Vtbl *lpVtbl;
8638 #define IDeckLinkInput_v7_1_QueryInterface(This,riid,ppvObject) \
8639 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8641 #define IDeckLinkInput_v7_1_AddRef(This) \
8642 ( (This)->lpVtbl -> AddRef(This) )
8644 #define IDeckLinkInput_v7_1_Release(This) \
8645 ( (This)->lpVtbl -> Release(This) )
8648 #define IDeckLinkInput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \
8649 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
8651 #define IDeckLinkInput_v7_1_GetDisplayModeIterator(This,iterator) \
8652 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
8654 #define IDeckLinkInput_v7_1_EnableVideoInput(This,displayMode,pixelFormat,flags) \
8655 ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
8657 #define IDeckLinkInput_v7_1_DisableVideoInput(This) \
8658 ( (This)->lpVtbl -> DisableVideoInput(This) )
8660 #define IDeckLinkInput_v7_1_EnableAudioInput(This,sampleRate,sampleType,channelCount) \
8661 ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
8663 #define IDeckLinkInput_v7_1_DisableAudioInput(This) \
8664 ( (This)->lpVtbl -> DisableAudioInput(This) )
8666 #define IDeckLinkInput_v7_1_ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) \
8667 ( (This)->lpVtbl -> ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) )
8669 #define IDeckLinkInput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) \
8670 ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) )
8672 #define IDeckLinkInput_v7_1_StartStreams(This) \
8673 ( (This)->lpVtbl -> StartStreams(This) )
8675 #define IDeckLinkInput_v7_1_StopStreams(This) \
8676 ( (This)->lpVtbl -> StopStreams(This) )
8678 #define IDeckLinkInput_v7_1_PauseStreams(This) \
8679 ( (This)->lpVtbl -> PauseStreams(This) )
8681 #define IDeckLinkInput_v7_1_SetCallback(This,theCallback) \
8682 ( (This)->lpVtbl -> SetCallback(This,theCallback) )
8684 #endif /* COBJMACROS */
8687 #endif /* C style interface */
8692 #endif /* __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ */
8694 #endif /* __DeckLinkAPI_LIBRARY_DEFINED__ */
8696 /* Additional Prototypes for ALL interfaces */
8698 /* end of Additional Prototypes */