]> git.sesse.net Git - casparcg/commitdiff
2.1.0: Merged changes from trunk.
authorronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Wed, 7 Dec 2011 23:57:04 +0000 (23:57 +0000)
committerronag <ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Wed, 7 Dec 2011 23:57:04 +0000 (23:57 +0000)
git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.1.0@1840 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d

14 files changed:
README.txt
core/consumer/frame_consumer.cpp
core/consumer/output.cpp
core/mixer/audio/audio_mixer.cpp
core/producer/separated/separated_producer.cpp
core/producer/transition/transition_producer.cpp
modules/decklink/interop/DeckLinkAPI_h.h [deleted file]
modules/decklink/interop/DeckLinkAPI_i.c [deleted file]
modules/decklink/producer/decklink_producer.cpp
modules/ffmpeg/producer/ffmpeg_producer.cpp
modules/ffmpeg/producer/muxer/frame_muxer.cpp
modules/ffmpeg/producer/muxer/frame_muxer.h
shell/casparcg.config
shell/main.cpp

index 87b78961ffadaed50788a7c32738a74bd606495f..006d280b88d6f6e902cf6f410b6fbc1d9c17c1eb 100644 (file)
@@ -13,18 +13,18 @@ http://casparcg.com/
 http://casparcg.com/forum/\r
 http://casparcg.com/wiki/\r
 \r
-CasparCG uses FFmpeg(http://ffmpeg.org/) under the GPLv2 Licence. \r
+CasparCG uses FFmpeg (http://ffmpeg.org/) under the GPLv2 Licence. \r
 FFmpeg is a trademark of Fabrice Bellard, originator of the FFmpeg project.\r
 \r
-CasparCG uses the Threading Building Blocks(http://www.threadingbuildingblocks.org/) library under the GPLv2 Licence.\r
+CasparCG uses the Threading Building Blocks (http://www.threadingbuildingblocks.org/) library under the GPLv2 Licence.\r
 \r
-CasparCG uses FreeImage(http://freeimage.sourceforge.net/) under the GPLv2.\r
+CasparCG uses FreeImage (http://freeimage.sourceforge.net/) under the GPLv2.\r
 \r
-CasparCG uses SFML(http://www.sfml-dev.org/) under the zlib/libpng License.\r
+CasparCG uses SFML (http://www.sfml-dev.org/) under the zlib/libpng License.\r
 \r
-CasparCG uses Glee(http://elf-stone.com/) under the modified BSD license.\r
+CasparCG uses GLEW (http://glew.sourceforge.net) under the modified BSD license.\r
 \r
-CasparCG uses boost(http://www.boost.org/) under the Boost Software License, Version 1.0.\r
+CasparCG uses boost (http://www.boost.org/) under the Boost Software License, Version 1.0.\r
 \r
 AUTHORS - People who have developed the CasparCG Server Software (sorted alphabetically by last name).\r
 ================================================\r
index 8f3e130bc049d7d4295d76d6119dc42df6b8cbc9..63bf35bd47f3890b1360da91b02fad8e403cd44f 100644 (file)
@@ -71,11 +71,9 @@ class cadence_guard : public frame_consumer
        safe_ptr<frame_consumer>                consumer_;\r
        std::vector<size_t>                             audio_cadence_;\r
        boost::circular_buffer<size_t>  sync_buffer_;\r
-       bool                                                    synced_;\r
 public:\r
        cadence_guard(const safe_ptr<frame_consumer>& consumer)\r
                : consumer_(consumer)\r
-               , synced_(false)\r
        {\r
        }\r
        \r
@@ -88,24 +86,23 @@ public:
 \r
        virtual bool send(const safe_ptr<read_frame>& frame) override\r
        {               \r
-               sync_buffer_.push_back(static_cast<size_t>(frame->audio_data().size()));\r
+               if(audio_cadence_.size() == 1)\r
+                       return consumer_->send(frame);\r
+\r
+               bool result = true;\r
                \r
-               if(!boost::range::equal(sync_buffer_, audio_cadence_))\r
-               {\r
-                       synced_ = false;\r
-                       CASPAR_LOG(trace) << L"[cadence_guard] Audio cadence unsynced. Skipping frame.";\r
-                       return true;\r
-               }\r
-               else if(!synced_)\r
-               {\r
-                       synced_ = true;\r
+               if(boost::range::equal(sync_buffer_, audio_cadence_) && audio_cadence_.front() == static_cast<size_t>(frame->audio_data().size())) \r
+               {       \r
+                       // Audio sent so far is in sync, now we can send the next chunk.\r
+                       result = consumer_->send(frame);\r
                        boost::range::rotate(audio_cadence_, std::begin(audio_cadence_)+1);\r
-                       return true;\r
                }\r
+               else\r
+                       CASPAR_LOG(trace) << print() << L" Syncing audio.";\r
 \r
-               boost::range::rotate(audio_cadence_, std::begin(audio_cadence_)+1);\r
-\r
-               return consumer_->send(frame);\r
+               sync_buffer_.push_back(static_cast<size_t>(frame->audio_data().size()));\r
+               \r
+               return result;\r
        }\r
 \r
        virtual std::wstring print() const override\r
index 4b5bcdab071bf9c3726d72ea1e77c2caba2292be..8476e676dcdf9306f66a5b8ed073a7872c53165a 100644 (file)
@@ -213,7 +213,10 @@ public:
                                                        if(consumer->send(frame))\r
                                                                ++it;\r
                                                        else\r
+                                                       {\r
+                                                               CASPAR_LOG(info) << print() << L" " << it->second->print() << L" Removed.";\r
                                                                consumers_.erase(it++);\r
+                                                       }\r
                                                }\r
                                                catch(...)\r
                                                {\r
index 7b997d5f107cae19ddc7f6e8fa2c4fffa6eb3e30..714e0001e8be8426a4c77cdfb3bddbb195d8c85f 100644 (file)
@@ -171,6 +171,14 @@ public:
                std::vector<float> result_ps(audio_cadence_.front(), 0.0f);\r
                BOOST_FOREACH(auto& stream, audio_streams_ | boost::adaptors::map_values)\r
                {\r
+                       //CASPAR_LOG(debug) << stream.audio_data.size() << L" : " << result_ps.size();\r
+\r
+                       if(stream.audio_data.size() < result_ps.size())\r
+                       {\r
+                               stream.audio_data.resize(result_ps.size(), 0.0f);\r
+                               CASPAR_LOG(trace) << L"[audio_mixer] Appended zero samples";\r
+                       }\r
+\r
                        auto out = boost::range::transform(result_ps, stream.audio_data, std::begin(result_ps), std::plus<float>());\r
                        stream.audio_data.erase(std::begin(stream.audio_data), std::begin(stream.audio_data) + std::distance(std::begin(result_ps), out));\r
                }               \r
index e3d22b3e38a6417a6516e47b69ebfb8acb302a8d..f52789f11bd266efd34d8e5366243b9262d35431 100644 (file)
@@ -88,7 +88,7 @@ struct separated_producer : public frame_producer
 \r
        virtual std::wstring print() const override\r
        {\r
-               return L"separated[fill:" + fill_producer_->print() + L"|key:" + key_producer_->print() + L"]";\r
+               return L"separated[fill:" + fill_producer_->print() + L"|key[" + key_producer_->print() + L"]]";\r
        }       \r
 \r
        boost::property_tree::wptree info() const override\r
index 7c32d094f3d2c7bc6189f244c9abec52e3748678..2b14faaf7d89ba4ea9c69421750878c3772909b0 100644 (file)
@@ -105,7 +105,7 @@ struct transition_producer : public frame_producer
 \r
        virtual std::wstring print() const override\r
        {\r
-               return L"transition[" + source_producer_->print() + L"|" + dest_producer_->print() + L"]";\r
+               return L"transition[" + source_producer_->print() + L"=>" + dest_producer_->print() + L"]";\r
        }\r
        \r
        boost::property_tree::wptree info() const override\r
diff --git a/modules/decklink/interop/DeckLinkAPI_h.h b/modules/decklink/interop/DeckLinkAPI_h.h
deleted file mode 100644 (file)
index 54ff2a8..0000000
+++ /dev/null
@@ -1,9217 +0,0 @@
-\r
-\r
-/* this ALWAYS GENERATED file contains the definitions for the interfaces */\r
-\r
-\r
- /* File created by MIDL compiler version 7.00.0555 */\r
-/* at Mon Dec 05 09:41:37 2011\r
- */\r
-/* Compiler settings for interop\DeckLinkAPI.idl:\r
-    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 \r
-    protocol : dce , ms_ext, c_ext, robust\r
-    error checks: allocation ref bounds_check enum stub_data \r
-    VC __declspec() decoration level: \r
-         __declspec(uuid()), __declspec(selectany), __declspec(novtable)\r
-         DECLSPEC_UUID(), MIDL_INTERFACE()\r
-*/\r
-/* @@MIDL_FILE_HEADING(  ) */\r
-\r
-#pragma warning( disable: 4049 )  /* more than 64k source lines */\r
-\r
-\r
-/* verify that the <rpcndr.h> version is high enough to compile this file*/\r
-#ifndef __REQUIRED_RPCNDR_H_VERSION__\r
-#define __REQUIRED_RPCNDR_H_VERSION__ 475\r
-#endif\r
-\r
-#include "rpc.h"\r
-#include "rpcndr.h"\r
-\r
-#ifndef __RPCNDR_H_VERSION__\r
-#error this stub requires an updated version of <rpcndr.h>\r
-#endif // __RPCNDR_H_VERSION__\r
-\r
-\r
-#ifndef __DeckLinkAPI_h_h__\r
-#define __DeckLinkAPI_h_h__\r
-\r
-#if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
-#pragma once\r
-#endif\r
-\r
-/* Forward Declarations */ \r
-\r
-#ifndef __IDeckLinkVideoOutputCallback_FWD_DEFINED__\r
-#define __IDeckLinkVideoOutputCallback_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoOutputCallback IDeckLinkVideoOutputCallback;\r
-#endif         /* __IDeckLinkVideoOutputCallback_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInputCallback_FWD_DEFINED__\r
-#define __IDeckLinkInputCallback_FWD_DEFINED__\r
-typedef interface IDeckLinkInputCallback IDeckLinkInputCallback;\r
-#endif         /* __IDeckLinkInputCallback_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkMemoryAllocator_FWD_DEFINED__\r
-#define __IDeckLinkMemoryAllocator_FWD_DEFINED__\r
-typedef interface IDeckLinkMemoryAllocator IDeckLinkMemoryAllocator;\r
-#endif         /* __IDeckLinkMemoryAllocator_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkAudioOutputCallback_FWD_DEFINED__\r
-#define __IDeckLinkAudioOutputCallback_FWD_DEFINED__\r
-typedef interface IDeckLinkAudioOutputCallback IDeckLinkAudioOutputCallback;\r
-#endif         /* __IDeckLinkAudioOutputCallback_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkIterator_FWD_DEFINED__\r
-#define __IDeckLinkIterator_FWD_DEFINED__\r
-typedef interface IDeckLinkIterator IDeckLinkIterator;\r
-#endif         /* __IDeckLinkIterator_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkAPIInformation_FWD_DEFINED__\r
-#define __IDeckLinkAPIInformation_FWD_DEFINED__\r
-typedef interface IDeckLinkAPIInformation IDeckLinkAPIInformation;\r
-#endif         /* __IDeckLinkAPIInformation_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDisplayModeIterator_FWD_DEFINED__\r
-#define __IDeckLinkDisplayModeIterator_FWD_DEFINED__\r
-typedef interface IDeckLinkDisplayModeIterator IDeckLinkDisplayModeIterator;\r
-#endif         /* __IDeckLinkDisplayModeIterator_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDisplayMode_FWD_DEFINED__\r
-#define __IDeckLinkDisplayMode_FWD_DEFINED__\r
-typedef interface IDeckLinkDisplayMode IDeckLinkDisplayMode;\r
-#endif         /* __IDeckLinkDisplayMode_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLink_FWD_DEFINED__\r
-#define __IDeckLink_FWD_DEFINED__\r
-typedef interface IDeckLink IDeckLink;\r
-#endif         /* __IDeckLink_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkOutput_FWD_DEFINED__\r
-#define __IDeckLinkOutput_FWD_DEFINED__\r
-typedef interface IDeckLinkOutput IDeckLinkOutput;\r
-#endif         /* __IDeckLinkOutput_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInput_FWD_DEFINED__\r
-#define __IDeckLinkInput_FWD_DEFINED__\r
-typedef interface IDeckLinkInput IDeckLinkInput;\r
-#endif         /* __IDeckLinkInput_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkTimecode_FWD_DEFINED__\r
-#define __IDeckLinkTimecode_FWD_DEFINED__\r
-typedef interface IDeckLinkTimecode IDeckLinkTimecode;\r
-#endif         /* __IDeckLinkTimecode_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoFrame_FWD_DEFINED__\r
-#define __IDeckLinkVideoFrame_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoFrame IDeckLinkVideoFrame;\r
-#endif         /* __IDeckLinkVideoFrame_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkMutableVideoFrame_FWD_DEFINED__\r
-#define __IDeckLinkMutableVideoFrame_FWD_DEFINED__\r
-typedef interface IDeckLinkMutableVideoFrame IDeckLinkMutableVideoFrame;\r
-#endif         /* __IDeckLinkMutableVideoFrame_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__\r
-#define __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoFrame3DExtensions IDeckLinkVideoFrame3DExtensions;\r
-#endif         /* __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoInputFrame_FWD_DEFINED__\r
-#define __IDeckLinkVideoInputFrame_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoInputFrame IDeckLinkVideoInputFrame;\r
-#endif         /* __IDeckLinkVideoInputFrame_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoFrameAncillary_FWD_DEFINED__\r
-#define __IDeckLinkVideoFrameAncillary_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoFrameAncillary IDeckLinkVideoFrameAncillary;\r
-#endif         /* __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkAudioInputPacket_FWD_DEFINED__\r
-#define __IDeckLinkAudioInputPacket_FWD_DEFINED__\r
-typedef interface IDeckLinkAudioInputPacket IDeckLinkAudioInputPacket;\r
-#endif         /* __IDeckLinkAudioInputPacket_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkScreenPreviewCallback_FWD_DEFINED__\r
-#define __IDeckLinkScreenPreviewCallback_FWD_DEFINED__\r
-typedef interface IDeckLinkScreenPreviewCallback IDeckLinkScreenPreviewCallback;\r
-#endif         /* __IDeckLinkScreenPreviewCallback_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
-#define __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
-typedef interface IDeckLinkGLScreenPreviewHelper IDeckLinkGLScreenPreviewHelper;\r
-#endif         /* __IDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkConfiguration_FWD_DEFINED__\r
-#define __IDeckLinkConfiguration_FWD_DEFINED__\r
-typedef interface IDeckLinkConfiguration IDeckLinkConfiguration;\r
-#endif         /* __IDeckLinkConfiguration_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkAttributes_FWD_DEFINED__\r
-#define __IDeckLinkAttributes_FWD_DEFINED__\r
-typedef interface IDeckLinkAttributes IDeckLinkAttributes;\r
-#endif         /* __IDeckLinkAttributes_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkKeyer_FWD_DEFINED__\r
-#define __IDeckLinkKeyer_FWD_DEFINED__\r
-typedef interface IDeckLinkKeyer IDeckLinkKeyer;\r
-#endif         /* __IDeckLinkKeyer_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoConversion_FWD_DEFINED__\r
-#define __IDeckLinkVideoConversion_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoConversion IDeckLinkVideoConversion;\r
-#endif         /* __IDeckLinkVideoConversion_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__\r
-#define __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__\r
-typedef interface IDeckLinkDeckControlStatusCallback IDeckLinkDeckControlStatusCallback;\r
-#endif         /* __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDeckControl_FWD_DEFINED__\r
-#define __IDeckLinkDeckControl_FWD_DEFINED__\r
-typedef interface IDeckLinkDeckControl IDeckLinkDeckControl;\r
-#endif         /* __IDeckLinkDeckControl_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __CDeckLinkIterator_FWD_DEFINED__\r
-#define __CDeckLinkIterator_FWD_DEFINED__\r
-\r
-#ifdef __cplusplus\r
-typedef class CDeckLinkIterator CDeckLinkIterator;\r
-#else\r
-typedef struct CDeckLinkIterator CDeckLinkIterator;\r
-#endif /* __cplusplus */\r
-\r
-#endif         /* __CDeckLinkIterator_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __CDeckLinkAPIInformation_FWD_DEFINED__\r
-#define __CDeckLinkAPIInformation_FWD_DEFINED__\r
-\r
-#ifdef __cplusplus\r
-typedef class CDeckLinkAPIInformation CDeckLinkAPIInformation;\r
-#else\r
-typedef struct CDeckLinkAPIInformation CDeckLinkAPIInformation;\r
-#endif /* __cplusplus */\r
-\r
-#endif         /* __CDeckLinkAPIInformation_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
-#define __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__\r
-\r
-#ifdef __cplusplus\r
-typedef class CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;\r
-#else\r
-typedef struct CDeckLinkGLScreenPreviewHelper CDeckLinkGLScreenPreviewHelper;\r
-#endif /* __cplusplus */\r
-\r
-#endif         /* __CDeckLinkGLScreenPreviewHelper_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __CDeckLinkVideoConversion_FWD_DEFINED__\r
-#define __CDeckLinkVideoConversion_FWD_DEFINED__\r
-\r
-#ifdef __cplusplus\r
-typedef class CDeckLinkVideoConversion CDeckLinkVideoConversion;\r
-#else\r
-typedef struct CDeckLinkVideoConversion CDeckLinkVideoConversion;\r
-#endif /* __cplusplus */\r
-\r
-#endif         /* __CDeckLinkVideoConversion_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDeckControl_v7_9_FWD_DEFINED__\r
-#define __IDeckLinkDeckControl_v7_9_FWD_DEFINED__\r
-typedef interface IDeckLinkDeckControl_v7_9 IDeckLinkDeckControl_v7_9;\r
-#endif         /* __IDeckLinkDeckControl_v7_9_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkDisplayModeIterator_v7_6 IDeckLinkDisplayModeIterator_v7_6;\r
-#endif         /* __IDeckLinkDisplayModeIterator_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkDisplayMode_v7_6 IDeckLinkDisplayMode_v7_6;\r
-#endif         /* __IDeckLinkDisplayMode_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkOutput_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkOutput_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkOutput_v7_6 IDeckLinkOutput_v7_6;\r
-#endif         /* __IDeckLinkOutput_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInput_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkInput_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkInput_v7_6 IDeckLinkInput_v7_6;\r
-#endif         /* __IDeckLinkInput_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkTimecode_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkTimecode_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkTimecode_v7_6 IDeckLinkTimecode_v7_6;\r
-#endif         /* __IDeckLinkTimecode_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoFrame_v7_6 IDeckLinkVideoFrame_v7_6;\r
-#endif         /* __IDeckLinkVideoFrame_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkMutableVideoFrame_v7_6 IDeckLinkMutableVideoFrame_v7_6;\r
-#endif         /* __IDeckLinkMutableVideoFrame_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoInputFrame_v7_6 IDeckLinkVideoInputFrame_v7_6;\r
-#endif         /* __IDeckLinkVideoInputFrame_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkScreenPreviewCallback_v7_6 IDeckLinkScreenPreviewCallback_v7_6;\r
-#endif         /* __IDeckLinkScreenPreviewCallback_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkGLScreenPreviewHelper_v7_6 IDeckLinkGLScreenPreviewHelper_v7_6;\r
-#endif         /* __IDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoConversion_v7_6 IDeckLinkVideoConversion_v7_6;\r
-#endif         /* __IDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkConfiguration_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkConfiguration_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkConfiguration_v7_6 IDeckLinkConfiguration_v7_6;\r
-#endif         /* __IDeckLinkConfiguration_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoOutputCallback_v7_6 IDeckLinkVideoOutputCallback_v7_6;\r
-#endif         /* __IDeckLinkVideoOutputCallback_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInputCallback_v7_6_FWD_DEFINED__\r
-#define __IDeckLinkInputCallback_v7_6_FWD_DEFINED__\r
-typedef interface IDeckLinkInputCallback_v7_6 IDeckLinkInputCallback_v7_6;\r
-#endif         /* __IDeckLinkInputCallback_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__\r
-#define __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__\r
-\r
-#ifdef __cplusplus\r
-typedef class CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;\r
-#else\r
-typedef struct CDeckLinkGLScreenPreviewHelper_v7_6 CDeckLinkGLScreenPreviewHelper_v7_6;\r
-#endif /* __cplusplus */\r
-\r
-#endif         /* __CDeckLinkGLScreenPreviewHelper_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__\r
-#define __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__\r
-\r
-#ifdef __cplusplus\r
-typedef class CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;\r
-#else\r
-typedef struct CDeckLinkVideoConversion_v7_6 CDeckLinkVideoConversion_v7_6;\r
-#endif /* __cplusplus */\r
-\r
-#endif         /* __CDeckLinkVideoConversion_v7_6_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInputCallback_v7_3_FWD_DEFINED__\r
-#define __IDeckLinkInputCallback_v7_3_FWD_DEFINED__\r
-typedef interface IDeckLinkInputCallback_v7_3 IDeckLinkInputCallback_v7_3;\r
-#endif         /* __IDeckLinkInputCallback_v7_3_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkOutput_v7_3_FWD_DEFINED__\r
-#define __IDeckLinkOutput_v7_3_FWD_DEFINED__\r
-typedef interface IDeckLinkOutput_v7_3 IDeckLinkOutput_v7_3;\r
-#endif         /* __IDeckLinkOutput_v7_3_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInput_v7_3_FWD_DEFINED__\r
-#define __IDeckLinkInput_v7_3_FWD_DEFINED__\r
-typedef interface IDeckLinkInput_v7_3 IDeckLinkInput_v7_3;\r
-#endif         /* __IDeckLinkInput_v7_3_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__\r
-#define __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoInputFrame_v7_3 IDeckLinkVideoInputFrame_v7_3;\r
-#endif         /* __IDeckLinkVideoInputFrame_v7_3_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__\r
-#define __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__\r
-typedef interface IDeckLinkDisplayModeIterator_v7_1 IDeckLinkDisplayModeIterator_v7_1;\r
-#endif         /* __IDeckLinkDisplayModeIterator_v7_1_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__\r
-#define __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__\r
-typedef interface IDeckLinkDisplayMode_v7_1 IDeckLinkDisplayMode_v7_1;\r
-#endif         /* __IDeckLinkDisplayMode_v7_1_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__\r
-#define __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoFrame_v7_1 IDeckLinkVideoFrame_v7_1;\r
-#endif         /* __IDeckLinkVideoFrame_v7_1_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__\r
-#define __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoInputFrame_v7_1 IDeckLinkVideoInputFrame_v7_1;\r
-#endif         /* __IDeckLinkVideoInputFrame_v7_1_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__\r
-#define __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__\r
-typedef interface IDeckLinkAudioInputPacket_v7_1 IDeckLinkAudioInputPacket_v7_1;\r
-#endif         /* __IDeckLinkAudioInputPacket_v7_1_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__\r
-#define __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__\r
-typedef interface IDeckLinkVideoOutputCallback_v7_1 IDeckLinkVideoOutputCallback_v7_1;\r
-#endif         /* __IDeckLinkVideoOutputCallback_v7_1_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInputCallback_v7_1_FWD_DEFINED__\r
-#define __IDeckLinkInputCallback_v7_1_FWD_DEFINED__\r
-typedef interface IDeckLinkInputCallback_v7_1 IDeckLinkInputCallback_v7_1;\r
-#endif         /* __IDeckLinkInputCallback_v7_1_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkOutput_v7_1_FWD_DEFINED__\r
-#define __IDeckLinkOutput_v7_1_FWD_DEFINED__\r
-typedef interface IDeckLinkOutput_v7_1 IDeckLinkOutput_v7_1;\r
-#endif         /* __IDeckLinkOutput_v7_1_FWD_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInput_v7_1_FWD_DEFINED__\r
-#define __IDeckLinkInput_v7_1_FWD_DEFINED__\r
-typedef interface IDeckLinkInput_v7_1 IDeckLinkInput_v7_1;\r
-#endif         /* __IDeckLinkInput_v7_1_FWD_DEFINED__ */\r
-\r
-\r
-/* header files for imported files */\r
-#include "unknwn.h"\r
-\r
-#ifdef __cplusplus\r
-extern "C"{\r
-#endif \r
-\r
-\r
-\r
-#ifndef __DeckLinkAPI_LIBRARY_DEFINED__\r
-#define __DeckLinkAPI_LIBRARY_DEFINED__\r
-\r
-/* library DeckLinkAPI */\r
-/* [helpstring][version][uuid] */ \r
-\r
-typedef LONGLONG BMDTimeValue;\r
-\r
-typedef LONGLONG BMDTimeScale;\r
-\r
-typedef unsigned long BMDTimecodeBCD;\r
-\r
-typedef unsigned long BMDTimecodeUserBits;\r
-\r
-typedef unsigned long BMDDisplayModeFlags;\r
-typedef unsigned long BMDFrameFlags;\r
-typedef unsigned long BMDVideoInputFlags;\r
-typedef unsigned long BMDVideoInputFormatChangedEvents;\r
-typedef unsigned long BMDDetectedVideoInputFormatFlags;\r
-typedef unsigned long BMDTimecodeFlags;\r
-typedef unsigned long BMDAnalogVideoFlags;\r
-typedef unsigned long BMDDeckControlStatusFlags;\r
-typedef unsigned long BMDDeckControlExportModeOpsFlags;\r
-#if 0\r
-typedef enum _BMDDisplayModeFlags BMDDisplayModeFlags;\r
-\r
-typedef enum _BMDFrameFlags BMDFrameFlags;\r
-\r
-typedef enum _BMDVideoInputFlags BMDVideoInputFlags;\r
-\r
-typedef enum _BMDVideoInputFormatChangedEvents BMDVideoInputFormatChangedEvents;\r
-\r
-typedef enum _BMDDetectedVideoInputFormatFlags BMDDetectedVideoInputFormatFlags;\r
-\r
-typedef enum _BMDTimecodeFlags BMDTimecodeFlags;\r
-\r
-typedef enum _BMDAnalogVideoFlags BMDAnalogVideoFlags;\r
-\r
-typedef enum _BMDDeckControlStatusFlags BMDDeckControlStatusFlags;\r
-\r
-typedef enum _BMDDeckControlExportModeOpsFlags BMDDeckControlExportModeOpsFlags;\r
-\r
-#endif\r
-typedef /* [v1_enum] */ \r
-enum _BMDDisplayMode\r
-    {  bmdModeNTSC     = 0x6e747363,\r
-       bmdModeNTSC2398 = 0x6e743233,\r
-       bmdModePAL      = 0x70616c20,\r
-       bmdModeNTSCp    = 0x6e747370,\r
-       bmdModePALp     = 0x70616c70,\r
-       bmdModeHD1080p2398      = 0x32337073,\r
-       bmdModeHD1080p24        = 0x32347073,\r
-       bmdModeHD1080p25        = 0x48703235,\r
-       bmdModeHD1080p2997      = 0x48703239,\r
-       bmdModeHD1080p30        = 0x48703330,\r
-       bmdModeHD1080i50        = 0x48693530,\r
-       bmdModeHD1080i5994      = 0x48693539,\r
-       bmdModeHD1080i6000      = 0x48693630,\r
-       bmdModeHD1080p50        = 0x48703530,\r
-       bmdModeHD1080p5994      = 0x48703539,\r
-       bmdModeHD1080p6000      = 0x48703630,\r
-       bmdModeHD720p50 = 0x68703530,\r
-       bmdModeHD720p5994       = 0x68703539,\r
-       bmdModeHD720p60 = 0x68703630,\r
-       bmdMode2k2398   = 0x326b3233,\r
-       bmdMode2k24     = 0x326b3234,\r
-       bmdMode2k25     = 0x326b3235\r
-    }  BMDDisplayMode;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDFieldDominance\r
-    {  bmdUnknownFieldDominance        = 0,\r
-       bmdLowerFieldFirst      = 0x6c6f7772,\r
-       bmdUpperFieldFirst      = 0x75707072,\r
-       bmdProgressiveFrame     = 0x70726f67,\r
-       bmdProgressiveSegmentedFrame    = 0x70736620\r
-    }  BMDFieldDominance;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDPixelFormat\r
-    {  bmdFormat8BitYUV        = 0x32767579,\r
-       bmdFormat10BitYUV       = 0x76323130,\r
-       bmdFormat8BitARGB       = 32,\r
-       bmdFormat8BitBGRA       = 0x42475241,\r
-       bmdFormat10BitRGB       = 0x72323130\r
-    }  BMDPixelFormat;\r
-\r
-/* [v1_enum] */ \r
-enum _BMDDisplayModeFlags\r
-    {  bmdDisplayModeSupports3D        = ( 1 << 0 ) ,\r
-       bmdDisplayModeColorspaceRec601  = ( 1 << 1 ) ,\r
-       bmdDisplayModeColorspaceRec709  = ( 1 << 2 ) \r
-    } ;\r
-typedef /* [v1_enum] */ \r
-enum _BMDVideoOutputFlags\r
-    {  bmdVideoOutputFlagDefault       = 0,\r
-       bmdVideoOutputVANC      = ( 1 << 0 ) ,\r
-       bmdVideoOutputVITC      = ( 1 << 1 ) ,\r
-       bmdVideoOutputRP188     = ( 1 << 2 ) ,\r
-       bmdVideoOutputDualStream3D      = ( 1 << 4 ) \r
-    }  BMDVideoOutputFlags;\r
-\r
-/* [v1_enum] */ \r
-enum _BMDFrameFlags\r
-    {  bmdFrameFlagDefault     = 0,\r
-       bmdFrameFlagFlipVertical        = ( 1 << 0 ) ,\r
-       bmdFrameHasNoInputSource        = ( 1 << 31 ) \r
-    } ;\r
-/* [v1_enum] */ \r
-enum _BMDVideoInputFlags\r
-    {  bmdVideoInputFlagDefault        = 0,\r
-       bmdVideoInputEnableFormatDetection      = ( 1 << 0 ) ,\r
-       bmdVideoInputDualStream3D       = ( 1 << 1 ) \r
-    } ;\r
-/* [v1_enum] */ \r
-enum _BMDVideoInputFormatChangedEvents\r
-    {  bmdVideoInputDisplayModeChanged = ( 1 << 0 ) ,\r
-       bmdVideoInputFieldDominanceChanged      = ( 1 << 1 ) ,\r
-       bmdVideoInputColorspaceChanged  = ( 1 << 2 ) \r
-    } ;\r
-/* [v1_enum] */ \r
-enum _BMDDetectedVideoInputFormatFlags\r
-    {  bmdDetectedVideoInputYCbCr422   = ( 1 << 0 ) ,\r
-       bmdDetectedVideoInputRGB444     = ( 1 << 1 ) \r
-    } ;\r
-typedef /* [v1_enum] */ \r
-enum _BMDOutputFrameCompletionResult\r
-    {  bmdOutputFrameCompleted = 0,\r
-       bmdOutputFrameDisplayedLate     = ( bmdOutputFrameCompleted + 1 ) ,\r
-       bmdOutputFrameDropped   = ( bmdOutputFrameDisplayedLate + 1 ) ,\r
-       bmdOutputFrameFlushed   = ( bmdOutputFrameDropped + 1 ) \r
-    }  BMDOutputFrameCompletionResult;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDReferenceStatus\r
-    {  bmdReferenceNotSupportedByHardware      = ( 1 << 0 ) ,\r
-       bmdReferenceLocked      = ( 1 << 1 ) \r
-    }  BMDReferenceStatus;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDAudioSampleRate\r
-    {  bmdAudioSampleRate48kHz = 48000\r
-    }  BMDAudioSampleRate;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDAudioSampleType\r
-    {  bmdAudioSampleType16bitInteger  = 16,\r
-       bmdAudioSampleType32bitInteger  = 32\r
-    }  BMDAudioSampleType;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDAudioOutputStreamType\r
-    {  bmdAudioOutputStreamContinuous  = 0,\r
-       bmdAudioOutputStreamContinuousDontResample      = ( bmdAudioOutputStreamContinuous + 1 ) ,\r
-       bmdAudioOutputStreamTimestamped = ( bmdAudioOutputStreamContinuousDontResample + 1 ) \r
-    }  BMDAudioOutputStreamType;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDDisplayModeSupport\r
-    {  bmdDisplayModeNotSupported      = 0,\r
-       bmdDisplayModeSupported = ( bmdDisplayModeNotSupported + 1 ) ,\r
-       bmdDisplayModeSupportedWithConversion   = ( bmdDisplayModeSupported + 1 ) \r
-    }  BMDDisplayModeSupport;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDTimecodeFormat\r
-    {  bmdTimecodeRP188        = 0x72703138,\r
-       bmdTimecodeRP188Field2  = 0x72703132,\r
-       bmdTimecodeVITC = 0x76697463,\r
-       bmdTimecodeVITCField2   = 0x76697432,\r
-       bmdTimecodeSerial       = 0x73657269\r
-    }  BMDTimecodeFormat;\r
-\r
-/* [v1_enum] */ \r
-enum _BMDTimecodeFlags\r
-    {  bmdTimecodeFlagDefault  = 0,\r
-       bmdTimecodeIsDropFrame  = ( 1 << 0 ) \r
-    } ;\r
-typedef /* [v1_enum] */ \r
-enum _BMDVideoConnection\r
-    {  bmdVideoConnectionSDI   = ( 1 << 0 ) ,\r
-       bmdVideoConnectionHDMI  = ( 1 << 1 ) ,\r
-       bmdVideoConnectionOpticalSDI    = ( 1 << 2 ) ,\r
-       bmdVideoConnectionComponent     = ( 1 << 3 ) ,\r
-       bmdVideoConnectionComposite     = ( 1 << 4 ) ,\r
-       bmdVideoConnectionSVideo        = ( 1 << 5 ) \r
-    }  BMDVideoConnection;\r
-\r
-/* [v1_enum] */ \r
-enum _BMDAnalogVideoFlags\r
-    {  bmdAnalogVideoFlagCompositeSetup75      = ( 1 << 0 ) ,\r
-       bmdAnalogVideoFlagComponentBetacamLevels        = ( 1 << 1 ) \r
-    } ;\r
-typedef /* [v1_enum] */ \r
-enum _BMDAudioConnection\r
-    {  bmdAudioConnectionEmbedded      = 0x656d6264,\r
-       bmdAudioConnectionAESEBU        = 0x61657320,\r
-       bmdAudioConnectionAnalog        = 0x616e6c67\r
-    }  BMDAudioConnection;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDAudioOutputAnalogAESSwitch\r
-    {  bmdAudioOutputSwitchAESEBU      = 0x61657320,\r
-       bmdAudioOutputSwitchAnalog      = 0x616e6c67\r
-    }  BMDAudioOutputAnalogAESSwitch;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDVideoOutputConversionMode\r
-    {  bmdNoVideoOutputConversion      = 0x6e6f6e65,\r
-       bmdVideoOutputLetterboxDownconversion   = 0x6c746278,\r
-       bmdVideoOutputAnamorphicDownconversion  = 0x616d7068,\r
-       bmdVideoOutputHD720toHD1080Conversion   = 0x37323063,\r
-       bmdVideoOutputHardwareLetterboxDownconversion   = 0x48576c62,\r
-       bmdVideoOutputHardwareAnamorphicDownconversion  = 0x4857616d,\r
-       bmdVideoOutputHardwareCenterCutDownconversion   = 0x48576363,\r
-       bmdVideoOutputHardware720p1080pCrossconversion  = 0x78636170,\r
-       bmdVideoOutputHardwareAnamorphic720pUpconversion        = 0x75613770,\r
-       bmdVideoOutputHardwareAnamorphic1080iUpconversion       = 0x75613169,\r
-       bmdVideoOutputHardwareAnamorphic149To720pUpconversion   = 0x75343770,\r
-       bmdVideoOutputHardwareAnamorphic149To1080iUpconversion  = 0x75343169,\r
-       bmdVideoOutputHardwarePillarbox720pUpconversion = 0x75703770,\r
-       bmdVideoOutputHardwarePillarbox1080iUpconversion        = 0x75703169\r
-    }  BMDVideoOutputConversionMode;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDVideoInputConversionMode\r
-    {  bmdNoVideoInputConversion       = 0x6e6f6e65,\r
-       bmdVideoInputLetterboxDownconversionFromHD1080  = 0x31306c62,\r
-       bmdVideoInputAnamorphicDownconversionFromHD1080 = 0x3130616d,\r
-       bmdVideoInputLetterboxDownconversionFromHD720   = 0x37326c62,\r
-       bmdVideoInputAnamorphicDownconversionFromHD720  = 0x3732616d,\r
-       bmdVideoInputLetterboxUpconversion      = 0x6c627570,\r
-       bmdVideoInputAnamorphicUpconversion     = 0x616d7570\r
-    }  BMDVideoInputConversionMode;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDVideo3DPackingFormat\r
-    {  bmdVideo3DPackingSidebySideHalf = 0x73627368,\r
-       bmdVideo3DPackingLinebyLine     = 0x6c62796c,\r
-       bmdVideo3DPackingTopAndBottom   = 0x7461626f,\r
-       bmdVideo3DPackingFramePacking   = 0x6672706b,\r
-       bmdVideo3DPackingLeftOnly       = 0x6c656674,\r
-       bmdVideo3DPackingRightOnly      = 0x72696768\r
-    }  BMDVideo3DPackingFormat;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDIdleVideoOutputOperation\r
-    {  bmdIdleVideoOutputBlack = 0x626c6163,\r
-       bmdIdleVideoOutputLastFrame     = 0x6c616661\r
-    }  BMDIdleVideoOutputOperation;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDDeckLinkConfigurationID\r
-    {  bmdDeckLinkConfigSwapSerialRxTx = 0x73737274,\r
-       bmdDeckLinkConfigUse1080pNotPsF = 0x6670726f,\r
-       bmdDeckLinkConfigHDMI3DPackingFormat    = 0x33647066,\r
-       bmdDeckLinkConfigBypass = 0x62797073,\r
-       bmdDeckLinkConfigAnalogAudioConsumerLevels      = 0x6161636c,\r
-       bmdDeckLinkConfigFieldFlickerRemoval    = 0x66646672,\r
-       bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion       = 0x746f3539,\r
-       bmdDeckLinkConfig444SDIVideoOutput      = 0x3434346f,\r
-       bmdDeckLinkConfig3GBpsVideoOutput       = 0x33676273,\r
-       bmdDeckLinkConfigBlackVideoOutputDuringCapture  = 0x62766f63,\r
-       bmdDeckLinkConfigLowLatencyVideoOutput  = 0x6c6c766f,\r
-       bmdDeckLinkConfigVideoOutputConnection  = 0x766f636e,\r
-       bmdDeckLinkConfigVideoOutputConversionMode      = 0x766f636d,\r
-       bmdDeckLinkConfigAnalogVideoOutputFlags = 0x61766f66,\r
-       bmdDeckLinkConfigReferenceInputTimingOffset     = 0x676c6f74,\r
-       bmdDeckLinkConfigVideoOutputIdleOperation       = 0x766f696f,\r
-       bmdDeckLinkConfigVideoOutputComponentLumaGain   = 0x6f636c67,\r
-       bmdDeckLinkConfigVideoOutputComponentChromaBlueGain     = 0x6f636362,\r
-       bmdDeckLinkConfigVideoOutputComponentChromaRedGain      = 0x6f636372,\r
-       bmdDeckLinkConfigVideoOutputCompositeLumaGain   = 0x6f696c67,\r
-       bmdDeckLinkConfigVideoOutputCompositeChromaGain = 0x6f696367,\r
-       bmdDeckLinkConfigVideoOutputSVideoLumaGain      = 0x6f736c67,\r
-       bmdDeckLinkConfigVideoOutputSVideoChromaGain    = 0x6f736367,\r
-       bmdDeckLinkConfigVideoInputConnection   = 0x7669636e,\r
-       bmdDeckLinkConfigAnalogVideoInputFlags  = 0x61766966,\r
-       bmdDeckLinkConfigVideoInputConversionMode       = 0x7669636d,\r
-       bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = 0x70646966,\r
-       bmdDeckLinkConfigVANCSourceLine1Mapping = 0x76736c31,\r
-       bmdDeckLinkConfigVANCSourceLine2Mapping = 0x76736c32,\r
-       bmdDeckLinkConfigVANCSourceLine3Mapping = 0x76736c33,\r
-       bmdDeckLinkConfigVideoInputComponentLumaGain    = 0x69636c67,\r
-       bmdDeckLinkConfigVideoInputComponentChromaBlueGain      = 0x69636362,\r
-       bmdDeckLinkConfigVideoInputComponentChromaRedGain       = 0x69636372,\r
-       bmdDeckLinkConfigVideoInputCompositeLumaGain    = 0x69696c67,\r
-       bmdDeckLinkConfigVideoInputCompositeChromaGain  = 0x69696367,\r
-       bmdDeckLinkConfigVideoInputSVideoLumaGain       = 0x69736c67,\r
-       bmdDeckLinkConfigVideoInputSVideoChromaGain     = 0x69736367,\r
-       bmdDeckLinkConfigAudioInputConnection   = 0x6169636e,\r
-       bmdDeckLinkConfigAnalogAudioInputScaleChannel1  = 0x61697331,\r
-       bmdDeckLinkConfigAnalogAudioInputScaleChannel2  = 0x61697332,\r
-       bmdDeckLinkConfigAnalogAudioInputScaleChannel3  = 0x61697333,\r
-       bmdDeckLinkConfigAnalogAudioInputScaleChannel4  = 0x61697334,\r
-       bmdDeckLinkConfigDigitalAudioInputScale = 0x64616973,\r
-       bmdDeckLinkConfigAudioOutputAESAnalogSwitch     = 0x616f6161,\r
-       bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = 0x616f7331,\r
-       bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = 0x616f7332,\r
-       bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = 0x616f7333,\r
-       bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = 0x616f7334,\r
-       bmdDeckLinkConfigDigitalAudioOutputScale        = 0x64616f73\r
-    }  BMDDeckLinkConfigurationID;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDDeckLinkAttributeID\r
-    {  BMDDeckLinkSupportsInternalKeying       = 0x6b657969,\r
-       BMDDeckLinkSupportsExternalKeying       = 0x6b657965,\r
-       BMDDeckLinkSupportsHDKeying     = 0x6b657968,\r
-       BMDDeckLinkSupportsInputFormatDetection = 0x696e6664,\r
-       BMDDeckLinkHasReferenceInput    = 0x6872696e,\r
-       BMDDeckLinkHasSerialPort        = 0x68737074,\r
-       BMDDeckLinkHasAnalogVideoOutputGain     = 0x61766f67,\r
-       BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain  = 0x6f766f67,\r
-       BMDDeckLinkHasVideoInputAntiAliasingFilter      = 0x6161666c,\r
-       BMDDeckLinkHasBypass    = 0x62797073,\r
-       BMDDeckLinkMaximumAudioChannels = 0x6d616368,\r
-       BMDDeckLinkNumberOfSubDevices   = 0x6e736264,\r
-       BMDDeckLinkSubDeviceIndex       = 0x73756269,\r
-       BMDDeckLinkVideoOutputConnections       = 0x766f636e,\r
-       BMDDeckLinkVideoInputConnections        = 0x7669636e,\r
-       BMDDeckLinkVideoInputGainMinimum        = 0x7669676d,\r
-       BMDDeckLinkVideoInputGainMaximum        = 0x76696778,\r
-       BMDDeckLinkVideoOutputGainMinimum       = 0x766f676d,\r
-       BMDDeckLinkVideoOutputGainMaximum       = 0x766f6778,\r
-       BMDDeckLinkSerialPortDeviceName = 0x736c706e\r
-    }  BMDDeckLinkAttributeID;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDDeckLinkAPIInformationID\r
-    {  BMDDeckLinkAPIVersion   = 0x76657273\r
-    }  BMDDeckLinkAPIInformationID;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDDeckControlMode\r
-    {  bmdDeckControlNotOpened = 0x6e746f70,\r
-       bmdDeckControlVTRControlMode    = 0x76747263,\r
-       bmdDeckControlExportMode        = 0x6578706d,\r
-       bmdDeckControlCaptureMode       = 0x6361706d\r
-    }  BMDDeckControlMode;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDDeckControlEvent\r
-    {  bmdDeckControlAbortedEvent      = 0x61627465,\r
-       bmdDeckControlPrepareForExportEvent     = 0x70666565,\r
-       bmdDeckControlExportCompleteEvent       = 0x65786365,\r
-       bmdDeckControlPrepareForCaptureEvent    = 0x70666365,\r
-       bmdDeckControlCaptureCompleteEvent      = 0x63636576\r
-    }  BMDDeckControlEvent;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDDeckControlVTRControlState\r
-    {  bmdDeckControlNotInVTRControlMode       = 0x6e76636d,\r
-       bmdDeckControlVTRControlPlaying = 0x76747270,\r
-       bmdDeckControlVTRControlRecording       = 0x76747272,\r
-       bmdDeckControlVTRControlStill   = 0x76747261,\r
-       bmdDeckControlVTRControlSeeking = 0x76747273,\r
-       bmdDeckControlVTRControlStopped = 0x7674726f\r
-    }  BMDDeckControlVTRControlState;\r
-\r
-/* [v1_enum] */ \r
-enum _BMDDeckControlStatusFlags\r
-    {  bmdDeckControlStatusDeckConnected       = ( 1 << 0 ) ,\r
-       bmdDeckControlStatusRemoteMode  = ( 1 << 1 ) ,\r
-       bmdDeckControlStatusRecordInhibited     = ( 1 << 2 ) ,\r
-       bmdDeckControlStatusCassetteOut = ( 1 << 3 ) \r
-    } ;\r
-/* [v1_enum] */ \r
-enum _BMDDeckControlExportModeOpsFlags\r
-    {  bmdDeckControlExportModeInsertVideo     = ( 1 << 0 ) ,\r
-       bmdDeckControlExportModeInsertAudio1    = ( 1 << 1 ) ,\r
-       bmdDeckControlExportModeInsertAudio2    = ( 1 << 2 ) ,\r
-       bmdDeckControlExportModeInsertAudio3    = ( 1 << 3 ) ,\r
-       bmdDeckControlExportModeInsertAudio4    = ( 1 << 4 ) ,\r
-       bmdDeckControlExportModeInsertAudio5    = ( 1 << 5 ) ,\r
-       bmdDeckControlExportModeInsertAudio6    = ( 1 << 6 ) ,\r
-       bmdDeckControlExportModeInsertAudio7    = ( 1 << 7 ) ,\r
-       bmdDeckControlExportModeInsertAudio8    = ( 1 << 8 ) ,\r
-       bmdDeckControlExportModeInsertAudio9    = ( 1 << 9 ) ,\r
-       bmdDeckControlExportModeInsertAudio10   = ( 1 << 10 ) ,\r
-       bmdDeckControlExportModeInsertAudio11   = ( 1 << 11 ) ,\r
-       bmdDeckControlExportModeInsertAudio12   = ( 1 << 12 ) ,\r
-       bmdDeckControlExportModeInsertTimeCode  = ( 1 << 13 ) ,\r
-       bmdDeckControlExportModeInsertAssemble  = ( 1 << 14 ) ,\r
-       bmdDeckControlExportModeInsertPreview   = ( 1 << 15 ) ,\r
-       bmdDeckControlUseManualExport   = ( 1 << 16 ) \r
-    } ;\r
-typedef /* [v1_enum] */ \r
-enum _BMDDeckControlError\r
-    {  bmdDeckControlNoError   = 0x6e6f6572,\r
-       bmdDeckControlModeError = 0x6d6f6572,\r
-       bmdDeckControlMissedInPointError        = 0x6d696572,\r
-       bmdDeckControlDeckTimeoutError  = 0x64746572,\r
-       bmdDeckControlCommandFailedError        = 0x63666572,\r
-       bmdDeckControlDeviceAlreadyOpenedError  = 0x64616c6f,\r
-       bmdDeckControlFailedToOpenDeviceError   = 0x66646572,\r
-       bmdDeckControlInLocalModeError  = 0x6c6d6572,\r
-       bmdDeckControlEndOfTapeError    = 0x65746572,\r
-       bmdDeckControlUserAbortError    = 0x75616572,\r
-       bmdDeckControlNoTapeInDeckError = 0x6e746572,\r
-       bmdDeckControlNoVideoFromCardError      = 0x6e766663,\r
-       bmdDeckControlNoCommunicationError      = 0x6e636f6d,\r
-       bmdDeckControlBufferTooSmallError       = 0x6274736d,\r
-       bmdDeckControlBadChecksumError  = 0x63686b73,\r
-       bmdDeckControlUnknownError      = 0x756e6572\r
-    }  BMDDeckControlError;\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMD3DPreviewFormat\r
-    {  bmd3DPreviewFormatDefault       = 0x64656661,\r
-       bmd3DPreviewFormatLeftOnly      = 0x6c656674,\r
-       bmd3DPreviewFormatRightOnly     = 0x72696768,\r
-       bmd3DPreviewFormatSideBySide    = 0x73696465,\r
-       bmd3DPreviewFormatTopBottom     = 0x746f7062\r
-    }  BMD3DPreviewFormat;\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-typedef /* [v1_enum] */ \r
-enum _BMDVideoConnection_v7_6\r
-    {  bmdVideoConnectionSDI_v7_6      = 0x73646920,\r
-       bmdVideoConnectionHDMI_v7_6     = 0x68646d69,\r
-       bmdVideoConnectionOpticalSDI_v7_6       = 0x6f707469,\r
-       bmdVideoConnectionComponent_v7_6        = 0x63706e74,\r
-       bmdVideoConnectionComposite_v7_6        = 0x636d7374,\r
-       bmdVideoConnectionSVideo_v7_6   = 0x73766964\r
-    }  BMDVideoConnection_v7_6;\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-\r
-EXTERN_C const IID LIBID_DeckLinkAPI;\r
-\r
-#ifndef __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoOutputCallback */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoOutputCallback;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("20AA5225-1958-47CB-820B-80A8D521A6EE")\r
-    IDeckLinkVideoOutputCallback : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( \r
-            /* [in] */ IDeckLinkVideoFrame *completedFrame,\r
-            /* [in] */ BMDOutputFrameCompletionResult result) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoOutputCallbackVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoOutputCallback * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoOutputCallback * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoOutputCallback * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( \r
-            IDeckLinkVideoOutputCallback * This,\r
-            /* [in] */ IDeckLinkVideoFrame *completedFrame,\r
-            /* [in] */ BMDOutputFrameCompletionResult result);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )( \r
-            IDeckLinkVideoOutputCallback * This);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoOutputCallbackVtbl;\r
-\r
-    interface IDeckLinkVideoOutputCallback\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoOutputCallbackVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoOutputCallback_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoOutputCallback_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoOutputCallback_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoOutputCallback_ScheduledFrameCompleted(This,completedFrame,result)       \\r
-    ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) \r
-\r
-#define IDeckLinkVideoOutputCallback_ScheduledPlaybackHasStopped(This) \\r
-    ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoOutputCallback_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInputCallback_INTERFACE_DEFINED__\r
-#define __IDeckLinkInputCallback_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkInputCallback */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkInputCallback;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("DD04E5EC-7415-42AB-AE4A-E80C4DFC044A")\r
-    IDeckLinkInputCallback : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( \r
-            /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
-            /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
-            /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
-            /* [in] */ IDeckLinkVideoInputFrame *videoFrame,\r
-            /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkInputCallbackVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkInputCallback * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkInputCallback * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkInputCallback * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( \r
-            IDeckLinkInputCallback * This,\r
-            /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
-            /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
-            /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
-            IDeckLinkInputCallback * This,\r
-            /* [in] */ IDeckLinkVideoInputFrame *videoFrame,\r
-            /* [in] */ IDeckLinkAudioInputPacket *audioPacket);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkInputCallbackVtbl;\r
-\r
-    interface IDeckLinkInputCallback\r
-    {\r
-        CONST_VTBL struct IDeckLinkInputCallbackVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkInputCallback_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkInputCallback_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkInputCallback_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkInputCallback_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)     \\r
-    ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
-\r
-#define IDeckLinkInputCallback_VideoInputFrameArrived(This,videoFrame,audioPacket)     \\r
-    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkInputCallback_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__\r
-#define __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkMemoryAllocator */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkMemoryAllocator;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("B36EB6E7-9D29-4AA8-92EF-843B87A289E8")\r
-    IDeckLinkMemoryAllocator : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE AllocateBuffer( \r
-            /* [in] */ unsigned long bufferSize,\r
-            /* [out] */ void **allocatedBuffer) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE ReleaseBuffer( \r
-            /* [in] */ void *buffer) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Decommit( void) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkMemoryAllocatorVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkMemoryAllocator * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkMemoryAllocator * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkMemoryAllocator * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *AllocateBuffer )( \r
-            IDeckLinkMemoryAllocator * This,\r
-            /* [in] */ unsigned long bufferSize,\r
-            /* [out] */ void **allocatedBuffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )( \r
-            IDeckLinkMemoryAllocator * This,\r
-            /* [in] */ void *buffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Commit )( \r
-            IDeckLinkMemoryAllocator * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Decommit )( \r
-            IDeckLinkMemoryAllocator * This);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkMemoryAllocatorVtbl;\r
-\r
-    interface IDeckLinkMemoryAllocator\r
-    {\r
-        CONST_VTBL struct IDeckLinkMemoryAllocatorVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkMemoryAllocator_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkMemoryAllocator_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkMemoryAllocator_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkMemoryAllocator_AllocateBuffer(This,bufferSize,allocatedBuffer)       \\r
-    ( (This)->lpVtbl -> AllocateBuffer(This,bufferSize,allocatedBuffer) ) \r
-\r
-#define IDeckLinkMemoryAllocator_ReleaseBuffer(This,buffer)    \\r
-    ( (This)->lpVtbl -> ReleaseBuffer(This,buffer) ) \r
-\r
-#define IDeckLinkMemoryAllocator_Commit(This)  \\r
-    ( (This)->lpVtbl -> Commit(This) ) \r
-\r
-#define IDeckLinkMemoryAllocator_Decommit(This)        \\r
-    ( (This)->lpVtbl -> Decommit(This) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__\r
-#define __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkAudioOutputCallback */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkAudioOutputCallback;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("403C681B-7F46-4A12-B993-2BB127084EE6")\r
-    IDeckLinkAudioOutputCallback : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE RenderAudioSamples( \r
-            /* [in] */ BOOL preroll) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkAudioOutputCallbackVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkAudioOutputCallback * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkAudioOutputCallback * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkAudioOutputCallback * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *RenderAudioSamples )( \r
-            IDeckLinkAudioOutputCallback * This,\r
-            /* [in] */ BOOL preroll);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkAudioOutputCallbackVtbl;\r
-\r
-    interface IDeckLinkAudioOutputCallback\r
-    {\r
-        CONST_VTBL struct IDeckLinkAudioOutputCallbackVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkAudioOutputCallback_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkAudioOutputCallback_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkAudioOutputCallback_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkAudioOutputCallback_RenderAudioSamples(This,preroll)  \\r
-    ( (This)->lpVtbl -> RenderAudioSamples(This,preroll) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkAudioOutputCallback_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkIterator_INTERFACE_DEFINED__\r
-#define __IDeckLinkIterator_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkIterator */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkIterator;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("74E936FC-CC28-4A67-81A0-1E94E52D4E69")\r
-    IDeckLinkIterator : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE Next( \r
-            /* [out] */ IDeckLink **deckLinkInstance) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkIteratorVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkIterator * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkIterator * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkIterator * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Next )( \r
-            IDeckLinkIterator * This,\r
-            /* [out] */ IDeckLink **deckLinkInstance);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkIteratorVtbl;\r
-\r
-    interface IDeckLinkIterator\r
-    {\r
-        CONST_VTBL struct IDeckLinkIteratorVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkIterator_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkIterator_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkIterator_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkIterator_Next(This,deckLinkInstance)  \\r
-    ( (This)->lpVtbl -> Next(This,deckLinkInstance) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkIterator_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkAPIInformation_INTERFACE_DEFINED__\r
-#define __IDeckLinkAPIInformation_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkAPIInformation */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkAPIInformation;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("7BEA3C68-730D-4322-AF34-8A7152B532A4")\r
-    IDeckLinkAPIInformation : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
-            /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
-            /* [out] */ BOOL *value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
-            /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
-            /* [out] */ LONGLONG *value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
-            /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
-            /* [out] */ double *value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetString( \r
-            /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
-            /* [out] */ BSTR *value) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkAPIInformationVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkAPIInformation * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkAPIInformation * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkAPIInformation * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
-            IDeckLinkAPIInformation * This,\r
-            /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
-            /* [out] */ BOOL *value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
-            IDeckLinkAPIInformation * This,\r
-            /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
-            /* [out] */ LONGLONG *value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
-            IDeckLinkAPIInformation * This,\r
-            /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
-            /* [out] */ double *value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
-            IDeckLinkAPIInformation * This,\r
-            /* [in] */ BMDDeckLinkAPIInformationID cfgID,\r
-            /* [out] */ BSTR *value);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkAPIInformationVtbl;\r
-\r
-    interface IDeckLinkAPIInformation\r
-    {\r
-        CONST_VTBL struct IDeckLinkAPIInformationVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkAPIInformation_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkAPIInformation_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkAPIInformation_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkAPIInformation_GetFlag(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
-\r
-#define IDeckLinkAPIInformation_GetInt(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
-\r
-#define IDeckLinkAPIInformation_GetFloat(This,cfgID,value)     \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
-\r
-#define IDeckLinkAPIInformation_GetString(This,cfgID,value)    \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkAPIInformation_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__\r
-#define __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkDisplayModeIterator */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkDisplayModeIterator;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("9C88499F-F601-4021-B80B-032E4EB41C35")\r
-    IDeckLinkDisplayModeIterator : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE Next( \r
-            /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkDisplayModeIteratorVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkDisplayModeIterator * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkDisplayModeIterator * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkDisplayModeIterator * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Next )( \r
-            IDeckLinkDisplayModeIterator * This,\r
-            /* [out] */ IDeckLinkDisplayMode **deckLinkDisplayMode);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkDisplayModeIteratorVtbl;\r
-\r
-    interface IDeckLinkDisplayModeIterator\r
-    {\r
-        CONST_VTBL struct IDeckLinkDisplayModeIteratorVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkDisplayModeIterator_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkDisplayModeIterator_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkDisplayModeIterator_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkDisplayModeIterator_Next(This,deckLinkDisplayMode)    \\r
-    ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkDisplayModeIterator_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDisplayMode_INTERFACE_DEFINED__\r
-#define __IDeckLinkDisplayMode_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkDisplayMode */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkDisplayMode;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78")\r
-    IDeckLinkDisplayMode : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetName( \r
-            /* [out] */ BSTR *name) = 0;\r
-        \r
-        virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
-        \r
-        virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
-        \r
-        virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetFrameRate( \r
-            /* [out] */ BMDTimeValue *frameDuration,\r
-            /* [out] */ BMDTimeScale *timeScale) = 0;\r
-        \r
-        virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;\r
-        \r
-        virtual BMDDisplayModeFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkDisplayModeVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkDisplayMode * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkDisplayMode * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkDisplayMode * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetName )( \r
-            IDeckLinkDisplayMode * This,\r
-            /* [out] */ BSTR *name);\r
-        \r
-        BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
-            IDeckLinkDisplayMode * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkDisplayMode * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkDisplayMode * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( \r
-            IDeckLinkDisplayMode * This,\r
-            /* [out] */ BMDTimeValue *frameDuration,\r
-            /* [out] */ BMDTimeScale *timeScale);\r
-        \r
-        BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )( \r
-            IDeckLinkDisplayMode * This);\r
-        \r
-        BMDDisplayModeFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkDisplayMode * This);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkDisplayModeVtbl;\r
-\r
-    interface IDeckLinkDisplayMode\r
-    {\r
-        CONST_VTBL struct IDeckLinkDisplayModeVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkDisplayMode_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkDisplayMode_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkDisplayMode_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkDisplayMode_GetName(This,name)        \\r
-    ( (This)->lpVtbl -> GetName(This,name) ) \r
-\r
-#define IDeckLinkDisplayMode_GetDisplayMode(This)      \\r
-    ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
-\r
-#define IDeckLinkDisplayMode_GetWidth(This)    \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
-\r
-#define IDeckLinkDisplayMode_GetHeight(This)   \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
-\r
-#define IDeckLinkDisplayMode_GetFrameRate(This,frameDuration,timeScale)        \\r
-    ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) \r
-\r
-#define IDeckLinkDisplayMode_GetFieldDominance(This)   \\r
-    ( (This)->lpVtbl -> GetFieldDominance(This) ) \r
-\r
-#define IDeckLinkDisplayMode_GetFlags(This)    \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkDisplayMode_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLink_INTERFACE_DEFINED__\r
-#define __IDeckLink_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLink */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLink;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("62BFF75D-6569-4E55-8D4D-66AA03829ABC")\r
-    IDeckLink : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetModelName( \r
-            /* [out] */ BSTR *modelName) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLink * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLink * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLink * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetModelName )( \r
-            IDeckLink * This,\r
-            /* [out] */ BSTR *modelName);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVtbl;\r
-\r
-    interface IDeckLink\r
-    {\r
-        CONST_VTBL struct IDeckLinkVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLink_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLink_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLink_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLink_GetModelName(This,modelName) \\r
-    ( (This)->lpVtbl -> GetModelName(This,modelName) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLink_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkOutput_INTERFACE_DEFINED__\r
-#define __IDeckLinkOutput_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkOutput */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkOutput;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("A3EF0963-0862-44ED-92A9-EE89ABF431C7")\r
-    IDeckLinkOutput : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
-            /* [in] */ BMDDisplayMode displayMode,\r
-            /* [in] */ BMDPixelFormat pixelFormat,\r
-            /* [in] */ BMDVideoOutputFlags flags,\r
-            /* [out] */ BMDDisplayModeSupport *result,\r
-            /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
-            /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
-            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
-            /* [in] */ BMDDisplayMode displayMode,\r
-            /* [in] */ BMDVideoOutputFlags flags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
-            /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
-            /* [in] */ long width,\r
-            /* [in] */ long height,\r
-            /* [in] */ long rowBytes,\r
-            /* [in] */ BMDPixelFormat pixelFormat,\r
-            /* [in] */ BMDFrameFlags flags,\r
-            /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
-            /* [in] */ BMDPixelFormat pixelFormat,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
-            /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
-            /* [in] */ IDeckLinkVideoFrame *theFrame,\r
-            /* [in] */ BMDTimeValue displayTime,\r
-            /* [in] */ BMDTimeValue displayDuration,\r
-            /* [in] */ BMDTimeScale timeScale) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
-            /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
-            /* [out] */ unsigned long *bufferedFrameCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
-            /* [in] */ BMDAudioSampleRate sampleRate,\r
-            /* [in] */ BMDAudioSampleType sampleType,\r
-            /* [in] */ unsigned long channelCount,\r
-            /* [in] */ BMDAudioOutputStreamType streamType) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
-            /* [in] */ void *buffer,\r
-            /* [in] */ unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
-            /* [in] */ void *buffer,\r
-            /* [in] */ unsigned long sampleFrameCount,\r
-            /* [in] */ BMDTimeValue streamTime,\r
-            /* [in] */ BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
-            /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
-            /* [in] */ BMDTimeValue playbackStartTime,\r
-            /* [in] */ BMDTimeScale timeScale,\r
-            /* [in] */ double playbackSpeed) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
-            /* [in] */ BMDTimeValue stopPlaybackAtTime,\r
-            /* [out] */ BMDTimeValue *actualStopTime,\r
-            /* [in] */ BMDTimeScale timeScale) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
-            /* [out] */ BOOL *active) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( \r
-            /* [in] */ BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *streamTime,\r
-            /* [out] */ double *playbackSpeed) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetReferenceStatus( \r
-            /* [out] */ BMDReferenceStatus *referenceStatus) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
-            /* [in] */ BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *hardwareTime,\r
-            /* [out] */ BMDTimeValue *timeInFrame,\r
-            /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkOutputVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkOutput * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkOutput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ BMDDisplayMode displayMode,\r
-            /* [in] */ BMDPixelFormat pixelFormat,\r
-            /* [in] */ BMDVideoOutputFlags flags,\r
-            /* [out] */ BMDDisplayModeSupport *result,\r
-            /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
-            IDeckLinkOutput * This,\r
-            /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ BMDDisplayMode displayMode,\r
-            /* [in] */ BMDVideoOutputFlags flags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
-            IDeckLinkOutput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ long width,\r
-            /* [in] */ long height,\r
-            /* [in] */ long rowBytes,\r
-            /* [in] */ BMDPixelFormat pixelFormat,\r
-            /* [in] */ BMDFrameFlags flags,\r
-            /* [out] */ IDeckLinkMutableVideoFrame **outFrame);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ BMDPixelFormat pixelFormat,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ IDeckLinkVideoFrame *theFrame);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ IDeckLinkVideoFrame *theFrame,\r
-            /* [in] */ BMDTimeValue displayTime,\r
-            /* [in] */ BMDTimeValue displayDuration,\r
-            /* [in] */ BMDTimeScale timeScale);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ IDeckLinkVideoOutputCallback *theCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
-            IDeckLinkOutput * This,\r
-            /* [out] */ unsigned long *bufferedFrameCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ BMDAudioSampleRate sampleRate,\r
-            /* [in] */ BMDAudioSampleType sampleType,\r
-            /* [in] */ unsigned long channelCount,\r
-            /* [in] */ BMDAudioOutputStreamType streamType);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
-            IDeckLinkOutput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ void *buffer,\r
-            /* [in] */ unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
-            IDeckLinkOutput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
-            IDeckLinkOutput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ void *buffer,\r
-            /* [in] */ unsigned long sampleFrameCount,\r
-            /* [in] */ BMDTimeValue streamTime,\r
-            /* [in] */ BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
-            IDeckLinkOutput * This,\r
-            /* [out] */ unsigned long *bufferedSampleFrameCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
-            IDeckLinkOutput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ BMDTimeValue playbackStartTime,\r
-            /* [in] */ BMDTimeScale timeScale,\r
-            /* [in] */ double playbackSpeed);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ BMDTimeValue stopPlaybackAtTime,\r
-            /* [out] */ BMDTimeValue *actualStopTime,\r
-            /* [in] */ BMDTimeScale timeScale);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
-            IDeckLinkOutput * This,\r
-            /* [out] */ BOOL *active);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *streamTime,\r
-            /* [out] */ double *playbackSpeed);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetReferenceStatus )( \r
-            IDeckLinkOutput * This,\r
-            /* [out] */ BMDReferenceStatus *referenceStatus);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
-            IDeckLinkOutput * This,\r
-            /* [in] */ BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *hardwareTime,\r
-            /* [out] */ BMDTimeValue *timeInFrame,\r
-            /* [out] */ BMDTimeValue *ticksPerFrame);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkOutputVtbl;\r
-\r
-    interface IDeckLinkOutput\r
-    {\r
-        CONST_VTBL struct IDeckLinkOutputVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkOutput_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkOutput_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkOutput_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkOutput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)      \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) \r
-\r
-#define IDeckLinkOutput_GetDisplayModeIterator(This,iterator)  \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
-\r
-#define IDeckLinkOutput_SetScreenPreviewCallback(This,previewCallback) \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
-\r
-#define IDeckLinkOutput_EnableVideoOutput(This,displayMode,flags)      \\r
-    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
-\r
-#define IDeckLinkOutput_DisableVideoOutput(This)       \\r
-    ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
-\r
-#define IDeckLinkOutput_SetVideoOutputFrameMemoryAllocator(This,theAllocator)  \\r
-    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
-\r
-#define IDeckLinkOutput_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)        \\r
-    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
-\r
-#define IDeckLinkOutput_CreateAncillaryData(This,pixelFormat,outBuffer)        \\r
-    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) \r
-\r
-#define IDeckLinkOutput_DisplayVideoFrameSync(This,theFrame)   \\r
-    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
-\r
-#define IDeckLinkOutput_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)        \\r
-    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
-\r
-#define IDeckLinkOutput_SetScheduledFrameCompletionCallback(This,theCallback)  \\r
-    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
-\r
-#define IDeckLinkOutput_GetBufferedVideoFrameCount(This,bufferedFrameCount)    \\r
-    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
-\r
-#define IDeckLinkOutput_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)  \\r
-    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
-\r
-#define IDeckLinkOutput_DisableAudioOutput(This)       \\r
-    ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
-\r
-#define IDeckLinkOutput_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)        \\r
-    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
-\r
-#define IDeckLinkOutput_BeginAudioPreroll(This)        \\r
-    ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
-\r
-#define IDeckLinkOutput_EndAudioPreroll(This)  \\r
-    ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
-\r
-#define IDeckLinkOutput_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)    \\r
-    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
-\r
-#define IDeckLinkOutput_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)        \\r
-    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
-\r
-#define IDeckLinkOutput_FlushBufferedAudioSamples(This)        \\r
-    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
-\r
-#define IDeckLinkOutput_SetAudioCallback(This,theCallback)     \\r
-    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
-\r
-#define IDeckLinkOutput_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) \\r
-    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
-\r
-#define IDeckLinkOutput_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)        \\r
-    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
-\r
-#define IDeckLinkOutput_IsScheduledPlaybackRunning(This,active)        \\r
-    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
-\r
-#define IDeckLinkOutput_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) \\r
-    ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) \r
-\r
-#define IDeckLinkOutput_GetReferenceStatus(This,referenceStatus)       \\r
-    ( (This)->lpVtbl -> GetReferenceStatus(This,referenceStatus) ) \r
-\r
-#define IDeckLinkOutput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)        \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkOutput_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInput_INTERFACE_DEFINED__\r
-#define __IDeckLinkInput_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkInput */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkInput;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("6D40EF78-28B9-4E21-990D-95BB7750A04F")\r
-    IDeckLinkInput : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
-            /* [in] */ BMDDisplayMode displayMode,\r
-            /* [in] */ BMDPixelFormat pixelFormat,\r
-            /* [in] */ BMDVideoInputFlags flags,\r
-            /* [out] */ BMDDisplayModeSupport *result,\r
-            /* [out] */ IDeckLinkDisplayMode **resultDisplayMode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
-            /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
-            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
-            /* [in] */ BMDDisplayMode displayMode,\r
-            /* [in] */ BMDPixelFormat pixelFormat,\r
-            /* [in] */ BMDVideoInputFlags flags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
-            /* [out] */ unsigned long *availableFrameCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
-            /* [in] */ BMDAudioSampleRate sampleRate,\r
-            /* [in] */ BMDAudioSampleType sampleType,\r
-            /* [in] */ unsigned long channelCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *availableSampleFrameCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
-            /* [in] */ IDeckLinkInputCallback *theCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
-            /* [in] */ BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *hardwareTime,\r
-            /* [out] */ BMDTimeValue *timeInFrame,\r
-            /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkInputVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkInput * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkInput * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkInput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
-            IDeckLinkInput * This,\r
-            /* [in] */ BMDDisplayMode displayMode,\r
-            /* [in] */ BMDPixelFormat pixelFormat,\r
-            /* [in] */ BMDVideoInputFlags flags,\r
-            /* [out] */ BMDDisplayModeSupport *result,\r
-            /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
-            IDeckLinkInput * This,\r
-            /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
-            IDeckLinkInput * This,\r
-            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
-            IDeckLinkInput * This,\r
-            /* [in] */ BMDDisplayMode displayMode,\r
-            /* [in] */ BMDPixelFormat pixelFormat,\r
-            /* [in] */ BMDVideoInputFlags flags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
-            IDeckLinkInput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
-            IDeckLinkInput * This,\r
-            /* [out] */ unsigned long *availableFrameCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
-            IDeckLinkInput * This,\r
-            /* [in] */ BMDAudioSampleRate sampleRate,\r
-            /* [in] */ BMDAudioSampleType sampleType,\r
-            /* [in] */ unsigned long channelCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
-            IDeckLinkInput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
-            IDeckLinkInput * This,\r
-            /* [out] */ unsigned long *availableSampleFrameCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
-            IDeckLinkInput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
-            IDeckLinkInput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
-            IDeckLinkInput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
-            IDeckLinkInput * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
-            IDeckLinkInput * This,\r
-            /* [in] */ IDeckLinkInputCallback *theCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
-            IDeckLinkInput * This,\r
-            /* [in] */ BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *hardwareTime,\r
-            /* [out] */ BMDTimeValue *timeInFrame,\r
-            /* [out] */ BMDTimeValue *ticksPerFrame);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkInputVtbl;\r
-\r
-    interface IDeckLinkInput\r
-    {\r
-        CONST_VTBL struct IDeckLinkInputVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkInput_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkInput_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkInput_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkInput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)       \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) \r
-\r
-#define IDeckLinkInput_GetDisplayModeIterator(This,iterator)   \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
-\r
-#define IDeckLinkInput_SetScreenPreviewCallback(This,previewCallback)  \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
-\r
-#define IDeckLinkInput_EnableVideoInput(This,displayMode,pixelFormat,flags)    \\r
-    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
-\r
-#define IDeckLinkInput_DisableVideoInput(This) \\r
-    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
-\r
-#define IDeckLinkInput_GetAvailableVideoFrameCount(This,availableFrameCount)   \\r
-    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
-\r
-#define IDeckLinkInput_EnableAudioInput(This,sampleRate,sampleType,channelCount)       \\r
-    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
-\r
-#define IDeckLinkInput_DisableAudioInput(This) \\r
-    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
-\r
-#define IDeckLinkInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)       \\r
-    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
-\r
-#define IDeckLinkInput_StartStreams(This)      \\r
-    ( (This)->lpVtbl -> StartStreams(This) ) \r
-\r
-#define IDeckLinkInput_StopStreams(This)       \\r
-    ( (This)->lpVtbl -> StopStreams(This) ) \r
-\r
-#define IDeckLinkInput_PauseStreams(This)      \\r
-    ( (This)->lpVtbl -> PauseStreams(This) ) \r
-\r
-#define IDeckLinkInput_FlushStreams(This)      \\r
-    ( (This)->lpVtbl -> FlushStreams(This) ) \r
-\r
-#define IDeckLinkInput_SetCallback(This,theCallback)   \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
-\r
-#define IDeckLinkInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkInput_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkTimecode_INTERFACE_DEFINED__\r
-#define __IDeckLinkTimecode_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkTimecode */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkTimecode;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("BC6CFBD3-8317-4325-AC1C-1216391E9340")\r
-    IDeckLinkTimecode : public IUnknown\r
-    {\r
-    public:\r
-        virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetComponents( \r
-            /* [out] */ unsigned char *hours,\r
-            /* [out] */ unsigned char *minutes,\r
-            /* [out] */ unsigned char *seconds,\r
-            /* [out] */ unsigned char *frames) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetString( \r
-            /* [out] */ BSTR *timecode) = 0;\r
-        \r
-        virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecodeUserBits( \r
-            /* [out] */ BMDTimecodeUserBits *userBits) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkTimecodeVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkTimecode * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkTimecode * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkTimecode * This);\r
-        \r
-        BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )( \r
-            IDeckLinkTimecode * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetComponents )( \r
-            IDeckLinkTimecode * This,\r
-            /* [out] */ unsigned char *hours,\r
-            /* [out] */ unsigned char *minutes,\r
-            /* [out] */ unsigned char *seconds,\r
-            /* [out] */ unsigned char *frames);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
-            IDeckLinkTimecode * This,\r
-            /* [out] */ BSTR *timecode);\r
-        \r
-        BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkTimecode * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecodeUserBits )( \r
-            IDeckLinkTimecode * This,\r
-            /* [out] */ BMDTimecodeUserBits *userBits);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkTimecodeVtbl;\r
-\r
-    interface IDeckLinkTimecode\r
-    {\r
-        CONST_VTBL struct IDeckLinkTimecodeVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkTimecode_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkTimecode_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkTimecode_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkTimecode_GetBCD(This) \\r
-    ( (This)->lpVtbl -> GetBCD(This) ) \r
-\r
-#define IDeckLinkTimecode_GetComponents(This,hours,minutes,seconds,frames)     \\r
-    ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) ) \r
-\r
-#define IDeckLinkTimecode_GetString(This,timecode)     \\r
-    ( (This)->lpVtbl -> GetString(This,timecode) ) \r
-\r
-#define IDeckLinkTimecode_GetFlags(This)       \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
-\r
-#define IDeckLinkTimecode_GetTimecodeUserBits(This,userBits)   \\r
-    ( (This)->lpVtbl -> GetTimecodeUserBits(This,userBits) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkTimecode_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoFrame_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoFrame_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoFrame */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoFrame;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("3F716FE0-F023-4111-BE5D-EF4414C05B17")\r
-    IDeckLinkVideoFrame : public IUnknown\r
-    {\r
-    public:\r
-        virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
-        \r
-        virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
-        \r
-        virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;\r
-        \r
-        virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
-        \r
-        virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
-            /* [out] */ void **buffer) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
-            /* [in] */ BMDTimecodeFormat format,\r
-            /* [out] */ IDeckLinkTimecode **timecode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( \r
-            /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoFrameVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoFrame * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoFrame * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoFrame * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkVideoFrame * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkVideoFrame * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
-            IDeckLinkVideoFrame * This);\r
-        \r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
-            IDeckLinkVideoFrame * This);\r
-        \r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkVideoFrame * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkVideoFrame * This,\r
-            /* [out] */ void **buffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
-            IDeckLinkVideoFrame * This,\r
-            /* [in] */ BMDTimecodeFormat format,\r
-            /* [out] */ IDeckLinkTimecode **timecode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
-            IDeckLinkVideoFrame * This,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoFrameVtbl;\r
-\r
-    interface IDeckLinkVideoFrame\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoFrameVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoFrame_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoFrame_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoFrame_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoFrame_GetWidth(This)     \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
-\r
-#define IDeckLinkVideoFrame_GetHeight(This)    \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
-\r
-#define IDeckLinkVideoFrame_GetRowBytes(This)  \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
-\r
-#define IDeckLinkVideoFrame_GetPixelFormat(This)       \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
-\r
-#define IDeckLinkVideoFrame_GetFlags(This)     \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
-\r
-#define IDeckLinkVideoFrame_GetBytes(This,buffer)      \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
-\r
-#define IDeckLinkVideoFrame_GetTimecode(This,format,timecode)  \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
-\r
-#define IDeckLinkVideoFrame_GetAncillaryData(This,ancillary)   \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoFrame_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__\r
-#define __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkMutableVideoFrame */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkMutableVideoFrame;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("69E2639F-40DA-4E19-B6F2-20ACE815C390")\r
-    IDeckLinkMutableVideoFrame : public IDeckLinkVideoFrame\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlags( \r
-            /* [in] */ BMDFrameFlags newFlags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetTimecode( \r
-            /* [in] */ BMDTimecodeFormat format,\r
-            /* [in] */ IDeckLinkTimecode *timecode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( \r
-            /* [in] */ BMDTimecodeFormat format,\r
-            /* [in] */ unsigned char hours,\r
-            /* [in] */ unsigned char minutes,\r
-            /* [in] */ unsigned char seconds,\r
-            /* [in] */ unsigned char frames,\r
-            /* [in] */ BMDTimecodeFlags flags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( \r
-            /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetTimecodeUserBits( \r
-            /* [in] */ BMDTimecodeFormat format,\r
-            /* [in] */ BMDTimecodeUserBits userBits) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkMutableVideoFrameVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkMutableVideoFrame * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkMutableVideoFrame * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkMutableVideoFrame * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkMutableVideoFrame * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkMutableVideoFrame * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
-            IDeckLinkMutableVideoFrame * This);\r
-        \r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
-            IDeckLinkMutableVideoFrame * This);\r
-        \r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkMutableVideoFrame * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkMutableVideoFrame * This,\r
-            /* [out] */ void **buffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
-            IDeckLinkMutableVideoFrame * This,\r
-            /* [in] */ BMDTimecodeFormat format,\r
-            /* [out] */ IDeckLinkTimecode **timecode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
-            IDeckLinkMutableVideoFrame * This,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetFlags )( \r
-            IDeckLinkMutableVideoFrame * This,\r
-            /* [in] */ BMDFrameFlags newFlags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetTimecode )( \r
-            IDeckLinkMutableVideoFrame * This,\r
-            /* [in] */ BMDTimecodeFormat format,\r
-            /* [in] */ IDeckLinkTimecode *timecode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )( \r
-            IDeckLinkMutableVideoFrame * This,\r
-            /* [in] */ BMDTimecodeFormat format,\r
-            /* [in] */ unsigned char hours,\r
-            /* [in] */ unsigned char minutes,\r
-            /* [in] */ unsigned char seconds,\r
-            /* [in] */ unsigned char frames,\r
-            /* [in] */ BMDTimecodeFlags flags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )( \r
-            IDeckLinkMutableVideoFrame * This,\r
-            /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetTimecodeUserBits )( \r
-            IDeckLinkMutableVideoFrame * This,\r
-            /* [in] */ BMDTimecodeFormat format,\r
-            /* [in] */ BMDTimecodeUserBits userBits);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkMutableVideoFrameVtbl;\r
-\r
-    interface IDeckLinkMutableVideoFrame\r
-    {\r
-        CONST_VTBL struct IDeckLinkMutableVideoFrameVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkMutableVideoFrame_QueryInterface(This,riid,ppvObject) \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_AddRef(This)        \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_Release(This)       \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkMutableVideoFrame_GetWidth(This)      \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_GetHeight(This)     \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_GetRowBytes(This)   \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_GetPixelFormat(This)        \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_GetFlags(This)      \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_GetBytes(This,buffer)       \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_GetTimecode(This,format,timecode)   \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_GetAncillaryData(This,ancillary)    \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
-\r
-\r
-#define IDeckLinkMutableVideoFrame_SetFlags(This,newFlags)     \\r
-    ( (This)->lpVtbl -> SetFlags(This,newFlags) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_SetTimecode(This,format,timecode)   \\r
-    ( (This)->lpVtbl -> SetTimecode(This,format,timecode) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags)   \\r
-    ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_SetAncillaryData(This,ancillary)    \\r
-    ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_SetTimecodeUserBits(This,format,userBits)   \\r
-    ( (This)->lpVtbl -> SetTimecodeUserBits(This,format,userBits) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoFrame3DExtensions */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7")\r
-    IDeckLinkVideoFrame3DExtensions : public IUnknown\r
-    {\r
-    public:\r
-        virtual BMDVideo3DPackingFormat STDMETHODCALLTYPE Get3DPackingFormat( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetFrameForRightEye( \r
-            /* [out] */ IDeckLinkVideoFrame **rightEyeFrame) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoFrame3DExtensionsVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoFrame3DExtensions * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoFrame3DExtensions * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoFrame3DExtensions * This);\r
-        \r
-        BMDVideo3DPackingFormat ( STDMETHODCALLTYPE *Get3DPackingFormat )( \r
-            IDeckLinkVideoFrame3DExtensions * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetFrameForRightEye )( \r
-            IDeckLinkVideoFrame3DExtensions * This,\r
-            /* [out] */ IDeckLinkVideoFrame **rightEyeFrame);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoFrame3DExtensionsVtbl;\r
-\r
-    interface IDeckLinkVideoFrame3DExtensions\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoFrame3DExtensionsVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoFrame3DExtensions_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoFrame3DExtensions_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoFrame3DExtensions_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoFrame3DExtensions_Get3DPackingFormat(This)       \\r
-    ( (This)->lpVtbl -> Get3DPackingFormat(This) ) \r
-\r
-#define IDeckLinkVideoFrame3DExtensions_GetFrameForRightEye(This,rightEyeFrame)        \\r
-    ( (This)->lpVtbl -> GetFrameForRightEye(This,rightEyeFrame) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoInputFrame */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoInputFrame;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("05CFE374-537C-4094-9A57-680525118F44")\r
-    IDeckLinkVideoInputFrame : public IDeckLinkVideoFrame\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
-            /* [out] */ BMDTimeValue *frameTime,\r
-            /* [out] */ BMDTimeValue *frameDuration,\r
-            /* [in] */ BMDTimeScale timeScale) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( \r
-            /* [in] */ BMDTimeScale timeScale,\r
-            /* [out] */ BMDTimeValue *frameTime,\r
-            /* [out] */ BMDTimeValue *frameDuration) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoInputFrameVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoInputFrame * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoInputFrame * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoInputFrame * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkVideoInputFrame * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkVideoInputFrame * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
-            IDeckLinkVideoInputFrame * This);\r
-        \r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
-            IDeckLinkVideoInputFrame * This);\r
-        \r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkVideoInputFrame * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkVideoInputFrame * This,\r
-            /* [out] */ void **buffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
-            IDeckLinkVideoInputFrame * This,\r
-            /* [in] */ BMDTimecodeFormat format,\r
-            /* [out] */ IDeckLinkTimecode **timecode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
-            IDeckLinkVideoInputFrame * This,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
-            IDeckLinkVideoInputFrame * This,\r
-            /* [out] */ BMDTimeValue *frameTime,\r
-            /* [out] */ BMDTimeValue *frameDuration,\r
-            /* [in] */ BMDTimeScale timeScale);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( \r
-            IDeckLinkVideoInputFrame * This,\r
-            /* [in] */ BMDTimeScale timeScale,\r
-            /* [out] */ BMDTimeValue *frameTime,\r
-            /* [out] */ BMDTimeValue *frameDuration);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoInputFrameVtbl;\r
-\r
-    interface IDeckLinkVideoInputFrame\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoInputFrameVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoInputFrame_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoInputFrame_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoInputFrame_GetWidth(This)        \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_GetHeight(This)       \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_GetRowBytes(This)     \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_GetPixelFormat(This)  \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_GetFlags(This)        \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_GetBytes(This,buffer) \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
-\r
-#define IDeckLinkVideoInputFrame_GetTimecode(This,format,timecode)     \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
-\r
-#define IDeckLinkVideoInputFrame_GetAncillaryData(This,ancillary)      \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
-\r
-\r
-#define IDeckLinkVideoInputFrame_GetStreamTime(This,frameTime,frameDuration,timeScale) \\r
-    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) \r
-\r
-#define IDeckLinkVideoInputFrame_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoFrameAncillary */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("732E723C-D1A4-4E29-9E8E-4A88797A0004")\r
-    IDeckLinkVideoFrameAncillary : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferForVerticalBlankingLine( \r
-            /* [in] */ unsigned long lineNumber,\r
-            /* [out] */ void **buffer) = 0;\r
-        \r
-        virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
-        \r
-        virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoFrameAncillaryVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoFrameAncillary * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoFrameAncillary * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoFrameAncillary * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferForVerticalBlankingLine )( \r
-            IDeckLinkVideoFrameAncillary * This,\r
-            /* [in] */ unsigned long lineNumber,\r
-            /* [out] */ void **buffer);\r
-        \r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
-            IDeckLinkVideoFrameAncillary * This);\r
-        \r
-        BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
-            IDeckLinkVideoFrameAncillary * This);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoFrameAncillaryVtbl;\r
-\r
-    interface IDeckLinkVideoFrameAncillary\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoFrameAncillaryVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoFrameAncillary_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoFrameAncillary_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoFrameAncillary_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoFrameAncillary_GetBufferForVerticalBlankingLine(This,lineNumber,buffer)  \\r
-    ( (This)->lpVtbl -> GetBufferForVerticalBlankingLine(This,lineNumber,buffer) ) \r
-\r
-#define IDeckLinkVideoFrameAncillary_GetPixelFormat(This)      \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
-\r
-#define IDeckLinkVideoFrameAncillary_GetDisplayMode(This)      \\r
-    ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__\r
-#define __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkAudioInputPacket */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkAudioInputPacket;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("E43D5870-2894-11DE-8C30-0800200C9A66")\r
-    IDeckLinkAudioInputPacket : public IUnknown\r
-    {\r
-    public:\r
-        virtual long STDMETHODCALLTYPE GetSampleFrameCount( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
-            /* [out] */ void **buffer) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetPacketTime( \r
-            /* [out] */ BMDTimeValue *packetTime,\r
-            /* [in] */ BMDTimeScale timeScale) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkAudioInputPacketVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkAudioInputPacket * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkAudioInputPacket * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkAudioInputPacket * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetSampleFrameCount )( \r
-            IDeckLinkAudioInputPacket * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkAudioInputPacket * This,\r
-            /* [out] */ void **buffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetPacketTime )( \r
-            IDeckLinkAudioInputPacket * This,\r
-            /* [out] */ BMDTimeValue *packetTime,\r
-            /* [in] */ BMDTimeScale timeScale);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkAudioInputPacketVtbl;\r
-\r
-    interface IDeckLinkAudioInputPacket\r
-    {\r
-        CONST_VTBL struct IDeckLinkAudioInputPacketVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkAudioInputPacket_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkAudioInputPacket_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkAudioInputPacket_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkAudioInputPacket_GetSampleFrameCount(This)    \\r
-    ( (This)->lpVtbl -> GetSampleFrameCount(This) ) \r
-\r
-#define IDeckLinkAudioInputPacket_GetBytes(This,buffer)        \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
-\r
-#define IDeckLinkAudioInputPacket_GetPacketTime(This,packetTime,timeScale)     \\r
-    ( (This)->lpVtbl -> GetPacketTime(This,packetTime,timeScale) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__\r
-#define __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkScreenPreviewCallback */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438")\r
-    IDeckLinkScreenPreviewCallback : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE DrawFrame( \r
-            /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkScreenPreviewCallbackVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkScreenPreviewCallback * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkScreenPreviewCallback * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkScreenPreviewCallback * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DrawFrame )( \r
-            IDeckLinkScreenPreviewCallback * This,\r
-            /* [in] */ IDeckLinkVideoFrame *theFrame);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkScreenPreviewCallbackVtbl;\r
-\r
-    interface IDeckLinkScreenPreviewCallback\r
-    {\r
-        CONST_VTBL struct IDeckLinkScreenPreviewCallbackVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkScreenPreviewCallback_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkScreenPreviewCallback_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkScreenPreviewCallback_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkScreenPreviewCallback_DrawFrame(This,theFrame)        \\r
-    ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__\r
-#define __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkGLScreenPreviewHelper */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("504E2209-CAC7-4C1A-9FB4-C5BB6274D22F")\r
-    IDeckLinkGLScreenPreviewHelper : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetFrame( \r
-            /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat( \r
-            /* [in] */ BMD3DPreviewFormat previewFormat) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkGLScreenPreviewHelperVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkGLScreenPreviewHelper * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkGLScreenPreviewHelper * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkGLScreenPreviewHelper * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *InitializeGL )( \r
-            IDeckLinkGLScreenPreviewHelper * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *PaintGL )( \r
-            IDeckLinkGLScreenPreviewHelper * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetFrame )( \r
-            IDeckLinkGLScreenPreviewHelper * This,\r
-            /* [in] */ IDeckLinkVideoFrame *theFrame);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )( \r
-            IDeckLinkGLScreenPreviewHelper * This,\r
-            /* [in] */ BMD3DPreviewFormat previewFormat);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkGLScreenPreviewHelperVtbl;\r
-\r
-    interface IDeckLinkGLScreenPreviewHelper\r
-    {\r
-        CONST_VTBL struct IDeckLinkGLScreenPreviewHelperVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkGLScreenPreviewHelper_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkGLScreenPreviewHelper_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkGLScreenPreviewHelper_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkGLScreenPreviewHelper_InitializeGL(This)      \\r
-    ( (This)->lpVtbl -> InitializeGL(This) ) \r
-\r
-#define IDeckLinkGLScreenPreviewHelper_PaintGL(This)   \\r
-    ( (This)->lpVtbl -> PaintGL(This) ) \r
-\r
-#define IDeckLinkGLScreenPreviewHelper_SetFrame(This,theFrame) \\r
-    ( (This)->lpVtbl -> SetFrame(This,theFrame) ) \r
-\r
-#define IDeckLinkGLScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat)  \\r
-    ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkConfiguration_INTERFACE_DEFINED__\r
-#define __IDeckLinkConfiguration_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkConfiguration */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkConfiguration;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("C679A35B-610C-4D09-B748-1D0478100FC0")\r
-    IDeckLinkConfiguration : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ BOOL value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ BOOL *value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetInt( \r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ LONGLONG value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ LONGLONG *value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetFloat( \r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ double value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ double *value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetString( \r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ BSTR value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetString( \r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ BSTR *value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkConfigurationVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkConfiguration * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkConfiguration * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkConfiguration * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
-            IDeckLinkConfiguration * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ BOOL value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
-            IDeckLinkConfiguration * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ BOOL *value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
-            IDeckLinkConfiguration * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ LONGLONG value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
-            IDeckLinkConfiguration * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ LONGLONG *value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
-            IDeckLinkConfiguration * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ double value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
-            IDeckLinkConfiguration * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ double *value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetString )( \r
-            IDeckLinkConfiguration * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [in] */ BSTR value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
-            IDeckLinkConfiguration * This,\r
-            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
-            /* [out] */ BSTR *value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( \r
-            IDeckLinkConfiguration * This);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkConfigurationVtbl;\r
-\r
-    interface IDeckLinkConfiguration\r
-    {\r
-        CONST_VTBL struct IDeckLinkConfigurationVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkConfiguration_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkConfiguration_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkConfiguration_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkConfiguration_SetFlag(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
-\r
-#define IDeckLinkConfiguration_GetFlag(This,cfgID,value)       \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
-\r
-#define IDeckLinkConfiguration_SetInt(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
-\r
-#define IDeckLinkConfiguration_GetInt(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
-\r
-#define IDeckLinkConfiguration_SetFloat(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
-\r
-#define IDeckLinkConfiguration_GetFloat(This,cfgID,value)      \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
-\r
-#define IDeckLinkConfiguration_SetString(This,cfgID,value)     \\r
-    ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
-\r
-#define IDeckLinkConfiguration_GetString(This,cfgID,value)     \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
-\r
-#define IDeckLinkConfiguration_WriteConfigurationToPreferences(This)   \\r
-    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkConfiguration_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkAttributes_INTERFACE_DEFINED__\r
-#define __IDeckLinkAttributes_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkAttributes */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkAttributes;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("ABC11843-D966-44CB-96E2-A1CB5D3135C4")\r
-    IDeckLinkAttributes : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ BOOL *value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ LONGLONG *value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ double *value) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetString( \r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ BSTR *value) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkAttributesVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkAttributes * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkAttributes * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkAttributes * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
-            IDeckLinkAttributes * This,\r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ BOOL *value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
-            IDeckLinkAttributes * This,\r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ LONGLONG *value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
-            IDeckLinkAttributes * This,\r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ double *value);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
-            IDeckLinkAttributes * This,\r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ BSTR *value);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkAttributesVtbl;\r
-\r
-    interface IDeckLinkAttributes\r
-    {\r
-        CONST_VTBL struct IDeckLinkAttributesVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkAttributes_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkAttributes_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkAttributes_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkAttributes_GetFlag(This,cfgID,value)  \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
-\r
-#define IDeckLinkAttributes_GetInt(This,cfgID,value)   \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
-\r
-#define IDeckLinkAttributes_GetFloat(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
-\r
-#define IDeckLinkAttributes_GetString(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkAttributes_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkKeyer_INTERFACE_DEFINED__\r
-#define __IDeckLinkKeyer_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkKeyer */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkKeyer;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3")\r
-    IDeckLinkKeyer : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE Enable( \r
-            /* [in] */ BOOL isExternal) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetLevel( \r
-            /* [in] */ unsigned char level) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE RampUp( \r
-            /* [in] */ unsigned long numberOfFrames) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE RampDown( \r
-            /* [in] */ unsigned long numberOfFrames) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Disable( void) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkKeyerVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkKeyer * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkKeyer * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkKeyer * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Enable )( \r
-            IDeckLinkKeyer * This,\r
-            /* [in] */ BOOL isExternal);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetLevel )( \r
-            IDeckLinkKeyer * This,\r
-            /* [in] */ unsigned char level);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *RampUp )( \r
-            IDeckLinkKeyer * This,\r
-            /* [in] */ unsigned long numberOfFrames);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *RampDown )( \r
-            IDeckLinkKeyer * This,\r
-            /* [in] */ unsigned long numberOfFrames);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Disable )( \r
-            IDeckLinkKeyer * This);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkKeyerVtbl;\r
-\r
-    interface IDeckLinkKeyer\r
-    {\r
-        CONST_VTBL struct IDeckLinkKeyerVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkKeyer_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkKeyer_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkKeyer_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkKeyer_Enable(This,isExternal) \\r
-    ( (This)->lpVtbl -> Enable(This,isExternal) ) \r
-\r
-#define IDeckLinkKeyer_SetLevel(This,level)    \\r
-    ( (This)->lpVtbl -> SetLevel(This,level) ) \r
-\r
-#define IDeckLinkKeyer_RampUp(This,numberOfFrames)     \\r
-    ( (This)->lpVtbl -> RampUp(This,numberOfFrames) ) \r
-\r
-#define IDeckLinkKeyer_RampDown(This,numberOfFrames)   \\r
-    ( (This)->lpVtbl -> RampDown(This,numberOfFrames) ) \r
-\r
-#define IDeckLinkKeyer_Disable(This)   \\r
-    ( (This)->lpVtbl -> Disable(This) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkKeyer_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoConversion_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoConversion_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoConversion */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoConversion;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("3BBCB8A2-DA2C-42D9-B5D8-88083644E99A")\r
-    IDeckLinkVideoConversion : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE ConvertFrame( \r
-            /* [in] */ IDeckLinkVideoFrame *srcFrame,\r
-            /* [in] */ IDeckLinkVideoFrame *dstFrame) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoConversionVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoConversion * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoConversion * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoConversion * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ConvertFrame )( \r
-            IDeckLinkVideoConversion * This,\r
-            /* [in] */ IDeckLinkVideoFrame *srcFrame,\r
-            /* [in] */ IDeckLinkVideoFrame *dstFrame);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoConversionVtbl;\r
-\r
-    interface IDeckLinkVideoConversion\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoConversionVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoConversion_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoConversion_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoConversion_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoConversion_ConvertFrame(This,srcFrame,dstFrame)  \\r
-    ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoConversion_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__\r
-#define __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkDeckControlStatusCallback */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("E5F693C1-4283-4716-B18F-C1431521955B")\r
-    IDeckLinkDeckControlStatusCallback : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE TimecodeUpdate( \r
-            /* [in] */ BMDTimecodeBCD currentTimecode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE VTRControlStateChanged( \r
-            /* [in] */ BMDDeckControlVTRControlState newState,\r
-            /* [in] */ BMDDeckControlError error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DeckControlEventReceived( \r
-            /* [in] */ BMDDeckControlEvent event,\r
-            /* [in] */ BMDDeckControlError error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged( \r
-            /* [in] */ BMDDeckControlStatusFlags flags,\r
-            /* [in] */ unsigned long mask) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkDeckControlStatusCallbackVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkDeckControlStatusCallback * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkDeckControlStatusCallback * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkDeckControlStatusCallback * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *TimecodeUpdate )( \r
-            IDeckLinkDeckControlStatusCallback * This,\r
-            /* [in] */ BMDTimecodeBCD currentTimecode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *VTRControlStateChanged )( \r
-            IDeckLinkDeckControlStatusCallback * This,\r
-            /* [in] */ BMDDeckControlVTRControlState newState,\r
-            /* [in] */ BMDDeckControlError error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DeckControlEventReceived )( \r
-            IDeckLinkDeckControlStatusCallback * This,\r
-            /* [in] */ BMDDeckControlEvent event,\r
-            /* [in] */ BMDDeckControlError error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )( \r
-            IDeckLinkDeckControlStatusCallback * This,\r
-            /* [in] */ BMDDeckControlStatusFlags flags,\r
-            /* [in] */ unsigned long mask);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkDeckControlStatusCallbackVtbl;\r
-\r
-    interface IDeckLinkDeckControlStatusCallback\r
-    {\r
-        CONST_VTBL struct IDeckLinkDeckControlStatusCallbackVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkDeckControlStatusCallback_QueryInterface(This,riid,ppvObject) \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkDeckControlStatusCallback_AddRef(This)        \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkDeckControlStatusCallback_Release(This)       \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkDeckControlStatusCallback_TimecodeUpdate(This,currentTimecode)        \\r
-    ( (This)->lpVtbl -> TimecodeUpdate(This,currentTimecode) ) \r
-\r
-#define IDeckLinkDeckControlStatusCallback_VTRControlStateChanged(This,newState,error) \\r
-    ( (This)->lpVtbl -> VTRControlStateChanged(This,newState,error) ) \r
-\r
-#define IDeckLinkDeckControlStatusCallback_DeckControlEventReceived(This,event,error)  \\r
-    ( (This)->lpVtbl -> DeckControlEventReceived(This,event,error) ) \r
-\r
-#define IDeckLinkDeckControlStatusCallback_DeckControlStatusChanged(This,flags,mask)   \\r
-    ( (This)->lpVtbl -> DeckControlStatusChanged(This,flags,mask) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDeckControl_INTERFACE_DEFINED__\r
-#define __IDeckLinkDeckControl_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkDeckControl */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkDeckControl;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("522A9E39-0F3C-4742-94EE-D80DE335DA1D")\r
-    IDeckLinkDeckControl : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE Open( \r
-            /* [in] */ BMDTimeScale timeScale,\r
-            /* [in] */ BMDTimeValue timeValue,\r
-            /* [in] */ BOOL timecodeIsDropFrame,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Close( \r
-            /* [in] */ BOOL standbyOn) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetCurrentState( \r
-            /* [out] */ BMDDeckControlMode *mode,\r
-            /* [out] */ BMDDeckControlVTRControlState *vtrControlState,\r
-            /* [out] */ BMDDeckControlStatusFlags *flags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetStandby( \r
-            /* [in] */ BOOL standbyOn) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SendCommand( \r
-            /* [in] */ unsigned char *inBuffer,\r
-            /* [in] */ unsigned long inBufferSize,\r
-            /* [out] */ unsigned char *outBuffer,\r
-            /* [out] */ unsigned long *outDataSize,\r
-            /* [in] */ unsigned long outBufferSize,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Play( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Stop( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Eject( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GoToTimecode( \r
-            /* [in] */ BMDTimecodeBCD timecode,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE FastForward( \r
-            /* [in] */ BOOL viewTape,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Rewind( \r
-            /* [in] */ BOOL viewTape,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StepForward( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StepBack( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Jog( \r
-            /* [in] */ double rate,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Shuttle( \r
-            /* [in] */ double rate,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( \r
-            /* [out] */ BSTR *currentTimeCode,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
-            /* [out] */ IDeckLinkTimecode **currentTimecode,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( \r
-            /* [out] */ BMDTimecodeBCD *currentTimecode,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetPreroll( \r
-            /* [in] */ unsigned long prerollSeconds) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetPreroll( \r
-            /* [out] */ unsigned long *prerollSeconds) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetExportOffset( \r
-            /* [in] */ long exportOffsetFields) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetExportOffset( \r
-            /* [out] */ long *exportOffsetFields) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( \r
-            /* [out] */ long *deckManualExportOffsetFields) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( \r
-            /* [in] */ long captureOffsetFields) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( \r
-            /* [out] */ long *captureOffsetFields) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StartExport( \r
-            /* [in] */ BMDTimecodeBCD inTimecode,\r
-            /* [in] */ BMDTimecodeBCD outTimecode,\r
-            /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StartCapture( \r
-            /* [in] */ BOOL useVITC,\r
-            /* [in] */ BMDTimecodeBCD inTimecode,\r
-            /* [in] */ BMDTimecodeBCD outTimecode,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetDeviceID( \r
-            /* [out] */ unsigned short *deviceId,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
-            /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkDeckControlVtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkDeckControl * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkDeckControl * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Open )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ BMDTimeScale timeScale,\r
-            /* [in] */ BMDTimeValue timeValue,\r
-            /* [in] */ BOOL timecodeIsDropFrame,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Close )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ BOOL standbyOn);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ BMDDeckControlMode *mode,\r
-            /* [out] */ BMDDeckControlVTRControlState *vtrControlState,\r
-            /* [out] */ BMDDeckControlStatusFlags *flags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetStandby )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ BOOL standbyOn);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SendCommand )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ unsigned char *inBuffer,\r
-            /* [in] */ unsigned long inBufferSize,\r
-            /* [out] */ unsigned char *outBuffer,\r
-            /* [out] */ unsigned long *outDataSize,\r
-            /* [in] */ unsigned long outBufferSize,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Play )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Stop )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Eject )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ BMDTimecodeBCD timecode,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *FastForward )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ BOOL viewTape,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Rewind )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ BOOL viewTape,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StepForward )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StepBack )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Jog )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ double rate,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Shuttle )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ double rate,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ BSTR *currentTimeCode,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ IDeckLinkTimecode **currentTimecode,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ BMDTimecodeBCD *currentTimecode,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetPreroll )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ unsigned long prerollSeconds);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetPreroll )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ unsigned long *prerollSeconds);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ long exportOffsetFields);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ long *exportOffsetFields);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ long *deckManualExportOffsetFields);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ long captureOffsetFields);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ long *captureOffsetFields);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StartExport )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ BMDTimecodeBCD inTimecode,\r
-            /* [in] */ BMDTimecodeBCD outTimecode,\r
-            /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StartCapture )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ BOOL useVITC,\r
-            /* [in] */ BMDTimecodeBCD inTimecode,\r
-            /* [in] */ BMDTimecodeBCD outTimecode,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ unsigned short *deviceId,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Abort )( \r
-            IDeckLinkDeckControl * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
-            IDeckLinkDeckControl * This,\r
-            /* [in] */ IDeckLinkDeckControlStatusCallback *callback);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkDeckControlVtbl;\r
-\r
-    interface IDeckLinkDeckControl\r
-    {\r
-        CONST_VTBL struct IDeckLinkDeckControlVtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkDeckControl_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkDeckControl_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkDeckControl_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkDeckControl_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)  \\r
-    ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) \r
-\r
-#define IDeckLinkDeckControl_Close(This,standbyOn)     \\r
-    ( (This)->lpVtbl -> Close(This,standbyOn) ) \r
-\r
-#define IDeckLinkDeckControl_GetCurrentState(This,mode,vtrControlState,flags)  \\r
-    ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) \r
-\r
-#define IDeckLinkDeckControl_SetStandby(This,standbyOn)        \\r
-    ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) \r
-\r
-#define IDeckLinkDeckControl_SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) \\r
-    ( (This)->lpVtbl -> SendCommand(This,inBuffer,inBufferSize,outBuffer,outDataSize,outBufferSize,error) ) \r
-\r
-#define IDeckLinkDeckControl_Play(This,error)  \\r
-    ( (This)->lpVtbl -> Play(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_Stop(This,error)  \\r
-    ( (This)->lpVtbl -> Stop(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_TogglePlayStop(This,error)        \\r
-    ( (This)->lpVtbl -> TogglePlayStop(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_Eject(This,error) \\r
-    ( (This)->lpVtbl -> Eject(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_GoToTimecode(This,timecode,error) \\r
-    ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) \r
-\r
-#define IDeckLinkDeckControl_FastForward(This,viewTape,error)  \\r
-    ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) \r
-\r
-#define IDeckLinkDeckControl_Rewind(This,viewTape,error)       \\r
-    ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) \r
-\r
-#define IDeckLinkDeckControl_StepForward(This,error)   \\r
-    ( (This)->lpVtbl -> StepForward(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_StepBack(This,error)      \\r
-    ( (This)->lpVtbl -> StepBack(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_Jog(This,rate,error)      \\r
-    ( (This)->lpVtbl -> Jog(This,rate,error) ) \r
-\r
-#define IDeckLinkDeckControl_Shuttle(This,rate,error)  \\r
-    ( (This)->lpVtbl -> Shuttle(This,rate,error) ) \r
-\r
-#define IDeckLinkDeckControl_GetTimecodeString(This,currentTimeCode,error)     \\r
-    ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) \r
-\r
-#define IDeckLinkDeckControl_GetTimecode(This,currentTimecode,error)   \\r
-    ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) \r
-\r
-#define IDeckLinkDeckControl_GetTimecodeBCD(This,currentTimecode,error)        \\r
-    ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) \r
-\r
-#define IDeckLinkDeckControl_SetPreroll(This,prerollSeconds)   \\r
-    ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) \r
-\r
-#define IDeckLinkDeckControl_GetPreroll(This,prerollSeconds)   \\r
-    ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) \r
-\r
-#define IDeckLinkDeckControl_SetExportOffset(This,exportOffsetFields)  \\r
-    ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) \r
-\r
-#define IDeckLinkDeckControl_GetExportOffset(This,exportOffsetFields)  \\r
-    ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) \r
-\r
-#define IDeckLinkDeckControl_GetManualExportOffset(This,deckManualExportOffsetFields)  \\r
-    ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) \r
-\r
-#define IDeckLinkDeckControl_SetCaptureOffset(This,captureOffsetFields)        \\r
-    ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) \r
-\r
-#define IDeckLinkDeckControl_GetCaptureOffset(This,captureOffsetFields)        \\r
-    ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) \r
-\r
-#define IDeckLinkDeckControl_StartExport(This,inTimecode,outTimecode,exportModeOps,error)      \\r
-    ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) \r
-\r
-#define IDeckLinkDeckControl_StartCapture(This,useVITC,inTimecode,outTimecode,error)   \\r
-    ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) \r
-\r
-#define IDeckLinkDeckControl_GetDeviceID(This,deviceId,error)  \\r
-    ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) \r
-\r
-#define IDeckLinkDeckControl_Abort(This)       \\r
-    ( (This)->lpVtbl -> Abort(This) ) \r
-\r
-#define IDeckLinkDeckControl_CrashRecordStart(This,error)      \\r
-    ( (This)->lpVtbl -> CrashRecordStart(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_CrashRecordStop(This,error)       \\r
-    ( (This)->lpVtbl -> CrashRecordStop(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_SetCallback(This,callback)        \\r
-    ( (This)->lpVtbl -> SetCallback(This,callback) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkDeckControl_INTERFACE_DEFINED__ */\r
-\r
-\r
-EXTERN_C const CLSID CLSID_CDeckLinkIterator;\r
-\r
-#ifdef __cplusplus\r
-\r
-class DECLSPEC_UUID("D9EDA3B3-2887-41FA-B724-017CF1EB1D37")\r
-CDeckLinkIterator;\r
-#endif\r
-\r
-EXTERN_C const CLSID CLSID_CDeckLinkAPIInformation;\r
-\r
-#ifdef __cplusplus\r
-\r
-class DECLSPEC_UUID("263CA19F-ED09-482E-9F9D-84005783A237")\r
-CDeckLinkAPIInformation;\r
-#endif\r
-\r
-EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper;\r
-\r
-#ifdef __cplusplus\r
-\r
-class DECLSPEC_UUID("F63E77C7-B655-4A4A-9AD0-3CA85D394343")\r
-CDeckLinkGLScreenPreviewHelper;\r
-#endif\r
-\r
-EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion;\r
-\r
-#ifdef __cplusplus\r
-\r
-class DECLSPEC_UUID("7DBBBB11-5B7B-467D-AEA4-CEA468FD368C")\r
-CDeckLinkVideoConversion;\r
-#endif\r
-\r
-#ifndef __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__\r
-#define __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkDeckControl_v7_9 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkDeckControl_v7_9;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("A4D81043-0619-42B7-8ED6-602D29041DF7")\r
-    IDeckLinkDeckControl_v7_9 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE Open( \r
-            /* [in] */ BMDTimeScale timeScale,\r
-            /* [in] */ BMDTimeValue timeValue,\r
-            /* [in] */ BOOL timecodeIsDropFrame,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Close( \r
-            /* [in] */ BOOL standbyOn) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetCurrentState( \r
-            /* [out] */ BMDDeckControlMode *mode,\r
-            /* [out] */ BMDDeckControlVTRControlState *vtrControlState,\r
-            /* [out] */ BMDDeckControlStatusFlags *flags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetStandby( \r
-            /* [in] */ BOOL standbyOn) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Play( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Stop( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE TogglePlayStop( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Eject( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GoToTimecode( \r
-            /* [in] */ BMDTimecodeBCD timecode,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE FastForward( \r
-            /* [in] */ BOOL viewTape,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Rewind( \r
-            /* [in] */ BOOL viewTape,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StepForward( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StepBack( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Jog( \r
-            /* [in] */ double rate,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Shuttle( \r
-            /* [in] */ double rate,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecodeString( \r
-            /* [out] */ BSTR *currentTimeCode,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
-            /* [out] */ IDeckLinkTimecode **currentTimecode,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecodeBCD( \r
-            /* [out] */ BMDTimecodeBCD *currentTimecode,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetPreroll( \r
-            /* [in] */ unsigned long prerollSeconds) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetPreroll( \r
-            /* [out] */ unsigned long *prerollSeconds) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetExportOffset( \r
-            /* [in] */ long exportOffsetFields) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetExportOffset( \r
-            /* [out] */ long *exportOffsetFields) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( \r
-            /* [out] */ long *deckManualExportOffsetFields) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( \r
-            /* [in] */ long captureOffsetFields) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( \r
-            /* [out] */ long *captureOffsetFields) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StartExport( \r
-            /* [in] */ BMDTimecodeBCD inTimecode,\r
-            /* [in] */ BMDTimecodeBCD outTimecode,\r
-            /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StartCapture( \r
-            /* [in] */ BOOL useVITC,\r
-            /* [in] */ BMDTimecodeBCD inTimecode,\r
-            /* [in] */ BMDTimecodeBCD outTimecode,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetDeviceID( \r
-            /* [out] */ unsigned short *deviceId,\r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Abort( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE CrashRecordStart( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE CrashRecordStop( \r
-            /* [out] */ BMDDeckControlError *error) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
-            /* [in] */ IDeckLinkDeckControlStatusCallback *callback) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkDeckControl_v7_9Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkDeckControl_v7_9 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkDeckControl_v7_9 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Open )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ BMDTimeScale timeScale,\r
-            /* [in] */ BMDTimeValue timeValue,\r
-            /* [in] */ BOOL timecodeIsDropFrame,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Close )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ BOOL standbyOn);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetCurrentState )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ BMDDeckControlMode *mode,\r
-            /* [out] */ BMDDeckControlVTRControlState *vtrControlState,\r
-            /* [out] */ BMDDeckControlStatusFlags *flags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetStandby )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ BOOL standbyOn);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Play )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Stop )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *TogglePlayStop )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Eject )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GoToTimecode )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ BMDTimecodeBCD timecode,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *FastForward )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ BOOL viewTape,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Rewind )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ BOOL viewTape,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StepForward )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StepBack )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Jog )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ double rate,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Shuttle )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ double rate,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecodeString )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ BSTR *currentTimeCode,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ IDeckLinkTimecode **currentTimecode,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecodeBCD )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ BMDTimecodeBCD *currentTimecode,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetPreroll )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ unsigned long prerollSeconds);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetPreroll )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ unsigned long *prerollSeconds);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ long exportOffsetFields);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ long *exportOffsetFields);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ long *deckManualExportOffsetFields);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ long captureOffsetFields);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ long *captureOffsetFields);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StartExport )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ BMDTimecodeBCD inTimecode,\r
-            /* [in] */ BMDTimecodeBCD outTimecode,\r
-            /* [in] */ BMDDeckControlExportModeOpsFlags exportModeOps,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StartCapture )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ BOOL useVITC,\r
-            /* [in] */ BMDTimecodeBCD inTimecode,\r
-            /* [in] */ BMDTimecodeBCD outTimecode,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetDeviceID )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ unsigned short *deviceId,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Abort )( \r
-            IDeckLinkDeckControl_v7_9 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *CrashRecordStart )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *CrashRecordStop )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ BMDDeckControlError *error);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
-            IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ IDeckLinkDeckControlStatusCallback *callback);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkDeckControl_v7_9Vtbl;\r
-\r
-    interface IDeckLinkDeckControl_v7_9\r
-    {\r
-        CONST_VTBL struct IDeckLinkDeckControl_v7_9Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkDeckControl_v7_9_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkDeckControl_v7_9_Open(This,timeScale,timeValue,timecodeIsDropFrame,error)     \\r
-    ( (This)->lpVtbl -> Open(This,timeScale,timeValue,timecodeIsDropFrame,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_Close(This,standbyOn)        \\r
-    ( (This)->lpVtbl -> Close(This,standbyOn) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_GetCurrentState(This,mode,vtrControlState,flags)     \\r
-    ( (This)->lpVtbl -> GetCurrentState(This,mode,vtrControlState,flags) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_SetStandby(This,standbyOn)   \\r
-    ( (This)->lpVtbl -> SetStandby(This,standbyOn) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_Play(This,error)     \\r
-    ( (This)->lpVtbl -> Play(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_Stop(This,error)     \\r
-    ( (This)->lpVtbl -> Stop(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_TogglePlayStop(This,error)   \\r
-    ( (This)->lpVtbl -> TogglePlayStop(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_Eject(This,error)    \\r
-    ( (This)->lpVtbl -> Eject(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_GoToTimecode(This,timecode,error)    \\r
-    ( (This)->lpVtbl -> GoToTimecode(This,timecode,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_FastForward(This,viewTape,error)     \\r
-    ( (This)->lpVtbl -> FastForward(This,viewTape,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_Rewind(This,viewTape,error)  \\r
-    ( (This)->lpVtbl -> Rewind(This,viewTape,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_StepForward(This,error)      \\r
-    ( (This)->lpVtbl -> StepForward(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_StepBack(This,error) \\r
-    ( (This)->lpVtbl -> StepBack(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_Jog(This,rate,error) \\r
-    ( (This)->lpVtbl -> Jog(This,rate,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_Shuttle(This,rate,error)     \\r
-    ( (This)->lpVtbl -> Shuttle(This,rate,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_GetTimecodeString(This,currentTimeCode,error)        \\r
-    ( (This)->lpVtbl -> GetTimecodeString(This,currentTimeCode,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_GetTimecode(This,currentTimecode,error)      \\r
-    ( (This)->lpVtbl -> GetTimecode(This,currentTimecode,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_GetTimecodeBCD(This,currentTimecode,error)   \\r
-    ( (This)->lpVtbl -> GetTimecodeBCD(This,currentTimecode,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_SetPreroll(This,prerollSeconds)      \\r
-    ( (This)->lpVtbl -> SetPreroll(This,prerollSeconds) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_GetPreroll(This,prerollSeconds)      \\r
-    ( (This)->lpVtbl -> GetPreroll(This,prerollSeconds) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_SetExportOffset(This,exportOffsetFields)     \\r
-    ( (This)->lpVtbl -> SetExportOffset(This,exportOffsetFields) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_GetExportOffset(This,exportOffsetFields)     \\r
-    ( (This)->lpVtbl -> GetExportOffset(This,exportOffsetFields) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_GetManualExportOffset(This,deckManualExportOffsetFields)     \\r
-    ( (This)->lpVtbl -> GetManualExportOffset(This,deckManualExportOffsetFields) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_SetCaptureOffset(This,captureOffsetFields)   \\r
-    ( (This)->lpVtbl -> SetCaptureOffset(This,captureOffsetFields) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_GetCaptureOffset(This,captureOffsetFields)   \\r
-    ( (This)->lpVtbl -> GetCaptureOffset(This,captureOffsetFields) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_StartExport(This,inTimecode,outTimecode,exportModeOps,error) \\r
-    ( (This)->lpVtbl -> StartExport(This,inTimecode,outTimecode,exportModeOps,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_StartCapture(This,useVITC,inTimecode,outTimecode,error)      \\r
-    ( (This)->lpVtbl -> StartCapture(This,useVITC,inTimecode,outTimecode,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_GetDeviceID(This,deviceId,error)     \\r
-    ( (This)->lpVtbl -> GetDeviceID(This,deviceId,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_Abort(This)  \\r
-    ( (This)->lpVtbl -> Abort(This) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_CrashRecordStart(This,error) \\r
-    ( (This)->lpVtbl -> CrashRecordStart(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_CrashRecordStop(This,error)  \\r
-    ( (This)->lpVtbl -> CrashRecordStop(This,error) ) \r
-\r
-#define IDeckLinkDeckControl_v7_9_SetCallback(This,callback)   \\r
-    ( (This)->lpVtbl -> SetCallback(This,callback) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkDeckControl_v7_9_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkDisplayModeIterator_v7_6 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("455D741F-1779-4800-86F5-0B5D13D79751")\r
-    IDeckLinkDisplayModeIterator_v7_6 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE Next( \r
-            /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkDisplayModeIterator_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkDisplayModeIterator_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkDisplayModeIterator_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkDisplayModeIterator_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Next )( \r
-            IDeckLinkDisplayModeIterator_v7_6 * This,\r
-            /* [out] */ IDeckLinkDisplayMode_v7_6 **deckLinkDisplayMode);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkDisplayModeIterator_v7_6Vtbl;\r
-\r
-    interface IDeckLinkDisplayModeIterator_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkDisplayModeIterator_v7_6_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkDisplayModeIterator_v7_6_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkDisplayModeIterator_v7_6_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkDisplayModeIterator_v7_6_Next(This,deckLinkDisplayMode)       \\r
-    ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkDisplayModeIterator_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkDisplayMode_v7_6 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("87451E84-2B7E-439E-A629-4393EA4A8550")\r
-    IDeckLinkDisplayMode_v7_6 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetName( \r
-            /* [out] */ BSTR *name) = 0;\r
-        \r
-        virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
-        \r
-        virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
-        \r
-        virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetFrameRate( \r
-            /* [out] */ BMDTimeValue *frameDuration,\r
-            /* [out] */ BMDTimeScale *timeScale) = 0;\r
-        \r
-        virtual BMDFieldDominance STDMETHODCALLTYPE GetFieldDominance( void) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkDisplayMode_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkDisplayMode_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkDisplayMode_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkDisplayMode_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetName )( \r
-            IDeckLinkDisplayMode_v7_6 * This,\r
-            /* [out] */ BSTR *name);\r
-        \r
-        BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
-            IDeckLinkDisplayMode_v7_6 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkDisplayMode_v7_6 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkDisplayMode_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( \r
-            IDeckLinkDisplayMode_v7_6 * This,\r
-            /* [out] */ BMDTimeValue *frameDuration,\r
-            /* [out] */ BMDTimeScale *timeScale);\r
-        \r
-        BMDFieldDominance ( STDMETHODCALLTYPE *GetFieldDominance )( \r
-            IDeckLinkDisplayMode_v7_6 * This);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkDisplayMode_v7_6Vtbl;\r
-\r
-    interface IDeckLinkDisplayMode_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkDisplayMode_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkDisplayMode_v7_6_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_6_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_6_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkDisplayMode_v7_6_GetName(This,name)   \\r
-    ( (This)->lpVtbl -> GetName(This,name) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_6_GetDisplayMode(This) \\r
-    ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_6_GetWidth(This)       \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_6_GetHeight(This)      \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_6_GetFrameRate(This,frameDuration,timeScale)   \\r
-    ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_6_GetFieldDominance(This)      \\r
-    ( (This)->lpVtbl -> GetFieldDominance(This) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkDisplayMode_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkOutput_v7_6 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkOutput_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("29228142-EB8C-4141-A621-F74026450955")\r
-    IDeckLinkOutput_v7_6 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ BMDDisplayModeSupport *result) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
-            /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
-            /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
-            BMDDisplayMode displayMode,\r
-            BMDVideoOutputFlags flags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
-            /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDFrameFlags flags,\r
-            /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,\r
-            BMDTimeValue displayTime,\r
-            BMDTimeValue displayDuration,\r
-            BMDTimeScale timeScale) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
-            /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
-            /* [out] */ unsigned long *bufferedFrameCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
-            BMDAudioSampleRate sampleRate,\r
-            BMDAudioSampleType sampleType,\r
-            unsigned long channelCount,\r
-            BMDAudioOutputStreamType streamType) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
-            /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
-            /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            BMDTimeValue streamTime,\r
-            BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
-            /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
-            BMDTimeValue playbackStartTime,\r
-            BMDTimeScale timeScale,\r
-            double playbackSpeed) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
-            BMDTimeValue stopPlaybackAtTime,\r
-            /* [out] */ BMDTimeValue *actualStopTime,\r
-            BMDTimeScale timeScale) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
-            /* [out] */ BOOL *active) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetScheduledStreamTime( \r
-            BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *streamTime,\r
-            /* [out] */ double *playbackSpeed) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
-            BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *hardwareTime,\r
-            /* [out] */ BMDTimeValue *timeInFrame,\r
-            /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkOutput_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkOutput_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkOutput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ BMDDisplayModeSupport *result);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            BMDDisplayMode displayMode,\r
-            BMDVideoOutputFlags flags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
-            IDeckLinkOutput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDFrameFlags flags,\r
-            /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,\r
-            BMDTimeValue displayTime,\r
-            BMDTimeValue displayDuration,\r
-            BMDTimeScale timeScale);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [out] */ unsigned long *bufferedFrameCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            BMDAudioSampleRate sampleRate,\r
-            BMDAudioSampleType sampleType,\r
-            unsigned long channelCount,\r
-            BMDAudioOutputStreamType streamType);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
-            IDeckLinkOutput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
-            IDeckLinkOutput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
-            IDeckLinkOutput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            BMDTimeValue streamTime,\r
-            BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [out] */ unsigned long *bufferedSampleFrameCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
-            IDeckLinkOutput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            BMDTimeValue playbackStartTime,\r
-            BMDTimeScale timeScale,\r
-            double playbackSpeed);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            BMDTimeValue stopPlaybackAtTime,\r
-            /* [out] */ BMDTimeValue *actualStopTime,\r
-            BMDTimeScale timeScale);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            /* [out] */ BOOL *active);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetScheduledStreamTime )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *streamTime,\r
-            /* [out] */ double *playbackSpeed);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
-            IDeckLinkOutput_v7_6 * This,\r
-            BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *hardwareTime,\r
-            /* [out] */ BMDTimeValue *timeInFrame,\r
-            /* [out] */ BMDTimeValue *ticksPerFrame);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkOutput_v7_6Vtbl;\r
-\r
-    interface IDeckLinkOutput_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkOutput_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkOutput_v7_6_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkOutput_v7_6_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkOutput_v7_6_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkOutput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
-\r
-#define IDeckLinkOutput_v7_6_GetDisplayModeIterator(This,iterator)     \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
-\r
-#define IDeckLinkOutput_v7_6_SetScreenPreviewCallback(This,previewCallback)    \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
-\r
-#define IDeckLinkOutput_v7_6_EnableVideoOutput(This,displayMode,flags) \\r
-    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
-\r
-#define IDeckLinkOutput_v7_6_DisableVideoOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
-\r
-#define IDeckLinkOutput_v7_6_SetVideoOutputFrameMemoryAllocator(This,theAllocator)     \\r
-    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
-\r
-#define IDeckLinkOutput_v7_6_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)   \\r
-    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
-\r
-#define IDeckLinkOutput_v7_6_CreateAncillaryData(This,pixelFormat,outBuffer)   \\r
-    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) \r
-\r
-#define IDeckLinkOutput_v7_6_DisplayVideoFrameSync(This,theFrame)      \\r
-    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
-\r
-#define IDeckLinkOutput_v7_6_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)   \\r
-    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
-\r
-#define IDeckLinkOutput_v7_6_SetScheduledFrameCompletionCallback(This,theCallback)     \\r
-    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
-\r
-#define IDeckLinkOutput_v7_6_GetBufferedVideoFrameCount(This,bufferedFrameCount)       \\r
-    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
-\r
-#define IDeckLinkOutput_v7_6_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)     \\r
-    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
-\r
-#define IDeckLinkOutput_v7_6_DisableAudioOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
-\r
-#define IDeckLinkOutput_v7_6_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)   \\r
-    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
-\r
-#define IDeckLinkOutput_v7_6_BeginAudioPreroll(This)   \\r
-    ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
-\r
-#define IDeckLinkOutput_v7_6_EndAudioPreroll(This)     \\r
-    ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
-\r
-#define IDeckLinkOutput_v7_6_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)       \\r
-    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
-\r
-#define IDeckLinkOutput_v7_6_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)   \\r
-    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
-\r
-#define IDeckLinkOutput_v7_6_FlushBufferedAudioSamples(This)   \\r
-    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
-\r
-#define IDeckLinkOutput_v7_6_SetAudioCallback(This,theCallback)        \\r
-    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
-\r
-#define IDeckLinkOutput_v7_6_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)    \\r
-    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
-\r
-#define IDeckLinkOutput_v7_6_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)   \\r
-    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
-\r
-#define IDeckLinkOutput_v7_6_IsScheduledPlaybackRunning(This,active)   \\r
-    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
-\r
-#define IDeckLinkOutput_v7_6_GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed)    \\r
-    ( (This)->lpVtbl -> GetScheduledStreamTime(This,desiredTimeScale,streamTime,playbackSpeed) ) \r
-\r
-#define IDeckLinkOutput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)   \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkOutput_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInput_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkInput_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkInput_v7_6 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkInput_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("300C135A-9F43-48E2-9906-6D7911D93CF1")\r
-    IDeckLinkInput_v7_6 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ BMDDisplayModeSupport *result) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
-            /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
-            /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDVideoInputFlags flags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
-            /* [out] */ unsigned long *availableFrameCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
-            BMDAudioSampleRate sampleRate,\r
-            BMDAudioSampleType sampleType,\r
-            unsigned long channelCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *availableSampleFrameCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
-            /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
-            BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *hardwareTime,\r
-            /* [out] */ BMDTimeValue *timeInFrame,\r
-            /* [out] */ BMDTimeValue *ticksPerFrame) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkInput_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkInput_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkInput_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkInput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
-            IDeckLinkInput_v7_6 * This,\r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ BMDDisplayModeSupport *result);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
-            IDeckLinkInput_v7_6 * This,\r
-            /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
-            IDeckLinkInput_v7_6 * This,\r
-            /* [in] */ IDeckLinkScreenPreviewCallback_v7_6 *previewCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
-            IDeckLinkInput_v7_6 * This,\r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDVideoInputFlags flags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
-            IDeckLinkInput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
-            IDeckLinkInput_v7_6 * This,\r
-            /* [out] */ unsigned long *availableFrameCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
-            IDeckLinkInput_v7_6 * This,\r
-            BMDAudioSampleRate sampleRate,\r
-            BMDAudioSampleType sampleType,\r
-            unsigned long channelCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
-            IDeckLinkInput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
-            IDeckLinkInput_v7_6 * This,\r
-            /* [out] */ unsigned long *availableSampleFrameCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
-            IDeckLinkInput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
-            IDeckLinkInput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
-            IDeckLinkInput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
-            IDeckLinkInput_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
-            IDeckLinkInput_v7_6 * This,\r
-            /* [in] */ IDeckLinkInputCallback_v7_6 *theCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
-            IDeckLinkInput_v7_6 * This,\r
-            BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *hardwareTime,\r
-            /* [out] */ BMDTimeValue *timeInFrame,\r
-            /* [out] */ BMDTimeValue *ticksPerFrame);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkInput_v7_6Vtbl;\r
-\r
-    interface IDeckLinkInput_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkInput_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkInput_v7_6_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkInput_v7_6_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkInput_v7_6_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkInput_v7_6_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
-\r
-#define IDeckLinkInput_v7_6_GetDisplayModeIterator(This,iterator)      \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
-\r
-#define IDeckLinkInput_v7_6_SetScreenPreviewCallback(This,previewCallback)     \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
-\r
-#define IDeckLinkInput_v7_6_EnableVideoInput(This,displayMode,pixelFormat,flags)       \\r
-    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
-\r
-#define IDeckLinkInput_v7_6_DisableVideoInput(This)    \\r
-    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
-\r
-#define IDeckLinkInput_v7_6_GetAvailableVideoFrameCount(This,availableFrameCount)      \\r
-    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
-\r
-#define IDeckLinkInput_v7_6_EnableAudioInput(This,sampleRate,sampleType,channelCount)  \\r
-    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
-\r
-#define IDeckLinkInput_v7_6_DisableAudioInput(This)    \\r
-    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
-\r
-#define IDeckLinkInput_v7_6_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)  \\r
-    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
-\r
-#define IDeckLinkInput_v7_6_StartStreams(This) \\r
-    ( (This)->lpVtbl -> StartStreams(This) ) \r
-\r
-#define IDeckLinkInput_v7_6_StopStreams(This)  \\r
-    ( (This)->lpVtbl -> StopStreams(This) ) \r
-\r
-#define IDeckLinkInput_v7_6_PauseStreams(This) \\r
-    ( (This)->lpVtbl -> PauseStreams(This) ) \r
-\r
-#define IDeckLinkInput_v7_6_FlushStreams(This) \\r
-    ( (This)->lpVtbl -> FlushStreams(This) ) \r
-\r
-#define IDeckLinkInput_v7_6_SetCallback(This,theCallback)      \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
-\r
-#define IDeckLinkInput_v7_6_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)    \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkInput_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkTimecode_v7_6 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkTimecode_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("EFB9BCA6-A521-44F7-BD69-2332F24D9EE6")\r
-    IDeckLinkTimecode_v7_6 : public IUnknown\r
-    {\r
-    public:\r
-        virtual BMDTimecodeBCD STDMETHODCALLTYPE GetBCD( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetComponents( \r
-            /* [out] */ unsigned char *hours,\r
-            /* [out] */ unsigned char *minutes,\r
-            /* [out] */ unsigned char *seconds,\r
-            /* [out] */ unsigned char *frames) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetString( \r
-            /* [out] */ BSTR *timecode) = 0;\r
-        \r
-        virtual BMDTimecodeFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkTimecode_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkTimecode_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkTimecode_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkTimecode_v7_6 * This);\r
-        \r
-        BMDTimecodeBCD ( STDMETHODCALLTYPE *GetBCD )( \r
-            IDeckLinkTimecode_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetComponents )( \r
-            IDeckLinkTimecode_v7_6 * This,\r
-            /* [out] */ unsigned char *hours,\r
-            /* [out] */ unsigned char *minutes,\r
-            /* [out] */ unsigned char *seconds,\r
-            /* [out] */ unsigned char *frames);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
-            IDeckLinkTimecode_v7_6 * This,\r
-            /* [out] */ BSTR *timecode);\r
-        \r
-        BMDTimecodeFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkTimecode_v7_6 * This);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkTimecode_v7_6Vtbl;\r
-\r
-    interface IDeckLinkTimecode_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkTimecode_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkTimecode_v7_6_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkTimecode_v7_6_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkTimecode_v7_6_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkTimecode_v7_6_GetBCD(This)    \\r
-    ( (This)->lpVtbl -> GetBCD(This) ) \r
-\r
-#define IDeckLinkTimecode_v7_6_GetComponents(This,hours,minutes,seconds,frames)        \\r
-    ( (This)->lpVtbl -> GetComponents(This,hours,minutes,seconds,frames) ) \r
-\r
-#define IDeckLinkTimecode_v7_6_GetString(This,timecode)        \\r
-    ( (This)->lpVtbl -> GetString(This,timecode) ) \r
-\r
-#define IDeckLinkTimecode_v7_6_GetFlags(This)  \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkTimecode_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoFrame_v7_6 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("A8D8238E-6B18-4196-99E1-5AF717B83D32")\r
-    IDeckLinkVideoFrame_v7_6 : public IUnknown\r
-    {\r
-    public:\r
-        virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
-        \r
-        virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
-        \r
-        virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;\r
-        \r
-        virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
-        \r
-        virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
-            /* [out] */ void **buffer) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
-            BMDTimecodeFormat format,\r
-            /* [out] */ IDeckLinkTimecode_v7_6 **timecode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( \r
-            /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoFrame_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoFrame_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoFrame_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoFrame_v7_6 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkVideoFrame_v7_6 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkVideoFrame_v7_6 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
-            IDeckLinkVideoFrame_v7_6 * This);\r
-        \r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
-            IDeckLinkVideoFrame_v7_6 * This);\r
-        \r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkVideoFrame_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkVideoFrame_v7_6 * This,\r
-            /* [out] */ void **buffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
-            IDeckLinkVideoFrame_v7_6 * This,\r
-            BMDTimecodeFormat format,\r
-            /* [out] */ IDeckLinkTimecode_v7_6 **timecode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
-            IDeckLinkVideoFrame_v7_6 * This,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoFrame_v7_6Vtbl;\r
-\r
-    interface IDeckLinkVideoFrame_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoFrame_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoFrame_v7_6_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_6_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_6_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoFrame_v7_6_GetWidth(This)        \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_6_GetHeight(This)       \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_6_GetRowBytes(This)     \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_6_GetPixelFormat(This)  \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_6_GetFlags(This)        \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_6_GetBytes(This,buffer) \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_6_GetTimecode(This,format,timecode)     \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_6_GetAncillaryData(This,ancillary)      \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoFrame_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkMutableVideoFrame_v7_6 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkMutableVideoFrame_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("46FCEE00-B4E6-43D0-91C0-023A7FCEB34F")\r
-    IDeckLinkMutableVideoFrame_v7_6 : public IDeckLinkVideoFrame_v7_6\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE SetFlags( \r
-            BMDFrameFlags newFlags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetTimecode( \r
-            BMDTimecodeFormat format,\r
-            /* [in] */ IDeckLinkTimecode_v7_6 *timecode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetTimecodeFromComponents( \r
-            BMDTimecodeFormat format,\r
-            unsigned char hours,\r
-            unsigned char minutes,\r
-            unsigned char seconds,\r
-            unsigned char frames,\r
-            BMDTimecodeFlags flags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetAncillaryData( \r
-            /* [in] */ IDeckLinkVideoFrameAncillary *ancillary) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkMutableVideoFrame_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This);\r
-        \r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This);\r
-        \r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This,\r
-            /* [out] */ void **buffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This,\r
-            BMDTimecodeFormat format,\r
-            /* [out] */ IDeckLinkTimecode_v7_6 **timecode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetFlags )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This,\r
-            BMDFrameFlags newFlags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetTimecode )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This,\r
-            BMDTimecodeFormat format,\r
-            /* [in] */ IDeckLinkTimecode_v7_6 *timecode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetTimecodeFromComponents )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This,\r
-            BMDTimecodeFormat format,\r
-            unsigned char hours,\r
-            unsigned char minutes,\r
-            unsigned char seconds,\r
-            unsigned char frames,\r
-            BMDTimecodeFlags flags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetAncillaryData )( \r
-            IDeckLinkMutableVideoFrame_v7_6 * This,\r
-            /* [in] */ IDeckLinkVideoFrameAncillary *ancillary);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkMutableVideoFrame_v7_6Vtbl;\r
-\r
-    interface IDeckLinkMutableVideoFrame_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkMutableVideoFrame_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_QueryInterface(This,riid,ppvObject)    \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_AddRef(This)   \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_Release(This)  \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_GetWidth(This) \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_GetHeight(This)        \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_GetRowBytes(This)      \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_GetPixelFormat(This)   \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_GetFlags(This) \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_GetBytes(This,buffer)  \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_GetTimecode(This,format,timecode)      \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_GetAncillaryData(This,ancillary)       \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
-\r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_SetFlags(This,newFlags)        \\r
-    ( (This)->lpVtbl -> SetFlags(This,newFlags) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_SetTimecode(This,format,timecode)      \\r
-    ( (This)->lpVtbl -> SetTimecode(This,format,timecode) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags)      \\r
-    ( (This)->lpVtbl -> SetTimecodeFromComponents(This,format,hours,minutes,seconds,frames,flags) ) \r
-\r
-#define IDeckLinkMutableVideoFrame_v7_6_SetAncillaryData(This,ancillary)       \\r
-    ( (This)->lpVtbl -> SetAncillaryData(This,ancillary) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkMutableVideoFrame_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoInputFrame_v7_6 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("9A74FA41-AE9F-47AC-8CF4-01F42DD59965")\r
-    IDeckLinkVideoInputFrame_v7_6 : public IDeckLinkVideoFrame_v7_6\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
-            /* [out] */ BMDTimeValue *frameTime,\r
-            /* [out] */ BMDTimeValue *frameDuration,\r
-            BMDTimeScale timeScale) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( \r
-            BMDTimeScale timeScale,\r
-            /* [out] */ BMDTimeValue *frameTime,\r
-            /* [out] */ BMDTimeValue *frameDuration) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoInputFrame_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This);\r
-        \r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This);\r
-        \r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This,\r
-            /* [out] */ void **buffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This,\r
-            BMDTimecodeFormat format,\r
-            /* [out] */ IDeckLinkTimecode_v7_6 **timecode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This,\r
-            /* [out] */ BMDTimeValue *frameTime,\r
-            /* [out] */ BMDTimeValue *frameDuration,\r
-            BMDTimeScale timeScale);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( \r
-            IDeckLinkVideoInputFrame_v7_6 * This,\r
-            BMDTimeScale timeScale,\r
-            /* [out] */ BMDTimeValue *frameTime,\r
-            /* [out] */ BMDTimeValue *frameDuration);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoInputFrame_v7_6Vtbl;\r
-\r
-    interface IDeckLinkVideoInputFrame_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoInputFrame_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_GetWidth(This)   \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_GetHeight(This)  \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_GetRowBytes(This)        \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_GetPixelFormat(This)     \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_GetFlags(This)   \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_GetBytes(This,buffer)    \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_GetTimecode(This,format,timecode)        \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_GetAncillaryData(This,ancillary) \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
-\r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_GetStreamTime(This,frameTime,frameDuration,timeScale)    \\r
-    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_6_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)    \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoInputFrame_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkScreenPreviewCallback_v7_6 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("373F499D-4B4D-4518-AD22-6354E5A5825E")\r
-    IDeckLinkScreenPreviewCallback_v7_6 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE DrawFrame( \r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkScreenPreviewCallback_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkScreenPreviewCallback_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkScreenPreviewCallback_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkScreenPreviewCallback_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DrawFrame )( \r
-            IDeckLinkScreenPreviewCallback_v7_6 * This,\r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkScreenPreviewCallback_v7_6Vtbl;\r
-\r
-    interface IDeckLinkScreenPreviewCallback_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkScreenPreviewCallback_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkScreenPreviewCallback_v7_6_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkScreenPreviewCallback_v7_6_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkScreenPreviewCallback_v7_6_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkScreenPreviewCallback_v7_6_DrawFrame(This,theFrame)   \\r
-    ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkScreenPreviewCallback_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkGLScreenPreviewHelper_v7_6 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA")\r
-    IDeckLinkGLScreenPreviewHelper_v7_6 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetFrame( \r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkGLScreenPreviewHelper_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkGLScreenPreviewHelper_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkGLScreenPreviewHelper_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *InitializeGL )( \r
-            IDeckLinkGLScreenPreviewHelper_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *PaintGL )( \r
-            IDeckLinkGLScreenPreviewHelper_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetFrame )( \r
-            IDeckLinkGLScreenPreviewHelper_v7_6 * This,\r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkGLScreenPreviewHelper_v7_6Vtbl;\r
-\r
-    interface IDeckLinkGLScreenPreviewHelper_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkGLScreenPreviewHelper_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkGLScreenPreviewHelper_v7_6_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkGLScreenPreviewHelper_v7_6_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkGLScreenPreviewHelper_v7_6_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkGLScreenPreviewHelper_v7_6_InitializeGL(This) \\r
-    ( (This)->lpVtbl -> InitializeGL(This) ) \r
-\r
-#define IDeckLinkGLScreenPreviewHelper_v7_6_PaintGL(This)      \\r
-    ( (This)->lpVtbl -> PaintGL(This) ) \r
-\r
-#define IDeckLinkGLScreenPreviewHelper_v7_6_SetFrame(This,theFrame)    \\r
-    ( (This)->lpVtbl -> SetFrame(This,theFrame) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkGLScreenPreviewHelper_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoConversion_v7_6 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoConversion_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("3EB504C9-F97D-40FE-A158-D407D48CB53B")\r
-    IDeckLinkVideoConversion_v7_6 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE ConvertFrame( \r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,\r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoConversion_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoConversion_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoConversion_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoConversion_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ConvertFrame )( \r
-            IDeckLinkVideoConversion_v7_6 * This,\r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *srcFrame,\r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *dstFrame);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoConversion_v7_6Vtbl;\r
-\r
-    interface IDeckLinkVideoConversion_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoConversion_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoConversion_v7_6_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoConversion_v7_6_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoConversion_v7_6_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoConversion_v7_6_ConvertFrame(This,srcFrame,dstFrame)     \\r
-    ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoConversion_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkConfiguration_v7_6 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkConfiguration_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("B8EAD569-B764-47F0-A73F-AE40DF6CBF10")\r
-    IDeckLinkConfiguration_v7_6 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetConfigurationValidator( \r
-            /* [out] */ IDeckLinkConfiguration_v7_6 **configObject) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE WriteConfigurationToPreferences( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFormat( \r
-            /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE IsVideoOutputActive( \r
-            /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,\r
-            /* [out] */ BOOL *active) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoOutputFlags( \r
-            /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoOutputFlags( \r
-            /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableFieldFlickerRemovalWhenPaused( \r
-            /* [in] */ BOOL enable) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE IsEnabledFieldFlickerRemovalWhenPaused( \r
-            /* [out] */ BOOL *enabled) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Set444And3GBpsVideoOutput( \r
-            /* [in] */ BOOL enable444VideoOutput,\r
-            /* [in] */ BOOL enable3GbsOutput) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Get444And3GBpsVideoOutput( \r
-            /* [out] */ BOOL *is444VideoOutputEnabled,\r
-            /* [out] */ BOOL *threeGbsOutputEnabled) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputConversionMode( \r
-            /* [in] */ BMDVideoOutputConversionMode conversionMode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetVideoOutputConversionMode( \r
-            /* [out] */ BMDVideoOutputConversionMode *conversionMode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Set_HD1080p24_to_HD1080i5994_Conversion( \r
-            /* [in] */ BOOL enable) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Get_HD1080p24_to_HD1080i5994_Conversion( \r
-            /* [out] */ BOOL *enabled) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoInputFormat( \r
-            /* [in] */ BMDVideoConnection_v7_6 videoInputFormat) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetVideoInputFormat( \r
-            /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetAnalogVideoInputFlags( \r
-            /* [in] */ BMDAnalogVideoFlags analogVideoFlags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetAnalogVideoInputFlags( \r
-            /* [out] */ BMDAnalogVideoFlags *analogVideoFlags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoInputConversionMode( \r
-            /* [in] */ BMDVideoInputConversionMode conversionMode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetVideoInputConversionMode( \r
-            /* [out] */ BMDVideoInputConversionMode *conversionMode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetBlackVideoOutputDuringCapture( \r
-            /* [in] */ BOOL blackOutInCapture) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBlackVideoOutputDuringCapture( \r
-            /* [out] */ BOOL *blackOutInCapture) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Set32PulldownSequenceInitialTimecodeFrame( \r
-            /* [in] */ unsigned long aFrameTimecode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Get32PulldownSequenceInitialTimecodeFrame( \r
-            /* [out] */ unsigned long *aFrameTimecode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetVancSourceLineMapping( \r
-            /* [in] */ unsigned long activeLine1VANCsource,\r
-            /* [in] */ unsigned long activeLine2VANCsource,\r
-            /* [in] */ unsigned long activeLine3VANCsource) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetVancSourceLineMapping( \r
-            /* [out] */ unsigned long *activeLine1VANCsource,\r
-            /* [out] */ unsigned long *activeLine2VANCsource,\r
-            /* [out] */ unsigned long *activeLine3VANCsource) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetAudioInputFormat( \r
-            /* [in] */ BMDAudioConnection audioInputFormat) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetAudioInputFormat( \r
-            /* [out] */ BMDAudioConnection *audioInputFormat) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkConfiguration_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkConfiguration_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkConfiguration_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetConfigurationValidator )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ IDeckLinkConfiguration_v7_6 **configObject);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( \r
-            IDeckLinkConfiguration_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFormat )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *IsVideoOutputActive )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ BMDVideoConnection_v7_6 videoOutputConnection,\r
-            /* [out] */ BOOL *active);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoOutputFlags )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ BMDAnalogVideoFlags analogVideoFlags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoOutputFlags )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableFieldFlickerRemovalWhenPaused )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ BOOL enable);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *IsEnabledFieldFlickerRemovalWhenPaused )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ BOOL *enabled);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Set444And3GBpsVideoOutput )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ BOOL enable444VideoOutput,\r
-            /* [in] */ BOOL enable3GbsOutput);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Get444And3GBpsVideoOutput )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ BOOL *is444VideoOutputEnabled,\r
-            /* [out] */ BOOL *threeGbsOutputEnabled);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputConversionMode )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ BMDVideoOutputConversionMode conversionMode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetVideoOutputConversionMode )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ BMDVideoOutputConversionMode *conversionMode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Set_HD1080p24_to_HD1080i5994_Conversion )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ BOOL enable);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Get_HD1080p24_to_HD1080i5994_Conversion )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ BOOL *enabled);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoInputFormat )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ BMDVideoConnection_v7_6 videoInputFormat);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetVideoInputFormat )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ BMDVideoConnection_v7_6 *videoInputFormat);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetAnalogVideoInputFlags )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ BMDAnalogVideoFlags analogVideoFlags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAnalogVideoInputFlags )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ BMDAnalogVideoFlags *analogVideoFlags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoInputConversionMode )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ BMDVideoInputConversionMode conversionMode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetVideoInputConversionMode )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ BMDVideoInputConversionMode *conversionMode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetBlackVideoOutputDuringCapture )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ BOOL blackOutInCapture);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBlackVideoOutputDuringCapture )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ BOOL *blackOutInCapture);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Set32PulldownSequenceInitialTimecodeFrame )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ unsigned long aFrameTimecode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Get32PulldownSequenceInitialTimecodeFrame )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ unsigned long *aFrameTimecode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetVancSourceLineMapping )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ unsigned long activeLine1VANCsource,\r
-            /* [in] */ unsigned long activeLine2VANCsource,\r
-            /* [in] */ unsigned long activeLine3VANCsource);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetVancSourceLineMapping )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ unsigned long *activeLine1VANCsource,\r
-            /* [out] */ unsigned long *activeLine2VANCsource,\r
-            /* [out] */ unsigned long *activeLine3VANCsource);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetAudioInputFormat )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ BMDAudioConnection audioInputFormat);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAudioInputFormat )( \r
-            IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ BMDAudioConnection *audioInputFormat);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkConfiguration_v7_6Vtbl;\r
-\r
-    interface IDeckLinkConfiguration_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkConfiguration_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkConfiguration_v7_6_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkConfiguration_v7_6_GetConfigurationValidator(This,configObject)       \\r
-    ( (This)->lpVtbl -> GetConfigurationValidator(This,configObject) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_WriteConfigurationToPreferences(This)      \\r
-    ( (This)->lpVtbl -> WriteConfigurationToPreferences(This) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_SetVideoOutputFormat(This,videoOutputConnection)   \\r
-    ( (This)->lpVtbl -> SetVideoOutputFormat(This,videoOutputConnection) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_IsVideoOutputActive(This,videoOutputConnection,active)     \\r
-    ( (This)->lpVtbl -> IsVideoOutputActive(This,videoOutputConnection,active) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_SetAnalogVideoOutputFlags(This,analogVideoFlags)   \\r
-    ( (This)->lpVtbl -> SetAnalogVideoOutputFlags(This,analogVideoFlags) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_GetAnalogVideoOutputFlags(This,analogVideoFlags)   \\r
-    ( (This)->lpVtbl -> GetAnalogVideoOutputFlags(This,analogVideoFlags) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_EnableFieldFlickerRemovalWhenPaused(This,enable)   \\r
-    ( (This)->lpVtbl -> EnableFieldFlickerRemovalWhenPaused(This,enable) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_IsEnabledFieldFlickerRemovalWhenPaused(This,enabled)       \\r
-    ( (This)->lpVtbl -> IsEnabledFieldFlickerRemovalWhenPaused(This,enabled) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput)      \\r
-    ( (This)->lpVtbl -> Set444And3GBpsVideoOutput(This,enable444VideoOutput,enable3GbsOutput) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled)      \\r
-    ( (This)->lpVtbl -> Get444And3GBpsVideoOutput(This,is444VideoOutputEnabled,threeGbsOutputEnabled) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_SetVideoOutputConversionMode(This,conversionMode)  \\r
-    ( (This)->lpVtbl -> SetVideoOutputConversionMode(This,conversionMode) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_GetVideoOutputConversionMode(This,conversionMode)  \\r
-    ( (This)->lpVtbl -> GetVideoOutputConversionMode(This,conversionMode) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_Set_HD1080p24_to_HD1080i5994_Conversion(This,enable)       \\r
-    ( (This)->lpVtbl -> Set_HD1080p24_to_HD1080i5994_Conversion(This,enable) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled)      \\r
-    ( (This)->lpVtbl -> Get_HD1080p24_to_HD1080i5994_Conversion(This,enabled) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_SetVideoInputFormat(This,videoInputFormat) \\r
-    ( (This)->lpVtbl -> SetVideoInputFormat(This,videoInputFormat) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_GetVideoInputFormat(This,videoInputFormat) \\r
-    ( (This)->lpVtbl -> GetVideoInputFormat(This,videoInputFormat) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_SetAnalogVideoInputFlags(This,analogVideoFlags)    \\r
-    ( (This)->lpVtbl -> SetAnalogVideoInputFlags(This,analogVideoFlags) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_GetAnalogVideoInputFlags(This,analogVideoFlags)    \\r
-    ( (This)->lpVtbl -> GetAnalogVideoInputFlags(This,analogVideoFlags) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_SetVideoInputConversionMode(This,conversionMode)   \\r
-    ( (This)->lpVtbl -> SetVideoInputConversionMode(This,conversionMode) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_GetVideoInputConversionMode(This,conversionMode)   \\r
-    ( (This)->lpVtbl -> GetVideoInputConversionMode(This,conversionMode) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_SetBlackVideoOutputDuringCapture(This,blackOutInCapture)   \\r
-    ( (This)->lpVtbl -> SetBlackVideoOutputDuringCapture(This,blackOutInCapture) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_GetBlackVideoOutputDuringCapture(This,blackOutInCapture)   \\r
-    ( (This)->lpVtbl -> GetBlackVideoOutputDuringCapture(This,blackOutInCapture) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode)     \\r
-    ( (This)->lpVtbl -> Set32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode)     \\r
-    ( (This)->lpVtbl -> Get32PulldownSequenceInitialTimecodeFrame(This,aFrameTimecode) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource)   \\r
-    ( (This)->lpVtbl -> SetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource)   \\r
-    ( (This)->lpVtbl -> GetVancSourceLineMapping(This,activeLine1VANCsource,activeLine2VANCsource,activeLine3VANCsource) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_SetAudioInputFormat(This,audioInputFormat) \\r
-    ( (This)->lpVtbl -> SetAudioInputFormat(This,audioInputFormat) ) \r
-\r
-#define IDeckLinkConfiguration_v7_6_GetAudioInputFormat(This,audioInputFormat) \\r
-    ( (This)->lpVtbl -> GetAudioInputFormat(This,audioInputFormat) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkConfiguration_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoOutputCallback_v7_6 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("E763A626-4A3C-49D1-BF13-E7AD3692AE52")\r
-    IDeckLinkVideoOutputCallback_v7_6 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( \r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,\r
-            /* [in] */ BMDOutputFrameCompletionResult result) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE ScheduledPlaybackHasStopped( void) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoOutputCallback_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoOutputCallback_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoOutputCallback_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoOutputCallback_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( \r
-            IDeckLinkVideoOutputCallback_v7_6 * This,\r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *completedFrame,\r
-            /* [in] */ BMDOutputFrameCompletionResult result);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduledPlaybackHasStopped )( \r
-            IDeckLinkVideoOutputCallback_v7_6 * This);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoOutputCallback_v7_6Vtbl;\r
-\r
-    interface IDeckLinkVideoOutputCallback_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoOutputCallback_v7_6_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoOutputCallback_v7_6_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoOutputCallback_v7_6_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoOutputCallback_v7_6_ScheduledFrameCompleted(This,completedFrame,result)  \\r
-    ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) \r
-\r
-#define IDeckLinkVideoOutputCallback_v7_6_ScheduledPlaybackHasStopped(This)    \\r
-    ( (This)->lpVtbl -> ScheduledPlaybackHasStopped(This) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoOutputCallback_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__\r
-#define __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkInputCallback_v7_6 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkInputCallback_v7_6;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("31D28EE7-88B6-4CB1-897A-CDBF79A26414")\r
-    IDeckLinkInputCallback_v7_6 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( \r
-            /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
-            /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,\r
-            /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
-            /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,\r
-            /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkInputCallback_v7_6Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkInputCallback_v7_6 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkInputCallback_v7_6 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkInputCallback_v7_6 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( \r
-            IDeckLinkInputCallback_v7_6 * This,\r
-            /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
-            /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,\r
-            /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
-            IDeckLinkInputCallback_v7_6 * This,\r
-            /* [in] */ IDeckLinkVideoInputFrame_v7_6 *videoFrame,\r
-            /* [in] */ IDeckLinkAudioInputPacket *audioPacket);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkInputCallback_v7_6Vtbl;\r
-\r
-    interface IDeckLinkInputCallback_v7_6\r
-    {\r
-        CONST_VTBL struct IDeckLinkInputCallback_v7_6Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkInputCallback_v7_6_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkInputCallback_v7_6_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkInputCallback_v7_6_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkInputCallback_v7_6_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)        \\r
-    ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
-\r
-#define IDeckLinkInputCallback_v7_6_VideoInputFrameArrived(This,videoFrame,audioPacket)        \\r
-    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkInputCallback_v7_6_INTERFACE_DEFINED__ */\r
-\r
-\r
-EXTERN_C const CLSID CLSID_CDeckLinkGLScreenPreviewHelper_v7_6;\r
-\r
-#ifdef __cplusplus\r
-\r
-class DECLSPEC_UUID("D398CEE7-4434-4CA3-9BA6-5AE34556B905")\r
-CDeckLinkGLScreenPreviewHelper_v7_6;\r
-#endif\r
-\r
-EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion_v7_6;\r
-\r
-#ifdef __cplusplus\r
-\r
-class DECLSPEC_UUID("FFA84F77-73BE-4FB7-B03E-B5E44B9F759B")\r
-CDeckLinkVideoConversion_v7_6;\r
-#endif\r
-\r
-#ifndef __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__\r
-#define __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkInputCallback_v7_3 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkInputCallback_v7_3;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("FD6F311D-4D00-444B-9ED4-1F25B5730AD0")\r
-    IDeckLinkInputCallback_v7_3 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFormatChanged( \r
-            /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
-            /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,\r
-            /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
-            /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,\r
-            /* [in] */ IDeckLinkAudioInputPacket *audioPacket) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkInputCallback_v7_3Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkInputCallback_v7_3 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkInputCallback_v7_3 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkInputCallback_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFormatChanged )( \r
-            IDeckLinkInputCallback_v7_3 * This,\r
-            /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
-            /* [in] */ IDeckLinkDisplayMode_v7_6 *newDisplayMode,\r
-            /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
-            IDeckLinkInputCallback_v7_3 * This,\r
-            /* [in] */ IDeckLinkVideoInputFrame_v7_3 *videoFrame,\r
-            /* [in] */ IDeckLinkAudioInputPacket *audioPacket);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkInputCallback_v7_3Vtbl;\r
-\r
-    interface IDeckLinkInputCallback_v7_3\r
-    {\r
-        CONST_VTBL struct IDeckLinkInputCallback_v7_3Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkInputCallback_v7_3_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkInputCallback_v7_3_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkInputCallback_v7_3_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkInputCallback_v7_3_VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)        \\r
-    ( (This)->lpVtbl -> VideoInputFormatChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
-\r
-#define IDeckLinkInputCallback_v7_3_VideoInputFrameArrived(This,videoFrame,audioPacket)        \\r
-    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkInputCallback_v7_3_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__\r
-#define __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkOutput_v7_3 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkOutput_v7_3;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("271C65E3-C323-4344-A30F-D908BCB20AA3")\r
-    IDeckLinkOutput_v7_3 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ BMDDisplayModeSupport *result) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
-            /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
-            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
-            BMDDisplayMode displayMode,\r
-            BMDVideoOutputFlags flags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
-            /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDFrameFlags flags,\r
-            /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE CreateAncillaryData( \r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,\r
-            BMDTimeValue displayTime,\r
-            BMDTimeValue displayDuration,\r
-            BMDTimeScale timeScale) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
-            /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
-            /* [out] */ unsigned long *bufferedFrameCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
-            BMDAudioSampleRate sampleRate,\r
-            BMDAudioSampleType sampleType,\r
-            unsigned long channelCount,\r
-            BMDAudioOutputStreamType streamType) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
-            /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
-            /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            BMDTimeValue streamTime,\r
-            BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
-            /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
-            BMDTimeValue playbackStartTime,\r
-            BMDTimeScale timeScale,\r
-            double playbackSpeed) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
-            BMDTimeValue stopPlaybackAtTime,\r
-            /* [out] */ BMDTimeValue *actualStopTime,\r
-            BMDTimeScale timeScale) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE IsScheduledPlaybackRunning( \r
-            /* [out] */ BOOL *active) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
-            BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkOutput_v7_3Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkOutput_v7_3 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkOutput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ BMDDisplayModeSupport *result);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            BMDDisplayMode displayMode,\r
-            BMDVideoOutputFlags flags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
-            IDeckLinkOutput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDFrameFlags flags,\r
-            /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *CreateAncillaryData )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **outBuffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [in] */ IDeckLinkVideoFrame_v7_6 *theFrame,\r
-            BMDTimeValue displayTime,\r
-            BMDTimeValue displayDuration,\r
-            BMDTimeScale timeScale);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [in] */ IDeckLinkVideoOutputCallback *theCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [out] */ unsigned long *bufferedFrameCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            BMDAudioSampleRate sampleRate,\r
-            BMDAudioSampleType sampleType,\r
-            unsigned long channelCount,\r
-            BMDAudioOutputStreamType streamType);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
-            IDeckLinkOutput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
-            IDeckLinkOutput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
-            IDeckLinkOutput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            BMDTimeValue streamTime,\r
-            BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [out] */ unsigned long *bufferedSampleFrameCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
-            IDeckLinkOutput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            BMDTimeValue playbackStartTime,\r
-            BMDTimeScale timeScale,\r
-            double playbackSpeed);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            BMDTimeValue stopPlaybackAtTime,\r
-            /* [out] */ BMDTimeValue *actualStopTime,\r
-            BMDTimeScale timeScale);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *IsScheduledPlaybackRunning )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            /* [out] */ BOOL *active);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
-            IDeckLinkOutput_v7_3 * This,\r
-            BMDTimeScale desiredTimeScale,\r
-            /* [out] */ BMDTimeValue *elapsedTimeSinceSchedulerBegan);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkOutput_v7_3Vtbl;\r
-\r
-    interface IDeckLinkOutput_v7_3\r
-    {\r
-        CONST_VTBL struct IDeckLinkOutput_v7_3Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkOutput_v7_3_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkOutput_v7_3_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkOutput_v7_3_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkOutput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
-\r
-#define IDeckLinkOutput_v7_3_GetDisplayModeIterator(This,iterator)     \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
-\r
-#define IDeckLinkOutput_v7_3_SetScreenPreviewCallback(This,previewCallback)    \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
-\r
-#define IDeckLinkOutput_v7_3_EnableVideoOutput(This,displayMode,flags) \\r
-    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode,flags) ) \r
-\r
-#define IDeckLinkOutput_v7_3_DisableVideoOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
-\r
-#define IDeckLinkOutput_v7_3_SetVideoOutputFrameMemoryAllocator(This,theAllocator)     \\r
-    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
-\r
-#define IDeckLinkOutput_v7_3_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)   \\r
-    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
-\r
-#define IDeckLinkOutput_v7_3_CreateAncillaryData(This,pixelFormat,outBuffer)   \\r
-    ( (This)->lpVtbl -> CreateAncillaryData(This,pixelFormat,outBuffer) ) \r
-\r
-#define IDeckLinkOutput_v7_3_DisplayVideoFrameSync(This,theFrame)      \\r
-    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
-\r
-#define IDeckLinkOutput_v7_3_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)   \\r
-    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
-\r
-#define IDeckLinkOutput_v7_3_SetScheduledFrameCompletionCallback(This,theCallback)     \\r
-    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
-\r
-#define IDeckLinkOutput_v7_3_GetBufferedVideoFrameCount(This,bufferedFrameCount)       \\r
-    ( (This)->lpVtbl -> GetBufferedVideoFrameCount(This,bufferedFrameCount) ) \r
-\r
-#define IDeckLinkOutput_v7_3_EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType)     \\r
-    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount,streamType) ) \r
-\r
-#define IDeckLinkOutput_v7_3_DisableAudioOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
-\r
-#define IDeckLinkOutput_v7_3_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)   \\r
-    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
-\r
-#define IDeckLinkOutput_v7_3_BeginAudioPreroll(This)   \\r
-    ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
-\r
-#define IDeckLinkOutput_v7_3_EndAudioPreroll(This)     \\r
-    ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
-\r
-#define IDeckLinkOutput_v7_3_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)       \\r
-    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
-\r
-#define IDeckLinkOutput_v7_3_GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount)   \\r
-    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleFrameCount) ) \r
-\r
-#define IDeckLinkOutput_v7_3_FlushBufferedAudioSamples(This)   \\r
-    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
-\r
-#define IDeckLinkOutput_v7_3_SetAudioCallback(This,theCallback)        \\r
-    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
-\r
-#define IDeckLinkOutput_v7_3_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)    \\r
-    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
-\r
-#define IDeckLinkOutput_v7_3_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)   \\r
-    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
-\r
-#define IDeckLinkOutput_v7_3_IsScheduledPlaybackRunning(This,active)   \\r
-    ( (This)->lpVtbl -> IsScheduledPlaybackRunning(This,active) ) \r
-\r
-#define IDeckLinkOutput_v7_3_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan)   \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkOutput_v7_3_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInput_v7_3_INTERFACE_DEFINED__\r
-#define __IDeckLinkInput_v7_3_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkInput_v7_3 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkInput_v7_3;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("4973F012-9925-458C-871C-18774CDBBECB")\r
-    IDeckLinkInput_v7_3 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ BMDDisplayModeSupport *result) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
-            /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetScreenPreviewCallback( \r
-            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDVideoInputFlags flags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
-            /* [out] */ unsigned long *availableFrameCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
-            BMDAudioSampleRate sampleRate,\r
-            BMDAudioSampleType sampleType,\r
-            unsigned long channelCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *availableSampleFrameCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE FlushStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
-            /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkInput_v7_3Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkInput_v7_3 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkInput_v7_3 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkInput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
-            IDeckLinkInput_v7_3 * This,\r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ BMDDisplayModeSupport *result);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
-            IDeckLinkInput_v7_3 * This,\r
-            /* [out] */ IDeckLinkDisplayModeIterator_v7_6 **iterator);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetScreenPreviewCallback )( \r
-            IDeckLinkInput_v7_3 * This,\r
-            /* [in] */ IDeckLinkScreenPreviewCallback *previewCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
-            IDeckLinkInput_v7_3 * This,\r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDVideoInputFlags flags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
-            IDeckLinkInput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
-            IDeckLinkInput_v7_3 * This,\r
-            /* [out] */ unsigned long *availableFrameCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
-            IDeckLinkInput_v7_3 * This,\r
-            BMDAudioSampleRate sampleRate,\r
-            BMDAudioSampleType sampleType,\r
-            unsigned long channelCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
-            IDeckLinkInput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
-            IDeckLinkInput_v7_3 * This,\r
-            /* [out] */ unsigned long *availableSampleFrameCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
-            IDeckLinkInput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
-            IDeckLinkInput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
-            IDeckLinkInput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
-            IDeckLinkInput_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
-            IDeckLinkInput_v7_3 * This,\r
-            /* [in] */ IDeckLinkInputCallback_v7_3 *theCallback);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkInput_v7_3Vtbl;\r
-\r
-    interface IDeckLinkInput_v7_3\r
-    {\r
-        CONST_VTBL struct IDeckLinkInput_v7_3Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkInput_v7_3_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkInput_v7_3_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkInput_v7_3_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkInput_v7_3_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
-\r
-#define IDeckLinkInput_v7_3_GetDisplayModeIterator(This,iterator)      \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
-\r
-#define IDeckLinkInput_v7_3_SetScreenPreviewCallback(This,previewCallback)     \\r
-    ( (This)->lpVtbl -> SetScreenPreviewCallback(This,previewCallback) ) \r
-\r
-#define IDeckLinkInput_v7_3_EnableVideoInput(This,displayMode,pixelFormat,flags)       \\r
-    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
-\r
-#define IDeckLinkInput_v7_3_DisableVideoInput(This)    \\r
-    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
-\r
-#define IDeckLinkInput_v7_3_GetAvailableVideoFrameCount(This,availableFrameCount)      \\r
-    ( (This)->lpVtbl -> GetAvailableVideoFrameCount(This,availableFrameCount) ) \r
-\r
-#define IDeckLinkInput_v7_3_EnableAudioInput(This,sampleRate,sampleType,channelCount)  \\r
-    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
-\r
-#define IDeckLinkInput_v7_3_DisableAudioInput(This)    \\r
-    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
-\r
-#define IDeckLinkInput_v7_3_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)  \\r
-    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
-\r
-#define IDeckLinkInput_v7_3_StartStreams(This) \\r
-    ( (This)->lpVtbl -> StartStreams(This) ) \r
-\r
-#define IDeckLinkInput_v7_3_StopStreams(This)  \\r
-    ( (This)->lpVtbl -> StopStreams(This) ) \r
-\r
-#define IDeckLinkInput_v7_3_PauseStreams(This) \\r
-    ( (This)->lpVtbl -> PauseStreams(This) ) \r
-\r
-#define IDeckLinkInput_v7_3_FlushStreams(This) \\r
-    ( (This)->lpVtbl -> FlushStreams(This) ) \r
-\r
-#define IDeckLinkInput_v7_3_SetCallback(This,theCallback)      \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkInput_v7_3_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoInputFrame_v7_3 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_3;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("CF317790-2894-11DE-8C30-0800200C9A66")\r
-    IDeckLinkVideoInputFrame_v7_3 : public IDeckLinkVideoFrame_v7_6\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
-            /* [out] */ BMDTimeValue *frameTime,\r
-            /* [out] */ BMDTimeValue *frameDuration,\r
-            BMDTimeScale timeScale) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoInputFrame_v7_3Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoInputFrame_v7_3 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoInputFrame_v7_3 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoInputFrame_v7_3 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkVideoInputFrame_v7_3 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkVideoInputFrame_v7_3 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
-            IDeckLinkVideoInputFrame_v7_3 * This);\r
-        \r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
-            IDeckLinkVideoInputFrame_v7_3 * This);\r
-        \r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkVideoInputFrame_v7_3 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkVideoInputFrame_v7_3 * This,\r
-            /* [out] */ void **buffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
-            IDeckLinkVideoInputFrame_v7_3 * This,\r
-            BMDTimecodeFormat format,\r
-            /* [out] */ IDeckLinkTimecode_v7_6 **timecode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
-            IDeckLinkVideoInputFrame_v7_3 * This,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
-            IDeckLinkVideoInputFrame_v7_3 * This,\r
-            /* [out] */ BMDTimeValue *frameTime,\r
-            /* [out] */ BMDTimeValue *frameDuration,\r
-            BMDTimeScale timeScale);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoInputFrame_v7_3Vtbl;\r
-\r
-    interface IDeckLinkVideoInputFrame_v7_3\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoInputFrame_v7_3Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoInputFrame_v7_3_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_3_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_3_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoInputFrame_v7_3_GetWidth(This)   \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_3_GetHeight(This)  \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_3_GetRowBytes(This)        \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_3_GetPixelFormat(This)     \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_3_GetFlags(This)   \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_3_GetBytes(This,buffer)    \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_3_GetTimecode(This,format,timecode)        \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_3_GetAncillaryData(This,ancillary) \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
-\r
-\r
-#define IDeckLinkVideoInputFrame_v7_3_GetStreamTime(This,frameTime,frameDuration,timeScale)    \\r
-    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,frameDuration,timeScale) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoInputFrame_v7_3_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__\r
-#define __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkDisplayModeIterator_v7_1 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkDisplayModeIterator_v7_1;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("B28131B6-59AC-4857-B5AC-CD75D5883E2F")\r
-    IDeckLinkDisplayModeIterator_v7_1 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE Next( \r
-            /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkDisplayModeIterator_v7_1Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkDisplayModeIterator_v7_1 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkDisplayModeIterator_v7_1 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkDisplayModeIterator_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Next )( \r
-            IDeckLinkDisplayModeIterator_v7_1 * This,\r
-            /* [out] */ IDeckLinkDisplayMode_v7_1 **deckLinkDisplayMode);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkDisplayModeIterator_v7_1Vtbl;\r
-\r
-    interface IDeckLinkDisplayModeIterator_v7_1\r
-    {\r
-        CONST_VTBL struct IDeckLinkDisplayModeIterator_v7_1Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkDisplayModeIterator_v7_1_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkDisplayModeIterator_v7_1_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkDisplayModeIterator_v7_1_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkDisplayModeIterator_v7_1_Next(This,deckLinkDisplayMode)       \\r
-    ( (This)->lpVtbl -> Next(This,deckLinkDisplayMode) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkDisplayModeIterator_v7_1_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__\r
-#define __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkDisplayMode_v7_1 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkDisplayMode_v7_1;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("AF0CD6D5-8376-435E-8433-54F9DD530AC3")\r
-    IDeckLinkDisplayMode_v7_1 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetName( \r
-            /* [out] */ BSTR *name) = 0;\r
-        \r
-        virtual BMDDisplayMode STDMETHODCALLTYPE GetDisplayMode( void) = 0;\r
-        \r
-        virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
-        \r
-        virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetFrameRate( \r
-            /* [out] */ BMDTimeValue *frameDuration,\r
-            /* [out] */ BMDTimeScale *timeScale) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkDisplayMode_v7_1Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkDisplayMode_v7_1 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkDisplayMode_v7_1 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkDisplayMode_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetName )( \r
-            IDeckLinkDisplayMode_v7_1 * This,\r
-            /* [out] */ BSTR *name);\r
-        \r
-        BMDDisplayMode ( STDMETHODCALLTYPE *GetDisplayMode )( \r
-            IDeckLinkDisplayMode_v7_1 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkDisplayMode_v7_1 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkDisplayMode_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetFrameRate )( \r
-            IDeckLinkDisplayMode_v7_1 * This,\r
-            /* [out] */ BMDTimeValue *frameDuration,\r
-            /* [out] */ BMDTimeScale *timeScale);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkDisplayMode_v7_1Vtbl;\r
-\r
-    interface IDeckLinkDisplayMode_v7_1\r
-    {\r
-        CONST_VTBL struct IDeckLinkDisplayMode_v7_1Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkDisplayMode_v7_1_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_1_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_1_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkDisplayMode_v7_1_GetName(This,name)   \\r
-    ( (This)->lpVtbl -> GetName(This,name) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_1_GetDisplayMode(This) \\r
-    ( (This)->lpVtbl -> GetDisplayMode(This) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_1_GetWidth(This)       \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_1_GetHeight(This)      \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
-\r
-#define IDeckLinkDisplayMode_v7_1_GetFrameRate(This,frameDuration,timeScale)   \\r
-    ( (This)->lpVtbl -> GetFrameRate(This,frameDuration,timeScale) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkDisplayMode_v7_1_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoFrame_v7_1 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoFrame_v7_1;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("333F3A10-8C2D-43CF-B79D-46560FEEA1CE")\r
-    IDeckLinkVideoFrame_v7_1 : public IUnknown\r
-    {\r
-    public:\r
-        virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\r
-        \r
-        virtual long STDMETHODCALLTYPE GetHeight( void) = 0;\r
-        \r
-        virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;\r
-        \r
-        virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
-        \r
-        virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
-            void **buffer) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoFrame_v7_1Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoFrame_v7_1 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoFrame_v7_1 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoFrame_v7_1 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkVideoFrame_v7_1 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkVideoFrame_v7_1 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
-            IDeckLinkVideoFrame_v7_1 * This);\r
-        \r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
-            IDeckLinkVideoFrame_v7_1 * This);\r
-        \r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkVideoFrame_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkVideoFrame_v7_1 * This,\r
-            void **buffer);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoFrame_v7_1Vtbl;\r
-\r
-    interface IDeckLinkVideoFrame_v7_1\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoFrame_v7_1Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoFrame_v7_1_QueryInterface(This,riid,ppvObject)   \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_1_AddRef(This)  \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_1_Release(This) \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoFrame_v7_1_GetWidth(This)        \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_1_GetHeight(This)       \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_1_GetRowBytes(This)     \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_1_GetPixelFormat(This)  \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_1_GetFlags(This)        \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
-\r
-#define IDeckLinkVideoFrame_v7_1_GetBytes(This,buffer) \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoFrame_v7_1_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoInputFrame_v7_1 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoInputFrame_v7_1;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("C8B41D95-8848-40EE-9B37-6E3417FB114B")\r
-    IDeckLinkVideoInputFrame_v7_1 : public IDeckLinkVideoFrame_v7_1\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetFrameTime( \r
-            BMDTimeValue *frameTime,\r
-            BMDTimeValue *frameDuration,\r
-            BMDTimeScale timeScale) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoInputFrame_v7_1Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoInputFrame_v7_1 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoInputFrame_v7_1 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoInputFrame_v7_1 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkVideoInputFrame_v7_1 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkVideoInputFrame_v7_1 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
-            IDeckLinkVideoInputFrame_v7_1 * This);\r
-        \r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
-            IDeckLinkVideoInputFrame_v7_1 * This);\r
-        \r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkVideoInputFrame_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkVideoInputFrame_v7_1 * This,\r
-            void **buffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetFrameTime )( \r
-            IDeckLinkVideoInputFrame_v7_1 * This,\r
-            BMDTimeValue *frameTime,\r
-            BMDTimeValue *frameDuration,\r
-            BMDTimeScale timeScale);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoInputFrame_v7_1Vtbl;\r
-\r
-    interface IDeckLinkVideoInputFrame_v7_1\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoInputFrame_v7_1Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoInputFrame_v7_1_QueryInterface(This,riid,ppvObject)      \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_1_AddRef(This)     \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_1_Release(This)    \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoInputFrame_v7_1_GetWidth(This)   \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_1_GetHeight(This)  \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_1_GetRowBytes(This)        \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_1_GetPixelFormat(This)     \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_1_GetFlags(This)   \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
-\r
-#define IDeckLinkVideoInputFrame_v7_1_GetBytes(This,buffer)    \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
-\r
-\r
-#define IDeckLinkVideoInputFrame_v7_1_GetFrameTime(This,frameTime,frameDuration,timeScale)     \\r
-    ( (This)->lpVtbl -> GetFrameTime(This,frameTime,frameDuration,timeScale) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoInputFrame_v7_1_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__\r
-#define __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkAudioInputPacket_v7_1 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkAudioInputPacket_v7_1;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("C86DE4F6-A29F-42E3-AB3A-1363E29F0788")\r
-    IDeckLinkAudioInputPacket_v7_1 : public IUnknown\r
-    {\r
-    public:\r
-        virtual long STDMETHODCALLTYPE GetSampleCount( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
-            void **buffer) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetAudioPacketTime( \r
-            BMDTimeValue *packetTime,\r
-            BMDTimeScale timeScale) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkAudioInputPacket_v7_1Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkAudioInputPacket_v7_1 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkAudioInputPacket_v7_1 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkAudioInputPacket_v7_1 * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetSampleCount )( \r
-            IDeckLinkAudioInputPacket_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkAudioInputPacket_v7_1 * This,\r
-            void **buffer);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetAudioPacketTime )( \r
-            IDeckLinkAudioInputPacket_v7_1 * This,\r
-            BMDTimeValue *packetTime,\r
-            BMDTimeScale timeScale);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkAudioInputPacket_v7_1Vtbl;\r
-\r
-    interface IDeckLinkAudioInputPacket_v7_1\r
-    {\r
-        CONST_VTBL struct IDeckLinkAudioInputPacket_v7_1Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkAudioInputPacket_v7_1_QueryInterface(This,riid,ppvObject)     \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkAudioInputPacket_v7_1_AddRef(This)    \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkAudioInputPacket_v7_1_Release(This)   \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkAudioInputPacket_v7_1_GetSampleCount(This)    \\r
-    ( (This)->lpVtbl -> GetSampleCount(This) ) \r
-\r
-#define IDeckLinkAudioInputPacket_v7_1_GetBytes(This,buffer)   \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
-\r
-#define IDeckLinkAudioInputPacket_v7_1_GetAudioPacketTime(This,packetTime,timeScale)   \\r
-    ( (This)->lpVtbl -> GetAudioPacketTime(This,packetTime,timeScale) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkAudioInputPacket_v7_1_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkVideoOutputCallback_v7_1 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkVideoOutputCallback_v7_1;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("EBD01AFA-E4B0-49C6-A01D-EDB9D1B55FD9")\r
-    IDeckLinkVideoOutputCallback_v7_1 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE ScheduledFrameCompleted( \r
-            /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,\r
-            /* [in] */ BMDOutputFrameCompletionResult result) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkVideoOutputCallback_v7_1Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoOutputCallback_v7_1 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoOutputCallback_v7_1 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoOutputCallback_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduledFrameCompleted )( \r
-            IDeckLinkVideoOutputCallback_v7_1 * This,\r
-            /* [in] */ IDeckLinkVideoFrame_v7_1 *completedFrame,\r
-            /* [in] */ BMDOutputFrameCompletionResult result);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkVideoOutputCallback_v7_1Vtbl;\r
-\r
-    interface IDeckLinkVideoOutputCallback_v7_1\r
-    {\r
-        CONST_VTBL struct IDeckLinkVideoOutputCallback_v7_1Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkVideoOutputCallback_v7_1_QueryInterface(This,riid,ppvObject)  \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkVideoOutputCallback_v7_1_AddRef(This) \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkVideoOutputCallback_v7_1_Release(This)        \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkVideoOutputCallback_v7_1_ScheduledFrameCompleted(This,completedFrame,result)  \\r
-    ( (This)->lpVtbl -> ScheduledFrameCompleted(This,completedFrame,result) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkVideoOutputCallback_v7_1_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__\r
-#define __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkInputCallback_v7_1 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkInputCallback_v7_1;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("7F94F328-5ED4-4E9F-9729-76A86BDC99CC")\r
-    IDeckLinkInputCallback_v7_1 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE VideoInputFrameArrived( \r
-            /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,\r
-            /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkInputCallback_v7_1Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkInputCallback_v7_1 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkInputCallback_v7_1 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkInputCallback_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *VideoInputFrameArrived )( \r
-            IDeckLinkInputCallback_v7_1 * This,\r
-            /* [in] */ IDeckLinkVideoInputFrame_v7_1 *videoFrame,\r
-            /* [in] */ IDeckLinkAudioInputPacket_v7_1 *audioPacket);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkInputCallback_v7_1Vtbl;\r
-\r
-    interface IDeckLinkInputCallback_v7_1\r
-    {\r
-        CONST_VTBL struct IDeckLinkInputCallback_v7_1Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkInputCallback_v7_1_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkInputCallback_v7_1_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkInputCallback_v7_1_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkInputCallback_v7_1_VideoInputFrameArrived(This,videoFrame,audioPacket)        \\r
-    ( (This)->lpVtbl -> VideoInputFrameArrived(This,videoFrame,audioPacket) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkInputCallback_v7_1_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__\r
-#define __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkOutput_v7_1 */\r
-/* [helpstring][local][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkOutput_v7_1;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("AE5B3E9B-4E1E-4535-B6E8-480FF52F6CE5")\r
-    IDeckLinkOutput_v7_1 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ BMDDisplayModeSupport *result) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
-            /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoOutput( \r
-            BMDDisplayMode displayMode) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableVideoOutput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetVideoOutputFrameMemoryAllocator( \r
-            /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDFrameFlags flags,\r
-            IDeckLinkVideoFrame_v7_1 **outFrame) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE CreateVideoFrameFromBuffer( \r
-            void *buffer,\r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDFrameFlags flags,\r
-            IDeckLinkVideoFrame_v7_1 **outFrame) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisplayVideoFrameSync( \r
-            IDeckLinkVideoFrame_v7_1 *theFrame) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleVideoFrame( \r
-            IDeckLinkVideoFrame_v7_1 *theFrame,\r
-            BMDTimeValue displayTime,\r
-            BMDTimeValue displayDuration,\r
-            BMDTimeScale timeScale) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetScheduledFrameCompletionCallback( \r
-            /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
-            BMDAudioSampleRate sampleRate,\r
-            BMDAudioSampleType sampleType,\r
-            unsigned long channelCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableAudioOutput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE WriteAudioSamplesSync( \r
-            void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EndAudioPreroll( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
-            void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            BMDTimeValue streamTime,\r
-            BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *bufferedSampleCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetAudioCallback( \r
-            /* [in] */ IDeckLinkAudioOutputCallback *theCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StartScheduledPlayback( \r
-            BMDTimeValue playbackStartTime,\r
-            BMDTimeScale timeScale,\r
-            double playbackSpeed) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StopScheduledPlayback( \r
-            BMDTimeValue stopPlaybackAtTime,\r
-            BMDTimeValue *actualStopTime,\r
-            BMDTimeScale timeScale) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceClock( \r
-            BMDTimeScale desiredTimeScale,\r
-            BMDTimeValue *elapsedTimeSinceSchedulerBegan) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkOutput_v7_1Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkOutput_v7_1 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkOutput_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ BMDDisplayModeSupport *result);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoOutput )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            BMDDisplayMode displayMode);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoOutput )( \r
-            IDeckLinkOutput_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetVideoOutputFrameMemoryAllocator )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDFrameFlags flags,\r
-            IDeckLinkVideoFrame_v7_1 **outFrame);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *CreateVideoFrameFromBuffer )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            void *buffer,\r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDFrameFlags flags,\r
-            IDeckLinkVideoFrame_v7_1 **outFrame);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisplayVideoFrameSync )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            IDeckLinkVideoFrame_v7_1 *theFrame);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleVideoFrame )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            IDeckLinkVideoFrame_v7_1 *theFrame,\r
-            BMDTimeValue displayTime,\r
-            BMDTimeValue displayDuration,\r
-            BMDTimeScale timeScale);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetScheduledFrameCompletionCallback )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            /* [in] */ IDeckLinkVideoOutputCallback_v7_1 *theCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            BMDAudioSampleRate sampleRate,\r
-            BMDAudioSampleType sampleType,\r
-            unsigned long channelCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
-            IDeckLinkOutput_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
-            IDeckLinkOutput_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EndAudioPreroll )( \r
-            IDeckLinkOutput_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            BMDTimeValue streamTime,\r
-            BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            /* [out] */ unsigned long *bufferedSampleCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
-            IDeckLinkOutput_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetAudioCallback )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            /* [in] */ IDeckLinkAudioOutputCallback *theCallback);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StartScheduledPlayback )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            BMDTimeValue playbackStartTime,\r
-            BMDTimeScale timeScale,\r
-            double playbackSpeed);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StopScheduledPlayback )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            BMDTimeValue stopPlaybackAtTime,\r
-            BMDTimeValue *actualStopTime,\r
-            BMDTimeScale timeScale);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
-            IDeckLinkOutput_v7_1 * This,\r
-            BMDTimeScale desiredTimeScale,\r
-            BMDTimeValue *elapsedTimeSinceSchedulerBegan);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkOutput_v7_1Vtbl;\r
-\r
-    interface IDeckLinkOutput_v7_1\r
-    {\r
-        CONST_VTBL struct IDeckLinkOutput_v7_1Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkOutput_v7_1_QueryInterface(This,riid,ppvObject)       \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkOutput_v7_1_AddRef(This)      \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkOutput_v7_1_Release(This)     \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkOutput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result) \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
-\r
-#define IDeckLinkOutput_v7_1_GetDisplayModeIterator(This,iterator)     \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
-\r
-#define IDeckLinkOutput_v7_1_EnableVideoOutput(This,displayMode)       \\r
-    ( (This)->lpVtbl -> EnableVideoOutput(This,displayMode) ) \r
-\r
-#define IDeckLinkOutput_v7_1_DisableVideoOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableVideoOutput(This) ) \r
-\r
-#define IDeckLinkOutput_v7_1_SetVideoOutputFrameMemoryAllocator(This,theAllocator)     \\r
-    ( (This)->lpVtbl -> SetVideoOutputFrameMemoryAllocator(This,theAllocator) ) \r
-\r
-#define IDeckLinkOutput_v7_1_CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame)   \\r
-    ( (This)->lpVtbl -> CreateVideoFrame(This,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
-\r
-#define IDeckLinkOutput_v7_1_CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame)  \\r
-    ( (This)->lpVtbl -> CreateVideoFrameFromBuffer(This,buffer,width,height,rowBytes,pixelFormat,flags,outFrame) ) \r
-\r
-#define IDeckLinkOutput_v7_1_DisplayVideoFrameSync(This,theFrame)      \\r
-    ( (This)->lpVtbl -> DisplayVideoFrameSync(This,theFrame) ) \r
-\r
-#define IDeckLinkOutput_v7_1_ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale)   \\r
-    ( (This)->lpVtbl -> ScheduleVideoFrame(This,theFrame,displayTime,displayDuration,timeScale) ) \r
-\r
-#define IDeckLinkOutput_v7_1_SetScheduledFrameCompletionCallback(This,theCallback)     \\r
-    ( (This)->lpVtbl -> SetScheduledFrameCompletionCallback(This,theCallback) ) \r
-\r
-#define IDeckLinkOutput_v7_1_EnableAudioOutput(This,sampleRate,sampleType,channelCount)        \\r
-    ( (This)->lpVtbl -> EnableAudioOutput(This,sampleRate,sampleType,channelCount) ) \r
-\r
-#define IDeckLinkOutput_v7_1_DisableAudioOutput(This)  \\r
-    ( (This)->lpVtbl -> DisableAudioOutput(This) ) \r
-\r
-#define IDeckLinkOutput_v7_1_WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten)   \\r
-    ( (This)->lpVtbl -> WriteAudioSamplesSync(This,buffer,sampleFrameCount,sampleFramesWritten) ) \r
-\r
-#define IDeckLinkOutput_v7_1_BeginAudioPreroll(This)   \\r
-    ( (This)->lpVtbl -> BeginAudioPreroll(This) ) \r
-\r
-#define IDeckLinkOutput_v7_1_EndAudioPreroll(This)     \\r
-    ( (This)->lpVtbl -> EndAudioPreroll(This) ) \r
-\r
-#define IDeckLinkOutput_v7_1_ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten)       \\r
-    ( (This)->lpVtbl -> ScheduleAudioSamples(This,buffer,sampleFrameCount,streamTime,timeScale,sampleFramesWritten) ) \r
-\r
-#define IDeckLinkOutput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount)        \\r
-    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) ) \r
-\r
-#define IDeckLinkOutput_v7_1_FlushBufferedAudioSamples(This)   \\r
-    ( (This)->lpVtbl -> FlushBufferedAudioSamples(This) ) \r
-\r
-#define IDeckLinkOutput_v7_1_SetAudioCallback(This,theCallback)        \\r
-    ( (This)->lpVtbl -> SetAudioCallback(This,theCallback) ) \r
-\r
-#define IDeckLinkOutput_v7_1_StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed)    \\r
-    ( (This)->lpVtbl -> StartScheduledPlayback(This,playbackStartTime,timeScale,playbackSpeed) ) \r
-\r
-#define IDeckLinkOutput_v7_1_StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale)   \\r
-    ( (This)->lpVtbl -> StopScheduledPlayback(This,stopPlaybackAtTime,actualStopTime,timeScale) ) \r
-\r
-#define IDeckLinkOutput_v7_1_GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan)   \\r
-    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,elapsedTimeSinceSchedulerBegan) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkOutput_v7_1_INTERFACE_DEFINED__ */\r
-\r
-\r
-#ifndef __IDeckLinkInput_v7_1_INTERFACE_DEFINED__\r
-#define __IDeckLinkInput_v7_1_INTERFACE_DEFINED__\r
-\r
-/* interface IDeckLinkInput_v7_1 */\r
-/* [helpstring][uuid][object] */ \r
-\r
-\r
-EXTERN_C const IID IID_IDeckLinkInput_v7_1;\r
-\r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
-    MIDL_INTERFACE("2B54EDEF-5B32-429F-BA11-BB990596EACD")\r
-    IDeckLinkInput_v7_1 : public IUnknown\r
-    {\r
-    public:\r
-        virtual HRESULT STDMETHODCALLTYPE DoesSupportVideoMode( \r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ BMDDisplayModeSupport *result) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
-            /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDVideoInputFlags flags) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
-            BMDAudioSampleRate sampleRate,\r
-            BMDAudioSampleType sampleType,\r
-            unsigned long channelCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE ReadAudioSamples( \r
-            void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesRead,\r
-            /* [out] */ BMDTimeValue *audioPacketTime,\r
-            BMDTimeScale timeScale) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *bufferedSampleCount) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE StopStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE PauseStreams( void) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE SetCallback( \r
-            /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback) = 0;\r
-        \r
-    };\r
-    \r
-#else  /* C style interface */\r
-\r
-    typedef struct IDeckLinkInput_v7_1Vtbl\r
-    {\r
-        BEGIN_INTERFACE\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkInput_v7_1 * This,\r
-            /* [in] */ REFIID riid,\r
-            /* [annotation][iid_is][out] */ \r
-            __RPC__deref_out  void **ppvObject);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkInput_v7_1 * This);\r
-        \r
-        ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkInput_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
-            IDeckLinkInput_v7_1 * This,\r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            /* [out] */ BMDDisplayModeSupport *result);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
-            IDeckLinkInput_v7_1 * This,\r
-            /* [out] */ IDeckLinkDisplayModeIterator_v7_1 **iterator);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
-            IDeckLinkInput_v7_1 * This,\r
-            BMDDisplayMode displayMode,\r
-            BMDPixelFormat pixelFormat,\r
-            BMDVideoInputFlags flags);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
-            IDeckLinkInput_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
-            IDeckLinkInput_v7_1 * This,\r
-            BMDAudioSampleRate sampleRate,\r
-            BMDAudioSampleType sampleType,\r
-            unsigned long channelCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
-            IDeckLinkInput_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *ReadAudioSamples )( \r
-            IDeckLinkInput_v7_1 * This,\r
-            void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesRead,\r
-            /* [out] */ BMDTimeValue *audioPacketTime,\r
-            BMDTimeScale timeScale);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
-            IDeckLinkInput_v7_1 * This,\r
-            /* [out] */ unsigned long *bufferedSampleCount);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
-            IDeckLinkInput_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
-            IDeckLinkInput_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
-            IDeckLinkInput_v7_1 * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
-            IDeckLinkInput_v7_1 * This,\r
-            /* [in] */ IDeckLinkInputCallback_v7_1 *theCallback);\r
-        \r
-        END_INTERFACE\r
-    } IDeckLinkInput_v7_1Vtbl;\r
-\r
-    interface IDeckLinkInput_v7_1\r
-    {\r
-        CONST_VTBL struct IDeckLinkInput_v7_1Vtbl *lpVtbl;\r
-    };\r
-\r
-    \r
-\r
-#ifdef COBJMACROS\r
-\r
-\r
-#define IDeckLinkInput_v7_1_QueryInterface(This,riid,ppvObject)        \\r
-    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
-\r
-#define IDeckLinkInput_v7_1_AddRef(This)       \\r
-    ( (This)->lpVtbl -> AddRef(This) ) \r
-\r
-#define IDeckLinkInput_v7_1_Release(This)      \\r
-    ( (This)->lpVtbl -> Release(This) ) \r
-\r
-\r
-#define IDeckLinkInput_v7_1_DoesSupportVideoMode(This,displayMode,pixelFormat,result)  \\r
-    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,result) ) \r
-\r
-#define IDeckLinkInput_v7_1_GetDisplayModeIterator(This,iterator)      \\r
-    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
-\r
-#define IDeckLinkInput_v7_1_EnableVideoInput(This,displayMode,pixelFormat,flags)       \\r
-    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
-\r
-#define IDeckLinkInput_v7_1_DisableVideoInput(This)    \\r
-    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
-\r
-#define IDeckLinkInput_v7_1_EnableAudioInput(This,sampleRate,sampleType,channelCount)  \\r
-    ( (This)->lpVtbl -> EnableAudioInput(This,sampleRate,sampleType,channelCount) ) \r
-\r
-#define IDeckLinkInput_v7_1_DisableAudioInput(This)    \\r
-    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
-\r
-#define IDeckLinkInput_v7_1_ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale)  \\r
-    ( (This)->lpVtbl -> ReadAudioSamples(This,buffer,sampleFrameCount,sampleFramesRead,audioPacketTime,timeScale) ) \r
-\r
-#define IDeckLinkInput_v7_1_GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) \\r
-    ( (This)->lpVtbl -> GetBufferedAudioSampleFrameCount(This,bufferedSampleCount) ) \r
-\r
-#define IDeckLinkInput_v7_1_StartStreams(This) \\r
-    ( (This)->lpVtbl -> StartStreams(This) ) \r
-\r
-#define IDeckLinkInput_v7_1_StopStreams(This)  \\r
-    ( (This)->lpVtbl -> StopStreams(This) ) \r
-\r
-#define IDeckLinkInput_v7_1_PauseStreams(This) \\r
-    ( (This)->lpVtbl -> PauseStreams(This) ) \r
-\r
-#define IDeckLinkInput_v7_1_SetCallback(This,theCallback)      \\r
-    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
-\r
-#endif /* COBJMACROS */\r
-\r
-\r
-#endif         /* C style interface */\r
-\r
-\r
-\r
-\r
-#endif         /* __IDeckLinkInput_v7_1_INTERFACE_DEFINED__ */\r
-\r
-#endif /* __DeckLinkAPI_LIBRARY_DEFINED__ */\r
-\r
-/* Additional Prototypes for ALL interfaces */\r
-\r
-/* end of Additional Prototypes */\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif\r
-\r
-\r
diff --git a/modules/decklink/interop/DeckLinkAPI_i.c b/modules/decklink/interop/DeckLinkAPI_i.c
deleted file mode 100644 (file)
index 6025889..0000000
+++ /dev/null
@@ -1,259 +0,0 @@
-\r
-\r
-/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */\r
-\r
-/* link this file in with the server and any clients */\r
-\r
-\r
- /* File created by MIDL compiler version 7.00.0555 */\r
-/* at Mon Dec 05 09:41:37 2011\r
- */\r
-/* Compiler settings for interop\DeckLinkAPI.idl:\r
-    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 7.00.0555 \r
-    protocol : dce , ms_ext, c_ext, robust\r
-    error checks: allocation ref bounds_check enum stub_data \r
-    VC __declspec() decoration level: \r
-         __declspec(uuid()), __declspec(selectany), __declspec(novtable)\r
-         DECLSPEC_UUID(), MIDL_INTERFACE()\r
-*/\r
-/* @@MIDL_FILE_HEADING(  ) */\r
-\r
-#pragma warning( disable: 4049 )  /* more than 64k source lines */\r
-\r
-\r
-#ifdef __cplusplus\r
-extern "C"{\r
-#endif \r
-\r
-\r
-#include <rpc.h>\r
-#include <rpcndr.h>\r
-\r
-#ifdef _MIDL_USE_GUIDDEF_\r
-\r
-#ifndef INITGUID\r
-#define INITGUID\r
-#include <guiddef.h>\r
-#undef INITGUID\r
-#else\r
-#include <guiddef.h>\r
-#endif\r
-\r
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \\r
-        DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8)\r
-\r
-#else // !_MIDL_USE_GUIDDEF_\r
-\r
-#ifndef __IID_DEFINED__\r
-#define __IID_DEFINED__\r
-\r
-typedef struct _IID\r
-{\r
-    unsigned long x;\r
-    unsigned short s1;\r
-    unsigned short s2;\r
-    unsigned char  c[8];\r
-} IID;\r
-\r
-#endif // __IID_DEFINED__\r
-\r
-#ifndef CLSID_DEFINED\r
-#define CLSID_DEFINED\r
-typedef IID CLSID;\r
-#endif // CLSID_DEFINED\r
-\r
-#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \\r
-        const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}}\r
-\r
-#endif !_MIDL_USE_GUIDDEF_\r
-\r
-MIDL_DEFINE_GUID(IID, LIBID_DeckLinkAPI,0xD864517A,0xEDD5,0x466D,0x86,0x7D,0xC8,0x19,0xF1,0xC0,0x52,0xBB);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback,0x20AA5225,0x1958,0x47CB,0x82,0x0B,0x80,0xA8,0xD5,0x21,0xA6,0xEE);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback,0xDD04E5EC,0x7415,0x42AB,0xAE,0x4A,0xE8,0x0C,0x4D,0xFC,0x04,0x4A);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkMemoryAllocator,0xB36EB6E7,0x9D29,0x4AA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioOutputCallback,0x403C681B,0x7F46,0x4A12,0xB9,0x93,0x2B,0xB1,0x27,0x08,0x4E,0xE6);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkIterator,0x74E936FC,0xCC28,0x4A67,0x81,0xA0,0x1E,0x94,0xE5,0x2D,0x4E,0x69);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkAPIInformation,0x7BEA3C68,0x730D,0x4322,0xAF,0x34,0x8A,0x71,0x52,0xB5,0x32,0xA4);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator,0x9C88499F,0xF601,0x4021,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode,0x3EB2C1AB,0x0A3D,0x4523,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLink,0x62BFF75D,0x6569,0x4E55,0x8D,0x4D,0x66,0xAA,0x03,0x82,0x9A,0xBC);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput,0xA3EF0963,0x0862,0x44ED,0x92,0xA9,0xEE,0x89,0xAB,0xF4,0x31,0xC7);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput,0x6D40EF78,0x28B9,0x4E21,0x99,0x0D,0x95,0xBB,0x77,0x50,0xA0,0x4F);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkTimecode,0xBC6CFBD3,0x8317,0x4325,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame,0x3F716FE0,0xF023,0x4111,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkMutableVideoFrame,0x69E2639F,0x40DA,0x4E19,0xB6,0xF2,0x20,0xAC,0xE8,0x15,0xC3,0x90);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame3DExtensions,0xDA0F7E4A,0xEDC7,0x48A8,0x9C,0xDD,0x2D,0xB5,0x1C,0x72,0x9C,0xD7);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame,0x05CFE374,0x537C,0x4094,0x9A,0x57,0x68,0x05,0x25,0x11,0x8F,0x44);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrameAncillary,0x732E723C,0xD1A4,0x4E29,0x9E,0x8E,0x4A,0x88,0x79,0x7A,0x00,0x04);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioInputPacket,0xE43D5870,0x2894,0x11DE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkScreenPreviewCallback,0xB1D3F49A,0x85FE,0x4C5D,0x95,0xC8,0x0B,0x5D,0x5D,0xCC,0xD4,0x38);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkGLScreenPreviewHelper,0x504E2209,0xCAC7,0x4C1A,0x9F,0xB4,0xC5,0xBB,0x62,0x74,0xD2,0x2F);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration,0xC679A35B,0x610C,0x4D09,0xB7,0x48,0x1D,0x04,0x78,0x10,0x0F,0xC0);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkAttributes,0xABC11843,0xD966,0x44CB,0x96,0xE2,0xA1,0xCB,0x5D,0x31,0x35,0xC4);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkKeyer,0x89AFCAF5,0x65F8,0x421E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoConversion,0x3BBCB8A2,0xDA2C,0x42D9,0xB5,0xD8,0x88,0x08,0x36,0x44,0xE9,0x9A);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControlStatusCallback,0xE5F693C1,0x4283,0x4716,0xB1,0x8F,0xC1,0x43,0x15,0x21,0x95,0x5B);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl,0x522A9E39,0x0F3C,0x4742,0x94,0xEE,0xD8,0x0D,0xE3,0x35,0xDA,0x1D);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkIterator,0xD9EDA3B3,0x2887,0x41FA,0xB7,0x24,0x01,0x7C,0xF1,0xEB,0x1D,0x37);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkAPIInformation,0x263CA19F,0xED09,0x482E,0x9F,0x9D,0x84,0x00,0x57,0x83,0xA2,0x37);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkGLScreenPreviewHelper,0xF63E77C7,0xB655,0x4A4A,0x9A,0xD0,0x3C,0xA8,0x5D,0x39,0x43,0x43);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoConversion,0x7DBBBB11,0x5B7B,0x467D,0xAE,0xA4,0xCE,0xA4,0x68,0xFD,0x36,0x8C);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControl_v7_9,0xA4D81043,0x0619,0x42B7,0x8E,0xD6,0x60,0x2D,0x29,0x04,0x1D,0xF7);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator_v7_6,0x455D741F,0x1779,0x4800,0x86,0xF5,0x0B,0x5D,0x13,0xD7,0x97,0x51);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode_v7_6,0x87451E84,0x2B7E,0x439E,0xA6,0x29,0x43,0x93,0xEA,0x4A,0x85,0x50);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_6,0x29228142,0xEB8C,0x4141,0xA6,0x21,0xF7,0x40,0x26,0x45,0x09,0x55);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_6,0x300C135A,0x9F43,0x48E2,0x99,0x06,0x6D,0x79,0x11,0xD9,0x3C,0xF1);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkTimecode_v7_6,0xEFB9BCA6,0xA521,0x44F7,0xBD,0x69,0x23,0x32,0xF2,0x4D,0x9E,0xE6);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame_v7_6,0xA8D8238E,0x6B18,0x4196,0x99,0xE1,0x5A,0xF7,0x17,0xB8,0x3D,0x32);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkMutableVideoFrame_v7_6,0x46FCEE00,0xB4E6,0x43D0,0x91,0xC0,0x02,0x3A,0x7F,0xCE,0xB3,0x4F);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_6,0x9A74FA41,0xAE9F,0x47AC,0x8C,0xF4,0x01,0xF4,0x2D,0xD5,0x99,0x65);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkScreenPreviewCallback_v7_6,0x373F499D,0x4B4D,0x4518,0xAD,0x22,0x63,0x54,0xE5,0xA5,0x82,0x5E);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkGLScreenPreviewHelper_v7_6,0xBA575CD9,0xA15E,0x497B,0xB2,0xC2,0xF9,0xAF,0xE7,0xBE,0x4E,0xBA);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoConversion_v7_6,0x3EB504C9,0xF97D,0x40FE,0xA1,0x58,0xD4,0x07,0xD4,0x8C,0xB5,0x3B);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v7_6,0xB8EAD569,0xB764,0x47F0,0xA7,0x3F,0xAE,0x40,0xDF,0x6C,0xBF,0x10);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback_v7_6,0xE763A626,0x4A3C,0x49D1,0xBF,0x13,0xE7,0xAD,0x36,0x92,0xAE,0x52);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_6,0x31D28EE7,0x88B6,0x4CB1,0x89,0x7A,0xCD,0xBF,0x79,0xA2,0x64,0x14);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkGLScreenPreviewHelper_v7_6,0xD398CEE7,0x4434,0x4CA3,0x9B,0xA6,0x5A,0xE3,0x45,0x56,0xB9,0x05);\r
-\r
-\r
-MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoConversion_v7_6,0xFFA84F77,0x73BE,0x4FB7,0xB0,0x3E,0xB5,0xE4,0x4B,0x9F,0x75,0x9B);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_3,0xFD6F311D,0x4D00,0x444B,0x9E,0xD4,0x1F,0x25,0xB5,0x73,0x0A,0xD0);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_3,0x271C65E3,0xC323,0x4344,0xA3,0x0F,0xD9,0x08,0xBC,0xB2,0x0A,0xA3);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_3,0x4973F012,0x9925,0x458C,0x87,0x1C,0x18,0x77,0x4C,0xDB,0xBE,0xCB);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_3,0xCF317790,0x2894,0x11DE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayModeIterator_v7_1,0xB28131B6,0x59AC,0x4857,0xB5,0xAC,0xCD,0x75,0xD5,0x88,0x3E,0x2F);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode_v7_1,0xAF0CD6D5,0x8376,0x435E,0x84,0x33,0x54,0xF9,0xDD,0x53,0x0A,0xC3);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame_v7_1,0x333F3A10,0x8C2D,0x43CF,0xB7,0x9D,0x46,0x56,0x0F,0xEE,0xA1,0xCE);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoInputFrame_v7_1,0xC8B41D95,0x8848,0x40EE,0x9B,0x37,0x6E,0x34,0x17,0xFB,0x11,0x4B);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioInputPacket_v7_1,0xC86DE4F6,0xA29F,0x42E3,0xAB,0x3A,0x13,0x63,0xE2,0x9F,0x07,0x88);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback_v7_1,0xEBD01AFA,0xE4B0,0x49C6,0xA0,0x1D,0xED,0xB9,0xD1,0xB5,0x5F,0xD9);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInputCallback_v7_1,0x7F94F328,0x5ED4,0x4E9F,0x97,0x29,0x76,0xA8,0x6B,0xDC,0x99,0xCC);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput_v7_1,0xAE5B3E9B,0x4E1E,0x4535,0xB6,0xE8,0x48,0x0F,0xF5,0x2F,0x6C,0xE5);\r
-\r
-\r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput_v7_1,0x2B54EDEF,0x5B32,0x429F,0xBA,0x11,0xBB,0x99,0x05,0x96,0xEA,0xCD);\r
-\r
-#undef MIDL_DEFINE_GUID\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-\r
-\r
index 7eb4baa7849d7e59aa67fcb04b1ebca276f40c43..601c39de8fe3f89bbdc4d53a2be4741f1261caa4 100644 (file)
@@ -100,6 +100,8 @@ class decklink_producer : boost::noncopyable, public IDeckLinkInputCallback
                \r
        ffmpeg::frame_muxer                                                                                     muxer_;\r
 \r
+       boost::circular_buffer<size_t>                                                          sync_buffer_;\r
+\r
 public:\r
        decklink_producer(const core::video_format_desc& format_desc, size_t device_index, const safe_ptr<core::frame_factory>& frame_factory, const std::wstring& filter)\r
                : decklink_(get_device(device_index))\r
@@ -109,8 +111,9 @@ public:
                , device_index_(device_index)\r
                , frame_factory_(frame_factory)\r
                , audio_cadence_(frame_factory->get_video_format_desc().audio_cadence)\r
-               , muxer_(format_desc.fps, frame_factory, filter, ffmpeg::display_mode::deinterlace)\r
-       {\r
+               , muxer_(format_desc.fps, frame_factory, filter)\r
+               , sync_buffer_(format_desc.audio_cadence.size())\r
+       {               \r
                hints_ = 0;\r
                frame_buffer_.set_capacity(2);\r
                \r
@@ -174,13 +177,13 @@ public:
 \r
                try\r
                {\r
-                       muxer_.force_deinterlacing((hints_ & core::frame_producer::DEINTERLACE_HINT) != 0);\r
-\r
                        graph_->update_value("tick-time", tick_timer_.elapsed()*format_desc_.fps*0.5);\r
                        tick_timer_.restart();\r
 \r
                        frame_timer_.restart();\r
 \r
+                       // PUSH\r
+\r
                        void* bytes = nullptr;\r
                        if(FAILED(video->GetBytes(&bytes)) || !bytes)\r
                                return S_OK;\r
@@ -195,22 +198,36 @@ public:
                        av_frame->height                        = video->GetHeight();\r
                        av_frame->interlaced_frame      = format_desc_.field_mode != core::field_mode::progressive;\r
                        av_frame->top_field_first       = format_desc_.field_mode == core::field_mode::upper ? 1 : 0;\r
-                                       \r
-                       muxer_.push(av_frame);          \r
-                                                                       \r
+                               \r
+                       std::shared_ptr<core::audio_buffer> audio_buffer;\r
+\r
                        // It is assumed that audio is always equal or ahead of video.\r
-                       if(audio && SUCCEEDED(audio->GetBytes(&bytes)))\r
+                       if(audio && SUCCEEDED(audio->GetBytes(&bytes)) && bytes)\r
                        {\r
                                auto sample_frame_count = audio->GetSampleFrameCount();\r
                                auto audio_data = reinterpret_cast<int32_t*>(bytes);\r
-                               muxer_.push(std::make_shared<core::audio_buffer>(audio_data, audio_data + sample_frame_count*format_desc_.audio_channels));\r
+                               audio_buffer = std::make_shared<core::audio_buffer>(audio_data, audio_data + sample_frame_count*format_desc_.audio_channels);\r
                        }\r
-                       else\r
+                       else                    \r
+                               audio_buffer = std::make_shared<core::audio_buffer>(audio_cadence_.front(), 0);\r
+                       \r
+                       // Note: Uses 1 step rotated cadence for 1001 modes (1602, 1602, 1601, 1602, 1601)\r
+                       // This cadence fills the audio mixer most optimally.\r
+\r
+                       sync_buffer_.push_back(audio_buffer->size());           \r
+                       if(!boost::range::equal(sync_buffer_, audio_cadence_))\r
                        {\r
-                               muxer_.push(std::make_shared<core::audio_buffer>(audio_cadence_.front(), 0));\r
-                               std::rotate(std::begin(audio_cadence_), std::begin(audio_cadence_)+1, std::end(audio_cadence_));\r
+                               CASPAR_LOG(trace) << print() << L" Syncing audio.";\r
+                               return S_OK;\r
                        }\r
 \r
+                       muxer_.push(audio_buffer);\r
+                       muxer_.push(av_frame, hints_);  \r
+                                                                                       \r
+                       boost::range::rotate(audio_cadence_, std::begin(audio_cadence_)+1);\r
+                       \r
+                       // POLL\r
+                       \r
                        for(auto frame = muxer_.poll(); frame; frame = muxer_.poll())\r
                        {\r
                                if(!frame_buffer_.try_push(make_safe_ptr(frame)))\r
index 2167f53f6404a56a6b54d7103d3961067f58920b..6975901a2516809bc4536fe9839b3601756da1fa 100644 (file)
@@ -141,10 +141,7 @@ public:
        virtual safe_ptr<core::basic_frame> receive(int hints) override\r
        {               \r
                frame_timer_.restart();\r
-\r
-               // TODO: buffered frame is not deinterlaced.\r
-               muxer_->force_deinterlacing((hints & core::frame_producer::DEINTERLACE_HINT) != 0);\r
-               \r
+                               \r
                for(int n = 0; n < 16 && frame_buffer_.size() < 2; ++n)\r
                        try_decode_frame(hints);\r
                \r
index 9fb12d076de5a0b957c77237a920f2f746619982..102a66f91b03a702fa4540039b963d3bb82fc429 100644 (file)
@@ -82,9 +82,8 @@ struct frame_muxer::implementation : boost::noncopyable
        filter                                                                                  filter_;\r
        const std::wstring                                                              filter_str_;\r
        bool                                                                                    force_deinterlacing_;\r
-       display_mode::type                                                              force_deinterlacing_mode_;\r
                \r
-       implementation(double in_fps, const safe_ptr<core::frame_factory>& frame_factory, const std::wstring& filter_str, display_mode::type force_deinterlacing_mode)\r
+       implementation(double in_fps, const safe_ptr<core::frame_factory>& frame_factory, const std::wstring& filter_str)\r
                : display_mode_(display_mode::invalid)\r
                , in_fps_(in_fps)\r
                , format_desc_(frame_factory->get_video_format_desc())\r
@@ -94,7 +93,6 @@ struct frame_muxer::implementation : boost::noncopyable
                , frame_factory_(frame_factory)\r
                , filter_str_(filter_str)\r
                , force_deinterlacing_(false)\r
-               , force_deinterlacing_mode_(force_deinterlacing_mode)\r
        {\r
                video_streams_.push(std::queue<safe_ptr<write_frame>>());\r
                audio_streams_.push(core::audio_buffer());\r
@@ -118,8 +116,16 @@ struct frame_muxer::implementation : boost::noncopyable
                }\r
                else\r
                {\r
+                       bool deinterlace_hint = (hints & core::frame_producer::DEINTERLACE_HINT) != 0;\r
+               \r
+                       if(auto_deinterlace_ && force_deinterlacing_ != deinterlace_hint)\r
+                       {\r
+                               force_deinterlacing_ = deinterlace_hint;\r
+                               display_mode_ = display_mode::invalid;\r
+                       }\r
+\r
                        if(display_mode_ == display_mode::invalid)\r
-                               update_display_mode(video_frame);\r
+                               update_display_mode(video_frame, force_deinterlacing_);\r
                                \r
                        if(hints & core::frame_producer::ALPHA_HINT)\r
                                video_frame->format = make_alpha_format(video_frame->format);\r
@@ -282,7 +288,7 @@ struct frame_muxer::implementation : boost::noncopyable
                return samples;\r
        }\r
                                \r
-       void update_display_mode(const std::shared_ptr<AVFrame>& frame)\r
+       void update_display_mode(const std::shared_ptr<AVFrame>& frame, bool force_deinterlace)\r
        {\r
                std::wstring filter_str = filter_str_;\r
 \r
@@ -307,11 +313,13 @@ struct frame_muxer::implementation : boost::noncopyable
                                display_mode_ = display_mode::deinterlace_bob_reinterlace; // The frame will most likely be scaled, we need to deinterlace->reinterlace \r
                        }\r
 \r
-                       if(force_deinterlacing_ && mode != core::field_mode::progressive && display_mode_ != display_mode::deinterlace && display_mode_ != display_mode::deinterlace_bob)                       \r
+                       if(force_deinterlace && mode != core::field_mode::progressive && \r
+                          display_mode_ != display_mode::deinterlace && \r
+                          display_mode_ != display_mode::deinterlace_bob && \r
+                          display_mode_ != display_mode::deinterlace_bob_reinterlace)                  \r
                        {       \r
-                               if(force_deinterlacing_mode_ == display_mode::deinterlace)\r
-                                       CASPAR_LOG(warning) << L"[frame_muxer] Forcing non bob deinterlacing.";\r
-                               display_mode_ = force_deinterlacing_mode_;\r
+                               CASPAR_LOG(info) << L"[frame_muxer] Automatically started non bob-deinterlacing. Consider starting producer with bob-deinterlacing (FILTER DEINTERLACE_BOB) for smoothest playback.";\r
+                               display_mode_ = display_mode::deinterlace;\r
                        }\r
 \r
                        if(display_mode_ == display_mode::deinterlace)\r
@@ -336,22 +344,16 @@ struct frame_muxer::implementation : boost::noncopyable
                                        video_streams_.back().push(make_write_frame(this, make_safe_ptr(av_frame), frame_factory_, 0));\r
                        }\r
                        filter_ = filter(filter_str);\r
-                       CASPAR_LOG(info) << "[frame_muxer] " << display_mode::print(display_mode_) << L" " << print_mode(frame->width, frame->height, in_fps_, frame->interlaced_frame > 0);\r
+                       CASPAR_LOG(info) << L"[frame_muxer] " << display_mode::print(display_mode_) << L" " << print_mode(frame->width, frame->height, in_fps_, frame->interlaced_frame > 0);\r
                }\r
        }\r
-\r
-       void force_deinterlacing(bool value)\r
-       {\r
-               if(!auto_deinterlace_ || value == force_deinterlacing_)\r
-                       return;\r
-\r
-               force_deinterlacing_ = value;\r
-               display_mode_ = display_mode::invalid;\r
-       }\r
-\r
+       \r
        uint32_t calc_nb_frames(uint32_t nb_frames) const\r
        {\r
                uint64_t nb_frames2 = nb_frames;\r
+               \r
+               if(filter_.is_double_rate()) // Take into account transformations in filter.\r
+                       nb_frames2 *= 2;\r
 \r
                switch(display_mode_) // Take into account transformation in run.\r
                {\r
@@ -365,21 +367,17 @@ struct frame_muxer::implementation : boost::noncopyable
                        break;\r
                }\r
 \r
-               if(filter_.is_double_rate()) // Take into account transformations in filter.\r
-                       nb_frames2 *= 2;\r
-\r
                return static_cast<uint32_t>(nb_frames2);\r
        }\r
 };\r
 \r
-frame_muxer::frame_muxer(double in_fps, const safe_ptr<core::frame_factory>& frame_factory, const std::wstring& filter, display_mode::type force_deinterlacing_mode)\r
-       : impl_(new implementation(in_fps, frame_factory, filter, force_deinterlacing_mode)){}\r
+frame_muxer::frame_muxer(double in_fps, const safe_ptr<core::frame_factory>& frame_factory, const std::wstring& filter)\r
+       : impl_(new implementation(in_fps, frame_factory, filter)){}\r
 void frame_muxer::push(const std::shared_ptr<AVFrame>& video_frame, int hints){impl_->push(video_frame, hints);}\r
 void frame_muxer::push(const std::shared_ptr<core::audio_buffer>& audio_samples){return impl_->push(audio_samples);}\r
 std::shared_ptr<basic_frame> frame_muxer::poll(){return impl_->poll();}\r
 uint32_t frame_muxer::calc_nb_frames(uint32_t nb_frames) const {return impl_->calc_nb_frames(nb_frames);}\r
 bool frame_muxer::video_ready() const{return impl_->video_ready();}\r
 bool frame_muxer::audio_ready() const{return impl_->audio_ready();}\r
-void frame_muxer::force_deinterlacing(bool value){impl_->force_deinterlacing(value);}\r
 \r
 }}
\ No newline at end of file
index b98ab9bfed962c80bab937f2dfd90301c3e85091..50759aea0e4771281c5cd8f7f960281e1317a354 100644 (file)
@@ -48,7 +48,7 @@ namespace ffmpeg {
 class frame_muxer : boost::noncopyable\r
 {\r
 public:\r
-       frame_muxer(double in_fps, const safe_ptr<core::frame_factory>& frame_factory, const std::wstring& filter = L"", display_mode::type force_deinterlace_mode = display_mode::deinterlace_bob_reinterlace);\r
+       frame_muxer(double in_fps, const safe_ptr<core::frame_factory>& frame_factory, const std::wstring& filter = L"");\r
        \r
        void push(const std::shared_ptr<AVFrame>& video_frame, int hints = 0);\r
        void push(const std::shared_ptr<core::audio_buffer>& audio_samples);\r
@@ -59,9 +59,6 @@ public:
        std::shared_ptr<core::basic_frame> poll();\r
 \r
        uint32_t calc_nb_frames(uint32_t nb_frames) const;\r
-\r
-       void force_deinterlacing(bool value);\r
-\r
 private:\r
        struct implementation;\r
        safe_ptr<implementation> impl_;\r
index 2d2d2f8a7b93cc09608f665772df4c932a5ec9f8..c08ef3264f2f3434edf425a9f13ab7385e4d4c03 100644 (file)
@@ -6,14 +6,18 @@
     <data-path>D:\casparcg\_data\</data-path>\r
     <template-path>D:\casparcg\_templates\</template-path>\r
   </paths>\r
+  <log-level>trace</log-level>\r
   <channels>\r
     <channel>\r
       <video-mode>PAL</video-mode>\r
       <consumers>\r
-        <screen>\r
-          <device>2</device>\r
-        </screen>\r
-        <system-audio></system-audio>\r
+        <bluefish>\r
+          <device>1</device>\r
+          <embedded-audio>true</embedded-audio>\r
+        </bluefish>\r
+        <decklink>\r
+          <device>1</device>\r
+        </decklink>\r
       </consumers>\r
     </channel>\r
   </channels>\r
@@ -26,6 +30,7 @@
 </configuration>\r
 \r
 <!--\r
+<log-level>trace [trace|debug|info|warning|error]</log-level>\r
 <blend-modes>false [true|false]</blend-modes>\r
 <auto-transcode>true [true|false]</auto-transcode>\r
 <pipeline-tokens>2 [1..]</pipeline-tokens>\r
index 70d705f8ad2c1c3103f9a115315326f276abd886..89dec91afff97fd0855602951aac078c775586a7 100644 (file)
@@ -117,7 +117,9 @@ void setup_console_window()
 \r
 void print_info()\r
 {\r
+       CASPAR_LOG(info) << L"################################################################################";\r
        CASPAR_LOG(info) << L"Copyright (c) 2010 Sveriges Television AB, www.casparcg.com, <info@casparcg.com>";\r
+       CASPAR_LOG(info) << L"################################################################################";\r
        CASPAR_LOG(info) << L"Starting CasparCG Video and Graphics Playout Server " << caspar::env::version();\r
        CASPAR_LOG(info) << L"on " << caspar::get_win_product_name() << L" " << caspar::get_win_sp_version();\r
        CASPAR_LOG(info) << caspar::get_cpu_info();\r
@@ -177,9 +179,7 @@ int main(int argc, wchar_t* argv[])
 \r
        // Install structured exception handler.\r
        caspar::win32_exception::install_handler();\r
-\r
-       caspar::log::set_log_level(L"debug");\r
-                       \r
+                               \r
        // Increase time precision. This will increase accuracy of function like Sleep(1) from 10 ms to 1 ms.\r
        struct inc_prec\r
        {\r
@@ -205,6 +205,8 @@ int main(int argc, wchar_t* argv[])
                // Configure environment properties from configuration.\r
                caspar::env::configure(L"casparcg.config");\r
                                \r
+               caspar::log::set_log_level(caspar::env::properties().get(L"configuration.log-level", L"debug"));\r
+\r
        #ifdef _DEBUG\r
                if(caspar::env::properties().get(L"configuration.debugging.remote", false))\r
                        MessageBox(nullptr, TEXT("Now is the time to connect for remote debugging..."), TEXT("Debug"), MB_OK | MB_TOPMOST);\r