3 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
6 /* File created by MIDL compiler version 7.00.0555 */
7 /* at Thu Apr 04 12:00:19 2013
9 /* Compiler settings for interop\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 __IDeckLinkTimecode_FWD_DEFINED__
45 #define __IDeckLinkTimecode_FWD_DEFINED__
46 typedef interface IDeckLinkTimecode IDeckLinkTimecode;
47 #endif /* __IDeckLinkTimecode_FWD_DEFINED__ */
50 #ifndef __IDeckLinkDisplayModeIterator_FWD_DEFINED__
51 #define __IDeckLinkDisplayModeIterator_FWD_DEFINED__
52 typedef interface IDeckLinkDisplayModeIterator IDeckLinkDisplayModeIterator;
53 #endif /* __IDeckLinkDisplayModeIterator_FWD_DEFINED__ */
56 #ifndef __IDeckLinkDisplayMode_FWD_DEFINED__
57 #define __IDeckLinkDisplayMode_FWD_DEFINED__
58 typedef interface IDeckLinkDisplayMode IDeckLinkDisplayMode;
59 #endif /* __IDeckLinkDisplayMode_FWD_DEFINED__ */
62 #ifndef __IDeckLink_FWD_DEFINED__
63 #define __IDeckLink_FWD_DEFINED__
64 typedef interface IDeckLink IDeckLink;
65 #endif /* __IDeckLink_FWD_DEFINED__ */
68 #ifndef __IDeckLinkConfiguration_FWD_DEFINED__
69 #define __IDeckLinkConfiguration_FWD_DEFINED__
70 typedef interface IDeckLinkConfiguration IDeckLinkConfiguration;
71 #endif /* __IDeckLinkConfiguration_FWD_DEFINED__ */
74 #ifndef __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__
75 #define __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__
76 typedef interface IDeckLinkDeckControlStatusCallback IDeckLinkDeckControlStatusCallback;
77 #endif /* __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ */
80 #ifndef __IDeckLinkDeckControl_FWD_DEFINED__
81 #define __IDeckLinkDeckControl_FWD_DEFINED__
82 typedef interface IDeckLinkDeckControl IDeckLinkDeckControl;
83 #endif /* __IDeckLinkDeckControl_FWD_DEFINED__ */
86 #ifndef __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__
87 #define __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__
88 typedef interface IBMDStreamingDeviceNotificationCallback IBMDStreamingDeviceNotificationCallback;
89 #endif /* __IBMDStreamingDeviceNotificationCallback_FWD_DEFINED__ */
92 #ifndef __IBMDStreamingH264InputCallback_FWD_DEFINED__
93 #define __IBMDStreamingH264InputCallback_FWD_DEFINED__
94 typedef interface IBMDStreamingH264InputCallback IBMDStreamingH264InputCallback;
95 #endif /* __IBMDStreamingH264InputCallback_FWD_DEFINED__ */
98 #ifndef __IBMDStreamingDiscovery_FWD_DEFINED__
99 #define __IBMDStreamingDiscovery_FWD_DEFINED__
100 typedef interface IBMDStreamingDiscovery IBMDStreamingDiscovery;
101 #endif /* __IBMDStreamingDiscovery_FWD_DEFINED__ */
104 #ifndef __IBMDStreamingVideoEncodingMode_FWD_DEFINED__
105 #define __IBMDStreamingVideoEncodingMode_FWD_DEFINED__
106 typedef interface IBMDStreamingVideoEncodingMode IBMDStreamingVideoEncodingMode;
107 #endif /* __IBMDStreamingVideoEncodingMode_FWD_DEFINED__ */
110 #ifndef __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__
111 #define __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__
112 typedef interface IBMDStreamingMutableVideoEncodingMode IBMDStreamingMutableVideoEncodingMode;
113 #endif /* __IBMDStreamingMutableVideoEncodingMode_FWD_DEFINED__ */
116 #ifndef __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__
117 #define __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__
118 typedef interface IBMDStreamingVideoEncodingModePresetIterator IBMDStreamingVideoEncodingModePresetIterator;
119 #endif /* __IBMDStreamingVideoEncodingModePresetIterator_FWD_DEFINED__ */
122 #ifndef __IBMDStreamingDeviceInput_FWD_DEFINED__
123 #define __IBMDStreamingDeviceInput_FWD_DEFINED__
124 typedef interface IBMDStreamingDeviceInput IBMDStreamingDeviceInput;
125 #endif /* __IBMDStreamingDeviceInput_FWD_DEFINED__ */
128 #ifndef __IBMDStreamingH264NALPacket_FWD_DEFINED__
129 #define __IBMDStreamingH264NALPacket_FWD_DEFINED__
130 typedef interface IBMDStreamingH264NALPacket IBMDStreamingH264NALPacket;
131 #endif /* __IBMDStreamingH264NALPacket_FWD_DEFINED__ */
134 #ifndef __IBMDStreamingAudioPacket_FWD_DEFINED__
135 #define __IBMDStreamingAudioPacket_FWD_DEFINED__
136 typedef interface IBMDStreamingAudioPacket IBMDStreamingAudioPacket;
137 #endif /* __IBMDStreamingAudioPacket_FWD_DEFINED__ */
140 #ifndef __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__
141 #define __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__
142 typedef interface IBMDStreamingMPEG2TSPacket IBMDStreamingMPEG2TSPacket;
143 #endif /* __IBMDStreamingMPEG2TSPacket_FWD_DEFINED__ */
146 #ifndef __IBMDStreamingH264NALParser_FWD_DEFINED__
147 #define __IBMDStreamingH264NALParser_FWD_DEFINED__
148 typedef interface IBMDStreamingH264NALParser IBMDStreamingH264NALParser;
149 #endif /* __IBMDStreamingH264NALParser_FWD_DEFINED__ */
152 #ifndef __CBMDStreamingDiscovery_FWD_DEFINED__
153 #define __CBMDStreamingDiscovery_FWD_DEFINED__
156 typedef class CBMDStreamingDiscovery CBMDStreamingDiscovery;
158 typedef struct CBMDStreamingDiscovery CBMDStreamingDiscovery;
159 #endif /* __cplusplus */
161 #endif /* __CBMDStreamingDiscovery_FWD_DEFINED__ */
164 #ifndef __CBMDStreamingH264NALParser_FWD_DEFINED__
165 #define __CBMDStreamingH264NALParser_FWD_DEFINED__
168 typedef class CBMDStreamingH264NALParser CBMDStreamingH264NALParser;
170 typedef struct CBMDStreamingH264NALParser CBMDStreamingH264NALParser;
171 #endif /* __cplusplus */
173 #endif /* __CBMDStreamingH264NALParser_FWD_DEFINED__ */
176 #ifndef __IDeckLinkVideoOutputCallback_FWD_DEFINED__
177 #define __IDeckLinkVideoOutputCallback_FWD_DEFINED__
178 typedef interface IDeckLinkVideoOutputCallback IDeckLinkVideoOutputCallback;
179 #endif /* __IDeckLinkVideoOutputCallback_FWD_DEFINED__ */
182 #ifndef __IDeckLinkInputCallback_FWD_DEFINED__
183 #define __IDeckLinkInputCallback_FWD_DEFINED__
184 typedef interface IDeckLinkInputCallback IDeckLinkInputCallback;
185 #endif /* __IDeckLinkInputCallback_FWD_DEFINED__ */
188 #ifndef __IDeckLinkMemoryAllocator_FWD_DEFINED__
189 #define __IDeckLinkMemoryAllocator_FWD_DEFINED__
190 typedef interface IDeckLinkMemoryAllocator IDeckLinkMemoryAllocator;
191 #endif /* __IDeckLinkMemoryAllocator_FWD_DEFINED__ */
194 #ifndef __IDeckLinkAudioOutputCallback_FWD_DEFINED__
195 #define __IDeckLinkAudioOutputCallback_FWD_DEFINED__
196 typedef interface IDeckLinkAudioOutputCallback IDeckLinkAudioOutputCallback;
197 #endif /* __IDeckLinkAudioOutputCallback_FWD_DEFINED__ */
200 #ifndef __IDeckLinkIterator_FWD_DEFINED__
201 #define __IDeckLinkIterator_FWD_DEFINED__
202 typedef interface IDeckLinkIterator IDeckLinkIterator;
203 #endif /* __IDeckLinkIterator_FWD_DEFINED__ */
206 #ifndef __IDeckLinkAPIInformation_FWD_DEFINED__
207 #define __IDeckLinkAPIInformation_FWD_DEFINED__
208 typedef interface IDeckLinkAPIInformation IDeckLinkAPIInformation;
209 #endif /* __IDeckLinkAPIInformation_FWD_DEFINED__ */
212 #ifndef __IDeckLinkOutput_FWD_DEFINED__
213 #define __IDeckLinkOutput_FWD_DEFINED__
214 typedef interface IDeckLinkOutput IDeckLinkOutput;
215 #endif /* __IDeckLinkOutput_FWD_DEFINED__ */
218 #ifndef __IDeckLinkInput_FWD_DEFINED__
219 #define __IDeckLinkInput_FWD_DEFINED__
220 typedef interface IDeckLinkInput IDeckLinkInput;
221 #endif /* __IDeckLinkInput_FWD_DEFINED__ */
224 #ifndef __IDeckLinkVideoFrame_FWD_DEFINED__
225 #define __IDeckLinkVideoFrame_FWD_DEFINED__
226 typedef interface IDeckLinkVideoFrame IDeckLinkVideoFrame;
227 #endif /* __IDeckLinkVideoFrame_FWD_DEFINED__ */
230 #ifndef __IDeckLinkMutableVideoFrame_FWD_DEFINED__
231 #define __IDeckLinkMutableVideoFrame_FWD_DEFINED__
232 typedef interface IDeckLinkMutableVideoFrame IDeckLinkMutableVideoFrame;
233 #endif /* __IDeckLinkMutableVideoFrame_FWD_DEFINED__ */
236 #ifndef __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__
237 #define __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__
238 typedef interface IDeckLinkVideoFrame3DExtensions IDeckLinkVideoFrame3DExtensions;
239 #endif /* __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ */
242 #ifndef __IDeckLinkVideoInputFrame_FWD_DEFINED__
243 #define __IDeckLinkVideoInputFrame_FWD_DEFINED__
244 typedef interface IDeckLinkVideoInputFrame IDeckLinkVideoInputFrame;
245 #endif /* __IDeckLinkVideoInputFrame_FWD_DEFINED__ */
248 #ifndef __IDeckLinkVideoFrameAncillary_FWD_DEFINED__
249 #define __IDeckLinkVideoFrameAncillary_FWD_DEFINED__
250 typedef interface IDeckLinkVideoFrameAncillary IDeckLinkVideoFrameAncillary;
251 #endif /* __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ */
254 #ifndef __IDeckLinkAudioInputPacket_FWD_DEFINED__
255 #define __IDeckLinkAudioInputPacket_FWD_DEFINED__
256 typedef interface IDeckLinkAudioInputPacket IDeckLinkAudioInputPacket;
257 #endif /* __IDeckLinkAudioInputPacket_FWD_DEFINED__ */
260 #ifndef __IDeckLinkScreenPreviewCallback_FWD_DEFINED__
261 #define __IDeckLinkScreenPreviewCallback_FWD_DEFINED__
262 typedef interface IDeckLinkScreenPreviewCallback IDeckLinkScreenPreviewCallback;
263 #endif /* __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ */
266 #ifndef __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
267 #define __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
268 typedef interface IDeckLinkGLScreenPreviewHelper IDeckLinkGLScreenPreviewHelper;
269 #endif /* __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */
272 #ifndef __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
273 #define __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
274 typedef interface IDeckLinkDX9ScreenPreviewHelper IDeckLinkDX9ScreenPreviewHelper;
275 #endif /* __IDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ */
278 #ifndef __IDeckLinkNotificationCallback_FWD_DEFINED__
279 #define __IDeckLinkNotificationCallback_FWD_DEFINED__
280 typedef interface IDeckLinkNotificationCallback IDeckLinkNotificationCallback;
281 #endif /* __IDeckLinkNotificationCallback_FWD_DEFINED__ */
284 #ifndef __IDeckLinkNotification_FWD_DEFINED__
285 #define __IDeckLinkNotification_FWD_DEFINED__
286 typedef interface IDeckLinkNotification IDeckLinkNotification;
287 #endif /* __IDeckLinkNotification_FWD_DEFINED__ */
290 #ifndef __IDeckLinkAttributes_FWD_DEFINED__
291 #define __IDeckLinkAttributes_FWD_DEFINED__
292 typedef interface IDeckLinkAttributes IDeckLinkAttributes;
293 #endif /* __IDeckLinkAttributes_FWD_DEFINED__ */
296 #ifndef __IDeckLinkKeyer_FWD_DEFINED__
297 #define __IDeckLinkKeyer_FWD_DEFINED__
298 typedef interface IDeckLinkKeyer IDeckLinkKeyer;
299 #endif /* __IDeckLinkKeyer_FWD_DEFINED__ */
302 #ifndef __IDeckLinkVideoConversion_FWD_DEFINED__
303 #define __IDeckLinkVideoConversion_FWD_DEFINED__
304 typedef interface IDeckLinkVideoConversion IDeckLinkVideoConversion;
305 #endif /* __IDeckLinkVideoConversion_FWD_DEFINED__ */
308 #ifndef __CDeckLinkIterator_FWD_DEFINED__
309 #define __CDeckLinkIterator_FWD_DEFINED__
312 typedef class CDeckLinkIterator CDeckLinkIterator;
314 typedef struct CDeckLinkIterator CDeckLinkIterator;
315 #endif /* __cplusplus */
317 #endif /* __CDeckLinkIterator_FWD_DEFINED__ */
320 #ifndef __CDeckLinkAPIInformation_FWD_DEFINED__
321 #define __CDeckLinkAPIInformation_FWD_DEFINED__
324 typedef class CDeckLinkAPIInformation CDeckLinkAPIInformation;
326 typedef struct CDeckLinkAPIInformation CDeckLinkAPIInformation;
327 #endif /* __cplusplus */
329 #endif /* __CDeckLinkAPIInformation_FWD_DEFINED__ */
332 #ifndef __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
333 #define __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__
336 typedef class CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;
338 typedef struct CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;
339 #endif /* __cplusplus */
341 #endif /* __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */
344 #ifndef __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
345 #define __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__
348 typedef class CDeckLinkDX9ScreenPreviewHelper CDeckLinkDX9ScreenPreviewHelper;
350 typedef struct CDeckLinkDX9ScreenPreviewHelper CDeckLinkDX9ScreenPreviewHelper;
351 #endif /* __cplusplus */
353 #endif /* __CDeckLinkDX9ScreenPreviewHelper_FWD_DEFINED__ */
356 #ifndef __CDeckLinkVideoConversion_FWD_DEFINED__
357 #define __CDeckLinkVideoConversion_FWD_DEFINED__
360 typedef class CDeckLinkVideoConversion CDeckLinkVideoConversion;
362 typedef struct CDeckLinkVideoConversion CDeckLinkVideoConversion;
363 #endif /* __cplusplus */
365 #endif /* __CDeckLinkVideoConversion_FWD_DEFINED__ */
368 #ifndef __IDeckLinkInput_v9_2_FWD_DEFINED__
369 #define __IDeckLinkInput_v9_2_FWD_DEFINED__
370 typedef interface IDeckLinkInput_v9_2 IDeckLinkInput_v9_2;
371 #endif /* __IDeckLinkInput_v9_2_FWD_DEFINED__ */
374 #ifndef __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__
375 #define __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__
376 typedef interface IDeckLinkDeckControlStatusCallback_v8_1 IDeckLinkDeckControlStatusCallback_v8_1;
377 #endif /* __IDeckLinkDeckControlStatusCallback_v8_1_FWD_DEFINED__ */
380 #ifndef __IDeckLinkDeckControl_v8_1_FWD_DEFINED__
381 #define __IDeckLinkDeckControl_v8_1_FWD_DEFINED__
382 typedef interface IDeckLinkDeckControl_v8_1 IDeckLinkDeckControl_v8_1;
383 #endif /* __IDeckLinkDeckControl_v8_1_FWD_DEFINED__ */
386 #ifndef __IDeckLink_v8_0_FWD_DEFINED__
387 #define __IDeckLink_v8_0_FWD_DEFINED__
388 typedef interface IDeckLink_v8_0 IDeckLink_v8_0;
389 #endif /* __IDeckLink_v8_0_FWD_DEFINED__ */
392 #ifndef __IDeckLinkIterator_v8_0_FWD_DEFINED__
393 #define __IDeckLinkIterator_v8_0_FWD_DEFINED__
394 typedef interface IDeckLinkIterator_v8_0 IDeckLinkIterator_v8_0;
395 #endif /* __IDeckLinkIterator_v8_0_FWD_DEFINED__ */
398 #ifndef __CDeckLinkIterator_v8_0_FWD_DEFINED__
399 #define __CDeckLinkIterator_v8_0_FWD_DEFINED__
402 typedef class CDeckLinkIterator_v8_0 CDeckLinkIterator_v8_0;
404 typedef struct CDeckLinkIterator_v8_0 CDeckLinkIterator_v8_0;
405 #endif /* __cplusplus */
407 #endif /* __CDeckLinkIterator_v8_0_FWD_DEFINED__ */
410 #ifndef __IDeckLinkDeckControl_v7_9_FWD_DEFINED__
411 #define __IDeckLinkDeckControl_v7_9_FWD_DEFINED__
412 typedef interface IDeckLinkDeckControl_v7_9 IDeckLinkDeckControl_v7_9;
413 #endif /* __IDeckLinkDeckControl_v7_9_FWD_DEFINED__ */
416 #ifndef __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__
417 #define __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__
418 typedef interface IDeckLinkDisplayModeIterator_v7_6 IDeckLinkDisplayModeIterator_v7_6;
419 #endif /* __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ */
422 #ifndef __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__
423 #define __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__
424 typedef interface IDeckLinkDisplayMode_v7_6 IDeckLinkDisplayMode_v7_6;
425 #endif /* __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ */
428 #ifndef __IDeckLinkOutput_v7_6_FWD_DEFINED__
429 #define __IDeckLinkOutput_v7_6_FWD_DEFINED__
430 typedef interface IDeckLinkOutput_v7_6 IDeckLinkOutput_v7_6;
431 #endif /* __IDeckLinkOutput_v7_6_FWD_DEFINED__ */
434 #ifndef __IDeckLinkInput_v7_6_FWD_DEFINED__
435 #define __IDeckLinkInput_v7_6_FWD_DEFINED__
436 typedef interface IDeckLinkInput_v7_6 IDeckLinkInput_v7_6;
437 #endif /* __IDeckLinkInput_v7_6_FWD_DEFINED__ */
440 #ifndef __IDeckLinkTimecode_v7_6_FWD_DEFINED__
441 #define __IDeckLinkTimecode_v7_6_FWD_DEFINED__
442 typedef interface IDeckLinkTimecode_v7_6 IDeckLinkTimecode_v7_6;
443 #endif /* __IDeckLinkTimecode_v7_6_FWD_DEFINED__ */
446 #ifndef __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__
447 #define __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__
448 typedef interface IDeckLinkVideoFrame_v7_6 IDeckLinkVideoFrame_v7_6;
449 #endif /* __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ */
452 #ifndef __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__
453 #define __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__
454 typedef interface IDeckLinkMutableVideoFrame_v7_6 IDeckLinkMutableVideoFrame_v7_6;
455 #endif /* __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ */
458 #ifndef __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__
459 #define __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__
460 typedef interface IDeckLinkVideoInputFrame_v7_6 IDeckLinkVideoInputFrame_v7_6;
461 #endif /* __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ */
464 #ifndef __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__
465 #define __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__
466 typedef interface IDeckLinkScreenPreviewCallback_v7_6 IDeckLinkScreenPreviewCallback_v7_6;
467 #endif /* __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ */
470 #ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
471 #define __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
472 typedef interface IDeckLinkGLScreenPreviewHelper_v7_6 IDeckLinkGLScreenPreviewHelper_v7_6;
473 #endif /* __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */
476 #ifndef __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__
477 #define __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__
478 typedef interface IDeckLinkVideoConversion_v7_6 IDeckLinkVideoConversion_v7_6;
479 #endif /* __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */
482 #ifndef __IDeckLinkConfiguration_v7_6_FWD_DEFINED__
483 #define __IDeckLinkConfiguration_v7_6_FWD_DEFINED__
484 typedef interface IDeckLinkConfiguration_v7_6 IDeckLinkConfiguration_v7_6;
485 #endif /* __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ */
488 #ifndef __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__
489 #define __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__
490 typedef interface IDeckLinkVideoOutputCallback_v7_6 IDeckLinkVideoOutputCallback_v7_6;
491 #endif /* __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__ */
494 #ifndef __IDeckLinkInputCallback_v7_6_FWD_DEFINED__
495 #define __IDeckLinkInputCallback_v7_6_FWD_DEFINED__
496 typedef interface IDeckLinkInputCallback_v7_6 IDeckLinkInputCallback_v7_6;
497 #endif /* __IDeckLinkInputCallback_v7_6_FWD_DEFINED__ */
500 #ifndef __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
501 #define __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__
504 typedef class CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;
506 typedef struct CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;
507 #endif /* __cplusplus */
509 #endif /* __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */
512 #ifndef __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__
513 #define __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__
516 typedef class CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;
518 typedef struct CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;
519 #endif /* __cplusplus */
521 #endif /* __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */
524 #ifndef __IDeckLinkInputCallback_v7_3_FWD_DEFINED__
525 #define __IDeckLinkInputCallback_v7_3_FWD_DEFINED__
526 typedef interface IDeckLinkInputCallback_v7_3 IDeckLinkInputCallback_v7_3;
527 #endif /* __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ */
530 #ifndef __IDeckLinkOutput_v7_3_FWD_DEFINED__
531 #define __IDeckLinkOutput_v7_3_FWD_DEFINED__
532 typedef interface IDeckLinkOutput_v7_3 IDeckLinkOutput_v7_3;
533 #endif /* __IDeckLinkOutput_v7_3_FWD_DEFINED__ */
536 #ifndef __IDeckLinkInput_v7_3_FWD_DEFINED__
537 #define __IDeckLinkInput_v7_3_FWD_DEFINED__
538 typedef interface IDeckLinkInput_v7_3 IDeckLinkInput_v7_3;
539 #endif /* __IDeckLinkInput_v7_3_FWD_DEFINED__ */
542 #ifndef __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__
543 #define __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__
544 typedef interface IDeckLinkVideoInputFrame_v7_3 IDeckLinkVideoInputFrame_v7_3;
545 #endif /* __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ */
548 #ifndef __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__
549 #define __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__
550 typedef interface IDeckLinkDisplayModeIterator_v7_1 IDeckLinkDisplayModeIterator_v7_1;
551 #endif /* __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ */
554 #ifndef __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__
555 #define __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__
556 typedef interface IDeckLinkDisplayMode_v7_1 IDeckLinkDisplayMode_v7_1;
557 #endif /* __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ */
560 #ifndef __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__
561 #define __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__
562 typedef interface IDeckLinkVideoFrame_v7_1 IDeckLinkVideoFrame_v7_1;
563 #endif /* __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ */
566 #ifndef __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__
567 #define __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__
568 typedef interface IDeckLinkVideoInputFrame_v7_1 IDeckLinkVideoInputFrame_v7_1;
569 #endif /* __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ */
572 #ifndef __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__
573 #define __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__
574 typedef interface IDeckLinkAudioInputPacket_v7_1 IDeckLinkAudioInputPacket_v7_1;
575 #endif /* __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ */
578 #ifndef __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__
579 #define __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__
580 typedef interface IDeckLinkVideoOutputCallback_v7_1 IDeckLinkVideoOutputCallback_v7_1;
581 #endif /* __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ */
584 #ifndef __IDeckLinkInputCallback_v7_1_FWD_DEFINED__
585 #define __IDeckLinkInputCallback_v7_1_FWD_DEFINED__
586 typedef interface IDeckLinkInputCallback_v7_1 IDeckLinkInputCallback_v7_1;
587 #endif /* __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ */
590 #ifndef __IDeckLinkOutput_v7_1_FWD_DEFINED__
591 #define __IDeckLinkOutput_v7_1_FWD_DEFINED__
592 typedef interface IDeckLinkOutput_v7_1 IDeckLinkOutput_v7_1;
593 #endif /* __IDeckLinkOutput_v7_1_FWD_DEFINED__ */
596 #ifndef __IDeckLinkInput_v7_1_FWD_DEFINED__
597 #define __IDeckLinkInput_v7_1_FWD_DEFINED__
598 typedef interface IDeckLinkInput_v7_1 IDeckLinkInput_v7_1;
599 #endif /* __IDeckLinkInput_v7_1_FWD_DEFINED__ */
602 /* header files for imported files */
611 #ifndef __DeckLinkAPI_LIBRARY_DEFINED__
612 #define __DeckLinkAPI_LIBRARY_DEFINED__
614 /* library DeckLinkAPI */
615 /* [helpstring][version][uuid] */
617 typedef LONGLONG BMDTimeValue;
619 typedef LONGLONG BMDTimeScale;
621 typedef unsigned long BMDTimecodeBCD;
623 typedef unsigned long BMDTimecodeUserBits;
625 typedef unsigned long BMDTimecodeFlags;
627 typedef enum _BMDTimecodeFlags BMDTimecodeFlags;
631 enum _BMDTimecodeFlags
632 { bmdTimecodeFlagDefault = 0,
633 bmdTimecodeIsDropFrame = ( 1 << 0 )
635 typedef /* [v1_enum] */
636 enum _BMDVideoConnection
637 { bmdVideoConnectionSDI = ( 1 << 0 ) ,
638 bmdVideoConnectionHDMI = ( 1 << 1 ) ,
639 bmdVideoConnectionOpticalSDI = ( 1 << 2 ) ,
640 bmdVideoConnectionComponent = ( 1 << 3 ) ,
641 bmdVideoConnectionComposite = ( 1 << 4 ) ,
642 bmdVideoConnectionSVideo = ( 1 << 5 )
643 } BMDVideoConnection;
646 typedef unsigned long BMDDisplayModeFlags;
648 typedef enum _BMDDisplayModeFlags BMDDisplayModeFlags;
651 typedef /* [v1_enum] */
653 { bmdModeNTSC = 0x6e747363,
654 bmdModeNTSC2398 = 0x6e743233,
655 bmdModePAL = 0x70616c20,
656 bmdModeNTSCp = 0x6e747370,
657 bmdModePALp = 0x70616c70,
658 bmdModeHD1080p2398 = 0x32337073,
659 bmdModeHD1080p24 = 0x32347073,
660 bmdModeHD1080p25 = 0x48703235,
661 bmdModeHD1080p2997 = 0x48703239,
662 bmdModeHD1080p30 = 0x48703330,
663 bmdModeHD1080i50 = 0x48693530,
664 bmdModeHD1080i5994 = 0x48693539,
665 bmdModeHD1080i6000 = 0x48693630,
666 bmdModeHD1080p50 = 0x48703530,
667 bmdModeHD1080p5994 = 0x48703539,
668 bmdModeHD1080p6000 = 0x48703630,
669 bmdModeHD720p50 = 0x68703530,
670 bmdModeHD720p5994 = 0x68703539,
671 bmdModeHD720p60 = 0x68703630,
672 bmdMode2k2398 = 0x326b3233,
673 bmdMode2k24 = 0x326b3234,
674 bmdMode2k25 = 0x326b3235,
675 bmdMode4K2160p2398 = 0x346b3233,
676 bmdMode4K2160p24 = 0x346b3234,
677 bmdMode4K2160p25 = 0x346b3235,
678 bmdMode4K2160p2997 = 0x346b3239,
679 bmdMode4K2160p30 = 0x346b3330,
680 bmdModeUnknown = 0x69756e6b
683 typedef /* [v1_enum] */
684 enum _BMDFieldDominance
685 { bmdUnknownFieldDominance = 0,
686 bmdLowerFieldFirst = 0x6c6f7772,
687 bmdUpperFieldFirst = 0x75707072,
688 bmdProgressiveFrame = 0x70726f67,
689 bmdProgressiveSegmentedFrame = 0x70736620
692 typedef /* [v1_enum] */
694 { bmdFormat8BitYUV = 0x32767579,
695 bmdFormat10BitYUV = 0x76323130,
696 bmdFormat8BitARGB = 32,
697 bmdFormat8BitBGRA = 0x42475241,
698 bmdFormat10BitRGB = 0x72323130
702 enum _BMDDisplayModeFlags
703 { bmdDisplayModeSupports3D = ( 1 << 0 ) ,
704 bmdDisplayModeColorspaceRec601 = ( 1 << 1 ) ,
705 bmdDisplayModeColorspaceRec709 = ( 1 << 2 )
714 typedef /* [v1_enum] */
715 enum _BMDDeckLinkConfigurationID
716 { bmdDeckLinkConfigSwapSerialRxTx = 0x73737274,
717 bmdDeckLinkConfigUse1080pNotPsF = 0x6670726f,
718 bmdDeckLinkConfigHDMI3DPackingFormat = 0x33647066,
719 bmdDeckLinkConfigBypass = 0x62797073,
720 bmdDeckLinkConfigClockTimingAdjustment = 0x63746164,
721 bmdDeckLinkConfigAnalogAudioConsumerLevels = 0x6161636c,
722 bmdDeckLinkConfigFieldFlickerRemoval = 0x66646672,
723 bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion = 0x746f3539,
724 bmdDeckLinkConfig444SDIVideoOutput = 0x3434346f,
725 bmdDeckLinkConfig3GBpsVideoOutput = 0x33676273,
726 bmdDeckLinkConfigBlackVideoOutputDuringCapture = 0x62766f63,
727 bmdDeckLinkConfigLowLatencyVideoOutput = 0x6c6c766f,
728 bmdDeckLinkConfigVideoOutputConnection = 0x766f636e,
729 bmdDeckLinkConfigVideoOutputConversionMode = 0x766f636d,
730 bmdDeckLinkConfigAnalogVideoOutputFlags = 0x61766f66,
731 bmdDeckLinkConfigReferenceInputTimingOffset = 0x676c6f74,
732 bmdDeckLinkConfigVideoOutputIdleOperation = 0x766f696f,
733 bmdDeckLinkConfigDefaultVideoOutputMode = 0x64766f6d,
734 bmdDeckLinkConfigDefaultVideoOutputModeFlags = 0x64766f66,
735 bmdDeckLinkConfigVideoOutputComponentLumaGain = 0x6f636c67,
736 bmdDeckLinkConfigVideoOutputComponentChromaBlueGain = 0x6f636362,
737 bmdDeckLinkConfigVideoOutputComponentChromaRedGain = 0x6f636372,
738 bmdDeckLinkConfigVideoOutputCompositeLumaGain = 0x6f696c67,
739 bmdDeckLinkConfigVideoOutputCompositeChromaGain = 0x6f696367,
740 bmdDeckLinkConfigVideoOutputSVideoLumaGain = 0x6f736c67,
741 bmdDeckLinkConfigVideoOutputSVideoChromaGain = 0x6f736367,
742 bmdDeckLinkConfigVideoInputScanning = 0x76697363,
743 bmdDeckLinkConfigUseDedicatedLTCInput = 0x646c7463,
744 bmdDeckLinkConfigVideoInputConnection = 0x7669636e,
745 bmdDeckLinkConfigAnalogVideoInputFlags = 0x61766966,
746 bmdDeckLinkConfigVideoInputConversionMode = 0x7669636d,
747 bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = 0x70646966,
748 bmdDeckLinkConfigVANCSourceLine1Mapping = 0x76736c31,
749 bmdDeckLinkConfigVANCSourceLine2Mapping = 0x76736c32,
750 bmdDeckLinkConfigVANCSourceLine3Mapping = 0x76736c33,
751 bmdDeckLinkConfigVideoInputComponentLumaGain = 0x69636c67,
752 bmdDeckLinkConfigVideoInputComponentChromaBlueGain = 0x69636362,
753 bmdDeckLinkConfigVideoInputComponentChromaRedGain = 0x69636372,
754 bmdDeckLinkConfigVideoInputCompositeLumaGain = 0x69696c67,
755 bmdDeckLinkConfigVideoInputCompositeChromaGain = 0x69696367,
756 bmdDeckLinkConfigVideoInputSVideoLumaGain = 0x69736c67,
757 bmdDeckLinkConfigVideoInputSVideoChromaGain = 0x69736367,
758 bmdDeckLinkConfigAudioInputConnection = 0x6169636e,
759 bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = 0x61697331,
760 bmdDeckLinkConfigAnalogAudioInputScaleChannel2 = 0x61697332,
761 bmdDeckLinkConfigAnalogAudioInputScaleChannel3 = 0x61697333,
762 bmdDeckLinkConfigAnalogAudioInputScaleChannel4 = 0x61697334,
763 bmdDeckLinkConfigDigitalAudioInputScale = 0x64616973,
764 bmdDeckLinkConfigAudioOutputAESAnalogSwitch = 0x616f6161,
765 bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = 0x616f7331,
766 bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = 0x616f7332,
767 bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = 0x616f7333,
768 bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = 0x616f7334,
769 bmdDeckLinkConfigDigitalAudioOutputScale = 0x64616f73
770 } BMDDeckLinkConfigurationID;
773 typedef unsigned long BMDDeckControlStatusFlags;
774 typedef unsigned long BMDDeckControlExportModeOpsFlags;
776 typedef enum _BMDDeckControlStatusFlags BMDDeckControlStatusFlags;
778 typedef enum _BMDDeckControlExportModeOpsFlags BMDDeckControlExportModeOpsFlags;
781 typedef /* [v1_enum] */
782 enum _BMDDeckControlMode
783 { bmdDeckControlNotOpened = 0x6e746f70,
784 bmdDeckControlVTRControlMode = 0x76747263,
785 bmdDeckControlExportMode = 0x6578706d,
786 bmdDeckControlCaptureMode = 0x6361706d
787 } BMDDeckControlMode;
789 typedef /* [v1_enum] */
790 enum _BMDDeckControlEvent
791 { bmdDeckControlAbortedEvent = 0x61627465,
792 bmdDeckControlPrepareForExportEvent = 0x70666565,
793 bmdDeckControlExportCompleteEvent = 0x65786365,
794 bmdDeckControlPrepareForCaptureEvent = 0x70666365,
795 bmdDeckControlCaptureCompleteEvent = 0x63636576
796 } BMDDeckControlEvent;
798 typedef /* [v1_enum] */
799 enum _BMDDeckControlVTRControlState
800 { bmdDeckControlNotInVTRControlMode = 0x6e76636d,
801 bmdDeckControlVTRControlPlaying = 0x76747270,
802 bmdDeckControlVTRControlRecording = 0x76747272,
803 bmdDeckControlVTRControlStill = 0x76747261,
804 bmdDeckControlVTRControlShuttleForward = 0x76747366,
805 bmdDeckControlVTRControlShuttleReverse = 0x76747372,
806 bmdDeckControlVTRControlJogForward = 0x76746a66,
807 bmdDeckControlVTRControlJogReverse = 0x76746a72,
808 bmdDeckControlVTRControlStopped = 0x7674726f
809 } BMDDeckControlVTRControlState;
812 enum _BMDDeckControlStatusFlags
813 { bmdDeckControlStatusDeckConnected = ( 1 << 0 ) ,
814 bmdDeckControlStatusRemoteMode = ( 1 << 1 ) ,
815 bmdDeckControlStatusRecordInhibited = ( 1 << 2 ) ,
816 bmdDeckControlStatusCassetteOut = ( 1 << 3 )
819 enum _BMDDeckControlExportModeOpsFlags
820 { bmdDeckControlExportModeInsertVideo = ( 1 << 0 ) ,
821 bmdDeckControlExportModeInsertAudio1 = ( 1 << 1 ) ,
822 bmdDeckControlExportModeInsertAudio2 = ( 1 << 2 ) ,
823 bmdDeckControlExportModeInsertAudio3 = ( 1 << 3 ) ,
824 bmdDeckControlExportModeInsertAudio4 = ( 1 << 4 ) ,
825 bmdDeckControlExportModeInsertAudio5 = ( 1 << 5 ) ,
826 bmdDeckControlExportModeInsertAudio6 = ( 1 << 6 ) ,
827 bmdDeckControlExportModeInsertAudio7 = ( 1 << 7 ) ,
828 bmdDeckControlExportModeInsertAudio8 = ( 1 << 8 ) ,
829 bmdDeckControlExportModeInsertAudio9 = ( 1 << 9 ) ,
830 bmdDeckControlExportModeInsertAudio10 = ( 1 << 10 ) ,
831 bmdDeckControlExportModeInsertAudio11 = ( 1 << 11 ) ,
832 bmdDeckControlExportModeInsertAudio12 = ( 1 << 12 ) ,
833 bmdDeckControlExportModeInsertTimeCode = ( 1 << 13 ) ,
834 bmdDeckControlExportModeInsertAssemble = ( 1 << 14 ) ,
835 bmdDeckControlExportModeInsertPreview = ( 1 << 15 ) ,
836 bmdDeckControlUseManualExport = ( 1 << 16 )
838 typedef /* [v1_enum] */
839 enum _BMDDeckControlError
840 { bmdDeckControlNoError = 0x6e6f6572,
841 bmdDeckControlModeError = 0x6d6f6572,
842 bmdDeckControlMissedInPointError = 0x6d696572,
843 bmdDeckControlDeckTimeoutError = 0x64746572,
844 bmdDeckControlCommandFailedError = 0x63666572,
845 bmdDeckControlDeviceAlreadyOpenedError = 0x64616c6f,
846 bmdDeckControlFailedToOpenDeviceError = 0x66646572,
847 bmdDeckControlInLocalModeError = 0x6c6d6572,
848 bmdDeckControlEndOfTapeError = 0x65746572,
849 bmdDeckControlUserAbortError = 0x75616572,
850 bmdDeckControlNoTapeInDeckError = 0x6e746572,
851 bmdDeckControlNoVideoFromCardError = 0x6e766663,
852 bmdDeckControlNoCommunicationError = 0x6e636f6d,
853 bmdDeckControlBufferTooSmallError = 0x6274736d,
854 bmdDeckControlBadChecksumError = 0x63686b73,
855 bmdDeckControlUnknownError = 0x756e6572
856 } BMDDeckControlError;
862 typedef /* [v1_enum] */
863 enum _BMDStreamingDeviceMode
864 { bmdStreamingDeviceIdle = 0x69646c65,
865 bmdStreamingDeviceEncoding = 0x656e636f,
866 bmdStreamingDeviceStopping = 0x73746f70,
867 bmdStreamingDeviceUnknown = 0x6d756e6b
868 } BMDStreamingDeviceMode;
870 typedef /* [v1_enum] */
871 enum _BMDStreamingEncodingFrameRate
872 { bmdStreamingEncodedFrameRate50i = 0x65353069,
873 bmdStreamingEncodedFrameRate5994i = 0x65353969,
874 bmdStreamingEncodedFrameRate60i = 0x65363069,
875 bmdStreamingEncodedFrameRate2398p = 0x65323370,
876 bmdStreamingEncodedFrameRate24p = 0x65323470,
877 bmdStreamingEncodedFrameRate25p = 0x65323570,
878 bmdStreamingEncodedFrameRate2997p = 0x65323970,
879 bmdStreamingEncodedFrameRate30p = 0x65333070,
880 bmdStreamingEncodedFrameRate50p = 0x65353070,
881 bmdStreamingEncodedFrameRate5994p = 0x65353970,
882 bmdStreamingEncodedFrameRate60p = 0x65363070
883 } BMDStreamingEncodingFrameRate;
885 typedef /* [v1_enum] */
886 enum _BMDStreamingEncodingSupport
887 { bmdStreamingEncodingModeNotSupported = 0,
888 bmdStreamingEncodingModeSupported = ( bmdStreamingEncodingModeNotSupported + 1 ) ,
889 bmdStreamingEncodingModeSupportedWithChanges = ( bmdStreamingEncodingModeSupported + 1 )
890 } BMDStreamingEncodingSupport;
892 typedef /* [v1_enum] */
893 enum _BMDStreamingVideoCodec
894 { bmdStreamingVideoCodecH264 = 0x48323634
895 } BMDStreamingVideoCodec;
897 typedef /* [v1_enum] */
898 enum _BMDStreamingH264Profile
899 { bmdStreamingH264ProfileHigh = 0x68696768,
900 bmdStreamingH264ProfileMain = 0x6d61696e,
901 bmdStreamingH264ProfileBaseline = 0x62617365
902 } BMDStreamingH264Profile;
904 typedef /* [v1_enum] */
905 enum _BMDStreamingH264Level
906 { bmdStreamingH264Level12 = 0x6c763132,
907 bmdStreamingH264Level13 = 0x6c763133,
908 bmdStreamingH264Level2 = 0x6c763220,
909 bmdStreamingH264Level21 = 0x6c763231,
910 bmdStreamingH264Level22 = 0x6c763232,
911 bmdStreamingH264Level3 = 0x6c763320,
912 bmdStreamingH264Level31 = 0x6c763331,
913 bmdStreamingH264Level32 = 0x6c763332,
914 bmdStreamingH264Level4 = 0x6c763420,
915 bmdStreamingH264Level41 = 0x6c763431,
916 bmdStreamingH264Level42 = 0x6c763432
917 } BMDStreamingH264Level;
919 typedef /* [v1_enum] */
920 enum _BMDStreamingH264EntropyCoding
921 { bmdStreamingH264EntropyCodingCAVLC = 0x45564c43,
922 bmdStreamingH264EntropyCodingCABAC = 0x45424143
923 } BMDStreamingH264EntropyCoding;
925 typedef /* [v1_enum] */
926 enum _BMDStreamingAudioCodec
927 { bmdStreamingAudioCodecAAC = 0x41414320
928 } BMDStreamingAudioCodec;
930 typedef /* [v1_enum] */
931 enum _BMDStreamingEncodingModePropertyID
932 { bmdStreamingEncodingPropertyVideoFrameRate = 0x76667274,
933 bmdStreamingEncodingPropertyVideoBitRateKbps = 0x76627274,
934 bmdStreamingEncodingPropertyH264Profile = 0x68707266,
935 bmdStreamingEncodingPropertyH264Level = 0x686c766c,
936 bmdStreamingEncodingPropertyH264EntropyCoding = 0x68656e74,
937 bmdStreamingEncodingPropertyH264HasBFrames = 0x68426672,
938 bmdStreamingEncodingPropertyAudioCodec = 0x61636463,
939 bmdStreamingEncodingPropertyAudioSampleRate = 0x61737274,
940 bmdStreamingEncodingPropertyAudioChannelCount = 0x61636863,
941 bmdStreamingEncodingPropertyAudioBitRateKbps = 0x61627274
942 } BMDStreamingEncodingModePropertyID;
955 typedef unsigned long BMDFrameFlags;
956 typedef unsigned long BMDVideoInputFlags;
957 typedef unsigned long BMDVideoInputFormatChangedEvents;
958 typedef unsigned long BMDDetectedVideoInputFormatFlags;
959 typedef unsigned long BMDAnalogVideoFlags;
960 typedef unsigned long BMDDeviceBusyState;
962 typedef enum _BMDFrameFlags BMDFrameFlags;
964 typedef enum _BMDVideoInputFlags BMDVideoInputFlags;
966 typedef enum _BMDVideoInputFormatChangedEvents BMDVideoInputFormatChangedEvents;
968 typedef enum _BMDDetectedVideoInputFormatFlags BMDDetectedVideoInputFormatFlags;
970 typedef enum _BMDAnalogVideoFlags BMDAnalogVideoFlags;
972 typedef enum _BMDDeviceBusyState BMDDeviceBusyState;
975 typedef /* [v1_enum] */
976 enum _BMDVideoOutputFlags
977 { bmdVideoOutputFlagDefault = 0,
978 bmdVideoOutputVANC = ( 1 << 0 ) ,
979 bmdVideoOutputVITC = ( 1 << 1 ) ,
980 bmdVideoOutputRP188 = ( 1 << 2 ) ,
981 bmdVideoOutputDualStream3D = ( 1 << 4 )
982 } BMDVideoOutputFlags;
986 { bmdFrameFlagDefault = 0,
987 bmdFrameFlagFlipVertical = ( 1 << 0 ) ,
988 bmdFrameHasNoInputSource = ( 1 << 31 )
991 enum _BMDVideoInputFlags
992 { bmdVideoInputFlagDefault = 0,
993 bmdVideoInputEnableFormatDetection = ( 1 << 0 ) ,
994 bmdVideoInputDualStream3D = ( 1 << 1 )
997 enum _BMDVideoInputFormatChangedEvents
998 { bmdVideoInputDisplayModeChanged = ( 1 << 0 ) ,
999 bmdVideoInputFieldDominanceChanged = ( 1 << 1 ) ,
1000 bmdVideoInputColorspaceChanged = ( 1 << 2 )
1003 enum _BMDDetectedVideoInputFormatFlags
1004 { bmdDetectedVideoInputYCbCr422 = ( 1 << 0 ) ,
1005 bmdDetectedVideoInputRGB444 = ( 1 << 1 )
1007 typedef /* [v1_enum] */
1008 enum _BMDOutputFrameCompletionResult
1009 { bmdOutputFrameCompleted = 0,
1010 bmdOutputFrameDisplayedLate = ( bmdOutputFrameCompleted + 1 ) ,
1011 bmdOutputFrameDropped = ( bmdOutputFrameDisplayedLate + 1 ) ,
1012 bmdOutputFrameFlushed = ( bmdOutputFrameDropped + 1 )
1013 } BMDOutputFrameCompletionResult;
1015 typedef /* [v1_enum] */
1016 enum _BMDReferenceStatus
1017 { bmdReferenceNotSupportedByHardware = ( 1 << 0 ) ,
1018 bmdReferenceLocked = ( 1 << 1 )
1019 } BMDReferenceStatus;
1021 typedef /* [v1_enum] */
1022 enum _BMDAudioSampleRate
1023 { bmdAudioSampleRate48kHz = 48000
1024 } BMDAudioSampleRate;
1026 typedef /* [v1_enum] */
1027 enum _BMDAudioSampleType
1028 { bmdAudioSampleType16bitInteger = 16,
1029 bmdAudioSampleType32bitInteger = 32
1030 } BMDAudioSampleType;
1032 typedef /* [v1_enum] */
1033 enum _BMDAudioOutputStreamType
1034 { bmdAudioOutputStreamContinuous = 0,
1035 bmdAudioOutputStreamContinuousDontResample = ( bmdAudioOutputStreamContinuous + 1 ) ,
1036 bmdAudioOutputStreamTimestamped = ( bmdAudioOutputStreamContinuousDontResample + 1 )
1037 } BMDAudioOutputStreamType;
1039 typedef /* [v1_enum] */
1040 enum _BMDDisplayModeSupport
1041 { bmdDisplayModeNotSupported = 0,
1042 bmdDisplayModeSupported = ( bmdDisplayModeNotSupported + 1 ) ,
1043 bmdDisplayModeSupportedWithConversion = ( bmdDisplayModeSupported + 1 )
1044 } BMDDisplayModeSupport;
1046 typedef /* [v1_enum] */
1047 enum _BMDTimecodeFormat
1048 { bmdTimecodeRP188VITC1 = 0x72707631,
1049 bmdTimecodeRP188VITC2 = 0x72703132,
1050 bmdTimecodeRP188LTC = 0x72706c74,
1051 bmdTimecodeRP188Any = 0x72703138,
1052 bmdTimecodeVITC = 0x76697463,
1053 bmdTimecodeVITCField2 = 0x76697432,
1054 bmdTimecodeSerial = 0x73657269
1055 } BMDTimecodeFormat;
1058 enum _BMDAnalogVideoFlags
1059 { bmdAnalogVideoFlagCompositeSetup75 = ( 1 << 0 ) ,
1060 bmdAnalogVideoFlagComponentBetacamLevels = ( 1 << 1 )
1062 typedef /* [v1_enum] */
1063 enum _BMDAudioConnection
1064 { bmdAudioConnectionEmbedded = 0x656d6264,
1065 bmdAudioConnectionAESEBU = 0x61657320,
1066 bmdAudioConnectionAnalog = 0x616e6c67,
1067 bmdAudioConnectionAnalogXLR = 0x61786c72,
1068 bmdAudioConnectionAnalogRCA = 0x61726361
1069 } BMDAudioConnection;
1071 typedef /* [v1_enum] */
1072 enum _BMDAudioOutputAnalogAESSwitch
1073 { bmdAudioOutputSwitchAESEBU = 0x61657320,
1074 bmdAudioOutputSwitchAnalog = 0x616e6c67
1075 } BMDAudioOutputAnalogAESSwitch;
1077 typedef /* [v1_enum] */
1078 enum _BMDVideoOutputConversionMode
1079 { bmdNoVideoOutputConversion = 0x6e6f6e65,
1080 bmdVideoOutputLetterboxDownconversion = 0x6c746278,
1081 bmdVideoOutputAnamorphicDownconversion = 0x616d7068,
1082 bmdVideoOutputHD720toHD1080Conversion = 0x37323063,
1083 bmdVideoOutputHardwareLetterboxDownconversion = 0x48576c62,
1084 bmdVideoOutputHardwareAnamorphicDownconversion = 0x4857616d,
1085 bmdVideoOutputHardwareCenterCutDownconversion = 0x48576363,
1086 bmdVideoOutputHardware720p1080pCrossconversion = 0x78636170,
1087 bmdVideoOutputHardwareAnamorphic720pUpconversion = 0x75613770,
1088 bmdVideoOutputHardwareAnamorphic1080iUpconversion = 0x75613169,
1089 bmdVideoOutputHardwareAnamorphic149To720pUpconversion = 0x75343770,
1090 bmdVideoOutputHardwareAnamorphic149To1080iUpconversion = 0x75343169,
1091 bmdVideoOutputHardwarePillarbox720pUpconversion = 0x75703770,
1092 bmdVideoOutputHardwarePillarbox1080iUpconversion = 0x75703169
1093 } BMDVideoOutputConversionMode;
1095 typedef /* [v1_enum] */
1096 enum _BMDVideoInputConversionMode
1097 { bmdNoVideoInputConversion = 0x6e6f6e65,
1098 bmdVideoInputLetterboxDownconversionFromHD1080 = 0x31306c62,
1099 bmdVideoInputAnamorphicDownconversionFromHD1080 = 0x3130616d,
1100 bmdVideoInputLetterboxDownconversionFromHD720 = 0x37326c62,
1101 bmdVideoInputAnamorphicDownconversionFromHD720 = 0x3732616d,
1102 bmdVideoInputLetterboxUpconversion = 0x6c627570,
1103 bmdVideoInputAnamorphicUpconversion = 0x616d7570
1104 } BMDVideoInputConversionMode;
1106 typedef /* [v1_enum] */
1107 enum _BMDVideo3DPackingFormat
1108 { bmdVideo3DPackingSidebySideHalf = 0x73627368,
1109 bmdVideo3DPackingLinebyLine = 0x6c62796c,
1110 bmdVideo3DPackingTopAndBottom = 0x7461626f,
1111 bmdVideo3DPackingFramePacking = 0x6672706b,
1112 bmdVideo3DPackingLeftOnly = 0x6c656674,
1113 bmdVideo3DPackingRightOnly = 0x72696768
1114 } BMDVideo3DPackingFormat;
1116 typedef /* [v1_enum] */
1117 enum _BMDIdleVideoOutputOperation
1118 { bmdIdleVideoOutputBlack = 0x626c6163,
1119 bmdIdleVideoOutputLastFrame = 0x6c616661,
1120 bmdIdleVideoOutputDesktop = 0x6465736b
1121 } BMDIdleVideoOutputOperation;
1123 typedef /* [v1_enum] */
1124 enum _BMDDeckLinkAttributeID
1125 { BMDDeckLinkSupportsInternalKeying = 0x6b657969,
1126 BMDDeckLinkSupportsExternalKeying = 0x6b657965,
1127 BMDDeckLinkSupportsHDKeying = 0x6b657968,
1128 BMDDeckLinkSupportsInputFormatDetection = 0x696e6664,
1129 BMDDeckLinkHasReferenceInput = 0x6872696e,
1130 BMDDeckLinkHasSerialPort = 0x68737074,
1131 BMDDeckLinkHasAnalogVideoOutputGain = 0x61766f67,
1132 BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain = 0x6f766f67,
1133 BMDDeckLinkHasVideoInputAntiAliasingFilter = 0x6161666c,
1134 BMDDeckLinkHasBypass = 0x62797073,
1135 BMDDeckLinkSupportsDesktopDisplay = 0x65787464,
1136 BMDDeckLinkSupportsClockTimingAdjustment = 0x63746164,
1137 BMDDeckLinkMaximumAudioChannels = 0x6d616368,
1138 BMDDeckLinkNumberOfSubDevices = 0x6e736264,
1139 BMDDeckLinkSubDeviceIndex = 0x73756269,
1140 BMDDeckLinkVideoOutputConnections = 0x766f636e,
1141 BMDDeckLinkVideoInputConnections = 0x7669636e,
1142 BMDDeckLinkDeviceBusyState = 0x64627374,
1143 BMDDeckLinkVideoIOSupport = 0x76696f73,
1144 BMDDeckLinkVideoInputGainMinimum = 0x7669676d,
1145 BMDDeckLinkVideoInputGainMaximum = 0x76696778,
1146 BMDDeckLinkVideoOutputGainMinimum = 0x766f676d,
1147 BMDDeckLinkVideoOutputGainMaximum = 0x766f6778,
1148 BMDDeckLinkSerialPortDeviceName = 0x736c706e
1149 } BMDDeckLinkAttributeID;
1151 typedef /* [v1_enum] */
1152 enum _BMDDeckLinkAPIInformationID
1153 { BMDDeckLinkAPIVersion = 0x76657273
1154 } BMDDeckLinkAPIInformationID;
1157 enum _BMDDeviceBusyState
1158 { bmdDeviceCaptureBusy = ( 1 << 0 ) ,
1159 bmdDevicePlaybackBusy = ( 1 << 1 ) ,
1160 bmdDeviceSerialPortBusy = ( 1 << 2 )
1162 typedef /* [v1_enum] */
1163 enum _BMDVideoIOSupport
1164 { bmdDeviceSupportsCapture = ( 1 << 0 ) ,
1165 bmdDeviceSupportsPlayback = ( 1 << 1 )
1166 } BMDVideoIOSupport;
1168 typedef /* [v1_enum] */
1169 enum _BMD3DPreviewFormat
1170 { bmd3DPreviewFormatDefault = 0x64656661,
1171 bmd3DPreviewFormatLeftOnly = 0x6c656674,
1172 bmd3DPreviewFormatRightOnly = 0x72696768,
1173 bmd3DPreviewFormatSideBySide = 0x73696465,
1174 bmd3DPreviewFormatTopBottom = 0x746f7062
1175 } BMD3DPreviewFormat;
1177 typedef /* [v1_enum] */
1178 enum _BMDNotifications
1179 { bmdPreferencesChanged = 0x70726566
1204 typedef /* [v1_enum] */
1205 enum _BMDDeckControlVTRControlState_v8_1
1206 { bmdDeckControlNotInVTRControlMode_v8_1 = 0x6e76636d,
1207 bmdDeckControlVTRControlPlaying_v8_1 = 0x76747270,
1208 bmdDeckControlVTRControlRecording_v8_1 = 0x76747272,
1209 bmdDeckControlVTRControlStill_v8_1 = 0x76747261,
1210 bmdDeckControlVTRControlSeeking_v8_1 = 0x76747273,
1211 bmdDeckControlVTRControlStopped_v8_1 = 0x7674726f
1212 } BMDDeckControlVTRControlState_v8_1;
1216 typedef /* [v1_enum] */
1217 enum _BMDVideoConnection_v7_6
1218 { bmdVideoConnectionSDI_v7_6 = 0x73646920,
1219 bmdVideoConnectionHDMI_v7_6 = 0x68646d69,
1220 bmdVideoConnectionOpticalSDI_v7_6 = 0x6f707469,
1221 bmdVideoConnectionComponent_v7_6 = 0x63706e74,
1222 bmdVideoConnectionComposite_v7_6 = 0x636d7374,
1223 bmdVideoConnectionSVideo_v7_6 = 0x73766964
1224 } BMDVideoConnection_v7_6;
1248 EXTERN_C const IID LIBID_DeckLinkAPI;
1250 #ifndef __IDeckLinkTimecode_INTERFACE_DEFINED__
1251 #define __IDeckLinkTimecode_INTERFACE_DEFINED__
1253 /* interface IDeckLinkTimecode */
1254 /* [helpstring][uuid][object] */
1257 EXTERN_C const IID IID_IDeckLinkTimecode;
1259 #if defined(__cplusplus) && !defined(CINTERFACE)
1261 MIDL_INTERFACE("BC6CFBD3-8317-4325-AC1C-1216391E9340")
1262 IDeckLinkTimecode : public IUnknown
1265 virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;
1267 virtual HRESULT STDMETHODCALLTYPE GetComponents(
1268 /* [out] */ unsigned char *hours,
1269 /* [out] */ unsigned char *minutes,
1270 /* [out] */ unsigned char *seconds,
1271 /* [out] */ unsigned char *frames) = 0;
1273 virtual HRESULT STDMETHODCALLTYPE GetString(
1274 /* [out] */ BSTR *timecode) = 0;
1276 virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
1278 virtual HRESULT STDMETHODCALLTYPE GetTimecodeUserBits(
1279 /* [out] */ BMDTimecodeUserBits *userBits) = 0;
1283 #else /* C style interface */
1285 typedef struct IDeckLinkTimecodeVtbl
1289 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1290 IDeckLinkTimecode * This,
1291 /* [in] */ REFIID riid,
1292 /* [annotation][iid_is][out] */
1293 __RPC__deref_out void **ppvObject);
1295 ULONG ( STDMETHODCALLTYPE *AddRef )(
1296 IDeckLinkTimecode * This);
1298 ULONG ( STDMETHODCALLTYPE *Release )(
1299 IDeckLinkTimecode * This);
1301 BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )(
1302 IDeckLinkTimecode * This);
1304 HRESULT ( STDMETHODCALLTYPE *GetComponents )(
1305 IDeckLinkTimecode * This,
1306 /* [out] */ unsigned char *hours,
1307 /* [out] */ unsigned char *minutes,
1308 /* [out] */ unsigned char *seconds,
1309 /* [out] */ unsigned char *frames);
1311 HRESULT ( STDMETHODCALLTYPE *GetString )(
1312 IDeckLinkTimecode * This,
1313 /* [out] */ BSTR *timecode);
1315 BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )(
1316 IDeckLinkTimecode * This);
1318 HRESULT ( STDMETHODCALLTYPE *GetTimecodeUserBits )(
1319 IDeckLinkTimecode * This,
1320 /* [out] */ BMDTimecodeUserBits *userBits);
1323 } IDeckLinkTimecodeVtbl;
1325 interface IDeckLinkTimecode
1327 CONST_VTBL struct IDeckLinkTimecodeVtbl *lpVtbl;
1335 #define IDeckLinkTimecode_QueryInterface(This,riid,ppvObject) \
1336 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1338 #define IDeckLinkTimecode_AddRef(This) \
1339 ( (This)->lpVtbl -> AddRef(This) )
1341 #define IDeckLinkTimecode_Release(This) \
1342 ( (This)->lpVtbl -> Release(This) )
1345 #define IDeckLinkTimecode_GetBCD(This) \
1346 ( (This)->lpVtbl -> GetBCD(This) )
1348 #define IDeckLinkTimecode_GetComponents(This,hours,minutes,seconds,frames) \
1349 ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) )
1351 #define IDeckLinkTimecode_GetString(This,timecode) \
1352 ( (This)->lpVtbl -> GetString(This,timecode) )
1354 #define IDeckLinkTimecode_GetFlags(This) \
1355 ( (This)->lpVtbl -> GetFlags(This) )
1357 #define IDeckLinkTimecode_GetTimecodeUserBits(This,userBits) \
1358 ( (This)->lpVtbl -> GetTimecodeUserBits(This,userBits) )
1360 #endif /* COBJMACROS */
1363 #endif /* C style interface */
1368 #endif /* __IDeckLinkTimecode_INTERFACE_DEFINED__ */
1371 #ifndef __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__
1372 #define __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__
1374 /* interface IDeckLinkDisplayModeIterator */
1375 /* [helpstring][uuid][object] */
1378 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator;
1380 #if defined(__cplusplus) && !defined(CINTERFACE)
1382 MIDL_INTERFACE("9C88499F-F601-4021-B80B-032E4EB41C35")
1383 IDeckLinkDisplayModeIterator : public IUnknown
1386 virtual HRESULT STDMETHODCALLTYPE Next(
1387 /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0;
1391 #else /* C style interface */
1393 typedef struct IDeckLinkDisplayModeIteratorVtbl
1397 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1398 IDeckLinkDisplayModeIterator * This,
1399 /* [in] */ REFIID riid,
1400 /* [annotation][iid_is][out] */
1401 __RPC__deref_out void **ppvObject);
1403 ULONG ( STDMETHODCALLTYPE *AddRef )(
1404 IDeckLinkDisplayModeIterator * This);
1406 ULONG ( STDMETHODCALLTYPE *Release )(
1407 IDeckLinkDisplayModeIterator * This);
1409 HRESULT ( STDMETHODCALLTYPE *Next )(
1410 IDeckLinkDisplayModeIterator * This,
1411 /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode);
1414 } IDeckLinkDisplayModeIteratorVtbl;
1416 interface IDeckLinkDisplayModeIterator
1418 CONST_VTBL struct IDeckLinkDisplayModeIteratorVtbl *lpVtbl;
1426 #define IDeckLinkDisplayModeIterator_QueryInterface(This,riid,ppvObject) \
1427 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1429 #define IDeckLinkDisplayModeIterator_AddRef(This) \
1430 ( (This)->lpVtbl -> AddRef(This) )
1432 #define IDeckLinkDisplayModeIterator_Release(This) \
1433 ( (This)->lpVtbl -> Release(This) )
1436 #define IDeckLinkDisplayModeIterator_Next(This,deckLinkDisplayMode) \
1437 ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) )
1439 #endif /* COBJMACROS */
1442 #endif /* C style interface */
1447 #endif /* __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ */
1450 #ifndef __IDeckLinkDisplayMode_INTERFACE_DEFINED__
1451 #define __IDeckLinkDisplayMode_INTERFACE_DEFINED__
1453 /* interface IDeckLinkDisplayMode */
1454 /* [helpstring][uuid][object] */
1457 EXTERN_C const IID IID_IDeckLinkDisplayMode;
1459 #if defined(__cplusplus) && !defined(CINTERFACE)
1461 MIDL_INTERFACE("3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78")
1462 IDeckLinkDisplayMode : public IUnknown
1465 virtual HRESULT STDMETHODCALLTYPE GetName(
1466 /* [out] */ BSTR *name) = 0;
1468 virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
1470 virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
1472 virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
1474 virtual HRESULT STDMETHODCALLTYPE GetFrameRate(
1475 /* [out] */ BMDTimeValue *frameDuration,
1476 /* [out] */ BMDTimeScale *timeScale) = 0;
1478 virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;
1480 virtual BMDDisplayModeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
1484 #else /* C style interface */
1486 typedef struct IDeckLinkDisplayModeVtbl
1490 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1491 IDeckLinkDisplayMode * This,
1492 /* [in] */ REFIID riid,
1493 /* [annotation][iid_is][out] */
1494 __RPC__deref_out void **ppvObject);
1496 ULONG ( STDMETHODCALLTYPE *AddRef )(
1497 IDeckLinkDisplayMode * This);
1499 ULONG ( STDMETHODCALLTYPE *Release )(
1500 IDeckLinkDisplayMode * This);
1502 HRESULT ( STDMETHODCALLTYPE *GetName )(
1503 IDeckLinkDisplayMode * This,
1504 /* [out] */ BSTR *name);
1506 BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(
1507 IDeckLinkDisplayMode * This);
1509 long ( STDMETHODCALLTYPE *GetWidth )(
1510 IDeckLinkDisplayMode * This);
1512 long ( STDMETHODCALLTYPE *GetHeight )(
1513 IDeckLinkDisplayMode * This);
1515 HRESULT ( STDMETHODCALLTYPE *GetFrameRate )(
1516 IDeckLinkDisplayMode * This,
1517 /* [out] */ BMDTimeValue *frameDuration,
1518 /* [out] */ BMDTimeScale *timeScale);
1520 BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )(
1521 IDeckLinkDisplayMode * This);
1523 BMDDisplayModeFlags ( STDMETHODCALLTYPE *GetFlags )(
1524 IDeckLinkDisplayMode * This);
1527 } IDeckLinkDisplayModeVtbl;
1529 interface IDeckLinkDisplayMode
1531 CONST_VTBL struct IDeckLinkDisplayModeVtbl *lpVtbl;
1539 #define IDeckLinkDisplayMode_QueryInterface(This,riid,ppvObject) \
1540 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1542 #define IDeckLinkDisplayMode_AddRef(This) \
1543 ( (This)->lpVtbl -> AddRef(This) )
1545 #define IDeckLinkDisplayMode_Release(This) \
1546 ( (This)->lpVtbl -> Release(This) )
1549 #define IDeckLinkDisplayMode_GetName(This,name) \
1550 ( (This)->lpVtbl -> GetName(This,name) )
1552 #define IDeckLinkDisplayMode_GetDisplayMode(This) \
1553 ( (This)->lpVtbl -> GetDisplayMode(This) )
1555 #define IDeckLinkDisplayMode_GetWidth(This) \
1556 ( (This)->lpVtbl -> GetWidth(This) )
1558 #define IDeckLinkDisplayMode_GetHeight(This) \
1559 ( (This)->lpVtbl -> GetHeight(This) )
1561 #define IDeckLinkDisplayMode_GetFrameRate(This,frameDuration,timeScale) \
1562 ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) )
1564 #define IDeckLinkDisplayMode_GetFieldDominance(This) \
1565 ( (This)->lpVtbl -> GetFieldDominance(This) )
1567 #define IDeckLinkDisplayMode_GetFlags(This) \
1568 ( (This)->lpVtbl -> GetFlags(This) )
1570 #endif /* COBJMACROS */
1573 #endif /* C style interface */
1578 #endif /* __IDeckLinkDisplayMode_INTERFACE_DEFINED__ */
1581 #ifndef __IDeckLink_INTERFACE_DEFINED__
1582 #define __IDeckLink_INTERFACE_DEFINED__
1584 /* interface IDeckLink */
1585 /* [helpstring][uuid][object] */
1588 EXTERN_C const IID IID_IDeckLink;
1590 #if defined(__cplusplus) && !defined(CINTERFACE)
1592 MIDL_INTERFACE("C418FBDD-0587-48ED-8FE5-640F0A14AF91")
1593 IDeckLink : public IUnknown
1596 virtual HRESULT STDMETHODCALLTYPE GetModelName(
1597 /* [out] */ BSTR *modelName) = 0;
1599 virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
1600 /* [out] */ BSTR *displayName) = 0;
1604 #else /* C style interface */
1606 typedef struct IDeckLinkVtbl
1610 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1612 /* [in] */ REFIID riid,
1613 /* [annotation][iid_is][out] */
1614 __RPC__deref_out void **ppvObject);
1616 ULONG ( STDMETHODCALLTYPE *AddRef )(
1619 ULONG ( STDMETHODCALLTYPE *Release )(
1622 HRESULT ( STDMETHODCALLTYPE *GetModelName )(
1624 /* [out] */ BSTR *modelName);
1626 HRESULT ( STDMETHODCALLTYPE *GetDisplayName )(
1628 /* [out] */ BSTR *displayName);
1635 CONST_VTBL struct IDeckLinkVtbl *lpVtbl;
1643 #define IDeckLink_QueryInterface(This,riid,ppvObject) \
1644 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1646 #define IDeckLink_AddRef(This) \
1647 ( (This)->lpVtbl -> AddRef(This) )
1649 #define IDeckLink_Release(This) \
1650 ( (This)->lpVtbl -> Release(This) )
1653 #define IDeckLink_GetModelName(This,modelName) \
1654 ( (This)->lpVtbl -> GetModelName(This,modelName) )
1656 #define IDeckLink_GetDisplayName(This,displayName) \
1657 ( (This)->lpVtbl -> GetDisplayName(This,displayName) )
1659 #endif /* COBJMACROS */
1662 #endif /* C style interface */
1667 #endif /* __IDeckLink_INTERFACE_DEFINED__ */
1670 #ifndef __IDeckLinkConfiguration_INTERFACE_DEFINED__
1671 #define __IDeckLinkConfiguration_INTERFACE_DEFINED__
1673 /* interface IDeckLinkConfiguration */
1674 /* [helpstring][local][uuid][object] */
1677 EXTERN_C const IID IID_IDeckLinkConfiguration;
1679 #if defined(__cplusplus) && !defined(CINTERFACE)
1681 MIDL_INTERFACE("C679A35B-610C-4D09-B748-1D0478100FC0")
1682 IDeckLinkConfiguration : public IUnknown
1685 virtual HRESULT STDMETHODCALLTYPE SetFlag(
1686 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1687 /* [in] */ BOOL value) = 0;
1689 virtual HRESULT STDMETHODCALLTYPE GetFlag(
1690 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1691 /* [out] */ BOOL *value) = 0;
1693 virtual HRESULT STDMETHODCALLTYPE SetInt(
1694 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1695 /* [in] */ LONGLONG value) = 0;
1697 virtual HRESULT STDMETHODCALLTYPE GetInt(
1698 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1699 /* [out] */ LONGLONG *value) = 0;
1701 virtual HRESULT STDMETHODCALLTYPE SetFloat(
1702 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1703 /* [in] */ double value) = 0;
1705 virtual HRESULT STDMETHODCALLTYPE GetFloat(
1706 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1707 /* [out] */ double *value) = 0;
1709 virtual HRESULT STDMETHODCALLTYPE SetString(
1710 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1711 /* [in] */ BSTR value) = 0;
1713 virtual HRESULT STDMETHODCALLTYPE GetString(
1714 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1715 /* [out] */ BSTR *value) = 0;
1717 virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
1721 #else /* C style interface */
1723 typedef struct IDeckLinkConfigurationVtbl
1727 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1728 IDeckLinkConfiguration * This,
1729 /* [in] */ REFIID riid,
1730 /* [annotation][iid_is][out] */
1731 __RPC__deref_out void **ppvObject);
1733 ULONG ( STDMETHODCALLTYPE *AddRef )(
1734 IDeckLinkConfiguration * This);
1736 ULONG ( STDMETHODCALLTYPE *Release )(
1737 IDeckLinkConfiguration * This);
1739 HRESULT ( STDMETHODCALLTYPE *SetFlag )(
1740 IDeckLinkConfiguration * This,
1741 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1742 /* [in] */ BOOL value);
1744 HRESULT ( STDMETHODCALLTYPE *GetFlag )(
1745 IDeckLinkConfiguration * This,
1746 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1747 /* [out] */ BOOL *value);
1749 HRESULT ( STDMETHODCALLTYPE *SetInt )(
1750 IDeckLinkConfiguration * This,
1751 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1752 /* [in] */ LONGLONG value);
1754 HRESULT ( STDMETHODCALLTYPE *GetInt )(
1755 IDeckLinkConfiguration * This,
1756 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1757 /* [out] */ LONGLONG *value);
1759 HRESULT ( STDMETHODCALLTYPE *SetFloat )(
1760 IDeckLinkConfiguration * This,
1761 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1762 /* [in] */ double value);
1764 HRESULT ( STDMETHODCALLTYPE *GetFloat )(
1765 IDeckLinkConfiguration * This,
1766 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1767 /* [out] */ double *value);
1769 HRESULT ( STDMETHODCALLTYPE *SetString )(
1770 IDeckLinkConfiguration * This,
1771 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1772 /* [in] */ BSTR value);
1774 HRESULT ( STDMETHODCALLTYPE *GetString )(
1775 IDeckLinkConfiguration * This,
1776 /* [in] */ BMDDeckLinkConfigurationID cfgID,
1777 /* [out] */ BSTR *value);
1779 HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(
1780 IDeckLinkConfiguration * This);
1783 } IDeckLinkConfigurationVtbl;
1785 interface IDeckLinkConfiguration
1787 CONST_VTBL struct IDeckLinkConfigurationVtbl *lpVtbl;
1795 #define IDeckLinkConfiguration_QueryInterface(This,riid,ppvObject) \
1796 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1798 #define IDeckLinkConfiguration_AddRef(This) \
1799 ( (This)->lpVtbl -> AddRef(This) )
1801 #define IDeckLinkConfiguration_Release(This) \
1802 ( (This)->lpVtbl -> Release(This) )
1805 #define IDeckLinkConfiguration_SetFlag(This,cfgID,value) \
1806 ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )
1808 #define IDeckLinkConfiguration_GetFlag(This,cfgID,value) \
1809 ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
1811 #define IDeckLinkConfiguration_SetInt(This,cfgID,value) \
1812 ( (This)->lpVtbl -> SetInt(This,cfgID,value) )
1814 #define IDeckLinkConfiguration_GetInt(This,cfgID,value) \
1815 ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
1817 #define IDeckLinkConfiguration_SetFloat(This,cfgID,value) \
1818 ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )
1820 #define IDeckLinkConfiguration_GetFloat(This,cfgID,value) \
1821 ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
1823 #define IDeckLinkConfiguration_SetString(This,cfgID,value) \
1824 ( (This)->lpVtbl -> SetString(This,cfgID,value) )
1826 #define IDeckLinkConfiguration_GetString(This,cfgID,value) \
1827 ( (This)->lpVtbl -> GetString(This,cfgID,value) )
1829 #define IDeckLinkConfiguration_WriteConfigurationToPreferences(This) \
1830 ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )
1832 #endif /* COBJMACROS */
1835 #endif /* C style interface */
1840 #endif /* __IDeckLinkConfiguration_INTERFACE_DEFINED__ */
1843 #ifndef __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__
1844 #define __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__
1846 /* interface IDeckLinkDeckControlStatusCallback */
1847 /* [helpstring][uuid][object] */
1850 EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback;
1852 #if defined(__cplusplus) && !defined(CINTERFACE)
1854 MIDL_INTERFACE("53436FFB-B434-4906-BADC-AE3060FFE8EF")
1855 IDeckLinkDeckControlStatusCallback : public IUnknown
1858 virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate(
1859 /* [in] */ BMDTimecodeBCD currentTimecode) = 0;
1861 virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged(
1862 /* [in] */ BMDDeckControlVTRControlState newState,
1863 /* [in] */ BMDDeckControlError error) = 0;
1865 virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived(
1866 /* [in] */ BMDDeckControlEvent event,
1867 /* [in] */ BMDDeckControlError error) = 0;
1869 virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged(
1870 /* [in] */ BMDDeckControlStatusFlags flags,
1871 /* [in] */ unsigned long mask) = 0;
1875 #else /* C style interface */
1877 typedef struct IDeckLinkDeckControlStatusCallbackVtbl
1881 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1882 IDeckLinkDeckControlStatusCallback * This,
1883 /* [in] */ REFIID riid,
1884 /* [annotation][iid_is][out] */
1885 __RPC__deref_out void **ppvObject);
1887 ULONG ( STDMETHODCALLTYPE *AddRef )(
1888 IDeckLinkDeckControlStatusCallback * This);
1890 ULONG ( STDMETHODCALLTYPE *Release )(
1891 IDeckLinkDeckControlStatusCallback * This);
1893 HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )(
1894 IDeckLinkDeckControlStatusCallback * This,
1895 /* [in] */ BMDTimecodeBCD currentTimecode);
1897 HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )(
1898 IDeckLinkDeckControlStatusCallback * This,
1899 /* [in] */ BMDDeckControlVTRControlState newState,
1900 /* [in] */ BMDDeckControlError error);
1902 HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )(
1903 IDeckLinkDeckControlStatusCallback * This,
1904 /* [in] */ BMDDeckControlEvent event,
1905 /* [in] */ BMDDeckControlError error);
1907 HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )(
1908 IDeckLinkDeckControlStatusCallback * This,
1909 /* [in] */ BMDDeckControlStatusFlags flags,
1910 /* [in] */ unsigned long mask);
1913 } IDeckLinkDeckControlStatusCallbackVtbl;
1915 interface IDeckLinkDeckControlStatusCallback
1917 CONST_VTBL struct IDeckLinkDeckControlStatusCallbackVtbl *lpVtbl;
1925 #define IDeckLinkDeckControlStatusCallback_QueryInterface(This,riid,ppvObject) \
1926 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1928 #define IDeckLinkDeckControlStatusCallback_AddRef(This) \
1929 ( (This)->lpVtbl -> AddRef(This) )
1931 #define IDeckLinkDeckControlStatusCallback_Release(This) \
1932 ( (This)->lpVtbl -> Release(This) )
1935 #define IDeckLinkDeckControlStatusCallback_TimecodeUpdate(This,currentTimecode) \
1936 ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) )
1938 #define IDeckLinkDeckControlStatusCallback_VTRControlStateChanged(This,newState,error) \
1939 ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) )
1941 #define IDeckLinkDeckControlStatusCallback_DeckControlEventReceived(This,event,error) \
1942 ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) )
1944 #define IDeckLinkDeckControlStatusCallback_DeckControlStatusChanged(This,flags,mask) \
1945 ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) )
1947 #endif /* COBJMACROS */
1950 #endif /* C style interface */
1955 #endif /* __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ */
1958 #ifndef __IDeckLinkDeckControl_INTERFACE_DEFINED__
1959 #define __IDeckLinkDeckControl_INTERFACE_DEFINED__
1961 /* interface IDeckLinkDeckControl */
1962 /* [helpstring][uuid][object] */
1965 EXTERN_C const IID IID_IDeckLinkDeckControl;
1967 #if defined(__cplusplus) && !defined(CINTERFACE)
1969 MIDL_INTERFACE("8E1C3ACE-19C7-4E00-8B92-D80431D958BE")
1970 IDeckLinkDeckControl : public IUnknown
1973 virtual HRESULT STDMETHODCALLTYPE Open(
1974 /* [in] */ BMDTimeScale timeScale,
1975 /* [in] */ BMDTimeValue timeValue,
1976 /* [in] */ BOOL timecodeIsDropFrame,
1977 /* [out] */ BMDDeckControlError *error) = 0;
1979 virtual HRESULT STDMETHODCALLTYPE Close(
1980 /* [in] */ BOOL standbyOn) = 0;
1982 virtual HRESULT STDMETHODCALLTYPE GetCurrentState(
1983 /* [out] */ BMDDeckControlMode *mode,
1984 /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
1985 /* [out] */ BMDDeckControlStatusFlags *flags) = 0;
1987 virtual HRESULT STDMETHODCALLTYPE SetStandby(
1988 /* [in] */ BOOL standbyOn) = 0;
1990 virtual HRESULT STDMETHODCALLTYPE SendCommand(
1991 /* [in] */ unsigned char *inBuffer,
1992 /* [in] */ unsigned long inBufferSize,
1993 /* [out] */ unsigned char *outBuffer,
1994 /* [out] */ unsigned long *outDataSize,
1995 /* [in] */ unsigned long outBufferSize,
1996 /* [out] */ BMDDeckControlError *error) = 0;
1998 virtual HRESULT STDMETHODCALLTYPE Play(
1999 /* [out] */ BMDDeckControlError *error) = 0;
2001 virtual HRESULT STDMETHODCALLTYPE Stop(
2002 /* [out] */ BMDDeckControlError *error) = 0;
2004 virtual HRESULT STDMETHODCALLTYPE TogglePlayStop(
2005 /* [out] */ BMDDeckControlError *error) = 0;
2007 virtual HRESULT STDMETHODCALLTYPE Eject(
2008 /* [out] */ BMDDeckControlError *error) = 0;
2010 virtual HRESULT STDMETHODCALLTYPE GoToTimecode(
2011 /* [in] */ BMDTimecodeBCD timecode,
2012 /* [out] */ BMDDeckControlError *error) = 0;
2014 virtual HRESULT STDMETHODCALLTYPE FastForward(
2015 /* [in] */ BOOL viewTape,
2016 /* [out] */ BMDDeckControlError *error) = 0;
2018 virtual HRESULT STDMETHODCALLTYPE Rewind(
2019 /* [in] */ BOOL viewTape,
2020 /* [out] */ BMDDeckControlError *error) = 0;
2022 virtual HRESULT STDMETHODCALLTYPE StepForward(
2023 /* [out] */ BMDDeckControlError *error) = 0;
2025 virtual HRESULT STDMETHODCALLTYPE StepBack(
2026 /* [out] */ BMDDeckControlError *error) = 0;
2028 virtual HRESULT STDMETHODCALLTYPE Jog(
2029 /* [in] */ double rate,
2030 /* [out] */ BMDDeckControlError *error) = 0;
2032 virtual HRESULT STDMETHODCALLTYPE Shuttle(
2033 /* [in] */ double rate,
2034 /* [out] */ BMDDeckControlError *error) = 0;
2036 virtual HRESULT STDMETHODCALLTYPE GetTimecodeString(
2037 /* [out] */ BSTR *currentTimeCode,
2038 /* [out] */ BMDDeckControlError *error) = 0;
2040 virtual HRESULT STDMETHODCALLTYPE GetTimecode(
2041 /* [out] */ IDeckLinkTimecode **currentTimecode,
2042 /* [out] */ BMDDeckControlError *error) = 0;
2044 virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD(
2045 /* [out] */ BMDTimecodeBCD *currentTimecode,
2046 /* [out] */ BMDDeckControlError *error) = 0;
2048 virtual HRESULT STDMETHODCALLTYPE SetPreroll(
2049 /* [in] */ unsigned long prerollSeconds) = 0;
2051 virtual HRESULT STDMETHODCALLTYPE GetPreroll(
2052 /* [out] */ unsigned long *prerollSeconds) = 0;
2054 virtual HRESULT STDMETHODCALLTYPE SetExportOffset(
2055 /* [in] */ long exportOffsetFields) = 0;
2057 virtual HRESULT STDMETHODCALLTYPE GetExportOffset(
2058 /* [out] */ long *exportOffsetFields) = 0;
2060 virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset(
2061 /* [out] */ long *deckManualExportOffsetFields) = 0;
2063 virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset(
2064 /* [in] */ long captureOffsetFields) = 0;
2066 virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset(
2067 /* [out] */ long *captureOffsetFields) = 0;
2069 virtual HRESULT STDMETHODCALLTYPE StartExport(
2070 /* [in] */ BMDTimecodeBCD inTimecode,
2071 /* [in] */ BMDTimecodeBCD outTimecode,
2072 /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
2073 /* [out] */ BMDDeckControlError *error) = 0;
2075 virtual HRESULT STDMETHODCALLTYPE StartCapture(
2076 /* [in] */ BOOL useVITC,
2077 /* [in] */ BMDTimecodeBCD inTimecode,
2078 /* [in] */ BMDTimecodeBCD outTimecode,
2079 /* [out] */ BMDDeckControlError *error) = 0;
2081 virtual HRESULT STDMETHODCALLTYPE GetDeviceID(
2082 /* [out] */ unsigned short *deviceId,
2083 /* [out] */ BMDDeckControlError *error) = 0;
2085 virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
2087 virtual HRESULT STDMETHODCALLTYPE CrashRecordStart(
2088 /* [out] */ BMDDeckControlError *error) = 0;
2090 virtual HRESULT STDMETHODCALLTYPE CrashRecordStop(
2091 /* [out] */ BMDDeckControlError *error) = 0;
2093 virtual HRESULT STDMETHODCALLTYPE SetCallback(
2094 /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;
2098 #else /* C style interface */
2100 typedef struct IDeckLinkDeckControlVtbl
2104 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2105 IDeckLinkDeckControl * This,
2106 /* [in] */ REFIID riid,
2107 /* [annotation][iid_is][out] */
2108 __RPC__deref_out void **ppvObject);
2110 ULONG ( STDMETHODCALLTYPE *AddRef )(
2111 IDeckLinkDeckControl * This);
2113 ULONG ( STDMETHODCALLTYPE *Release )(
2114 IDeckLinkDeckControl * This);
2116 HRESULT ( STDMETHODCALLTYPE *Open )(
2117 IDeckLinkDeckControl * This,
2118 /* [in] */ BMDTimeScale timeScale,
2119 /* [in] */ BMDTimeValue timeValue,
2120 /* [in] */ BOOL timecodeIsDropFrame,
2121 /* [out] */ BMDDeckControlError *error);
2123 HRESULT ( STDMETHODCALLTYPE *Close )(
2124 IDeckLinkDeckControl * This,
2125 /* [in] */ BOOL standbyOn);
2127 HRESULT ( STDMETHODCALLTYPE *GetCurrentState )(
2128 IDeckLinkDeckControl * This,
2129 /* [out] */ BMDDeckControlMode *mode,
2130 /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
2131 /* [out] */ BMDDeckControlStatusFlags *flags);
2133 HRESULT ( STDMETHODCALLTYPE *SetStandby )(
2134 IDeckLinkDeckControl * This,
2135 /* [in] */ BOOL standbyOn);
2137 HRESULT ( STDMETHODCALLTYPE *SendCommand )(
2138 IDeckLinkDeckControl * This,
2139 /* [in] */ unsigned char *inBuffer,
2140 /* [in] */ unsigned long inBufferSize,
2141 /* [out] */ unsigned char *outBuffer,
2142 /* [out] */ unsigned long *outDataSize,
2143 /* [in] */ unsigned long outBufferSize,
2144 /* [out] */ BMDDeckControlError *error);
2146 HRESULT ( STDMETHODCALLTYPE *Play )(
2147 IDeckLinkDeckControl * This,
2148 /* [out] */ BMDDeckControlError *error);
2150 HRESULT ( STDMETHODCALLTYPE *Stop )(
2151 IDeckLinkDeckControl * This,
2152 /* [out] */ BMDDeckControlError *error);
2154 HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )(
2155 IDeckLinkDeckControl * This,
2156 /* [out] */ BMDDeckControlError *error);
2158 HRESULT ( STDMETHODCALLTYPE *Eject )(
2159 IDeckLinkDeckControl * This,
2160 /* [out] */ BMDDeckControlError *error);
2162 HRESULT ( STDMETHODCALLTYPE *GoToTimecode )(
2163 IDeckLinkDeckControl * This,
2164 /* [in] */ BMDTimecodeBCD timecode,
2165 /* [out] */ BMDDeckControlError *error);
2167 HRESULT ( STDMETHODCALLTYPE *FastForward )(
2168 IDeckLinkDeckControl * This,
2169 /* [in] */ BOOL viewTape,
2170 /* [out] */ BMDDeckControlError *error);
2172 HRESULT ( STDMETHODCALLTYPE *Rewind )(
2173 IDeckLinkDeckControl * This,
2174 /* [in] */ BOOL viewTape,
2175 /* [out] */ BMDDeckControlError *error);
2177 HRESULT ( STDMETHODCALLTYPE *StepForward )(
2178 IDeckLinkDeckControl * This,
2179 /* [out] */ BMDDeckControlError *error);
2181 HRESULT ( STDMETHODCALLTYPE *StepBack )(
2182 IDeckLinkDeckControl * This,
2183 /* [out] */ BMDDeckControlError *error);
2185 HRESULT ( STDMETHODCALLTYPE *Jog )(
2186 IDeckLinkDeckControl * This,
2187 /* [in] */ double rate,
2188 /* [out] */ BMDDeckControlError *error);
2190 HRESULT ( STDMETHODCALLTYPE *Shuttle )(
2191 IDeckLinkDeckControl * This,
2192 /* [in] */ double rate,
2193 /* [out] */ BMDDeckControlError *error);
2195 HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )(
2196 IDeckLinkDeckControl * This,
2197 /* [out] */ BSTR *currentTimeCode,
2198 /* [out] */ BMDDeckControlError *error);
2200 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
2201 IDeckLinkDeckControl * This,
2202 /* [out] */ IDeckLinkTimecode **currentTimecode,
2203 /* [out] */ BMDDeckControlError *error);
2205 HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )(
2206 IDeckLinkDeckControl * This,
2207 /* [out] */ BMDTimecodeBCD *currentTimecode,
2208 /* [out] */ BMDDeckControlError *error);
2210 HRESULT ( STDMETHODCALLTYPE *SetPreroll )(
2211 IDeckLinkDeckControl * This,
2212 /* [in] */ unsigned long prerollSeconds);
2214 HRESULT ( STDMETHODCALLTYPE *GetPreroll )(
2215 IDeckLinkDeckControl * This,
2216 /* [out] */ unsigned long *prerollSeconds);
2218 HRESULT ( STDMETHODCALLTYPE *SetExportOffset )(
2219 IDeckLinkDeckControl * This,
2220 /* [in] */ long exportOffsetFields);
2222 HRESULT ( STDMETHODCALLTYPE *GetExportOffset )(
2223 IDeckLinkDeckControl * This,
2224 /* [out] */ long *exportOffsetFields);
2226 HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )(
2227 IDeckLinkDeckControl * This,
2228 /* [out] */ long *deckManualExportOffsetFields);
2230 HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )(
2231 IDeckLinkDeckControl * This,
2232 /* [in] */ long captureOffsetFields);
2234 HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )(
2235 IDeckLinkDeckControl * This,
2236 /* [out] */ long *captureOffsetFields);
2238 HRESULT ( STDMETHODCALLTYPE *StartExport )(
2239 IDeckLinkDeckControl * This,
2240 /* [in] */ BMDTimecodeBCD inTimecode,
2241 /* [in] */ BMDTimecodeBCD outTimecode,
2242 /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
2243 /* [out] */ BMDDeckControlError *error);
2245 HRESULT ( STDMETHODCALLTYPE *StartCapture )(
2246 IDeckLinkDeckControl * This,
2247 /* [in] */ BOOL useVITC,
2248 /* [in] */ BMDTimecodeBCD inTimecode,
2249 /* [in] */ BMDTimecodeBCD outTimecode,
2250 /* [out] */ BMDDeckControlError *error);
2252 HRESULT ( STDMETHODCALLTYPE *GetDeviceID )(
2253 IDeckLinkDeckControl * This,
2254 /* [out] */ unsigned short *deviceId,
2255 /* [out] */ BMDDeckControlError *error);
2257 HRESULT ( STDMETHODCALLTYPE *Abort )(
2258 IDeckLinkDeckControl * This);
2260 HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )(
2261 IDeckLinkDeckControl * This,
2262 /* [out] */ BMDDeckControlError *error);
2264 HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )(
2265 IDeckLinkDeckControl * This,
2266 /* [out] */ BMDDeckControlError *error);
2268 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
2269 IDeckLinkDeckControl * This,
2270 /* [in] */ IDeckLinkDeckControlStatusCallback *callback);
2273 } IDeckLinkDeckControlVtbl;
2275 interface IDeckLinkDeckControl
2277 CONST_VTBL struct IDeckLinkDeckControlVtbl *lpVtbl;
2285 #define IDeckLinkDeckControl_QueryInterface(This,riid,ppvObject) \
2286 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2288 #define IDeckLinkDeckControl_AddRef(This) \
2289 ( (This)->lpVtbl -> AddRef(This) )
2291 #define IDeckLinkDeckControl_Release(This) \
2292 ( (This)->lpVtbl -> Release(This) )
2295 #define IDeckLinkDeckControl_Open(This,timeScale,timeValue,timecodeIsDropFrame,error) \
2296 ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) )
2298 #define IDeckLinkDeckControl_Close(This,standbyOn) \
2299 ( (This)->lpVtbl -> Close(This,standbyOn) )
2301 #define IDeckLinkDeckControl_GetCurrentState(This,mode,vtrControlState,flags) \
2302 ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) )
2304 #define IDeckLinkDeckControl_SetStandby(This,standbyOn) \
2305 ( (This)->lpVtbl -> SetStandby(This,standbyOn) )
2307 #define IDeckLinkDeckControl_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) \
2308 ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) )
2310 #define IDeckLinkDeckControl_Play(This,error) \
2311 ( (This)->lpVtbl -> Play(This,error) )
2313 #define IDeckLinkDeckControl_Stop(This,error) \
2314 ( (This)->lpVtbl -> Stop(This,error) )
2316 #define IDeckLinkDeckControl_TogglePlayStop(This,error) \
2317 ( (This)->lpVtbl -> TogglePlayStop(This,error) )
2319 #define IDeckLinkDeckControl_Eject(This,error) \
2320 ( (This)->lpVtbl -> Eject(This,error) )
2322 #define IDeckLinkDeckControl_GoToTimecode(This,timecode,error) \
2323 ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) )
2325 #define IDeckLinkDeckControl_FastForward(This,viewTape,error) \
2326 ( (This)->lpVtbl -> FastForward(This,viewTape,error) )
2328 #define IDeckLinkDeckControl_Rewind(This,viewTape,error) \
2329 ( (This)->lpVtbl -> Rewind(This,viewTape,error) )
2331 #define IDeckLinkDeckControl_StepForward(This,error) \
2332 ( (This)->lpVtbl -> StepForward(This,error) )
2334 #define IDeckLinkDeckControl_StepBack(This,error) \
2335 ( (This)->lpVtbl -> StepBack(This,error) )
2337 #define IDeckLinkDeckControl_Jog(This,rate,error) \
2338 ( (This)->lpVtbl -> Jog(This,rate,error) )
2340 #define IDeckLinkDeckControl_Shuttle(This,rate,error) \
2341 ( (This)->lpVtbl -> Shuttle(This,rate,error) )
2343 #define IDeckLinkDeckControl_GetTimecodeString(This,currentTimeCode,error) \
2344 ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) )
2346 #define IDeckLinkDeckControl_GetTimecode(This,currentTimecode,error) \
2347 ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) )
2349 #define IDeckLinkDeckControl_GetTimecodeBCD(This,currentTimecode,error) \
2350 ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) )
2352 #define IDeckLinkDeckControl_SetPreroll(This,prerollSeconds) \
2353 ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) )
2355 #define IDeckLinkDeckControl_GetPreroll(This,prerollSeconds) \
2356 ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) )
2358 #define IDeckLinkDeckControl_SetExportOffset(This,exportOffsetFields) \
2359 ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) )
2361 #define IDeckLinkDeckControl_GetExportOffset(This,exportOffsetFields) \
2362 ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) )
2364 #define IDeckLinkDeckControl_GetManualExportOffset(This,deckManualExportOffsetFields) \
2365 ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) )
2367 #define IDeckLinkDeckControl_SetCaptureOffset(This,captureOffsetFields) \
2368 ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) )
2370 #define IDeckLinkDeckControl_GetCaptureOffset(This,captureOffsetFields) \
2371 ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) )
2373 #define IDeckLinkDeckControl_StartExport(This,inTimecode,outTimecode,exportModeOps,error) \
2374 ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) )
2376 #define IDeckLinkDeckControl_StartCapture(This,useVITC,inTimecode,outTimecode,error) \
2377 ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) )
2379 #define IDeckLinkDeckControl_GetDeviceID(This,deviceId,error) \
2380 ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) )
2382 #define IDeckLinkDeckControl_Abort(This) \
2383 ( (This)->lpVtbl -> Abort(This) )
2385 #define IDeckLinkDeckControl_CrashRecordStart(This,error) \
2386 ( (This)->lpVtbl -> CrashRecordStart(This,error) )
2388 #define IDeckLinkDeckControl_CrashRecordStop(This,error) \
2389 ( (This)->lpVtbl -> CrashRecordStop(This,error) )
2391 #define IDeckLinkDeckControl_SetCallback(This,callback) \
2392 ( (This)->lpVtbl -> SetCallback(This,callback) )
2394 #endif /* COBJMACROS */
2397 #endif /* C style interface */
2402 #endif /* __IDeckLinkDeckControl_INTERFACE_DEFINED__ */
2405 #ifndef __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__
2406 #define __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__
2408 /* interface IBMDStreamingDeviceNotificationCallback */
2409 /* [helpstring][uuid][object] */
2412 EXTERN_C const IID IID_IBMDStreamingDeviceNotificationCallback;
2414 #if defined(__cplusplus) && !defined(CINTERFACE)
2416 MIDL_INTERFACE("F9531D64-3305-4B29-A387-7F74BB0D0E84")
2417 IBMDStreamingDeviceNotificationCallback : public IUnknown
2420 virtual HRESULT STDMETHODCALLTYPE StreamingDeviceArrived(
2421 /* [in] */ IDeckLink *device) = 0;
2423 virtual HRESULT STDMETHODCALLTYPE StreamingDeviceRemoved(
2424 /* [in] */ IDeckLink *device) = 0;
2426 virtual HRESULT STDMETHODCALLTYPE StreamingDeviceModeChanged(
2427 /* [in] */ IDeckLink *device,
2428 /* [in] */ BMDStreamingDeviceMode mode) = 0;
2432 #else /* C style interface */
2434 typedef struct IBMDStreamingDeviceNotificationCallbackVtbl
2438 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2439 IBMDStreamingDeviceNotificationCallback * This,
2440 /* [in] */ REFIID riid,
2441 /* [annotation][iid_is][out] */
2442 __RPC__deref_out void **ppvObject);
2444 ULONG ( STDMETHODCALLTYPE *AddRef )(
2445 IBMDStreamingDeviceNotificationCallback * This);
2447 ULONG ( STDMETHODCALLTYPE *Release )(
2448 IBMDStreamingDeviceNotificationCallback * This);
2450 HRESULT ( STDMETHODCALLTYPE *StreamingDeviceArrived )(
2451 IBMDStreamingDeviceNotificationCallback * This,
2452 /* [in] */ IDeckLink *device);
2454 HRESULT ( STDMETHODCALLTYPE *StreamingDeviceRemoved )(
2455 IBMDStreamingDeviceNotificationCallback * This,
2456 /* [in] */ IDeckLink *device);
2458 HRESULT ( STDMETHODCALLTYPE *StreamingDeviceModeChanged )(
2459 IBMDStreamingDeviceNotificationCallback * This,
2460 /* [in] */ IDeckLink *device,
2461 /* [in] */ BMDStreamingDeviceMode mode);
2464 } IBMDStreamingDeviceNotificationCallbackVtbl;
2466 interface IBMDStreamingDeviceNotificationCallback
2468 CONST_VTBL struct IBMDStreamingDeviceNotificationCallbackVtbl *lpVtbl;
2476 #define IBMDStreamingDeviceNotificationCallback_QueryInterface(This,riid,ppvObject) \
2477 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2479 #define IBMDStreamingDeviceNotificationCallback_AddRef(This) \
2480 ( (This)->lpVtbl -> AddRef(This) )
2482 #define IBMDStreamingDeviceNotificationCallback_Release(This) \
2483 ( (This)->lpVtbl -> Release(This) )
2486 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceArrived(This,device) \
2487 ( (This)->lpVtbl -> StreamingDeviceArrived(This,device) )
2489 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceRemoved(This,device) \
2490 ( (This)->lpVtbl -> StreamingDeviceRemoved(This,device) )
2492 #define IBMDStreamingDeviceNotificationCallback_StreamingDeviceModeChanged(This,device,mode) \
2493 ( (This)->lpVtbl -> StreamingDeviceModeChanged(This,device,mode) )
2495 #endif /* COBJMACROS */
2498 #endif /* C style interface */
2503 #endif /* __IBMDStreamingDeviceNotificationCallback_INTERFACE_DEFINED__ */
2506 #ifndef __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__
2507 #define __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__
2509 /* interface IBMDStreamingH264InputCallback */
2510 /* [helpstring][uuid][object] */
2513 EXTERN_C const IID IID_IBMDStreamingH264InputCallback;
2515 #if defined(__cplusplus) && !defined(CINTERFACE)
2517 MIDL_INTERFACE("823C475F-55AE-46F9-890C-537CC5CEDCCA")
2518 IBMDStreamingH264InputCallback : public IUnknown
2521 virtual HRESULT STDMETHODCALLTYPE H264NALPacketArrived(
2522 /* [in] */ IBMDStreamingH264NALPacket *nalPacket) = 0;
2524 virtual HRESULT STDMETHODCALLTYPE H264AudioPacketArrived(
2525 /* [in] */ IBMDStreamingAudioPacket *audioPacket) = 0;
2527 virtual HRESULT STDMETHODCALLTYPE MPEG2TSPacketArrived(
2528 /* [in] */ IBMDStreamingMPEG2TSPacket *tsPacket) = 0;
2530 virtual HRESULT STDMETHODCALLTYPE H264VideoInputConnectorScanningChanged( void) = 0;
2532 virtual HRESULT STDMETHODCALLTYPE H264VideoInputConnectorChanged( void) = 0;
2534 virtual HRESULT STDMETHODCALLTYPE H264VideoInputModeChanged( void) = 0;
2538 #else /* C style interface */
2540 typedef struct IBMDStreamingH264InputCallbackVtbl
2544 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2545 IBMDStreamingH264InputCallback * This,
2546 /* [in] */ REFIID riid,
2547 /* [annotation][iid_is][out] */
2548 __RPC__deref_out void **ppvObject);
2550 ULONG ( STDMETHODCALLTYPE *AddRef )(
2551 IBMDStreamingH264InputCallback * This);
2553 ULONG ( STDMETHODCALLTYPE *Release )(
2554 IBMDStreamingH264InputCallback * This);
2556 HRESULT ( STDMETHODCALLTYPE *H264NALPacketArrived )(
2557 IBMDStreamingH264InputCallback * This,
2558 /* [in] */ IBMDStreamingH264NALPacket *nalPacket);
2560 HRESULT ( STDMETHODCALLTYPE *H264AudioPacketArrived )(
2561 IBMDStreamingH264InputCallback * This,
2562 /* [in] */ IBMDStreamingAudioPacket *audioPacket);
2564 HRESULT ( STDMETHODCALLTYPE *MPEG2TSPacketArrived )(
2565 IBMDStreamingH264InputCallback * This,
2566 /* [in] */ IBMDStreamingMPEG2TSPacket *tsPacket);
2568 HRESULT ( STDMETHODCALLTYPE *H264VideoInputConnectorScanningChanged )(
2569 IBMDStreamingH264InputCallback * This);
2571 HRESULT ( STDMETHODCALLTYPE *H264VideoInputConnectorChanged )(
2572 IBMDStreamingH264InputCallback * This);
2574 HRESULT ( STDMETHODCALLTYPE *H264VideoInputModeChanged )(
2575 IBMDStreamingH264InputCallback * This);
2578 } IBMDStreamingH264InputCallbackVtbl;
2580 interface IBMDStreamingH264InputCallback
2582 CONST_VTBL struct IBMDStreamingH264InputCallbackVtbl *lpVtbl;
2590 #define IBMDStreamingH264InputCallback_QueryInterface(This,riid,ppvObject) \
2591 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2593 #define IBMDStreamingH264InputCallback_AddRef(This) \
2594 ( (This)->lpVtbl -> AddRef(This) )
2596 #define IBMDStreamingH264InputCallback_Release(This) \
2597 ( (This)->lpVtbl -> Release(This) )
2600 #define IBMDStreamingH264InputCallback_H264NALPacketArrived(This,nalPacket) \
2601 ( (This)->lpVtbl -> H264NALPacketArrived(This,nalPacket) )
2603 #define IBMDStreamingH264InputCallback_H264AudioPacketArrived(This,audioPacket) \
2604 ( (This)->lpVtbl -> H264AudioPacketArrived(This,audioPacket) )
2606 #define IBMDStreamingH264InputCallback_MPEG2TSPacketArrived(This,tsPacket) \
2607 ( (This)->lpVtbl -> MPEG2TSPacketArrived(This,tsPacket) )
2609 #define IBMDStreamingH264InputCallback_H264VideoInputConnectorScanningChanged(This) \
2610 ( (This)->lpVtbl -> H264VideoInputConnectorScanningChanged(This) )
2612 #define IBMDStreamingH264InputCallback_H264VideoInputConnectorChanged(This) \
2613 ( (This)->lpVtbl -> H264VideoInputConnectorChanged(This) )
2615 #define IBMDStreamingH264InputCallback_H264VideoInputModeChanged(This) \
2616 ( (This)->lpVtbl -> H264VideoInputModeChanged(This) )
2618 #endif /* COBJMACROS */
2621 #endif /* C style interface */
2626 #endif /* __IBMDStreamingH264InputCallback_INTERFACE_DEFINED__ */
2629 #ifndef __IBMDStreamingDiscovery_INTERFACE_DEFINED__
2630 #define __IBMDStreamingDiscovery_INTERFACE_DEFINED__
2632 /* interface IBMDStreamingDiscovery */
2633 /* [helpstring][uuid][object] */
2636 EXTERN_C const IID IID_IBMDStreamingDiscovery;
2638 #if defined(__cplusplus) && !defined(CINTERFACE)
2640 MIDL_INTERFACE("2C837444-F989-4D87-901A-47C8A36D096D")
2641 IBMDStreamingDiscovery : public IUnknown
2644 virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications(
2645 /* [in] */ IBMDStreamingDeviceNotificationCallback *theCallback) = 0;
2647 virtual HRESULT STDMETHODCALLTYPE UninstallDeviceNotifications( void) = 0;
2651 #else /* C style interface */
2653 typedef struct IBMDStreamingDiscoveryVtbl
2657 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2658 IBMDStreamingDiscovery * This,
2659 /* [in] */ REFIID riid,
2660 /* [annotation][iid_is][out] */
2661 __RPC__deref_out void **ppvObject);
2663 ULONG ( STDMETHODCALLTYPE *AddRef )(
2664 IBMDStreamingDiscovery * This);
2666 ULONG ( STDMETHODCALLTYPE *Release )(
2667 IBMDStreamingDiscovery * This);
2669 HRESULT ( STDMETHODCALLTYPE *InstallDeviceNotifications )(
2670 IBMDStreamingDiscovery * This,
2671 /* [in] */ IBMDStreamingDeviceNotificationCallback *theCallback);
2673 HRESULT ( STDMETHODCALLTYPE *UninstallDeviceNotifications )(
2674 IBMDStreamingDiscovery * This);
2677 } IBMDStreamingDiscoveryVtbl;
2679 interface IBMDStreamingDiscovery
2681 CONST_VTBL struct IBMDStreamingDiscoveryVtbl *lpVtbl;
2689 #define IBMDStreamingDiscovery_QueryInterface(This,riid,ppvObject) \
2690 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2692 #define IBMDStreamingDiscovery_AddRef(This) \
2693 ( (This)->lpVtbl -> AddRef(This) )
2695 #define IBMDStreamingDiscovery_Release(This) \
2696 ( (This)->lpVtbl -> Release(This) )
2699 #define IBMDStreamingDiscovery_InstallDeviceNotifications(This,theCallback) \
2700 ( (This)->lpVtbl -> InstallDeviceNotifications(This,theCallback) )
2702 #define IBMDStreamingDiscovery_UninstallDeviceNotifications(This) \
2703 ( (This)->lpVtbl -> UninstallDeviceNotifications(This) )
2705 #endif /* COBJMACROS */
2708 #endif /* C style interface */
2713 #endif /* __IBMDStreamingDiscovery_INTERFACE_DEFINED__ */
2716 #ifndef __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__
2717 #define __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__
2719 /* interface IBMDStreamingVideoEncodingMode */
2720 /* [helpstring][uuid][object] */
2723 EXTERN_C const IID IID_IBMDStreamingVideoEncodingMode;
2725 #if defined(__cplusplus) && !defined(CINTERFACE)
2727 MIDL_INTERFACE("1AB8035B-CD13-458D-B6DF-5E8F7C2141D9")
2728 IBMDStreamingVideoEncodingMode : public IUnknown
2731 virtual HRESULT STDMETHODCALLTYPE GetName(
2732 /* [out] */ BSTR *name) = 0;
2734 virtual unsigned int STDMETHODCALLTYPE GetPresetID( void) = 0;
2736 virtual unsigned int STDMETHODCALLTYPE GetSourcePositionX( void) = 0;
2738 virtual unsigned int STDMETHODCALLTYPE GetSourcePositionY( void) = 0;
2740 virtual unsigned int STDMETHODCALLTYPE GetSourceWidth( void) = 0;
2742 virtual unsigned int STDMETHODCALLTYPE GetSourceHeight( void) = 0;
2744 virtual unsigned int STDMETHODCALLTYPE GetDestWidth( void) = 0;
2746 virtual unsigned int STDMETHODCALLTYPE GetDestHeight( void) = 0;
2748 virtual HRESULT STDMETHODCALLTYPE GetFlag(
2749 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2750 /* [out] */ BOOL *value) = 0;
2752 virtual HRESULT STDMETHODCALLTYPE GetInt(
2753 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2754 /* [out] */ LONGLONG *value) = 0;
2756 virtual HRESULT STDMETHODCALLTYPE GetFloat(
2757 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2758 /* [out] */ double *value) = 0;
2760 virtual HRESULT STDMETHODCALLTYPE GetString(
2761 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2762 /* [out] */ BSTR *value) = 0;
2764 virtual HRESULT STDMETHODCALLTYPE CreateMutableVideoEncodingMode(
2765 /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode) = 0;
2769 #else /* C style interface */
2771 typedef struct IBMDStreamingVideoEncodingModeVtbl
2775 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2776 IBMDStreamingVideoEncodingMode * This,
2777 /* [in] */ REFIID riid,
2778 /* [annotation][iid_is][out] */
2779 __RPC__deref_out void **ppvObject);
2781 ULONG ( STDMETHODCALLTYPE *AddRef )(
2782 IBMDStreamingVideoEncodingMode * This);
2784 ULONG ( STDMETHODCALLTYPE *Release )(
2785 IBMDStreamingVideoEncodingMode * This);
2787 HRESULT ( STDMETHODCALLTYPE *GetName )(
2788 IBMDStreamingVideoEncodingMode * This,
2789 /* [out] */ BSTR *name);
2791 unsigned int ( STDMETHODCALLTYPE *GetPresetID )(
2792 IBMDStreamingVideoEncodingMode * This);
2794 unsigned int ( STDMETHODCALLTYPE *GetSourcePositionX )(
2795 IBMDStreamingVideoEncodingMode * This);
2797 unsigned int ( STDMETHODCALLTYPE *GetSourcePositionY )(
2798 IBMDStreamingVideoEncodingMode * This);
2800 unsigned int ( STDMETHODCALLTYPE *GetSourceWidth )(
2801 IBMDStreamingVideoEncodingMode * This);
2803 unsigned int ( STDMETHODCALLTYPE *GetSourceHeight )(
2804 IBMDStreamingVideoEncodingMode * This);
2806 unsigned int ( STDMETHODCALLTYPE *GetDestWidth )(
2807 IBMDStreamingVideoEncodingMode * This);
2809 unsigned int ( STDMETHODCALLTYPE *GetDestHeight )(
2810 IBMDStreamingVideoEncodingMode * This);
2812 HRESULT ( STDMETHODCALLTYPE *GetFlag )(
2813 IBMDStreamingVideoEncodingMode * This,
2814 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2815 /* [out] */ BOOL *value);
2817 HRESULT ( STDMETHODCALLTYPE *GetInt )(
2818 IBMDStreamingVideoEncodingMode * This,
2819 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2820 /* [out] */ LONGLONG *value);
2822 HRESULT ( STDMETHODCALLTYPE *GetFloat )(
2823 IBMDStreamingVideoEncodingMode * This,
2824 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2825 /* [out] */ double *value);
2827 HRESULT ( STDMETHODCALLTYPE *GetString )(
2828 IBMDStreamingVideoEncodingMode * This,
2829 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2830 /* [out] */ BSTR *value);
2832 HRESULT ( STDMETHODCALLTYPE *CreateMutableVideoEncodingMode )(
2833 IBMDStreamingVideoEncodingMode * This,
2834 /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode);
2837 } IBMDStreamingVideoEncodingModeVtbl;
2839 interface IBMDStreamingVideoEncodingMode
2841 CONST_VTBL struct IBMDStreamingVideoEncodingModeVtbl *lpVtbl;
2849 #define IBMDStreamingVideoEncodingMode_QueryInterface(This,riid,ppvObject) \
2850 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2852 #define IBMDStreamingVideoEncodingMode_AddRef(This) \
2853 ( (This)->lpVtbl -> AddRef(This) )
2855 #define IBMDStreamingVideoEncodingMode_Release(This) \
2856 ( (This)->lpVtbl -> Release(This) )
2859 #define IBMDStreamingVideoEncodingMode_GetName(This,name) \
2860 ( (This)->lpVtbl -> GetName(This,name) )
2862 #define IBMDStreamingVideoEncodingMode_GetPresetID(This) \
2863 ( (This)->lpVtbl -> GetPresetID(This) )
2865 #define IBMDStreamingVideoEncodingMode_GetSourcePositionX(This) \
2866 ( (This)->lpVtbl -> GetSourcePositionX(This) )
2868 #define IBMDStreamingVideoEncodingMode_GetSourcePositionY(This) \
2869 ( (This)->lpVtbl -> GetSourcePositionY(This) )
2871 #define IBMDStreamingVideoEncodingMode_GetSourceWidth(This) \
2872 ( (This)->lpVtbl -> GetSourceWidth(This) )
2874 #define IBMDStreamingVideoEncodingMode_GetSourceHeight(This) \
2875 ( (This)->lpVtbl -> GetSourceHeight(This) )
2877 #define IBMDStreamingVideoEncodingMode_GetDestWidth(This) \
2878 ( (This)->lpVtbl -> GetDestWidth(This) )
2880 #define IBMDStreamingVideoEncodingMode_GetDestHeight(This) \
2881 ( (This)->lpVtbl -> GetDestHeight(This) )
2883 #define IBMDStreamingVideoEncodingMode_GetFlag(This,cfgID,value) \
2884 ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
2886 #define IBMDStreamingVideoEncodingMode_GetInt(This,cfgID,value) \
2887 ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
2889 #define IBMDStreamingVideoEncodingMode_GetFloat(This,cfgID,value) \
2890 ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
2892 #define IBMDStreamingVideoEncodingMode_GetString(This,cfgID,value) \
2893 ( (This)->lpVtbl -> GetString(This,cfgID,value) )
2895 #define IBMDStreamingVideoEncodingMode_CreateMutableVideoEncodingMode(This,newEncodingMode) \
2896 ( (This)->lpVtbl -> CreateMutableVideoEncodingMode(This,newEncodingMode) )
2898 #endif /* COBJMACROS */
2901 #endif /* C style interface */
2906 #endif /* __IBMDStreamingVideoEncodingMode_INTERFACE_DEFINED__ */
2909 #ifndef __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__
2910 #define __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__
2912 /* interface IBMDStreamingMutableVideoEncodingMode */
2913 /* [helpstring][uuid][object] */
2916 EXTERN_C const IID IID_IBMDStreamingMutableVideoEncodingMode;
2918 #if defined(__cplusplus) && !defined(CINTERFACE)
2920 MIDL_INTERFACE("19BF7D90-1E0A-400D-B2C6-FFC4E78AD49D")
2921 IBMDStreamingMutableVideoEncodingMode : public IBMDStreamingVideoEncodingMode
2924 virtual HRESULT STDMETHODCALLTYPE SetSourceRect(
2925 /* [in] */ unsigned long posX,
2926 /* [in] */ unsigned long posY,
2927 /* [in] */ unsigned long width,
2928 /* [in] */ unsigned long height) = 0;
2930 virtual HRESULT STDMETHODCALLTYPE SetDestSize(
2931 /* [in] */ unsigned long width,
2932 /* [in] */ unsigned long height) = 0;
2934 virtual HRESULT STDMETHODCALLTYPE SetFlag(
2935 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2936 /* [in] */ BOOL value) = 0;
2938 virtual HRESULT STDMETHODCALLTYPE SetInt(
2939 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2940 /* [in] */ LONGLONG value) = 0;
2942 virtual HRESULT STDMETHODCALLTYPE SetFloat(
2943 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2944 /* [in] */ double value) = 0;
2946 virtual HRESULT STDMETHODCALLTYPE SetString(
2947 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2948 /* [in] */ BSTR value) = 0;
2952 #else /* C style interface */
2954 typedef struct IBMDStreamingMutableVideoEncodingModeVtbl
2958 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2959 IBMDStreamingMutableVideoEncodingMode * This,
2960 /* [in] */ REFIID riid,
2961 /* [annotation][iid_is][out] */
2962 __RPC__deref_out void **ppvObject);
2964 ULONG ( STDMETHODCALLTYPE *AddRef )(
2965 IBMDStreamingMutableVideoEncodingMode * This);
2967 ULONG ( STDMETHODCALLTYPE *Release )(
2968 IBMDStreamingMutableVideoEncodingMode * This);
2970 HRESULT ( STDMETHODCALLTYPE *GetName )(
2971 IBMDStreamingMutableVideoEncodingMode * This,
2972 /* [out] */ BSTR *name);
2974 unsigned int ( STDMETHODCALLTYPE *GetPresetID )(
2975 IBMDStreamingMutableVideoEncodingMode * This);
2977 unsigned int ( STDMETHODCALLTYPE *GetSourcePositionX )(
2978 IBMDStreamingMutableVideoEncodingMode * This);
2980 unsigned int ( STDMETHODCALLTYPE *GetSourcePositionY )(
2981 IBMDStreamingMutableVideoEncodingMode * This);
2983 unsigned int ( STDMETHODCALLTYPE *GetSourceWidth )(
2984 IBMDStreamingMutableVideoEncodingMode * This);
2986 unsigned int ( STDMETHODCALLTYPE *GetSourceHeight )(
2987 IBMDStreamingMutableVideoEncodingMode * This);
2989 unsigned int ( STDMETHODCALLTYPE *GetDestWidth )(
2990 IBMDStreamingMutableVideoEncodingMode * This);
2992 unsigned int ( STDMETHODCALLTYPE *GetDestHeight )(
2993 IBMDStreamingMutableVideoEncodingMode * This);
2995 HRESULT ( STDMETHODCALLTYPE *GetFlag )(
2996 IBMDStreamingMutableVideoEncodingMode * This,
2997 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
2998 /* [out] */ BOOL *value);
3000 HRESULT ( STDMETHODCALLTYPE *GetInt )(
3001 IBMDStreamingMutableVideoEncodingMode * This,
3002 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3003 /* [out] */ LONGLONG *value);
3005 HRESULT ( STDMETHODCALLTYPE *GetFloat )(
3006 IBMDStreamingMutableVideoEncodingMode * This,
3007 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3008 /* [out] */ double *value);
3010 HRESULT ( STDMETHODCALLTYPE *GetString )(
3011 IBMDStreamingMutableVideoEncodingMode * This,
3012 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3013 /* [out] */ BSTR *value);
3015 HRESULT ( STDMETHODCALLTYPE *CreateMutableVideoEncodingMode )(
3016 IBMDStreamingMutableVideoEncodingMode * This,
3017 /* [out] */ IBMDStreamingMutableVideoEncodingMode **newEncodingMode);
3019 HRESULT ( STDMETHODCALLTYPE *SetSourceRect )(
3020 IBMDStreamingMutableVideoEncodingMode * This,
3021 /* [in] */ unsigned long posX,
3022 /* [in] */ unsigned long posY,
3023 /* [in] */ unsigned long width,
3024 /* [in] */ unsigned long height);
3026 HRESULT ( STDMETHODCALLTYPE *SetDestSize )(
3027 IBMDStreamingMutableVideoEncodingMode * This,
3028 /* [in] */ unsigned long width,
3029 /* [in] */ unsigned long height);
3031 HRESULT ( STDMETHODCALLTYPE *SetFlag )(
3032 IBMDStreamingMutableVideoEncodingMode * This,
3033 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3034 /* [in] */ BOOL value);
3036 HRESULT ( STDMETHODCALLTYPE *SetInt )(
3037 IBMDStreamingMutableVideoEncodingMode * This,
3038 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3039 /* [in] */ LONGLONG value);
3041 HRESULT ( STDMETHODCALLTYPE *SetFloat )(
3042 IBMDStreamingMutableVideoEncodingMode * This,
3043 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3044 /* [in] */ double value);
3046 HRESULT ( STDMETHODCALLTYPE *SetString )(
3047 IBMDStreamingMutableVideoEncodingMode * This,
3048 /* [in] */ BMDStreamingEncodingModePropertyID cfgID,
3049 /* [in] */ BSTR value);
3052 } IBMDStreamingMutableVideoEncodingModeVtbl;
3054 interface IBMDStreamingMutableVideoEncodingMode
3056 CONST_VTBL struct IBMDStreamingMutableVideoEncodingModeVtbl *lpVtbl;
3064 #define IBMDStreamingMutableVideoEncodingMode_QueryInterface(This,riid,ppvObject) \
3065 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3067 #define IBMDStreamingMutableVideoEncodingMode_AddRef(This) \
3068 ( (This)->lpVtbl -> AddRef(This) )
3070 #define IBMDStreamingMutableVideoEncodingMode_Release(This) \
3071 ( (This)->lpVtbl -> Release(This) )
3074 #define IBMDStreamingMutableVideoEncodingMode_GetName(This,name) \
3075 ( (This)->lpVtbl -> GetName(This,name) )
3077 #define IBMDStreamingMutableVideoEncodingMode_GetPresetID(This) \
3078 ( (This)->lpVtbl -> GetPresetID(This) )
3080 #define IBMDStreamingMutableVideoEncodingMode_GetSourcePositionX(This) \
3081 ( (This)->lpVtbl -> GetSourcePositionX(This) )
3083 #define IBMDStreamingMutableVideoEncodingMode_GetSourcePositionY(This) \
3084 ( (This)->lpVtbl -> GetSourcePositionY(This) )
3086 #define IBMDStreamingMutableVideoEncodingMode_GetSourceWidth(This) \
3087 ( (This)->lpVtbl -> GetSourceWidth(This) )
3089 #define IBMDStreamingMutableVideoEncodingMode_GetSourceHeight(This) \
3090 ( (This)->lpVtbl -> GetSourceHeight(This) )
3092 #define IBMDStreamingMutableVideoEncodingMode_GetDestWidth(This) \
3093 ( (This)->lpVtbl -> GetDestWidth(This) )
3095 #define IBMDStreamingMutableVideoEncodingMode_GetDestHeight(This) \
3096 ( (This)->lpVtbl -> GetDestHeight(This) )
3098 #define IBMDStreamingMutableVideoEncodingMode_GetFlag(This,cfgID,value) \
3099 ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
3101 #define IBMDStreamingMutableVideoEncodingMode_GetInt(This,cfgID,value) \
3102 ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
3104 #define IBMDStreamingMutableVideoEncodingMode_GetFloat(This,cfgID,value) \
3105 ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
3107 #define IBMDStreamingMutableVideoEncodingMode_GetString(This,cfgID,value) \
3108 ( (This)->lpVtbl -> GetString(This,cfgID,value) )
3110 #define IBMDStreamingMutableVideoEncodingMode_CreateMutableVideoEncodingMode(This,newEncodingMode) \
3111 ( (This)->lpVtbl -> CreateMutableVideoEncodingMode(This,newEncodingMode) )
3114 #define IBMDStreamingMutableVideoEncodingMode_SetSourceRect(This,posX,posY,width,height) \
3115 ( (This)->lpVtbl -> SetSourceRect(This,posX,posY,width,height) )
3117 #define IBMDStreamingMutableVideoEncodingMode_SetDestSize(This,width,height) \
3118 ( (This)->lpVtbl -> SetDestSize(This,width,height) )
3120 #define IBMDStreamingMutableVideoEncodingMode_SetFlag(This,cfgID,value) \
3121 ( (This)->lpVtbl -> SetFlag(This,cfgID,value) )
3123 #define IBMDStreamingMutableVideoEncodingMode_SetInt(This,cfgID,value) \
3124 ( (This)->lpVtbl -> SetInt(This,cfgID,value) )
3126 #define IBMDStreamingMutableVideoEncodingMode_SetFloat(This,cfgID,value) \
3127 ( (This)->lpVtbl -> SetFloat(This,cfgID,value) )
3129 #define IBMDStreamingMutableVideoEncodingMode_SetString(This,cfgID,value) \
3130 ( (This)->lpVtbl -> SetString(This,cfgID,value) )
3132 #endif /* COBJMACROS */
3135 #endif /* C style interface */
3140 #endif /* __IBMDStreamingMutableVideoEncodingMode_INTERFACE_DEFINED__ */
3143 #ifndef __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__
3144 #define __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__
3146 /* interface IBMDStreamingVideoEncodingModePresetIterator */
3147 /* [helpstring][uuid][object] */
3150 EXTERN_C const IID IID_IBMDStreamingVideoEncodingModePresetIterator;
3152 #if defined(__cplusplus) && !defined(CINTERFACE)
3154 MIDL_INTERFACE("7AC731A3-C950-4AD0-804A-8377AA51C6C4")
3155 IBMDStreamingVideoEncodingModePresetIterator : public IUnknown
3158 virtual HRESULT STDMETHODCALLTYPE Next(
3159 /* [out] */ IBMDStreamingVideoEncodingMode **videoEncodingMode) = 0;
3163 #else /* C style interface */
3165 typedef struct IBMDStreamingVideoEncodingModePresetIteratorVtbl
3169 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3170 IBMDStreamingVideoEncodingModePresetIterator * This,
3171 /* [in] */ REFIID riid,
3172 /* [annotation][iid_is][out] */
3173 __RPC__deref_out void **ppvObject);
3175 ULONG ( STDMETHODCALLTYPE *AddRef )(
3176 IBMDStreamingVideoEncodingModePresetIterator * This);
3178 ULONG ( STDMETHODCALLTYPE *Release )(
3179 IBMDStreamingVideoEncodingModePresetIterator * This);
3181 HRESULT ( STDMETHODCALLTYPE *Next )(
3182 IBMDStreamingVideoEncodingModePresetIterator * This,
3183 /* [out] */ IBMDStreamingVideoEncodingMode **videoEncodingMode);
3186 } IBMDStreamingVideoEncodingModePresetIteratorVtbl;
3188 interface IBMDStreamingVideoEncodingModePresetIterator
3190 CONST_VTBL struct IBMDStreamingVideoEncodingModePresetIteratorVtbl *lpVtbl;
3198 #define IBMDStreamingVideoEncodingModePresetIterator_QueryInterface(This,riid,ppvObject) \
3199 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3201 #define IBMDStreamingVideoEncodingModePresetIterator_AddRef(This) \
3202 ( (This)->lpVtbl -> AddRef(This) )
3204 #define IBMDStreamingVideoEncodingModePresetIterator_Release(This) \
3205 ( (This)->lpVtbl -> Release(This) )
3208 #define IBMDStreamingVideoEncodingModePresetIterator_Next(This,videoEncodingMode) \
3209 ( (This)->lpVtbl -> Next(This,videoEncodingMode) )
3211 #endif /* COBJMACROS */
3214 #endif /* C style interface */
3219 #endif /* __IBMDStreamingVideoEncodingModePresetIterator_INTERFACE_DEFINED__ */
3222 #ifndef __IBMDStreamingDeviceInput_INTERFACE_DEFINED__
3223 #define __IBMDStreamingDeviceInput_INTERFACE_DEFINED__
3225 /* interface IBMDStreamingDeviceInput */
3226 /* [helpstring][uuid][object] */
3229 EXTERN_C const IID IID_IBMDStreamingDeviceInput;
3231 #if defined(__cplusplus) && !defined(CINTERFACE)
3233 MIDL_INTERFACE("24B6B6EC-1727-44BB-9818-34FF086ACF98")
3234 IBMDStreamingDeviceInput : public IUnknown
3237 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoInputMode(
3238 /* [in] */ BMDDisplayMode inputMode,
3239 /* [out] */ BOOL *result) = 0;
3241 virtual HRESULT STDMETHODCALLTYPE GetVideoInputModeIterator(
3242 /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
3244 virtual HRESULT STDMETHODCALLTYPE SetVideoInputMode(
3245 /* [in] */ BMDDisplayMode inputMode) = 0;
3247 virtual HRESULT STDMETHODCALLTYPE GetCurrentDetectedVideoInputMode(
3248 /* [out] */ BMDDisplayMode *detectedMode) = 0;
3250 virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingMode(
3251 /* [out] */ IBMDStreamingVideoEncodingMode **encodingMode) = 0;
3253 virtual HRESULT STDMETHODCALLTYPE GetVideoEncodingModePresetIterator(
3254 /* [in] */ BMDDisplayMode inputMode,
3255 /* [out] */ IBMDStreamingVideoEncodingModePresetIterator **iterator) = 0;
3257 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoEncodingMode(
3258 /* [in] */ BMDDisplayMode inputMode,
3259 /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode,
3260 /* [out] */ BMDStreamingEncodingSupport *result,
3261 /* [out] */ IBMDStreamingVideoEncodingMode **changedEncodingMode) = 0;
3263 virtual HRESULT STDMETHODCALLTYPE SetVideoEncodingMode(
3264 /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode) = 0;
3266 virtual HRESULT STDMETHODCALLTYPE StartCapture( void) = 0;
3268 virtual HRESULT STDMETHODCALLTYPE StopCapture( void) = 0;
3270 virtual HRESULT STDMETHODCALLTYPE SetCallback(
3271 /* [in] */ IUnknown *theCallback) = 0;
3275 #else /* C style interface */
3277 typedef struct IBMDStreamingDeviceInputVtbl
3281 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3282 IBMDStreamingDeviceInput * This,
3283 /* [in] */ REFIID riid,
3284 /* [annotation][iid_is][out] */
3285 __RPC__deref_out void **ppvObject);
3287 ULONG ( STDMETHODCALLTYPE *AddRef )(
3288 IBMDStreamingDeviceInput * This);
3290 ULONG ( STDMETHODCALLTYPE *Release )(
3291 IBMDStreamingDeviceInput * This);
3293 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoInputMode )(
3294 IBMDStreamingDeviceInput * This,
3295 /* [in] */ BMDDisplayMode inputMode,
3296 /* [out] */ BOOL *result);
3298 HRESULT ( STDMETHODCALLTYPE *GetVideoInputModeIterator )(
3299 IBMDStreamingDeviceInput * This,
3300 /* [out] */ IDeckLinkDisplayModeIterator **iterator);
3302 HRESULT ( STDMETHODCALLTYPE *SetVideoInputMode )(
3303 IBMDStreamingDeviceInput * This,
3304 /* [in] */ BMDDisplayMode inputMode);
3306 HRESULT ( STDMETHODCALLTYPE *GetCurrentDetectedVideoInputMode )(
3307 IBMDStreamingDeviceInput * This,
3308 /* [out] */ BMDDisplayMode *detectedMode);
3310 HRESULT ( STDMETHODCALLTYPE *GetVideoEncodingMode )(
3311 IBMDStreamingDeviceInput * This,
3312 /* [out] */ IBMDStreamingVideoEncodingMode **encodingMode);
3314 HRESULT ( STDMETHODCALLTYPE *GetVideoEncodingModePresetIterator )(
3315 IBMDStreamingDeviceInput * This,
3316 /* [in] */ BMDDisplayMode inputMode,
3317 /* [out] */ IBMDStreamingVideoEncodingModePresetIterator **iterator);
3319 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoEncodingMode )(
3320 IBMDStreamingDeviceInput * This,
3321 /* [in] */ BMDDisplayMode inputMode,
3322 /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode,
3323 /* [out] */ BMDStreamingEncodingSupport *result,
3324 /* [out] */ IBMDStreamingVideoEncodingMode **changedEncodingMode);
3326 HRESULT ( STDMETHODCALLTYPE *SetVideoEncodingMode )(
3327 IBMDStreamingDeviceInput * This,
3328 /* [in] */ IBMDStreamingVideoEncodingMode *encodingMode);
3330 HRESULT ( STDMETHODCALLTYPE *StartCapture )(
3331 IBMDStreamingDeviceInput * This);
3333 HRESULT ( STDMETHODCALLTYPE *StopCapture )(
3334 IBMDStreamingDeviceInput * This);
3336 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
3337 IBMDStreamingDeviceInput * This,
3338 /* [in] */ IUnknown *theCallback);
3341 } IBMDStreamingDeviceInputVtbl;
3343 interface IBMDStreamingDeviceInput
3345 CONST_VTBL struct IBMDStreamingDeviceInputVtbl *lpVtbl;
3353 #define IBMDStreamingDeviceInput_QueryInterface(This,riid,ppvObject) \
3354 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3356 #define IBMDStreamingDeviceInput_AddRef(This) \
3357 ( (This)->lpVtbl -> AddRef(This) )
3359 #define IBMDStreamingDeviceInput_Release(This) \
3360 ( (This)->lpVtbl -> Release(This) )
3363 #define IBMDStreamingDeviceInput_DoesSupportVideoInputMode(This,inputMode,result) \
3364 ( (This)->lpVtbl -> DoesSupportVideoInputMode(This,inputMode,result) )
3366 #define IBMDStreamingDeviceInput_GetVideoInputModeIterator(This,iterator) \
3367 ( (This)->lpVtbl -> GetVideoInputModeIterator(This,iterator) )
3369 #define IBMDStreamingDeviceInput_SetVideoInputMode(This,inputMode) \
3370 ( (This)->lpVtbl -> SetVideoInputMode(This,inputMode) )
3372 #define IBMDStreamingDeviceInput_GetCurrentDetectedVideoInputMode(This,detectedMode) \
3373 ( (This)->lpVtbl -> GetCurrentDetectedVideoInputMode(This,detectedMode) )
3375 #define IBMDStreamingDeviceInput_GetVideoEncodingMode(This,encodingMode) \
3376 ( (This)->lpVtbl -> GetVideoEncodingMode(This,encodingMode) )
3378 #define IBMDStreamingDeviceInput_GetVideoEncodingModePresetIterator(This,inputMode,iterator) \
3379 ( (This)->lpVtbl -> GetVideoEncodingModePresetIterator(This,inputMode,iterator) )
3381 #define IBMDStreamingDeviceInput_DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode) \
3382 ( (This)->lpVtbl -> DoesSupportVideoEncodingMode(This,inputMode,encodingMode,result,changedEncodingMode) )
3384 #define IBMDStreamingDeviceInput_SetVideoEncodingMode(This,encodingMode) \
3385 ( (This)->lpVtbl -> SetVideoEncodingMode(This,encodingMode) )
3387 #define IBMDStreamingDeviceInput_StartCapture(This) \
3388 ( (This)->lpVtbl -> StartCapture(This) )
3390 #define IBMDStreamingDeviceInput_StopCapture(This) \
3391 ( (This)->lpVtbl -> StopCapture(This) )
3393 #define IBMDStreamingDeviceInput_SetCallback(This,theCallback) \
3394 ( (This)->lpVtbl -> SetCallback(This,theCallback) )
3396 #endif /* COBJMACROS */
3399 #endif /* C style interface */
3404 #endif /* __IBMDStreamingDeviceInput_INTERFACE_DEFINED__ */
3407 #ifndef __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__
3408 #define __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__
3410 /* interface IBMDStreamingH264NALPacket */
3411 /* [helpstring][uuid][object] */
3414 EXTERN_C const IID IID_IBMDStreamingH264NALPacket;
3416 #if defined(__cplusplus) && !defined(CINTERFACE)
3418 MIDL_INTERFACE("E260E955-14BE-4395-9775-9F02CC0A9D89")
3419 IBMDStreamingH264NALPacket : public IUnknown
3422 virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;
3424 virtual HRESULT STDMETHODCALLTYPE GetBytes(
3425 /* [out] */ void **buffer) = 0;
3427 virtual HRESULT STDMETHODCALLTYPE GetBytesWithSizePrefix(
3428 /* [out] */ void **buffer) = 0;
3430 virtual HRESULT STDMETHODCALLTYPE GetDisplayTime(
3431 /* [in] */ ULONGLONG requestedTimeScale,
3432 /* [out] */ ULONGLONG *displayTime) = 0;
3434 virtual HRESULT STDMETHODCALLTYPE GetPacketIndex(
3435 /* [out] */ unsigned long *packetIndex) = 0;
3439 #else /* C style interface */
3441 typedef struct IBMDStreamingH264NALPacketVtbl
3445 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3446 IBMDStreamingH264NALPacket * This,
3447 /* [in] */ REFIID riid,
3448 /* [annotation][iid_is][out] */
3449 __RPC__deref_out void **ppvObject);
3451 ULONG ( STDMETHODCALLTYPE *AddRef )(
3452 IBMDStreamingH264NALPacket * This);
3454 ULONG ( STDMETHODCALLTYPE *Release )(
3455 IBMDStreamingH264NALPacket * This);
3457 long ( STDMETHODCALLTYPE *GetPayloadSize )(
3458 IBMDStreamingH264NALPacket * This);
3460 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
3461 IBMDStreamingH264NALPacket * This,
3462 /* [out] */ void **buffer);
3464 HRESULT ( STDMETHODCALLTYPE *GetBytesWithSizePrefix )(
3465 IBMDStreamingH264NALPacket * This,
3466 /* [out] */ void **buffer);
3468 HRESULT ( STDMETHODCALLTYPE *GetDisplayTime )(
3469 IBMDStreamingH264NALPacket * This,
3470 /* [in] */ ULONGLONG requestedTimeScale,
3471 /* [out] */ ULONGLONG *displayTime);
3473 HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )(
3474 IBMDStreamingH264NALPacket * This,
3475 /* [out] */ unsigned long *packetIndex);
3478 } IBMDStreamingH264NALPacketVtbl;
3480 interface IBMDStreamingH264NALPacket
3482 CONST_VTBL struct IBMDStreamingH264NALPacketVtbl *lpVtbl;
3490 #define IBMDStreamingH264NALPacket_QueryInterface(This,riid,ppvObject) \
3491 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3493 #define IBMDStreamingH264NALPacket_AddRef(This) \
3494 ( (This)->lpVtbl -> AddRef(This) )
3496 #define IBMDStreamingH264NALPacket_Release(This) \
3497 ( (This)->lpVtbl -> Release(This) )
3500 #define IBMDStreamingH264NALPacket_GetPayloadSize(This) \
3501 ( (This)->lpVtbl -> GetPayloadSize(This) )
3503 #define IBMDStreamingH264NALPacket_GetBytes(This,buffer) \
3504 ( (This)->lpVtbl -> GetBytes(This,buffer) )
3506 #define IBMDStreamingH264NALPacket_GetBytesWithSizePrefix(This,buffer) \
3507 ( (This)->lpVtbl -> GetBytesWithSizePrefix(This,buffer) )
3509 #define IBMDStreamingH264NALPacket_GetDisplayTime(This,requestedTimeScale,displayTime) \
3510 ( (This)->lpVtbl -> GetDisplayTime(This,requestedTimeScale,displayTime) )
3512 #define IBMDStreamingH264NALPacket_GetPacketIndex(This,packetIndex) \
3513 ( (This)->lpVtbl -> GetPacketIndex(This,packetIndex) )
3515 #endif /* COBJMACROS */
3518 #endif /* C style interface */
3523 #endif /* __IBMDStreamingH264NALPacket_INTERFACE_DEFINED__ */
3526 #ifndef __IBMDStreamingAudioPacket_INTERFACE_DEFINED__
3527 #define __IBMDStreamingAudioPacket_INTERFACE_DEFINED__
3529 /* interface IBMDStreamingAudioPacket */
3530 /* [helpstring][uuid][object] */
3533 EXTERN_C const IID IID_IBMDStreamingAudioPacket;
3535 #if defined(__cplusplus) && !defined(CINTERFACE)
3537 MIDL_INTERFACE("D9EB5902-1AD2-43F4-9E2C-3CFA50B5EE19")
3538 IBMDStreamingAudioPacket : public IUnknown
3541 virtual BMDStreamingAudioCodec STDMETHODCALLTYPE GetCodec( void) = 0;
3543 virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;
3545 virtual HRESULT STDMETHODCALLTYPE GetBytes(
3546 /* [out] */ void **buffer) = 0;
3548 virtual HRESULT STDMETHODCALLTYPE GetPlayTime(
3549 /* [in] */ ULONGLONG requestedTimeScale,
3550 /* [out] */ ULONGLONG *playTime) = 0;
3552 virtual HRESULT STDMETHODCALLTYPE GetPacketIndex(
3553 /* [out] */ unsigned long *packetIndex) = 0;
3557 #else /* C style interface */
3559 typedef struct IBMDStreamingAudioPacketVtbl
3563 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3564 IBMDStreamingAudioPacket * This,
3565 /* [in] */ REFIID riid,
3566 /* [annotation][iid_is][out] */
3567 __RPC__deref_out void **ppvObject);
3569 ULONG ( STDMETHODCALLTYPE *AddRef )(
3570 IBMDStreamingAudioPacket * This);
3572 ULONG ( STDMETHODCALLTYPE *Release )(
3573 IBMDStreamingAudioPacket * This);
3575 BMDStreamingAudioCodec ( STDMETHODCALLTYPE *GetCodec )(
3576 IBMDStreamingAudioPacket * This);
3578 long ( STDMETHODCALLTYPE *GetPayloadSize )(
3579 IBMDStreamingAudioPacket * This);
3581 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
3582 IBMDStreamingAudioPacket * This,
3583 /* [out] */ void **buffer);
3585 HRESULT ( STDMETHODCALLTYPE *GetPlayTime )(
3586 IBMDStreamingAudioPacket * This,
3587 /* [in] */ ULONGLONG requestedTimeScale,
3588 /* [out] */ ULONGLONG *playTime);
3590 HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )(
3591 IBMDStreamingAudioPacket * This,
3592 /* [out] */ unsigned long *packetIndex);
3595 } IBMDStreamingAudioPacketVtbl;
3597 interface IBMDStreamingAudioPacket
3599 CONST_VTBL struct IBMDStreamingAudioPacketVtbl *lpVtbl;
3607 #define IBMDStreamingAudioPacket_QueryInterface(This,riid,ppvObject) \
3608 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3610 #define IBMDStreamingAudioPacket_AddRef(This) \
3611 ( (This)->lpVtbl -> AddRef(This) )
3613 #define IBMDStreamingAudioPacket_Release(This) \
3614 ( (This)->lpVtbl -> Release(This) )
3617 #define IBMDStreamingAudioPacket_GetCodec(This) \
3618 ( (This)->lpVtbl -> GetCodec(This) )
3620 #define IBMDStreamingAudioPacket_GetPayloadSize(This) \
3621 ( (This)->lpVtbl -> GetPayloadSize(This) )
3623 #define IBMDStreamingAudioPacket_GetBytes(This,buffer) \
3624 ( (This)->lpVtbl -> GetBytes(This,buffer) )
3626 #define IBMDStreamingAudioPacket_GetPlayTime(This,requestedTimeScale,playTime) \
3627 ( (This)->lpVtbl -> GetPlayTime(This,requestedTimeScale,playTime) )
3629 #define IBMDStreamingAudioPacket_GetPacketIndex(This,packetIndex) \
3630 ( (This)->lpVtbl -> GetPacketIndex(This,packetIndex) )
3632 #endif /* COBJMACROS */
3635 #endif /* C style interface */
3640 #endif /* __IBMDStreamingAudioPacket_INTERFACE_DEFINED__ */
3643 #ifndef __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__
3644 #define __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__
3646 /* interface IBMDStreamingMPEG2TSPacket */
3647 /* [helpstring][uuid][object] */
3650 EXTERN_C const IID IID_IBMDStreamingMPEG2TSPacket;
3652 #if defined(__cplusplus) && !defined(CINTERFACE)
3654 MIDL_INTERFACE("91810D1C-4FB3-4AAA-AE56-FA301D3DFA4C")
3655 IBMDStreamingMPEG2TSPacket : public IUnknown
3658 virtual long STDMETHODCALLTYPE GetPayloadSize( void) = 0;
3660 virtual HRESULT STDMETHODCALLTYPE GetBytes(
3661 /* [out] */ void **buffer) = 0;
3665 #else /* C style interface */
3667 typedef struct IBMDStreamingMPEG2TSPacketVtbl
3671 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3672 IBMDStreamingMPEG2TSPacket * This,
3673 /* [in] */ REFIID riid,
3674 /* [annotation][iid_is][out] */
3675 __RPC__deref_out void **ppvObject);
3677 ULONG ( STDMETHODCALLTYPE *AddRef )(
3678 IBMDStreamingMPEG2TSPacket * This);
3680 ULONG ( STDMETHODCALLTYPE *Release )(
3681 IBMDStreamingMPEG2TSPacket * This);
3683 long ( STDMETHODCALLTYPE *GetPayloadSize )(
3684 IBMDStreamingMPEG2TSPacket * This);
3686 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
3687 IBMDStreamingMPEG2TSPacket * This,
3688 /* [out] */ void **buffer);
3691 } IBMDStreamingMPEG2TSPacketVtbl;
3693 interface IBMDStreamingMPEG2TSPacket
3695 CONST_VTBL struct IBMDStreamingMPEG2TSPacketVtbl *lpVtbl;
3703 #define IBMDStreamingMPEG2TSPacket_QueryInterface(This,riid,ppvObject) \
3704 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3706 #define IBMDStreamingMPEG2TSPacket_AddRef(This) \
3707 ( (This)->lpVtbl -> AddRef(This) )
3709 #define IBMDStreamingMPEG2TSPacket_Release(This) \
3710 ( (This)->lpVtbl -> Release(This) )
3713 #define IBMDStreamingMPEG2TSPacket_GetPayloadSize(This) \
3714 ( (This)->lpVtbl -> GetPayloadSize(This) )
3716 #define IBMDStreamingMPEG2TSPacket_GetBytes(This,buffer) \
3717 ( (This)->lpVtbl -> GetBytes(This,buffer) )
3719 #endif /* COBJMACROS */
3722 #endif /* C style interface */
3727 #endif /* __IBMDStreamingMPEG2TSPacket_INTERFACE_DEFINED__ */
3730 #ifndef __IBMDStreamingH264NALParser_INTERFACE_DEFINED__
3731 #define __IBMDStreamingH264NALParser_INTERFACE_DEFINED__
3733 /* interface IBMDStreamingH264NALParser */
3734 /* [helpstring][uuid][object] */
3737 EXTERN_C const IID IID_IBMDStreamingH264NALParser;
3739 #if defined(__cplusplus) && !defined(CINTERFACE)
3741 MIDL_INTERFACE("5867F18C-5BFA-4CCC-B2A7-9DFD140417D2")
3742 IBMDStreamingH264NALParser : public IUnknown
3745 virtual HRESULT STDMETHODCALLTYPE IsNALSequenceParameterSet(
3746 /* [in] */ IBMDStreamingH264NALPacket *nal) = 0;
3748 virtual HRESULT STDMETHODCALLTYPE IsNALPictureParameterSet(
3749 /* [in] */ IBMDStreamingH264NALPacket *nal) = 0;
3751 virtual HRESULT STDMETHODCALLTYPE GetProfileAndLevelFromSPS(
3752 /* [in] */ IBMDStreamingH264NALPacket *nal,
3753 /* [out] */ unsigned long *profileIdc,
3754 /* [out] */ unsigned long *profileCompatability,
3755 /* [out] */ unsigned long *levelIdc) = 0;
3759 #else /* C style interface */
3761 typedef struct IBMDStreamingH264NALParserVtbl
3765 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3766 IBMDStreamingH264NALParser * This,
3767 /* [in] */ REFIID riid,
3768 /* [annotation][iid_is][out] */
3769 __RPC__deref_out void **ppvObject);
3771 ULONG ( STDMETHODCALLTYPE *AddRef )(
3772 IBMDStreamingH264NALParser * This);
3774 ULONG ( STDMETHODCALLTYPE *Release )(
3775 IBMDStreamingH264NALParser * This);
3777 HRESULT ( STDMETHODCALLTYPE *IsNALSequenceParameterSet )(
3778 IBMDStreamingH264NALParser * This,
3779 /* [in] */ IBMDStreamingH264NALPacket *nal);
3781 HRESULT ( STDMETHODCALLTYPE *IsNALPictureParameterSet )(
3782 IBMDStreamingH264NALParser * This,
3783 /* [in] */ IBMDStreamingH264NALPacket *nal);
3785 HRESULT ( STDMETHODCALLTYPE *GetProfileAndLevelFromSPS )(
3786 IBMDStreamingH264NALParser * This,
3787 /* [in] */ IBMDStreamingH264NALPacket *nal,
3788 /* [out] */ unsigned long *profileIdc,
3789 /* [out] */ unsigned long *profileCompatability,
3790 /* [out] */ unsigned long *levelIdc);
3793 } IBMDStreamingH264NALParserVtbl;
3795 interface IBMDStreamingH264NALParser
3797 CONST_VTBL struct IBMDStreamingH264NALParserVtbl *lpVtbl;
3805 #define IBMDStreamingH264NALParser_QueryInterface(This,riid,ppvObject) \
3806 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3808 #define IBMDStreamingH264NALParser_AddRef(This) \
3809 ( (This)->lpVtbl -> AddRef(This) )
3811 #define IBMDStreamingH264NALParser_Release(This) \
3812 ( (This)->lpVtbl -> Release(This) )
3815 #define IBMDStreamingH264NALParser_IsNALSequenceParameterSet(This,nal) \
3816 ( (This)->lpVtbl -> IsNALSequenceParameterSet(This,nal) )
3818 #define IBMDStreamingH264NALParser_IsNALPictureParameterSet(This,nal) \
3819 ( (This)->lpVtbl -> IsNALPictureParameterSet(This,nal) )
3821 #define IBMDStreamingH264NALParser_GetProfileAndLevelFromSPS(This,nal,profileIdc,profileCompatability,levelIdc) \
3822 ( (This)->lpVtbl -> GetProfileAndLevelFromSPS(This,nal,profileIdc,profileCompatability,levelIdc) )
3824 #endif /* COBJMACROS */
3827 #endif /* C style interface */
3832 #endif /* __IBMDStreamingH264NALParser_INTERFACE_DEFINED__ */
3835 EXTERN_C const CLSID CLSID_CBMDStreamingDiscovery;
3839 class DECLSPEC_UUID("0CAA31F6-8A26-40B0-86A4-BF58DCCA710C")
3840 CBMDStreamingDiscovery;
3843 EXTERN_C const CLSID CLSID_CBMDStreamingH264NALParser;
3847 class DECLSPEC_UUID("7753EFBD-951C-407C-97A5-23C737B73B52")
3848 CBMDStreamingH264NALParser;
3851 #ifndef __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__
3852 #define __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__
3854 /* interface IDeckLinkVideoOutputCallback */
3855 /* [helpstring][uuid][object] */
3858 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback;
3860 #if defined(__cplusplus) && !defined(CINTERFACE)
3862 MIDL_INTERFACE("20AA5225-1958-47CB-820B-80A8D521A6EE")
3863 IDeckLinkVideoOutputCallback : public IUnknown
3866 virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(
3867 /* [in] */ IDeckLinkVideoFrame *completedFrame,
3868 /* [in] */ BMDOutputFrameCompletionResult result) = 0;
3870 virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;
3874 #else /* C style interface */
3876 typedef struct IDeckLinkVideoOutputCallbackVtbl
3880 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3881 IDeckLinkVideoOutputCallback * This,
3882 /* [in] */ REFIID riid,
3883 /* [annotation][iid_is][out] */
3884 __RPC__deref_out void **ppvObject);
3886 ULONG ( STDMETHODCALLTYPE *AddRef )(
3887 IDeckLinkVideoOutputCallback * This);
3889 ULONG ( STDMETHODCALLTYPE *Release )(
3890 IDeckLinkVideoOutputCallback * This);
3892 HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )(
3893 IDeckLinkVideoOutputCallback * This,
3894 /* [in] */ IDeckLinkVideoFrame *completedFrame,
3895 /* [in] */ BMDOutputFrameCompletionResult result);
3897 HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )(
3898 IDeckLinkVideoOutputCallback * This);
3901 } IDeckLinkVideoOutputCallbackVtbl;
3903 interface IDeckLinkVideoOutputCallback
3905 CONST_VTBL struct IDeckLinkVideoOutputCallbackVtbl *lpVtbl;
3913 #define IDeckLinkVideoOutputCallback_QueryInterface(This,riid,ppvObject) \
3914 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3916 #define IDeckLinkVideoOutputCallback_AddRef(This) \
3917 ( (This)->lpVtbl -> AddRef(This) )
3919 #define IDeckLinkVideoOutputCallback_Release(This) \
3920 ( (This)->lpVtbl -> Release(This) )
3923 #define IDeckLinkVideoOutputCallback_ScheduledFrameCompleted(This,completedFrame,result) \
3924 ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) )
3926 #define IDeckLinkVideoOutputCallback_ScheduledPlaybackHasStopped(This) \
3927 ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) )
3929 #endif /* COBJMACROS */
3932 #endif /* C style interface */
3937 #endif /* __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ */
3940 #ifndef __IDeckLinkInputCallback_INTERFACE_DEFINED__
3941 #define __IDeckLinkInputCallback_INTERFACE_DEFINED__
3943 /* interface IDeckLinkInputCallback */
3944 /* [helpstring][uuid][object] */
3947 EXTERN_C const IID IID_IDeckLinkInputCallback;
3949 #if defined(__cplusplus) && !defined(CINTERFACE)
3951 MIDL_INTERFACE("DD04E5EC-7415-42AB-AE4A-E80C4DFC044A")
3952 IDeckLinkInputCallback : public IUnknown
3955 virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(
3956 /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
3957 /* [in] */ IDeckLinkDisplayMode *newDisplayMode,
3958 /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
3960 virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(
3961 /* [in] */ IDeckLinkVideoInputFrame *videoFrame,
3962 /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;
3966 #else /* C style interface */
3968 typedef struct IDeckLinkInputCallbackVtbl
3972 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3973 IDeckLinkInputCallback * This,
3974 /* [in] */ REFIID riid,
3975 /* [annotation][iid_is][out] */
3976 __RPC__deref_out void **ppvObject);
3978 ULONG ( STDMETHODCALLTYPE *AddRef )(
3979 IDeckLinkInputCallback * This);
3981 ULONG ( STDMETHODCALLTYPE *Release )(
3982 IDeckLinkInputCallback * This);
3984 HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )(
3985 IDeckLinkInputCallback * This,
3986 /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
3987 /* [in] */ IDeckLinkDisplayMode *newDisplayMode,
3988 /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
3990 HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(
3991 IDeckLinkInputCallback * This,
3992 /* [in] */ IDeckLinkVideoInputFrame *videoFrame,
3993 /* [in] */ IDeckLinkAudioInputPacket *audioPacket);
3996 } IDeckLinkInputCallbackVtbl;
3998 interface IDeckLinkInputCallback
4000 CONST_VTBL struct IDeckLinkInputCallbackVtbl *lpVtbl;
4008 #define IDeckLinkInputCallback_QueryInterface(This,riid,ppvObject) \
4009 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4011 #define IDeckLinkInputCallback_AddRef(This) \
4012 ( (This)->lpVtbl -> AddRef(This) )
4014 #define IDeckLinkInputCallback_Release(This) \
4015 ( (This)->lpVtbl -> Release(This) )
4018 #define IDeckLinkInputCallback_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \
4019 ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )
4021 #define IDeckLinkInputCallback_VideoInputFrameArrived(This,videoFrame,audioPacket) \
4022 ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )
4024 #endif /* COBJMACROS */
4027 #endif /* C style interface */
4032 #endif /* __IDeckLinkInputCallback_INTERFACE_DEFINED__ */
4035 #ifndef __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__
4036 #define __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__
4038 /* interface IDeckLinkMemoryAllocator */
4039 /* [helpstring][local][uuid][object] */
4042 EXTERN_C const IID IID_IDeckLinkMemoryAllocator;
4044 #if defined(__cplusplus) && !defined(CINTERFACE)
4046 MIDL_INTERFACE("B36EB6E7-9D29-4AA8-92EF-843B87A289E8")
4047 IDeckLinkMemoryAllocator : public IUnknown
4050 virtual HRESULT STDMETHODCALLTYPE AllocateBuffer(
4051 /* [in] */ unsigned long bufferSize,
4052 /* [out] */ void **allocatedBuffer) = 0;
4054 virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer(
4055 /* [in] */ void *buffer) = 0;
4057 virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;
4059 virtual HRESULT STDMETHODCALLTYPE Decommit( void) = 0;
4063 #else /* C style interface */
4065 typedef struct IDeckLinkMemoryAllocatorVtbl
4069 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4070 IDeckLinkMemoryAllocator * This,
4071 /* [in] */ REFIID riid,
4072 /* [annotation][iid_is][out] */
4073 __RPC__deref_out void **ppvObject);
4075 ULONG ( STDMETHODCALLTYPE *AddRef )(
4076 IDeckLinkMemoryAllocator * This);
4078 ULONG ( STDMETHODCALLTYPE *Release )(
4079 IDeckLinkMemoryAllocator * This);
4081 HRESULT ( STDMETHODCALLTYPE *AllocateBuffer )(
4082 IDeckLinkMemoryAllocator * This,
4083 /* [in] */ unsigned long bufferSize,
4084 /* [out] */ void **allocatedBuffer);
4086 HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )(
4087 IDeckLinkMemoryAllocator * This,
4088 /* [in] */ void *buffer);
4090 HRESULT ( STDMETHODCALLTYPE *Commit )(
4091 IDeckLinkMemoryAllocator * This);
4093 HRESULT ( STDMETHODCALLTYPE *Decommit )(
4094 IDeckLinkMemoryAllocator * This);
4097 } IDeckLinkMemoryAllocatorVtbl;
4099 interface IDeckLinkMemoryAllocator
4101 CONST_VTBL struct IDeckLinkMemoryAllocatorVtbl *lpVtbl;
4109 #define IDeckLinkMemoryAllocator_QueryInterface(This,riid,ppvObject) \
4110 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4112 #define IDeckLinkMemoryAllocator_AddRef(This) \
4113 ( (This)->lpVtbl -> AddRef(This) )
4115 #define IDeckLinkMemoryAllocator_Release(This) \
4116 ( (This)->lpVtbl -> Release(This) )
4119 #define IDeckLinkMemoryAllocator_AllocateBuffer(This,bufferSize,allocatedBuffer) \
4120 ( (This)->lpVtbl -> AllocateBuffer(This,bufferSize,allocatedBuffer) )
4122 #define IDeckLinkMemoryAllocator_ReleaseBuffer(This,buffer) \
4123 ( (This)->lpVtbl -> ReleaseBuffer(This,buffer) )
4125 #define IDeckLinkMemoryAllocator_Commit(This) \
4126 ( (This)->lpVtbl -> Commit(This) )
4128 #define IDeckLinkMemoryAllocator_Decommit(This) \
4129 ( (This)->lpVtbl -> Decommit(This) )
4131 #endif /* COBJMACROS */
4134 #endif /* C style interface */
4139 #endif /* __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ */
4142 #ifndef __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__
4143 #define __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__
4145 /* interface IDeckLinkAudioOutputCallback */
4146 /* [helpstring][local][uuid][object] */
4149 EXTERN_C const IID IID_IDeckLinkAudioOutputCallback;
4151 #if defined(__cplusplus) && !defined(CINTERFACE)
4153 MIDL_INTERFACE("403C681B-7F46-4A12-B993-2BB127084EE6")
4154 IDeckLinkAudioOutputCallback : public IUnknown
4157 virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples(
4158 /* [in] */ BOOL preroll) = 0;
4162 #else /* C style interface */
4164 typedef struct IDeckLinkAudioOutputCallbackVtbl
4168 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4169 IDeckLinkAudioOutputCallback * This,
4170 /* [in] */ REFIID riid,
4171 /* [annotation][iid_is][out] */
4172 __RPC__deref_out void **ppvObject);
4174 ULONG ( STDMETHODCALLTYPE *AddRef )(
4175 IDeckLinkAudioOutputCallback * This);
4177 ULONG ( STDMETHODCALLTYPE *Release )(
4178 IDeckLinkAudioOutputCallback * This);
4180 HRESULT ( STDMETHODCALLTYPE *RenderAudioSamples )(
4181 IDeckLinkAudioOutputCallback * This,
4182 /* [in] */ BOOL preroll);
4185 } IDeckLinkAudioOutputCallbackVtbl;
4187 interface IDeckLinkAudioOutputCallback
4189 CONST_VTBL struct IDeckLinkAudioOutputCallbackVtbl *lpVtbl;
4197 #define IDeckLinkAudioOutputCallback_QueryInterface(This,riid,ppvObject) \
4198 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4200 #define IDeckLinkAudioOutputCallback_AddRef(This) \
4201 ( (This)->lpVtbl -> AddRef(This) )
4203 #define IDeckLinkAudioOutputCallback_Release(This) \
4204 ( (This)->lpVtbl -> Release(This) )
4207 #define IDeckLinkAudioOutputCallback_RenderAudioSamples(This,preroll) \
4208 ( (This)->lpVtbl -> RenderAudioSamples(This,preroll) )
4210 #endif /* COBJMACROS */
4213 #endif /* C style interface */
4218 #endif /* __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ */
4221 #ifndef __IDeckLinkIterator_INTERFACE_DEFINED__
4222 #define __IDeckLinkIterator_INTERFACE_DEFINED__
4224 /* interface IDeckLinkIterator */
4225 /* [helpstring][uuid][object] */
4228 EXTERN_C const IID IID_IDeckLinkIterator;
4230 #if defined(__cplusplus) && !defined(CINTERFACE)
4232 MIDL_INTERFACE("50FB36CD-3063-4B73-BDBB-958087F2D8BA")
4233 IDeckLinkIterator : public IUnknown
4236 virtual HRESULT STDMETHODCALLTYPE Next(
4237 /* [out] */ IDeckLink **deckLinkInstance) = 0;
4241 #else /* C style interface */
4243 typedef struct IDeckLinkIteratorVtbl
4247 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4248 IDeckLinkIterator * This,
4249 /* [in] */ REFIID riid,
4250 /* [annotation][iid_is][out] */
4251 __RPC__deref_out void **ppvObject);
4253 ULONG ( STDMETHODCALLTYPE *AddRef )(
4254 IDeckLinkIterator * This);
4256 ULONG ( STDMETHODCALLTYPE *Release )(
4257 IDeckLinkIterator * This);
4259 HRESULT ( STDMETHODCALLTYPE *Next )(
4260 IDeckLinkIterator * This,
4261 /* [out] */ IDeckLink **deckLinkInstance);
4264 } IDeckLinkIteratorVtbl;
4266 interface IDeckLinkIterator
4268 CONST_VTBL struct IDeckLinkIteratorVtbl *lpVtbl;
4276 #define IDeckLinkIterator_QueryInterface(This,riid,ppvObject) \
4277 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4279 #define IDeckLinkIterator_AddRef(This) \
4280 ( (This)->lpVtbl -> AddRef(This) )
4282 #define IDeckLinkIterator_Release(This) \
4283 ( (This)->lpVtbl -> Release(This) )
4286 #define IDeckLinkIterator_Next(This,deckLinkInstance) \
4287 ( (This)->lpVtbl -> Next(This,deckLinkInstance) )
4289 #endif /* COBJMACROS */
4292 #endif /* C style interface */
4297 #endif /* __IDeckLinkIterator_INTERFACE_DEFINED__ */
4300 #ifndef __IDeckLinkAPIInformation_INTERFACE_DEFINED__
4301 #define __IDeckLinkAPIInformation_INTERFACE_DEFINED__
4303 /* interface IDeckLinkAPIInformation */
4304 /* [helpstring][uuid][object] */
4307 EXTERN_C const IID IID_IDeckLinkAPIInformation;
4309 #if defined(__cplusplus) && !defined(CINTERFACE)
4311 MIDL_INTERFACE("7BEA3C68-730D-4322-AF34-8A7152B532A4")
4312 IDeckLinkAPIInformation : public IUnknown
4315 virtual HRESULT STDMETHODCALLTYPE GetFlag(
4316 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4317 /* [out] */ BOOL *value) = 0;
4319 virtual HRESULT STDMETHODCALLTYPE GetInt(
4320 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4321 /* [out] */ LONGLONG *value) = 0;
4323 virtual HRESULT STDMETHODCALLTYPE GetFloat(
4324 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4325 /* [out] */ double *value) = 0;
4327 virtual HRESULT STDMETHODCALLTYPE GetString(
4328 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4329 /* [out] */ BSTR *value) = 0;
4333 #else /* C style interface */
4335 typedef struct IDeckLinkAPIInformationVtbl
4339 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4340 IDeckLinkAPIInformation * This,
4341 /* [in] */ REFIID riid,
4342 /* [annotation][iid_is][out] */
4343 __RPC__deref_out void **ppvObject);
4345 ULONG ( STDMETHODCALLTYPE *AddRef )(
4346 IDeckLinkAPIInformation * This);
4348 ULONG ( STDMETHODCALLTYPE *Release )(
4349 IDeckLinkAPIInformation * This);
4351 HRESULT ( STDMETHODCALLTYPE *GetFlag )(
4352 IDeckLinkAPIInformation * This,
4353 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4354 /* [out] */ BOOL *value);
4356 HRESULT ( STDMETHODCALLTYPE *GetInt )(
4357 IDeckLinkAPIInformation * This,
4358 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4359 /* [out] */ LONGLONG *value);
4361 HRESULT ( STDMETHODCALLTYPE *GetFloat )(
4362 IDeckLinkAPIInformation * This,
4363 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4364 /* [out] */ double *value);
4366 HRESULT ( STDMETHODCALLTYPE *GetString )(
4367 IDeckLinkAPIInformation * This,
4368 /* [in] */ BMDDeckLinkAPIInformationID cfgID,
4369 /* [out] */ BSTR *value);
4372 } IDeckLinkAPIInformationVtbl;
4374 interface IDeckLinkAPIInformation
4376 CONST_VTBL struct IDeckLinkAPIInformationVtbl *lpVtbl;
4384 #define IDeckLinkAPIInformation_QueryInterface(This,riid,ppvObject) \
4385 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4387 #define IDeckLinkAPIInformation_AddRef(This) \
4388 ( (This)->lpVtbl -> AddRef(This) )
4390 #define IDeckLinkAPIInformation_Release(This) \
4391 ( (This)->lpVtbl -> Release(This) )
4394 #define IDeckLinkAPIInformation_GetFlag(This,cfgID,value) \
4395 ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
4397 #define IDeckLinkAPIInformation_GetInt(This,cfgID,value) \
4398 ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
4400 #define IDeckLinkAPIInformation_GetFloat(This,cfgID,value) \
4401 ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
4403 #define IDeckLinkAPIInformation_GetString(This,cfgID,value) \
4404 ( (This)->lpVtbl -> GetString(This,cfgID,value) )
4406 #endif /* COBJMACROS */
4409 #endif /* C style interface */
4414 #endif /* __IDeckLinkAPIInformation_INTERFACE_DEFINED__ */
4417 #ifndef __IDeckLinkOutput_INTERFACE_DEFINED__
4418 #define __IDeckLinkOutput_INTERFACE_DEFINED__
4420 /* interface IDeckLinkOutput */
4421 /* [helpstring][local][uuid][object] */
4424 EXTERN_C const IID IID_IDeckLinkOutput;
4426 #if defined(__cplusplus) && !defined(CINTERFACE)
4428 MIDL_INTERFACE("A3EF0963-0862-44ED-92A9-EE89ABF431C7")
4429 IDeckLinkOutput : public IUnknown
4432 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
4433 /* [in] */ BMDDisplayMode displayMode,
4434 /* [in] */ BMDPixelFormat pixelFormat,
4435 /* [in] */ BMDVideoOutputFlags flags,
4436 /* [out] */ BMDDisplayModeSupport *result,
4437 /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
4439 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
4440 /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
4442 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
4443 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
4445 virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
4446 /* [in] */ BMDDisplayMode displayMode,
4447 /* [in] */ BMDVideoOutputFlags flags) = 0;
4449 virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
4451 virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
4452 /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
4454 virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
4455 /* [in] */ long width,
4456 /* [in] */ long height,
4457 /* [in] */ long rowBytes,
4458 /* [in] */ BMDPixelFormat pixelFormat,
4459 /* [in] */ BMDFrameFlags flags,
4460 /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;
4462 virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(
4463 /* [in] */ BMDPixelFormat pixelFormat,
4464 /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
4466 virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
4467 /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
4469 virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
4470 /* [in] */ IDeckLinkVideoFrame *theFrame,
4471 /* [in] */ BMDTimeValue displayTime,
4472 /* [in] */ BMDTimeValue displayDuration,
4473 /* [in] */ BMDTimeScale timeScale) = 0;
4475 virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
4476 /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;
4478 virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(
4479 /* [out] */ unsigned long *bufferedFrameCount) = 0;
4481 virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
4482 /* [in] */ BMDAudioSampleRate sampleRate,
4483 /* [in] */ BMDAudioSampleType sampleType,
4484 /* [in] */ unsigned long channelCount,
4485 /* [in] */ BMDAudioOutputStreamType streamType) = 0;
4487 virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
4489 virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
4490 /* [in] */ void *buffer,
4491 /* [in] */ unsigned long sampleFrameCount,
4492 /* [out] */ unsigned long *sampleFramesWritten) = 0;
4494 virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
4496 virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
4498 virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
4499 /* [in] */ void *buffer,
4500 /* [in] */ unsigned long sampleFrameCount,
4501 /* [in] */ BMDTimeValue streamTime,
4502 /* [in] */ BMDTimeScale timeScale,
4503 /* [out] */ unsigned long *sampleFramesWritten) = 0;
4505 virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
4506 /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;
4508 virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
4510 virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
4511 /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
4513 virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
4514 /* [in] */ BMDTimeValue playbackStartTime,
4515 /* [in] */ BMDTimeScale timeScale,
4516 /* [in] */ double playbackSpeed) = 0;
4518 virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
4519 /* [in] */ BMDTimeValue stopPlaybackAtTime,
4520 /* [out] */ BMDTimeValue *actualStopTime,
4521 /* [in] */ BMDTimeScale timeScale) = 0;
4523 virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(
4524 /* [out] */ BOOL *active) = 0;
4526 virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime(
4527 /* [in] */ BMDTimeScale desiredTimeScale,
4528 /* [out] */ BMDTimeValue *streamTime,
4529 /* [out] */ double *playbackSpeed) = 0;
4531 virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus(
4532 /* [out] */ BMDReferenceStatus *referenceStatus) = 0;
4534 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
4535 /* [in] */ BMDTimeScale desiredTimeScale,
4536 /* [out] */ BMDTimeValue *hardwareTime,
4537 /* [out] */ BMDTimeValue *timeInFrame,
4538 /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
4542 #else /* C style interface */
4544 typedef struct IDeckLinkOutputVtbl
4548 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4549 IDeckLinkOutput * This,
4550 /* [in] */ REFIID riid,
4551 /* [annotation][iid_is][out] */
4552 __RPC__deref_out void **ppvObject);
4554 ULONG ( STDMETHODCALLTYPE *AddRef )(
4555 IDeckLinkOutput * This);
4557 ULONG ( STDMETHODCALLTYPE *Release )(
4558 IDeckLinkOutput * This);
4560 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
4561 IDeckLinkOutput * This,
4562 /* [in] */ BMDDisplayMode displayMode,
4563 /* [in] */ BMDPixelFormat pixelFormat,
4564 /* [in] */ BMDVideoOutputFlags flags,
4565 /* [out] */ BMDDisplayModeSupport *result,
4566 /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
4568 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
4569 IDeckLinkOutput * This,
4570 /* [out] */ IDeckLinkDisplayModeIterator **iterator);
4572 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
4573 IDeckLinkOutput * This,
4574 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
4576 HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
4577 IDeckLinkOutput * This,
4578 /* [in] */ BMDDisplayMode displayMode,
4579 /* [in] */ BMDVideoOutputFlags flags);
4581 HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
4582 IDeckLinkOutput * This);
4584 HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
4585 IDeckLinkOutput * This,
4586 /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
4588 HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
4589 IDeckLinkOutput * This,
4590 /* [in] */ long width,
4591 /* [in] */ long height,
4592 /* [in] */ long rowBytes,
4593 /* [in] */ BMDPixelFormat pixelFormat,
4594 /* [in] */ BMDFrameFlags flags,
4595 /* [out] */ IDeckLinkMutableVideoFrame **outFrame);
4597 HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(
4598 IDeckLinkOutput * This,
4599 /* [in] */ BMDPixelFormat pixelFormat,
4600 /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
4602 HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
4603 IDeckLinkOutput * This,
4604 /* [in] */ IDeckLinkVideoFrame *theFrame);
4606 HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
4607 IDeckLinkOutput * This,
4608 /* [in] */ IDeckLinkVideoFrame *theFrame,
4609 /* [in] */ BMDTimeValue displayTime,
4610 /* [in] */ BMDTimeValue displayDuration,
4611 /* [in] */ BMDTimeScale timeScale);
4613 HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
4614 IDeckLinkOutput * This,
4615 /* [in] */ IDeckLinkVideoOutputCallback *theCallback);
4617 HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(
4618 IDeckLinkOutput * This,
4619 /* [out] */ unsigned long *bufferedFrameCount);
4621 HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
4622 IDeckLinkOutput * This,
4623 /* [in] */ BMDAudioSampleRate sampleRate,
4624 /* [in] */ BMDAudioSampleType sampleType,
4625 /* [in] */ unsigned long channelCount,
4626 /* [in] */ BMDAudioOutputStreamType streamType);
4628 HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
4629 IDeckLinkOutput * This);
4631 HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
4632 IDeckLinkOutput * This,
4633 /* [in] */ void *buffer,
4634 /* [in] */ unsigned long sampleFrameCount,
4635 /* [out] */ unsigned long *sampleFramesWritten);
4637 HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
4638 IDeckLinkOutput * This);
4640 HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
4641 IDeckLinkOutput * This);
4643 HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
4644 IDeckLinkOutput * This,
4645 /* [in] */ void *buffer,
4646 /* [in] */ unsigned long sampleFrameCount,
4647 /* [in] */ BMDTimeValue streamTime,
4648 /* [in] */ BMDTimeScale timeScale,
4649 /* [out] */ unsigned long *sampleFramesWritten);
4651 HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
4652 IDeckLinkOutput * This,
4653 /* [out] */ unsigned long *bufferedSampleFrameCount);
4655 HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
4656 IDeckLinkOutput * This);
4658 HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
4659 IDeckLinkOutput * This,
4660 /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
4662 HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
4663 IDeckLinkOutput * This,
4664 /* [in] */ BMDTimeValue playbackStartTime,
4665 /* [in] */ BMDTimeScale timeScale,
4666 /* [in] */ double playbackSpeed);
4668 HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
4669 IDeckLinkOutput * This,
4670 /* [in] */ BMDTimeValue stopPlaybackAtTime,
4671 /* [out] */ BMDTimeValue *actualStopTime,
4672 /* [in] */ BMDTimeScale timeScale);
4674 HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(
4675 IDeckLinkOutput * This,
4676 /* [out] */ BOOL *active);
4678 HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )(
4679 IDeckLinkOutput * This,
4680 /* [in] */ BMDTimeScale desiredTimeScale,
4681 /* [out] */ BMDTimeValue *streamTime,
4682 /* [out] */ double *playbackSpeed);
4684 HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )(
4685 IDeckLinkOutput * This,
4686 /* [out] */ BMDReferenceStatus *referenceStatus);
4688 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
4689 IDeckLinkOutput * This,
4690 /* [in] */ BMDTimeScale desiredTimeScale,
4691 /* [out] */ BMDTimeValue *hardwareTime,
4692 /* [out] */ BMDTimeValue *timeInFrame,
4693 /* [out] */ BMDTimeValue *ticksPerFrame);
4696 } IDeckLinkOutputVtbl;
4698 interface IDeckLinkOutput
4700 CONST_VTBL struct IDeckLinkOutputVtbl *lpVtbl;
4708 #define IDeckLinkOutput_QueryInterface(This,riid,ppvObject) \
4709 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4711 #define IDeckLinkOutput_AddRef(This) \
4712 ( (This)->lpVtbl -> AddRef(This) )
4714 #define IDeckLinkOutput_Release(This) \
4715 ( (This)->lpVtbl -> Release(This) )
4718 #define IDeckLinkOutput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) \
4719 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )
4721 #define IDeckLinkOutput_GetDisplayModeIterator(This,iterator) \
4722 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
4724 #define IDeckLinkOutput_SetScreenPreviewCallback(This,previewCallback) \
4725 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
4727 #define IDeckLinkOutput_EnableVideoOutput(This,displayMode,flags) \
4728 ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )
4730 #define IDeckLinkOutput_DisableVideoOutput(This) \
4731 ( (This)->lpVtbl -> DisableVideoOutput(This) )
4733 #define IDeckLinkOutput_SetVideoOutputFrameMemoryAllocator(This,theAllocator) \
4734 ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
4736 #define IDeckLinkOutput_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \
4737 ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
4739 #define IDeckLinkOutput_CreateAncillaryData(This,pixelFormat,outBuffer) \
4740 ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )
4742 #define IDeckLinkOutput_DisplayVideoFrameSync(This,theFrame) \
4743 ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
4745 #define IDeckLinkOutput_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \
4746 ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
4748 #define IDeckLinkOutput_SetScheduledFrameCompletionCallback(This,theCallback) \
4749 ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
4751 #define IDeckLinkOutput_GetBufferedVideoFrameCount(This,bufferedFrameCount) \
4752 ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )
4754 #define IDeckLinkOutput_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) \
4755 ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )
4757 #define IDeckLinkOutput_DisableAudioOutput(This) \
4758 ( (This)->lpVtbl -> DisableAudioOutput(This) )
4760 #define IDeckLinkOutput_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \
4761 ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
4763 #define IDeckLinkOutput_BeginAudioPreroll(This) \
4764 ( (This)->lpVtbl -> BeginAudioPreroll(This) )
4766 #define IDeckLinkOutput_EndAudioPreroll(This) \
4767 ( (This)->lpVtbl -> EndAudioPreroll(This) )
4769 #define IDeckLinkOutput_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) \
4770 ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
4772 #define IDeckLinkOutput_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \
4773 ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )
4775 #define IDeckLinkOutput_FlushBufferedAudioSamples(This) \
4776 ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
4778 #define IDeckLinkOutput_SetAudioCallback(This,theCallback) \
4779 ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
4781 #define IDeckLinkOutput_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \
4782 ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
4784 #define IDeckLinkOutput_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \
4785 ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
4787 #define IDeckLinkOutput_IsScheduledPlaybackRunning(This,active) \
4788 ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )
4790 #define IDeckLinkOutput_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) \
4791 ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) )
4793 #define IDeckLinkOutput_GetReferenceStatus(This,referenceStatus) \
4794 ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) )
4796 #define IDeckLinkOutput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \
4797 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
4799 #endif /* COBJMACROS */
4802 #endif /* C style interface */
4807 #endif /* __IDeckLinkOutput_INTERFACE_DEFINED__ */
4810 #ifndef __IDeckLinkInput_INTERFACE_DEFINED__
4811 #define __IDeckLinkInput_INTERFACE_DEFINED__
4813 /* interface IDeckLinkInput */
4814 /* [helpstring][uuid][object] */
4817 EXTERN_C const IID IID_IDeckLinkInput;
4819 #if defined(__cplusplus) && !defined(CINTERFACE)
4821 MIDL_INTERFACE("AF22762B-DFAC-4846-AA79-FA8883560995")
4822 IDeckLinkInput : public IUnknown
4825 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
4826 /* [in] */ BMDDisplayMode displayMode,
4827 /* [in] */ BMDPixelFormat pixelFormat,
4828 /* [in] */ BMDVideoInputFlags flags,
4829 /* [out] */ BMDDisplayModeSupport *result,
4830 /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
4832 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
4833 /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
4835 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
4836 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
4838 virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
4839 /* [in] */ BMDDisplayMode displayMode,
4840 /* [in] */ BMDPixelFormat pixelFormat,
4841 /* [in] */ BMDVideoInputFlags flags) = 0;
4843 virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
4845 virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(
4846 /* [out] */ unsigned long *availableFrameCount) = 0;
4848 virtual HRESULT STDMETHODCALLTYPE SetVideoInputFrameMemoryAllocator(
4849 /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
4851 virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
4852 /* [in] */ BMDAudioSampleRate sampleRate,
4853 /* [in] */ BMDAudioSampleType sampleType,
4854 /* [in] */ unsigned long channelCount) = 0;
4856 virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
4858 virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
4859 /* [out] */ unsigned long *availableSampleFrameCount) = 0;
4861 virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
4863 virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
4865 virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
4867 virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
4869 virtual HRESULT STDMETHODCALLTYPE SetCallback(
4870 /* [in] */ IDeckLinkInputCallback *theCallback) = 0;
4872 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
4873 /* [in] */ BMDTimeScale desiredTimeScale,
4874 /* [out] */ BMDTimeValue *hardwareTime,
4875 /* [out] */ BMDTimeValue *timeInFrame,
4876 /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
4880 #else /* C style interface */
4882 typedef struct IDeckLinkInputVtbl
4886 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4887 IDeckLinkInput * This,
4888 /* [in] */ REFIID riid,
4889 /* [annotation][iid_is][out] */
4890 __RPC__deref_out void **ppvObject);
4892 ULONG ( STDMETHODCALLTYPE *AddRef )(
4893 IDeckLinkInput * This);
4895 ULONG ( STDMETHODCALLTYPE *Release )(
4896 IDeckLinkInput * This);
4898 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
4899 IDeckLinkInput * This,
4900 /* [in] */ BMDDisplayMode displayMode,
4901 /* [in] */ BMDPixelFormat pixelFormat,
4902 /* [in] */ BMDVideoInputFlags flags,
4903 /* [out] */ BMDDisplayModeSupport *result,
4904 /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
4906 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
4907 IDeckLinkInput * This,
4908 /* [out] */ IDeckLinkDisplayModeIterator **iterator);
4910 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
4911 IDeckLinkInput * This,
4912 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
4914 HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
4915 IDeckLinkInput * This,
4916 /* [in] */ BMDDisplayMode displayMode,
4917 /* [in] */ BMDPixelFormat pixelFormat,
4918 /* [in] */ BMDVideoInputFlags flags);
4920 HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
4921 IDeckLinkInput * This);
4923 HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(
4924 IDeckLinkInput * This,
4925 /* [out] */ unsigned long *availableFrameCount);
4927 HRESULT ( STDMETHODCALLTYPE *SetVideoInputFrameMemoryAllocator )(
4928 IDeckLinkInput * This,
4929 /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
4931 HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
4932 IDeckLinkInput * This,
4933 /* [in] */ BMDAudioSampleRate sampleRate,
4934 /* [in] */ BMDAudioSampleType sampleType,
4935 /* [in] */ unsigned long channelCount);
4937 HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
4938 IDeckLinkInput * This);
4940 HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
4941 IDeckLinkInput * This,
4942 /* [out] */ unsigned long *availableSampleFrameCount);
4944 HRESULT ( STDMETHODCALLTYPE *StartStreams )(
4945 IDeckLinkInput * This);
4947 HRESULT ( STDMETHODCALLTYPE *StopStreams )(
4948 IDeckLinkInput * This);
4950 HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
4951 IDeckLinkInput * This);
4953 HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
4954 IDeckLinkInput * This);
4956 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
4957 IDeckLinkInput * This,
4958 /* [in] */ IDeckLinkInputCallback *theCallback);
4960 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
4961 IDeckLinkInput * This,
4962 /* [in] */ BMDTimeScale desiredTimeScale,
4963 /* [out] */ BMDTimeValue *hardwareTime,
4964 /* [out] */ BMDTimeValue *timeInFrame,
4965 /* [out] */ BMDTimeValue *ticksPerFrame);
4968 } IDeckLinkInputVtbl;
4970 interface IDeckLinkInput
4972 CONST_VTBL struct IDeckLinkInputVtbl *lpVtbl;
4980 #define IDeckLinkInput_QueryInterface(This,riid,ppvObject) \
4981 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4983 #define IDeckLinkInput_AddRef(This) \
4984 ( (This)->lpVtbl -> AddRef(This) )
4986 #define IDeckLinkInput_Release(This) \
4987 ( (This)->lpVtbl -> Release(This) )
4990 #define IDeckLinkInput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) \
4991 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )
4993 #define IDeckLinkInput_GetDisplayModeIterator(This,iterator) \
4994 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
4996 #define IDeckLinkInput_SetScreenPreviewCallback(This,previewCallback) \
4997 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
4999 #define IDeckLinkInput_EnableVideoInput(This,displayMode,pixelFormat,flags) \
5000 ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
5002 #define IDeckLinkInput_DisableVideoInput(This) \
5003 ( (This)->lpVtbl -> DisableVideoInput(This) )
5005 #define IDeckLinkInput_GetAvailableVideoFrameCount(This,availableFrameCount) \
5006 ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )
5008 #define IDeckLinkInput_SetVideoInputFrameMemoryAllocator(This,theAllocator) \
5009 ( (This)->lpVtbl -> SetVideoInputFrameMemoryAllocator(This,theAllocator) )
5011 #define IDeckLinkInput_EnableAudioInput(This,sampleRate,sampleType,channelCount) \
5012 ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
5014 #define IDeckLinkInput_DisableAudioInput(This) \
5015 ( (This)->lpVtbl -> DisableAudioInput(This) )
5017 #define IDeckLinkInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) \
5018 ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
5020 #define IDeckLinkInput_StartStreams(This) \
5021 ( (This)->lpVtbl -> StartStreams(This) )
5023 #define IDeckLinkInput_StopStreams(This) \
5024 ( (This)->lpVtbl -> StopStreams(This) )
5026 #define IDeckLinkInput_PauseStreams(This) \
5027 ( (This)->lpVtbl -> PauseStreams(This) )
5029 #define IDeckLinkInput_FlushStreams(This) \
5030 ( (This)->lpVtbl -> FlushStreams(This) )
5032 #define IDeckLinkInput_SetCallback(This,theCallback) \
5033 ( (This)->lpVtbl -> SetCallback(This,theCallback) )
5035 #define IDeckLinkInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \
5036 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
5038 #endif /* COBJMACROS */
5041 #endif /* C style interface */
5046 #endif /* __IDeckLinkInput_INTERFACE_DEFINED__ */
5049 #ifndef __IDeckLinkVideoFrame_INTERFACE_DEFINED__
5050 #define __IDeckLinkVideoFrame_INTERFACE_DEFINED__
5052 /* interface IDeckLinkVideoFrame */
5053 /* [helpstring][local][uuid][object] */
5056 EXTERN_C const IID IID_IDeckLinkVideoFrame;
5058 #if defined(__cplusplus) && !defined(CINTERFACE)
5060 MIDL_INTERFACE("3F716FE0-F023-4111-BE5D-EF4414C05B17")
5061 IDeckLinkVideoFrame : public IUnknown
5064 virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
5066 virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
5068 virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;
5070 virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
5072 virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;
5074 virtual HRESULT STDMETHODCALLTYPE GetBytes(
5075 /* [out] */ void **buffer) = 0;
5077 virtual HRESULT STDMETHODCALLTYPE GetTimecode(
5078 /* [in] */ BMDTimecodeFormat format,
5079 /* [out] */ IDeckLinkTimecode **timecode) = 0;
5081 virtual HRESULT STDMETHODCALLTYPE GetAncillaryData(
5082 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;
5086 #else /* C style interface */
5088 typedef struct IDeckLinkVideoFrameVtbl
5092 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5093 IDeckLinkVideoFrame * This,
5094 /* [in] */ REFIID riid,
5095 /* [annotation][iid_is][out] */
5096 __RPC__deref_out void **ppvObject);
5098 ULONG ( STDMETHODCALLTYPE *AddRef )(
5099 IDeckLinkVideoFrame * This);
5101 ULONG ( STDMETHODCALLTYPE *Release )(
5102 IDeckLinkVideoFrame * This);
5104 long ( STDMETHODCALLTYPE *GetWidth )(
5105 IDeckLinkVideoFrame * This);
5107 long ( STDMETHODCALLTYPE *GetHeight )(
5108 IDeckLinkVideoFrame * This);
5110 long ( STDMETHODCALLTYPE *GetRowBytes )(
5111 IDeckLinkVideoFrame * This);
5113 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
5114 IDeckLinkVideoFrame * This);
5116 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
5117 IDeckLinkVideoFrame * This);
5119 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
5120 IDeckLinkVideoFrame * This,
5121 /* [out] */ void **buffer);
5123 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
5124 IDeckLinkVideoFrame * This,
5125 /* [in] */ BMDTimecodeFormat format,
5126 /* [out] */ IDeckLinkTimecode **timecode);
5128 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
5129 IDeckLinkVideoFrame * This,
5130 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
5133 } IDeckLinkVideoFrameVtbl;
5135 interface IDeckLinkVideoFrame
5137 CONST_VTBL struct IDeckLinkVideoFrameVtbl *lpVtbl;
5145 #define IDeckLinkVideoFrame_QueryInterface(This,riid,ppvObject) \
5146 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5148 #define IDeckLinkVideoFrame_AddRef(This) \
5149 ( (This)->lpVtbl -> AddRef(This) )
5151 #define IDeckLinkVideoFrame_Release(This) \
5152 ( (This)->lpVtbl -> Release(This) )
5155 #define IDeckLinkVideoFrame_GetWidth(This) \
5156 ( (This)->lpVtbl -> GetWidth(This) )
5158 #define IDeckLinkVideoFrame_GetHeight(This) \
5159 ( (This)->lpVtbl -> GetHeight(This) )
5161 #define IDeckLinkVideoFrame_GetRowBytes(This) \
5162 ( (This)->lpVtbl -> GetRowBytes(This) )
5164 #define IDeckLinkVideoFrame_GetPixelFormat(This) \
5165 ( (This)->lpVtbl -> GetPixelFormat(This) )
5167 #define IDeckLinkVideoFrame_GetFlags(This) \
5168 ( (This)->lpVtbl -> GetFlags(This) )
5170 #define IDeckLinkVideoFrame_GetBytes(This,buffer) \
5171 ( (This)->lpVtbl -> GetBytes(This,buffer) )
5173 #define IDeckLinkVideoFrame_GetTimecode(This,format,timecode) \
5174 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
5176 #define IDeckLinkVideoFrame_GetAncillaryData(This,ancillary) \
5177 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
5179 #endif /* COBJMACROS */
5182 #endif /* C style interface */
5187 #endif /* __IDeckLinkVideoFrame_INTERFACE_DEFINED__ */
5190 #ifndef __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__
5191 #define __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__
5193 /* interface IDeckLinkMutableVideoFrame */
5194 /* [helpstring][local][uuid][object] */
5197 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame;
5199 #if defined(__cplusplus) && !defined(CINTERFACE)
5201 MIDL_INTERFACE("69E2639F-40DA-4E19-B6F2-20ACE815C390")
5202 IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame
5205 virtual HRESULT STDMETHODCALLTYPE SetFlags(
5206 /* [in] */ BMDFrameFlags newFlags) = 0;
5208 virtual HRESULT STDMETHODCALLTYPE SetTimecode(
5209 /* [in] */ BMDTimecodeFormat format,
5210 /* [in] */ IDeckLinkTimecode *timecode) = 0;
5212 virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents(
5213 /* [in] */ BMDTimecodeFormat format,
5214 /* [in] */ unsigned char hours,
5215 /* [in] */ unsigned char minutes,
5216 /* [in] */ unsigned char seconds,
5217 /* [in] */ unsigned char frames,
5218 /* [in] */ BMDTimecodeFlags flags) = 0;
5220 virtual HRESULT STDMETHODCALLTYPE SetAncillaryData(
5221 /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;
5223 virtual HRESULT STDMETHODCALLTYPE SetTimecodeUserBits(
5224 /* [in] */ BMDTimecodeFormat format,
5225 /* [in] */ BMDTimecodeUserBits userBits) = 0;
5229 #else /* C style interface */
5231 typedef struct IDeckLinkMutableVideoFrameVtbl
5235 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5236 IDeckLinkMutableVideoFrame * This,
5237 /* [in] */ REFIID riid,
5238 /* [annotation][iid_is][out] */
5239 __RPC__deref_out void **ppvObject);
5241 ULONG ( STDMETHODCALLTYPE *AddRef )(
5242 IDeckLinkMutableVideoFrame * This);
5244 ULONG ( STDMETHODCALLTYPE *Release )(
5245 IDeckLinkMutableVideoFrame * This);
5247 long ( STDMETHODCALLTYPE *GetWidth )(
5248 IDeckLinkMutableVideoFrame * This);
5250 long ( STDMETHODCALLTYPE *GetHeight )(
5251 IDeckLinkMutableVideoFrame * This);
5253 long ( STDMETHODCALLTYPE *GetRowBytes )(
5254 IDeckLinkMutableVideoFrame * This);
5256 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
5257 IDeckLinkMutableVideoFrame * This);
5259 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
5260 IDeckLinkMutableVideoFrame * This);
5262 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
5263 IDeckLinkMutableVideoFrame * This,
5264 /* [out] */ void **buffer);
5266 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
5267 IDeckLinkMutableVideoFrame * This,
5268 /* [in] */ BMDTimecodeFormat format,
5269 /* [out] */ IDeckLinkTimecode **timecode);
5271 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
5272 IDeckLinkMutableVideoFrame * This,
5273 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
5275 HRESULT ( STDMETHODCALLTYPE *SetFlags )(
5276 IDeckLinkMutableVideoFrame * This,
5277 /* [in] */ BMDFrameFlags newFlags);
5279 HRESULT ( STDMETHODCALLTYPE *SetTimecode )(
5280 IDeckLinkMutableVideoFrame * This,
5281 /* [in] */ BMDTimecodeFormat format,
5282 /* [in] */ IDeckLinkTimecode *timecode);
5284 HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )(
5285 IDeckLinkMutableVideoFrame * This,
5286 /* [in] */ BMDTimecodeFormat format,
5287 /* [in] */ unsigned char hours,
5288 /* [in] */ unsigned char minutes,
5289 /* [in] */ unsigned char seconds,
5290 /* [in] */ unsigned char frames,
5291 /* [in] */ BMDTimecodeFlags flags);
5293 HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )(
5294 IDeckLinkMutableVideoFrame * This,
5295 /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);
5297 HRESULT ( STDMETHODCALLTYPE *SetTimecodeUserBits )(
5298 IDeckLinkMutableVideoFrame * This,
5299 /* [in] */ BMDTimecodeFormat format,
5300 /* [in] */ BMDTimecodeUserBits userBits);
5303 } IDeckLinkMutableVideoFrameVtbl;
5305 interface IDeckLinkMutableVideoFrame
5307 CONST_VTBL struct IDeckLinkMutableVideoFrameVtbl *lpVtbl;
5315 #define IDeckLinkMutableVideoFrame_QueryInterface(This,riid,ppvObject) \
5316 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5318 #define IDeckLinkMutableVideoFrame_AddRef(This) \
5319 ( (This)->lpVtbl -> AddRef(This) )
5321 #define IDeckLinkMutableVideoFrame_Release(This) \
5322 ( (This)->lpVtbl -> Release(This) )
5325 #define IDeckLinkMutableVideoFrame_GetWidth(This) \
5326 ( (This)->lpVtbl -> GetWidth(This) )
5328 #define IDeckLinkMutableVideoFrame_GetHeight(This) \
5329 ( (This)->lpVtbl -> GetHeight(This) )
5331 #define IDeckLinkMutableVideoFrame_GetRowBytes(This) \
5332 ( (This)->lpVtbl -> GetRowBytes(This) )
5334 #define IDeckLinkMutableVideoFrame_GetPixelFormat(This) \
5335 ( (This)->lpVtbl -> GetPixelFormat(This) )
5337 #define IDeckLinkMutableVideoFrame_GetFlags(This) \
5338 ( (This)->lpVtbl -> GetFlags(This) )
5340 #define IDeckLinkMutableVideoFrame_GetBytes(This,buffer) \
5341 ( (This)->lpVtbl -> GetBytes(This,buffer) )
5343 #define IDeckLinkMutableVideoFrame_GetTimecode(This,format,timecode) \
5344 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
5346 #define IDeckLinkMutableVideoFrame_GetAncillaryData(This,ancillary) \
5347 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
5350 #define IDeckLinkMutableVideoFrame_SetFlags(This,newFlags) \
5351 ( (This)->lpVtbl -> SetFlags(This,newFlags) )
5353 #define IDeckLinkMutableVideoFrame_SetTimecode(This,format,timecode) \
5354 ( (This)->lpVtbl -> SetTimecode(This,format,timecode) )
5356 #define IDeckLinkMutableVideoFrame_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) \
5357 ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) )
5359 #define IDeckLinkMutableVideoFrame_SetAncillaryData(This,ancillary) \
5360 ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) )
5362 #define IDeckLinkMutableVideoFrame_SetTimecodeUserBits(This,format,userBits) \
5363 ( (This)->lpVtbl -> SetTimecodeUserBits(This,format,userBits) )
5365 #endif /* COBJMACROS */
5368 #endif /* C style interface */
5373 #endif /* __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ */
5376 #ifndef __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__
5377 #define __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__
5379 /* interface IDeckLinkVideoFrame3DExtensions */
5380 /* [helpstring][local][uuid][object] */
5383 EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions;
5385 #if defined(__cplusplus) && !defined(CINTERFACE)
5387 MIDL_INTERFACE("DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7")
5388 IDeckLinkVideoFrame3DExtensions : public IUnknown
5391 virtual BMDVideo3DPackingFormat STDMETHODCALLTYPE Get3DPackingFormat( void) = 0;
5393 virtual HRESULT STDMETHODCALLTYPE GetFrameForRightEye(
5394 /* [out] */ IDeckLinkVideoFrame **rightEyeFrame) = 0;
5398 #else /* C style interface */
5400 typedef struct IDeckLinkVideoFrame3DExtensionsVtbl
5404 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5405 IDeckLinkVideoFrame3DExtensions * This,
5406 /* [in] */ REFIID riid,
5407 /* [annotation][iid_is][out] */
5408 __RPC__deref_out void **ppvObject);
5410 ULONG ( STDMETHODCALLTYPE *AddRef )(
5411 IDeckLinkVideoFrame3DExtensions * This);
5413 ULONG ( STDMETHODCALLTYPE *Release )(
5414 IDeckLinkVideoFrame3DExtensions * This);
5416 BMDVideo3DPackingFormat ( STDMETHODCALLTYPE *Get3DPackingFormat )(
5417 IDeckLinkVideoFrame3DExtensions * This);
5419 HRESULT ( STDMETHODCALLTYPE *GetFrameForRightEye )(
5420 IDeckLinkVideoFrame3DExtensions * This,
5421 /* [out] */ IDeckLinkVideoFrame **rightEyeFrame);
5424 } IDeckLinkVideoFrame3DExtensionsVtbl;
5426 interface IDeckLinkVideoFrame3DExtensions
5428 CONST_VTBL struct IDeckLinkVideoFrame3DExtensionsVtbl *lpVtbl;
5436 #define IDeckLinkVideoFrame3DExtensions_QueryInterface(This,riid,ppvObject) \
5437 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5439 #define IDeckLinkVideoFrame3DExtensions_AddRef(This) \
5440 ( (This)->lpVtbl -> AddRef(This) )
5442 #define IDeckLinkVideoFrame3DExtensions_Release(This) \
5443 ( (This)->lpVtbl -> Release(This) )
5446 #define IDeckLinkVideoFrame3DExtensions_Get3DPackingFormat(This) \
5447 ( (This)->lpVtbl -> Get3DPackingFormat(This) )
5449 #define IDeckLinkVideoFrame3DExtensions_GetFrameForRightEye(This,rightEyeFrame) \
5450 ( (This)->lpVtbl -> GetFrameForRightEye(This,rightEyeFrame) )
5452 #endif /* COBJMACROS */
5455 #endif /* C style interface */
5460 #endif /* __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ */
5463 #ifndef __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__
5464 #define __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__
5466 /* interface IDeckLinkVideoInputFrame */
5467 /* [helpstring][local][uuid][object] */
5470 EXTERN_C const IID IID_IDeckLinkVideoInputFrame;
5472 #if defined(__cplusplus) && !defined(CINTERFACE)
5474 MIDL_INTERFACE("05CFE374-537C-4094-9A57-680525118F44")
5475 IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame
5478 virtual HRESULT STDMETHODCALLTYPE GetStreamTime(
5479 /* [out] */ BMDTimeValue *frameTime,
5480 /* [out] */ BMDTimeValue *frameDuration,
5481 /* [in] */ BMDTimeScale timeScale) = 0;
5483 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp(
5484 /* [in] */ BMDTimeScale timeScale,
5485 /* [out] */ BMDTimeValue *frameTime,
5486 /* [out] */ BMDTimeValue *frameDuration) = 0;
5490 #else /* C style interface */
5492 typedef struct IDeckLinkVideoInputFrameVtbl
5496 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5497 IDeckLinkVideoInputFrame * This,
5498 /* [in] */ REFIID riid,
5499 /* [annotation][iid_is][out] */
5500 __RPC__deref_out void **ppvObject);
5502 ULONG ( STDMETHODCALLTYPE *AddRef )(
5503 IDeckLinkVideoInputFrame * This);
5505 ULONG ( STDMETHODCALLTYPE *Release )(
5506 IDeckLinkVideoInputFrame * This);
5508 long ( STDMETHODCALLTYPE *GetWidth )(
5509 IDeckLinkVideoInputFrame * This);
5511 long ( STDMETHODCALLTYPE *GetHeight )(
5512 IDeckLinkVideoInputFrame * This);
5514 long ( STDMETHODCALLTYPE *GetRowBytes )(
5515 IDeckLinkVideoInputFrame * This);
5517 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
5518 IDeckLinkVideoInputFrame * This);
5520 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
5521 IDeckLinkVideoInputFrame * This);
5523 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
5524 IDeckLinkVideoInputFrame * This,
5525 /* [out] */ void **buffer);
5527 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
5528 IDeckLinkVideoInputFrame * This,
5529 /* [in] */ BMDTimecodeFormat format,
5530 /* [out] */ IDeckLinkTimecode **timecode);
5532 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
5533 IDeckLinkVideoInputFrame * This,
5534 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
5536 HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
5537 IDeckLinkVideoInputFrame * This,
5538 /* [out] */ BMDTimeValue *frameTime,
5539 /* [out] */ BMDTimeValue *frameDuration,
5540 /* [in] */ BMDTimeScale timeScale);
5542 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )(
5543 IDeckLinkVideoInputFrame * This,
5544 /* [in] */ BMDTimeScale timeScale,
5545 /* [out] */ BMDTimeValue *frameTime,
5546 /* [out] */ BMDTimeValue *frameDuration);
5549 } IDeckLinkVideoInputFrameVtbl;
5551 interface IDeckLinkVideoInputFrame
5553 CONST_VTBL struct IDeckLinkVideoInputFrameVtbl *lpVtbl;
5561 #define IDeckLinkVideoInputFrame_QueryInterface(This,riid,ppvObject) \
5562 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5564 #define IDeckLinkVideoInputFrame_AddRef(This) \
5565 ( (This)->lpVtbl -> AddRef(This) )
5567 #define IDeckLinkVideoInputFrame_Release(This) \
5568 ( (This)->lpVtbl -> Release(This) )
5571 #define IDeckLinkVideoInputFrame_GetWidth(This) \
5572 ( (This)->lpVtbl -> GetWidth(This) )
5574 #define IDeckLinkVideoInputFrame_GetHeight(This) \
5575 ( (This)->lpVtbl -> GetHeight(This) )
5577 #define IDeckLinkVideoInputFrame_GetRowBytes(This) \
5578 ( (This)->lpVtbl -> GetRowBytes(This) )
5580 #define IDeckLinkVideoInputFrame_GetPixelFormat(This) \
5581 ( (This)->lpVtbl -> GetPixelFormat(This) )
5583 #define IDeckLinkVideoInputFrame_GetFlags(This) \
5584 ( (This)->lpVtbl -> GetFlags(This) )
5586 #define IDeckLinkVideoInputFrame_GetBytes(This,buffer) \
5587 ( (This)->lpVtbl -> GetBytes(This,buffer) )
5589 #define IDeckLinkVideoInputFrame_GetTimecode(This,format,timecode) \
5590 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
5592 #define IDeckLinkVideoInputFrame_GetAncillaryData(This,ancillary) \
5593 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
5596 #define IDeckLinkVideoInputFrame_GetStreamTime(This,frameTime,frameDuration,timeScale) \
5597 ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) )
5599 #define IDeckLinkVideoInputFrame_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) \
5600 ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) )
5602 #endif /* COBJMACROS */
5605 #endif /* C style interface */
5610 #endif /* __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ */
5613 #ifndef __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__
5614 #define __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__
5616 /* interface IDeckLinkVideoFrameAncillary */
5617 /* [helpstring][local][uuid][object] */
5620 EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;
5622 #if defined(__cplusplus) && !defined(CINTERFACE)
5624 MIDL_INTERFACE("732E723C-D1A4-4E29-9E8E-4A88797A0004")
5625 IDeckLinkVideoFrameAncillary : public IUnknown
5628 virtual HRESULT STDMETHODCALLTYPE GetBufferForVerticalBlankingLine(
5629 /* [in] */ unsigned long lineNumber,
5630 /* [out] */ void **buffer) = 0;
5632 virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
5634 virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
5638 #else /* C style interface */
5640 typedef struct IDeckLinkVideoFrameAncillaryVtbl
5644 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5645 IDeckLinkVideoFrameAncillary * This,
5646 /* [in] */ REFIID riid,
5647 /* [annotation][iid_is][out] */
5648 __RPC__deref_out void **ppvObject);
5650 ULONG ( STDMETHODCALLTYPE *AddRef )(
5651 IDeckLinkVideoFrameAncillary * This);
5653 ULONG ( STDMETHODCALLTYPE *Release )(
5654 IDeckLinkVideoFrameAncillary * This);
5656 HRESULT ( STDMETHODCALLTYPE *GetBufferForVerticalBlankingLine )(
5657 IDeckLinkVideoFrameAncillary * This,
5658 /* [in] */ unsigned long lineNumber,
5659 /* [out] */ void **buffer);
5661 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
5662 IDeckLinkVideoFrameAncillary * This);
5664 BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(
5665 IDeckLinkVideoFrameAncillary * This);
5668 } IDeckLinkVideoFrameAncillaryVtbl;
5670 interface IDeckLinkVideoFrameAncillary
5672 CONST_VTBL struct IDeckLinkVideoFrameAncillaryVtbl *lpVtbl;
5680 #define IDeckLinkVideoFrameAncillary_QueryInterface(This,riid,ppvObject) \
5681 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5683 #define IDeckLinkVideoFrameAncillary_AddRef(This) \
5684 ( (This)->lpVtbl -> AddRef(This) )
5686 #define IDeckLinkVideoFrameAncillary_Release(This) \
5687 ( (This)->lpVtbl -> Release(This) )
5690 #define IDeckLinkVideoFrameAncillary_GetBufferForVerticalBlankingLine(This,lineNumber,buffer) \
5691 ( (This)->lpVtbl -> GetBufferForVerticalBlankingLine(This,lineNumber,buffer) )
5693 #define IDeckLinkVideoFrameAncillary_GetPixelFormat(This) \
5694 ( (This)->lpVtbl -> GetPixelFormat(This) )
5696 #define IDeckLinkVideoFrameAncillary_GetDisplayMode(This) \
5697 ( (This)->lpVtbl -> GetDisplayMode(This) )
5699 #endif /* COBJMACROS */
5702 #endif /* C style interface */
5707 #endif /* __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ */
5710 #ifndef __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__
5711 #define __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__
5713 /* interface IDeckLinkAudioInputPacket */
5714 /* [helpstring][local][uuid][object] */
5717 EXTERN_C const IID IID_IDeckLinkAudioInputPacket;
5719 #if defined(__cplusplus) && !defined(CINTERFACE)
5721 MIDL_INTERFACE("E43D5870-2894-11DE-8C30-0800200C9A66")
5722 IDeckLinkAudioInputPacket : public IUnknown
5725 virtual long STDMETHODCALLTYPE GetSampleFrameCount( void) = 0;
5727 virtual HRESULT STDMETHODCALLTYPE GetBytes(
5728 /* [out] */ void **buffer) = 0;
5730 virtual HRESULT STDMETHODCALLTYPE GetPacketTime(
5731 /* [out] */ BMDTimeValue *packetTime,
5732 /* [in] */ BMDTimeScale timeScale) = 0;
5736 #else /* C style interface */
5738 typedef struct IDeckLinkAudioInputPacketVtbl
5742 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5743 IDeckLinkAudioInputPacket * This,
5744 /* [in] */ REFIID riid,
5745 /* [annotation][iid_is][out] */
5746 __RPC__deref_out void **ppvObject);
5748 ULONG ( STDMETHODCALLTYPE *AddRef )(
5749 IDeckLinkAudioInputPacket * This);
5751 ULONG ( STDMETHODCALLTYPE *Release )(
5752 IDeckLinkAudioInputPacket * This);
5754 long ( STDMETHODCALLTYPE *GetSampleFrameCount )(
5755 IDeckLinkAudioInputPacket * This);
5757 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
5758 IDeckLinkAudioInputPacket * This,
5759 /* [out] */ void **buffer);
5761 HRESULT ( STDMETHODCALLTYPE *GetPacketTime )(
5762 IDeckLinkAudioInputPacket * This,
5763 /* [out] */ BMDTimeValue *packetTime,
5764 /* [in] */ BMDTimeScale timeScale);
5767 } IDeckLinkAudioInputPacketVtbl;
5769 interface IDeckLinkAudioInputPacket
5771 CONST_VTBL struct IDeckLinkAudioInputPacketVtbl *lpVtbl;
5779 #define IDeckLinkAudioInputPacket_QueryInterface(This,riid,ppvObject) \
5780 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5782 #define IDeckLinkAudioInputPacket_AddRef(This) \
5783 ( (This)->lpVtbl -> AddRef(This) )
5785 #define IDeckLinkAudioInputPacket_Release(This) \
5786 ( (This)->lpVtbl -> Release(This) )
5789 #define IDeckLinkAudioInputPacket_GetSampleFrameCount(This) \
5790 ( (This)->lpVtbl -> GetSampleFrameCount(This) )
5792 #define IDeckLinkAudioInputPacket_GetBytes(This,buffer) \
5793 ( (This)->lpVtbl -> GetBytes(This,buffer) )
5795 #define IDeckLinkAudioInputPacket_GetPacketTime(This,packetTime,timeScale) \
5796 ( (This)->lpVtbl -> GetPacketTime(This,packetTime,timeScale) )
5798 #endif /* COBJMACROS */
5801 #endif /* C style interface */
5806 #endif /* __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ */
5809 #ifndef __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__
5810 #define __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__
5812 /* interface IDeckLinkScreenPreviewCallback */
5813 /* [helpstring][local][uuid][object] */
5816 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;
5818 #if defined(__cplusplus) && !defined(CINTERFACE)
5820 MIDL_INTERFACE("B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438")
5821 IDeckLinkScreenPreviewCallback : public IUnknown
5824 virtual HRESULT STDMETHODCALLTYPE DrawFrame(
5825 /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
5829 #else /* C style interface */
5831 typedef struct IDeckLinkScreenPreviewCallbackVtbl
5835 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5836 IDeckLinkScreenPreviewCallback * This,
5837 /* [in] */ REFIID riid,
5838 /* [annotation][iid_is][out] */
5839 __RPC__deref_out void **ppvObject);
5841 ULONG ( STDMETHODCALLTYPE *AddRef )(
5842 IDeckLinkScreenPreviewCallback * This);
5844 ULONG ( STDMETHODCALLTYPE *Release )(
5845 IDeckLinkScreenPreviewCallback * This);
5847 HRESULT ( STDMETHODCALLTYPE *DrawFrame )(
5848 IDeckLinkScreenPreviewCallback * This,
5849 /* [in] */ IDeckLinkVideoFrame *theFrame);
5852 } IDeckLinkScreenPreviewCallbackVtbl;
5854 interface IDeckLinkScreenPreviewCallback
5856 CONST_VTBL struct IDeckLinkScreenPreviewCallbackVtbl *lpVtbl;
5864 #define IDeckLinkScreenPreviewCallback_QueryInterface(This,riid,ppvObject) \
5865 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5867 #define IDeckLinkScreenPreviewCallback_AddRef(This) \
5868 ( (This)->lpVtbl -> AddRef(This) )
5870 #define IDeckLinkScreenPreviewCallback_Release(This) \
5871 ( (This)->lpVtbl -> Release(This) )
5874 #define IDeckLinkScreenPreviewCallback_DrawFrame(This,theFrame) \
5875 ( (This)->lpVtbl -> DrawFrame(This,theFrame) )
5877 #endif /* COBJMACROS */
5880 #endif /* C style interface */
5885 #endif /* __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ */
5888 #ifndef __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__
5889 #define __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__
5891 /* interface IDeckLinkGLScreenPreviewHelper */
5892 /* [helpstring][local][uuid][object] */
5895 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;
5897 #if defined(__cplusplus) && !defined(CINTERFACE)
5899 MIDL_INTERFACE("504E2209-CAC7-4C1A-9FB4-C5BB6274D22F")
5900 IDeckLinkGLScreenPreviewHelper : public IUnknown
5903 virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;
5905 virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;
5907 virtual HRESULT STDMETHODCALLTYPE SetFrame(
5908 /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
5910 virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat(
5911 /* [in] */ BMD3DPreviewFormat previewFormat) = 0;
5915 #else /* C style interface */
5917 typedef struct IDeckLinkGLScreenPreviewHelperVtbl
5921 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5922 IDeckLinkGLScreenPreviewHelper * This,
5923 /* [in] */ REFIID riid,
5924 /* [annotation][iid_is][out] */
5925 __RPC__deref_out void **ppvObject);
5927 ULONG ( STDMETHODCALLTYPE *AddRef )(
5928 IDeckLinkGLScreenPreviewHelper * This);
5930 ULONG ( STDMETHODCALLTYPE *Release )(
5931 IDeckLinkGLScreenPreviewHelper * This);
5933 HRESULT ( STDMETHODCALLTYPE *InitializeGL )(
5934 IDeckLinkGLScreenPreviewHelper * This);
5936 HRESULT ( STDMETHODCALLTYPE *PaintGL )(
5937 IDeckLinkGLScreenPreviewHelper * This);
5939 HRESULT ( STDMETHODCALLTYPE *SetFrame )(
5940 IDeckLinkGLScreenPreviewHelper * This,
5941 /* [in] */ IDeckLinkVideoFrame *theFrame);
5943 HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )(
5944 IDeckLinkGLScreenPreviewHelper * This,
5945 /* [in] */ BMD3DPreviewFormat previewFormat);
5948 } IDeckLinkGLScreenPreviewHelperVtbl;
5950 interface IDeckLinkGLScreenPreviewHelper
5952 CONST_VTBL struct IDeckLinkGLScreenPreviewHelperVtbl *lpVtbl;
5960 #define IDeckLinkGLScreenPreviewHelper_QueryInterface(This,riid,ppvObject) \
5961 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5963 #define IDeckLinkGLScreenPreviewHelper_AddRef(This) \
5964 ( (This)->lpVtbl -> AddRef(This) )
5966 #define IDeckLinkGLScreenPreviewHelper_Release(This) \
5967 ( (This)->lpVtbl -> Release(This) )
5970 #define IDeckLinkGLScreenPreviewHelper_InitializeGL(This) \
5971 ( (This)->lpVtbl -> InitializeGL(This) )
5973 #define IDeckLinkGLScreenPreviewHelper_PaintGL(This) \
5974 ( (This)->lpVtbl -> PaintGL(This) )
5976 #define IDeckLinkGLScreenPreviewHelper_SetFrame(This,theFrame) \
5977 ( (This)->lpVtbl -> SetFrame(This,theFrame) )
5979 #define IDeckLinkGLScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat) \
5980 ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) )
5982 #endif /* COBJMACROS */
5985 #endif /* C style interface */
5990 #endif /* __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ */
5993 #ifndef __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__
5994 #define __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__
5996 /* interface IDeckLinkDX9ScreenPreviewHelper */
5997 /* [helpstring][local][uuid][object] */
6000 EXTERN_C const IID IID_IDeckLinkDX9ScreenPreviewHelper;
6002 #if defined(__cplusplus) && !defined(CINTERFACE)
6004 MIDL_INTERFACE("2094B522-D1A1-40C0-9AC7-1C012218EF02")
6005 IDeckLinkDX9ScreenPreviewHelper : public IUnknown
6008 virtual HRESULT STDMETHODCALLTYPE Initialize(
6009 /* [in] */ void *device) = 0;
6011 virtual HRESULT STDMETHODCALLTYPE Render(
6012 /* [in] */ RECT *rc) = 0;
6014 virtual HRESULT STDMETHODCALLTYPE SetFrame(
6015 /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;
6017 virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat(
6018 /* [in] */ BMD3DPreviewFormat previewFormat) = 0;
6022 #else /* C style interface */
6024 typedef struct IDeckLinkDX9ScreenPreviewHelperVtbl
6028 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6029 IDeckLinkDX9ScreenPreviewHelper * This,
6030 /* [in] */ REFIID riid,
6031 /* [annotation][iid_is][out] */
6032 __RPC__deref_out void **ppvObject);
6034 ULONG ( STDMETHODCALLTYPE *AddRef )(
6035 IDeckLinkDX9ScreenPreviewHelper * This);
6037 ULONG ( STDMETHODCALLTYPE *Release )(
6038 IDeckLinkDX9ScreenPreviewHelper * This);
6040 HRESULT ( STDMETHODCALLTYPE *Initialize )(
6041 IDeckLinkDX9ScreenPreviewHelper * This,
6042 /* [in] */ void *device);
6044 HRESULT ( STDMETHODCALLTYPE *Render )(
6045 IDeckLinkDX9ScreenPreviewHelper * This,
6046 /* [in] */ RECT *rc);
6048 HRESULT ( STDMETHODCALLTYPE *SetFrame )(
6049 IDeckLinkDX9ScreenPreviewHelper * This,
6050 /* [in] */ IDeckLinkVideoFrame *theFrame);
6052 HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )(
6053 IDeckLinkDX9ScreenPreviewHelper * This,
6054 /* [in] */ BMD3DPreviewFormat previewFormat);
6057 } IDeckLinkDX9ScreenPreviewHelperVtbl;
6059 interface IDeckLinkDX9ScreenPreviewHelper
6061 CONST_VTBL struct IDeckLinkDX9ScreenPreviewHelperVtbl *lpVtbl;
6069 #define IDeckLinkDX9ScreenPreviewHelper_QueryInterface(This,riid,ppvObject) \
6070 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6072 #define IDeckLinkDX9ScreenPreviewHelper_AddRef(This) \
6073 ( (This)->lpVtbl -> AddRef(This) )
6075 #define IDeckLinkDX9ScreenPreviewHelper_Release(This) \
6076 ( (This)->lpVtbl -> Release(This) )
6079 #define IDeckLinkDX9ScreenPreviewHelper_Initialize(This,device) \
6080 ( (This)->lpVtbl -> Initialize(This,device) )
6082 #define IDeckLinkDX9ScreenPreviewHelper_Render(This,rc) \
6083 ( (This)->lpVtbl -> Render(This,rc) )
6085 #define IDeckLinkDX9ScreenPreviewHelper_SetFrame(This,theFrame) \
6086 ( (This)->lpVtbl -> SetFrame(This,theFrame) )
6088 #define IDeckLinkDX9ScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat) \
6089 ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) )
6091 #endif /* COBJMACROS */
6094 #endif /* C style interface */
6099 #endif /* __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__ */
6102 #ifndef __IDeckLinkNotificationCallback_INTERFACE_DEFINED__
6103 #define __IDeckLinkNotificationCallback_INTERFACE_DEFINED__
6105 /* interface IDeckLinkNotificationCallback */
6106 /* [helpstring][local][uuid][object] */
6109 EXTERN_C const IID IID_IDeckLinkNotificationCallback;
6111 #if defined(__cplusplus) && !defined(CINTERFACE)
6113 MIDL_INTERFACE("b002a1ec-070d-4288-8289-bd5d36e5ff0d")
6114 IDeckLinkNotificationCallback : public IUnknown
6117 virtual HRESULT STDMETHODCALLTYPE Notify(
6118 /* [in] */ BMDNotifications topic,
6119 /* [in] */ ULONGLONG param1,
6120 /* [in] */ ULONGLONG param2) = 0;
6124 #else /* C style interface */
6126 typedef struct IDeckLinkNotificationCallbackVtbl
6130 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6131 IDeckLinkNotificationCallback * This,
6132 /* [in] */ REFIID riid,
6133 /* [annotation][iid_is][out] */
6134 __RPC__deref_out void **ppvObject);
6136 ULONG ( STDMETHODCALLTYPE *AddRef )(
6137 IDeckLinkNotificationCallback * This);
6139 ULONG ( STDMETHODCALLTYPE *Release )(
6140 IDeckLinkNotificationCallback * This);
6142 HRESULT ( STDMETHODCALLTYPE *Notify )(
6143 IDeckLinkNotificationCallback * This,
6144 /* [in] */ BMDNotifications topic,
6145 /* [in] */ ULONGLONG param1,
6146 /* [in] */ ULONGLONG param2);
6149 } IDeckLinkNotificationCallbackVtbl;
6151 interface IDeckLinkNotificationCallback
6153 CONST_VTBL struct IDeckLinkNotificationCallbackVtbl *lpVtbl;
6161 #define IDeckLinkNotificationCallback_QueryInterface(This,riid,ppvObject) \
6162 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6164 #define IDeckLinkNotificationCallback_AddRef(This) \
6165 ( (This)->lpVtbl -> AddRef(This) )
6167 #define IDeckLinkNotificationCallback_Release(This) \
6168 ( (This)->lpVtbl -> Release(This) )
6171 #define IDeckLinkNotificationCallback_Notify(This,topic,param1,param2) \
6172 ( (This)->lpVtbl -> Notify(This,topic,param1,param2) )
6174 #endif /* COBJMACROS */
6177 #endif /* C style interface */
6182 #endif /* __IDeckLinkNotificationCallback_INTERFACE_DEFINED__ */
6185 #ifndef __IDeckLinkNotification_INTERFACE_DEFINED__
6186 #define __IDeckLinkNotification_INTERFACE_DEFINED__
6188 /* interface IDeckLinkNotification */
6189 /* [helpstring][local][uuid][object] */
6192 EXTERN_C const IID IID_IDeckLinkNotification;
6194 #if defined(__cplusplus) && !defined(CINTERFACE)
6196 MIDL_INTERFACE("0a1fb207-e215-441b-9b19-6fa1575946c5")
6197 IDeckLinkNotification : public IUnknown
6200 virtual HRESULT STDMETHODCALLTYPE Subscribe(
6201 /* [in] */ BMDNotifications topic,
6202 /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;
6204 virtual HRESULT STDMETHODCALLTYPE Unsubscribe(
6205 /* [in] */ BMDNotifications topic,
6206 /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;
6210 #else /* C style interface */
6212 typedef struct IDeckLinkNotificationVtbl
6216 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6217 IDeckLinkNotification * This,
6218 /* [in] */ REFIID riid,
6219 /* [annotation][iid_is][out] */
6220 __RPC__deref_out void **ppvObject);
6222 ULONG ( STDMETHODCALLTYPE *AddRef )(
6223 IDeckLinkNotification * This);
6225 ULONG ( STDMETHODCALLTYPE *Release )(
6226 IDeckLinkNotification * This);
6228 HRESULT ( STDMETHODCALLTYPE *Subscribe )(
6229 IDeckLinkNotification * This,
6230 /* [in] */ BMDNotifications topic,
6231 /* [in] */ IDeckLinkNotificationCallback *theCallback);
6233 HRESULT ( STDMETHODCALLTYPE *Unsubscribe )(
6234 IDeckLinkNotification * This,
6235 /* [in] */ BMDNotifications topic,
6236 /* [in] */ IDeckLinkNotificationCallback *theCallback);
6239 } IDeckLinkNotificationVtbl;
6241 interface IDeckLinkNotification
6243 CONST_VTBL struct IDeckLinkNotificationVtbl *lpVtbl;
6251 #define IDeckLinkNotification_QueryInterface(This,riid,ppvObject) \
6252 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6254 #define IDeckLinkNotification_AddRef(This) \
6255 ( (This)->lpVtbl -> AddRef(This) )
6257 #define IDeckLinkNotification_Release(This) \
6258 ( (This)->lpVtbl -> Release(This) )
6261 #define IDeckLinkNotification_Subscribe(This,topic,theCallback) \
6262 ( (This)->lpVtbl -> Subscribe(This,topic,theCallback) )
6264 #define IDeckLinkNotification_Unsubscribe(This,topic,theCallback) \
6265 ( (This)->lpVtbl -> Unsubscribe(This,topic,theCallback) )
6267 #endif /* COBJMACROS */
6270 #endif /* C style interface */
6275 #endif /* __IDeckLinkNotification_INTERFACE_DEFINED__ */
6278 #ifndef __IDeckLinkAttributes_INTERFACE_DEFINED__
6279 #define __IDeckLinkAttributes_INTERFACE_DEFINED__
6281 /* interface IDeckLinkAttributes */
6282 /* [helpstring][local][uuid][object] */
6285 EXTERN_C const IID IID_IDeckLinkAttributes;
6287 #if defined(__cplusplus) && !defined(CINTERFACE)
6289 MIDL_INTERFACE("ABC11843-D966-44CB-96E2-A1CB5D3135C4")
6290 IDeckLinkAttributes : public IUnknown
6293 virtual HRESULT STDMETHODCALLTYPE GetFlag(
6294 /* [in] */ BMDDeckLinkAttributeID cfgID,
6295 /* [out] */ BOOL *value) = 0;
6297 virtual HRESULT STDMETHODCALLTYPE GetInt(
6298 /* [in] */ BMDDeckLinkAttributeID cfgID,
6299 /* [out] */ LONGLONG *value) = 0;
6301 virtual HRESULT STDMETHODCALLTYPE GetFloat(
6302 /* [in] */ BMDDeckLinkAttributeID cfgID,
6303 /* [out] */ double *value) = 0;
6305 virtual HRESULT STDMETHODCALLTYPE GetString(
6306 /* [in] */ BMDDeckLinkAttributeID cfgID,
6307 /* [out] */ BSTR *value) = 0;
6311 #else /* C style interface */
6313 typedef struct IDeckLinkAttributesVtbl
6317 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6318 IDeckLinkAttributes * This,
6319 /* [in] */ REFIID riid,
6320 /* [annotation][iid_is][out] */
6321 __RPC__deref_out void **ppvObject);
6323 ULONG ( STDMETHODCALLTYPE *AddRef )(
6324 IDeckLinkAttributes * This);
6326 ULONG ( STDMETHODCALLTYPE *Release )(
6327 IDeckLinkAttributes * This);
6329 HRESULT ( STDMETHODCALLTYPE *GetFlag )(
6330 IDeckLinkAttributes * This,
6331 /* [in] */ BMDDeckLinkAttributeID cfgID,
6332 /* [out] */ BOOL *value);
6334 HRESULT ( STDMETHODCALLTYPE *GetInt )(
6335 IDeckLinkAttributes * This,
6336 /* [in] */ BMDDeckLinkAttributeID cfgID,
6337 /* [out] */ LONGLONG *value);
6339 HRESULT ( STDMETHODCALLTYPE *GetFloat )(
6340 IDeckLinkAttributes * This,
6341 /* [in] */ BMDDeckLinkAttributeID cfgID,
6342 /* [out] */ double *value);
6344 HRESULT ( STDMETHODCALLTYPE *GetString )(
6345 IDeckLinkAttributes * This,
6346 /* [in] */ BMDDeckLinkAttributeID cfgID,
6347 /* [out] */ BSTR *value);
6350 } IDeckLinkAttributesVtbl;
6352 interface IDeckLinkAttributes
6354 CONST_VTBL struct IDeckLinkAttributesVtbl *lpVtbl;
6362 #define IDeckLinkAttributes_QueryInterface(This,riid,ppvObject) \
6363 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6365 #define IDeckLinkAttributes_AddRef(This) \
6366 ( (This)->lpVtbl -> AddRef(This) )
6368 #define IDeckLinkAttributes_Release(This) \
6369 ( (This)->lpVtbl -> Release(This) )
6372 #define IDeckLinkAttributes_GetFlag(This,cfgID,value) \
6373 ( (This)->lpVtbl -> GetFlag(This,cfgID,value) )
6375 #define IDeckLinkAttributes_GetInt(This,cfgID,value) \
6376 ( (This)->lpVtbl -> GetInt(This,cfgID,value) )
6378 #define IDeckLinkAttributes_GetFloat(This,cfgID,value) \
6379 ( (This)->lpVtbl -> GetFloat(This,cfgID,value) )
6381 #define IDeckLinkAttributes_GetString(This,cfgID,value) \
6382 ( (This)->lpVtbl -> GetString(This,cfgID,value) )
6384 #endif /* COBJMACROS */
6387 #endif /* C style interface */
6392 #endif /* __IDeckLinkAttributes_INTERFACE_DEFINED__ */
6395 #ifndef __IDeckLinkKeyer_INTERFACE_DEFINED__
6396 #define __IDeckLinkKeyer_INTERFACE_DEFINED__
6398 /* interface IDeckLinkKeyer */
6399 /* [helpstring][local][uuid][object] */
6402 EXTERN_C const IID IID_IDeckLinkKeyer;
6404 #if defined(__cplusplus) && !defined(CINTERFACE)
6406 MIDL_INTERFACE("89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3")
6407 IDeckLinkKeyer : public IUnknown
6410 virtual HRESULT STDMETHODCALLTYPE Enable(
6411 /* [in] */ BOOL isExternal) = 0;
6413 virtual HRESULT STDMETHODCALLTYPE SetLevel(
6414 /* [in] */ unsigned char level) = 0;
6416 virtual HRESULT STDMETHODCALLTYPE RampUp(
6417 /* [in] */ unsigned long numberOfFrames) = 0;
6419 virtual HRESULT STDMETHODCALLTYPE RampDown(
6420 /* [in] */ unsigned long numberOfFrames) = 0;
6422 virtual HRESULT STDMETHODCALLTYPE Disable( void) = 0;
6426 #else /* C style interface */
6428 typedef struct IDeckLinkKeyerVtbl
6432 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6433 IDeckLinkKeyer * This,
6434 /* [in] */ REFIID riid,
6435 /* [annotation][iid_is][out] */
6436 __RPC__deref_out void **ppvObject);
6438 ULONG ( STDMETHODCALLTYPE *AddRef )(
6439 IDeckLinkKeyer * This);
6441 ULONG ( STDMETHODCALLTYPE *Release )(
6442 IDeckLinkKeyer * This);
6444 HRESULT ( STDMETHODCALLTYPE *Enable )(
6445 IDeckLinkKeyer * This,
6446 /* [in] */ BOOL isExternal);
6448 HRESULT ( STDMETHODCALLTYPE *SetLevel )(
6449 IDeckLinkKeyer * This,
6450 /* [in] */ unsigned char level);
6452 HRESULT ( STDMETHODCALLTYPE *RampUp )(
6453 IDeckLinkKeyer * This,
6454 /* [in] */ unsigned long numberOfFrames);
6456 HRESULT ( STDMETHODCALLTYPE *RampDown )(
6457 IDeckLinkKeyer * This,
6458 /* [in] */ unsigned long numberOfFrames);
6460 HRESULT ( STDMETHODCALLTYPE *Disable )(
6461 IDeckLinkKeyer * This);
6464 } IDeckLinkKeyerVtbl;
6466 interface IDeckLinkKeyer
6468 CONST_VTBL struct IDeckLinkKeyerVtbl *lpVtbl;
6476 #define IDeckLinkKeyer_QueryInterface(This,riid,ppvObject) \
6477 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6479 #define IDeckLinkKeyer_AddRef(This) \
6480 ( (This)->lpVtbl -> AddRef(This) )
6482 #define IDeckLinkKeyer_Release(This) \
6483 ( (This)->lpVtbl -> Release(This) )
6486 #define IDeckLinkKeyer_Enable(This,isExternal) \
6487 ( (This)->lpVtbl -> Enable(This,isExternal) )
6489 #define IDeckLinkKeyer_SetLevel(This,level) \
6490 ( (This)->lpVtbl -> SetLevel(This,level) )
6492 #define IDeckLinkKeyer_RampUp(This,numberOfFrames) \
6493 ( (This)->lpVtbl -> RampUp(This,numberOfFrames) )
6495 #define IDeckLinkKeyer_RampDown(This,numberOfFrames) \
6496 ( (This)->lpVtbl -> RampDown(This,numberOfFrames) )
6498 #define IDeckLinkKeyer_Disable(This) \
6499 ( (This)->lpVtbl -> Disable(This) )
6501 #endif /* COBJMACROS */
6504 #endif /* C style interface */
6509 #endif /* __IDeckLinkKeyer_INTERFACE_DEFINED__ */
6512 #ifndef __IDeckLinkVideoConversion_INTERFACE_DEFINED__
6513 #define __IDeckLinkVideoConversion_INTERFACE_DEFINED__
6515 /* interface IDeckLinkVideoConversion */
6516 /* [helpstring][local][uuid][object] */
6519 EXTERN_C const IID IID_IDeckLinkVideoConversion;
6521 #if defined(__cplusplus) && !defined(CINTERFACE)
6523 MIDL_INTERFACE("3BBCB8A2-DA2C-42D9-B5D8-88083644E99A")
6524 IDeckLinkVideoConversion : public IUnknown
6527 virtual HRESULT STDMETHODCALLTYPE ConvertFrame(
6528 /* [in] */ IDeckLinkVideoFrame *srcFrame,
6529 /* [in] */ IDeckLinkVideoFrame *dstFrame) = 0;
6533 #else /* C style interface */
6535 typedef struct IDeckLinkVideoConversionVtbl
6539 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6540 IDeckLinkVideoConversion * This,
6541 /* [in] */ REFIID riid,
6542 /* [annotation][iid_is][out] */
6543 __RPC__deref_out void **ppvObject);
6545 ULONG ( STDMETHODCALLTYPE *AddRef )(
6546 IDeckLinkVideoConversion * This);
6548 ULONG ( STDMETHODCALLTYPE *Release )(
6549 IDeckLinkVideoConversion * This);
6551 HRESULT ( STDMETHODCALLTYPE *ConvertFrame )(
6552 IDeckLinkVideoConversion * This,
6553 /* [in] */ IDeckLinkVideoFrame *srcFrame,
6554 /* [in] */ IDeckLinkVideoFrame *dstFrame);
6557 } IDeckLinkVideoConversionVtbl;
6559 interface IDeckLinkVideoConversion
6561 CONST_VTBL struct IDeckLinkVideoConversionVtbl *lpVtbl;
6569 #define IDeckLinkVideoConversion_QueryInterface(This,riid,ppvObject) \
6570 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6572 #define IDeckLinkVideoConversion_AddRef(This) \
6573 ( (This)->lpVtbl -> AddRef(This) )
6575 #define IDeckLinkVideoConversion_Release(This) \
6576 ( (This)->lpVtbl -> Release(This) )
6579 #define IDeckLinkVideoConversion_ConvertFrame(This,srcFrame,dstFrame) \
6580 ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) )
6582 #endif /* COBJMACROS */
6585 #endif /* C style interface */
6590 #endif /* __IDeckLinkVideoConversion_INTERFACE_DEFINED__ */
6593 EXTERN_C const CLSID CLSID_CDeckLinkIterator;
6597 class DECLSPEC_UUID("1F2E109A-8F4F-49E4-9203-135595CB6FA5")
6601 EXTERN_C const CLSID CLSID_CDeckLinkAPIInformation;
6605 class DECLSPEC_UUID("263CA19F-ED09-482E-9F9D-84005783A237")
6606 CDeckLinkAPIInformation;
6609 EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper;
6613 class DECLSPEC_UUID("F63E77C7-B655-4A4A-9AD0-3CA85D394343")
6614 CDeckLinkGLScreenPreviewHelper;
6617 EXTERN_C const CLSID CLSID_CDeckLinkDX9ScreenPreviewHelper;
6621 class DECLSPEC_UUID("CC010023-E01D-4525-9D59-80C8AB3DC7A0")
6622 CDeckLinkDX9ScreenPreviewHelper;
6625 EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion;
6629 class DECLSPEC_UUID("7DBBBB11-5B7B-467D-AEA4-CEA468FD368C")
6630 CDeckLinkVideoConversion;
6633 #ifndef __IDeckLinkInput_v9_2_INTERFACE_DEFINED__
6634 #define __IDeckLinkInput_v9_2_INTERFACE_DEFINED__
6636 /* interface IDeckLinkInput_v9_2 */
6637 /* [helpstring][uuid][object] */
6640 EXTERN_C const IID IID_IDeckLinkInput_v9_2;
6642 #if defined(__cplusplus) && !defined(CINTERFACE)
6644 MIDL_INTERFACE("6D40EF78-28B9-4E21-990D-95BB7750A04F")
6645 IDeckLinkInput_v9_2 : public IUnknown
6648 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
6649 /* [in] */ BMDDisplayMode displayMode,
6650 /* [in] */ BMDPixelFormat pixelFormat,
6651 /* [in] */ BMDVideoInputFlags flags,
6652 /* [out] */ BMDDisplayModeSupport *result,
6653 /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;
6655 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
6656 /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;
6658 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
6659 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
6661 virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
6662 /* [in] */ BMDDisplayMode displayMode,
6663 /* [in] */ BMDPixelFormat pixelFormat,
6664 /* [in] */ BMDVideoInputFlags flags) = 0;
6666 virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
6668 virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(
6669 /* [out] */ unsigned long *availableFrameCount) = 0;
6671 virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
6672 /* [in] */ BMDAudioSampleRate sampleRate,
6673 /* [in] */ BMDAudioSampleType sampleType,
6674 /* [in] */ unsigned long channelCount) = 0;
6676 virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
6678 virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
6679 /* [out] */ unsigned long *availableSampleFrameCount) = 0;
6681 virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
6683 virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
6685 virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
6687 virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
6689 virtual HRESULT STDMETHODCALLTYPE SetCallback(
6690 /* [in] */ IDeckLinkInputCallback *theCallback) = 0;
6692 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
6693 /* [in] */ BMDTimeScale desiredTimeScale,
6694 /* [out] */ BMDTimeValue *hardwareTime,
6695 /* [out] */ BMDTimeValue *timeInFrame,
6696 /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
6700 #else /* C style interface */
6702 typedef struct IDeckLinkInput_v9_2Vtbl
6706 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6707 IDeckLinkInput_v9_2 * This,
6708 /* [in] */ REFIID riid,
6709 /* [annotation][iid_is][out] */
6710 __RPC__deref_out void **ppvObject);
6712 ULONG ( STDMETHODCALLTYPE *AddRef )(
6713 IDeckLinkInput_v9_2 * This);
6715 ULONG ( STDMETHODCALLTYPE *Release )(
6716 IDeckLinkInput_v9_2 * This);
6718 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
6719 IDeckLinkInput_v9_2 * This,
6720 /* [in] */ BMDDisplayMode displayMode,
6721 /* [in] */ BMDPixelFormat pixelFormat,
6722 /* [in] */ BMDVideoInputFlags flags,
6723 /* [out] */ BMDDisplayModeSupport *result,
6724 /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);
6726 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
6727 IDeckLinkInput_v9_2 * This,
6728 /* [out] */ IDeckLinkDisplayModeIterator **iterator);
6730 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
6731 IDeckLinkInput_v9_2 * This,
6732 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
6734 HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
6735 IDeckLinkInput_v9_2 * This,
6736 /* [in] */ BMDDisplayMode displayMode,
6737 /* [in] */ BMDPixelFormat pixelFormat,
6738 /* [in] */ BMDVideoInputFlags flags);
6740 HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
6741 IDeckLinkInput_v9_2 * This);
6743 HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(
6744 IDeckLinkInput_v9_2 * This,
6745 /* [out] */ unsigned long *availableFrameCount);
6747 HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
6748 IDeckLinkInput_v9_2 * This,
6749 /* [in] */ BMDAudioSampleRate sampleRate,
6750 /* [in] */ BMDAudioSampleType sampleType,
6751 /* [in] */ unsigned long channelCount);
6753 HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
6754 IDeckLinkInput_v9_2 * This);
6756 HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
6757 IDeckLinkInput_v9_2 * This,
6758 /* [out] */ unsigned long *availableSampleFrameCount);
6760 HRESULT ( STDMETHODCALLTYPE *StartStreams )(
6761 IDeckLinkInput_v9_2 * This);
6763 HRESULT ( STDMETHODCALLTYPE *StopStreams )(
6764 IDeckLinkInput_v9_2 * This);
6766 HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
6767 IDeckLinkInput_v9_2 * This);
6769 HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
6770 IDeckLinkInput_v9_2 * This);
6772 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
6773 IDeckLinkInput_v9_2 * This,
6774 /* [in] */ IDeckLinkInputCallback *theCallback);
6776 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
6777 IDeckLinkInput_v9_2 * This,
6778 /* [in] */ BMDTimeScale desiredTimeScale,
6779 /* [out] */ BMDTimeValue *hardwareTime,
6780 /* [out] */ BMDTimeValue *timeInFrame,
6781 /* [out] */ BMDTimeValue *ticksPerFrame);
6784 } IDeckLinkInput_v9_2Vtbl;
6786 interface IDeckLinkInput_v9_2
6788 CONST_VTBL struct IDeckLinkInput_v9_2Vtbl *lpVtbl;
6796 #define IDeckLinkInput_v9_2_QueryInterface(This,riid,ppvObject) \
6797 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6799 #define IDeckLinkInput_v9_2_AddRef(This) \
6800 ( (This)->lpVtbl -> AddRef(This) )
6802 #define IDeckLinkInput_v9_2_Release(This) \
6803 ( (This)->lpVtbl -> Release(This) )
6806 #define IDeckLinkInput_v9_2_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) \
6807 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) )
6809 #define IDeckLinkInput_v9_2_GetDisplayModeIterator(This,iterator) \
6810 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
6812 #define IDeckLinkInput_v9_2_SetScreenPreviewCallback(This,previewCallback) \
6813 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
6815 #define IDeckLinkInput_v9_2_EnableVideoInput(This,displayMode,pixelFormat,flags) \
6816 ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
6818 #define IDeckLinkInput_v9_2_DisableVideoInput(This) \
6819 ( (This)->lpVtbl -> DisableVideoInput(This) )
6821 #define IDeckLinkInput_v9_2_GetAvailableVideoFrameCount(This,availableFrameCount) \
6822 ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )
6824 #define IDeckLinkInput_v9_2_EnableAudioInput(This,sampleRate,sampleType,channelCount) \
6825 ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
6827 #define IDeckLinkInput_v9_2_DisableAudioInput(This) \
6828 ( (This)->lpVtbl -> DisableAudioInput(This) )
6830 #define IDeckLinkInput_v9_2_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) \
6831 ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
6833 #define IDeckLinkInput_v9_2_StartStreams(This) \
6834 ( (This)->lpVtbl -> StartStreams(This) )
6836 #define IDeckLinkInput_v9_2_StopStreams(This) \
6837 ( (This)->lpVtbl -> StopStreams(This) )
6839 #define IDeckLinkInput_v9_2_PauseStreams(This) \
6840 ( (This)->lpVtbl -> PauseStreams(This) )
6842 #define IDeckLinkInput_v9_2_FlushStreams(This) \
6843 ( (This)->lpVtbl -> FlushStreams(This) )
6845 #define IDeckLinkInput_v9_2_SetCallback(This,theCallback) \
6846 ( (This)->lpVtbl -> SetCallback(This,theCallback) )
6848 #define IDeckLinkInput_v9_2_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \
6849 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
6851 #endif /* COBJMACROS */
6854 #endif /* C style interface */
6859 #endif /* __IDeckLinkInput_v9_2_INTERFACE_DEFINED__ */
6862 #ifndef __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__
6863 #define __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__
6865 /* interface IDeckLinkDeckControlStatusCallback_v8_1 */
6866 /* [helpstring][uuid][object] */
6869 EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback_v8_1;
6871 #if defined(__cplusplus) && !defined(CINTERFACE)
6873 MIDL_INTERFACE("E5F693C1-4283-4716-B18F-C1431521955B")
6874 IDeckLinkDeckControlStatusCallback_v8_1 : public IUnknown
6877 virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate(
6878 /* [in] */ BMDTimecodeBCD currentTimecode) = 0;
6880 virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged(
6881 /* [in] */ BMDDeckControlVTRControlState_v8_1 newState,
6882 /* [in] */ BMDDeckControlError error) = 0;
6884 virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived(
6885 /* [in] */ BMDDeckControlEvent event,
6886 /* [in] */ BMDDeckControlError error) = 0;
6888 virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged(
6889 /* [in] */ BMDDeckControlStatusFlags flags,
6890 /* [in] */ unsigned long mask) = 0;
6894 #else /* C style interface */
6896 typedef struct IDeckLinkDeckControlStatusCallback_v8_1Vtbl
6900 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6901 IDeckLinkDeckControlStatusCallback_v8_1 * This,
6902 /* [in] */ REFIID riid,
6903 /* [annotation][iid_is][out] */
6904 __RPC__deref_out void **ppvObject);
6906 ULONG ( STDMETHODCALLTYPE *AddRef )(
6907 IDeckLinkDeckControlStatusCallback_v8_1 * This);
6909 ULONG ( STDMETHODCALLTYPE *Release )(
6910 IDeckLinkDeckControlStatusCallback_v8_1 * This);
6912 HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )(
6913 IDeckLinkDeckControlStatusCallback_v8_1 * This,
6914 /* [in] */ BMDTimecodeBCD currentTimecode);
6916 HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )(
6917 IDeckLinkDeckControlStatusCallback_v8_1 * This,
6918 /* [in] */ BMDDeckControlVTRControlState_v8_1 newState,
6919 /* [in] */ BMDDeckControlError error);
6921 HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )(
6922 IDeckLinkDeckControlStatusCallback_v8_1 * This,
6923 /* [in] */ BMDDeckControlEvent event,
6924 /* [in] */ BMDDeckControlError error);
6926 HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )(
6927 IDeckLinkDeckControlStatusCallback_v8_1 * This,
6928 /* [in] */ BMDDeckControlStatusFlags flags,
6929 /* [in] */ unsigned long mask);
6932 } IDeckLinkDeckControlStatusCallback_v8_1Vtbl;
6934 interface IDeckLinkDeckControlStatusCallback_v8_1
6936 CONST_VTBL struct IDeckLinkDeckControlStatusCallback_v8_1Vtbl *lpVtbl;
6944 #define IDeckLinkDeckControlStatusCallback_v8_1_QueryInterface(This,riid,ppvObject) \
6945 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6947 #define IDeckLinkDeckControlStatusCallback_v8_1_AddRef(This) \
6948 ( (This)->lpVtbl -> AddRef(This) )
6950 #define IDeckLinkDeckControlStatusCallback_v8_1_Release(This) \
6951 ( (This)->lpVtbl -> Release(This) )
6954 #define IDeckLinkDeckControlStatusCallback_v8_1_TimecodeUpdate(This,currentTimecode) \
6955 ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) )
6957 #define IDeckLinkDeckControlStatusCallback_v8_1_VTRControlStateChanged(This,newState,error) \
6958 ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) )
6960 #define IDeckLinkDeckControlStatusCallback_v8_1_DeckControlEventReceived(This,event,error) \
6961 ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) )
6963 #define IDeckLinkDeckControlStatusCallback_v8_1_DeckControlStatusChanged(This,flags,mask) \
6964 ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) )
6966 #endif /* COBJMACROS */
6969 #endif /* C style interface */
6974 #endif /* __IDeckLinkDeckControlStatusCallback_v8_1_INTERFACE_DEFINED__ */
6977 #ifndef __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__
6978 #define __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__
6980 /* interface IDeckLinkDeckControl_v8_1 */
6981 /* [helpstring][uuid][object] */
6984 EXTERN_C const IID IID_IDeckLinkDeckControl_v8_1;
6986 #if defined(__cplusplus) && !defined(CINTERFACE)
6988 MIDL_INTERFACE("522A9E39-0F3C-4742-94EE-D80DE335DA1D")
6989 IDeckLinkDeckControl_v8_1 : public IUnknown
6992 virtual HRESULT STDMETHODCALLTYPE Open(
6993 /* [in] */ BMDTimeScale timeScale,
6994 /* [in] */ BMDTimeValue timeValue,
6995 /* [in] */ BOOL timecodeIsDropFrame,
6996 /* [out] */ BMDDeckControlError *error) = 0;
6998 virtual HRESULT STDMETHODCALLTYPE Close(
6999 /* [in] */ BOOL standbyOn) = 0;
7001 virtual HRESULT STDMETHODCALLTYPE GetCurrentState(
7002 /* [out] */ BMDDeckControlMode *mode,
7003 /* [out] */ BMDDeckControlVTRControlState_v8_1 *vtrControlState,
7004 /* [out] */ BMDDeckControlStatusFlags *flags) = 0;
7006 virtual HRESULT STDMETHODCALLTYPE SetStandby(
7007 /* [in] */ BOOL standbyOn) = 0;
7009 virtual HRESULT STDMETHODCALLTYPE SendCommand(
7010 /* [in] */ unsigned char *inBuffer,
7011 /* [in] */ unsigned long inBufferSize,
7012 /* [out] */ unsigned char *outBuffer,
7013 /* [out] */ unsigned long *outDataSize,
7014 /* [in] */ unsigned long outBufferSize,
7015 /* [out] */ BMDDeckControlError *error) = 0;
7017 virtual HRESULT STDMETHODCALLTYPE Play(
7018 /* [out] */ BMDDeckControlError *error) = 0;
7020 virtual HRESULT STDMETHODCALLTYPE Stop(
7021 /* [out] */ BMDDeckControlError *error) = 0;
7023 virtual HRESULT STDMETHODCALLTYPE TogglePlayStop(
7024 /* [out] */ BMDDeckControlError *error) = 0;
7026 virtual HRESULT STDMETHODCALLTYPE Eject(
7027 /* [out] */ BMDDeckControlError *error) = 0;
7029 virtual HRESULT STDMETHODCALLTYPE GoToTimecode(
7030 /* [in] */ BMDTimecodeBCD timecode,
7031 /* [out] */ BMDDeckControlError *error) = 0;
7033 virtual HRESULT STDMETHODCALLTYPE FastForward(
7034 /* [in] */ BOOL viewTape,
7035 /* [out] */ BMDDeckControlError *error) = 0;
7037 virtual HRESULT STDMETHODCALLTYPE Rewind(
7038 /* [in] */ BOOL viewTape,
7039 /* [out] */ BMDDeckControlError *error) = 0;
7041 virtual HRESULT STDMETHODCALLTYPE StepForward(
7042 /* [out] */ BMDDeckControlError *error) = 0;
7044 virtual HRESULT STDMETHODCALLTYPE StepBack(
7045 /* [out] */ BMDDeckControlError *error) = 0;
7047 virtual HRESULT STDMETHODCALLTYPE Jog(
7048 /* [in] */ double rate,
7049 /* [out] */ BMDDeckControlError *error) = 0;
7051 virtual HRESULT STDMETHODCALLTYPE Shuttle(
7052 /* [in] */ double rate,
7053 /* [out] */ BMDDeckControlError *error) = 0;
7055 virtual HRESULT STDMETHODCALLTYPE GetTimecodeString(
7056 /* [out] */ BSTR *currentTimeCode,
7057 /* [out] */ BMDDeckControlError *error) = 0;
7059 virtual HRESULT STDMETHODCALLTYPE GetTimecode(
7060 /* [out] */ IDeckLinkTimecode **currentTimecode,
7061 /* [out] */ BMDDeckControlError *error) = 0;
7063 virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD(
7064 /* [out] */ BMDTimecodeBCD *currentTimecode,
7065 /* [out] */ BMDDeckControlError *error) = 0;
7067 virtual HRESULT STDMETHODCALLTYPE SetPreroll(
7068 /* [in] */ unsigned long prerollSeconds) = 0;
7070 virtual HRESULT STDMETHODCALLTYPE GetPreroll(
7071 /* [out] */ unsigned long *prerollSeconds) = 0;
7073 virtual HRESULT STDMETHODCALLTYPE SetExportOffset(
7074 /* [in] */ long exportOffsetFields) = 0;
7076 virtual HRESULT STDMETHODCALLTYPE GetExportOffset(
7077 /* [out] */ long *exportOffsetFields) = 0;
7079 virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset(
7080 /* [out] */ long *deckManualExportOffsetFields) = 0;
7082 virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset(
7083 /* [in] */ long captureOffsetFields) = 0;
7085 virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset(
7086 /* [out] */ long *captureOffsetFields) = 0;
7088 virtual HRESULT STDMETHODCALLTYPE StartExport(
7089 /* [in] */ BMDTimecodeBCD inTimecode,
7090 /* [in] */ BMDTimecodeBCD outTimecode,
7091 /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
7092 /* [out] */ BMDDeckControlError *error) = 0;
7094 virtual HRESULT STDMETHODCALLTYPE StartCapture(
7095 /* [in] */ BOOL useVITC,
7096 /* [in] */ BMDTimecodeBCD inTimecode,
7097 /* [in] */ BMDTimecodeBCD outTimecode,
7098 /* [out] */ BMDDeckControlError *error) = 0;
7100 virtual HRESULT STDMETHODCALLTYPE GetDeviceID(
7101 /* [out] */ unsigned short *deviceId,
7102 /* [out] */ BMDDeckControlError *error) = 0;
7104 virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
7106 virtual HRESULT STDMETHODCALLTYPE CrashRecordStart(
7107 /* [out] */ BMDDeckControlError *error) = 0;
7109 virtual HRESULT STDMETHODCALLTYPE CrashRecordStop(
7110 /* [out] */ BMDDeckControlError *error) = 0;
7112 virtual HRESULT STDMETHODCALLTYPE SetCallback(
7113 /* [in] */ IDeckLinkDeckControlStatusCallback_v8_1 *callback) = 0;
7117 #else /* C style interface */
7119 typedef struct IDeckLinkDeckControl_v8_1Vtbl
7123 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7124 IDeckLinkDeckControl_v8_1 * This,
7125 /* [in] */ REFIID riid,
7126 /* [annotation][iid_is][out] */
7127 __RPC__deref_out void **ppvObject);
7129 ULONG ( STDMETHODCALLTYPE *AddRef )(
7130 IDeckLinkDeckControl_v8_1 * This);
7132 ULONG ( STDMETHODCALLTYPE *Release )(
7133 IDeckLinkDeckControl_v8_1 * This);
7135 HRESULT ( STDMETHODCALLTYPE *Open )(
7136 IDeckLinkDeckControl_v8_1 * This,
7137 /* [in] */ BMDTimeScale timeScale,
7138 /* [in] */ BMDTimeValue timeValue,
7139 /* [in] */ BOOL timecodeIsDropFrame,
7140 /* [out] */ BMDDeckControlError *error);
7142 HRESULT ( STDMETHODCALLTYPE *Close )(
7143 IDeckLinkDeckControl_v8_1 * This,
7144 /* [in] */ BOOL standbyOn);
7146 HRESULT ( STDMETHODCALLTYPE *GetCurrentState )(
7147 IDeckLinkDeckControl_v8_1 * This,
7148 /* [out] */ BMDDeckControlMode *mode,
7149 /* [out] */ BMDDeckControlVTRControlState_v8_1 *vtrControlState,
7150 /* [out] */ BMDDeckControlStatusFlags *flags);
7152 HRESULT ( STDMETHODCALLTYPE *SetStandby )(
7153 IDeckLinkDeckControl_v8_1 * This,
7154 /* [in] */ BOOL standbyOn);
7156 HRESULT ( STDMETHODCALLTYPE *SendCommand )(
7157 IDeckLinkDeckControl_v8_1 * This,
7158 /* [in] */ unsigned char *inBuffer,
7159 /* [in] */ unsigned long inBufferSize,
7160 /* [out] */ unsigned char *outBuffer,
7161 /* [out] */ unsigned long *outDataSize,
7162 /* [in] */ unsigned long outBufferSize,
7163 /* [out] */ BMDDeckControlError *error);
7165 HRESULT ( STDMETHODCALLTYPE *Play )(
7166 IDeckLinkDeckControl_v8_1 * This,
7167 /* [out] */ BMDDeckControlError *error);
7169 HRESULT ( STDMETHODCALLTYPE *Stop )(
7170 IDeckLinkDeckControl_v8_1 * This,
7171 /* [out] */ BMDDeckControlError *error);
7173 HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )(
7174 IDeckLinkDeckControl_v8_1 * This,
7175 /* [out] */ BMDDeckControlError *error);
7177 HRESULT ( STDMETHODCALLTYPE *Eject )(
7178 IDeckLinkDeckControl_v8_1 * This,
7179 /* [out] */ BMDDeckControlError *error);
7181 HRESULT ( STDMETHODCALLTYPE *GoToTimecode )(
7182 IDeckLinkDeckControl_v8_1 * This,
7183 /* [in] */ BMDTimecodeBCD timecode,
7184 /* [out] */ BMDDeckControlError *error);
7186 HRESULT ( STDMETHODCALLTYPE *FastForward )(
7187 IDeckLinkDeckControl_v8_1 * This,
7188 /* [in] */ BOOL viewTape,
7189 /* [out] */ BMDDeckControlError *error);
7191 HRESULT ( STDMETHODCALLTYPE *Rewind )(
7192 IDeckLinkDeckControl_v8_1 * This,
7193 /* [in] */ BOOL viewTape,
7194 /* [out] */ BMDDeckControlError *error);
7196 HRESULT ( STDMETHODCALLTYPE *StepForward )(
7197 IDeckLinkDeckControl_v8_1 * This,
7198 /* [out] */ BMDDeckControlError *error);
7200 HRESULT ( STDMETHODCALLTYPE *StepBack )(
7201 IDeckLinkDeckControl_v8_1 * This,
7202 /* [out] */ BMDDeckControlError *error);
7204 HRESULT ( STDMETHODCALLTYPE *Jog )(
7205 IDeckLinkDeckControl_v8_1 * This,
7206 /* [in] */ double rate,
7207 /* [out] */ BMDDeckControlError *error);
7209 HRESULT ( STDMETHODCALLTYPE *Shuttle )(
7210 IDeckLinkDeckControl_v8_1 * This,
7211 /* [in] */ double rate,
7212 /* [out] */ BMDDeckControlError *error);
7214 HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )(
7215 IDeckLinkDeckControl_v8_1 * This,
7216 /* [out] */ BSTR *currentTimeCode,
7217 /* [out] */ BMDDeckControlError *error);
7219 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
7220 IDeckLinkDeckControl_v8_1 * This,
7221 /* [out] */ IDeckLinkTimecode **currentTimecode,
7222 /* [out] */ BMDDeckControlError *error);
7224 HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )(
7225 IDeckLinkDeckControl_v8_1 * This,
7226 /* [out] */ BMDTimecodeBCD *currentTimecode,
7227 /* [out] */ BMDDeckControlError *error);
7229 HRESULT ( STDMETHODCALLTYPE *SetPreroll )(
7230 IDeckLinkDeckControl_v8_1 * This,
7231 /* [in] */ unsigned long prerollSeconds);
7233 HRESULT ( STDMETHODCALLTYPE *GetPreroll )(
7234 IDeckLinkDeckControl_v8_1 * This,
7235 /* [out] */ unsigned long *prerollSeconds);
7237 HRESULT ( STDMETHODCALLTYPE *SetExportOffset )(
7238 IDeckLinkDeckControl_v8_1 * This,
7239 /* [in] */ long exportOffsetFields);
7241 HRESULT ( STDMETHODCALLTYPE *GetExportOffset )(
7242 IDeckLinkDeckControl_v8_1 * This,
7243 /* [out] */ long *exportOffsetFields);
7245 HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )(
7246 IDeckLinkDeckControl_v8_1 * This,
7247 /* [out] */ long *deckManualExportOffsetFields);
7249 HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )(
7250 IDeckLinkDeckControl_v8_1 * This,
7251 /* [in] */ long captureOffsetFields);
7253 HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )(
7254 IDeckLinkDeckControl_v8_1 * This,
7255 /* [out] */ long *captureOffsetFields);
7257 HRESULT ( STDMETHODCALLTYPE *StartExport )(
7258 IDeckLinkDeckControl_v8_1 * This,
7259 /* [in] */ BMDTimecodeBCD inTimecode,
7260 /* [in] */ BMDTimecodeBCD outTimecode,
7261 /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
7262 /* [out] */ BMDDeckControlError *error);
7264 HRESULT ( STDMETHODCALLTYPE *StartCapture )(
7265 IDeckLinkDeckControl_v8_1 * This,
7266 /* [in] */ BOOL useVITC,
7267 /* [in] */ BMDTimecodeBCD inTimecode,
7268 /* [in] */ BMDTimecodeBCD outTimecode,
7269 /* [out] */ BMDDeckControlError *error);
7271 HRESULT ( STDMETHODCALLTYPE *GetDeviceID )(
7272 IDeckLinkDeckControl_v8_1 * This,
7273 /* [out] */ unsigned short *deviceId,
7274 /* [out] */ BMDDeckControlError *error);
7276 HRESULT ( STDMETHODCALLTYPE *Abort )(
7277 IDeckLinkDeckControl_v8_1 * This);
7279 HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )(
7280 IDeckLinkDeckControl_v8_1 * This,
7281 /* [out] */ BMDDeckControlError *error);
7283 HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )(
7284 IDeckLinkDeckControl_v8_1 * This,
7285 /* [out] */ BMDDeckControlError *error);
7287 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
7288 IDeckLinkDeckControl_v8_1 * This,
7289 /* [in] */ IDeckLinkDeckControlStatusCallback_v8_1 *callback);
7292 } IDeckLinkDeckControl_v8_1Vtbl;
7294 interface IDeckLinkDeckControl_v8_1
7296 CONST_VTBL struct IDeckLinkDeckControl_v8_1Vtbl *lpVtbl;
7304 #define IDeckLinkDeckControl_v8_1_QueryInterface(This,riid,ppvObject) \
7305 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7307 #define IDeckLinkDeckControl_v8_1_AddRef(This) \
7308 ( (This)->lpVtbl -> AddRef(This) )
7310 #define IDeckLinkDeckControl_v8_1_Release(This) \
7311 ( (This)->lpVtbl -> Release(This) )
7314 #define IDeckLinkDeckControl_v8_1_Open(This,timeScale,timeValue,timecodeIsDropFrame,error) \
7315 ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) )
7317 #define IDeckLinkDeckControl_v8_1_Close(This,standbyOn) \
7318 ( (This)->lpVtbl -> Close(This,standbyOn) )
7320 #define IDeckLinkDeckControl_v8_1_GetCurrentState(This,mode,vtrControlState,flags) \
7321 ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) )
7323 #define IDeckLinkDeckControl_v8_1_SetStandby(This,standbyOn) \
7324 ( (This)->lpVtbl -> SetStandby(This,standbyOn) )
7326 #define IDeckLinkDeckControl_v8_1_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) \
7327 ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) )
7329 #define IDeckLinkDeckControl_v8_1_Play(This,error) \
7330 ( (This)->lpVtbl -> Play(This,error) )
7332 #define IDeckLinkDeckControl_v8_1_Stop(This,error) \
7333 ( (This)->lpVtbl -> Stop(This,error) )
7335 #define IDeckLinkDeckControl_v8_1_TogglePlayStop(This,error) \
7336 ( (This)->lpVtbl -> TogglePlayStop(This,error) )
7338 #define IDeckLinkDeckControl_v8_1_Eject(This,error) \
7339 ( (This)->lpVtbl -> Eject(This,error) )
7341 #define IDeckLinkDeckControl_v8_1_GoToTimecode(This,timecode,error) \
7342 ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) )
7344 #define IDeckLinkDeckControl_v8_1_FastForward(This,viewTape,error) \
7345 ( (This)->lpVtbl -> FastForward(This,viewTape,error) )
7347 #define IDeckLinkDeckControl_v8_1_Rewind(This,viewTape,error) \
7348 ( (This)->lpVtbl -> Rewind(This,viewTape,error) )
7350 #define IDeckLinkDeckControl_v8_1_StepForward(This,error) \
7351 ( (This)->lpVtbl -> StepForward(This,error) )
7353 #define IDeckLinkDeckControl_v8_1_StepBack(This,error) \
7354 ( (This)->lpVtbl -> StepBack(This,error) )
7356 #define IDeckLinkDeckControl_v8_1_Jog(This,rate,error) \
7357 ( (This)->lpVtbl -> Jog(This,rate,error) )
7359 #define IDeckLinkDeckControl_v8_1_Shuttle(This,rate,error) \
7360 ( (This)->lpVtbl -> Shuttle(This,rate,error) )
7362 #define IDeckLinkDeckControl_v8_1_GetTimecodeString(This,currentTimeCode,error) \
7363 ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) )
7365 #define IDeckLinkDeckControl_v8_1_GetTimecode(This,currentTimecode,error) \
7366 ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) )
7368 #define IDeckLinkDeckControl_v8_1_GetTimecodeBCD(This,currentTimecode,error) \
7369 ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) )
7371 #define IDeckLinkDeckControl_v8_1_SetPreroll(This,prerollSeconds) \
7372 ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) )
7374 #define IDeckLinkDeckControl_v8_1_GetPreroll(This,prerollSeconds) \
7375 ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) )
7377 #define IDeckLinkDeckControl_v8_1_SetExportOffset(This,exportOffsetFields) \
7378 ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) )
7380 #define IDeckLinkDeckControl_v8_1_GetExportOffset(This,exportOffsetFields) \
7381 ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) )
7383 #define IDeckLinkDeckControl_v8_1_GetManualExportOffset(This,deckManualExportOffsetFields) \
7384 ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) )
7386 #define IDeckLinkDeckControl_v8_1_SetCaptureOffset(This,captureOffsetFields) \
7387 ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) )
7389 #define IDeckLinkDeckControl_v8_1_GetCaptureOffset(This,captureOffsetFields) \
7390 ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) )
7392 #define IDeckLinkDeckControl_v8_1_StartExport(This,inTimecode,outTimecode,exportModeOps,error) \
7393 ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) )
7395 #define IDeckLinkDeckControl_v8_1_StartCapture(This,useVITC,inTimecode,outTimecode,error) \
7396 ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) )
7398 #define IDeckLinkDeckControl_v8_1_GetDeviceID(This,deviceId,error) \
7399 ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) )
7401 #define IDeckLinkDeckControl_v8_1_Abort(This) \
7402 ( (This)->lpVtbl -> Abort(This) )
7404 #define IDeckLinkDeckControl_v8_1_CrashRecordStart(This,error) \
7405 ( (This)->lpVtbl -> CrashRecordStart(This,error) )
7407 #define IDeckLinkDeckControl_v8_1_CrashRecordStop(This,error) \
7408 ( (This)->lpVtbl -> CrashRecordStop(This,error) )
7410 #define IDeckLinkDeckControl_v8_1_SetCallback(This,callback) \
7411 ( (This)->lpVtbl -> SetCallback(This,callback) )
7413 #endif /* COBJMACROS */
7416 #endif /* C style interface */
7421 #endif /* __IDeckLinkDeckControl_v8_1_INTERFACE_DEFINED__ */
7424 #ifndef __IDeckLink_v8_0_INTERFACE_DEFINED__
7425 #define __IDeckLink_v8_0_INTERFACE_DEFINED__
7427 /* interface IDeckLink_v8_0 */
7428 /* [helpstring][uuid][object] */
7431 EXTERN_C const IID IID_IDeckLink_v8_0;
7433 #if defined(__cplusplus) && !defined(CINTERFACE)
7435 MIDL_INTERFACE("62BFF75D-6569-4E55-8D4D-66AA03829ABC")
7436 IDeckLink_v8_0 : public IUnknown
7439 virtual HRESULT STDMETHODCALLTYPE GetModelName(
7440 /* [out] */ BSTR *modelName) = 0;
7444 #else /* C style interface */
7446 typedef struct IDeckLink_v8_0Vtbl
7450 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7451 IDeckLink_v8_0 * This,
7452 /* [in] */ REFIID riid,
7453 /* [annotation][iid_is][out] */
7454 __RPC__deref_out void **ppvObject);
7456 ULONG ( STDMETHODCALLTYPE *AddRef )(
7457 IDeckLink_v8_0 * This);
7459 ULONG ( STDMETHODCALLTYPE *Release )(
7460 IDeckLink_v8_0 * This);
7462 HRESULT ( STDMETHODCALLTYPE *GetModelName )(
7463 IDeckLink_v8_0 * This,
7464 /* [out] */ BSTR *modelName);
7467 } IDeckLink_v8_0Vtbl;
7469 interface IDeckLink_v8_0
7471 CONST_VTBL struct IDeckLink_v8_0Vtbl *lpVtbl;
7479 #define IDeckLink_v8_0_QueryInterface(This,riid,ppvObject) \
7480 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7482 #define IDeckLink_v8_0_AddRef(This) \
7483 ( (This)->lpVtbl -> AddRef(This) )
7485 #define IDeckLink_v8_0_Release(This) \
7486 ( (This)->lpVtbl -> Release(This) )
7489 #define IDeckLink_v8_0_GetModelName(This,modelName) \
7490 ( (This)->lpVtbl -> GetModelName(This,modelName) )
7492 #endif /* COBJMACROS */
7495 #endif /* C style interface */
7500 #endif /* __IDeckLink_v8_0_INTERFACE_DEFINED__ */
7503 #ifndef __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__
7504 #define __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__
7506 /* interface IDeckLinkIterator_v8_0 */
7507 /* [helpstring][uuid][object] */
7510 EXTERN_C const IID IID_IDeckLinkIterator_v8_0;
7512 #if defined(__cplusplus) && !defined(CINTERFACE)
7514 MIDL_INTERFACE("74E936FC-CC28-4A67-81A0-1E94E52D4E69")
7515 IDeckLinkIterator_v8_0 : public IUnknown
7518 virtual HRESULT STDMETHODCALLTYPE Next(
7519 /* [out] */ IDeckLink_v8_0 **deckLinkInstance) = 0;
7523 #else /* C style interface */
7525 typedef struct IDeckLinkIterator_v8_0Vtbl
7529 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7530 IDeckLinkIterator_v8_0 * This,
7531 /* [in] */ REFIID riid,
7532 /* [annotation][iid_is][out] */
7533 __RPC__deref_out void **ppvObject);
7535 ULONG ( STDMETHODCALLTYPE *AddRef )(
7536 IDeckLinkIterator_v8_0 * This);
7538 ULONG ( STDMETHODCALLTYPE *Release )(
7539 IDeckLinkIterator_v8_0 * This);
7541 HRESULT ( STDMETHODCALLTYPE *Next )(
7542 IDeckLinkIterator_v8_0 * This,
7543 /* [out] */ IDeckLink_v8_0 **deckLinkInstance);
7546 } IDeckLinkIterator_v8_0Vtbl;
7548 interface IDeckLinkIterator_v8_0
7550 CONST_VTBL struct IDeckLinkIterator_v8_0Vtbl *lpVtbl;
7558 #define IDeckLinkIterator_v8_0_QueryInterface(This,riid,ppvObject) \
7559 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7561 #define IDeckLinkIterator_v8_0_AddRef(This) \
7562 ( (This)->lpVtbl -> AddRef(This) )
7564 #define IDeckLinkIterator_v8_0_Release(This) \
7565 ( (This)->lpVtbl -> Release(This) )
7568 #define IDeckLinkIterator_v8_0_Next(This,deckLinkInstance) \
7569 ( (This)->lpVtbl -> Next(This,deckLinkInstance) )
7571 #endif /* COBJMACROS */
7574 #endif /* C style interface */
7579 #endif /* __IDeckLinkIterator_v8_0_INTERFACE_DEFINED__ */
7582 EXTERN_C const CLSID CLSID_CDeckLinkIterator_v8_0;
7586 class DECLSPEC_UUID("D9EDA3B3-2887-41FA-B724-017CF1EB1D37")
7587 CDeckLinkIterator_v8_0;
7590 #ifndef __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__
7591 #define __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__
7593 /* interface IDeckLinkDeckControl_v7_9 */
7594 /* [helpstring][uuid][object] */
7597 EXTERN_C const IID IID_IDeckLinkDeckControl_v7_9;
7599 #if defined(__cplusplus) && !defined(CINTERFACE)
7601 MIDL_INTERFACE("A4D81043-0619-42B7-8ED6-602D29041DF7")
7602 IDeckLinkDeckControl_v7_9 : public IUnknown
7605 virtual HRESULT STDMETHODCALLTYPE Open(
7606 /* [in] */ BMDTimeScale timeScale,
7607 /* [in] */ BMDTimeValue timeValue,
7608 /* [in] */ BOOL timecodeIsDropFrame,
7609 /* [out] */ BMDDeckControlError *error) = 0;
7611 virtual HRESULT STDMETHODCALLTYPE Close(
7612 /* [in] */ BOOL standbyOn) = 0;
7614 virtual HRESULT STDMETHODCALLTYPE GetCurrentState(
7615 /* [out] */ BMDDeckControlMode *mode,
7616 /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
7617 /* [out] */ BMDDeckControlStatusFlags *flags) = 0;
7619 virtual HRESULT STDMETHODCALLTYPE SetStandby(
7620 /* [in] */ BOOL standbyOn) = 0;
7622 virtual HRESULT STDMETHODCALLTYPE Play(
7623 /* [out] */ BMDDeckControlError *error) = 0;
7625 virtual HRESULT STDMETHODCALLTYPE Stop(
7626 /* [out] */ BMDDeckControlError *error) = 0;
7628 virtual HRESULT STDMETHODCALLTYPE TogglePlayStop(
7629 /* [out] */ BMDDeckControlError *error) = 0;
7631 virtual HRESULT STDMETHODCALLTYPE Eject(
7632 /* [out] */ BMDDeckControlError *error) = 0;
7634 virtual HRESULT STDMETHODCALLTYPE GoToTimecode(
7635 /* [in] */ BMDTimecodeBCD timecode,
7636 /* [out] */ BMDDeckControlError *error) = 0;
7638 virtual HRESULT STDMETHODCALLTYPE FastForward(
7639 /* [in] */ BOOL viewTape,
7640 /* [out] */ BMDDeckControlError *error) = 0;
7642 virtual HRESULT STDMETHODCALLTYPE Rewind(
7643 /* [in] */ BOOL viewTape,
7644 /* [out] */ BMDDeckControlError *error) = 0;
7646 virtual HRESULT STDMETHODCALLTYPE StepForward(
7647 /* [out] */ BMDDeckControlError *error) = 0;
7649 virtual HRESULT STDMETHODCALLTYPE StepBack(
7650 /* [out] */ BMDDeckControlError *error) = 0;
7652 virtual HRESULT STDMETHODCALLTYPE Jog(
7653 /* [in] */ double rate,
7654 /* [out] */ BMDDeckControlError *error) = 0;
7656 virtual HRESULT STDMETHODCALLTYPE Shuttle(
7657 /* [in] */ double rate,
7658 /* [out] */ BMDDeckControlError *error) = 0;
7660 virtual HRESULT STDMETHODCALLTYPE GetTimecodeString(
7661 /* [out] */ BSTR *currentTimeCode,
7662 /* [out] */ BMDDeckControlError *error) = 0;
7664 virtual HRESULT STDMETHODCALLTYPE GetTimecode(
7665 /* [out] */ IDeckLinkTimecode **currentTimecode,
7666 /* [out] */ BMDDeckControlError *error) = 0;
7668 virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD(
7669 /* [out] */ BMDTimecodeBCD *currentTimecode,
7670 /* [out] */ BMDDeckControlError *error) = 0;
7672 virtual HRESULT STDMETHODCALLTYPE SetPreroll(
7673 /* [in] */ unsigned long prerollSeconds) = 0;
7675 virtual HRESULT STDMETHODCALLTYPE GetPreroll(
7676 /* [out] */ unsigned long *prerollSeconds) = 0;
7678 virtual HRESULT STDMETHODCALLTYPE SetExportOffset(
7679 /* [in] */ long exportOffsetFields) = 0;
7681 virtual HRESULT STDMETHODCALLTYPE GetExportOffset(
7682 /* [out] */ long *exportOffsetFields) = 0;
7684 virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset(
7685 /* [out] */ long *deckManualExportOffsetFields) = 0;
7687 virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset(
7688 /* [in] */ long captureOffsetFields) = 0;
7690 virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset(
7691 /* [out] */ long *captureOffsetFields) = 0;
7693 virtual HRESULT STDMETHODCALLTYPE StartExport(
7694 /* [in] */ BMDTimecodeBCD inTimecode,
7695 /* [in] */ BMDTimecodeBCD outTimecode,
7696 /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
7697 /* [out] */ BMDDeckControlError *error) = 0;
7699 virtual HRESULT STDMETHODCALLTYPE StartCapture(
7700 /* [in] */ BOOL useVITC,
7701 /* [in] */ BMDTimecodeBCD inTimecode,
7702 /* [in] */ BMDTimecodeBCD outTimecode,
7703 /* [out] */ BMDDeckControlError *error) = 0;
7705 virtual HRESULT STDMETHODCALLTYPE GetDeviceID(
7706 /* [out] */ unsigned short *deviceId,
7707 /* [out] */ BMDDeckControlError *error) = 0;
7709 virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;
7711 virtual HRESULT STDMETHODCALLTYPE CrashRecordStart(
7712 /* [out] */ BMDDeckControlError *error) = 0;
7714 virtual HRESULT STDMETHODCALLTYPE CrashRecordStop(
7715 /* [out] */ BMDDeckControlError *error) = 0;
7717 virtual HRESULT STDMETHODCALLTYPE SetCallback(
7718 /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;
7722 #else /* C style interface */
7724 typedef struct IDeckLinkDeckControl_v7_9Vtbl
7728 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7729 IDeckLinkDeckControl_v7_9 * This,
7730 /* [in] */ REFIID riid,
7731 /* [annotation][iid_is][out] */
7732 __RPC__deref_out void **ppvObject);
7734 ULONG ( STDMETHODCALLTYPE *AddRef )(
7735 IDeckLinkDeckControl_v7_9 * This);
7737 ULONG ( STDMETHODCALLTYPE *Release )(
7738 IDeckLinkDeckControl_v7_9 * This);
7740 HRESULT ( STDMETHODCALLTYPE *Open )(
7741 IDeckLinkDeckControl_v7_9 * This,
7742 /* [in] */ BMDTimeScale timeScale,
7743 /* [in] */ BMDTimeValue timeValue,
7744 /* [in] */ BOOL timecodeIsDropFrame,
7745 /* [out] */ BMDDeckControlError *error);
7747 HRESULT ( STDMETHODCALLTYPE *Close )(
7748 IDeckLinkDeckControl_v7_9 * This,
7749 /* [in] */ BOOL standbyOn);
7751 HRESULT ( STDMETHODCALLTYPE *GetCurrentState )(
7752 IDeckLinkDeckControl_v7_9 * This,
7753 /* [out] */ BMDDeckControlMode *mode,
7754 /* [out] */ BMDDeckControlVTRControlState *vtrControlState,
7755 /* [out] */ BMDDeckControlStatusFlags *flags);
7757 HRESULT ( STDMETHODCALLTYPE *SetStandby )(
7758 IDeckLinkDeckControl_v7_9 * This,
7759 /* [in] */ BOOL standbyOn);
7761 HRESULT ( STDMETHODCALLTYPE *Play )(
7762 IDeckLinkDeckControl_v7_9 * This,
7763 /* [out] */ BMDDeckControlError *error);
7765 HRESULT ( STDMETHODCALLTYPE *Stop )(
7766 IDeckLinkDeckControl_v7_9 * This,
7767 /* [out] */ BMDDeckControlError *error);
7769 HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )(
7770 IDeckLinkDeckControl_v7_9 * This,
7771 /* [out] */ BMDDeckControlError *error);
7773 HRESULT ( STDMETHODCALLTYPE *Eject )(
7774 IDeckLinkDeckControl_v7_9 * This,
7775 /* [out] */ BMDDeckControlError *error);
7777 HRESULT ( STDMETHODCALLTYPE *GoToTimecode )(
7778 IDeckLinkDeckControl_v7_9 * This,
7779 /* [in] */ BMDTimecodeBCD timecode,
7780 /* [out] */ BMDDeckControlError *error);
7782 HRESULT ( STDMETHODCALLTYPE *FastForward )(
7783 IDeckLinkDeckControl_v7_9 * This,
7784 /* [in] */ BOOL viewTape,
7785 /* [out] */ BMDDeckControlError *error);
7787 HRESULT ( STDMETHODCALLTYPE *Rewind )(
7788 IDeckLinkDeckControl_v7_9 * This,
7789 /* [in] */ BOOL viewTape,
7790 /* [out] */ BMDDeckControlError *error);
7792 HRESULT ( STDMETHODCALLTYPE *StepForward )(
7793 IDeckLinkDeckControl_v7_9 * This,
7794 /* [out] */ BMDDeckControlError *error);
7796 HRESULT ( STDMETHODCALLTYPE *StepBack )(
7797 IDeckLinkDeckControl_v7_9 * This,
7798 /* [out] */ BMDDeckControlError *error);
7800 HRESULT ( STDMETHODCALLTYPE *Jog )(
7801 IDeckLinkDeckControl_v7_9 * This,
7802 /* [in] */ double rate,
7803 /* [out] */ BMDDeckControlError *error);
7805 HRESULT ( STDMETHODCALLTYPE *Shuttle )(
7806 IDeckLinkDeckControl_v7_9 * This,
7807 /* [in] */ double rate,
7808 /* [out] */ BMDDeckControlError *error);
7810 HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )(
7811 IDeckLinkDeckControl_v7_9 * This,
7812 /* [out] */ BSTR *currentTimeCode,
7813 /* [out] */ BMDDeckControlError *error);
7815 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
7816 IDeckLinkDeckControl_v7_9 * This,
7817 /* [out] */ IDeckLinkTimecode **currentTimecode,
7818 /* [out] */ BMDDeckControlError *error);
7820 HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )(
7821 IDeckLinkDeckControl_v7_9 * This,
7822 /* [out] */ BMDTimecodeBCD *currentTimecode,
7823 /* [out] */ BMDDeckControlError *error);
7825 HRESULT ( STDMETHODCALLTYPE *SetPreroll )(
7826 IDeckLinkDeckControl_v7_9 * This,
7827 /* [in] */ unsigned long prerollSeconds);
7829 HRESULT ( STDMETHODCALLTYPE *GetPreroll )(
7830 IDeckLinkDeckControl_v7_9 * This,
7831 /* [out] */ unsigned long *prerollSeconds);
7833 HRESULT ( STDMETHODCALLTYPE *SetExportOffset )(
7834 IDeckLinkDeckControl_v7_9 * This,
7835 /* [in] */ long exportOffsetFields);
7837 HRESULT ( STDMETHODCALLTYPE *GetExportOffset )(
7838 IDeckLinkDeckControl_v7_9 * This,
7839 /* [out] */ long *exportOffsetFields);
7841 HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )(
7842 IDeckLinkDeckControl_v7_9 * This,
7843 /* [out] */ long *deckManualExportOffsetFields);
7845 HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )(
7846 IDeckLinkDeckControl_v7_9 * This,
7847 /* [in] */ long captureOffsetFields);
7849 HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )(
7850 IDeckLinkDeckControl_v7_9 * This,
7851 /* [out] */ long *captureOffsetFields);
7853 HRESULT ( STDMETHODCALLTYPE *StartExport )(
7854 IDeckLinkDeckControl_v7_9 * This,
7855 /* [in] */ BMDTimecodeBCD inTimecode,
7856 /* [in] */ BMDTimecodeBCD outTimecode,
7857 /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,
7858 /* [out] */ BMDDeckControlError *error);
7860 HRESULT ( STDMETHODCALLTYPE *StartCapture )(
7861 IDeckLinkDeckControl_v7_9 * This,
7862 /* [in] */ BOOL useVITC,
7863 /* [in] */ BMDTimecodeBCD inTimecode,
7864 /* [in] */ BMDTimecodeBCD outTimecode,
7865 /* [out] */ BMDDeckControlError *error);
7867 HRESULT ( STDMETHODCALLTYPE *GetDeviceID )(
7868 IDeckLinkDeckControl_v7_9 * This,
7869 /* [out] */ unsigned short *deviceId,
7870 /* [out] */ BMDDeckControlError *error);
7872 HRESULT ( STDMETHODCALLTYPE *Abort )(
7873 IDeckLinkDeckControl_v7_9 * This);
7875 HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )(
7876 IDeckLinkDeckControl_v7_9 * This,
7877 /* [out] */ BMDDeckControlError *error);
7879 HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )(
7880 IDeckLinkDeckControl_v7_9 * This,
7881 /* [out] */ BMDDeckControlError *error);
7883 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
7884 IDeckLinkDeckControl_v7_9 * This,
7885 /* [in] */ IDeckLinkDeckControlStatusCallback *callback);
7888 } IDeckLinkDeckControl_v7_9Vtbl;
7890 interface IDeckLinkDeckControl_v7_9
7892 CONST_VTBL struct IDeckLinkDeckControl_v7_9Vtbl *lpVtbl;
7900 #define IDeckLinkDeckControl_v7_9_QueryInterface(This,riid,ppvObject) \
7901 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7903 #define IDeckLinkDeckControl_v7_9_AddRef(This) \
7904 ( (This)->lpVtbl -> AddRef(This) )
7906 #define IDeckLinkDeckControl_v7_9_Release(This) \
7907 ( (This)->lpVtbl -> Release(This) )
7910 #define IDeckLinkDeckControl_v7_9_Open(This,timeScale,timeValue,timecodeIsDropFrame,error) \
7911 ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) )
7913 #define IDeckLinkDeckControl_v7_9_Close(This,standbyOn) \
7914 ( (This)->lpVtbl -> Close(This,standbyOn) )
7916 #define IDeckLinkDeckControl_v7_9_GetCurrentState(This,mode,vtrControlState,flags) \
7917 ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) )
7919 #define IDeckLinkDeckControl_v7_9_SetStandby(This,standbyOn) \
7920 ( (This)->lpVtbl -> SetStandby(This,standbyOn) )
7922 #define IDeckLinkDeckControl_v7_9_Play(This,error) \
7923 ( (This)->lpVtbl -> Play(This,error) )
7925 #define IDeckLinkDeckControl_v7_9_Stop(This,error) \
7926 ( (This)->lpVtbl -> Stop(This,error) )
7928 #define IDeckLinkDeckControl_v7_9_TogglePlayStop(This,error) \
7929 ( (This)->lpVtbl -> TogglePlayStop(This,error) )
7931 #define IDeckLinkDeckControl_v7_9_Eject(This,error) \
7932 ( (This)->lpVtbl -> Eject(This,error) )
7934 #define IDeckLinkDeckControl_v7_9_GoToTimecode(This,timecode,error) \
7935 ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) )
7937 #define IDeckLinkDeckControl_v7_9_FastForward(This,viewTape,error) \
7938 ( (This)->lpVtbl -> FastForward(This,viewTape,error) )
7940 #define IDeckLinkDeckControl_v7_9_Rewind(This,viewTape,error) \
7941 ( (This)->lpVtbl -> Rewind(This,viewTape,error) )
7943 #define IDeckLinkDeckControl_v7_9_StepForward(This,error) \
7944 ( (This)->lpVtbl -> StepForward(This,error) )
7946 #define IDeckLinkDeckControl_v7_9_StepBack(This,error) \
7947 ( (This)->lpVtbl -> StepBack(This,error) )
7949 #define IDeckLinkDeckControl_v7_9_Jog(This,rate,error) \
7950 ( (This)->lpVtbl -> Jog(This,rate,error) )
7952 #define IDeckLinkDeckControl_v7_9_Shuttle(This,rate,error) \
7953 ( (This)->lpVtbl -> Shuttle(This,rate,error) )
7955 #define IDeckLinkDeckControl_v7_9_GetTimecodeString(This,currentTimeCode,error) \
7956 ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) )
7958 #define IDeckLinkDeckControl_v7_9_GetTimecode(This,currentTimecode,error) \
7959 ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) )
7961 #define IDeckLinkDeckControl_v7_9_GetTimecodeBCD(This,currentTimecode,error) \
7962 ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) )
7964 #define IDeckLinkDeckControl_v7_9_SetPreroll(This,prerollSeconds) \
7965 ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) )
7967 #define IDeckLinkDeckControl_v7_9_GetPreroll(This,prerollSeconds) \
7968 ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) )
7970 #define IDeckLinkDeckControl_v7_9_SetExportOffset(This,exportOffsetFields) \
7971 ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) )
7973 #define IDeckLinkDeckControl_v7_9_GetExportOffset(This,exportOffsetFields) \
7974 ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) )
7976 #define IDeckLinkDeckControl_v7_9_GetManualExportOffset(This,deckManualExportOffsetFields) \
7977 ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) )
7979 #define IDeckLinkDeckControl_v7_9_SetCaptureOffset(This,captureOffsetFields) \
7980 ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) )
7982 #define IDeckLinkDeckControl_v7_9_GetCaptureOffset(This,captureOffsetFields) \
7983 ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) )
7985 #define IDeckLinkDeckControl_v7_9_StartExport(This,inTimecode,outTimecode,exportModeOps,error) \
7986 ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) )
7988 #define IDeckLinkDeckControl_v7_9_StartCapture(This,useVITC,inTimecode,outTimecode,error) \
7989 ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) )
7991 #define IDeckLinkDeckControl_v7_9_GetDeviceID(This,deviceId,error) \
7992 ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) )
7994 #define IDeckLinkDeckControl_v7_9_Abort(This) \
7995 ( (This)->lpVtbl -> Abort(This) )
7997 #define IDeckLinkDeckControl_v7_9_CrashRecordStart(This,error) \
7998 ( (This)->lpVtbl -> CrashRecordStart(This,error) )
8000 #define IDeckLinkDeckControl_v7_9_CrashRecordStop(This,error) \
8001 ( (This)->lpVtbl -> CrashRecordStop(This,error) )
8003 #define IDeckLinkDeckControl_v7_9_SetCallback(This,callback) \
8004 ( (This)->lpVtbl -> SetCallback(This,callback) )
8006 #endif /* COBJMACROS */
8009 #endif /* C style interface */
8014 #endif /* __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__ */
8017 #ifndef __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__
8018 #define __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__
8020 /* interface IDeckLinkDisplayModeIterator_v7_6 */
8021 /* [helpstring][uuid][object] */
8024 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_6;
8026 #if defined(__cplusplus) && !defined(CINTERFACE)
8028 MIDL_INTERFACE("455D741F-1779-4800-86F5-0B5D13D79751")
8029 IDeckLinkDisplayModeIterator_v7_6 : public IUnknown
8032 virtual HRESULT STDMETHODCALLTYPE Next(
8033 /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0;
8037 #else /* C style interface */
8039 typedef struct IDeckLinkDisplayModeIterator_v7_6Vtbl
8043 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8044 IDeckLinkDisplayModeIterator_v7_6 * This,
8045 /* [in] */ REFIID riid,
8046 /* [annotation][iid_is][out] */
8047 __RPC__deref_out void **ppvObject);
8049 ULONG ( STDMETHODCALLTYPE *AddRef )(
8050 IDeckLinkDisplayModeIterator_v7_6 * This);
8052 ULONG ( STDMETHODCALLTYPE *Release )(
8053 IDeckLinkDisplayModeIterator_v7_6 * This);
8055 HRESULT ( STDMETHODCALLTYPE *Next )(
8056 IDeckLinkDisplayModeIterator_v7_6 * This,
8057 /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode);
8060 } IDeckLinkDisplayModeIterator_v7_6Vtbl;
8062 interface IDeckLinkDisplayModeIterator_v7_6
8064 CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_6Vtbl *lpVtbl;
8072 #define IDeckLinkDisplayModeIterator_v7_6_QueryInterface(This,riid,ppvObject) \
8073 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8075 #define IDeckLinkDisplayModeIterator_v7_6_AddRef(This) \
8076 ( (This)->lpVtbl -> AddRef(This) )
8078 #define IDeckLinkDisplayModeIterator_v7_6_Release(This) \
8079 ( (This)->lpVtbl -> Release(This) )
8082 #define IDeckLinkDisplayModeIterator_v7_6_Next(This,deckLinkDisplayMode) \
8083 ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) )
8085 #endif /* COBJMACROS */
8088 #endif /* C style interface */
8093 #endif /* __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__ */
8096 #ifndef __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__
8097 #define __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__
8099 /* interface IDeckLinkDisplayMode_v7_6 */
8100 /* [helpstring][uuid][object] */
8103 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_6;
8105 #if defined(__cplusplus) && !defined(CINTERFACE)
8107 MIDL_INTERFACE("87451E84-2B7E-439E-A629-4393EA4A8550")
8108 IDeckLinkDisplayMode_v7_6 : public IUnknown
8111 virtual HRESULT STDMETHODCALLTYPE GetName(
8112 /* [out] */ BSTR *name) = 0;
8114 virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
8116 virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
8118 virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
8120 virtual HRESULT STDMETHODCALLTYPE GetFrameRate(
8121 /* [out] */ BMDTimeValue *frameDuration,
8122 /* [out] */ BMDTimeScale *timeScale) = 0;
8124 virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;
8128 #else /* C style interface */
8130 typedef struct IDeckLinkDisplayMode_v7_6Vtbl
8134 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8135 IDeckLinkDisplayMode_v7_6 * This,
8136 /* [in] */ REFIID riid,
8137 /* [annotation][iid_is][out] */
8138 __RPC__deref_out void **ppvObject);
8140 ULONG ( STDMETHODCALLTYPE *AddRef )(
8141 IDeckLinkDisplayMode_v7_6 * This);
8143 ULONG ( STDMETHODCALLTYPE *Release )(
8144 IDeckLinkDisplayMode_v7_6 * This);
8146 HRESULT ( STDMETHODCALLTYPE *GetName )(
8147 IDeckLinkDisplayMode_v7_6 * This,
8148 /* [out] */ BSTR *name);
8150 BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(
8151 IDeckLinkDisplayMode_v7_6 * This);
8153 long ( STDMETHODCALLTYPE *GetWidth )(
8154 IDeckLinkDisplayMode_v7_6 * This);
8156 long ( STDMETHODCALLTYPE *GetHeight )(
8157 IDeckLinkDisplayMode_v7_6 * This);
8159 HRESULT ( STDMETHODCALLTYPE *GetFrameRate )(
8160 IDeckLinkDisplayMode_v7_6 * This,
8161 /* [out] */ BMDTimeValue *frameDuration,
8162 /* [out] */ BMDTimeScale *timeScale);
8164 BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )(
8165 IDeckLinkDisplayMode_v7_6 * This);
8168 } IDeckLinkDisplayMode_v7_6Vtbl;
8170 interface IDeckLinkDisplayMode_v7_6
8172 CONST_VTBL struct IDeckLinkDisplayMode_v7_6Vtbl *lpVtbl;
8180 #define IDeckLinkDisplayMode_v7_6_QueryInterface(This,riid,ppvObject) \
8181 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8183 #define IDeckLinkDisplayMode_v7_6_AddRef(This) \
8184 ( (This)->lpVtbl -> AddRef(This) )
8186 #define IDeckLinkDisplayMode_v7_6_Release(This) \
8187 ( (This)->lpVtbl -> Release(This) )
8190 #define IDeckLinkDisplayMode_v7_6_GetName(This,name) \
8191 ( (This)->lpVtbl -> GetName(This,name) )
8193 #define IDeckLinkDisplayMode_v7_6_GetDisplayMode(This) \
8194 ( (This)->lpVtbl -> GetDisplayMode(This) )
8196 #define IDeckLinkDisplayMode_v7_6_GetWidth(This) \
8197 ( (This)->lpVtbl -> GetWidth(This) )
8199 #define IDeckLinkDisplayMode_v7_6_GetHeight(This) \
8200 ( (This)->lpVtbl -> GetHeight(This) )
8202 #define IDeckLinkDisplayMode_v7_6_GetFrameRate(This,frameDuration,timeScale) \
8203 ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) )
8205 #define IDeckLinkDisplayMode_v7_6_GetFieldDominance(This) \
8206 ( (This)->lpVtbl -> GetFieldDominance(This) )
8208 #endif /* COBJMACROS */
8211 #endif /* C style interface */
8216 #endif /* __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__ */
8219 #ifndef __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__
8220 #define __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__
8222 /* interface IDeckLinkOutput_v7_6 */
8223 /* [helpstring][local][uuid][object] */
8226 EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
8228 #if defined(__cplusplus) && !defined(CINTERFACE)
8230 MIDL_INTERFACE("29228142-EB8C-4141-A621-F74026450955")
8231 IDeckLinkOutput_v7_6 : public IUnknown
8234 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
8235 BMDDisplayMode displayMode,
8236 BMDPixelFormat pixelFormat,
8237 /* [out] */ BMDDisplayModeSupport *result) = 0;
8239 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
8240 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
8242 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
8243 /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;
8245 virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
8246 BMDDisplayMode displayMode,
8247 BMDVideoOutputFlags flags) = 0;
8249 virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
8251 virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
8252 /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
8254 virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
8258 BMDPixelFormat pixelFormat,
8259 BMDFrameFlags flags,
8260 /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;
8262 virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(
8263 BMDPixelFormat pixelFormat,
8264 /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
8266 virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
8267 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
8269 virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
8270 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
8271 BMDTimeValue displayTime,
8272 BMDTimeValue displayDuration,
8273 BMDTimeScale timeScale) = 0;
8275 virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
8276 /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0;
8278 virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(
8279 /* [out] */ unsigned long *bufferedFrameCount) = 0;
8281 virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
8282 BMDAudioSampleRate sampleRate,
8283 BMDAudioSampleType sampleType,
8284 unsigned long channelCount,
8285 BMDAudioOutputStreamType streamType) = 0;
8287 virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
8289 virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
8290 /* [in] */ void *buffer,
8291 unsigned long sampleFrameCount,
8292 /* [out] */ unsigned long *sampleFramesWritten) = 0;
8294 virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
8296 virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
8298 virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
8299 /* [in] */ void *buffer,
8300 unsigned long sampleFrameCount,
8301 BMDTimeValue streamTime,
8302 BMDTimeScale timeScale,
8303 /* [out] */ unsigned long *sampleFramesWritten) = 0;
8305 virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
8306 /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;
8308 virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
8310 virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
8311 /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
8313 virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
8314 BMDTimeValue playbackStartTime,
8315 BMDTimeScale timeScale,
8316 double playbackSpeed) = 0;
8318 virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
8319 BMDTimeValue stopPlaybackAtTime,
8320 /* [out] */ BMDTimeValue *actualStopTime,
8321 BMDTimeScale timeScale) = 0;
8323 virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(
8324 /* [out] */ BOOL *active) = 0;
8326 virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime(
8327 BMDTimeScale desiredTimeScale,
8328 /* [out] */ BMDTimeValue *streamTime,
8329 /* [out] */ double *playbackSpeed) = 0;
8331 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
8332 BMDTimeScale desiredTimeScale,
8333 /* [out] */ BMDTimeValue *hardwareTime,
8334 /* [out] */ BMDTimeValue *timeInFrame,
8335 /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
8339 #else /* C style interface */
8341 typedef struct IDeckLinkOutput_v7_6Vtbl
8345 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8346 IDeckLinkOutput_v7_6 * This,
8347 /* [in] */ REFIID riid,
8348 /* [annotation][iid_is][out] */
8349 __RPC__deref_out void **ppvObject);
8351 ULONG ( STDMETHODCALLTYPE *AddRef )(
8352 IDeckLinkOutput_v7_6 * This);
8354 ULONG ( STDMETHODCALLTYPE *Release )(
8355 IDeckLinkOutput_v7_6 * This);
8357 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
8358 IDeckLinkOutput_v7_6 * This,
8359 BMDDisplayMode displayMode,
8360 BMDPixelFormat pixelFormat,
8361 /* [out] */ BMDDisplayModeSupport *result);
8363 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
8364 IDeckLinkOutput_v7_6 * This,
8365 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
8367 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
8368 IDeckLinkOutput_v7_6 * This,
8369 /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);
8371 HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
8372 IDeckLinkOutput_v7_6 * This,
8373 BMDDisplayMode displayMode,
8374 BMDVideoOutputFlags flags);
8376 HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
8377 IDeckLinkOutput_v7_6 * This);
8379 HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
8380 IDeckLinkOutput_v7_6 * This,
8381 /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
8383 HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
8384 IDeckLinkOutput_v7_6 * This,
8388 BMDPixelFormat pixelFormat,
8389 BMDFrameFlags flags,
8390 /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);
8392 HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(
8393 IDeckLinkOutput_v7_6 * This,
8394 BMDPixelFormat pixelFormat,
8395 /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
8397 HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
8398 IDeckLinkOutput_v7_6 * This,
8399 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
8401 HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
8402 IDeckLinkOutput_v7_6 * This,
8403 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
8404 BMDTimeValue displayTime,
8405 BMDTimeValue displayDuration,
8406 BMDTimeScale timeScale);
8408 HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
8409 IDeckLinkOutput_v7_6 * This,
8410 /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback);
8412 HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(
8413 IDeckLinkOutput_v7_6 * This,
8414 /* [out] */ unsigned long *bufferedFrameCount);
8416 HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
8417 IDeckLinkOutput_v7_6 * This,
8418 BMDAudioSampleRate sampleRate,
8419 BMDAudioSampleType sampleType,
8420 unsigned long channelCount,
8421 BMDAudioOutputStreamType streamType);
8423 HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
8424 IDeckLinkOutput_v7_6 * This);
8426 HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
8427 IDeckLinkOutput_v7_6 * This,
8428 /* [in] */ void *buffer,
8429 unsigned long sampleFrameCount,
8430 /* [out] */ unsigned long *sampleFramesWritten);
8432 HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
8433 IDeckLinkOutput_v7_6 * This);
8435 HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
8436 IDeckLinkOutput_v7_6 * This);
8438 HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
8439 IDeckLinkOutput_v7_6 * This,
8440 /* [in] */ void *buffer,
8441 unsigned long sampleFrameCount,
8442 BMDTimeValue streamTime,
8443 BMDTimeScale timeScale,
8444 /* [out] */ unsigned long *sampleFramesWritten);
8446 HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
8447 IDeckLinkOutput_v7_6 * This,
8448 /* [out] */ unsigned long *bufferedSampleFrameCount);
8450 HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
8451 IDeckLinkOutput_v7_6 * This);
8453 HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
8454 IDeckLinkOutput_v7_6 * This,
8455 /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
8457 HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
8458 IDeckLinkOutput_v7_6 * This,
8459 BMDTimeValue playbackStartTime,
8460 BMDTimeScale timeScale,
8461 double playbackSpeed);
8463 HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
8464 IDeckLinkOutput_v7_6 * This,
8465 BMDTimeValue stopPlaybackAtTime,
8466 /* [out] */ BMDTimeValue *actualStopTime,
8467 BMDTimeScale timeScale);
8469 HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(
8470 IDeckLinkOutput_v7_6 * This,
8471 /* [out] */ BOOL *active);
8473 HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )(
8474 IDeckLinkOutput_v7_6 * This,
8475 BMDTimeScale desiredTimeScale,
8476 /* [out] */ BMDTimeValue *streamTime,
8477 /* [out] */ double *playbackSpeed);
8479 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
8480 IDeckLinkOutput_v7_6 * This,
8481 BMDTimeScale desiredTimeScale,
8482 /* [out] */ BMDTimeValue *hardwareTime,
8483 /* [out] */ BMDTimeValue *timeInFrame,
8484 /* [out] */ BMDTimeValue *ticksPerFrame);
8487 } IDeckLinkOutput_v7_6Vtbl;
8489 interface IDeckLinkOutput_v7_6
8491 CONST_VTBL struct IDeckLinkOutput_v7_6Vtbl *lpVtbl;
8499 #define IDeckLinkOutput_v7_6_QueryInterface(This,riid,ppvObject) \
8500 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8502 #define IDeckLinkOutput_v7_6_AddRef(This) \
8503 ( (This)->lpVtbl -> AddRef(This) )
8505 #define IDeckLinkOutput_v7_6_Release(This) \
8506 ( (This)->lpVtbl -> Release(This) )
8509 #define IDeckLinkOutput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \
8510 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
8512 #define IDeckLinkOutput_v7_6_GetDisplayModeIterator(This,iterator) \
8513 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
8515 #define IDeckLinkOutput_v7_6_SetScreenPreviewCallback(This,previewCallback) \
8516 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
8518 #define IDeckLinkOutput_v7_6_EnableVideoOutput(This,displayMode,flags) \
8519 ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )
8521 #define IDeckLinkOutput_v7_6_DisableVideoOutput(This) \
8522 ( (This)->lpVtbl -> DisableVideoOutput(This) )
8524 #define IDeckLinkOutput_v7_6_SetVideoOutputFrameMemoryAllocator(This,theAllocator) \
8525 ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
8527 #define IDeckLinkOutput_v7_6_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \
8528 ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
8530 #define IDeckLinkOutput_v7_6_CreateAncillaryData(This,pixelFormat,outBuffer) \
8531 ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )
8533 #define IDeckLinkOutput_v7_6_DisplayVideoFrameSync(This,theFrame) \
8534 ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
8536 #define IDeckLinkOutput_v7_6_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \
8537 ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
8539 #define IDeckLinkOutput_v7_6_SetScheduledFrameCompletionCallback(This,theCallback) \
8540 ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
8542 #define IDeckLinkOutput_v7_6_GetBufferedVideoFrameCount(This,bufferedFrameCount) \
8543 ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )
8545 #define IDeckLinkOutput_v7_6_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) \
8546 ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )
8548 #define IDeckLinkOutput_v7_6_DisableAudioOutput(This) \
8549 ( (This)->lpVtbl -> DisableAudioOutput(This) )
8551 #define IDeckLinkOutput_v7_6_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \
8552 ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
8554 #define IDeckLinkOutput_v7_6_BeginAudioPreroll(This) \
8555 ( (This)->lpVtbl -> BeginAudioPreroll(This) )
8557 #define IDeckLinkOutput_v7_6_EndAudioPreroll(This) \
8558 ( (This)->lpVtbl -> EndAudioPreroll(This) )
8560 #define IDeckLinkOutput_v7_6_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) \
8561 ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
8563 #define IDeckLinkOutput_v7_6_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \
8564 ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )
8566 #define IDeckLinkOutput_v7_6_FlushBufferedAudioSamples(This) \
8567 ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
8569 #define IDeckLinkOutput_v7_6_SetAudioCallback(This,theCallback) \
8570 ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
8572 #define IDeckLinkOutput_v7_6_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \
8573 ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
8575 #define IDeckLinkOutput_v7_6_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \
8576 ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
8578 #define IDeckLinkOutput_v7_6_IsScheduledPlaybackRunning(This,active) \
8579 ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )
8581 #define IDeckLinkOutput_v7_6_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) \
8582 ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) )
8584 #define IDeckLinkOutput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \
8585 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
8587 #endif /* COBJMACROS */
8590 #endif /* C style interface */
8595 #endif /* __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__ */
8598 #ifndef __IDeckLinkInput_v7_6_INTERFACE_DEFINED__
8599 #define __IDeckLinkInput_v7_6_INTERFACE_DEFINED__
8601 /* interface IDeckLinkInput_v7_6 */
8602 /* [helpstring][uuid][object] */
8605 EXTERN_C const IID IID_IDeckLinkInput_v7_6;
8607 #if defined(__cplusplus) && !defined(CINTERFACE)
8609 MIDL_INTERFACE("300C135A-9F43-48E2-9906-6D7911D93CF1")
8610 IDeckLinkInput_v7_6 : public IUnknown
8613 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
8614 BMDDisplayMode displayMode,
8615 BMDPixelFormat pixelFormat,
8616 /* [out] */ BMDDisplayModeSupport *result) = 0;
8618 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
8619 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
8621 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
8622 /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;
8624 virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
8625 BMDDisplayMode displayMode,
8626 BMDPixelFormat pixelFormat,
8627 BMDVideoInputFlags flags) = 0;
8629 virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
8631 virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(
8632 /* [out] */ unsigned long *availableFrameCount) = 0;
8634 virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
8635 BMDAudioSampleRate sampleRate,
8636 BMDAudioSampleType sampleType,
8637 unsigned long channelCount) = 0;
8639 virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
8641 virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
8642 /* [out] */ unsigned long *availableSampleFrameCount) = 0;
8644 virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
8646 virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
8648 virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
8650 virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
8652 virtual HRESULT STDMETHODCALLTYPE SetCallback(
8653 /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback) = 0;
8655 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
8656 BMDTimeScale desiredTimeScale,
8657 /* [out] */ BMDTimeValue *hardwareTime,
8658 /* [out] */ BMDTimeValue *timeInFrame,
8659 /* [out] */ BMDTimeValue *ticksPerFrame) = 0;
8663 #else /* C style interface */
8665 typedef struct IDeckLinkInput_v7_6Vtbl
8669 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8670 IDeckLinkInput_v7_6 * This,
8671 /* [in] */ REFIID riid,
8672 /* [annotation][iid_is][out] */
8673 __RPC__deref_out void **ppvObject);
8675 ULONG ( STDMETHODCALLTYPE *AddRef )(
8676 IDeckLinkInput_v7_6 * This);
8678 ULONG ( STDMETHODCALLTYPE *Release )(
8679 IDeckLinkInput_v7_6 * This);
8681 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
8682 IDeckLinkInput_v7_6 * This,
8683 BMDDisplayMode displayMode,
8684 BMDPixelFormat pixelFormat,
8685 /* [out] */ BMDDisplayModeSupport *result);
8687 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
8688 IDeckLinkInput_v7_6 * This,
8689 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
8691 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
8692 IDeckLinkInput_v7_6 * This,
8693 /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);
8695 HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
8696 IDeckLinkInput_v7_6 * This,
8697 BMDDisplayMode displayMode,
8698 BMDPixelFormat pixelFormat,
8699 BMDVideoInputFlags flags);
8701 HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
8702 IDeckLinkInput_v7_6 * This);
8704 HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(
8705 IDeckLinkInput_v7_6 * This,
8706 /* [out] */ unsigned long *availableFrameCount);
8708 HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
8709 IDeckLinkInput_v7_6 * This,
8710 BMDAudioSampleRate sampleRate,
8711 BMDAudioSampleType sampleType,
8712 unsigned long channelCount);
8714 HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
8715 IDeckLinkInput_v7_6 * This);
8717 HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
8718 IDeckLinkInput_v7_6 * This,
8719 /* [out] */ unsigned long *availableSampleFrameCount);
8721 HRESULT ( STDMETHODCALLTYPE *StartStreams )(
8722 IDeckLinkInput_v7_6 * This);
8724 HRESULT ( STDMETHODCALLTYPE *StopStreams )(
8725 IDeckLinkInput_v7_6 * This);
8727 HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
8728 IDeckLinkInput_v7_6 * This);
8730 HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
8731 IDeckLinkInput_v7_6 * This);
8733 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
8734 IDeckLinkInput_v7_6 * This,
8735 /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback);
8737 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
8738 IDeckLinkInput_v7_6 * This,
8739 BMDTimeScale desiredTimeScale,
8740 /* [out] */ BMDTimeValue *hardwareTime,
8741 /* [out] */ BMDTimeValue *timeInFrame,
8742 /* [out] */ BMDTimeValue *ticksPerFrame);
8745 } IDeckLinkInput_v7_6Vtbl;
8747 interface IDeckLinkInput_v7_6
8749 CONST_VTBL struct IDeckLinkInput_v7_6Vtbl *lpVtbl;
8757 #define IDeckLinkInput_v7_6_QueryInterface(This,riid,ppvObject) \
8758 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8760 #define IDeckLinkInput_v7_6_AddRef(This) \
8761 ( (This)->lpVtbl -> AddRef(This) )
8763 #define IDeckLinkInput_v7_6_Release(This) \
8764 ( (This)->lpVtbl -> Release(This) )
8767 #define IDeckLinkInput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \
8768 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
8770 #define IDeckLinkInput_v7_6_GetDisplayModeIterator(This,iterator) \
8771 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
8773 #define IDeckLinkInput_v7_6_SetScreenPreviewCallback(This,previewCallback) \
8774 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
8776 #define IDeckLinkInput_v7_6_EnableVideoInput(This,displayMode,pixelFormat,flags) \
8777 ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
8779 #define IDeckLinkInput_v7_6_DisableVideoInput(This) \
8780 ( (This)->lpVtbl -> DisableVideoInput(This) )
8782 #define IDeckLinkInput_v7_6_GetAvailableVideoFrameCount(This,availableFrameCount) \
8783 ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )
8785 #define IDeckLinkInput_v7_6_EnableAudioInput(This,sampleRate,sampleType,channelCount) \
8786 ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
8788 #define IDeckLinkInput_v7_6_DisableAudioInput(This) \
8789 ( (This)->lpVtbl -> DisableAudioInput(This) )
8791 #define IDeckLinkInput_v7_6_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) \
8792 ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
8794 #define IDeckLinkInput_v7_6_StartStreams(This) \
8795 ( (This)->lpVtbl -> StartStreams(This) )
8797 #define IDeckLinkInput_v7_6_StopStreams(This) \
8798 ( (This)->lpVtbl -> StopStreams(This) )
8800 #define IDeckLinkInput_v7_6_PauseStreams(This) \
8801 ( (This)->lpVtbl -> PauseStreams(This) )
8803 #define IDeckLinkInput_v7_6_FlushStreams(This) \
8804 ( (This)->lpVtbl -> FlushStreams(This) )
8806 #define IDeckLinkInput_v7_6_SetCallback(This,theCallback) \
8807 ( (This)->lpVtbl -> SetCallback(This,theCallback) )
8809 #define IDeckLinkInput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \
8810 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) )
8812 #endif /* COBJMACROS */
8815 #endif /* C style interface */
8820 #endif /* __IDeckLinkInput_v7_6_INTERFACE_DEFINED__ */
8823 #ifndef __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__
8824 #define __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__
8826 /* interface IDeckLinkTimecode_v7_6 */
8827 /* [helpstring][uuid][object] */
8830 EXTERN_C const IID IID_IDeckLinkTimecode_v7_6;
8832 #if defined(__cplusplus) && !defined(CINTERFACE)
8834 MIDL_INTERFACE("EFB9BCA6-A521-44F7-BD69-2332F24D9EE6")
8835 IDeckLinkTimecode_v7_6 : public IUnknown
8838 virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;
8840 virtual HRESULT STDMETHODCALLTYPE GetComponents(
8841 /* [out] */ unsigned char *hours,
8842 /* [out] */ unsigned char *minutes,
8843 /* [out] */ unsigned char *seconds,
8844 /* [out] */ unsigned char *frames) = 0;
8846 virtual HRESULT STDMETHODCALLTYPE GetString(
8847 /* [out] */ BSTR *timecode) = 0;
8849 virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;
8853 #else /* C style interface */
8855 typedef struct IDeckLinkTimecode_v7_6Vtbl
8859 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8860 IDeckLinkTimecode_v7_6 * This,
8861 /* [in] */ REFIID riid,
8862 /* [annotation][iid_is][out] */
8863 __RPC__deref_out void **ppvObject);
8865 ULONG ( STDMETHODCALLTYPE *AddRef )(
8866 IDeckLinkTimecode_v7_6 * This);
8868 ULONG ( STDMETHODCALLTYPE *Release )(
8869 IDeckLinkTimecode_v7_6 * This);
8871 BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )(
8872 IDeckLinkTimecode_v7_6 * This);
8874 HRESULT ( STDMETHODCALLTYPE *GetComponents )(
8875 IDeckLinkTimecode_v7_6 * This,
8876 /* [out] */ unsigned char *hours,
8877 /* [out] */ unsigned char *minutes,
8878 /* [out] */ unsigned char *seconds,
8879 /* [out] */ unsigned char *frames);
8881 HRESULT ( STDMETHODCALLTYPE *GetString )(
8882 IDeckLinkTimecode_v7_6 * This,
8883 /* [out] */ BSTR *timecode);
8885 BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )(
8886 IDeckLinkTimecode_v7_6 * This);
8889 } IDeckLinkTimecode_v7_6Vtbl;
8891 interface IDeckLinkTimecode_v7_6
8893 CONST_VTBL struct IDeckLinkTimecode_v7_6Vtbl *lpVtbl;
8901 #define IDeckLinkTimecode_v7_6_QueryInterface(This,riid,ppvObject) \
8902 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8904 #define IDeckLinkTimecode_v7_6_AddRef(This) \
8905 ( (This)->lpVtbl -> AddRef(This) )
8907 #define IDeckLinkTimecode_v7_6_Release(This) \
8908 ( (This)->lpVtbl -> Release(This) )
8911 #define IDeckLinkTimecode_v7_6_GetBCD(This) \
8912 ( (This)->lpVtbl -> GetBCD(This) )
8914 #define IDeckLinkTimecode_v7_6_GetComponents(This,hours,minutes,seconds,frames) \
8915 ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) )
8917 #define IDeckLinkTimecode_v7_6_GetString(This,timecode) \
8918 ( (This)->lpVtbl -> GetString(This,timecode) )
8920 #define IDeckLinkTimecode_v7_6_GetFlags(This) \
8921 ( (This)->lpVtbl -> GetFlags(This) )
8923 #endif /* COBJMACROS */
8926 #endif /* C style interface */
8931 #endif /* __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__ */
8934 #ifndef __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__
8935 #define __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__
8937 /* interface IDeckLinkVideoFrame_v7_6 */
8938 /* [helpstring][local][uuid][object] */
8941 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_6;
8943 #if defined(__cplusplus) && !defined(CINTERFACE)
8945 MIDL_INTERFACE("A8D8238E-6B18-4196-99E1-5AF717B83D32")
8946 IDeckLinkVideoFrame_v7_6 : public IUnknown
8949 virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
8951 virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
8953 virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;
8955 virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
8957 virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;
8959 virtual HRESULT STDMETHODCALLTYPE GetBytes(
8960 /* [out] */ void **buffer) = 0;
8962 virtual HRESULT STDMETHODCALLTYPE GetTimecode(
8963 BMDTimecodeFormat format,
8964 /* [out] */ IDeckLinkTimecode_v7_6 **timecode) = 0;
8966 virtual HRESULT STDMETHODCALLTYPE GetAncillaryData(
8967 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;
8971 #else /* C style interface */
8973 typedef struct IDeckLinkVideoFrame_v7_6Vtbl
8977 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8978 IDeckLinkVideoFrame_v7_6 * This,
8979 /* [in] */ REFIID riid,
8980 /* [annotation][iid_is][out] */
8981 __RPC__deref_out void **ppvObject);
8983 ULONG ( STDMETHODCALLTYPE *AddRef )(
8984 IDeckLinkVideoFrame_v7_6 * This);
8986 ULONG ( STDMETHODCALLTYPE *Release )(
8987 IDeckLinkVideoFrame_v7_6 * This);
8989 long ( STDMETHODCALLTYPE *GetWidth )(
8990 IDeckLinkVideoFrame_v7_6 * This);
8992 long ( STDMETHODCALLTYPE *GetHeight )(
8993 IDeckLinkVideoFrame_v7_6 * This);
8995 long ( STDMETHODCALLTYPE *GetRowBytes )(
8996 IDeckLinkVideoFrame_v7_6 * This);
8998 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
8999 IDeckLinkVideoFrame_v7_6 * This);
9001 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
9002 IDeckLinkVideoFrame_v7_6 * This);
9004 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
9005 IDeckLinkVideoFrame_v7_6 * This,
9006 /* [out] */ void **buffer);
9008 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
9009 IDeckLinkVideoFrame_v7_6 * This,
9010 BMDTimecodeFormat format,
9011 /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
9013 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
9014 IDeckLinkVideoFrame_v7_6 * This,
9015 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
9018 } IDeckLinkVideoFrame_v7_6Vtbl;
9020 interface IDeckLinkVideoFrame_v7_6
9022 CONST_VTBL struct IDeckLinkVideoFrame_v7_6Vtbl *lpVtbl;
9030 #define IDeckLinkVideoFrame_v7_6_QueryInterface(This,riid,ppvObject) \
9031 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9033 #define IDeckLinkVideoFrame_v7_6_AddRef(This) \
9034 ( (This)->lpVtbl -> AddRef(This) )
9036 #define IDeckLinkVideoFrame_v7_6_Release(This) \
9037 ( (This)->lpVtbl -> Release(This) )
9040 #define IDeckLinkVideoFrame_v7_6_GetWidth(This) \
9041 ( (This)->lpVtbl -> GetWidth(This) )
9043 #define IDeckLinkVideoFrame_v7_6_GetHeight(This) \
9044 ( (This)->lpVtbl -> GetHeight(This) )
9046 #define IDeckLinkVideoFrame_v7_6_GetRowBytes(This) \
9047 ( (This)->lpVtbl -> GetRowBytes(This) )
9049 #define IDeckLinkVideoFrame_v7_6_GetPixelFormat(This) \
9050 ( (This)->lpVtbl -> GetPixelFormat(This) )
9052 #define IDeckLinkVideoFrame_v7_6_GetFlags(This) \
9053 ( (This)->lpVtbl -> GetFlags(This) )
9055 #define IDeckLinkVideoFrame_v7_6_GetBytes(This,buffer) \
9056 ( (This)->lpVtbl -> GetBytes(This,buffer) )
9058 #define IDeckLinkVideoFrame_v7_6_GetTimecode(This,format,timecode) \
9059 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
9061 #define IDeckLinkVideoFrame_v7_6_GetAncillaryData(This,ancillary) \
9062 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
9064 #endif /* COBJMACROS */
9067 #endif /* C style interface */
9072 #endif /* __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__ */
9075 #ifndef __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__
9076 #define __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__
9078 /* interface IDeckLinkMutableVideoFrame_v7_6 */
9079 /* [helpstring][local][uuid][object] */
9082 EXTERN_C const IID IID_IDeckLinkMutableVideoFrame_v7_6;
9084 #if defined(__cplusplus) && !defined(CINTERFACE)
9086 MIDL_INTERFACE("46FCEE00-B4E6-43D0-91C0-023A7FCEB34F")
9087 IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6
9090 virtual HRESULT STDMETHODCALLTYPE SetFlags(
9091 BMDFrameFlags newFlags) = 0;
9093 virtual HRESULT STDMETHODCALLTYPE SetTimecode(
9094 BMDTimecodeFormat format,
9095 /* [in] */ IDeckLinkTimecode_v7_6 *timecode) = 0;
9097 virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents(
9098 BMDTimecodeFormat format,
9099 unsigned char hours,
9100 unsigned char minutes,
9101 unsigned char seconds,
9102 unsigned char frames,
9103 BMDTimecodeFlags flags) = 0;
9105 virtual HRESULT STDMETHODCALLTYPE SetAncillaryData(
9106 /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;
9110 #else /* C style interface */
9112 typedef struct IDeckLinkMutableVideoFrame_v7_6Vtbl
9116 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9117 IDeckLinkMutableVideoFrame_v7_6 * This,
9118 /* [in] */ REFIID riid,
9119 /* [annotation][iid_is][out] */
9120 __RPC__deref_out void **ppvObject);
9122 ULONG ( STDMETHODCALLTYPE *AddRef )(
9123 IDeckLinkMutableVideoFrame_v7_6 * This);
9125 ULONG ( STDMETHODCALLTYPE *Release )(
9126 IDeckLinkMutableVideoFrame_v7_6 * This);
9128 long ( STDMETHODCALLTYPE *GetWidth )(
9129 IDeckLinkMutableVideoFrame_v7_6 * This);
9131 long ( STDMETHODCALLTYPE *GetHeight )(
9132 IDeckLinkMutableVideoFrame_v7_6 * This);
9134 long ( STDMETHODCALLTYPE *GetRowBytes )(
9135 IDeckLinkMutableVideoFrame_v7_6 * This);
9137 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
9138 IDeckLinkMutableVideoFrame_v7_6 * This);
9140 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
9141 IDeckLinkMutableVideoFrame_v7_6 * This);
9143 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
9144 IDeckLinkMutableVideoFrame_v7_6 * This,
9145 /* [out] */ void **buffer);
9147 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
9148 IDeckLinkMutableVideoFrame_v7_6 * This,
9149 BMDTimecodeFormat format,
9150 /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
9152 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
9153 IDeckLinkMutableVideoFrame_v7_6 * This,
9154 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
9156 HRESULT ( STDMETHODCALLTYPE *SetFlags )(
9157 IDeckLinkMutableVideoFrame_v7_6 * This,
9158 BMDFrameFlags newFlags);
9160 HRESULT ( STDMETHODCALLTYPE *SetTimecode )(
9161 IDeckLinkMutableVideoFrame_v7_6 * This,
9162 BMDTimecodeFormat format,
9163 /* [in] */ IDeckLinkTimecode_v7_6 *timecode);
9165 HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )(
9166 IDeckLinkMutableVideoFrame_v7_6 * This,
9167 BMDTimecodeFormat format,
9168 unsigned char hours,
9169 unsigned char minutes,
9170 unsigned char seconds,
9171 unsigned char frames,
9172 BMDTimecodeFlags flags);
9174 HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )(
9175 IDeckLinkMutableVideoFrame_v7_6 * This,
9176 /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);
9179 } IDeckLinkMutableVideoFrame_v7_6Vtbl;
9181 interface IDeckLinkMutableVideoFrame_v7_6
9183 CONST_VTBL struct IDeckLinkMutableVideoFrame_v7_6Vtbl *lpVtbl;
9191 #define IDeckLinkMutableVideoFrame_v7_6_QueryInterface(This,riid,ppvObject) \
9192 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9194 #define IDeckLinkMutableVideoFrame_v7_6_AddRef(This) \
9195 ( (This)->lpVtbl -> AddRef(This) )
9197 #define IDeckLinkMutableVideoFrame_v7_6_Release(This) \
9198 ( (This)->lpVtbl -> Release(This) )
9201 #define IDeckLinkMutableVideoFrame_v7_6_GetWidth(This) \
9202 ( (This)->lpVtbl -> GetWidth(This) )
9204 #define IDeckLinkMutableVideoFrame_v7_6_GetHeight(This) \
9205 ( (This)->lpVtbl -> GetHeight(This) )
9207 #define IDeckLinkMutableVideoFrame_v7_6_GetRowBytes(This) \
9208 ( (This)->lpVtbl -> GetRowBytes(This) )
9210 #define IDeckLinkMutableVideoFrame_v7_6_GetPixelFormat(This) \
9211 ( (This)->lpVtbl -> GetPixelFormat(This) )
9213 #define IDeckLinkMutableVideoFrame_v7_6_GetFlags(This) \
9214 ( (This)->lpVtbl -> GetFlags(This) )
9216 #define IDeckLinkMutableVideoFrame_v7_6_GetBytes(This,buffer) \
9217 ( (This)->lpVtbl -> GetBytes(This,buffer) )
9219 #define IDeckLinkMutableVideoFrame_v7_6_GetTimecode(This,format,timecode) \
9220 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
9222 #define IDeckLinkMutableVideoFrame_v7_6_GetAncillaryData(This,ancillary) \
9223 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
9226 #define IDeckLinkMutableVideoFrame_v7_6_SetFlags(This,newFlags) \
9227 ( (This)->lpVtbl -> SetFlags(This,newFlags) )
9229 #define IDeckLinkMutableVideoFrame_v7_6_SetTimecode(This,format,timecode) \
9230 ( (This)->lpVtbl -> SetTimecode(This,format,timecode) )
9232 #define IDeckLinkMutableVideoFrame_v7_6_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) \
9233 ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) )
9235 #define IDeckLinkMutableVideoFrame_v7_6_SetAncillaryData(This,ancillary) \
9236 ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) )
9238 #endif /* COBJMACROS */
9241 #endif /* C style interface */
9246 #endif /* __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__ */
9249 #ifndef __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__
9250 #define __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__
9252 /* interface IDeckLinkVideoInputFrame_v7_6 */
9253 /* [helpstring][local][uuid][object] */
9256 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_6;
9258 #if defined(__cplusplus) && !defined(CINTERFACE)
9260 MIDL_INTERFACE("9A74FA41-AE9F-47AC-8CF4-01F42DD59965")
9261 IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6
9264 virtual HRESULT STDMETHODCALLTYPE GetStreamTime(
9265 /* [out] */ BMDTimeValue *frameTime,
9266 /* [out] */ BMDTimeValue *frameDuration,
9267 BMDTimeScale timeScale) = 0;
9269 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp(
9270 BMDTimeScale timeScale,
9271 /* [out] */ BMDTimeValue *frameTime,
9272 /* [out] */ BMDTimeValue *frameDuration) = 0;
9276 #else /* C style interface */
9278 typedef struct IDeckLinkVideoInputFrame_v7_6Vtbl
9282 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9283 IDeckLinkVideoInputFrame_v7_6 * This,
9284 /* [in] */ REFIID riid,
9285 /* [annotation][iid_is][out] */
9286 __RPC__deref_out void **ppvObject);
9288 ULONG ( STDMETHODCALLTYPE *AddRef )(
9289 IDeckLinkVideoInputFrame_v7_6 * This);
9291 ULONG ( STDMETHODCALLTYPE *Release )(
9292 IDeckLinkVideoInputFrame_v7_6 * This);
9294 long ( STDMETHODCALLTYPE *GetWidth )(
9295 IDeckLinkVideoInputFrame_v7_6 * This);
9297 long ( STDMETHODCALLTYPE *GetHeight )(
9298 IDeckLinkVideoInputFrame_v7_6 * This);
9300 long ( STDMETHODCALLTYPE *GetRowBytes )(
9301 IDeckLinkVideoInputFrame_v7_6 * This);
9303 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
9304 IDeckLinkVideoInputFrame_v7_6 * This);
9306 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
9307 IDeckLinkVideoInputFrame_v7_6 * This);
9309 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
9310 IDeckLinkVideoInputFrame_v7_6 * This,
9311 /* [out] */ void **buffer);
9313 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
9314 IDeckLinkVideoInputFrame_v7_6 * This,
9315 BMDTimecodeFormat format,
9316 /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
9318 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
9319 IDeckLinkVideoInputFrame_v7_6 * This,
9320 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
9322 HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
9323 IDeckLinkVideoInputFrame_v7_6 * This,
9324 /* [out] */ BMDTimeValue *frameTime,
9325 /* [out] */ BMDTimeValue *frameDuration,
9326 BMDTimeScale timeScale);
9328 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )(
9329 IDeckLinkVideoInputFrame_v7_6 * This,
9330 BMDTimeScale timeScale,
9331 /* [out] */ BMDTimeValue *frameTime,
9332 /* [out] */ BMDTimeValue *frameDuration);
9335 } IDeckLinkVideoInputFrame_v7_6Vtbl;
9337 interface IDeckLinkVideoInputFrame_v7_6
9339 CONST_VTBL struct IDeckLinkVideoInputFrame_v7_6Vtbl *lpVtbl;
9347 #define IDeckLinkVideoInputFrame_v7_6_QueryInterface(This,riid,ppvObject) \
9348 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9350 #define IDeckLinkVideoInputFrame_v7_6_AddRef(This) \
9351 ( (This)->lpVtbl -> AddRef(This) )
9353 #define IDeckLinkVideoInputFrame_v7_6_Release(This) \
9354 ( (This)->lpVtbl -> Release(This) )
9357 #define IDeckLinkVideoInputFrame_v7_6_GetWidth(This) \
9358 ( (This)->lpVtbl -> GetWidth(This) )
9360 #define IDeckLinkVideoInputFrame_v7_6_GetHeight(This) \
9361 ( (This)->lpVtbl -> GetHeight(This) )
9363 #define IDeckLinkVideoInputFrame_v7_6_GetRowBytes(This) \
9364 ( (This)->lpVtbl -> GetRowBytes(This) )
9366 #define IDeckLinkVideoInputFrame_v7_6_GetPixelFormat(This) \
9367 ( (This)->lpVtbl -> GetPixelFormat(This) )
9369 #define IDeckLinkVideoInputFrame_v7_6_GetFlags(This) \
9370 ( (This)->lpVtbl -> GetFlags(This) )
9372 #define IDeckLinkVideoInputFrame_v7_6_GetBytes(This,buffer) \
9373 ( (This)->lpVtbl -> GetBytes(This,buffer) )
9375 #define IDeckLinkVideoInputFrame_v7_6_GetTimecode(This,format,timecode) \
9376 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
9378 #define IDeckLinkVideoInputFrame_v7_6_GetAncillaryData(This,ancillary) \
9379 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
9382 #define IDeckLinkVideoInputFrame_v7_6_GetStreamTime(This,frameTime,frameDuration,timeScale) \
9383 ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) )
9385 #define IDeckLinkVideoInputFrame_v7_6_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) \
9386 ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) )
9388 #endif /* COBJMACROS */
9391 #endif /* C style interface */
9396 #endif /* __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__ */
9399 #ifndef __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__
9400 #define __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__
9402 /* interface IDeckLinkScreenPreviewCallback_v7_6 */
9403 /* [helpstring][local][uuid][object] */
9406 EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback_v7_6;
9408 #if defined(__cplusplus) && !defined(CINTERFACE)
9410 MIDL_INTERFACE("373F499D-4B4D-4518-AD22-6354E5A5825E")
9411 IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown
9414 virtual HRESULT STDMETHODCALLTYPE DrawFrame(
9415 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
9419 #else /* C style interface */
9421 typedef struct IDeckLinkScreenPreviewCallback_v7_6Vtbl
9425 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9426 IDeckLinkScreenPreviewCallback_v7_6 * This,
9427 /* [in] */ REFIID riid,
9428 /* [annotation][iid_is][out] */
9429 __RPC__deref_out void **ppvObject);
9431 ULONG ( STDMETHODCALLTYPE *AddRef )(
9432 IDeckLinkScreenPreviewCallback_v7_6 * This);
9434 ULONG ( STDMETHODCALLTYPE *Release )(
9435 IDeckLinkScreenPreviewCallback_v7_6 * This);
9437 HRESULT ( STDMETHODCALLTYPE *DrawFrame )(
9438 IDeckLinkScreenPreviewCallback_v7_6 * This,
9439 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
9442 } IDeckLinkScreenPreviewCallback_v7_6Vtbl;
9444 interface IDeckLinkScreenPreviewCallback_v7_6
9446 CONST_VTBL struct IDeckLinkScreenPreviewCallback_v7_6Vtbl *lpVtbl;
9454 #define IDeckLinkScreenPreviewCallback_v7_6_QueryInterface(This,riid,ppvObject) \
9455 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9457 #define IDeckLinkScreenPreviewCallback_v7_6_AddRef(This) \
9458 ( (This)->lpVtbl -> AddRef(This) )
9460 #define IDeckLinkScreenPreviewCallback_v7_6_Release(This) \
9461 ( (This)->lpVtbl -> Release(This) )
9464 #define IDeckLinkScreenPreviewCallback_v7_6_DrawFrame(This,theFrame) \
9465 ( (This)->lpVtbl -> DrawFrame(This,theFrame) )
9467 #endif /* COBJMACROS */
9470 #endif /* C style interface */
9475 #endif /* __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__ */
9478 #ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__
9479 #define __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__
9481 /* interface IDeckLinkGLScreenPreviewHelper_v7_6 */
9482 /* [helpstring][local][uuid][object] */
9485 EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper_v7_6;
9487 #if defined(__cplusplus) && !defined(CINTERFACE)
9489 MIDL_INTERFACE("BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA")
9490 IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown
9493 virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;
9495 virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;
9497 virtual HRESULT STDMETHODCALLTYPE SetFrame(
9498 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
9502 #else /* C style interface */
9504 typedef struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl
9508 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9509 IDeckLinkGLScreenPreviewHelper_v7_6 * This,
9510 /* [in] */ REFIID riid,
9511 /* [annotation][iid_is][out] */
9512 __RPC__deref_out void **ppvObject);
9514 ULONG ( STDMETHODCALLTYPE *AddRef )(
9515 IDeckLinkGLScreenPreviewHelper_v7_6 * This);
9517 ULONG ( STDMETHODCALLTYPE *Release )(
9518 IDeckLinkGLScreenPreviewHelper_v7_6 * This);
9520 HRESULT ( STDMETHODCALLTYPE *InitializeGL )(
9521 IDeckLinkGLScreenPreviewHelper_v7_6 * This);
9523 HRESULT ( STDMETHODCALLTYPE *PaintGL )(
9524 IDeckLinkGLScreenPreviewHelper_v7_6 * This);
9526 HRESULT ( STDMETHODCALLTYPE *SetFrame )(
9527 IDeckLinkGLScreenPreviewHelper_v7_6 * This,
9528 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
9531 } IDeckLinkGLScreenPreviewHelper_v7_6Vtbl;
9533 interface IDeckLinkGLScreenPreviewHelper_v7_6
9535 CONST_VTBL struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl *lpVtbl;
9543 #define IDeckLinkGLScreenPreviewHelper_v7_6_QueryInterface(This,riid,ppvObject) \
9544 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9546 #define IDeckLinkGLScreenPreviewHelper_v7_6_AddRef(This) \
9547 ( (This)->lpVtbl -> AddRef(This) )
9549 #define IDeckLinkGLScreenPreviewHelper_v7_6_Release(This) \
9550 ( (This)->lpVtbl -> Release(This) )
9553 #define IDeckLinkGLScreenPreviewHelper_v7_6_InitializeGL(This) \
9554 ( (This)->lpVtbl -> InitializeGL(This) )
9556 #define IDeckLinkGLScreenPreviewHelper_v7_6_PaintGL(This) \
9557 ( (This)->lpVtbl -> PaintGL(This) )
9559 #define IDeckLinkGLScreenPreviewHelper_v7_6_SetFrame(This,theFrame) \
9560 ( (This)->lpVtbl -> SetFrame(This,theFrame) )
9562 #endif /* COBJMACROS */
9565 #endif /* C style interface */
9570 #endif /* __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__ */
9573 #ifndef __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__
9574 #define __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__
9576 /* interface IDeckLinkVideoConversion_v7_6 */
9577 /* [helpstring][local][uuid][object] */
9580 EXTERN_C const IID IID_IDeckLinkVideoConversion_v7_6;
9582 #if defined(__cplusplus) && !defined(CINTERFACE)
9584 MIDL_INTERFACE("3EB504C9-F97D-40FE-A158-D407D48CB53B")
9585 IDeckLinkVideoConversion_v7_6 : public IUnknown
9588 virtual HRESULT STDMETHODCALLTYPE ConvertFrame(
9589 /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,
9590 /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame) = 0;
9594 #else /* C style interface */
9596 typedef struct IDeckLinkVideoConversion_v7_6Vtbl
9600 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9601 IDeckLinkVideoConversion_v7_6 * This,
9602 /* [in] */ REFIID riid,
9603 /* [annotation][iid_is][out] */
9604 __RPC__deref_out void **ppvObject);
9606 ULONG ( STDMETHODCALLTYPE *AddRef )(
9607 IDeckLinkVideoConversion_v7_6 * This);
9609 ULONG ( STDMETHODCALLTYPE *Release )(
9610 IDeckLinkVideoConversion_v7_6 * This);
9612 HRESULT ( STDMETHODCALLTYPE *ConvertFrame )(
9613 IDeckLinkVideoConversion_v7_6 * This,
9614 /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,
9615 /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame);
9618 } IDeckLinkVideoConversion_v7_6Vtbl;
9620 interface IDeckLinkVideoConversion_v7_6
9622 CONST_VTBL struct IDeckLinkVideoConversion_v7_6Vtbl *lpVtbl;
9630 #define IDeckLinkVideoConversion_v7_6_QueryInterface(This,riid,ppvObject) \
9631 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9633 #define IDeckLinkVideoConversion_v7_6_AddRef(This) \
9634 ( (This)->lpVtbl -> AddRef(This) )
9636 #define IDeckLinkVideoConversion_v7_6_Release(This) \
9637 ( (This)->lpVtbl -> Release(This) )
9640 #define IDeckLinkVideoConversion_v7_6_ConvertFrame(This,srcFrame,dstFrame) \
9641 ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) )
9643 #endif /* COBJMACROS */
9646 #endif /* C style interface */
9651 #endif /* __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__ */
9654 #ifndef __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__
9655 #define __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__
9657 /* interface IDeckLinkConfiguration_v7_6 */
9658 /* [helpstring][uuid][object] */
9661 EXTERN_C const IID IID_IDeckLinkConfiguration_v7_6;
9663 #if defined(__cplusplus) && !defined(CINTERFACE)
9665 MIDL_INTERFACE("B8EAD569-B764-47F0-A73F-AE40DF6CBF10")
9666 IDeckLinkConfiguration_v7_6 : public IUnknown
9669 virtual HRESULT STDMETHODCALLTYPE GetConfigurationValidator(
9670 /* [out] */ IDeckLinkConfiguration_v7_6 **configObject) = 0;
9672 virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;
9674 virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFormat(
9675 /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection) = 0;
9677 virtual HRESULT STDMETHODCALLTYPE IsVideoOutputActive(
9678 /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,
9679 /* [out] */ BOOL *active) = 0;
9681 virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoOutputFlags(
9682 /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;
9684 virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoOutputFlags(
9685 /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;
9687 virtual HRESULT STDMETHODCALLTYPE EnableFieldFlickerRemovalWhenPaused(
9688 /* [in] */ BOOL enable) = 0;
9690 virtual HRESULT STDMETHODCALLTYPE IsEnabledFieldFlickerRemovalWhenPaused(
9691 /* [out] */ BOOL *enabled) = 0;
9693 virtual HRESULT STDMETHODCALLTYPE Set444And3GBpsVideoOutput(
9694 /* [in] */ BOOL enable444VideoOutput,
9695 /* [in] */ BOOL enable3GbsOutput) = 0;
9697 virtual HRESULT STDMETHODCALLTYPE Get444And3GBpsVideoOutput(
9698 /* [out] */ BOOL *is444VideoOutputEnabled,
9699 /* [out] */ BOOL *threeGbsOutputEnabled) = 0;
9701 virtual HRESULT STDMETHODCALLTYPE SetVideoOutputConversionMode(
9702 /* [in] */ BMDVideoOutputConversionMode conversionMode) = 0;
9704 virtual HRESULT STDMETHODCALLTYPE GetVideoOutputConversionMode(
9705 /* [out] */ BMDVideoOutputConversionMode *conversionMode) = 0;
9707 virtual HRESULT STDMETHODCALLTYPE Set_HD1080p24_to_HD1080i5994_Conversion(
9708 /* [in] */ BOOL enable) = 0;
9710 virtual HRESULT STDMETHODCALLTYPE Get_HD1080p24_to_HD1080i5994_Conversion(
9711 /* [out] */ BOOL *enabled) = 0;
9713 virtual HRESULT STDMETHODCALLTYPE SetVideoInputFormat(
9714 /* [in] */ BMDVideoConnection_v7_6 videoInputFormat) = 0;
9716 virtual HRESULT STDMETHODCALLTYPE GetVideoInputFormat(
9717 /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat) = 0;
9719 virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoInputFlags(
9720 /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;
9722 virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoInputFlags(
9723 /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;
9725 virtual HRESULT STDMETHODCALLTYPE SetVideoInputConversionMode(
9726 /* [in] */ BMDVideoInputConversionMode conversionMode) = 0;
9728 virtual HRESULT STDMETHODCALLTYPE GetVideoInputConversionMode(
9729 /* [out] */ BMDVideoInputConversionMode *conversionMode) = 0;
9731 virtual HRESULT STDMETHODCALLTYPE SetBlackVideoOutputDuringCapture(
9732 /* [in] */ BOOL blackOutInCapture) = 0;
9734 virtual HRESULT STDMETHODCALLTYPE GetBlackVideoOutputDuringCapture(
9735 /* [out] */ BOOL *blackOutInCapture) = 0;
9737 virtual HRESULT STDMETHODCALLTYPE Set32PulldownSequenceInitialTimecodeFrame(
9738 /* [in] */ unsigned long aFrameTimecode) = 0;
9740 virtual HRESULT STDMETHODCALLTYPE Get32PulldownSequenceInitialTimecodeFrame(
9741 /* [out] */ unsigned long *aFrameTimecode) = 0;
9743 virtual HRESULT STDMETHODCALLTYPE SetVancSourceLineMapping(
9744 /* [in] */ unsigned long activeLine1VANCsource,
9745 /* [in] */ unsigned long activeLine2VANCsource,
9746 /* [in] */ unsigned long activeLine3VANCsource) = 0;
9748 virtual HRESULT STDMETHODCALLTYPE GetVancSourceLineMapping(
9749 /* [out] */ unsigned long *activeLine1VANCsource,
9750 /* [out] */ unsigned long *activeLine2VANCsource,
9751 /* [out] */ unsigned long *activeLine3VANCsource) = 0;
9753 virtual HRESULT STDMETHODCALLTYPE SetAudioInputFormat(
9754 /* [in] */ BMDAudioConnection audioInputFormat) = 0;
9756 virtual HRESULT STDMETHODCALLTYPE GetAudioInputFormat(
9757 /* [out] */ BMDAudioConnection *audioInputFormat) = 0;
9761 #else /* C style interface */
9763 typedef struct IDeckLinkConfiguration_v7_6Vtbl
9767 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9768 IDeckLinkConfiguration_v7_6 * This,
9769 /* [in] */ REFIID riid,
9770 /* [annotation][iid_is][out] */
9771 __RPC__deref_out void **ppvObject);
9773 ULONG ( STDMETHODCALLTYPE *AddRef )(
9774 IDeckLinkConfiguration_v7_6 * This);
9776 ULONG ( STDMETHODCALLTYPE *Release )(
9777 IDeckLinkConfiguration_v7_6 * This);
9779 HRESULT ( STDMETHODCALLTYPE *GetConfigurationValidator )(
9780 IDeckLinkConfiguration_v7_6 * This,
9781 /* [out] */ IDeckLinkConfiguration_v7_6 **configObject);
9783 HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )(
9784 IDeckLinkConfiguration_v7_6 * This);
9786 HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFormat )(
9787 IDeckLinkConfiguration_v7_6 * This,
9788 /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection);
9790 HRESULT ( STDMETHODCALLTYPE *IsVideoOutputActive )(
9791 IDeckLinkConfiguration_v7_6 * This,
9792 /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,
9793 /* [out] */ BOOL *active);
9795 HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoOutputFlags )(
9796 IDeckLinkConfiguration_v7_6 * This,
9797 /* [in] */ BMDAnalogVideoFlags analogVideoFlags);
9799 HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoOutputFlags )(
9800 IDeckLinkConfiguration_v7_6 * This,
9801 /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);
9803 HRESULT ( STDMETHODCALLTYPE *EnableFieldFlickerRemovalWhenPaused )(
9804 IDeckLinkConfiguration_v7_6 * This,
9805 /* [in] */ BOOL enable);
9807 HRESULT ( STDMETHODCALLTYPE *IsEnabledFieldFlickerRemovalWhenPaused )(
9808 IDeckLinkConfiguration_v7_6 * This,
9809 /* [out] */ BOOL *enabled);
9811 HRESULT ( STDMETHODCALLTYPE *Set444And3GBpsVideoOutput )(
9812 IDeckLinkConfiguration_v7_6 * This,
9813 /* [in] */ BOOL enable444VideoOutput,
9814 /* [in] */ BOOL enable3GbsOutput);
9816 HRESULT ( STDMETHODCALLTYPE *Get444And3GBpsVideoOutput )(
9817 IDeckLinkConfiguration_v7_6 * This,
9818 /* [out] */ BOOL *is444VideoOutputEnabled,
9819 /* [out] */ BOOL *threeGbsOutputEnabled);
9821 HRESULT ( STDMETHODCALLTYPE *SetVideoOutputConversionMode )(
9822 IDeckLinkConfiguration_v7_6 * This,
9823 /* [in] */ BMDVideoOutputConversionMode conversionMode);
9825 HRESULT ( STDMETHODCALLTYPE *GetVideoOutputConversionMode )(
9826 IDeckLinkConfiguration_v7_6 * This,
9827 /* [out] */ BMDVideoOutputConversionMode *conversionMode);
9829 HRESULT ( STDMETHODCALLTYPE *Set_HD1080p24_to_HD1080i5994_Conversion )(
9830 IDeckLinkConfiguration_v7_6 * This,
9831 /* [in] */ BOOL enable);
9833 HRESULT ( STDMETHODCALLTYPE *Get_HD1080p24_to_HD1080i5994_Conversion )(
9834 IDeckLinkConfiguration_v7_6 * This,
9835 /* [out] */ BOOL *enabled);
9837 HRESULT ( STDMETHODCALLTYPE *SetVideoInputFormat )(
9838 IDeckLinkConfiguration_v7_6 * This,
9839 /* [in] */ BMDVideoConnection_v7_6 videoInputFormat);
9841 HRESULT ( STDMETHODCALLTYPE *GetVideoInputFormat )(
9842 IDeckLinkConfiguration_v7_6 * This,
9843 /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat);
9845 HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoInputFlags )(
9846 IDeckLinkConfiguration_v7_6 * This,
9847 /* [in] */ BMDAnalogVideoFlags analogVideoFlags);
9849 HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoInputFlags )(
9850 IDeckLinkConfiguration_v7_6 * This,
9851 /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);
9853 HRESULT ( STDMETHODCALLTYPE *SetVideoInputConversionMode )(
9854 IDeckLinkConfiguration_v7_6 * This,
9855 /* [in] */ BMDVideoInputConversionMode conversionMode);
9857 HRESULT ( STDMETHODCALLTYPE *GetVideoInputConversionMode )(
9858 IDeckLinkConfiguration_v7_6 * This,
9859 /* [out] */ BMDVideoInputConversionMode *conversionMode);
9861 HRESULT ( STDMETHODCALLTYPE *SetBlackVideoOutputDuringCapture )(
9862 IDeckLinkConfiguration_v7_6 * This,
9863 /* [in] */ BOOL blackOutInCapture);
9865 HRESULT ( STDMETHODCALLTYPE *GetBlackVideoOutputDuringCapture )(
9866 IDeckLinkConfiguration_v7_6 * This,
9867 /* [out] */ BOOL *blackOutInCapture);
9869 HRESULT ( STDMETHODCALLTYPE *Set32PulldownSequenceInitialTimecodeFrame )(
9870 IDeckLinkConfiguration_v7_6 * This,
9871 /* [in] */ unsigned long aFrameTimecode);
9873 HRESULT ( STDMETHODCALLTYPE *Get32PulldownSequenceInitialTimecodeFrame )(
9874 IDeckLinkConfiguration_v7_6 * This,
9875 /* [out] */ unsigned long *aFrameTimecode);
9877 HRESULT ( STDMETHODCALLTYPE *SetVancSourceLineMapping )(
9878 IDeckLinkConfiguration_v7_6 * This,
9879 /* [in] */ unsigned long activeLine1VANCsource,
9880 /* [in] */ unsigned long activeLine2VANCsource,
9881 /* [in] */ unsigned long activeLine3VANCsource);
9883 HRESULT ( STDMETHODCALLTYPE *GetVancSourceLineMapping )(
9884 IDeckLinkConfiguration_v7_6 * This,
9885 /* [out] */ unsigned long *activeLine1VANCsource,
9886 /* [out] */ unsigned long *activeLine2VANCsource,
9887 /* [out] */ unsigned long *activeLine3VANCsource);
9889 HRESULT ( STDMETHODCALLTYPE *SetAudioInputFormat )(
9890 IDeckLinkConfiguration_v7_6 * This,
9891 /* [in] */ BMDAudioConnection audioInputFormat);
9893 HRESULT ( STDMETHODCALLTYPE *GetAudioInputFormat )(
9894 IDeckLinkConfiguration_v7_6 * This,
9895 /* [out] */ BMDAudioConnection *audioInputFormat);
9898 } IDeckLinkConfiguration_v7_6Vtbl;
9900 interface IDeckLinkConfiguration_v7_6
9902 CONST_VTBL struct IDeckLinkConfiguration_v7_6Vtbl *lpVtbl;
9910 #define IDeckLinkConfiguration_v7_6_QueryInterface(This,riid,ppvObject) \
9911 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9913 #define IDeckLinkConfiguration_v7_6_AddRef(This) \
9914 ( (This)->lpVtbl -> AddRef(This) )
9916 #define IDeckLinkConfiguration_v7_6_Release(This) \
9917 ( (This)->lpVtbl -> Release(This) )
9920 #define IDeckLinkConfiguration_v7_6_GetConfigurationValidator(This,configObject) \
9921 ( (This)->lpVtbl -> GetConfigurationValidator(This,configObject) )
9923 #define IDeckLinkConfiguration_v7_6_WriteConfigurationToPreferences(This) \
9924 ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) )
9926 #define IDeckLinkConfiguration_v7_6_SetVideoOutputFormat(This,videoOutputConnection) \
9927 ( (This)->lpVtbl -> SetVideoOutputFormat(This,videoOutputConnection) )
9929 #define IDeckLinkConfiguration_v7_6_IsVideoOutputActive(This,videoOutputConnection,active) \
9930 ( (This)->lpVtbl -> IsVideoOutputActive(This,videoOutputConnection,active) )
9932 #define IDeckLinkConfiguration_v7_6_SetAnalogVideoOutputFlags(This,analogVideoFlags) \
9933 ( (This)->lpVtbl -> SetAnalogVideoOutputFlags(This,analogVideoFlags) )
9935 #define IDeckLinkConfiguration_v7_6_GetAnalogVideoOutputFlags(This,analogVideoFlags) \
9936 ( (This)->lpVtbl -> GetAnalogVideoOutputFlags(This,analogVideoFlags) )
9938 #define IDeckLinkConfiguration_v7_6_EnableFieldFlickerRemovalWhenPaused(This,enable) \
9939 ( (This)->lpVtbl -> EnableFieldFlickerRemovalWhenPaused(This,enable) )
9941 #define IDeckLinkConfiguration_v7_6_IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) \
9942 ( (This)->lpVtbl -> IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) )
9944 #define IDeckLinkConfiguration_v7_6_Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) \
9945 ( (This)->lpVtbl -> Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) )
9947 #define IDeckLinkConfiguration_v7_6_Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) \
9948 ( (This)->lpVtbl -> Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) )
9950 #define IDeckLinkConfiguration_v7_6_SetVideoOutputConversionMode(This,conversionMode) \
9951 ( (This)->lpVtbl -> SetVideoOutputConversionMode(This,conversionMode) )
9953 #define IDeckLinkConfiguration_v7_6_GetVideoOutputConversionMode(This,conversionMode) \
9954 ( (This)->lpVtbl -> GetVideoOutputConversionMode(This,conversionMode) )
9956 #define IDeckLinkConfiguration_v7_6_Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) \
9957 ( (This)->lpVtbl -> Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) )
9959 #define IDeckLinkConfiguration_v7_6_Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) \
9960 ( (This)->lpVtbl -> Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) )
9962 #define IDeckLinkConfiguration_v7_6_SetVideoInputFormat(This,videoInputFormat) \
9963 ( (This)->lpVtbl -> SetVideoInputFormat(This,videoInputFormat) )
9965 #define IDeckLinkConfiguration_v7_6_GetVideoInputFormat(This,videoInputFormat) \
9966 ( (This)->lpVtbl -> GetVideoInputFormat(This,videoInputFormat) )
9968 #define IDeckLinkConfiguration_v7_6_SetAnalogVideoInputFlags(This,analogVideoFlags) \
9969 ( (This)->lpVtbl -> SetAnalogVideoInputFlags(This,analogVideoFlags) )
9971 #define IDeckLinkConfiguration_v7_6_GetAnalogVideoInputFlags(This,analogVideoFlags) \
9972 ( (This)->lpVtbl -> GetAnalogVideoInputFlags(This,analogVideoFlags) )
9974 #define IDeckLinkConfiguration_v7_6_SetVideoInputConversionMode(This,conversionMode) \
9975 ( (This)->lpVtbl -> SetVideoInputConversionMode(This,conversionMode) )
9977 #define IDeckLinkConfiguration_v7_6_GetVideoInputConversionMode(This,conversionMode) \
9978 ( (This)->lpVtbl -> GetVideoInputConversionMode(This,conversionMode) )
9980 #define IDeckLinkConfiguration_v7_6_SetBlackVideoOutputDuringCapture(This,blackOutInCapture) \
9981 ( (This)->lpVtbl -> SetBlackVideoOutputDuringCapture(This,blackOutInCapture) )
9983 #define IDeckLinkConfiguration_v7_6_GetBlackVideoOutputDuringCapture(This,blackOutInCapture) \
9984 ( (This)->lpVtbl -> GetBlackVideoOutputDuringCapture(This,blackOutInCapture) )
9986 #define IDeckLinkConfiguration_v7_6_Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) \
9987 ( (This)->lpVtbl -> Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) )
9989 #define IDeckLinkConfiguration_v7_6_Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) \
9990 ( (This)->lpVtbl -> Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) )
9992 #define IDeckLinkConfiguration_v7_6_SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) \
9993 ( (This)->lpVtbl -> SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) )
9995 #define IDeckLinkConfiguration_v7_6_GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) \
9996 ( (This)->lpVtbl -> GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) )
9998 #define IDeckLinkConfiguration_v7_6_SetAudioInputFormat(This,audioInputFormat) \
9999 ( (This)->lpVtbl -> SetAudioInputFormat(This,audioInputFormat) )
10001 #define IDeckLinkConfiguration_v7_6_GetAudioInputFormat(This,audioInputFormat) \
10002 ( (This)->lpVtbl -> GetAudioInputFormat(This,audioInputFormat) )
10004 #endif /* COBJMACROS */
10007 #endif /* C style interface */
10012 #endif /* __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__ */
10015 #ifndef __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__
10016 #define __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__
10018 /* interface IDeckLinkVideoOutputCallback_v7_6 */
10019 /* [helpstring][uuid][object] */
10022 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_6;
10024 #if defined(__cplusplus) && !defined(CINTERFACE)
10026 MIDL_INTERFACE("E763A626-4A3C-49D1-BF13-E7AD3692AE52")
10027 IDeckLinkVideoOutputCallback_v7_6 : public IUnknown
10030 virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(
10031 /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,
10032 /* [in] */ BMDOutputFrameCompletionResult result) = 0;
10034 virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;
10038 #else /* C style interface */
10040 typedef struct IDeckLinkVideoOutputCallback_v7_6Vtbl
10044 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10045 IDeckLinkVideoOutputCallback_v7_6 * This,
10046 /* [in] */ REFIID riid,
10047 /* [annotation][iid_is][out] */
10048 __RPC__deref_out void **ppvObject);
10050 ULONG ( STDMETHODCALLTYPE *AddRef )(
10051 IDeckLinkVideoOutputCallback_v7_6 * This);
10053 ULONG ( STDMETHODCALLTYPE *Release )(
10054 IDeckLinkVideoOutputCallback_v7_6 * This);
10056 HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )(
10057 IDeckLinkVideoOutputCallback_v7_6 * This,
10058 /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,
10059 /* [in] */ BMDOutputFrameCompletionResult result);
10061 HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )(
10062 IDeckLinkVideoOutputCallback_v7_6 * This);
10065 } IDeckLinkVideoOutputCallback_v7_6Vtbl;
10067 interface IDeckLinkVideoOutputCallback_v7_6
10069 CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_6Vtbl *lpVtbl;
10077 #define IDeckLinkVideoOutputCallback_v7_6_QueryInterface(This,riid,ppvObject) \
10078 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10080 #define IDeckLinkVideoOutputCallback_v7_6_AddRef(This) \
10081 ( (This)->lpVtbl -> AddRef(This) )
10083 #define IDeckLinkVideoOutputCallback_v7_6_Release(This) \
10084 ( (This)->lpVtbl -> Release(This) )
10087 #define IDeckLinkVideoOutputCallback_v7_6_ScheduledFrameCompleted(This,completedFrame,result) \
10088 ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) )
10090 #define IDeckLinkVideoOutputCallback_v7_6_ScheduledPlaybackHasStopped(This) \
10091 ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) )
10093 #endif /* COBJMACROS */
10096 #endif /* C style interface */
10101 #endif /* __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__ */
10104 #ifndef __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__
10105 #define __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__
10107 /* interface IDeckLinkInputCallback_v7_6 */
10108 /* [helpstring][uuid][object] */
10111 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_6;
10113 #if defined(__cplusplus) && !defined(CINTERFACE)
10115 MIDL_INTERFACE("31D28EE7-88B6-4CB1-897A-CDBF79A26414")
10116 IDeckLinkInputCallback_v7_6 : public IUnknown
10119 virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(
10120 /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
10121 /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
10122 /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
10124 virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(
10125 /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,
10126 /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;
10130 #else /* C style interface */
10132 typedef struct IDeckLinkInputCallback_v7_6Vtbl
10136 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10137 IDeckLinkInputCallback_v7_6 * This,
10138 /* [in] */ REFIID riid,
10139 /* [annotation][iid_is][out] */
10140 __RPC__deref_out void **ppvObject);
10142 ULONG ( STDMETHODCALLTYPE *AddRef )(
10143 IDeckLinkInputCallback_v7_6 * This);
10145 ULONG ( STDMETHODCALLTYPE *Release )(
10146 IDeckLinkInputCallback_v7_6 * This);
10148 HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )(
10149 IDeckLinkInputCallback_v7_6 * This,
10150 /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
10151 /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
10152 /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
10154 HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(
10155 IDeckLinkInputCallback_v7_6 * This,
10156 /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,
10157 /* [in] */ IDeckLinkAudioInputPacket *audioPacket);
10160 } IDeckLinkInputCallback_v7_6Vtbl;
10162 interface IDeckLinkInputCallback_v7_6
10164 CONST_VTBL struct IDeckLinkInputCallback_v7_6Vtbl *lpVtbl;
10172 #define IDeckLinkInputCallback_v7_6_QueryInterface(This,riid,ppvObject) \
10173 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10175 #define IDeckLinkInputCallback_v7_6_AddRef(This) \
10176 ( (This)->lpVtbl -> AddRef(This) )
10178 #define IDeckLinkInputCallback_v7_6_Release(This) \
10179 ( (This)->lpVtbl -> Release(This) )
10182 #define IDeckLinkInputCallback_v7_6_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \
10183 ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )
10185 #define IDeckLinkInputCallback_v7_6_VideoInputFrameArrived(This,videoFrame,audioPacket) \
10186 ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )
10188 #endif /* COBJMACROS */
10191 #endif /* C style interface */
10196 #endif /* __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__ */
10199 EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper_v7_6;
10203 class DECLSPEC_UUID("D398CEE7-4434-4CA3-9BA6-5AE34556B905")
10204 CDeckLinkGLScreenPreviewHelper_v7_6;
10207 EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion_v7_6;
10211 class DECLSPEC_UUID("FFA84F77-73BE-4FB7-B03E-B5E44B9F759B")
10212 CDeckLinkVideoConversion_v7_6;
10215 #ifndef __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__
10216 #define __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__
10218 /* interface IDeckLinkInputCallback_v7_3 */
10219 /* [helpstring][uuid][object] */
10222 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_3;
10224 #if defined(__cplusplus) && !defined(CINTERFACE)
10226 MIDL_INTERFACE("FD6F311D-4D00-444B-9ED4-1F25B5730AD0")
10227 IDeckLinkInputCallback_v7_3 : public IUnknown
10230 virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged(
10231 /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
10232 /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
10233 /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;
10235 virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(
10236 /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,
10237 /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;
10241 #else /* C style interface */
10243 typedef struct IDeckLinkInputCallback_v7_3Vtbl
10247 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10248 IDeckLinkInputCallback_v7_3 * This,
10249 /* [in] */ REFIID riid,
10250 /* [annotation][iid_is][out] */
10251 __RPC__deref_out void **ppvObject);
10253 ULONG ( STDMETHODCALLTYPE *AddRef )(
10254 IDeckLinkInputCallback_v7_3 * This);
10256 ULONG ( STDMETHODCALLTYPE *Release )(
10257 IDeckLinkInputCallback_v7_3 * This);
10259 HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )(
10260 IDeckLinkInputCallback_v7_3 * This,
10261 /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,
10262 /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,
10263 /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);
10265 HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(
10266 IDeckLinkInputCallback_v7_3 * This,
10267 /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,
10268 /* [in] */ IDeckLinkAudioInputPacket *audioPacket);
10271 } IDeckLinkInputCallback_v7_3Vtbl;
10273 interface IDeckLinkInputCallback_v7_3
10275 CONST_VTBL struct IDeckLinkInputCallback_v7_3Vtbl *lpVtbl;
10283 #define IDeckLinkInputCallback_v7_3_QueryInterface(This,riid,ppvObject) \
10284 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10286 #define IDeckLinkInputCallback_v7_3_AddRef(This) \
10287 ( (This)->lpVtbl -> AddRef(This) )
10289 #define IDeckLinkInputCallback_v7_3_Release(This) \
10290 ( (This)->lpVtbl -> Release(This) )
10293 #define IDeckLinkInputCallback_v7_3_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) \
10294 ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) )
10296 #define IDeckLinkInputCallback_v7_3_VideoInputFrameArrived(This,videoFrame,audioPacket) \
10297 ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )
10299 #endif /* COBJMACROS */
10302 #endif /* C style interface */
10307 #endif /* __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ */
10310 #ifndef __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__
10311 #define __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__
10313 /* interface IDeckLinkOutput_v7_3 */
10314 /* [helpstring][local][uuid][object] */
10317 EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
10319 #if defined(__cplusplus) && !defined(CINTERFACE)
10321 MIDL_INTERFACE("271C65E3-C323-4344-A30F-D908BCB20AA3")
10322 IDeckLinkOutput_v7_3 : public IUnknown
10325 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
10326 BMDDisplayMode displayMode,
10327 BMDPixelFormat pixelFormat,
10328 /* [out] */ BMDDisplayModeSupport *result) = 0;
10330 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
10331 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
10333 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
10334 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
10336 virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
10337 BMDDisplayMode displayMode,
10338 BMDVideoOutputFlags flags) = 0;
10340 virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
10342 virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
10343 /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
10345 virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
10349 BMDPixelFormat pixelFormat,
10350 BMDFrameFlags flags,
10351 /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;
10353 virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData(
10354 BMDPixelFormat pixelFormat,
10355 /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;
10357 virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
10358 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;
10360 virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
10361 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
10362 BMDTimeValue displayTime,
10363 BMDTimeValue displayDuration,
10364 BMDTimeScale timeScale) = 0;
10366 virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
10367 /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;
10369 virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount(
10370 /* [out] */ unsigned long *bufferedFrameCount) = 0;
10372 virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
10373 BMDAudioSampleRate sampleRate,
10374 BMDAudioSampleType sampleType,
10375 unsigned long channelCount,
10376 BMDAudioOutputStreamType streamType) = 0;
10378 virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
10380 virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
10381 /* [in] */ void *buffer,
10382 unsigned long sampleFrameCount,
10383 /* [out] */ unsigned long *sampleFramesWritten) = 0;
10385 virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
10387 virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
10389 virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
10390 /* [in] */ void *buffer,
10391 unsigned long sampleFrameCount,
10392 BMDTimeValue streamTime,
10393 BMDTimeScale timeScale,
10394 /* [out] */ unsigned long *sampleFramesWritten) = 0;
10396 virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
10397 /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;
10399 virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
10401 virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
10402 /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
10404 virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
10405 BMDTimeValue playbackStartTime,
10406 BMDTimeScale timeScale,
10407 double playbackSpeed) = 0;
10409 virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
10410 BMDTimeValue stopPlaybackAtTime,
10411 /* [out] */ BMDTimeValue *actualStopTime,
10412 BMDTimeScale timeScale) = 0;
10414 virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning(
10415 /* [out] */ BOOL *active) = 0;
10417 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
10418 BMDTimeScale desiredTimeScale,
10419 /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;
10423 #else /* C style interface */
10425 typedef struct IDeckLinkOutput_v7_3Vtbl
10429 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10430 IDeckLinkOutput_v7_3 * This,
10431 /* [in] */ REFIID riid,
10432 /* [annotation][iid_is][out] */
10433 __RPC__deref_out void **ppvObject);
10435 ULONG ( STDMETHODCALLTYPE *AddRef )(
10436 IDeckLinkOutput_v7_3 * This);
10438 ULONG ( STDMETHODCALLTYPE *Release )(
10439 IDeckLinkOutput_v7_3 * This);
10441 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
10442 IDeckLinkOutput_v7_3 * This,
10443 BMDDisplayMode displayMode,
10444 BMDPixelFormat pixelFormat,
10445 /* [out] */ BMDDisplayModeSupport *result);
10447 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
10448 IDeckLinkOutput_v7_3 * This,
10449 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
10451 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
10452 IDeckLinkOutput_v7_3 * This,
10453 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
10455 HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
10456 IDeckLinkOutput_v7_3 * This,
10457 BMDDisplayMode displayMode,
10458 BMDVideoOutputFlags flags);
10460 HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
10461 IDeckLinkOutput_v7_3 * This);
10463 HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
10464 IDeckLinkOutput_v7_3 * This,
10465 /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
10467 HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
10468 IDeckLinkOutput_v7_3 * This,
10472 BMDPixelFormat pixelFormat,
10473 BMDFrameFlags flags,
10474 /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);
10476 HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )(
10477 IDeckLinkOutput_v7_3 * This,
10478 BMDPixelFormat pixelFormat,
10479 /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);
10481 HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
10482 IDeckLinkOutput_v7_3 * This,
10483 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);
10485 HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
10486 IDeckLinkOutput_v7_3 * This,
10487 /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,
10488 BMDTimeValue displayTime,
10489 BMDTimeValue displayDuration,
10490 BMDTimeScale timeScale);
10492 HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
10493 IDeckLinkOutput_v7_3 * This,
10494 /* [in] */ IDeckLinkVideoOutputCallback *theCallback);
10496 HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )(
10497 IDeckLinkOutput_v7_3 * This,
10498 /* [out] */ unsigned long *bufferedFrameCount);
10500 HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
10501 IDeckLinkOutput_v7_3 * This,
10502 BMDAudioSampleRate sampleRate,
10503 BMDAudioSampleType sampleType,
10504 unsigned long channelCount,
10505 BMDAudioOutputStreamType streamType);
10507 HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
10508 IDeckLinkOutput_v7_3 * This);
10510 HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
10511 IDeckLinkOutput_v7_3 * This,
10512 /* [in] */ void *buffer,
10513 unsigned long sampleFrameCount,
10514 /* [out] */ unsigned long *sampleFramesWritten);
10516 HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
10517 IDeckLinkOutput_v7_3 * This);
10519 HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
10520 IDeckLinkOutput_v7_3 * This);
10522 HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
10523 IDeckLinkOutput_v7_3 * This,
10524 /* [in] */ void *buffer,
10525 unsigned long sampleFrameCount,
10526 BMDTimeValue streamTime,
10527 BMDTimeScale timeScale,
10528 /* [out] */ unsigned long *sampleFramesWritten);
10530 HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
10531 IDeckLinkOutput_v7_3 * This,
10532 /* [out] */ unsigned long *bufferedSampleFrameCount);
10534 HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
10535 IDeckLinkOutput_v7_3 * This);
10537 HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
10538 IDeckLinkOutput_v7_3 * This,
10539 /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
10541 HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
10542 IDeckLinkOutput_v7_3 * This,
10543 BMDTimeValue playbackStartTime,
10544 BMDTimeScale timeScale,
10545 double playbackSpeed);
10547 HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
10548 IDeckLinkOutput_v7_3 * This,
10549 BMDTimeValue stopPlaybackAtTime,
10550 /* [out] */ BMDTimeValue *actualStopTime,
10551 BMDTimeScale timeScale);
10553 HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )(
10554 IDeckLinkOutput_v7_3 * This,
10555 /* [out] */ BOOL *active);
10557 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
10558 IDeckLinkOutput_v7_3 * This,
10559 BMDTimeScale desiredTimeScale,
10560 /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan);
10563 } IDeckLinkOutput_v7_3Vtbl;
10565 interface IDeckLinkOutput_v7_3
10567 CONST_VTBL struct IDeckLinkOutput_v7_3Vtbl *lpVtbl;
10575 #define IDeckLinkOutput_v7_3_QueryInterface(This,riid,ppvObject) \
10576 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10578 #define IDeckLinkOutput_v7_3_AddRef(This) \
10579 ( (This)->lpVtbl -> AddRef(This) )
10581 #define IDeckLinkOutput_v7_3_Release(This) \
10582 ( (This)->lpVtbl -> Release(This) )
10585 #define IDeckLinkOutput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \
10586 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
10588 #define IDeckLinkOutput_v7_3_GetDisplayModeIterator(This,iterator) \
10589 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
10591 #define IDeckLinkOutput_v7_3_SetScreenPreviewCallback(This,previewCallback) \
10592 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
10594 #define IDeckLinkOutput_v7_3_EnableVideoOutput(This,displayMode,flags) \
10595 ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) )
10597 #define IDeckLinkOutput_v7_3_DisableVideoOutput(This) \
10598 ( (This)->lpVtbl -> DisableVideoOutput(This) )
10600 #define IDeckLinkOutput_v7_3_SetVideoOutputFrameMemoryAllocator(This,theAllocator) \
10601 ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
10603 #define IDeckLinkOutput_v7_3_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \
10604 ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
10606 #define IDeckLinkOutput_v7_3_CreateAncillaryData(This,pixelFormat,outBuffer) \
10607 ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) )
10609 #define IDeckLinkOutput_v7_3_DisplayVideoFrameSync(This,theFrame) \
10610 ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
10612 #define IDeckLinkOutput_v7_3_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \
10613 ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
10615 #define IDeckLinkOutput_v7_3_SetScheduledFrameCompletionCallback(This,theCallback) \
10616 ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
10618 #define IDeckLinkOutput_v7_3_GetBufferedVideoFrameCount(This,bufferedFrameCount) \
10619 ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) )
10621 #define IDeckLinkOutput_v7_3_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) \
10622 ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) )
10624 #define IDeckLinkOutput_v7_3_DisableAudioOutput(This) \
10625 ( (This)->lpVtbl -> DisableAudioOutput(This) )
10627 #define IDeckLinkOutput_v7_3_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \
10628 ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
10630 #define IDeckLinkOutput_v7_3_BeginAudioPreroll(This) \
10631 ( (This)->lpVtbl -> BeginAudioPreroll(This) )
10633 #define IDeckLinkOutput_v7_3_EndAudioPreroll(This) \
10634 ( (This)->lpVtbl -> EndAudioPreroll(This) )
10636 #define IDeckLinkOutput_v7_3_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) \
10637 ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
10639 #define IDeckLinkOutput_v7_3_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) \
10640 ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) )
10642 #define IDeckLinkOutput_v7_3_FlushBufferedAudioSamples(This) \
10643 ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
10645 #define IDeckLinkOutput_v7_3_SetAudioCallback(This,theCallback) \
10646 ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
10648 #define IDeckLinkOutput_v7_3_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \
10649 ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
10651 #define IDeckLinkOutput_v7_3_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \
10652 ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
10654 #define IDeckLinkOutput_v7_3_IsScheduledPlaybackRunning(This,active) \
10655 ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) )
10657 #define IDeckLinkOutput_v7_3_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) \
10658 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) )
10660 #endif /* COBJMACROS */
10663 #endif /* C style interface */
10668 #endif /* __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ */
10671 #ifndef __IDeckLinkInput_v7_3_INTERFACE_DEFINED__
10672 #define __IDeckLinkInput_v7_3_INTERFACE_DEFINED__
10674 /* interface IDeckLinkInput_v7_3 */
10675 /* [helpstring][uuid][object] */
10678 EXTERN_C const IID IID_IDeckLinkInput_v7_3;
10680 #if defined(__cplusplus) && !defined(CINTERFACE)
10682 MIDL_INTERFACE("4973F012-9925-458C-871C-18774CDBBECB")
10683 IDeckLinkInput_v7_3 : public IUnknown
10686 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
10687 BMDDisplayMode displayMode,
10688 BMDPixelFormat pixelFormat,
10689 /* [out] */ BMDDisplayModeSupport *result) = 0;
10691 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
10692 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;
10694 virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback(
10695 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;
10697 virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
10698 BMDDisplayMode displayMode,
10699 BMDPixelFormat pixelFormat,
10700 BMDVideoInputFlags flags) = 0;
10702 virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
10704 virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount(
10705 /* [out] */ unsigned long *availableFrameCount) = 0;
10707 virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
10708 BMDAudioSampleRate sampleRate,
10709 BMDAudioSampleType sampleType,
10710 unsigned long channelCount) = 0;
10712 virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
10714 virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount(
10715 /* [out] */ unsigned long *availableSampleFrameCount) = 0;
10717 virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
10719 virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
10721 virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
10723 virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;
10725 virtual HRESULT STDMETHODCALLTYPE SetCallback(
10726 /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback) = 0;
10730 #else /* C style interface */
10732 typedef struct IDeckLinkInput_v7_3Vtbl
10736 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10737 IDeckLinkInput_v7_3 * This,
10738 /* [in] */ REFIID riid,
10739 /* [annotation][iid_is][out] */
10740 __RPC__deref_out void **ppvObject);
10742 ULONG ( STDMETHODCALLTYPE *AddRef )(
10743 IDeckLinkInput_v7_3 * This);
10745 ULONG ( STDMETHODCALLTYPE *Release )(
10746 IDeckLinkInput_v7_3 * This);
10748 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
10749 IDeckLinkInput_v7_3 * This,
10750 BMDDisplayMode displayMode,
10751 BMDPixelFormat pixelFormat,
10752 /* [out] */ BMDDisplayModeSupport *result);
10754 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
10755 IDeckLinkInput_v7_3 * This,
10756 /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);
10758 HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )(
10759 IDeckLinkInput_v7_3 * This,
10760 /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);
10762 HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
10763 IDeckLinkInput_v7_3 * This,
10764 BMDDisplayMode displayMode,
10765 BMDPixelFormat pixelFormat,
10766 BMDVideoInputFlags flags);
10768 HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
10769 IDeckLinkInput_v7_3 * This);
10771 HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )(
10772 IDeckLinkInput_v7_3 * This,
10773 /* [out] */ unsigned long *availableFrameCount);
10775 HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
10776 IDeckLinkInput_v7_3 * This,
10777 BMDAudioSampleRate sampleRate,
10778 BMDAudioSampleType sampleType,
10779 unsigned long channelCount);
10781 HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
10782 IDeckLinkInput_v7_3 * This);
10784 HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )(
10785 IDeckLinkInput_v7_3 * This,
10786 /* [out] */ unsigned long *availableSampleFrameCount);
10788 HRESULT ( STDMETHODCALLTYPE *StartStreams )(
10789 IDeckLinkInput_v7_3 * This);
10791 HRESULT ( STDMETHODCALLTYPE *StopStreams )(
10792 IDeckLinkInput_v7_3 * This);
10794 HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
10795 IDeckLinkInput_v7_3 * This);
10797 HRESULT ( STDMETHODCALLTYPE *FlushStreams )(
10798 IDeckLinkInput_v7_3 * This);
10800 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
10801 IDeckLinkInput_v7_3 * This,
10802 /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback);
10805 } IDeckLinkInput_v7_3Vtbl;
10807 interface IDeckLinkInput_v7_3
10809 CONST_VTBL struct IDeckLinkInput_v7_3Vtbl *lpVtbl;
10817 #define IDeckLinkInput_v7_3_QueryInterface(This,riid,ppvObject) \
10818 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10820 #define IDeckLinkInput_v7_3_AddRef(This) \
10821 ( (This)->lpVtbl -> AddRef(This) )
10823 #define IDeckLinkInput_v7_3_Release(This) \
10824 ( (This)->lpVtbl -> Release(This) )
10827 #define IDeckLinkInput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \
10828 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
10830 #define IDeckLinkInput_v7_3_GetDisplayModeIterator(This,iterator) \
10831 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
10833 #define IDeckLinkInput_v7_3_SetScreenPreviewCallback(This,previewCallback) \
10834 ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) )
10836 #define IDeckLinkInput_v7_3_EnableVideoInput(This,displayMode,pixelFormat,flags) \
10837 ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
10839 #define IDeckLinkInput_v7_3_DisableVideoInput(This) \
10840 ( (This)->lpVtbl -> DisableVideoInput(This) )
10842 #define IDeckLinkInput_v7_3_GetAvailableVideoFrameCount(This,availableFrameCount) \
10843 ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) )
10845 #define IDeckLinkInput_v7_3_EnableAudioInput(This,sampleRate,sampleType,channelCount) \
10846 ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
10848 #define IDeckLinkInput_v7_3_DisableAudioInput(This) \
10849 ( (This)->lpVtbl -> DisableAudioInput(This) )
10851 #define IDeckLinkInput_v7_3_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) \
10852 ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) )
10854 #define IDeckLinkInput_v7_3_StartStreams(This) \
10855 ( (This)->lpVtbl -> StartStreams(This) )
10857 #define IDeckLinkInput_v7_3_StopStreams(This) \
10858 ( (This)->lpVtbl -> StopStreams(This) )
10860 #define IDeckLinkInput_v7_3_PauseStreams(This) \
10861 ( (This)->lpVtbl -> PauseStreams(This) )
10863 #define IDeckLinkInput_v7_3_FlushStreams(This) \
10864 ( (This)->lpVtbl -> FlushStreams(This) )
10866 #define IDeckLinkInput_v7_3_SetCallback(This,theCallback) \
10867 ( (This)->lpVtbl -> SetCallback(This,theCallback) )
10869 #endif /* COBJMACROS */
10872 #endif /* C style interface */
10877 #endif /* __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ */
10880 #ifndef __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__
10881 #define __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__
10883 /* interface IDeckLinkVideoInputFrame_v7_3 */
10884 /* [helpstring][local][uuid][object] */
10887 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_3;
10889 #if defined(__cplusplus) && !defined(CINTERFACE)
10891 MIDL_INTERFACE("CF317790-2894-11DE-8C30-0800200C9A66")
10892 IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6
10895 virtual HRESULT STDMETHODCALLTYPE GetStreamTime(
10896 /* [out] */ BMDTimeValue *frameTime,
10897 /* [out] */ BMDTimeValue *frameDuration,
10898 BMDTimeScale timeScale) = 0;
10902 #else /* C style interface */
10904 typedef struct IDeckLinkVideoInputFrame_v7_3Vtbl
10908 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10909 IDeckLinkVideoInputFrame_v7_3 * This,
10910 /* [in] */ REFIID riid,
10911 /* [annotation][iid_is][out] */
10912 __RPC__deref_out void **ppvObject);
10914 ULONG ( STDMETHODCALLTYPE *AddRef )(
10915 IDeckLinkVideoInputFrame_v7_3 * This);
10917 ULONG ( STDMETHODCALLTYPE *Release )(
10918 IDeckLinkVideoInputFrame_v7_3 * This);
10920 long ( STDMETHODCALLTYPE *GetWidth )(
10921 IDeckLinkVideoInputFrame_v7_3 * This);
10923 long ( STDMETHODCALLTYPE *GetHeight )(
10924 IDeckLinkVideoInputFrame_v7_3 * This);
10926 long ( STDMETHODCALLTYPE *GetRowBytes )(
10927 IDeckLinkVideoInputFrame_v7_3 * This);
10929 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
10930 IDeckLinkVideoInputFrame_v7_3 * This);
10932 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
10933 IDeckLinkVideoInputFrame_v7_3 * This);
10935 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
10936 IDeckLinkVideoInputFrame_v7_3 * This,
10937 /* [out] */ void **buffer);
10939 HRESULT ( STDMETHODCALLTYPE *GetTimecode )(
10940 IDeckLinkVideoInputFrame_v7_3 * This,
10941 BMDTimecodeFormat format,
10942 /* [out] */ IDeckLinkTimecode_v7_6 **timecode);
10944 HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )(
10945 IDeckLinkVideoInputFrame_v7_3 * This,
10946 /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);
10948 HRESULT ( STDMETHODCALLTYPE *GetStreamTime )(
10949 IDeckLinkVideoInputFrame_v7_3 * This,
10950 /* [out] */ BMDTimeValue *frameTime,
10951 /* [out] */ BMDTimeValue *frameDuration,
10952 BMDTimeScale timeScale);
10955 } IDeckLinkVideoInputFrame_v7_3Vtbl;
10957 interface IDeckLinkVideoInputFrame_v7_3
10959 CONST_VTBL struct IDeckLinkVideoInputFrame_v7_3Vtbl *lpVtbl;
10967 #define IDeckLinkVideoInputFrame_v7_3_QueryInterface(This,riid,ppvObject) \
10968 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10970 #define IDeckLinkVideoInputFrame_v7_3_AddRef(This) \
10971 ( (This)->lpVtbl -> AddRef(This) )
10973 #define IDeckLinkVideoInputFrame_v7_3_Release(This) \
10974 ( (This)->lpVtbl -> Release(This) )
10977 #define IDeckLinkVideoInputFrame_v7_3_GetWidth(This) \
10978 ( (This)->lpVtbl -> GetWidth(This) )
10980 #define IDeckLinkVideoInputFrame_v7_3_GetHeight(This) \
10981 ( (This)->lpVtbl -> GetHeight(This) )
10983 #define IDeckLinkVideoInputFrame_v7_3_GetRowBytes(This) \
10984 ( (This)->lpVtbl -> GetRowBytes(This) )
10986 #define IDeckLinkVideoInputFrame_v7_3_GetPixelFormat(This) \
10987 ( (This)->lpVtbl -> GetPixelFormat(This) )
10989 #define IDeckLinkVideoInputFrame_v7_3_GetFlags(This) \
10990 ( (This)->lpVtbl -> GetFlags(This) )
10992 #define IDeckLinkVideoInputFrame_v7_3_GetBytes(This,buffer) \
10993 ( (This)->lpVtbl -> GetBytes(This,buffer) )
10995 #define IDeckLinkVideoInputFrame_v7_3_GetTimecode(This,format,timecode) \
10996 ( (This)->lpVtbl -> GetTimecode(This,format,timecode) )
10998 #define IDeckLinkVideoInputFrame_v7_3_GetAncillaryData(This,ancillary) \
10999 ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) )
11002 #define IDeckLinkVideoInputFrame_v7_3_GetStreamTime(This,frameTime,frameDuration,timeScale) \
11003 ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) )
11005 #endif /* COBJMACROS */
11008 #endif /* C style interface */
11013 #endif /* __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ */
11016 #ifndef __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__
11017 #define __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__
11019 /* interface IDeckLinkDisplayModeIterator_v7_1 */
11020 /* [helpstring][uuid][object] */
11023 EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_1;
11025 #if defined(__cplusplus) && !defined(CINTERFACE)
11027 MIDL_INTERFACE("B28131B6-59AC-4857-B5AC-CD75D5883E2F")
11028 IDeckLinkDisplayModeIterator_v7_1 : public IUnknown
11031 virtual HRESULT STDMETHODCALLTYPE Next(
11032 /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode) = 0;
11036 #else /* C style interface */
11038 typedef struct IDeckLinkDisplayModeIterator_v7_1Vtbl
11042 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11043 IDeckLinkDisplayModeIterator_v7_1 * This,
11044 /* [in] */ REFIID riid,
11045 /* [annotation][iid_is][out] */
11046 __RPC__deref_out void **ppvObject);
11048 ULONG ( STDMETHODCALLTYPE *AddRef )(
11049 IDeckLinkDisplayModeIterator_v7_1 * This);
11051 ULONG ( STDMETHODCALLTYPE *Release )(
11052 IDeckLinkDisplayModeIterator_v7_1 * This);
11054 HRESULT ( STDMETHODCALLTYPE *Next )(
11055 IDeckLinkDisplayModeIterator_v7_1 * This,
11056 /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode);
11059 } IDeckLinkDisplayModeIterator_v7_1Vtbl;
11061 interface IDeckLinkDisplayModeIterator_v7_1
11063 CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_1Vtbl *lpVtbl;
11071 #define IDeckLinkDisplayModeIterator_v7_1_QueryInterface(This,riid,ppvObject) \
11072 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11074 #define IDeckLinkDisplayModeIterator_v7_1_AddRef(This) \
11075 ( (This)->lpVtbl -> AddRef(This) )
11077 #define IDeckLinkDisplayModeIterator_v7_1_Release(This) \
11078 ( (This)->lpVtbl -> Release(This) )
11081 #define IDeckLinkDisplayModeIterator_v7_1_Next(This,deckLinkDisplayMode) \
11082 ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) )
11084 #endif /* COBJMACROS */
11087 #endif /* C style interface */
11092 #endif /* __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ */
11095 #ifndef __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__
11096 #define __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__
11098 /* interface IDeckLinkDisplayMode_v7_1 */
11099 /* [helpstring][uuid][object] */
11102 EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_1;
11104 #if defined(__cplusplus) && !defined(CINTERFACE)
11106 MIDL_INTERFACE("AF0CD6D5-8376-435E-8433-54F9DD530AC3")
11107 IDeckLinkDisplayMode_v7_1 : public IUnknown
11110 virtual HRESULT STDMETHODCALLTYPE GetName(
11111 /* [out] */ BSTR *name) = 0;
11113 virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;
11115 virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
11117 virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
11119 virtual HRESULT STDMETHODCALLTYPE GetFrameRate(
11120 /* [out] */ BMDTimeValue *frameDuration,
11121 /* [out] */ BMDTimeScale *timeScale) = 0;
11125 #else /* C style interface */
11127 typedef struct IDeckLinkDisplayMode_v7_1Vtbl
11131 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11132 IDeckLinkDisplayMode_v7_1 * This,
11133 /* [in] */ REFIID riid,
11134 /* [annotation][iid_is][out] */
11135 __RPC__deref_out void **ppvObject);
11137 ULONG ( STDMETHODCALLTYPE *AddRef )(
11138 IDeckLinkDisplayMode_v7_1 * This);
11140 ULONG ( STDMETHODCALLTYPE *Release )(
11141 IDeckLinkDisplayMode_v7_1 * This);
11143 HRESULT ( STDMETHODCALLTYPE *GetName )(
11144 IDeckLinkDisplayMode_v7_1 * This,
11145 /* [out] */ BSTR *name);
11147 BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )(
11148 IDeckLinkDisplayMode_v7_1 * This);
11150 long ( STDMETHODCALLTYPE *GetWidth )(
11151 IDeckLinkDisplayMode_v7_1 * This);
11153 long ( STDMETHODCALLTYPE *GetHeight )(
11154 IDeckLinkDisplayMode_v7_1 * This);
11156 HRESULT ( STDMETHODCALLTYPE *GetFrameRate )(
11157 IDeckLinkDisplayMode_v7_1 * This,
11158 /* [out] */ BMDTimeValue *frameDuration,
11159 /* [out] */ BMDTimeScale *timeScale);
11162 } IDeckLinkDisplayMode_v7_1Vtbl;
11164 interface IDeckLinkDisplayMode_v7_1
11166 CONST_VTBL struct IDeckLinkDisplayMode_v7_1Vtbl *lpVtbl;
11174 #define IDeckLinkDisplayMode_v7_1_QueryInterface(This,riid,ppvObject) \
11175 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11177 #define IDeckLinkDisplayMode_v7_1_AddRef(This) \
11178 ( (This)->lpVtbl -> AddRef(This) )
11180 #define IDeckLinkDisplayMode_v7_1_Release(This) \
11181 ( (This)->lpVtbl -> Release(This) )
11184 #define IDeckLinkDisplayMode_v7_1_GetName(This,name) \
11185 ( (This)->lpVtbl -> GetName(This,name) )
11187 #define IDeckLinkDisplayMode_v7_1_GetDisplayMode(This) \
11188 ( (This)->lpVtbl -> GetDisplayMode(This) )
11190 #define IDeckLinkDisplayMode_v7_1_GetWidth(This) \
11191 ( (This)->lpVtbl -> GetWidth(This) )
11193 #define IDeckLinkDisplayMode_v7_1_GetHeight(This) \
11194 ( (This)->lpVtbl -> GetHeight(This) )
11196 #define IDeckLinkDisplayMode_v7_1_GetFrameRate(This,frameDuration,timeScale) \
11197 ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) )
11199 #endif /* COBJMACROS */
11202 #endif /* C style interface */
11207 #endif /* __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ */
11210 #ifndef __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__
11211 #define __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__
11213 /* interface IDeckLinkVideoFrame_v7_1 */
11214 /* [helpstring][local][uuid][object] */
11217 EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_1;
11219 #if defined(__cplusplus) && !defined(CINTERFACE)
11221 MIDL_INTERFACE("333F3A10-8C2D-43CF-B79D-46560FEEA1CE")
11222 IDeckLinkVideoFrame_v7_1 : public IUnknown
11225 virtual long STDMETHODCALLTYPE GetWidth( void) = 0;
11227 virtual long STDMETHODCALLTYPE GetHeight( void) = 0;
11229 virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;
11231 virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;
11233 virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;
11235 virtual HRESULT STDMETHODCALLTYPE GetBytes(
11236 void **buffer) = 0;
11240 #else /* C style interface */
11242 typedef struct IDeckLinkVideoFrame_v7_1Vtbl
11246 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11247 IDeckLinkVideoFrame_v7_1 * This,
11248 /* [in] */ REFIID riid,
11249 /* [annotation][iid_is][out] */
11250 __RPC__deref_out void **ppvObject);
11252 ULONG ( STDMETHODCALLTYPE *AddRef )(
11253 IDeckLinkVideoFrame_v7_1 * This);
11255 ULONG ( STDMETHODCALLTYPE *Release )(
11256 IDeckLinkVideoFrame_v7_1 * This);
11258 long ( STDMETHODCALLTYPE *GetWidth )(
11259 IDeckLinkVideoFrame_v7_1 * This);
11261 long ( STDMETHODCALLTYPE *GetHeight )(
11262 IDeckLinkVideoFrame_v7_1 * This);
11264 long ( STDMETHODCALLTYPE *GetRowBytes )(
11265 IDeckLinkVideoFrame_v7_1 * This);
11267 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
11268 IDeckLinkVideoFrame_v7_1 * This);
11270 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
11271 IDeckLinkVideoFrame_v7_1 * This);
11273 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
11274 IDeckLinkVideoFrame_v7_1 * This,
11278 } IDeckLinkVideoFrame_v7_1Vtbl;
11280 interface IDeckLinkVideoFrame_v7_1
11282 CONST_VTBL struct IDeckLinkVideoFrame_v7_1Vtbl *lpVtbl;
11290 #define IDeckLinkVideoFrame_v7_1_QueryInterface(This,riid,ppvObject) \
11291 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11293 #define IDeckLinkVideoFrame_v7_1_AddRef(This) \
11294 ( (This)->lpVtbl -> AddRef(This) )
11296 #define IDeckLinkVideoFrame_v7_1_Release(This) \
11297 ( (This)->lpVtbl -> Release(This) )
11300 #define IDeckLinkVideoFrame_v7_1_GetWidth(This) \
11301 ( (This)->lpVtbl -> GetWidth(This) )
11303 #define IDeckLinkVideoFrame_v7_1_GetHeight(This) \
11304 ( (This)->lpVtbl -> GetHeight(This) )
11306 #define IDeckLinkVideoFrame_v7_1_GetRowBytes(This) \
11307 ( (This)->lpVtbl -> GetRowBytes(This) )
11309 #define IDeckLinkVideoFrame_v7_1_GetPixelFormat(This) \
11310 ( (This)->lpVtbl -> GetPixelFormat(This) )
11312 #define IDeckLinkVideoFrame_v7_1_GetFlags(This) \
11313 ( (This)->lpVtbl -> GetFlags(This) )
11315 #define IDeckLinkVideoFrame_v7_1_GetBytes(This,buffer) \
11316 ( (This)->lpVtbl -> GetBytes(This,buffer) )
11318 #endif /* COBJMACROS */
11321 #endif /* C style interface */
11326 #endif /* __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ */
11329 #ifndef __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__
11330 #define __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__
11332 /* interface IDeckLinkVideoInputFrame_v7_1 */
11333 /* [helpstring][local][uuid][object] */
11336 EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_1;
11338 #if defined(__cplusplus) && !defined(CINTERFACE)
11340 MIDL_INTERFACE("C8B41D95-8848-40EE-9B37-6E3417FB114B")
11341 IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1
11344 virtual HRESULT STDMETHODCALLTYPE GetFrameTime(
11345 BMDTimeValue *frameTime,
11346 BMDTimeValue *frameDuration,
11347 BMDTimeScale timeScale) = 0;
11351 #else /* C style interface */
11353 typedef struct IDeckLinkVideoInputFrame_v7_1Vtbl
11357 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11358 IDeckLinkVideoInputFrame_v7_1 * This,
11359 /* [in] */ REFIID riid,
11360 /* [annotation][iid_is][out] */
11361 __RPC__deref_out void **ppvObject);
11363 ULONG ( STDMETHODCALLTYPE *AddRef )(
11364 IDeckLinkVideoInputFrame_v7_1 * This);
11366 ULONG ( STDMETHODCALLTYPE *Release )(
11367 IDeckLinkVideoInputFrame_v7_1 * This);
11369 long ( STDMETHODCALLTYPE *GetWidth )(
11370 IDeckLinkVideoInputFrame_v7_1 * This);
11372 long ( STDMETHODCALLTYPE *GetHeight )(
11373 IDeckLinkVideoInputFrame_v7_1 * This);
11375 long ( STDMETHODCALLTYPE *GetRowBytes )(
11376 IDeckLinkVideoInputFrame_v7_1 * This);
11378 BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )(
11379 IDeckLinkVideoInputFrame_v7_1 * This);
11381 BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )(
11382 IDeckLinkVideoInputFrame_v7_1 * This);
11384 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
11385 IDeckLinkVideoInputFrame_v7_1 * This,
11388 HRESULT ( STDMETHODCALLTYPE *GetFrameTime )(
11389 IDeckLinkVideoInputFrame_v7_1 * This,
11390 BMDTimeValue *frameTime,
11391 BMDTimeValue *frameDuration,
11392 BMDTimeScale timeScale);
11395 } IDeckLinkVideoInputFrame_v7_1Vtbl;
11397 interface IDeckLinkVideoInputFrame_v7_1
11399 CONST_VTBL struct IDeckLinkVideoInputFrame_v7_1Vtbl *lpVtbl;
11407 #define IDeckLinkVideoInputFrame_v7_1_QueryInterface(This,riid,ppvObject) \
11408 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11410 #define IDeckLinkVideoInputFrame_v7_1_AddRef(This) \
11411 ( (This)->lpVtbl -> AddRef(This) )
11413 #define IDeckLinkVideoInputFrame_v7_1_Release(This) \
11414 ( (This)->lpVtbl -> Release(This) )
11417 #define IDeckLinkVideoInputFrame_v7_1_GetWidth(This) \
11418 ( (This)->lpVtbl -> GetWidth(This) )
11420 #define IDeckLinkVideoInputFrame_v7_1_GetHeight(This) \
11421 ( (This)->lpVtbl -> GetHeight(This) )
11423 #define IDeckLinkVideoInputFrame_v7_1_GetRowBytes(This) \
11424 ( (This)->lpVtbl -> GetRowBytes(This) )
11426 #define IDeckLinkVideoInputFrame_v7_1_GetPixelFormat(This) \
11427 ( (This)->lpVtbl -> GetPixelFormat(This) )
11429 #define IDeckLinkVideoInputFrame_v7_1_GetFlags(This) \
11430 ( (This)->lpVtbl -> GetFlags(This) )
11432 #define IDeckLinkVideoInputFrame_v7_1_GetBytes(This,buffer) \
11433 ( (This)->lpVtbl -> GetBytes(This,buffer) )
11436 #define IDeckLinkVideoInputFrame_v7_1_GetFrameTime(This,frameTime,frameDuration,timeScale) \
11437 ( (This)->lpVtbl -> GetFrameTime(This,frameTime,frameDuration,timeScale) )
11439 #endif /* COBJMACROS */
11442 #endif /* C style interface */
11447 #endif /* __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ */
11450 #ifndef __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__
11451 #define __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__
11453 /* interface IDeckLinkAudioInputPacket_v7_1 */
11454 /* [helpstring][local][uuid][object] */
11457 EXTERN_C const IID IID_IDeckLinkAudioInputPacket_v7_1;
11459 #if defined(__cplusplus) && !defined(CINTERFACE)
11461 MIDL_INTERFACE("C86DE4F6-A29F-42E3-AB3A-1363E29F0788")
11462 IDeckLinkAudioInputPacket_v7_1 : public IUnknown
11465 virtual long STDMETHODCALLTYPE GetSampleCount( void) = 0;
11467 virtual HRESULT STDMETHODCALLTYPE GetBytes(
11468 void **buffer) = 0;
11470 virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime(
11471 BMDTimeValue *packetTime,
11472 BMDTimeScale timeScale) = 0;
11476 #else /* C style interface */
11478 typedef struct IDeckLinkAudioInputPacket_v7_1Vtbl
11482 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11483 IDeckLinkAudioInputPacket_v7_1 * This,
11484 /* [in] */ REFIID riid,
11485 /* [annotation][iid_is][out] */
11486 __RPC__deref_out void **ppvObject);
11488 ULONG ( STDMETHODCALLTYPE *AddRef )(
11489 IDeckLinkAudioInputPacket_v7_1 * This);
11491 ULONG ( STDMETHODCALLTYPE *Release )(
11492 IDeckLinkAudioInputPacket_v7_1 * This);
11494 long ( STDMETHODCALLTYPE *GetSampleCount )(
11495 IDeckLinkAudioInputPacket_v7_1 * This);
11497 HRESULT ( STDMETHODCALLTYPE *GetBytes )(
11498 IDeckLinkAudioInputPacket_v7_1 * This,
11501 HRESULT ( STDMETHODCALLTYPE *GetAudioPacketTime )(
11502 IDeckLinkAudioInputPacket_v7_1 * This,
11503 BMDTimeValue *packetTime,
11504 BMDTimeScale timeScale);
11507 } IDeckLinkAudioInputPacket_v7_1Vtbl;
11509 interface IDeckLinkAudioInputPacket_v7_1
11511 CONST_VTBL struct IDeckLinkAudioInputPacket_v7_1Vtbl *lpVtbl;
11519 #define IDeckLinkAudioInputPacket_v7_1_QueryInterface(This,riid,ppvObject) \
11520 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11522 #define IDeckLinkAudioInputPacket_v7_1_AddRef(This) \
11523 ( (This)->lpVtbl -> AddRef(This) )
11525 #define IDeckLinkAudioInputPacket_v7_1_Release(This) \
11526 ( (This)->lpVtbl -> Release(This) )
11529 #define IDeckLinkAudioInputPacket_v7_1_GetSampleCount(This) \
11530 ( (This)->lpVtbl -> GetSampleCount(This) )
11532 #define IDeckLinkAudioInputPacket_v7_1_GetBytes(This,buffer) \
11533 ( (This)->lpVtbl -> GetBytes(This,buffer) )
11535 #define IDeckLinkAudioInputPacket_v7_1_GetAudioPacketTime(This,packetTime,timeScale) \
11536 ( (This)->lpVtbl -> GetAudioPacketTime(This,packetTime,timeScale) )
11538 #endif /* COBJMACROS */
11541 #endif /* C style interface */
11546 #endif /* __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ */
11549 #ifndef __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__
11550 #define __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__
11552 /* interface IDeckLinkVideoOutputCallback_v7_1 */
11553 /* [helpstring][uuid][object] */
11556 EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_1;
11558 #if defined(__cplusplus) && !defined(CINTERFACE)
11560 MIDL_INTERFACE("EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9")
11561 IDeckLinkVideoOutputCallback_v7_1 : public IUnknown
11564 virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted(
11565 /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,
11566 /* [in] */ BMDOutputFrameCompletionResult result) = 0;
11570 #else /* C style interface */
11572 typedef struct IDeckLinkVideoOutputCallback_v7_1Vtbl
11576 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11577 IDeckLinkVideoOutputCallback_v7_1 * This,
11578 /* [in] */ REFIID riid,
11579 /* [annotation][iid_is][out] */
11580 __RPC__deref_out void **ppvObject);
11582 ULONG ( STDMETHODCALLTYPE *AddRef )(
11583 IDeckLinkVideoOutputCallback_v7_1 * This);
11585 ULONG ( STDMETHODCALLTYPE *Release )(
11586 IDeckLinkVideoOutputCallback_v7_1 * This);
11588 HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )(
11589 IDeckLinkVideoOutputCallback_v7_1 * This,
11590 /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,
11591 /* [in] */ BMDOutputFrameCompletionResult result);
11594 } IDeckLinkVideoOutputCallback_v7_1Vtbl;
11596 interface IDeckLinkVideoOutputCallback_v7_1
11598 CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_1Vtbl *lpVtbl;
11606 #define IDeckLinkVideoOutputCallback_v7_1_QueryInterface(This,riid,ppvObject) \
11607 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11609 #define IDeckLinkVideoOutputCallback_v7_1_AddRef(This) \
11610 ( (This)->lpVtbl -> AddRef(This) )
11612 #define IDeckLinkVideoOutputCallback_v7_1_Release(This) \
11613 ( (This)->lpVtbl -> Release(This) )
11616 #define IDeckLinkVideoOutputCallback_v7_1_ScheduledFrameCompleted(This,completedFrame,result) \
11617 ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) )
11619 #endif /* COBJMACROS */
11622 #endif /* C style interface */
11627 #endif /* __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ */
11630 #ifndef __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__
11631 #define __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__
11633 /* interface IDeckLinkInputCallback_v7_1 */
11634 /* [helpstring][uuid][object] */
11637 EXTERN_C const IID IID_IDeckLinkInputCallback_v7_1;
11639 #if defined(__cplusplus) && !defined(CINTERFACE)
11641 MIDL_INTERFACE("7F94F328-5ED4-4E9F-9729-76A86BDC99CC")
11642 IDeckLinkInputCallback_v7_1 : public IUnknown
11645 virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived(
11646 /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,
11647 /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket) = 0;
11651 #else /* C style interface */
11653 typedef struct IDeckLinkInputCallback_v7_1Vtbl
11657 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11658 IDeckLinkInputCallback_v7_1 * This,
11659 /* [in] */ REFIID riid,
11660 /* [annotation][iid_is][out] */
11661 __RPC__deref_out void **ppvObject);
11663 ULONG ( STDMETHODCALLTYPE *AddRef )(
11664 IDeckLinkInputCallback_v7_1 * This);
11666 ULONG ( STDMETHODCALLTYPE *Release )(
11667 IDeckLinkInputCallback_v7_1 * This);
11669 HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )(
11670 IDeckLinkInputCallback_v7_1 * This,
11671 /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,
11672 /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket);
11675 } IDeckLinkInputCallback_v7_1Vtbl;
11677 interface IDeckLinkInputCallback_v7_1
11679 CONST_VTBL struct IDeckLinkInputCallback_v7_1Vtbl *lpVtbl;
11687 #define IDeckLinkInputCallback_v7_1_QueryInterface(This,riid,ppvObject) \
11688 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11690 #define IDeckLinkInputCallback_v7_1_AddRef(This) \
11691 ( (This)->lpVtbl -> AddRef(This) )
11693 #define IDeckLinkInputCallback_v7_1_Release(This) \
11694 ( (This)->lpVtbl -> Release(This) )
11697 #define IDeckLinkInputCallback_v7_1_VideoInputFrameArrived(This,videoFrame,audioPacket) \
11698 ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) )
11700 #endif /* COBJMACROS */
11703 #endif /* C style interface */
11708 #endif /* __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ */
11711 #ifndef __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__
11712 #define __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__
11714 /* interface IDeckLinkOutput_v7_1 */
11715 /* [helpstring][local][uuid][object] */
11718 EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
11720 #if defined(__cplusplus) && !defined(CINTERFACE)
11722 MIDL_INTERFACE("AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5")
11723 IDeckLinkOutput_v7_1 : public IUnknown
11726 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
11727 BMDDisplayMode displayMode,
11728 BMDPixelFormat pixelFormat,
11729 /* [out] */ BMDDisplayModeSupport *result) = 0;
11731 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
11732 /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;
11734 virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput(
11735 BMDDisplayMode displayMode) = 0;
11737 virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;
11739 virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator(
11740 /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;
11742 virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame(
11746 BMDPixelFormat pixelFormat,
11747 BMDFrameFlags flags,
11748 IDeckLinkVideoFrame_v7_1 **outFrame) = 0;
11750 virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer(
11755 BMDPixelFormat pixelFormat,
11756 BMDFrameFlags flags,
11757 IDeckLinkVideoFrame_v7_1 **outFrame) = 0;
11759 virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync(
11760 IDeckLinkVideoFrame_v7_1 *theFrame) = 0;
11762 virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame(
11763 IDeckLinkVideoFrame_v7_1 *theFrame,
11764 BMDTimeValue displayTime,
11765 BMDTimeValue displayDuration,
11766 BMDTimeScale timeScale) = 0;
11768 virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback(
11769 /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback) = 0;
11771 virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput(
11772 BMDAudioSampleRate sampleRate,
11773 BMDAudioSampleType sampleType,
11774 unsigned long channelCount) = 0;
11776 virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;
11778 virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync(
11780 unsigned long sampleFrameCount,
11781 /* [out] */ unsigned long *sampleFramesWritten) = 0;
11783 virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;
11785 virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;
11787 virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples(
11789 unsigned long sampleFrameCount,
11790 BMDTimeValue streamTime,
11791 BMDTimeScale timeScale,
11792 /* [out] */ unsigned long *sampleFramesWritten) = 0;
11794 virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
11795 /* [out] */ unsigned long *bufferedSampleCount) = 0;
11797 virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;
11799 virtual HRESULT STDMETHODCALLTYPE SetAudioCallback(
11800 /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;
11802 virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback(
11803 BMDTimeValue playbackStartTime,
11804 BMDTimeScale timeScale,
11805 double playbackSpeed) = 0;
11807 virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback(
11808 BMDTimeValue stopPlaybackAtTime,
11809 BMDTimeValue *actualStopTime,
11810 BMDTimeScale timeScale) = 0;
11812 virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock(
11813 BMDTimeScale desiredTimeScale,
11814 BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;
11818 #else /* C style interface */
11820 typedef struct IDeckLinkOutput_v7_1Vtbl
11824 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11825 IDeckLinkOutput_v7_1 * This,
11826 /* [in] */ REFIID riid,
11827 /* [annotation][iid_is][out] */
11828 __RPC__deref_out void **ppvObject);
11830 ULONG ( STDMETHODCALLTYPE *AddRef )(
11831 IDeckLinkOutput_v7_1 * This);
11833 ULONG ( STDMETHODCALLTYPE *Release )(
11834 IDeckLinkOutput_v7_1 * This);
11836 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
11837 IDeckLinkOutput_v7_1 * This,
11838 BMDDisplayMode displayMode,
11839 BMDPixelFormat pixelFormat,
11840 /* [out] */ BMDDisplayModeSupport *result);
11842 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
11843 IDeckLinkOutput_v7_1 * This,
11844 /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);
11846 HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )(
11847 IDeckLinkOutput_v7_1 * This,
11848 BMDDisplayMode displayMode);
11850 HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )(
11851 IDeckLinkOutput_v7_1 * This);
11853 HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )(
11854 IDeckLinkOutput_v7_1 * This,
11855 /* [in] */ IDeckLinkMemoryAllocator *theAllocator);
11857 HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )(
11858 IDeckLinkOutput_v7_1 * This,
11862 BMDPixelFormat pixelFormat,
11863 BMDFrameFlags flags,
11864 IDeckLinkVideoFrame_v7_1 **outFrame);
11866 HRESULT ( STDMETHODCALLTYPE *CreateVideoFrameFromBuffer )(
11867 IDeckLinkOutput_v7_1 * This,
11872 BMDPixelFormat pixelFormat,
11873 BMDFrameFlags flags,
11874 IDeckLinkVideoFrame_v7_1 **outFrame);
11876 HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )(
11877 IDeckLinkOutput_v7_1 * This,
11878 IDeckLinkVideoFrame_v7_1 *theFrame);
11880 HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )(
11881 IDeckLinkOutput_v7_1 * This,
11882 IDeckLinkVideoFrame_v7_1 *theFrame,
11883 BMDTimeValue displayTime,
11884 BMDTimeValue displayDuration,
11885 BMDTimeScale timeScale);
11887 HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )(
11888 IDeckLinkOutput_v7_1 * This,
11889 /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback);
11891 HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )(
11892 IDeckLinkOutput_v7_1 * This,
11893 BMDAudioSampleRate sampleRate,
11894 BMDAudioSampleType sampleType,
11895 unsigned long channelCount);
11897 HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )(
11898 IDeckLinkOutput_v7_1 * This);
11900 HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )(
11901 IDeckLinkOutput_v7_1 * This,
11903 unsigned long sampleFrameCount,
11904 /* [out] */ unsigned long *sampleFramesWritten);
11906 HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )(
11907 IDeckLinkOutput_v7_1 * This);
11909 HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )(
11910 IDeckLinkOutput_v7_1 * This);
11912 HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )(
11913 IDeckLinkOutput_v7_1 * This,
11915 unsigned long sampleFrameCount,
11916 BMDTimeValue streamTime,
11917 BMDTimeScale timeScale,
11918 /* [out] */ unsigned long *sampleFramesWritten);
11920 HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
11921 IDeckLinkOutput_v7_1 * This,
11922 /* [out] */ unsigned long *bufferedSampleCount);
11924 HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )(
11925 IDeckLinkOutput_v7_1 * This);
11927 HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )(
11928 IDeckLinkOutput_v7_1 * This,
11929 /* [in] */ IDeckLinkAudioOutputCallback *theCallback);
11931 HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )(
11932 IDeckLinkOutput_v7_1 * This,
11933 BMDTimeValue playbackStartTime,
11934 BMDTimeScale timeScale,
11935 double playbackSpeed);
11937 HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )(
11938 IDeckLinkOutput_v7_1 * This,
11939 BMDTimeValue stopPlaybackAtTime,
11940 BMDTimeValue *actualStopTime,
11941 BMDTimeScale timeScale);
11943 HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )(
11944 IDeckLinkOutput_v7_1 * This,
11945 BMDTimeScale desiredTimeScale,
11946 BMDTimeValue *elapsedTimeSinceSchedulerBegan);
11949 } IDeckLinkOutput_v7_1Vtbl;
11951 interface IDeckLinkOutput_v7_1
11953 CONST_VTBL struct IDeckLinkOutput_v7_1Vtbl *lpVtbl;
11961 #define IDeckLinkOutput_v7_1_QueryInterface(This,riid,ppvObject) \
11962 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11964 #define IDeckLinkOutput_v7_1_AddRef(This) \
11965 ( (This)->lpVtbl -> AddRef(This) )
11967 #define IDeckLinkOutput_v7_1_Release(This) \
11968 ( (This)->lpVtbl -> Release(This) )
11971 #define IDeckLinkOutput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \
11972 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
11974 #define IDeckLinkOutput_v7_1_GetDisplayModeIterator(This,iterator) \
11975 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
11977 #define IDeckLinkOutput_v7_1_EnableVideoOutput(This,displayMode) \
11978 ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode) )
11980 #define IDeckLinkOutput_v7_1_DisableVideoOutput(This) \
11981 ( (This)->lpVtbl -> DisableVideoOutput(This) )
11983 #define IDeckLinkOutput_v7_1_SetVideoOutputFrameMemoryAllocator(This,theAllocator) \
11984 ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) )
11986 #define IDeckLinkOutput_v7_1_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) \
11987 ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) )
11989 #define IDeckLinkOutput_v7_1_CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) \
11990 ( (This)->lpVtbl -> CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) )
11992 #define IDeckLinkOutput_v7_1_DisplayVideoFrameSync(This,theFrame) \
11993 ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) )
11995 #define IDeckLinkOutput_v7_1_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) \
11996 ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) )
11998 #define IDeckLinkOutput_v7_1_SetScheduledFrameCompletionCallback(This,theCallback) \
11999 ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) )
12001 #define IDeckLinkOutput_v7_1_EnableAudioOutput(This,sampleRate,sampleType,channelCount) \
12002 ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount) )
12004 #define IDeckLinkOutput_v7_1_DisableAudioOutput(This) \
12005 ( (This)->lpVtbl -> DisableAudioOutput(This) )
12007 #define IDeckLinkOutput_v7_1_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) \
12008 ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) )
12010 #define IDeckLinkOutput_v7_1_BeginAudioPreroll(This) \
12011 ( (This)->lpVtbl -> BeginAudioPreroll(This) )
12013 #define IDeckLinkOutput_v7_1_EndAudioPreroll(This) \
12014 ( (This)->lpVtbl -> EndAudioPreroll(This) )
12016 #define IDeckLinkOutput_v7_1_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) \
12017 ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) )
12019 #define IDeckLinkOutput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) \
12020 ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) )
12022 #define IDeckLinkOutput_v7_1_FlushBufferedAudioSamples(This) \
12023 ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) )
12025 #define IDeckLinkOutput_v7_1_SetAudioCallback(This,theCallback) \
12026 ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) )
12028 #define IDeckLinkOutput_v7_1_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \
12029 ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) )
12031 #define IDeckLinkOutput_v7_1_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) \
12032 ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) )
12034 #define IDeckLinkOutput_v7_1_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) \
12035 ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) )
12037 #endif /* COBJMACROS */
12040 #endif /* C style interface */
12045 #endif /* __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ */
12048 #ifndef __IDeckLinkInput_v7_1_INTERFACE_DEFINED__
12049 #define __IDeckLinkInput_v7_1_INTERFACE_DEFINED__
12051 /* interface IDeckLinkInput_v7_1 */
12052 /* [helpstring][uuid][object] */
12055 EXTERN_C const IID IID_IDeckLinkInput_v7_1;
12057 #if defined(__cplusplus) && !defined(CINTERFACE)
12059 MIDL_INTERFACE("2B54EDEF-5B32-429F-BA11-BB990596EACD")
12060 IDeckLinkInput_v7_1 : public IUnknown
12063 virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode(
12064 BMDDisplayMode displayMode,
12065 BMDPixelFormat pixelFormat,
12066 /* [out] */ BMDDisplayModeSupport *result) = 0;
12068 virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator(
12069 /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;
12071 virtual HRESULT STDMETHODCALLTYPE EnableVideoInput(
12072 BMDDisplayMode displayMode,
12073 BMDPixelFormat pixelFormat,
12074 BMDVideoInputFlags flags) = 0;
12076 virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;
12078 virtual HRESULT STDMETHODCALLTYPE EnableAudioInput(
12079 BMDAudioSampleRate sampleRate,
12080 BMDAudioSampleType sampleType,
12081 unsigned long channelCount) = 0;
12083 virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;
12085 virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples(
12087 unsigned long sampleFrameCount,
12088 /* [out] */ unsigned long *sampleFramesRead,
12089 /* [out] */ BMDTimeValue *audioPacketTime,
12090 BMDTimeScale timeScale) = 0;
12092 virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount(
12093 /* [out] */ unsigned long *bufferedSampleCount) = 0;
12095 virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;
12097 virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;
12099 virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;
12101 virtual HRESULT STDMETHODCALLTYPE SetCallback(
12102 /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback) = 0;
12106 #else /* C style interface */
12108 typedef struct IDeckLinkInput_v7_1Vtbl
12112 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12113 IDeckLinkInput_v7_1 * This,
12114 /* [in] */ REFIID riid,
12115 /* [annotation][iid_is][out] */
12116 __RPC__deref_out void **ppvObject);
12118 ULONG ( STDMETHODCALLTYPE *AddRef )(
12119 IDeckLinkInput_v7_1 * This);
12121 ULONG ( STDMETHODCALLTYPE *Release )(
12122 IDeckLinkInput_v7_1 * This);
12124 HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )(
12125 IDeckLinkInput_v7_1 * This,
12126 BMDDisplayMode displayMode,
12127 BMDPixelFormat pixelFormat,
12128 /* [out] */ BMDDisplayModeSupport *result);
12130 HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )(
12131 IDeckLinkInput_v7_1 * This,
12132 /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);
12134 HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )(
12135 IDeckLinkInput_v7_1 * This,
12136 BMDDisplayMode displayMode,
12137 BMDPixelFormat pixelFormat,
12138 BMDVideoInputFlags flags);
12140 HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )(
12141 IDeckLinkInput_v7_1 * This);
12143 HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )(
12144 IDeckLinkInput_v7_1 * This,
12145 BMDAudioSampleRate sampleRate,
12146 BMDAudioSampleType sampleType,
12147 unsigned long channelCount);
12149 HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )(
12150 IDeckLinkInput_v7_1 * This);
12152 HRESULT ( STDMETHODCALLTYPE *ReadAudioSamples )(
12153 IDeckLinkInput_v7_1 * This,
12155 unsigned long sampleFrameCount,
12156 /* [out] */ unsigned long *sampleFramesRead,
12157 /* [out] */ BMDTimeValue *audioPacketTime,
12158 BMDTimeScale timeScale);
12160 HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )(
12161 IDeckLinkInput_v7_1 * This,
12162 /* [out] */ unsigned long *bufferedSampleCount);
12164 HRESULT ( STDMETHODCALLTYPE *StartStreams )(
12165 IDeckLinkInput_v7_1 * This);
12167 HRESULT ( STDMETHODCALLTYPE *StopStreams )(
12168 IDeckLinkInput_v7_1 * This);
12170 HRESULT ( STDMETHODCALLTYPE *PauseStreams )(
12171 IDeckLinkInput_v7_1 * This);
12173 HRESULT ( STDMETHODCALLTYPE *SetCallback )(
12174 IDeckLinkInput_v7_1 * This,
12175 /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback);
12178 } IDeckLinkInput_v7_1Vtbl;
12180 interface IDeckLinkInput_v7_1
12182 CONST_VTBL struct IDeckLinkInput_v7_1Vtbl *lpVtbl;
12190 #define IDeckLinkInput_v7_1_QueryInterface(This,riid,ppvObject) \
12191 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12193 #define IDeckLinkInput_v7_1_AddRef(This) \
12194 ( (This)->lpVtbl -> AddRef(This) )
12196 #define IDeckLinkInput_v7_1_Release(This) \
12197 ( (This)->lpVtbl -> Release(This) )
12200 #define IDeckLinkInput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \
12201 ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) )
12203 #define IDeckLinkInput_v7_1_GetDisplayModeIterator(This,iterator) \
12204 ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) )
12206 #define IDeckLinkInput_v7_1_EnableVideoInput(This,displayMode,pixelFormat,flags) \
12207 ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) )
12209 #define IDeckLinkInput_v7_1_DisableVideoInput(This) \
12210 ( (This)->lpVtbl -> DisableVideoInput(This) )
12212 #define IDeckLinkInput_v7_1_EnableAudioInput(This,sampleRate,sampleType,channelCount) \
12213 ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) )
12215 #define IDeckLinkInput_v7_1_DisableAudioInput(This) \
12216 ( (This)->lpVtbl -> DisableAudioInput(This) )
12218 #define IDeckLinkInput_v7_1_ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) \
12219 ( (This)->lpVtbl -> ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) )
12221 #define IDeckLinkInput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) \
12222 ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) )
12224 #define IDeckLinkInput_v7_1_StartStreams(This) \
12225 ( (This)->lpVtbl -> StartStreams(This) )
12227 #define IDeckLinkInput_v7_1_StopStreams(This) \
12228 ( (This)->lpVtbl -> StopStreams(This) )
12230 #define IDeckLinkInput_v7_1_PauseStreams(This) \
12231 ( (This)->lpVtbl -> PauseStreams(This) )
12233 #define IDeckLinkInput_v7_1_SetCallback(This,theCallback) \
12234 ( (This)->lpVtbl -> SetCallback(This,theCallback) )
12236 #endif /* COBJMACROS */
12239 #endif /* C style interface */
12244 #endif /* __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ */
12246 #endif /* __DeckLinkAPI_LIBRARY_DEFINED__ */
12248 /* Additional Prototypes for ALL interfaces */
12250 /* end of Additional Prototypes */