decklink: Update Windows SDK to a newer version
authorAxel Menzel <AMenzel@xion-medical.com>
Fri, 27 Jan 2017 17:03:33 +0000 (19:03 +0200)
committerSebastian Dröge <sebastian@centricular.com>
Tue, 31 Jan 2017 12:56:34 +0000 (14:56 +0200)
sys/decklink/win/DeckLinkAPI.h
sys/decklink/win/DeckLinkAPIDispatch.cpp
sys/decklink/win/DeckLinkAPI_i.c

index 90d1a2885665613cedf1e2aeac59ac8cce9b354a..f0058202a6ddbf4366daeaf0d2663429e112178b 100644 (file)
@@ -3,11 +3,11 @@
 /* this ALWAYS GENERATED file contains the definitions for the interfaces */\r
 \r
 \r
- /* File created by MIDL compiler version 8.00.0595 */\r
-/* at Wed Dec 03 06:04:46 2014\r
+ /* File created by MIDL compiler version 8.00.0603 */\r
+/* at Wed Jan 25 17:42:19 2017\r
  */\r
-/* Compiler settings for DeckLinkAPI.idl:\r
-    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0595 \r
+/* Compiler settings for ..\..\..\..\..\..\blackmagic\SDK\Win\include\DeckLinkAPI.idl:\r
+    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.00.0603 \r
     protocol : dce , ms_ext, c_ext, robust\r
     error checks: allocation ref bounds_check enum stub_data \r
     VC __declspec() decoration level: \r
@@ -32,8 +32,8 @@
 #endif // __RPCNDR_H_VERSION__\r
 \r
 \r
-#ifndef __DecklinkAPI_h__\r
-#define __DecklinkAPI_h__\r
+#ifndef __DeckLinkAPI_h_h__\r
+#define __DeckLinkAPI_h_h__\r
 \r
 #if defined(_MSC_VER) && (_MSC_VER >= 1020)\r
 #pragma once\r
@@ -76,6 +76,13 @@ typedef interface IDeckLinkConfiguration IDeckLinkConfiguration;
 #endif         /* __IDeckLinkConfiguration_FWD_DEFINED__ */\r
 \r
 \r
+#ifndef __IDeckLinkEncoderConfiguration_FWD_DEFINED__\r
+#define __IDeckLinkEncoderConfiguration_FWD_DEFINED__\r
+typedef interface IDeckLinkEncoderConfiguration IDeckLinkEncoderConfiguration;\r
+\r
+#endif         /* __IDeckLinkEncoderConfiguration_FWD_DEFINED__ */\r
+\r
+\r
 #ifndef __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__\r
 #define __IDeckLinkDeckControlStatusCallback_FWD_DEFINED__\r
 typedef interface IDeckLinkDeckControlStatusCallback IDeckLinkDeckControlStatusCallback;\r
@@ -205,6 +212,13 @@ typedef interface IDeckLinkInputCallback IDeckLinkInputCallback;
 #endif         /* __IDeckLinkInputCallback_FWD_DEFINED__ */\r
 \r
 \r
+#ifndef __IDeckLinkEncoderInputCallback_FWD_DEFINED__\r
+#define __IDeckLinkEncoderInputCallback_FWD_DEFINED__\r
+typedef interface IDeckLinkEncoderInputCallback IDeckLinkEncoderInputCallback;\r
+\r
+#endif         /* __IDeckLinkEncoderInputCallback_FWD_DEFINED__ */\r
+\r
+\r
 #ifndef __IDeckLinkMemoryAllocator_FWD_DEFINED__\r
 #define __IDeckLinkMemoryAllocator_FWD_DEFINED__\r
 typedef interface IDeckLinkMemoryAllocator IDeckLinkMemoryAllocator;\r
@@ -247,6 +261,13 @@ typedef interface IDeckLinkInput IDeckLinkInput;
 #endif         /* __IDeckLinkInput_FWD_DEFINED__ */\r
 \r
 \r
+#ifndef __IDeckLinkEncoderInput_FWD_DEFINED__\r
+#define __IDeckLinkEncoderInput_FWD_DEFINED__\r
+typedef interface IDeckLinkEncoderInput IDeckLinkEncoderInput;\r
+\r
+#endif         /* __IDeckLinkEncoderInput_FWD_DEFINED__ */\r
+\r
+\r
 #ifndef __IDeckLinkVideoFrame_FWD_DEFINED__\r
 #define __IDeckLinkVideoFrame_FWD_DEFINED__\r
 typedef interface IDeckLinkVideoFrame IDeckLinkVideoFrame;\r
@@ -268,6 +289,13 @@ typedef interface IDeckLinkVideoFrame3DExtensions IDeckLinkVideoFrame3DExtension
 #endif         /* __IDeckLinkVideoFrame3DExtensions_FWD_DEFINED__ */\r
 \r
 \r
+#ifndef __IDeckLinkVideoFrameMetadataExtensions_FWD_DEFINED__\r
+#define __IDeckLinkVideoFrameMetadataExtensions_FWD_DEFINED__\r
+typedef interface IDeckLinkVideoFrameMetadataExtensions IDeckLinkVideoFrameMetadataExtensions;\r
+\r
+#endif         /* __IDeckLinkVideoFrameMetadataExtensions_FWD_DEFINED__ */\r
+\r
+\r
 #ifndef __IDeckLinkVideoInputFrame_FWD_DEFINED__\r
 #define __IDeckLinkVideoInputFrame_FWD_DEFINED__\r
 typedef interface IDeckLinkVideoInputFrame IDeckLinkVideoInputFrame;\r
@@ -282,6 +310,34 @@ typedef interface IDeckLinkVideoFrameAncillary IDeckLinkVideoFrameAncillary;
 #endif         /* __IDeckLinkVideoFrameAncillary_FWD_DEFINED__ */\r
 \r
 \r
+#ifndef __IDeckLinkEncoderPacket_FWD_DEFINED__\r
+#define __IDeckLinkEncoderPacket_FWD_DEFINED__\r
+typedef interface IDeckLinkEncoderPacket IDeckLinkEncoderPacket;\r
+\r
+#endif         /* __IDeckLinkEncoderPacket_FWD_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkEncoderVideoPacket_FWD_DEFINED__\r
+#define __IDeckLinkEncoderVideoPacket_FWD_DEFINED__\r
+typedef interface IDeckLinkEncoderVideoPacket IDeckLinkEncoderVideoPacket;\r
+\r
+#endif         /* __IDeckLinkEncoderVideoPacket_FWD_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkEncoderAudioPacket_FWD_DEFINED__\r
+#define __IDeckLinkEncoderAudioPacket_FWD_DEFINED__\r
+typedef interface IDeckLinkEncoderAudioPacket IDeckLinkEncoderAudioPacket;\r
+\r
+#endif         /* __IDeckLinkEncoderAudioPacket_FWD_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkH265NALPacket_FWD_DEFINED__\r
+#define __IDeckLinkH265NALPacket_FWD_DEFINED__\r
+typedef interface IDeckLinkH265NALPacket IDeckLinkH265NALPacket;\r
+\r
+#endif         /* __IDeckLinkH265NALPacket_FWD_DEFINED__ */\r
+\r
+\r
 #ifndef __IDeckLinkAudioInputPacket_FWD_DEFINED__\r
 #define __IDeckLinkAudioInputPacket_FWD_DEFINED__\r
 typedef interface IDeckLinkAudioInputPacket IDeckLinkAudioInputPacket;\r
@@ -331,6 +387,13 @@ typedef interface IDeckLinkAttributes IDeckLinkAttributes;
 #endif         /* __IDeckLinkAttributes_FWD_DEFINED__ */\r
 \r
 \r
+#ifndef __IDeckLinkStatus_FWD_DEFINED__\r
+#define __IDeckLinkStatus_FWD_DEFINED__\r
+typedef interface IDeckLinkStatus IDeckLinkStatus;\r
+\r
+#endif         /* __IDeckLinkStatus_FWD_DEFINED__ */\r
+\r
+\r
 #ifndef __IDeckLinkKeyer_FWD_DEFINED__\r
 #define __IDeckLinkKeyer_FWD_DEFINED__\r
 typedef interface IDeckLinkKeyer IDeckLinkKeyer;\r
@@ -431,6 +494,20 @@ typedef struct CDeckLinkDiscovery CDeckLinkDiscovery;
 #endif         /* __CDeckLinkDiscovery_FWD_DEFINED__ */\r
 \r
 \r
+#ifndef __IDeckLinkEncoderConfiguration_v10_5_FWD_DEFINED__\r
+#define __IDeckLinkEncoderConfiguration_v10_5_FWD_DEFINED__\r
+typedef interface IDeckLinkEncoderConfiguration_v10_5 IDeckLinkEncoderConfiguration_v10_5;\r
+\r
+#endif         /* __IDeckLinkEncoderConfiguration_v10_5_FWD_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkConfiguration_v10_4_FWD_DEFINED__\r
+#define __IDeckLinkConfiguration_v10_4_FWD_DEFINED__\r
+typedef interface IDeckLinkConfiguration_v10_4 IDeckLinkConfiguration_v10_4;\r
+\r
+#endif         /* __IDeckLinkConfiguration_v10_4_FWD_DEFINED__ */\r
+\r
+\r
 #ifndef __IDeckLinkConfiguration_v10_2_FWD_DEFINED__\r
 #define __IDeckLinkConfiguration_v10_2_FWD_DEFINED__\r
 typedef interface IDeckLinkConfiguration_v10_2 IDeckLinkConfiguration_v10_2;\r
@@ -731,11 +808,11 @@ typedef LONGLONG BMDTimeValue;
 \r
 typedef LONGLONG BMDTimeScale;\r
 \r
-typedef unsigned long BMDTimecodeBCD;\r
+typedef unsigned int BMDTimecodeBCD;\r
 \r
-typedef unsigned long BMDTimecodeUserBits;\r
+typedef unsigned int BMDTimecodeUserBits;\r
 \r
-typedef unsigned long BMDTimecodeFlags;\r
+typedef unsigned int BMDTimecodeFlags;\r
 #if 0\r
 typedef enum _BMDTimecodeFlags BMDTimecodeFlags;\r
 \r
@@ -745,7 +822,8 @@ enum _BMDTimecodeFlags
     {\r
         bmdTimecodeFlagDefault = 0,\r
         bmdTimecodeIsDropFrame = ( 1 << 0 ) ,\r
-        bmdTimecodeFieldMark   = ( 1 << 1 ) \r
+        bmdTimecodeFieldMark   = ( 1 << 1 ) ,\r
+        bmdTimecodeColorFrame  = ( 1 << 2 ) \r
     } ;\r
 typedef /* [v1_enum] */ \r
 enum _BMDVideoConnection\r
@@ -765,11 +843,20 @@ enum _BMDAudioConnection
         bmdAudioConnectionAESEBU       = ( 1 << 1 ) ,\r
         bmdAudioConnectionAnalog       = ( 1 << 2 ) ,\r
         bmdAudioConnectionAnalogXLR    = ( 1 << 3 ) ,\r
-        bmdAudioConnectionAnalogRCA    = ( 1 << 4 ) \r
+        bmdAudioConnectionAnalogRCA    = ( 1 << 4 ) ,\r
+        bmdAudioConnectionMicrophone   = ( 1 << 5 ) ,\r
+        bmdAudioConnectionHeadphones   = ( 1 << 6 ) \r
     }  BMDAudioConnection;\r
 \r
+typedef /* [v1_enum] */ \r
+enum _BMDDeckControlConnection\r
+    {\r
+        bmdDeckControlConnectionRS422Remote1   = ( 1 << 0 ) ,\r
+        bmdDeckControlConnectionRS422Remote2   = ( 1 << 1 ) \r
+    }  BMDDeckControlConnection;\r
+\r
 \r
-typedef unsigned long BMDDisplayModeFlags;\r
+typedef unsigned int BMDDisplayModeFlags;\r
 #if 0\r
 typedef enum _BMDDisplayModeFlags BMDDisplayModeFlags;\r
 \r
@@ -837,7 +924,9 @@ enum _BMDPixelFormat
         bmdFormat12BitRGB      = 0x52313242,\r
         bmdFormat12BitRGBLE    = 0x5231324c,\r
         bmdFormat10BitRGBXLE   = 0x5231306c,\r
-        bmdFormat10BitRGBX     = 0x52313062\r
+        bmdFormat10BitRGBX     = 0x52313062,\r
+        bmdFormatH265  = 0x68657631,\r
+        bmdFormatDNxHR = 0x41566468\r
     }  BMDPixelFormat;\r
 \r
 /* [v1_enum] */ \r
@@ -862,13 +951,15 @@ enum _BMDDeckLinkConfigurationID
         bmdDeckLinkConfigHDMI3DPackingFormat   = 0x33647066,\r
         bmdDeckLinkConfigBypass        = 0x62797073,\r
         bmdDeckLinkConfigClockTimingAdjustment = 0x63746164,\r
+        bmdDeckLinkConfigDuplexMode    = 0x64757078,\r
         bmdDeckLinkConfigAnalogAudioConsumerLevels     = 0x6161636c,\r
         bmdDeckLinkConfigFieldFlickerRemoval   = 0x66646672,\r
         bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion      = 0x746f3539,\r
         bmdDeckLinkConfig444SDIVideoOutput     = 0x3434346f,\r
-        bmdDeckLinkConfigSingleLinkVideoOutput = 0x73676c6f,\r
         bmdDeckLinkConfigBlackVideoOutputDuringCapture = 0x62766f63,\r
         bmdDeckLinkConfigLowLatencyVideoOutput = 0x6c6c766f,\r
+        bmdDeckLinkConfigDownConversionOnAllAnalogOutput       = 0x6361616f,\r
+        bmdDeckLinkConfigSMPTELevelAOutput     = 0x736d7461,\r
         bmdDeckLinkConfigVideoOutputConnection = 0x766f636e,\r
         bmdDeckLinkConfigVideoOutputConversionMode     = 0x766f636d,\r
         bmdDeckLinkConfigAnalogVideoOutputFlags        = 0x61766f66,\r
@@ -876,6 +967,7 @@ enum _BMDDeckLinkConfigurationID
         bmdDeckLinkConfigVideoOutputIdleOperation      = 0x766f696f,\r
         bmdDeckLinkConfigDefaultVideoOutputMode        = 0x64766f6d,\r
         bmdDeckLinkConfigDefaultVideoOutputModeFlags   = 0x64766f66,\r
+        bmdDeckLinkConfigSDIOutputLinkConfiguration    = 0x736f6c63,\r
         bmdDeckLinkConfigVideoOutputComponentLumaGain  = 0x6f636c67,\r
         bmdDeckLinkConfigVideoOutputComponentChromaBlueGain    = 0x6f636362,\r
         bmdDeckLinkConfigVideoOutputComponentChromaRedGain     = 0x6f636372,\r
@@ -885,6 +977,7 @@ enum _BMDDeckLinkConfigurationID
         bmdDeckLinkConfigVideoOutputSVideoChromaGain   = 0x6f736367,\r
         bmdDeckLinkConfigVideoInputScanning    = 0x76697363,\r
         bmdDeckLinkConfigUseDedicatedLTCInput  = 0x646c7463,\r
+        bmdDeckLinkConfigSDIInput3DPayloadOverride     = 0x33646473,\r
         bmdDeckLinkConfigVideoInputConnection  = 0x7669636e,\r
         bmdDeckLinkConfigAnalogVideoInputFlags = 0x61766966,\r
         bmdDeckLinkConfigVideoInputConversionMode      = 0x7669636d,\r
@@ -900,23 +993,46 @@ enum _BMDDeckLinkConfigurationID
         bmdDeckLinkConfigVideoInputCompositeChromaGain = 0x69696367,\r
         bmdDeckLinkConfigVideoInputSVideoLumaGain      = 0x69736c67,\r
         bmdDeckLinkConfigVideoInputSVideoChromaGain    = 0x69736367,\r
+        bmdDeckLinkConfigMicrophonePhantomPower        = 0x6d706870,\r
         bmdDeckLinkConfigAudioInputConnection  = 0x6169636e,\r
         bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = 0x61697331,\r
         bmdDeckLinkConfigAnalogAudioInputScaleChannel2 = 0x61697332,\r
         bmdDeckLinkConfigAnalogAudioInputScaleChannel3 = 0x61697333,\r
         bmdDeckLinkConfigAnalogAudioInputScaleChannel4 = 0x61697334,\r
         bmdDeckLinkConfigDigitalAudioInputScale        = 0x64616973,\r
+        bmdDeckLinkConfigMicrophoneInputGain   = 0x6d696367,\r
         bmdDeckLinkConfigAudioOutputAESAnalogSwitch    = 0x616f6161,\r
         bmdDeckLinkConfigAnalogAudioOutputScaleChannel1        = 0x616f7331,\r
         bmdDeckLinkConfigAnalogAudioOutputScaleChannel2        = 0x616f7332,\r
         bmdDeckLinkConfigAnalogAudioOutputScaleChannel3        = 0x616f7333,\r
         bmdDeckLinkConfigAnalogAudioOutputScaleChannel4        = 0x616f7334,\r
-        bmdDeckLinkConfigDigitalAudioOutputScale       = 0x64616f73\r
+        bmdDeckLinkConfigDigitalAudioOutputScale       = 0x64616f73,\r
+        bmdDeckLinkConfigHeadphoneVolume       = 0x68766f6c,\r
+        bmdDeckLinkConfigDeviceInformationLabel        = 0x64696c61,\r
+        bmdDeckLinkConfigDeviceInformationSerialNumber = 0x6469736e,\r
+        bmdDeckLinkConfigDeviceInformationCompany      = 0x6469636f,\r
+        bmdDeckLinkConfigDeviceInformationPhone        = 0x64697068,\r
+        bmdDeckLinkConfigDeviceInformationEmail        = 0x6469656d,\r
+        bmdDeckLinkConfigDeviceInformationDate = 0x64696461,\r
+        bmdDeckLinkConfigDeckControlConnection = 0x6463636f\r
     }  BMDDeckLinkConfigurationID;\r
 \r
+typedef /* [v1_enum] */ \r
+enum _BMDDeckLinkEncoderConfigurationID\r
+    {\r
+        bmdDeckLinkEncoderConfigPreferredBitDepth      = 0x65706272,\r
+        bmdDeckLinkEncoderConfigFrameCodingMode        = 0x6566636d,\r
+        bmdDeckLinkEncoderConfigH265TargetBitrate      = 0x68746272,\r
+        bmdDeckLinkEncoderConfigDNxHRCompressionID     = 0x64636964,\r
+        bmdDeckLinkEncoderConfigDNxHRLevel     = 0x646c6576,\r
+        bmdDeckLinkEncoderConfigMPEG4SampleDescription = 0x73747345,\r
+        bmdDeckLinkEncoderConfigMPEG4CodecSpecificDesc = 0x65736473\r
+    }  BMDDeckLinkEncoderConfigurationID;\r
+\r
+\r
 \r
-typedef unsigned long BMDDeckControlStatusFlags;\r
-typedef unsigned long BMDDeckControlExportModeOpsFlags;\r
+typedef unsigned int BMDDeckControlStatusFlags;\r
+typedef unsigned int BMDDeckControlExportModeOpsFlags;\r
 #if 0\r
 typedef enum _BMDDeckControlStatusFlags BMDDeckControlStatusFlags;\r
 \r
@@ -1112,13 +1228,13 @@ enum _BMDStreamingEncodingModePropertyID
 \r
 \r
 \r
-typedef unsigned long BMDFrameFlags;\r
-typedef unsigned long BMDVideoInputFlags;\r
-typedef unsigned long BMDVideoInputFormatChangedEvents;\r
-typedef unsigned long BMDDetectedVideoInputFormatFlags;\r
-typedef unsigned long BMDDeckLinkCapturePassthroughMode;\r
-typedef unsigned long BMDAnalogVideoFlags;\r
-typedef unsigned long BMDDeviceBusyState;\r
+typedef unsigned int BMDFrameFlags;\r
+typedef unsigned int BMDVideoInputFlags;\r
+typedef unsigned int BMDVideoInputFormatChangedEvents;\r
+typedef unsigned int BMDDetectedVideoInputFormatFlags;\r
+typedef unsigned int BMDDeckLinkCapturePassthroughMode;\r
+typedef unsigned int BMDAnalogVideoFlags;\r
+typedef unsigned int BMDDeviceBusyState;\r
 #if 0\r
 typedef enum _BMDFrameFlags BMDFrameFlags;\r
 \r
@@ -1145,11 +1261,19 @@ enum _BMDVideoOutputFlags
         bmdVideoOutputDualStream3D     = ( 1 << 4 ) \r
     }  BMDVideoOutputFlags;\r
 \r
+typedef /* [v1_enum] */ \r
+enum _BMDPacketType\r
+    {\r
+        bmdPacketTypeStreamInterruptedMarker   = 0x73696e74,\r
+        bmdPacketTypeStreamData        = 0x73646174\r
+    }  BMDPacketType;\r
+\r
 /* [v1_enum] */ \r
 enum _BMDFrameFlags\r
     {\r
         bmdFrameFlagDefault    = 0,\r
         bmdFrameFlagFlipVertical       = ( 1 << 0 ) ,\r
+        bmdFrameContainsHDRMetadata    = ( 1 << 1 ) ,\r
         bmdFrameHasNoInputSource       = ( 1 << 31 ) \r
     } ;\r
 /* [v1_enum] */ \r
@@ -1176,6 +1300,7 @@ enum _BMDDetectedVideoInputFormatFlags
 /* [v1_enum] */ \r
 enum _BMDDeckLinkCapturePassthroughMode\r
     {\r
+        bmdDeckLinkCapturePassthroughModeDisabled      = 0x70646973,\r
         bmdDeckLinkCapturePassthroughModeDirect        = 0x70646972,\r
         bmdDeckLinkCapturePassthroughModeCleanSwitch   = 0x70636c6e\r
     } ;\r
@@ -1195,6 +1320,12 @@ enum _BMDReferenceStatus
         bmdReferenceLocked     = ( 1 << 1 ) \r
     }  BMDReferenceStatus;\r
 \r
+typedef /* [v1_enum] */ \r
+enum _BMDAudioFormat\r
+    {\r
+        bmdAudioFormatPCM      = 0x6c70636d\r
+    }  BMDAudioFormat;\r
+\r
 typedef /* [v1_enum] */ \r
 enum _BMDAudioSampleRate\r
     {\r
@@ -1295,10 +1426,67 @@ typedef /* [v1_enum] */
 enum _BMDIdleVideoOutputOperation\r
     {\r
         bmdIdleVideoOutputBlack        = 0x626c6163,\r
-        bmdIdleVideoOutputLastFrame    = 0x6c616661,\r
-        bmdIdleVideoOutputDesktop      = 0x6465736b\r
+        bmdIdleVideoOutputLastFrame    = 0x6c616661\r
     }  BMDIdleVideoOutputOperation;\r
 \r
+typedef /* [v1_enum] */ \r
+enum _BMDVideoEncoderFrameCodingMode\r
+    {\r
+        bmdVideoEncoderFrameCodingModeInter    = 0x696e7465,\r
+        bmdVideoEncoderFrameCodingModeIntra    = 0x696e7472\r
+    }  BMDVideoEncoderFrameCodingMode;\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDDNxHRLevel\r
+    {\r
+        bmdDNxHRLevelSQ        = 0x646e7371,\r
+        bmdDNxHRLevelLB        = 0x646e6c62,\r
+        bmdDNxHRLevelHQ        = 0x646e6871,\r
+        bmdDNxHRLevelHQX       = 0x64687178,\r
+        bmdDNxHRLevel444       = 0x64343434\r
+    }  BMDDNxHRLevel;\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDLinkConfiguration\r
+    {\r
+        bmdLinkConfigurationSingleLink = 0x6c63736c,\r
+        bmdLinkConfigurationDualLink   = 0x6c63646c,\r
+        bmdLinkConfigurationQuadLink   = 0x6c63716c\r
+    }  BMDLinkConfiguration;\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDDeviceInterface\r
+    {\r
+        bmdDeviceInterfacePCI  = 0x70636920,\r
+        bmdDeviceInterfaceUSB  = 0x75736220,\r
+        bmdDeviceInterfaceThunderbolt  = 0x7468756e\r
+    }  BMDDeviceInterface;\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDDeckLinkFrameMetadataID\r
+    {\r
+        bmdDeckLinkFrameMetadataHDRElectroOpticalTransferFunc  = 0x656f7466,\r
+        bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedX        = 0x68647278,\r
+        bmdDeckLinkFrameMetadataHDRDisplayPrimariesRedY        = 0x68647279,\r
+        bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenX      = 0x68646778,\r
+        bmdDeckLinkFrameMetadataHDRDisplayPrimariesGreenY      = 0x68646779,\r
+        bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueX       = 0x68646278,\r
+        bmdDeckLinkFrameMetadataHDRDisplayPrimariesBlueY       = 0x68646279,\r
+        bmdDeckLinkFrameMetadataHDRWhitePointX = 0x68647778,\r
+        bmdDeckLinkFrameMetadataHDRWhitePointY = 0x68647779,\r
+        bmdDeckLinkFrameMetadataHDRMaxDisplayMasteringLuminance        = 0x68646d6c,\r
+        bmdDeckLinkFrameMetadataHDRMinDisplayMasteringLuminance        = 0x686d696c,\r
+        bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel    = 0x6d636c6c,\r
+        bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel       = 0x66616c6c\r
+    }  BMDDeckLinkFrameMetadataID;\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDDuplexMode\r
+    {\r
+        bmdDuplexModeFull      = 0x66647570,\r
+        bmdDuplexModeHalf      = 0x68647570\r
+    }  BMDDuplexMode;\r
+\r
 typedef /* [v1_enum] */ \r
 enum _BMDDeckLinkAttributeID\r
     {\r
@@ -1312,27 +1500,46 @@ enum _BMDDeckLinkAttributeID
         BMDDeckLinkCanOnlyAdjustOverallVideoOutputGain = 0x6f766f67,\r
         BMDDeckLinkHasVideoInputAntiAliasingFilter     = 0x6161666c,\r
         BMDDeckLinkHasBypass   = 0x62797073,\r
-        BMDDeckLinkSupportsDesktopDisplay      = 0x65787464,\r
         BMDDeckLinkSupportsClockTimingAdjustment       = 0x63746164,\r
         BMDDeckLinkSupportsFullDuplex  = 0x66647570,\r
         BMDDeckLinkSupportsFullFrameReferenceInputTimingOffset = 0x6672696e,\r
+        BMDDeckLinkSupportsSMPTELevelAOutput   = 0x6c766c61,\r
+        BMDDeckLinkSupportsDualLinkSDI = 0x73646c73,\r
+        BMDDeckLinkSupportsQuadLinkSDI = 0x73716c73,\r
+        BMDDeckLinkSupportsIdleOutput  = 0x69646f75,\r
+        BMDDeckLinkHasLTCTimecodeInput = 0x686c7463,\r
+        BMDDeckLinkSupportsDuplexModeConfiguration     = 0x64757078,\r
+        BMDDeckLinkSupportsHDRMetadata = 0x6864726d,\r
         BMDDeckLinkMaximumAudioChannels        = 0x6d616368,\r
         BMDDeckLinkMaximumAnalogAudioChannels  = 0x61616368,\r
         BMDDeckLinkNumberOfSubDevices  = 0x6e736264,\r
         BMDDeckLinkSubDeviceIndex      = 0x73756269,\r
         BMDDeckLinkPersistentID        = 0x70656964,\r
+        BMDDeckLinkDeviceGroupID       = 0x64676964,\r
         BMDDeckLinkTopologicalID       = 0x746f6964,\r
         BMDDeckLinkVideoOutputConnections      = 0x766f636e,\r
         BMDDeckLinkVideoInputConnections       = 0x7669636e,\r
         BMDDeckLinkAudioOutputConnections      = 0x616f636e,\r
         BMDDeckLinkAudioInputConnections       = 0x6169636e,\r
-        BMDDeckLinkDeviceBusyState     = 0x64627374,\r
         BMDDeckLinkVideoIOSupport      = 0x76696f73,\r
+        BMDDeckLinkDeckControlConnections      = 0x6463636e,\r
+        BMDDeckLinkDeviceInterface     = 0x64627573,\r
+        BMDDeckLinkAudioInputRCAChannelCount   = 0x61697263,\r
+        BMDDeckLinkAudioInputXLRChannelCount   = 0x61697863,\r
+        BMDDeckLinkAudioOutputRCAChannelCount  = 0x616f7263,\r
+        BMDDeckLinkAudioOutputXLRChannelCount  = 0x616f7863,\r
+        BMDDeckLinkPairedDevicePersistentID    = 0x70706964,\r
         BMDDeckLinkVideoInputGainMinimum       = 0x7669676d,\r
         BMDDeckLinkVideoInputGainMaximum       = 0x76696778,\r
         BMDDeckLinkVideoOutputGainMinimum      = 0x766f676d,\r
         BMDDeckLinkVideoOutputGainMaximum      = 0x766f6778,\r
-        BMDDeckLinkSerialPortDeviceName        = 0x736c706e\r
+        BMDDeckLinkMicrophoneInputGainMinimum  = 0x6d69676d,\r
+        BMDDeckLinkMicrophoneInputGainMaximum  = 0x6d696778,\r
+        BMDDeckLinkSerialPortDeviceName        = 0x736c706e,\r
+        BMDDeckLinkVendorName  = 0x766e6472,\r
+        BMDDeckLinkDisplayName = 0x6473706e,\r
+        BMDDeckLinkModelName   = 0x6d646c6e,\r
+        BMDDeckLinkDeviceHandle        = 0x64657668\r
     }  BMDDeckLinkAttributeID;\r
 \r
 typedef /* [v1_enum] */ \r
@@ -1341,6 +1548,43 @@ enum _BMDDeckLinkAPIInformationID
         BMDDeckLinkAPIVersion  = 0x76657273\r
     }  BMDDeckLinkAPIInformationID;\r
 \r
+typedef /* [v1_enum] */ \r
+enum _BMDDeckLinkStatusID\r
+    {\r
+        bmdDeckLinkStatusDetectedVideoInputMode        = 0x6476696d,\r
+        bmdDeckLinkStatusDetectedVideoInputFlags       = 0x64766966,\r
+        bmdDeckLinkStatusCurrentVideoInputMode = 0x6376696d,\r
+        bmdDeckLinkStatusCurrentVideoInputPixelFormat  = 0x63766970,\r
+        bmdDeckLinkStatusCurrentVideoInputFlags        = 0x63766966,\r
+        bmdDeckLinkStatusCurrentVideoOutputMode        = 0x63766f6d,\r
+        bmdDeckLinkStatusCurrentVideoOutputFlags       = 0x63766f66,\r
+        bmdDeckLinkStatusPCIExpressLinkWidth   = 0x70776964,\r
+        bmdDeckLinkStatusPCIExpressLinkSpeed   = 0x706c6e6b,\r
+        bmdDeckLinkStatusLastVideoOutputPixelFormat    = 0x6f706978,\r
+        bmdDeckLinkStatusReferenceSignalMode   = 0x7265666d,\r
+        bmdDeckLinkStatusReferenceSignalFlags  = 0x72656666,\r
+        bmdDeckLinkStatusDuplexMode    = 0x64757078,\r
+        bmdDeckLinkStatusBusy  = 0x62757379,\r
+        bmdDeckLinkStatusVideoInputSignalLocked        = 0x7669736c,\r
+        bmdDeckLinkStatusReferenceSignalLocked = 0x7265666c\r
+    }  BMDDeckLinkStatusID;\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDDeckLinkVideoStatusFlags\r
+    {\r
+        bmdDeckLinkVideoStatusPsF      = ( 1 << 0 ) ,\r
+        bmdDeckLinkVideoStatusDualStream3D     = ( 1 << 1 ) \r
+    }  BMDDeckLinkVideoStatusFlags;\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDDuplexStatus\r
+    {\r
+        bmdDuplexStatusFullDuplex      = 0x66647570,\r
+        bmdDuplexStatusHalfDuplex      = 0x68647570,\r
+        bmdDuplexStatusSimplex = 0x73706c78,\r
+        bmdDuplexStatusInactive        = 0x696e6163\r
+    }  BMDDuplexStatus;\r
+\r
 /* [v1_enum] */ \r
 enum _BMDDeviceBusyState\r
     {\r
@@ -1368,7 +1612,8 @@ enum _BMD3DPreviewFormat
 typedef /* [v1_enum] */ \r
 enum _BMDNotifications\r
     {\r
-        bmdPreferencesChanged  = 0x70726566\r
+        bmdPreferencesChanged  = 0x70726566,\r
+        bmdStatusChanged       = 0x73746174\r
     }  BMDNotifications;\r
 \r
 \r
@@ -1393,6 +1638,40 @@ enum _BMDNotifications
 \r
 \r
 \r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDDeckLinkAttributeID_v10_6\r
+    {\r
+        BMDDeckLinkSupportsDesktopDisplay_v10_6        = 0x65787464\r
+    }  BMDDeckLinkAttributeID_v10_6;\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDIdleVideoOutputOperation_v10_6\r
+    {\r
+        bmdIdleVideoOutputDesktop_v10_6        = 0x6465736b\r
+    }  BMDIdleVideoOutputOperation_v10_6;\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDDeckLinkAttributeID_v10_5\r
+    {\r
+        BMDDeckLinkDeviceBusyState_v10_5       = 0x64627374\r
+    }  BMDDeckLinkAttributeID_v10_5;\r
+\r
+\r
+typedef /* [v1_enum] */ \r
+enum _BMDDeckLinkConfigurationID_v10_4\r
+    {\r
+        bmdDeckLinkConfigSingleLinkVideoOutput_v10_4   = 0x73676c6f\r
+    }  BMDDeckLinkConfigurationID_v10_4;\r
 \r
 \r
 typedef /* [v1_enum] */ \r
@@ -1895,7 +2174,7 @@ EXTERN_C const IID IID_IDeckLinkConfiguration;
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("1E69FCF6-4203-4936-8076-2A9F4CFD50CB")\r
+    MIDL_INTERFACE("CB71734A-FE37-4E8D-8E13-802133A1C3F2")\r
     IDeckLinkConfiguration : public IUnknown\r
     {\r
     public:\r
@@ -2058,6 +2337,186 @@ EXTERN_C const IID IID_IDeckLinkConfiguration;
 #endif         /* __IDeckLinkConfiguration_INTERFACE_DEFINED__ */\r
 \r
 \r
+#ifndef __IDeckLinkEncoderConfiguration_INTERFACE_DEFINED__\r
+#define __IDeckLinkEncoderConfiguration_INTERFACE_DEFINED__\r
+\r
+/* interface IDeckLinkEncoderConfiguration */\r
+/* [helpstring][local][uuid][object] */ \r
+\r
+\r
+EXTERN_C const IID IID_IDeckLinkEncoderConfiguration;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("138050E5-C60A-4552-BF3F-0F358049327E")\r
+    IDeckLinkEncoderConfiguration : public IUnknown\r
+    {\r
+    public:\r
+        virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ BOOL value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ BOOL *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetInt( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ LONGLONG value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ LONGLONG *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFloat( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ double value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ double *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetString( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ BSTR value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ BSTR *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ void *buffer,\r
+            /* [out][in] */ unsigned int *bufferSize) = 0;\r
+        \r
+    };\r
+    \r
+    \r
+#else  /* C style interface */\r
+\r
+    typedef struct IDeckLinkEncoderConfigurationVtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkEncoderConfiguration * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkEncoderConfiguration * This);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkEncoderConfiguration * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
+            IDeckLinkEncoderConfiguration * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ BOOL value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
+            IDeckLinkEncoderConfiguration * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ BOOL *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
+            IDeckLinkEncoderConfiguration * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ LONGLONG value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
+            IDeckLinkEncoderConfiguration * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ LONGLONG *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
+            IDeckLinkEncoderConfiguration * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ double value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
+            IDeckLinkEncoderConfiguration * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ double *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetString )( \r
+            IDeckLinkEncoderConfiguration * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ BSTR value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
+            IDeckLinkEncoderConfiguration * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ BSTR *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
+            IDeckLinkEncoderConfiguration * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ void *buffer,\r
+            /* [out][in] */ unsigned int *bufferSize);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkEncoderConfigurationVtbl;\r
+\r
+    interface IDeckLinkEncoderConfiguration\r
+    {\r
+        CONST_VTBL struct IDeckLinkEncoderConfigurationVtbl *lpVtbl;\r
+    };\r
+\r
+    \r
+\r
+#ifdef COBJMACROS\r
+\r
+\r
+#define IDeckLinkEncoderConfiguration_QueryInterface(This,riid,ppvObject)      \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_AddRef(This)     \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_Release(This)    \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
+\r
+\r
+#define IDeckLinkEncoderConfiguration_SetFlag(This,cfgID,value)        \\r
+    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_GetFlag(This,cfgID,value)        \\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_SetInt(This,cfgID,value) \\r
+    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_GetInt(This,cfgID,value) \\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_SetFloat(This,cfgID,value)       \\r
+    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_GetFloat(This,cfgID,value)       \\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_SetString(This,cfgID,value)      \\r
+    ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_GetString(This,cfgID,value)      \\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_GetBytes(This,cfgID,buffer,bufferSize)   \\r
+    ( (This)->lpVtbl -> GetBytes(This,cfgID,buffer,bufferSize) ) \r
+\r
+#endif /* COBJMACROS */\r
+\r
+\r
+#endif         /* C style interface */\r
+\r
+\r
+\r
+\r
+#endif         /* __IDeckLinkEncoderConfiguration_INTERFACE_DEFINED__ */\r
+\r
+\r
 #ifndef __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__\r
 #define __IDeckLinkDeckControlStatusCallback_INTERFACE_DEFINED__\r
 \r
@@ -2086,7 +2545,7 @@ EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback;
         \r
         virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged( \r
             /* [in] */ BMDDeckControlStatusFlags flags,\r
-            /* [in] */ unsigned long mask) = 0;\r
+            /* [in] */ unsigned int mask) = 0;\r
         \r
     };\r
     \r
@@ -2126,7 +2585,7 @@ EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback;
         HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )( \r
             IDeckLinkDeckControlStatusCallback * This,\r
             /* [in] */ BMDDeckControlStatusFlags flags,\r
-            /* [in] */ unsigned long mask);\r
+            /* [in] */ unsigned int mask);\r
         \r
         END_INTERFACE\r
     } IDeckLinkDeckControlStatusCallbackVtbl;\r
@@ -2208,10 +2667,10 @@ EXTERN_C const IID IID_IDeckLinkDeckControl;
         \r
         virtual HRESULT STDMETHODCALLTYPE SendCommand( \r
             /* [in] */ unsigned char *inBuffer,\r
-            /* [in] */ unsigned long inBufferSize,\r
+            /* [in] */ unsigned int inBufferSize,\r
             /* [out] */ unsigned char *outBuffer,\r
-            /* [out] */ unsigned long *outDataSize,\r
-            /* [in] */ unsigned long outBufferSize,\r
+            /* [out] */ unsigned int *outDataSize,\r
+            /* [in] */ unsigned int outBufferSize,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE Play( \r
@@ -2265,25 +2724,25 @@ EXTERN_C const IID IID_IDeckLinkDeckControl;
             /* [out] */ BMDDeckControlError *error) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetPreroll( \r
-            /* [in] */ unsigned long prerollSeconds) = 0;\r
+            /* [in] */ unsigned int prerollSeconds) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetPreroll( \r
-            /* [out] */ unsigned long *prerollSeconds) = 0;\r
+            /* [out] */ unsigned int *prerollSeconds) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetExportOffset( \r
-            /* [in] */ long exportOffsetFields) = 0;\r
+            /* [in] */ int exportOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetExportOffset( \r
-            /* [out] */ long *exportOffsetFields) = 0;\r
+            /* [out] */ int *exportOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( \r
-            /* [out] */ long *deckManualExportOffsetFields) = 0;\r
+            /* [out] */ int *deckManualExportOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( \r
-            /* [in] */ long captureOffsetFields) = 0;\r
+            /* [in] */ int captureOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( \r
-            /* [out] */ long *captureOffsetFields) = 0;\r
+            /* [out] */ int *captureOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE StartExport( \r
             /* [in] */ BMDTimecodeBCD inTimecode,\r
@@ -2357,10 +2816,10 @@ EXTERN_C const IID IID_IDeckLinkDeckControl;
         HRESULT ( STDMETHODCALLTYPE *SendCommand )( \r
             IDeckLinkDeckControl * This,\r
             /* [in] */ unsigned char *inBuffer,\r
-            /* [in] */ unsigned long inBufferSize,\r
+            /* [in] */ unsigned int inBufferSize,\r
             /* [out] */ unsigned char *outBuffer,\r
-            /* [out] */ unsigned long *outDataSize,\r
-            /* [in] */ unsigned long outBufferSize,\r
+            /* [out] */ unsigned int *outDataSize,\r
+            /* [in] */ unsigned int outBufferSize,\r
             /* [out] */ BMDDeckControlError *error);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *Play )( \r
@@ -2429,31 +2888,31 @@ EXTERN_C const IID IID_IDeckLinkDeckControl;
         \r
         HRESULT ( STDMETHODCALLTYPE *SetPreroll )( \r
             IDeckLinkDeckControl * This,\r
-            /* [in] */ unsigned long prerollSeconds);\r
+            /* [in] */ unsigned int prerollSeconds);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetPreroll )( \r
             IDeckLinkDeckControl * This,\r
-            /* [out] */ unsigned long *prerollSeconds);\r
+            /* [out] */ unsigned int *prerollSeconds);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( \r
             IDeckLinkDeckControl * This,\r
-            /* [in] */ long exportOffsetFields);\r
+            /* [in] */ int exportOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( \r
             IDeckLinkDeckControl * This,\r
-            /* [out] */ long *exportOffsetFields);\r
+            /* [out] */ int *exportOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( \r
             IDeckLinkDeckControl * This,\r
-            /* [out] */ long *deckManualExportOffsetFields);\r
+            /* [out] */ int *deckManualExportOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( \r
             IDeckLinkDeckControl * This,\r
-            /* [in] */ long captureOffsetFields);\r
+            /* [in] */ int captureOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( \r
             IDeckLinkDeckControl * This,\r
-            /* [out] */ long *captureOffsetFields);\r
+            /* [out] */ int *captureOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *StartExport )( \r
             IDeckLinkDeckControl * This,\r
@@ -3146,14 +3605,14 @@ EXTERN_C const IID IID_IBMDStreamingMutableVideoEncodingMode;
     {\r
     public:\r
         virtual HRESULT STDMETHODCALLTYPE SetSourceRect( \r
-            /* [in] */ unsigned long posX,\r
-            /* [in] */ unsigned long posY,\r
-            /* [in] */ unsigned long width,\r
-            /* [in] */ unsigned long height) = 0;\r
+            /* [in] */ unsigned int posX,\r
+            /* [in] */ unsigned int posY,\r
+            /* [in] */ unsigned int width,\r
+            /* [in] */ unsigned int height) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetDestSize( \r
-            /* [in] */ unsigned long width,\r
-            /* [in] */ unsigned long height) = 0;\r
+            /* [in] */ unsigned int width,\r
+            /* [in] */ unsigned int height) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
             /* [in] */ BMDStreamingEncodingModePropertyID cfgID,\r
@@ -3243,15 +3702,15 @@ EXTERN_C const IID IID_IBMDStreamingMutableVideoEncodingMode;
         \r
         HRESULT ( STDMETHODCALLTYPE *SetSourceRect )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
-            /* [in] */ unsigned long posX,\r
-            /* [in] */ unsigned long posY,\r
-            /* [in] */ unsigned long width,\r
-            /* [in] */ unsigned long height);\r
+            /* [in] */ unsigned int posX,\r
+            /* [in] */ unsigned int posY,\r
+            /* [in] */ unsigned int width,\r
+            /* [in] */ unsigned int height);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *SetDestSize )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
-            /* [in] */ unsigned long width,\r
-            /* [in] */ unsigned long height);\r
+            /* [in] */ unsigned int width,\r
+            /* [in] */ unsigned int height);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
             IBMDStreamingMutableVideoEncodingMode * This,\r
@@ -3659,7 +4118,7 @@ EXTERN_C const IID IID_IBMDStreamingH264NALPacket;
             /* [out] */ ULONGLONG *displayTime) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetPacketIndex( \r
-            /* [out] */ unsigned long *packetIndex) = 0;\r
+            /* [out] */ unsigned int *packetIndex) = 0;\r
         \r
     };\r
     \r
@@ -3700,7 +4159,7 @@ EXTERN_C const IID IID_IBMDStreamingH264NALPacket;
         \r
         HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )( \r
             IBMDStreamingH264NALPacket * This,\r
-            /* [out] */ unsigned long *packetIndex);\r
+            /* [out] */ unsigned int *packetIndex);\r
         \r
         END_INTERFACE\r
     } IBMDStreamingH264NALPacketVtbl;\r
@@ -3778,7 +4237,7 @@ EXTERN_C const IID IID_IBMDStreamingAudioPacket;
             /* [out] */ ULONGLONG *playTime) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetPacketIndex( \r
-            /* [out] */ unsigned long *packetIndex) = 0;\r
+            /* [out] */ unsigned int *packetIndex) = 0;\r
         \r
     };\r
     \r
@@ -3818,7 +4277,7 @@ EXTERN_C const IID IID_IBMDStreamingAudioPacket;
         \r
         HRESULT ( STDMETHODCALLTYPE *GetPacketIndex )( \r
             IBMDStreamingAudioPacket * This,\r
-            /* [out] */ unsigned long *packetIndex);\r
+            /* [out] */ unsigned int *packetIndex);\r
         \r
         END_INTERFACE\r
     } IBMDStreamingAudioPacketVtbl;\r
@@ -3980,9 +4439,9 @@ EXTERN_C const IID IID_IBMDStreamingH264NALParser;
         \r
         virtual HRESULT STDMETHODCALLTYPE GetProfileAndLevelFromSPS( \r
             /* [in] */ IBMDStreamingH264NALPacket *nal,\r
-            /* [out] */ unsigned long *profileIdc,\r
-            /* [out] */ unsigned long *profileCompatability,\r
-            /* [out] */ unsigned long *levelIdc) = 0;\r
+            /* [out] */ unsigned int *profileIdc,\r
+            /* [out] */ unsigned int *profileCompatability,\r
+            /* [out] */ unsigned int *levelIdc) = 0;\r
         \r
     };\r
     \r
@@ -4016,9 +4475,9 @@ EXTERN_C const IID IID_IBMDStreamingH264NALParser;
         HRESULT ( STDMETHODCALLTYPE *GetProfileAndLevelFromSPS )( \r
             IBMDStreamingH264NALParser * This,\r
             /* [in] */ IBMDStreamingH264NALPacket *nal,\r
-            /* [out] */ unsigned long *profileIdc,\r
-            /* [out] */ unsigned long *profileCompatability,\r
-            /* [out] */ unsigned long *levelIdc);\r
+            /* [out] */ unsigned int *profileIdc,\r
+            /* [out] */ unsigned int *profileCompatability,\r
+            /* [out] */ unsigned int *levelIdc);\r
         \r
         END_INTERFACE\r
     } IBMDStreamingH264NALParserVtbl;\r
@@ -4265,74 +4724,73 @@ EXTERN_C const IID IID_IDeckLinkInputCallback;
 #endif         /* __IDeckLinkInputCallback_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__\r
-#define __IDeckLinkMemoryAllocator_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkEncoderInputCallback_INTERFACE_DEFINED__\r
+#define __IDeckLinkEncoderInputCallback_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkMemoryAllocator */\r
-/* [helpstring][local][uuid][object] */ \r
+/* interface IDeckLinkEncoderInputCallback */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkMemoryAllocator;\r
+EXTERN_C const IID IID_IDeckLinkEncoderInputCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("B36EB6E7-9D29-4AA8-92EF-843B87A289E8")\r
-    IDeckLinkMemoryAllocator : public IUnknown\r
+    MIDL_INTERFACE("ACF13E61-F4A0-4974-A6A7-59AFF6268B31")\r
+    IDeckLinkEncoderInputCallback : 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
+        virtual HRESULT STDMETHODCALLTYPE VideoInputSignalChanged( \r
+            /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
+            /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
+            /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE Commit( void) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE VideoPacketArrived( \r
+            /* [in] */ IDeckLinkEncoderVideoPacket *videoPacket) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE Decommit( void) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE AudioPacketArrived( \r
+            /* [in] */ IDeckLinkEncoderAudioPacket *audioPacket) = 0;\r
         \r
     };\r
     \r
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkMemoryAllocatorVtbl\r
+    typedef struct IDeckLinkEncoderInputCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkMemoryAllocator * This,\r
+            IDeckLinkEncoderInputCallback * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkMemoryAllocator * This);\r
+            IDeckLinkEncoderInputCallback * 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
+            IDeckLinkEncoderInputCallback * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *ReleaseBuffer )( \r
-            IDeckLinkMemoryAllocator * This,\r
-            /* [in] */ void *buffer);\r
+        HRESULT ( STDMETHODCALLTYPE *VideoInputSignalChanged )( \r
+            IDeckLinkEncoderInputCallback * This,\r
+            /* [in] */ BMDVideoInputFormatChangedEvents notificationEvents,\r
+            /* [in] */ IDeckLinkDisplayMode *newDisplayMode,\r
+            /* [in] */ BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *Commit )( \r
-            IDeckLinkMemoryAllocator * This);\r
+        HRESULT ( STDMETHODCALLTYPE *VideoPacketArrived )( \r
+            IDeckLinkEncoderInputCallback * This,\r
+            /* [in] */ IDeckLinkEncoderVideoPacket *videoPacket);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *Decommit )( \r
-            IDeckLinkMemoryAllocator * This);\r
+        HRESULT ( STDMETHODCALLTYPE *AudioPacketArrived )( \r
+            IDeckLinkEncoderInputCallback * This,\r
+            /* [in] */ IDeckLinkEncoderAudioPacket *audioPacket);\r
         \r
         END_INTERFACE\r
-    } IDeckLinkMemoryAllocatorVtbl;\r
+    } IDeckLinkEncoderInputCallbackVtbl;\r
 \r
-    interface IDeckLinkMemoryAllocator\r
+    interface IDeckLinkEncoderInputCallback\r
     {\r
-        CONST_VTBL struct IDeckLinkMemoryAllocatorVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkEncoderInputCallbackVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -4340,7 +4798,112 @@ EXTERN_C const IID IID_IDeckLinkMemoryAllocator;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkMemoryAllocator_QueryInterface(This,riid,ppvObject)   \\r
+#define IDeckLinkEncoderInputCallback_QueryInterface(This,riid,ppvObject)      \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
+\r
+#define IDeckLinkEncoderInputCallback_AddRef(This)     \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
+\r
+#define IDeckLinkEncoderInputCallback_Release(This)    \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
+\r
+\r
+#define IDeckLinkEncoderInputCallback_VideoInputSignalChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags)      \\r
+    ( (This)->lpVtbl -> VideoInputSignalChanged(This,notificationEvents,newDisplayMode,detectedSignalFlags) ) \r
+\r
+#define IDeckLinkEncoderInputCallback_VideoPacketArrived(This,videoPacket)     \\r
+    ( (This)->lpVtbl -> VideoPacketArrived(This,videoPacket) ) \r
+\r
+#define IDeckLinkEncoderInputCallback_AudioPacketArrived(This,audioPacket)     \\r
+    ( (This)->lpVtbl -> AudioPacketArrived(This,audioPacket) ) \r
+\r
+#endif /* COBJMACROS */\r
+\r
+\r
+#endif         /* C style interface */\r
+\r
+\r
+\r
+\r
+#endif         /* __IDeckLinkEncoderInputCallback_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 int 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
+    \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
+            _COM_Outptr_  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 int 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
@@ -4689,9 +5252,9 @@ EXTERN_C const IID IID_IDeckLinkOutput;
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
-            /* [in] */ long width,\r
-            /* [in] */ long height,\r
-            /* [in] */ long rowBytes,\r
+            /* [in] */ int width,\r
+            /* [in] */ int height,\r
+            /* [in] */ int rowBytes,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;\r
@@ -4713,20 +5276,20 @@ EXTERN_C const IID IID_IDeckLinkOutput;
             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
-            /* [out] */ unsigned long *bufferedFrameCount) = 0;\r
+            /* [out] */ unsigned int *bufferedFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
-            /* [in] */ unsigned long channelCount,\r
+            /* [in] */ unsigned int 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
+            /* [in] */ unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
         \r
@@ -4734,13 +5297,13 @@ EXTERN_C const IID IID_IDeckLinkOutput;
         \r
         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
             /* [in] */ void *buffer,\r
-            /* [in] */ unsigned long sampleFrameCount,\r
+            /* [in] */ unsigned int sampleFrameCount,\r
             /* [in] */ BMDTimeValue streamTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
+            /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;\r
+            /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
         \r
@@ -4830,9 +5393,9 @@ EXTERN_C const IID IID_IDeckLinkOutput;
         \r
         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
             IDeckLinkOutput * This,\r
-            /* [in] */ long width,\r
-            /* [in] */ long height,\r
-            /* [in] */ long rowBytes,\r
+            /* [in] */ int width,\r
+            /* [in] */ int height,\r
+            /* [in] */ int rowBytes,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame **outFrame);\r
@@ -4859,13 +5422,13 @@ EXTERN_C const IID IID_IDeckLinkOutput;
         \r
         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
             IDeckLinkOutput * This,\r
-            /* [out] */ unsigned long *bufferedFrameCount);\r
+            /* [out] */ unsigned int *bufferedFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
-            /* [in] */ unsigned long channelCount,\r
+            /* [in] */ unsigned int channelCount,\r
             /* [in] */ BMDAudioOutputStreamType streamType);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
@@ -4874,8 +5437,8 @@ EXTERN_C const IID IID_IDeckLinkOutput;
         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ void *buffer,\r
-            /* [in] */ unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
+            /* [in] */ unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesWritten);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
             IDeckLinkOutput * This);\r
@@ -4886,14 +5449,14 @@ EXTERN_C const IID IID_IDeckLinkOutput;
         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
             IDeckLinkOutput * This,\r
             /* [in] */ void *buffer,\r
-            /* [in] */ unsigned long sampleFrameCount,\r
+            /* [in] */ unsigned int sampleFrameCount,\r
             /* [in] */ BMDTimeValue streamTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
+            /* [out] */ unsigned int *sampleFramesWritten);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkOutput * This,\r
-            /* [out] */ unsigned long *bufferedSampleFrameCount);\r
+            /* [out] */ unsigned int *bufferedSampleFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
             IDeckLinkOutput * This);\r
@@ -5095,7 +5658,7 @@ EXTERN_C const IID IID_IDeckLinkInput;
         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
-            /* [out] */ unsigned long *availableFrameCount) = 0;\r
+            /* [out] */ unsigned int *availableFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetVideoInputFrameMemoryAllocator( \r
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
@@ -5103,12 +5666,12 @@ EXTERN_C const IID IID_IDeckLinkInput;
         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
-            /* [in] */ unsigned long channelCount) = 0;\r
+            /* [in] */ unsigned int channelCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *availableSampleFrameCount) = 0;\r
+            /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
         \r
@@ -5175,7 +5738,7 @@ EXTERN_C const IID IID_IDeckLinkInput;
         \r
         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
             IDeckLinkInput * This,\r
-            /* [out] */ unsigned long *availableFrameCount);\r
+            /* [out] */ unsigned int *availableFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *SetVideoInputFrameMemoryAllocator )( \r
             IDeckLinkInput * This,\r
@@ -5185,14 +5748,14 @@ EXTERN_C const IID IID_IDeckLinkInput;
             IDeckLinkInput * This,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
-            /* [in] */ unsigned long channelCount);\r
+            /* [in] */ unsigned int channelCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
             IDeckLinkInput * This);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
             IDeckLinkInput * This,\r
-            /* [out] */ unsigned long *availableSampleFrameCount);\r
+            /* [out] */ unsigned int *availableSampleFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkInput * This);\r
@@ -5299,96 +5862,165 @@ EXTERN_C const IID IID_IDeckLinkInput;
 #endif         /* __IDeckLinkInput_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkVideoFrame_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoFrame_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkEncoderInput_INTERFACE_DEFINED__\r
+#define __IDeckLinkEncoderInput_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkVideoFrame */\r
-/* [helpstring][local][uuid][object] */ \r
+/* interface IDeckLinkEncoderInput */\r
+/* [helpstring][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkVideoFrame;\r
+EXTERN_C const IID IID_IDeckLinkEncoderInput;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("3F716FE0-F023-4111-BE5D-EF4414C05B17")\r
-    IDeckLinkVideoFrame : public IUnknown\r
+    MIDL_INTERFACE("270587DA-6B7D-42E7-A1F0-6D853F581185")\r
+    IDeckLinkEncoderInput : public IUnknown\r
     {\r
     public:\r
-        virtual long STDMETHODCALLTYPE GetWidth( void) = 0;\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 long STDMETHODCALLTYPE GetHeight( void) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE GetDisplayModeIterator( \r
+            /* [out] */ IDeckLinkDisplayModeIterator **iterator) = 0;\r
         \r
-        virtual long STDMETHODCALLTYPE GetRowBytes( void) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE EnableVideoInput( \r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [in] */ BMDPixelFormat pixelFormat,\r
+            /* [in] */ BMDVideoInputFlags flags) = 0;\r
         \r
-        virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
         \r
-        virtual BMDFrameFlags STDMETHODCALLTYPE GetFlags( void) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailablePacketsCount( \r
+            /* [out] */ unsigned int *availablePacketsCount) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE GetBytes\r
-            /* [out] */ void **buffer) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE SetMemoryAllocator\r
+            /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
-            /* [in] */ BMDTimecodeFormat format,\r
-            /* [out] */ IDeckLinkTimecode **timecode) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
+            /* [in] */ BMDAudioFormat audioFormat,\r
+            /* [in] */ BMDAudioSampleRate sampleRate,\r
+            /* [in] */ BMDAudioSampleType sampleType,\r
+            /* [in] */ unsigned int channelCount) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE GetAncillaryData( \r
-            /* [out] */ IDeckLinkVideoFrameAncillary **ancillary) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
+            /* [out] */ unsigned int *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] */ IDeckLinkEncoderInputCallback *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
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkVideoFrameVtbl\r
+    typedef struct IDeckLinkEncoderInputVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoFrame * This,\r
+            IDeckLinkEncoderInput * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoFrame * This);\r
+            IDeckLinkEncoderInput * This);\r
         \r
         ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoFrame * This);\r
+            IDeckLinkEncoderInput * This);\r
         \r
-        long ( STDMETHODCALLTYPE *GetWidth )( \r
-            IDeckLinkVideoFrame * This);\r
+        HRESULT ( STDMETHODCALLTYPE *DoesSupportVideoMode )( \r
+            IDeckLinkEncoderInput * This,\r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [in] */ BMDPixelFormat pixelFormat,\r
+            /* [in] */ BMDVideoInputFlags flags,\r
+            /* [out] */ BMDDisplayModeSupport *result,\r
+            /* [out] */ IDeckLinkDisplayMode **resultDisplayMode);\r
         \r
-        long ( STDMETHODCALLTYPE *GetHeight )( \r
-            IDeckLinkVideoFrame * This);\r
+        HRESULT ( STDMETHODCALLTYPE *GetDisplayModeIterator )( \r
+            IDeckLinkEncoderInput * This,\r
+            /* [out] */ IDeckLinkDisplayModeIterator **iterator);\r
         \r
-        long ( STDMETHODCALLTYPE *GetRowBytes )( \r
-            IDeckLinkVideoFrame * This);\r
+        HRESULT ( STDMETHODCALLTYPE *EnableVideoInput )( \r
+            IDeckLinkEncoderInput * This,\r
+            /* [in] */ BMDDisplayMode displayMode,\r
+            /* [in] */ BMDPixelFormat pixelFormat,\r
+            /* [in] */ BMDVideoInputFlags flags);\r
         \r
-        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
-            IDeckLinkVideoFrame * This);\r
+        HRESULT ( STDMETHODCALLTYPE *DisableVideoInput )( \r
+            IDeckLinkEncoderInput * This);\r
         \r
-        BMDFrameFlags ( STDMETHODCALLTYPE *GetFlags )( \r
-            IDeckLinkVideoFrame * This);\r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailablePacketsCount )( \r
+            IDeckLinkEncoderInput * This,\r
+            /* [out] */ unsigned int *availablePacketsCount);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkVideoFrame * This,\r
-            /* [out] */ void **buffer);\r
+        HRESULT ( STDMETHODCALLTYPE *SetMemoryAllocator )( \r
+            IDeckLinkEncoderInput * This,\r
+            /* [in] */ IDeckLinkMemoryAllocator *theAllocator);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
-            IDeckLinkVideoFrame * This,\r
-            /* [in] */ BMDTimecodeFormat format,\r
-            /* [out] */ IDeckLinkTimecode **timecode);\r
+        HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
+            IDeckLinkEncoderInput * This,\r
+            /* [in] */ BMDAudioFormat audioFormat,\r
+            /* [in] */ BMDAudioSampleRate sampleRate,\r
+            /* [in] */ BMDAudioSampleType sampleType,\r
+            /* [in] */ unsigned int channelCount);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *GetAncillaryData )( \r
-            IDeckLinkVideoFrame * This,\r
-            /* [out] */ IDeckLinkVideoFrameAncillary **ancillary);\r
+        HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
+            IDeckLinkEncoderInput * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
+            IDeckLinkEncoderInput * This,\r
+            /* [out] */ unsigned int *availableSampleFrameCount);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
+            IDeckLinkEncoderInput * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *StopStreams )( \r
+            IDeckLinkEncoderInput * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *PauseStreams )( \r
+            IDeckLinkEncoderInput * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *FlushStreams )( \r
+            IDeckLinkEncoderInput * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetCallback )( \r
+            IDeckLinkEncoderInput * This,\r
+            /* [in] */ IDeckLinkEncoderInputCallback *theCallback);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceClock )( \r
+            IDeckLinkEncoderInput * This,\r
+            /* [in] */ BMDTimeScale desiredTimeScale,\r
+            /* [out] */ BMDTimeValue *hardwareTime,\r
+            /* [out] */ BMDTimeValue *timeInFrame,\r
+            /* [out] */ BMDTimeValue *ticksPerFrame);\r
         \r
         END_INTERFACE\r
-    } IDeckLinkVideoFrameVtbl;\r
+    } IDeckLinkEncoderInputVtbl;\r
 \r
-    interface IDeckLinkVideoFrame\r
+    interface IDeckLinkEncoderInput\r
     {\r
-        CONST_VTBL struct IDeckLinkVideoFrameVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkEncoderInputVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -5396,62 +6028,225 @@ EXTERN_C const IID IID_IDeckLinkVideoFrame;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkVideoFrame_QueryInterface(This,riid,ppvObject)        \\r
+#define IDeckLinkEncoderInput_QueryInterface(This,riid,ppvObject)      \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkVideoFrame_AddRef(This)       \\r
+#define IDeckLinkEncoderInput_AddRef(This)     \\r
     ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkVideoFrame_Release(This)      \\r
+#define IDeckLinkEncoderInput_Release(This)    \\r
     ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkVideoFrame_GetWidth(This)     \\r
-    ( (This)->lpVtbl -> GetWidth(This) ) \r
+#define IDeckLinkEncoderInput_DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode)        \\r
+    ( (This)->lpVtbl -> DoesSupportVideoMode(This,displayMode,pixelFormat,flags,result,resultDisplayMode) ) \r
 \r
-#define IDeckLinkVideoFrame_GetHeight(This)    \\r
-    ( (This)->lpVtbl -> GetHeight(This) ) \r
+#define IDeckLinkEncoderInput_GetDisplayModeIterator(This,iterator)    \\r
+    ( (This)->lpVtbl -> GetDisplayModeIterator(This,iterator) ) \r
 \r
-#define IDeckLinkVideoFrame_GetRowBytes(This)  \\r
-    ( (This)->lpVtbl -> GetRowBytes(This) ) \r
+#define IDeckLinkEncoderInput_EnableVideoInput(This,displayMode,pixelFormat,flags)     \\r
+    ( (This)->lpVtbl -> EnableVideoInput(This,displayMode,pixelFormat,flags) ) \r
 \r
-#define IDeckLinkVideoFrame_GetPixelFormat(This)       \\r
-    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
+#define IDeckLinkEncoderInput_DisableVideoInput(This)  \\r
+    ( (This)->lpVtbl -> DisableVideoInput(This) ) \r
 \r
-#define IDeckLinkVideoFrame_GetFlags(This)     \\r
-    ( (This)->lpVtbl -> GetFlags(This) ) \r
+#define IDeckLinkEncoderInput_GetAvailablePacketsCount(This,availablePacketsCount)     \\r
+    ( (This)->lpVtbl -> GetAvailablePacketsCount(This,availablePacketsCount) ) \r
 \r
-#define IDeckLinkVideoFrame_GetBytes(This,buffer)      \\r
-    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
+#define IDeckLinkEncoderInput_SetMemoryAllocator(This,theAllocator)    \\r
+    ( (This)->lpVtbl -> SetMemoryAllocator(This,theAllocator) ) \r
 \r
-#define IDeckLinkVideoFrame_GetTimecode(This,format,timecode)  \\r
-    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
+#define IDeckLinkEncoderInput_EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount)    \\r
+    ( (This)->lpVtbl -> EnableAudioInput(This,audioFormat,sampleRate,sampleType,channelCount) ) \r
 \r
-#define IDeckLinkVideoFrame_GetAncillaryData(This,ancillary)   \\r
-    ( (This)->lpVtbl -> GetAncillaryData(This,ancillary) ) \r
+#define IDeckLinkEncoderInput_DisableAudioInput(This)  \\r
+    ( (This)->lpVtbl -> DisableAudioInput(This) ) \r
 \r
-#endif /* COBJMACROS */\r
+#define IDeckLinkEncoderInput_GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount)        \\r
+    ( (This)->lpVtbl -> GetAvailableAudioSampleFrameCount(This,availableSampleFrameCount) ) \r
 \r
+#define IDeckLinkEncoderInput_StartStreams(This)       \\r
+    ( (This)->lpVtbl -> StartStreams(This) ) \r
 \r
-#endif         /* C style interface */\r
+#define IDeckLinkEncoderInput_StopStreams(This)        \\r
+    ( (This)->lpVtbl -> StopStreams(This) ) \r
 \r
+#define IDeckLinkEncoderInput_PauseStreams(This)       \\r
+    ( (This)->lpVtbl -> PauseStreams(This) ) \r
 \r
+#define IDeckLinkEncoderInput_FlushStreams(This)       \\r
+    ( (This)->lpVtbl -> FlushStreams(This) ) \r
 \r
+#define IDeckLinkEncoderInput_SetCallback(This,theCallback)    \\r
+    ( (This)->lpVtbl -> SetCallback(This,theCallback) ) \r
 \r
-#endif         /* __IDeckLinkVideoFrame_INTERFACE_DEFINED__ */\r
+#define IDeckLinkEncoderInput_GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame)  \\r
+    ( (This)->lpVtbl -> GetHardwareReferenceClock(This,desiredTimeScale,hardwareTime,timeInFrame,ticksPerFrame) ) \r
 \r
+#endif /* COBJMACROS */\r
 \r
-#ifndef __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__\r
-#define __IDeckLinkMutableVideoFrame_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkMutableVideoFrame */\r
-/* [helpstring][local][uuid][object] */ \r
+#endif         /* C style interface */\r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkMutableVideoFrame;\r
 \r
-#if defined(__cplusplus) && !defined(CINTERFACE)\r
-    \r
+\r
+#endif         /* __IDeckLinkEncoderInput_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
+    \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
+            _COM_Outptr_  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
@@ -5716,6 +6511,124 @@ EXTERN_C const IID IID_IDeckLinkVideoFrame3DExtensions;
 #endif         /* __IDeckLinkVideoFrame3DExtensions_INTERFACE_DEFINED__ */\r
 \r
 \r
+#ifndef __IDeckLinkVideoFrameMetadataExtensions_INTERFACE_DEFINED__\r
+#define __IDeckLinkVideoFrameMetadataExtensions_INTERFACE_DEFINED__\r
+\r
+/* interface IDeckLinkVideoFrameMetadataExtensions */\r
+/* [helpstring][local][uuid][object] */ \r
+\r
+\r
+EXTERN_C const IID IID_IDeckLinkVideoFrameMetadataExtensions;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("D5973DC9-6432-46D0-8F0B-2496F8A1238F")\r
+    IDeckLinkVideoFrameMetadataExtensions : public IUnknown\r
+    {\r
+    public:\r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
+            /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
+            /* [out] */ LONGLONG *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
+            /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
+            /* [out] */ double *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
+            /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
+            /* [out] */ BOOL *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
+            /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
+            /* [out] */ BSTR *value) = 0;\r
+        \r
+    };\r
+    \r
+    \r
+#else  /* C style interface */\r
+\r
+    typedef struct IDeckLinkVideoFrameMetadataExtensionsVtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkVideoFrameMetadataExtensions * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkVideoFrameMetadataExtensions * This);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkVideoFrameMetadataExtensions * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
+            IDeckLinkVideoFrameMetadataExtensions * This,\r
+            /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
+            /* [out] */ LONGLONG *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
+            IDeckLinkVideoFrameMetadataExtensions * This,\r
+            /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
+            /* [out] */ double *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
+            IDeckLinkVideoFrameMetadataExtensions * This,\r
+            /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
+            /* [out] */ BOOL *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
+            IDeckLinkVideoFrameMetadataExtensions * This,\r
+            /* [in] */ BMDDeckLinkFrameMetadataID metadataID,\r
+            /* [out] */ BSTR *value);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkVideoFrameMetadataExtensionsVtbl;\r
+\r
+    interface IDeckLinkVideoFrameMetadataExtensions\r
+    {\r
+        CONST_VTBL struct IDeckLinkVideoFrameMetadataExtensionsVtbl *lpVtbl;\r
+    };\r
+\r
+    \r
+\r
+#ifdef COBJMACROS\r
+\r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_QueryInterface(This,riid,ppvObject)      \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_AddRef(This)     \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_Release(This)    \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
+\r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_GetInt(This,metadataID,value)    \\r
+    ( (This)->lpVtbl -> GetInt(This,metadataID,value) ) \r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_GetFloat(This,metadataID,value)  \\r
+    ( (This)->lpVtbl -> GetFloat(This,metadataID,value) ) \r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_GetFlag(This,metadataID,value)   \\r
+    ( (This)->lpVtbl -> GetFlag(This,metadataID,value) ) \r
+\r
+#define IDeckLinkVideoFrameMetadataExtensions_GetString(This,metadataID,value) \\r
+    ( (This)->lpVtbl -> GetString(This,metadataID,value) ) \r
+\r
+#endif /* COBJMACROS */\r
+\r
+\r
+#endif         /* C style interface */\r
+\r
+\r
+\r
+\r
+#endif         /* __IDeckLinkVideoFrameMetadataExtensions_INTERFACE_DEFINED__ */\r
+\r
+\r
 #ifndef __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__\r
 #define __IDeckLinkVideoInputFrame_INTERFACE_DEFINED__\r
 \r
@@ -5883,7 +6796,7 @@ EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;
     {\r
     public:\r
         virtual HRESULT STDMETHODCALLTYPE GetBufferForVerticalBlankingLine( \r
-            /* [in] */ unsigned long lineNumber,\r
+            /* [in] */ unsigned int lineNumber,\r
             /* [out] */ void **buffer) = 0;\r
         \r
         virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
@@ -5913,7 +6826,7 @@ EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;
         \r
         HRESULT ( STDMETHODCALLTYPE *GetBufferForVerticalBlankingLine )( \r
             IDeckLinkVideoFrameAncillary * This,\r
-            /* [in] */ unsigned long lineNumber,\r
+            /* [in] */ unsigned int lineNumber,\r
             /* [out] */ void **buffer);\r
         \r
         BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
@@ -5965,69 +6878,74 @@ EXTERN_C const IID IID_IDeckLinkVideoFrameAncillary;
 #endif         /* __IDeckLinkVideoFrameAncillary_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__\r
-#define __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkEncoderPacket_INTERFACE_DEFINED__\r
+#define __IDeckLinkEncoderPacket_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkAudioInputPacket */\r
+/* interface IDeckLinkEncoderPacket */\r
 /* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkAudioInputPacket;\r
+EXTERN_C const IID IID_IDeckLinkEncoderPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("E43D5870-2894-11DE-8C30-0800200C9A66")\r
-    IDeckLinkAudioInputPacket : public IUnknown\r
+    MIDL_INTERFACE("B693F36C-316E-4AF1-B6C2-F389A4BCA620")\r
+    IDeckLinkEncoderPacket : 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
+        virtual long STDMETHODCALLTYPE GetSize( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetStreamTime( \r
+            /* [out] */ BMDTimeValue *frameTime,\r
             /* [in] */ BMDTimeScale timeScale) = 0;\r
         \r
+        virtual BMDPacketType STDMETHODCALLTYPE GetPacketType( void) = 0;\r
+        \r
     };\r
     \r
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkAudioInputPacketVtbl\r
+    typedef struct IDeckLinkEncoderPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkAudioInputPacket * This,\r
+            IDeckLinkEncoderPacket * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkAudioInputPacket * This);\r
+            IDeckLinkEncoderPacket * This);\r
         \r
         ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkAudioInputPacket * This);\r
-        \r
-        long ( STDMETHODCALLTYPE *GetSampleFrameCount )( \r
-            IDeckLinkAudioInputPacket * This);\r
+            IDeckLinkEncoderPacket * This);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
-            IDeckLinkAudioInputPacket * This,\r
+            IDeckLinkEncoderPacket * This,\r
             /* [out] */ void **buffer);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *GetPacketTime )( \r
-            IDeckLinkAudioInputPacket * This,\r
-            /* [out] */ BMDTimeValue *packetTime,\r
+        long ( STDMETHODCALLTYPE *GetSize )( \r
+            IDeckLinkEncoderPacket * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
+            IDeckLinkEncoderPacket * This,\r
+            /* [out] */ BMDTimeValue *frameTime,\r
             /* [in] */ BMDTimeScale timeScale);\r
         \r
+        BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )( \r
+            IDeckLinkEncoderPacket * This);\r
+        \r
         END_INTERFACE\r
-    } IDeckLinkAudioInputPacketVtbl;\r
+    } IDeckLinkEncoderPacketVtbl;\r
 \r
-    interface IDeckLinkAudioInputPacket\r
+    interface IDeckLinkEncoderPacket\r
     {\r
-        CONST_VTBL struct IDeckLinkAudioInputPacketVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkEncoderPacketVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -6035,24 +6953,27 @@ EXTERN_C const IID IID_IDeckLinkAudioInputPacket;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkAudioInputPacket_QueryInterface(This,riid,ppvObject)  \\r
+#define IDeckLinkEncoderPacket_QueryInterface(This,riid,ppvObject)     \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkAudioInputPacket_AddRef(This) \\r
+#define IDeckLinkEncoderPacket_AddRef(This)    \\r
     ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkAudioInputPacket_Release(This)        \\r
+#define IDeckLinkEncoderPacket_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
+#define IDeckLinkEncoderPacket_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
+#define IDeckLinkEncoderPacket_GetSize(This)   \\r
+    ( (This)->lpVtbl -> GetSize(This) ) \r
+\r
+#define IDeckLinkEncoderPacket_GetStreamTime(This,frameTime,timeScale) \\r
+    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) ) \r
+\r
+#define IDeckLinkEncoderPacket_GetPacketType(This)     \\r
+    ( (This)->lpVtbl -> GetPacketType(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6062,58 +6983,91 @@ EXTERN_C const IID IID_IDeckLinkAudioInputPacket;
 \r
 \r
 \r
-#endif         /* __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkEncoderPacket_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__\r
-#define __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkEncoderVideoPacket_INTERFACE_DEFINED__\r
+#define __IDeckLinkEncoderVideoPacket_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkScreenPreviewCallback */\r
+/* interface IDeckLinkEncoderVideoPacket */\r
 /* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;\r
+EXTERN_C const IID IID_IDeckLinkEncoderVideoPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438")\r
-    IDeckLinkScreenPreviewCallback : public IUnknown\r
+    MIDL_INTERFACE("4E7FD944-E8C7-4EAC-B8C0-7B77F80F5AE0")\r
+    IDeckLinkEncoderVideoPacket : public IDeckLinkEncoderPacket\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DrawFrame( \r
-            /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
+        virtual BMDPixelFormat STDMETHODCALLTYPE GetPixelFormat( void) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetHardwareReferenceTimestamp( \r
+            /* [in] */ BMDTimeScale timeScale,\r
+            /* [out] */ BMDTimeValue *frameTime,\r
+            /* [out] */ BMDTimeValue *frameDuration) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetTimecode( \r
+            /* [in] */ BMDTimecodeFormat format,\r
+            /* [out] */ IDeckLinkTimecode **timecode) = 0;\r
         \r
     };\r
     \r
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkScreenPreviewCallbackVtbl\r
+    typedef struct IDeckLinkEncoderVideoPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkScreenPreviewCallback * This,\r
+            IDeckLinkEncoderVideoPacket * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkScreenPreviewCallback * This);\r
+            IDeckLinkEncoderVideoPacket * This);\r
         \r
         ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkScreenPreviewCallback * This);\r
+            IDeckLinkEncoderVideoPacket * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *DrawFrame )( \r
-            IDeckLinkScreenPreviewCallback * This,\r
-            /* [in] */ IDeckLinkVideoFrame *theFrame);\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
+            IDeckLinkEncoderVideoPacket * This,\r
+            /* [out] */ void **buffer);\r
+        \r
+        long ( STDMETHODCALLTYPE *GetSize )( \r
+            IDeckLinkEncoderVideoPacket * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
+            IDeckLinkEncoderVideoPacket * This,\r
+            /* [out] */ BMDTimeValue *frameTime,\r
+            /* [in] */ BMDTimeScale timeScale);\r
+        \r
+        BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )( \r
+            IDeckLinkEncoderVideoPacket * This);\r
+        \r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
+            IDeckLinkEncoderVideoPacket * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( \r
+            IDeckLinkEncoderVideoPacket * This,\r
+            /* [in] */ BMDTimeScale timeScale,\r
+            /* [out] */ BMDTimeValue *frameTime,\r
+            /* [out] */ BMDTimeValue *frameDuration);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
+            IDeckLinkEncoderVideoPacket * This,\r
+            /* [in] */ BMDTimecodeFormat format,\r
+            /* [out] */ IDeckLinkTimecode **timecode);\r
         \r
         END_INTERFACE\r
-    } IDeckLinkScreenPreviewCallbackVtbl;\r
+    } IDeckLinkEncoderVideoPacketVtbl;\r
 \r
-    interface IDeckLinkScreenPreviewCallback\r
+    interface IDeckLinkEncoderVideoPacket\r
     {\r
-        CONST_VTBL struct IDeckLinkScreenPreviewCallbackVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkEncoderVideoPacketVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -6121,18 +7075,37 @@ EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkScreenPreviewCallback_QueryInterface(This,riid,ppvObject)     \\r
+#define IDeckLinkEncoderVideoPacket_QueryInterface(This,riid,ppvObject)        \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkScreenPreviewCallback_AddRef(This)    \\r
+#define IDeckLinkEncoderVideoPacket_AddRef(This)       \\r
     ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkScreenPreviewCallback_Release(This)   \\r
+#define IDeckLinkEncoderVideoPacket_Release(This)      \\r
     ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkScreenPreviewCallback_DrawFrame(This,theFrame)        \\r
-    ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) \r
+#define IDeckLinkEncoderVideoPacket_GetBytes(This,buffer)      \\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
+\r
+#define IDeckLinkEncoderVideoPacket_GetSize(This)      \\r
+    ( (This)->lpVtbl -> GetSize(This) ) \r
+\r
+#define IDeckLinkEncoderVideoPacket_GetStreamTime(This,frameTime,timeScale)    \\r
+    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) ) \r
+\r
+#define IDeckLinkEncoderVideoPacket_GetPacketType(This)        \\r
+    ( (This)->lpVtbl -> GetPacketType(This) ) \r
+\r
+\r
+#define IDeckLinkEncoderVideoPacket_GetPixelFormat(This)       \\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
+\r
+#define IDeckLinkEncoderVideoPacket_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)      \\r
+    ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) \r
+\r
+#define IDeckLinkEncoderVideoPacket_GetTimecode(This,format,timecode)  \\r
+    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6142,75 +7115,71 @@ EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;
 \r
 \r
 \r
-#endif         /* __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkEncoderVideoPacket_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__\r
-#define __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkEncoderAudioPacket_INTERFACE_DEFINED__\r
+#define __IDeckLinkEncoderAudioPacket_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkGLScreenPreviewHelper */\r
+/* interface IDeckLinkEncoderAudioPacket */\r
 /* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;\r
+EXTERN_C const IID IID_IDeckLinkEncoderAudioPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("504E2209-CAC7-4C1A-9FB4-C5BB6274D22F")\r
-    IDeckLinkGLScreenPreviewHelper : public IUnknown\r
+    MIDL_INTERFACE("49E8EDC8-693B-4E14-8EF6-12C658F5A07A")\r
+    IDeckLinkEncoderAudioPacket : public IDeckLinkEncoderPacket\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
+        virtual BMDAudioFormat STDMETHODCALLTYPE GetAudioFormat( void) = 0;\r
         \r
     };\r
     \r
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkGLScreenPreviewHelperVtbl\r
+    typedef struct IDeckLinkEncoderAudioPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkGLScreenPreviewHelper * This,\r
+            IDeckLinkEncoderAudioPacket * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkGLScreenPreviewHelper * This);\r
+            IDeckLinkEncoderAudioPacket * This);\r
         \r
         ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkGLScreenPreviewHelper * This);\r
+            IDeckLinkEncoderAudioPacket * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *InitializeGL )( \r
-            IDeckLinkGLScreenPreviewHelper * This);\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
+            IDeckLinkEncoderAudioPacket * This,\r
+            /* [out] */ void **buffer);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *PaintGL )( \r
-            IDeckLinkGLScreenPreviewHelper * This);\r
+        long ( STDMETHODCALLTYPE *GetSize )( \r
+            IDeckLinkEncoderAudioPacket * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *SetFrame )( \r
-            IDeckLinkGLScreenPreviewHelper * This,\r
-            /* [in] */ IDeckLinkVideoFrame *theFrame);\r
+        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
+            IDeckLinkEncoderAudioPacket * This,\r
+            /* [out] */ BMDTimeValue *frameTime,\r
+            /* [in] */ BMDTimeScale timeScale);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )( \r
-            IDeckLinkGLScreenPreviewHelper * This,\r
-            /* [in] */ BMD3DPreviewFormat previewFormat);\r
+        BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )( \r
+            IDeckLinkEncoderAudioPacket * This);\r
+        \r
+        BMDAudioFormat ( STDMETHODCALLTYPE *GetAudioFormat )( \r
+            IDeckLinkEncoderAudioPacket * This);\r
         \r
         END_INTERFACE\r
-    } IDeckLinkGLScreenPreviewHelperVtbl;\r
+    } IDeckLinkEncoderAudioPacketVtbl;\r
 \r
-    interface IDeckLinkGLScreenPreviewHelper\r
+    interface IDeckLinkEncoderAudioPacket\r
     {\r
-        CONST_VTBL struct IDeckLinkGLScreenPreviewHelperVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkEncoderAudioPacketVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -6218,27 +7187,31 @@ EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkGLScreenPreviewHelper_QueryInterface(This,riid,ppvObject)     \\r
+#define IDeckLinkEncoderAudioPacket_QueryInterface(This,riid,ppvObject)        \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkGLScreenPreviewHelper_AddRef(This)    \\r
+#define IDeckLinkEncoderAudioPacket_AddRef(This)       \\r
     ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkGLScreenPreviewHelper_Release(This)   \\r
+#define IDeckLinkEncoderAudioPacket_Release(This)      \\r
     ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkGLScreenPreviewHelper_InitializeGL(This)      \\r
-    ( (This)->lpVtbl -> InitializeGL(This) ) \r
+#define IDeckLinkEncoderAudioPacket_GetBytes(This,buffer)      \\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
-#define IDeckLinkGLScreenPreviewHelper_PaintGL(This)   \\r
-    ( (This)->lpVtbl -> PaintGL(This) ) \r
+#define IDeckLinkEncoderAudioPacket_GetSize(This)      \\r
+    ( (This)->lpVtbl -> GetSize(This) ) \r
 \r
-#define IDeckLinkGLScreenPreviewHelper_SetFrame(This,theFrame) \\r
-    ( (This)->lpVtbl -> SetFrame(This,theFrame) ) \r
+#define IDeckLinkEncoderAudioPacket_GetStreamTime(This,frameTime,timeScale)    \\r
+    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) ) \r
+\r
+#define IDeckLinkEncoderAudioPacket_GetPacketType(This)        \\r
+    ( (This)->lpVtbl -> GetPacketType(This) ) \r
 \r
-#define IDeckLinkGLScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat)  \\r
-    ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) ) \r
+\r
+#define IDeckLinkEncoderAudioPacket_GetAudioFormat(This)       \\r
+    ( (This)->lpVtbl -> GetAudioFormat(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6248,79 +7221,99 @@ EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;
 \r
 \r
 \r
-#endif         /* __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkEncoderAudioPacket_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__\r
-#define __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkH265NALPacket_INTERFACE_DEFINED__\r
+#define __IDeckLinkH265NALPacket_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkDX9ScreenPreviewHelper */\r
+/* interface IDeckLinkH265NALPacket */\r
 /* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkDX9ScreenPreviewHelper;\r
+EXTERN_C const IID IID_IDeckLinkH265NALPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("2094B522-D1A1-40C0-9AC7-1C012218EF02")\r
-    IDeckLinkDX9ScreenPreviewHelper : public IUnknown\r
+    MIDL_INTERFACE("639C8E0B-68D5-4BDE-A6D4-95F3AEAFF2E7")\r
+    IDeckLinkH265NALPacket : public IDeckLinkEncoderVideoPacket\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Initialize( \r
-            /* [in] */ void *device) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Render( \r
-            /* [in] */ RECT *rc) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE GetUnitType( \r
+            /* [out] */ unsigned char *unitType) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE SetFrame\r
-            /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE GetBytesNoPrefix\r
+            /* [out] */ void **buffer) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat( \r
-            /* [in] */ BMD3DPreviewFormat previewFormat) = 0;\r
+        virtual long STDMETHODCALLTYPE GetSizeNoPrefix( void) = 0;\r
         \r
     };\r
     \r
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkDX9ScreenPreviewHelperVtbl\r
+    typedef struct IDeckLinkH265NALPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkDX9ScreenPreviewHelper * This,\r
+            IDeckLinkH265NALPacket * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkDX9ScreenPreviewHelper * This);\r
+            IDeckLinkH265NALPacket * This);\r
         \r
         ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkDX9ScreenPreviewHelper * This);\r
+            IDeckLinkH265NALPacket * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *Initialize )( \r
-            IDeckLinkDX9ScreenPreviewHelper * This,\r
-            /* [in] */ void *device);\r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
+            IDeckLinkH265NALPacket * This,\r
+            /* [out] */ void **buffer);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *Render )( \r
-            IDeckLinkDX9ScreenPreviewHelper * This,\r
-            /* [in] */ RECT *rc);\r
+        long ( STDMETHODCALLTYPE *GetSize )( \r
+            IDeckLinkH265NALPacket * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *SetFrame )( \r
-            IDeckLinkDX9ScreenPreviewHelper * This,\r
-            /* [in] */ IDeckLinkVideoFrame *theFrame);\r
+        HRESULT ( STDMETHODCALLTYPE *GetStreamTime )( \r
+            IDeckLinkH265NALPacket * This,\r
+            /* [out] */ BMDTimeValue *frameTime,\r
+            /* [in] */ BMDTimeScale timeScale);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )( \r
-            IDeckLinkDX9ScreenPreviewHelper * This,\r
-            /* [in] */ BMD3DPreviewFormat previewFormat);\r
+        BMDPacketType ( STDMETHODCALLTYPE *GetPacketType )( \r
+            IDeckLinkH265NALPacket * This);\r
+        \r
+        BMDPixelFormat ( STDMETHODCALLTYPE *GetPixelFormat )( \r
+            IDeckLinkH265NALPacket * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetHardwareReferenceTimestamp )( \r
+            IDeckLinkH265NALPacket * This,\r
+            /* [in] */ BMDTimeScale timeScale,\r
+            /* [out] */ BMDTimeValue *frameTime,\r
+            /* [out] */ BMDTimeValue *frameDuration);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetTimecode )( \r
+            IDeckLinkH265NALPacket * This,\r
+            /* [in] */ BMDTimecodeFormat format,\r
+            /* [out] */ IDeckLinkTimecode **timecode);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetUnitType )( \r
+            IDeckLinkH265NALPacket * This,\r
+            /* [out] */ unsigned char *unitType);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetBytesNoPrefix )( \r
+            IDeckLinkH265NALPacket * This,\r
+            /* [out] */ void **buffer);\r
+        \r
+        long ( STDMETHODCALLTYPE *GetSizeNoPrefix )( \r
+            IDeckLinkH265NALPacket * This);\r
         \r
         END_INTERFACE\r
-    } IDeckLinkDX9ScreenPreviewHelperVtbl;\r
+    } IDeckLinkH265NALPacketVtbl;\r
 \r
-    interface IDeckLinkDX9ScreenPreviewHelper\r
+    interface IDeckLinkH265NALPacket\r
     {\r
-        CONST_VTBL struct IDeckLinkDX9ScreenPreviewHelperVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkH265NALPacketVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -6328,27 +7321,47 @@ EXTERN_C const IID IID_IDeckLinkDX9ScreenPreviewHelper;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkDX9ScreenPreviewHelper_QueryInterface(This,riid,ppvObject)    \\r
+#define IDeckLinkH265NALPacket_QueryInterface(This,riid,ppvObject)     \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkDX9ScreenPreviewHelper_AddRef(This)   \\r
+#define IDeckLinkH265NALPacket_AddRef(This)    \\r
     ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkDX9ScreenPreviewHelper_Release(This)  \\r
+#define IDeckLinkH265NALPacket_Release(This)   \\r
     ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkDX9ScreenPreviewHelper_Initialize(This,device)        \\r
-    ( (This)->lpVtbl -> Initialize(This,device) ) \r
+#define IDeckLinkH265NALPacket_GetBytes(This,buffer)   \\r
+    ( (This)->lpVtbl -> GetBytes(This,buffer) ) \r
 \r
-#define IDeckLinkDX9ScreenPreviewHelper_Render(This,rc)        \\r
-    ( (This)->lpVtbl -> Render(This,rc) ) \r
+#define IDeckLinkH265NALPacket_GetSize(This)   \\r
+    ( (This)->lpVtbl -> GetSize(This) ) \r
 \r
-#define IDeckLinkDX9ScreenPreviewHelper_SetFrame(This,theFrame)        \\r
-    ( (This)->lpVtbl -> SetFrame(This,theFrame) ) \r
+#define IDeckLinkH265NALPacket_GetStreamTime(This,frameTime,timeScale) \\r
+    ( (This)->lpVtbl -> GetStreamTime(This,frameTime,timeScale) ) \r
 \r
-#define IDeckLinkDX9ScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat) \\r
-    ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) ) \r
+#define IDeckLinkH265NALPacket_GetPacketType(This)     \\r
+    ( (This)->lpVtbl -> GetPacketType(This) ) \r
+\r
+\r
+#define IDeckLinkH265NALPacket_GetPixelFormat(This)    \\r
+    ( (This)->lpVtbl -> GetPixelFormat(This) ) \r
+\r
+#define IDeckLinkH265NALPacket_GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration)   \\r
+    ( (This)->lpVtbl -> GetHardwareReferenceTimestamp(This,timeScale,frameTime,frameDuration) ) \r
+\r
+#define IDeckLinkH265NALPacket_GetTimecode(This,format,timecode)       \\r
+    ( (This)->lpVtbl -> GetTimecode(This,format,timecode) ) \r
+\r
+\r
+#define IDeckLinkH265NALPacket_GetUnitType(This,unitType)      \\r
+    ( (This)->lpVtbl -> GetUnitType(This,unitType) ) \r
+\r
+#define IDeckLinkH265NALPacket_GetBytesNoPrefix(This,buffer)   \\r
+    ( (This)->lpVtbl -> GetBytesNoPrefix(This,buffer) ) \r
+\r
+#define IDeckLinkH265NALPacket_GetSizeNoPrefix(This)   \\r
+    ( (This)->lpVtbl -> GetSizeNoPrefix(This) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6358,62 +7371,72 @@ EXTERN_C const IID IID_IDeckLinkDX9ScreenPreviewHelper;
 \r
 \r
 \r
-#endif         /* __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkH265NALPacket_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkNotificationCallback_INTERFACE_DEFINED__\r
-#define __IDeckLinkNotificationCallback_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__\r
+#define __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkNotificationCallback */\r
+/* interface IDeckLinkAudioInputPacket */\r
 /* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkNotificationCallback;\r
+EXTERN_C const IID IID_IDeckLinkAudioInputPacket;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("b002a1ec-070d-4288-8289-bd5d36e5ff0d")\r
-    IDeckLinkNotificationCallback : public IUnknown\r
+    MIDL_INTERFACE("E43D5870-2894-11DE-8C30-0800200C9A66")\r
+    IDeckLinkAudioInputPacket : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Notify( \r
-            /* [in] */ BMDNotifications topic,\r
-            /* [in] */ ULONGLONG param1,\r
-            /* [in] */ ULONGLONG param2) = 0;\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
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkNotificationCallbackVtbl\r
+    typedef struct IDeckLinkAudioInputPacketVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkNotificationCallback * This,\r
+            IDeckLinkAudioInputPacket * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkNotificationCallback * This);\r
+            IDeckLinkAudioInputPacket * This);\r
         \r
         ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkNotificationCallback * This);\r
+            IDeckLinkAudioInputPacket * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *Notify )( \r
-            IDeckLinkNotificationCallback * This,\r
-            /* [in] */ BMDNotifications topic,\r
-            /* [in] */ ULONGLONG param1,\r
-            /* [in] */ ULONGLONG param2);\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
-    } IDeckLinkNotificationCallbackVtbl;\r
+    } IDeckLinkAudioInputPacketVtbl;\r
 \r
-    interface IDeckLinkNotificationCallback\r
+    interface IDeckLinkAudioInputPacket\r
     {\r
-        CONST_VTBL struct IDeckLinkNotificationCallbackVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkAudioInputPacketVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -6421,18 +7444,24 @@ EXTERN_C const IID IID_IDeckLinkNotificationCallback;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkNotificationCallback_QueryInterface(This,riid,ppvObject)      \\r
+#define IDeckLinkAudioInputPacket_QueryInterface(This,riid,ppvObject)  \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkNotificationCallback_AddRef(This)     \\r
+#define IDeckLinkAudioInputPacket_AddRef(This) \\r
     ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkNotificationCallback_Release(This)    \\r
+#define IDeckLinkAudioInputPacket_Release(This)        \\r
     ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkNotificationCallback_Notify(This,topic,param1,param2) \\r
-    ( (This)->lpVtbl -> Notify(This,topic,param1,param2) ) \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
@@ -6442,69 +7471,58 @@ EXTERN_C const IID IID_IDeckLinkNotificationCallback;
 \r
 \r
 \r
-#endif         /* __IDeckLinkNotificationCallback_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkAudioInputPacket_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkNotification_INTERFACE_DEFINED__\r
-#define __IDeckLinkNotification_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__\r
+#define __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkNotification */\r
+/* interface IDeckLinkScreenPreviewCallback */\r
 /* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkNotification;\r
+EXTERN_C const IID IID_IDeckLinkScreenPreviewCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("0a1fb207-e215-441b-9b19-6fa1575946c5")\r
-    IDeckLinkNotification : public IUnknown\r
+    MIDL_INTERFACE("B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438")\r
+    IDeckLinkScreenPreviewCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE Subscribe( \r
-            /* [in] */ BMDNotifications topic,\r
-            /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;\r
-        \r
-        virtual HRESULT STDMETHODCALLTYPE Unsubscribe( \r
-            /* [in] */ BMDNotifications topic,\r
-            /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE DrawFrame( \r
+            /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
         \r
     };\r
     \r
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkNotificationVtbl\r
+    typedef struct IDeckLinkScreenPreviewCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkNotification * This,\r
+            IDeckLinkScreenPreviewCallback * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkNotification * This);\r
+            IDeckLinkScreenPreviewCallback * This);\r
         \r
         ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkNotification * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Subscribe )( \r
-            IDeckLinkNotification * This,\r
-            /* [in] */ BMDNotifications topic,\r
-            /* [in] */ IDeckLinkNotificationCallback *theCallback);\r
+            IDeckLinkScreenPreviewCallback * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *Unsubscribe )( \r
-            IDeckLinkNotification * This,\r
-            /* [in] */ BMDNotifications topic,\r
-            /* [in] */ IDeckLinkNotificationCallback *theCallback);\r
+        HRESULT ( STDMETHODCALLTYPE *DrawFrame )( \r
+            IDeckLinkScreenPreviewCallback * This,\r
+            /* [in] */ IDeckLinkVideoFrame *theFrame);\r
         \r
         END_INTERFACE\r
-    } IDeckLinkNotificationVtbl;\r
+    } IDeckLinkScreenPreviewCallbackVtbl;\r
 \r
-    interface IDeckLinkNotification\r
+    interface IDeckLinkScreenPreviewCallback\r
     {\r
-        CONST_VTBL struct IDeckLinkNotificationVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkScreenPreviewCallbackVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -6512,21 +7530,18 @@ EXTERN_C const IID IID_IDeckLinkNotification;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkNotification_QueryInterface(This,riid,ppvObject)      \\r
+#define IDeckLinkScreenPreviewCallback_QueryInterface(This,riid,ppvObject)     \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkNotification_AddRef(This)     \\r
+#define IDeckLinkScreenPreviewCallback_AddRef(This)    \\r
     ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkNotification_Release(This)    \\r
+#define IDeckLinkScreenPreviewCallback_Release(This)   \\r
     ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkNotification_Subscribe(This,topic,theCallback)        \\r
-    ( (This)->lpVtbl -> Subscribe(This,topic,theCallback) ) \r
-\r
-#define IDeckLinkNotification_Unsubscribe(This,topic,theCallback)      \\r
-    ( (This)->lpVtbl -> Unsubscribe(This,topic,theCallback) ) \r
+#define IDeckLinkScreenPreviewCallback_DrawFrame(This,theFrame)        \\r
+    ( (This)->lpVtbl -> DrawFrame(This,theFrame) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6536,87 +7551,75 @@ EXTERN_C const IID IID_IDeckLinkNotification;
 \r
 \r
 \r
-#endif         /* __IDeckLinkNotification_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkScreenPreviewCallback_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkAttributes_INTERFACE_DEFINED__\r
-#define __IDeckLinkAttributes_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__\r
+#define __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkAttributes */\r
+/* interface IDeckLinkGLScreenPreviewHelper */\r
 /* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkAttributes;\r
+EXTERN_C const IID IID_IDeckLinkGLScreenPreviewHelper;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("ABC11843-D966-44CB-96E2-A1CB5D3135C4")\r
-    IDeckLinkAttributes : public IUnknown\r
+    MIDL_INTERFACE("504E2209-CAC7-4C1A-9FB4-C5BB6274D22F")\r
+    IDeckLinkGLScreenPreviewHelper : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ BOOL *value) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE InitializeGL( void) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ LONGLONG *value) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE PaintGL( void) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ double *value) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE SetFrame( \r
+            /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE GetString( \r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ BSTR *value) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat( \r
+            /* [in] */ BMD3DPreviewFormat previewFormat) = 0;\r
         \r
     };\r
     \r
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkAttributesVtbl\r
+    typedef struct IDeckLinkGLScreenPreviewHelperVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkAttributes * This,\r
+            IDeckLinkGLScreenPreviewHelper * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkAttributes * This);\r
+            IDeckLinkGLScreenPreviewHelper * This);\r
         \r
         ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkAttributes * This);\r
+            IDeckLinkGLScreenPreviewHelper * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
-            IDeckLinkAttributes * This,\r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ BOOL *value);\r
+        HRESULT ( STDMETHODCALLTYPE *InitializeGL )( \r
+            IDeckLinkGLScreenPreviewHelper * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
-            IDeckLinkAttributes * This,\r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ LONGLONG *value);\r
+        HRESULT ( STDMETHODCALLTYPE *PaintGL )( \r
+            IDeckLinkGLScreenPreviewHelper * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
-            IDeckLinkAttributes * This,\r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ double *value);\r
+        HRESULT ( STDMETHODCALLTYPE *SetFrame )( \r
+            IDeckLinkGLScreenPreviewHelper * This,\r
+            /* [in] */ IDeckLinkVideoFrame *theFrame);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
-            IDeckLinkAttributes * This,\r
-            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
-            /* [out] */ BSTR *value);\r
+        HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )( \r
+            IDeckLinkGLScreenPreviewHelper * This,\r
+            /* [in] */ BMD3DPreviewFormat previewFormat);\r
         \r
         END_INTERFACE\r
-    } IDeckLinkAttributesVtbl;\r
+    } IDeckLinkGLScreenPreviewHelperVtbl;\r
 \r
-    interface IDeckLinkAttributes\r
+    interface IDeckLinkGLScreenPreviewHelper\r
     {\r
-        CONST_VTBL struct IDeckLinkAttributesVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkGLScreenPreviewHelperVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -6624,27 +7627,27 @@ EXTERN_C const IID IID_IDeckLinkAttributes;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkAttributes_QueryInterface(This,riid,ppvObject)        \\r
+#define IDeckLinkGLScreenPreviewHelper_QueryInterface(This,riid,ppvObject)     \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkAttributes_AddRef(This)       \\r
+#define IDeckLinkGLScreenPreviewHelper_AddRef(This)    \\r
     ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkAttributes_Release(This)      \\r
+#define IDeckLinkGLScreenPreviewHelper_Release(This)   \\r
     ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkAttributes_GetFlag(This,cfgID,value)  \\r
-    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
+#define IDeckLinkGLScreenPreviewHelper_InitializeGL(This)      \\r
+    ( (This)->lpVtbl -> InitializeGL(This) ) \r
 \r
-#define IDeckLinkAttributes_GetInt(This,cfgID,value)   \\r
-    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
+#define IDeckLinkGLScreenPreviewHelper_PaintGL(This)   \\r
+    ( (This)->lpVtbl -> PaintGL(This) ) \r
 \r
-#define IDeckLinkAttributes_GetFloat(This,cfgID,value) \\r
-    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
+#define IDeckLinkGLScreenPreviewHelper_SetFrame(This,theFrame) \\r
+    ( (This)->lpVtbl -> SetFrame(This,theFrame) ) \r
 \r
-#define IDeckLinkAttributes_GetString(This,cfgID,value)        \\r
-    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
+#define IDeckLinkGLScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat)  \\r
+    ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6654,84 +7657,79 @@ EXTERN_C const IID IID_IDeckLinkAttributes;
 \r
 \r
 \r
-#endif         /* __IDeckLinkAttributes_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkGLScreenPreviewHelper_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkKeyer_INTERFACE_DEFINED__\r
-#define __IDeckLinkKeyer_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__\r
+#define __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkKeyer */\r
+/* interface IDeckLinkDX9ScreenPreviewHelper */\r
 /* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkKeyer;\r
+EXTERN_C const IID IID_IDeckLinkDX9ScreenPreviewHelper;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("89AFCAF5-65F8-421E-98F7-96FE5F5BFBA3")\r
-    IDeckLinkKeyer : public IUnknown\r
+    MIDL_INTERFACE("2094B522-D1A1-40C0-9AC7-1C012218EF02")\r
+    IDeckLinkDX9ScreenPreviewHelper : 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
+        virtual HRESULT STDMETHODCALLTYPE Initialize( \r
+            /* [in] */ void *device) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE RampUp\r
-            /* [in] */ unsigned long numberOfFrames) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE Render\r
+            /* [in] */ RECT *rc) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE RampDown\r
-            /* [in] */ unsigned long numberOfFrames) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE SetFrame\r
+            /* [in] */ IDeckLinkVideoFrame *theFrame) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE Disable( void) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE Set3DPreviewFormat( \r
+            /* [in] */ BMD3DPreviewFormat previewFormat) = 0;\r
         \r
     };\r
     \r
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkKeyerVtbl\r
+    typedef struct IDeckLinkDX9ScreenPreviewHelperVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkKeyer * This,\r
+            IDeckLinkDX9ScreenPreviewHelper * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkKeyer * This);\r
+            IDeckLinkDX9ScreenPreviewHelper * This);\r
         \r
         ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkKeyer * This);\r
-        \r
-        HRESULT ( STDMETHODCALLTYPE *Enable )( \r
-            IDeckLinkKeyer * This,\r
-            /* [in] */ BOOL isExternal);\r
+            IDeckLinkDX9ScreenPreviewHelper * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *SetLevel )( \r
-            IDeckLinkKeyer * This,\r
-            /* [in] */ unsigned char level);\r
+        HRESULT ( STDMETHODCALLTYPE *Initialize )( \r
+            IDeckLinkDX9ScreenPreviewHelper * This,\r
+            /* [in] */ void *device);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *RampUp )( \r
-            IDeckLinkKeyer * This,\r
-            /* [in] */ unsigned long numberOfFrames);\r
+        HRESULT ( STDMETHODCALLTYPE *Render )( \r
+            IDeckLinkDX9ScreenPreviewHelper * This,\r
+            /* [in] */ RECT *rc);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *RampDown )( \r
-            IDeckLinkKeyer * This,\r
-            /* [in] */ unsigned long numberOfFrames);\r
+        HRESULT ( STDMETHODCALLTYPE *SetFrame )( \r
+            IDeckLinkDX9ScreenPreviewHelper * This,\r
+            /* [in] */ IDeckLinkVideoFrame *theFrame);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *Disable )( \r
-            IDeckLinkKeyer * This);\r
+        HRESULT ( STDMETHODCALLTYPE *Set3DPreviewFormat )( \r
+            IDeckLinkDX9ScreenPreviewHelper * This,\r
+            /* [in] */ BMD3DPreviewFormat previewFormat);\r
         \r
         END_INTERFACE\r
-    } IDeckLinkKeyerVtbl;\r
+    } IDeckLinkDX9ScreenPreviewHelperVtbl;\r
 \r
-    interface IDeckLinkKeyer\r
+    interface IDeckLinkDX9ScreenPreviewHelper\r
     {\r
-        CONST_VTBL struct IDeckLinkKeyerVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkDX9ScreenPreviewHelperVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -6739,30 +7737,27 @@ EXTERN_C const IID IID_IDeckLinkKeyer;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkKeyer_QueryInterface(This,riid,ppvObject)     \\r
+#define IDeckLinkDX9ScreenPreviewHelper_QueryInterface(This,riid,ppvObject)    \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkKeyer_AddRef(This)    \\r
+#define IDeckLinkDX9ScreenPreviewHelper_AddRef(This)   \\r
     ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkKeyer_Release(This)   \\r
+#define IDeckLinkDX9ScreenPreviewHelper_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
+#define IDeckLinkDX9ScreenPreviewHelper_Initialize(This,device)        \\r
+    ( (This)->lpVtbl -> Initialize(This,device) ) \r
 \r
-#define IDeckLinkKeyer_RampUp(This,numberOfFrames)     \\r
-    ( (This)->lpVtbl -> RampUp(This,numberOfFrames) ) \r
+#define IDeckLinkDX9ScreenPreviewHelper_Render(This,rc)        \\r
+    ( (This)->lpVtbl -> Render(This,rc) ) \r
 \r
-#define IDeckLinkKeyer_RampDown(This,numberOfFrames)   \\r
-    ( (This)->lpVtbl -> RampDown(This,numberOfFrames) ) \r
+#define IDeckLinkDX9ScreenPreviewHelper_SetFrame(This,theFrame)        \\r
+    ( (This)->lpVtbl -> SetFrame(This,theFrame) ) \r
 \r
-#define IDeckLinkKeyer_Disable(This)   \\r
-    ( (This)->lpVtbl -> Disable(This) ) \r
+#define IDeckLinkDX9ScreenPreviewHelper_Set3DPreviewFormat(This,previewFormat) \\r
+    ( (This)->lpVtbl -> Set3DPreviewFormat(This,previewFormat) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6772,60 +7767,62 @@ EXTERN_C const IID IID_IDeckLinkKeyer;
 \r
 \r
 \r
-#endif         /* __IDeckLinkKeyer_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkDX9ScreenPreviewHelper_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkVideoConversion_INTERFACE_DEFINED__\r
-#define __IDeckLinkVideoConversion_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkNotificationCallback_INTERFACE_DEFINED__\r
+#define __IDeckLinkNotificationCallback_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkVideoConversion */\r
+/* interface IDeckLinkNotificationCallback */\r
 /* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkVideoConversion;\r
+EXTERN_C const IID IID_IDeckLinkNotificationCallback;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("3BBCB8A2-DA2C-42D9-B5D8-88083644E99A")\r
-    IDeckLinkVideoConversion : public IUnknown\r
+    MIDL_INTERFACE("b002a1ec-070d-4288-8289-bd5d36e5ff0d")\r
+    IDeckLinkNotificationCallback : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE ConvertFrame( \r
-            /* [in] */ IDeckLinkVideoFrame *srcFrame,\r
-            /* [in] */ IDeckLinkVideoFrame *dstFrame) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE Notify( \r
+            /* [in] */ BMDNotifications topic,\r
+            /* [in] */ ULONGLONG param1,\r
+            /* [in] */ ULONGLONG param2) = 0;\r
         \r
     };\r
     \r
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkVideoConversionVtbl\r
+    typedef struct IDeckLinkNotificationCallbackVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkVideoConversion * This,\r
+            IDeckLinkNotificationCallback * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkVideoConversion * This);\r
+            IDeckLinkNotificationCallback * This);\r
         \r
         ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkVideoConversion * This);\r
+            IDeckLinkNotificationCallback * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *ConvertFrame )( \r
-            IDeckLinkVideoConversion * This,\r
-            /* [in] */ IDeckLinkVideoFrame *srcFrame,\r
-            /* [in] */ IDeckLinkVideoFrame *dstFrame);\r
+        HRESULT ( STDMETHODCALLTYPE *Notify )( \r
+            IDeckLinkNotificationCallback * This,\r
+            /* [in] */ BMDNotifications topic,\r
+            /* [in] */ ULONGLONG param1,\r
+            /* [in] */ ULONGLONG param2);\r
         \r
         END_INTERFACE\r
-    } IDeckLinkVideoConversionVtbl;\r
+    } IDeckLinkNotificationCallbackVtbl;\r
 \r
-    interface IDeckLinkVideoConversion\r
+    interface IDeckLinkNotificationCallback\r
     {\r
-        CONST_VTBL struct IDeckLinkVideoConversionVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkNotificationCallbackVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -6833,18 +7830,18 @@ EXTERN_C const IID IID_IDeckLinkVideoConversion;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkVideoConversion_QueryInterface(This,riid,ppvObject)   \\r
+#define IDeckLinkNotificationCallback_QueryInterface(This,riid,ppvObject)      \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkVideoConversion_AddRef(This)  \\r
+#define IDeckLinkNotificationCallback_AddRef(This)     \\r
     ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkVideoConversion_Release(This) \\r
+#define IDeckLinkNotificationCallback_Release(This)    \\r
     ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkVideoConversion_ConvertFrame(This,srcFrame,dstFrame)  \\r
-    ( (This)->lpVtbl -> ConvertFrame(This,srcFrame,dstFrame) ) \r
+#define IDeckLinkNotificationCallback_Notify(This,topic,param1,param2) \\r
+    ( (This)->lpVtbl -> Notify(This,topic,param1,param2) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6854,65 +7851,69 @@ EXTERN_C const IID IID_IDeckLinkVideoConversion;
 \r
 \r
 \r
-#endif         /* __IDeckLinkVideoConversion_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkNotificationCallback_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__\r
-#define __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkNotification_INTERFACE_DEFINED__\r
+#define __IDeckLinkNotification_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkDeviceNotificationCallback */\r
-/* [helpstring][uuid][object] */ \r
+/* interface IDeckLinkNotification */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkDeviceNotificationCallback;\r
+EXTERN_C const IID IID_IDeckLinkNotification;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("4997053B-0ADF-4CC8-AC70-7A50C4BE728F")\r
-    IDeckLinkDeviceNotificationCallback : public IUnknown\r
+    MIDL_INTERFACE("0a1fb207-e215-441b-9b19-6fa1575946c5")\r
+    IDeckLinkNotification : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE DeckLinkDeviceArrived( \r
-            /* [in] */ IDeckLink *deckLinkDevice) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE Subscribe( \r
+            /* [in] */ BMDNotifications topic,\r
+            /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE DeckLinkDeviceRemoved( \r
-            /* [in] */ IDeckLink *deckLinkDevice) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE Unsubscribe( \r
+            /* [in] */ BMDNotifications topic,\r
+            /* [in] */ IDeckLinkNotificationCallback *theCallback) = 0;\r
         \r
     };\r
     \r
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkDeviceNotificationCallbackVtbl\r
+    typedef struct IDeckLinkNotificationVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkDeviceNotificationCallback * This,\r
+            IDeckLinkNotification * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkDeviceNotificationCallback * This);\r
+            IDeckLinkNotification * This);\r
         \r
         ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkDeviceNotificationCallback * This);\r
+            IDeckLinkNotification * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *DeckLinkDeviceArrived )( \r
-            IDeckLinkDeviceNotificationCallback * This,\r
-            /* [in] */ IDeckLink *deckLinkDevice);\r
+        HRESULT ( STDMETHODCALLTYPE *Subscribe )( \r
+            IDeckLinkNotification * This,\r
+            /* [in] */ BMDNotifications topic,\r
+            /* [in] */ IDeckLinkNotificationCallback *theCallback);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *DeckLinkDeviceRemoved )( \r
-            IDeckLinkDeviceNotificationCallback * This,\r
-            /* [in] */ IDeckLink *deckLinkDevice);\r
+        HRESULT ( STDMETHODCALLTYPE *Unsubscribe )( \r
+            IDeckLinkNotification * This,\r
+            /* [in] */ BMDNotifications topic,\r
+            /* [in] */ IDeckLinkNotificationCallback *theCallback);\r
         \r
         END_INTERFACE\r
-    } IDeckLinkDeviceNotificationCallbackVtbl;\r
+    } IDeckLinkNotificationVtbl;\r
 \r
-    interface IDeckLinkDeviceNotificationCallback\r
+    interface IDeckLinkNotification\r
     {\r
-        CONST_VTBL struct IDeckLinkDeviceNotificationCallbackVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkNotificationVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -6920,21 +7921,21 @@ EXTERN_C const IID IID_IDeckLinkDeviceNotificationCallback;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkDeviceNotificationCallback_QueryInterface(This,riid,ppvObject)        \\r
+#define IDeckLinkNotification_QueryInterface(This,riid,ppvObject)      \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkDeviceNotificationCallback_AddRef(This)       \\r
+#define IDeckLinkNotification_AddRef(This)     \\r
     ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkDeviceNotificationCallback_Release(This)      \\r
+#define IDeckLinkNotification_Release(This)    \\r
     ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkDeviceNotificationCallback_DeckLinkDeviceArrived(This,deckLinkDevice) \\r
-    ( (This)->lpVtbl -> DeckLinkDeviceArrived(This,deckLinkDevice) ) \r
+#define IDeckLinkNotification_Subscribe(This,topic,theCallback)        \\r
+    ( (This)->lpVtbl -> Subscribe(This,topic,theCallback) ) \r
 \r
-#define IDeckLinkDeviceNotificationCallback_DeckLinkDeviceRemoved(This,deckLinkDevice) \\r
-    ( (This)->lpVtbl -> DeckLinkDeviceRemoved(This,deckLinkDevice) ) \r
+#define IDeckLinkNotification_Unsubscribe(This,topic,theCallback)      \\r
+    ( (This)->lpVtbl -> Unsubscribe(This,topic,theCallback) ) \r
 \r
 #endif /* COBJMACROS */\r
 \r
@@ -6944,63 +7945,87 @@ EXTERN_C const IID IID_IDeckLinkDeviceNotificationCallback;
 \r
 \r
 \r
-#endif         /* __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__ */\r
+#endif         /* __IDeckLinkNotification_INTERFACE_DEFINED__ */\r
 \r
 \r
-#ifndef __IDeckLinkDiscovery_INTERFACE_DEFINED__\r
-#define __IDeckLinkDiscovery_INTERFACE_DEFINED__\r
+#ifndef __IDeckLinkAttributes_INTERFACE_DEFINED__\r
+#define __IDeckLinkAttributes_INTERFACE_DEFINED__\r
 \r
-/* interface IDeckLinkDiscovery */\r
-/* [helpstring][uuid][object] */ \r
+/* interface IDeckLinkAttributes */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
 \r
-EXTERN_C const IID IID_IDeckLinkDiscovery;\r
+EXTERN_C const IID IID_IDeckLinkAttributes;\r
 \r
 #if defined(__cplusplus) && !defined(CINTERFACE)\r
     \r
-    MIDL_INTERFACE("CDBF631C-BC76-45FA-B44D-C55059BC6101")\r
-    IDeckLinkDiscovery : public IUnknown\r
+    MIDL_INTERFACE("ABC11843-D966-44CB-96E2-A1CB5D3135C4")\r
+    IDeckLinkAttributes : public IUnknown\r
     {\r
     public:\r
-        virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications( \r
-            /* [in] */ IDeckLinkDeviceNotificationCallback *deviceNotificationCallback) = 0;\r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
+            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
+            /* [out] */ BOOL *value) = 0;\r
         \r
-        virtual HRESULT STDMETHODCALLTYPE UninstallDeviceNotifications( void) = 0;\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
     \r
 #else  /* C style interface */\r
 \r
-    typedef struct IDeckLinkDiscoveryVtbl\r
+    typedef struct IDeckLinkAttributesVtbl\r
     {\r
         BEGIN_INTERFACE\r
         \r
         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
-            IDeckLinkDiscovery * This,\r
+            IDeckLinkAttributes * This,\r
             /* [in] */ REFIID riid,\r
             /* [annotation][iid_is][out] */ \r
             _COM_Outptr_  void **ppvObject);\r
         \r
         ULONG ( STDMETHODCALLTYPE *AddRef )( \r
-            IDeckLinkDiscovery * This);\r
+            IDeckLinkAttributes * This);\r
         \r
         ULONG ( STDMETHODCALLTYPE *Release )( \r
-            IDeckLinkDiscovery * This);\r
+            IDeckLinkAttributes * This);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *InstallDeviceNotifications )( \r
-            IDeckLinkDiscovery * This,\r
-            /* [in] */ IDeckLinkDeviceNotificationCallback *deviceNotificationCallback);\r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
+            IDeckLinkAttributes * This,\r
+            /* [in] */ BMDDeckLinkAttributeID cfgID,\r
+            /* [out] */ BOOL *value);\r
         \r
-        HRESULT ( STDMETHODCALLTYPE *UninstallDeviceNotifications )( \r
-            IDeckLinkDiscovery * This);\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
-    } IDeckLinkDiscoveryVtbl;\r
+    } IDeckLinkAttributesVtbl;\r
 \r
-    interface IDeckLinkDiscovery\r
+    interface IDeckLinkAttributes\r
     {\r
-        CONST_VTBL struct IDeckLinkDiscoveryVtbl *lpVtbl;\r
+        CONST_VTBL struct IDeckLinkAttributesVtbl *lpVtbl;\r
     };\r
 \r
     \r
@@ -7008,80 +8033,950 @@ EXTERN_C const IID IID_IDeckLinkDiscovery;
 #ifdef COBJMACROS\r
 \r
 \r
-#define IDeckLinkDiscovery_QueryInterface(This,riid,ppvObject) \\r
+#define IDeckLinkAttributes_QueryInterface(This,riid,ppvObject)        \\r
     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#define IDeckLinkDiscovery_AddRef(This)        \\r
+#define IDeckLinkAttributes_AddRef(This)       \\r
     ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-#define IDeckLinkDiscovery_Release(This)       \\r
+#define IDeckLinkAttributes_Release(This)      \\r
     ( (This)->lpVtbl -> Release(This) ) \r
 \r
 \r
-#define IDeckLinkDiscovery_InstallDeviceNotifications(This,deviceNotificationCallback) \\r
-    ( (This)->lpVtbl -> InstallDeviceNotifications(This,deviceNotificationCallback) ) \r
+#define IDeckLinkAttributes_GetFlag(This,cfgID,value)  \\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
 \r
-#define IDeckLinkDiscovery_UninstallDeviceNotifications(This)  \\r
-    ( (This)->lpVtbl -> UninstallDeviceNotifications(This) ) \r
+#define IDeckLinkAttributes_GetInt(This,cfgID,value)   \\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
 \r
-#endif /* COBJMACROS */\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         /* C style interface */\r
+#endif /* COBJMACROS */\r
 \r
 \r
+#endif         /* C style interface */\r
 \r
 \r
-#endif         /* __IDeckLinkDiscovery_INTERFACE_DEFINED__ */\r
 \r
 \r
-EXTERN_C const CLSID CLSID_CDeckLinkIterator;\r
+#endif         /* __IDeckLinkAttributes_INTERFACE_DEFINED__ */\r
 \r
-#ifdef __cplusplus\r
 \r
-class DECLSPEC_UUID("1F2E109A-8F4F-49E4-9203-135595CB6FA5")\r
-CDeckLinkIterator;\r
-#endif\r
+#ifndef __IDeckLinkStatus_INTERFACE_DEFINED__\r
+#define __IDeckLinkStatus_INTERFACE_DEFINED__\r
 \r
-EXTERN_C const CLSID CLSID_CDeckLinkAPIInformation;\r
+/* interface IDeckLinkStatus */\r
+/* [helpstring][local][uuid][object] */ \r
 \r
-#ifdef __cplusplus\r
 \r
-class DECLSPEC_UUID("263CA19F-ED09-482E-9F9D-84005783A237")\r
-CDeckLinkAPIInformation;\r
-#endif\r
+EXTERN_C const IID IID_IDeckLinkStatus;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("5F558200-4028-49BC-BEAC-DB3FA4A96E46")\r
+    IDeckLinkStatus : public IUnknown\r
+    {\r
+    public:\r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
+            /* [in] */ BMDDeckLinkStatusID statusID,\r
+            /* [out] */ BOOL *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
+            /* [in] */ BMDDeckLinkStatusID statusID,\r
+            /* [out] */ LONGLONG *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
+            /* [in] */ BMDDeckLinkStatusID statusID,\r
+            /* [out] */ double *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
+            /* [in] */ BMDDeckLinkStatusID statusID,\r
+            /* [out] */ BSTR *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetBytes( \r
+            /* [in] */ BMDDeckLinkStatusID statusID,\r
+            /* [out] */ void *buffer,\r
+            /* [out][in] */ unsigned int *bufferSize) = 0;\r
+        \r
+    };\r
+    \r
+    \r
+#else  /* C style interface */\r
+\r
+    typedef struct IDeckLinkStatusVtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkStatus * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkStatus * This);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkStatus * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
+            IDeckLinkStatus * This,\r
+            /* [in] */ BMDDeckLinkStatusID statusID,\r
+            /* [out] */ BOOL *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
+            IDeckLinkStatus * This,\r
+            /* [in] */ BMDDeckLinkStatusID statusID,\r
+            /* [out] */ LONGLONG *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
+            IDeckLinkStatus * This,\r
+            /* [in] */ BMDDeckLinkStatusID statusID,\r
+            /* [out] */ double *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
+            IDeckLinkStatus * This,\r
+            /* [in] */ BMDDeckLinkStatusID statusID,\r
+            /* [out] */ BSTR *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetBytes )( \r
+            IDeckLinkStatus * This,\r
+            /* [in] */ BMDDeckLinkStatusID statusID,\r
+            /* [out] */ void *buffer,\r
+            /* [out][in] */ unsigned int *bufferSize);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkStatusVtbl;\r
+\r
+    interface IDeckLinkStatus\r
+    {\r
+        CONST_VTBL struct IDeckLinkStatusVtbl *lpVtbl;\r
+    };\r
+\r
+    \r
+\r
+#ifdef COBJMACROS\r
+\r
+\r
+#define IDeckLinkStatus_QueryInterface(This,riid,ppvObject)    \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
+\r
+#define IDeckLinkStatus_AddRef(This)   \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
+\r
+#define IDeckLinkStatus_Release(This)  \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
+\r
+\r
+#define IDeckLinkStatus_GetFlag(This,statusID,value)   \\r
+    ( (This)->lpVtbl -> GetFlag(This,statusID,value) ) \r
+\r
+#define IDeckLinkStatus_GetInt(This,statusID,value)    \\r
+    ( (This)->lpVtbl -> GetInt(This,statusID,value) ) \r
+\r
+#define IDeckLinkStatus_GetFloat(This,statusID,value)  \\r
+    ( (This)->lpVtbl -> GetFloat(This,statusID,value) ) \r
+\r
+#define IDeckLinkStatus_GetString(This,statusID,value) \\r
+    ( (This)->lpVtbl -> GetString(This,statusID,value) ) \r
+\r
+#define IDeckLinkStatus_GetBytes(This,statusID,buffer,bufferSize)      \\r
+    ( (This)->lpVtbl -> GetBytes(This,statusID,buffer,bufferSize) ) \r
+\r
+#endif /* COBJMACROS */\r
+\r
+\r
+#endif         /* C style interface */\r
+\r
+\r
+\r
+\r
+#endif         /* __IDeckLinkStatus_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 int numberOfFrames) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE RampDown( \r
+            /* [in] */ unsigned int numberOfFrames) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE Disable( void) = 0;\r
+        \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
+            _COM_Outptr_  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 int numberOfFrames);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *RampDown )( \r
+            IDeckLinkKeyer * This,\r
+            /* [in] */ unsigned int 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
+    \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
+            _COM_Outptr_  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 __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__\r
+#define __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__\r
+\r
+/* interface IDeckLinkDeviceNotificationCallback */\r
+/* [helpstring][uuid][object] */ \r
+\r
+\r
+EXTERN_C const IID IID_IDeckLinkDeviceNotificationCallback;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("4997053B-0ADF-4CC8-AC70-7A50C4BE728F")\r
+    IDeckLinkDeviceNotificationCallback : public IUnknown\r
+    {\r
+    public:\r
+        virtual HRESULT STDMETHODCALLTYPE DeckLinkDeviceArrived( \r
+            /* [in] */ IDeckLink *deckLinkDevice) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE DeckLinkDeviceRemoved( \r
+            /* [in] */ IDeckLink *deckLinkDevice) = 0;\r
+        \r
+    };\r
+    \r
+    \r
+#else  /* C style interface */\r
+\r
+    typedef struct IDeckLinkDeviceNotificationCallbackVtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkDeviceNotificationCallback * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkDeviceNotificationCallback * This);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkDeviceNotificationCallback * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *DeckLinkDeviceArrived )( \r
+            IDeckLinkDeviceNotificationCallback * This,\r
+            /* [in] */ IDeckLink *deckLinkDevice);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *DeckLinkDeviceRemoved )( \r
+            IDeckLinkDeviceNotificationCallback * This,\r
+            /* [in] */ IDeckLink *deckLinkDevice);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkDeviceNotificationCallbackVtbl;\r
+\r
+    interface IDeckLinkDeviceNotificationCallback\r
+    {\r
+        CONST_VTBL struct IDeckLinkDeviceNotificationCallbackVtbl *lpVtbl;\r
+    };\r
+\r
+    \r
+\r
+#ifdef COBJMACROS\r
+\r
+\r
+#define IDeckLinkDeviceNotificationCallback_QueryInterface(This,riid,ppvObject)        \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
+\r
+#define IDeckLinkDeviceNotificationCallback_AddRef(This)       \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
+\r
+#define IDeckLinkDeviceNotificationCallback_Release(This)      \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
+\r
+\r
+#define IDeckLinkDeviceNotificationCallback_DeckLinkDeviceArrived(This,deckLinkDevice) \\r
+    ( (This)->lpVtbl -> DeckLinkDeviceArrived(This,deckLinkDevice) ) \r
+\r
+#define IDeckLinkDeviceNotificationCallback_DeckLinkDeviceRemoved(This,deckLinkDevice) \\r
+    ( (This)->lpVtbl -> DeckLinkDeviceRemoved(This,deckLinkDevice) ) \r
+\r
+#endif /* COBJMACROS */\r
+\r
+\r
+#endif         /* C style interface */\r
+\r
+\r
+\r
+\r
+#endif         /* __IDeckLinkDeviceNotificationCallback_INTERFACE_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkDiscovery_INTERFACE_DEFINED__\r
+#define __IDeckLinkDiscovery_INTERFACE_DEFINED__\r
+\r
+/* interface IDeckLinkDiscovery */\r
+/* [helpstring][uuid][object] */ \r
+\r
+\r
+EXTERN_C const IID IID_IDeckLinkDiscovery;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("CDBF631C-BC76-45FA-B44D-C55059BC6101")\r
+    IDeckLinkDiscovery : public IUnknown\r
+    {\r
+    public:\r
+        virtual HRESULT STDMETHODCALLTYPE InstallDeviceNotifications( \r
+            /* [in] */ IDeckLinkDeviceNotificationCallback *deviceNotificationCallback) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE UninstallDeviceNotifications( void) = 0;\r
+        \r
+    };\r
+    \r
+    \r
+#else  /* C style interface */\r
+\r
+    typedef struct IDeckLinkDiscoveryVtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkDiscovery * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkDiscovery * This);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkDiscovery * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *InstallDeviceNotifications )( \r
+            IDeckLinkDiscovery * This,\r
+            /* [in] */ IDeckLinkDeviceNotificationCallback *deviceNotificationCallback);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *UninstallDeviceNotifications )( \r
+            IDeckLinkDiscovery * This);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkDiscoveryVtbl;\r
+\r
+    interface IDeckLinkDiscovery\r
+    {\r
+        CONST_VTBL struct IDeckLinkDiscoveryVtbl *lpVtbl;\r
+    };\r
+\r
+    \r
+\r
+#ifdef COBJMACROS\r
+\r
+\r
+#define IDeckLinkDiscovery_QueryInterface(This,riid,ppvObject) \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
+\r
+#define IDeckLinkDiscovery_AddRef(This)        \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
+\r
+#define IDeckLinkDiscovery_Release(This)       \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
+\r
+\r
+#define IDeckLinkDiscovery_InstallDeviceNotifications(This,deviceNotificationCallback) \\r
+    ( (This)->lpVtbl -> InstallDeviceNotifications(This,deviceNotificationCallback) ) \r
+\r
+#define IDeckLinkDiscovery_UninstallDeviceNotifications(This)  \\r
+    ( (This)->lpVtbl -> UninstallDeviceNotifications(This) ) \r
+\r
+#endif /* COBJMACROS */\r
+\r
+\r
+#endif         /* C style interface */\r
+\r
+\r
+\r
+\r
+#endif         /* __IDeckLinkDiscovery_INTERFACE_DEFINED__ */\r
+\r
+\r
+EXTERN_C const CLSID CLSID_CDeckLinkIterator;\r
+\r
+#ifdef __cplusplus\r
+\r
+class DECLSPEC_UUID("1F2E109A-8F4F-49E4-9203-135595CB6FA5")\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
+#ifdef __cplusplus\r
+\r
+class DECLSPEC_UUID("F63E77C7-B655-4A4A-9AD0-3CA85D394343")\r
+CDeckLinkGLScreenPreviewHelper;\r
+#endif\r
+\r
+EXTERN_C const CLSID CLSID_CDeckLinkDX9ScreenPreviewHelper;\r
+\r
+#ifdef __cplusplus\r
+\r
+class DECLSPEC_UUID("CC010023-E01D-4525-9D59-80C8AB3DC7A0")\r
+CDeckLinkDX9ScreenPreviewHelper;\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
+EXTERN_C const CLSID CLSID_CDeckLinkDiscovery;\r
+\r
+#ifdef __cplusplus\r
+\r
+class DECLSPEC_UUID("1073A05C-D885-47E9-B3C6-129B3F9F648B")\r
+CDeckLinkDiscovery;\r
+#endif\r
+\r
+#ifndef __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__\r
+#define __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__\r
+\r
+/* interface IDeckLinkEncoderConfiguration_v10_5 */\r
+/* [helpstring][local][uuid][object] */ \r
+\r
+\r
+EXTERN_C const IID IID_IDeckLinkEncoderConfiguration_v10_5;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("67455668-0848-45DF-8D8E-350A77C9A028")\r
+    IDeckLinkEncoderConfiguration_v10_5 : public IUnknown\r
+    {\r
+    public:\r
+        virtual HRESULT STDMETHODCALLTYPE SetFlag( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ BOOL value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFlag( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ BOOL *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetInt( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ LONGLONG value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetInt( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ LONGLONG *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetFloat( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ double value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetFloat( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ double *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE SetString( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ BSTR value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetString( \r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ BSTR *value) = 0;\r
+        \r
+        virtual HRESULT STDMETHODCALLTYPE GetDecoderConfigurationInfo( \r
+            /* [out] */ void *buffer,\r
+            /* [in] */ long bufferSize,\r
+            /* [out] */ long *returnedSize) = 0;\r
+        \r
+    };\r
+    \r
+    \r
+#else  /* C style interface */\r
+\r
+    typedef struct IDeckLinkEncoderConfiguration_v10_5Vtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ BOOL value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ BOOL *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ LONGLONG value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ LONGLONG *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ double value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ double *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetString )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [in] */ BSTR value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [in] */ BMDDeckLinkEncoderConfigurationID cfgID,\r
+            /* [out] */ BSTR *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetDecoderConfigurationInfo )( \r
+            IDeckLinkEncoderConfiguration_v10_5 * This,\r
+            /* [out] */ void *buffer,\r
+            /* [in] */ long bufferSize,\r
+            /* [out] */ long *returnedSize);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkEncoderConfiguration_v10_5Vtbl;\r
 \r
-class DECLSPEC_UUID("F63E77C7-B655-4A4A-9AD0-3CA85D394343")\r
-CDeckLinkGLScreenPreviewHelper;\r
-#endif\r
+    interface IDeckLinkEncoderConfiguration_v10_5\r
+    {\r
+        CONST_VTBL struct IDeckLinkEncoderConfiguration_v10_5Vtbl *lpVtbl;\r
+    };\r
 \r
-EXTERN_C const CLSID CLSID_CDeckLinkDX9ScreenPreviewHelper;\r
+    \r
 \r
-#ifdef __cplusplus\r
+#ifdef COBJMACROS\r
 \r
-class DECLSPEC_UUID("CC010023-E01D-4525-9D59-80C8AB3DC7A0")\r
-CDeckLinkDX9ScreenPreviewHelper;\r
-#endif\r
 \r
-EXTERN_C const CLSID CLSID_CDeckLinkVideoConversion;\r
+#define IDeckLinkEncoderConfiguration_v10_5_QueryInterface(This,riid,ppvObject)        \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
 \r
-#ifdef __cplusplus\r
+#define IDeckLinkEncoderConfiguration_v10_5_AddRef(This)       \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
 \r
-class DECLSPEC_UUID("7DBBBB11-5B7B-467D-AEA4-CEA468FD368C")\r
-CDeckLinkVideoConversion;\r
-#endif\r
+#define IDeckLinkEncoderConfiguration_v10_5_Release(This)      \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
 \r
-EXTERN_C const CLSID CLSID_CDeckLinkDiscovery;\r
 \r
-#ifdef __cplusplus\r
+#define IDeckLinkEncoderConfiguration_v10_5_SetFlag(This,cfgID,value)  \\r
+    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_v10_5_GetFlag(This,cfgID,value)  \\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_v10_5_SetInt(This,cfgID,value)   \\r
+    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_v10_5_GetInt(This,cfgID,value)   \\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_v10_5_SetFloat(This,cfgID,value) \\r
+    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_v10_5_GetFloat(This,cfgID,value) \\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_v10_5_SetString(This,cfgID,value)        \\r
+    ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_v10_5_GetString(This,cfgID,value)        \\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
+\r
+#define IDeckLinkEncoderConfiguration_v10_5_GetDecoderConfigurationInfo(This,buffer,bufferSize,returnedSize)   \\r
+    ( (This)->lpVtbl -> GetDecoderConfigurationInfo(This,buffer,bufferSize,returnedSize) ) \r
+\r
+#endif /* COBJMACROS */\r
+\r
+\r
+#endif         /* C style interface */\r
+\r
+\r
+\r
+\r
+#endif         /* __IDeckLinkEncoderConfiguration_v10_5_INTERFACE_DEFINED__ */\r
+\r
+\r
+#ifndef __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__\r
+#define __IDeckLinkConfiguration_v10_4_INTERFACE_DEFINED__\r
+\r
+/* interface IDeckLinkConfiguration_v10_4 */\r
+/* [helpstring][local][uuid][object] */ \r
+\r
+\r
+EXTERN_C const IID IID_IDeckLinkConfiguration_v10_4;\r
+\r
+#if defined(__cplusplus) && !defined(CINTERFACE)\r
+    \r
+    MIDL_INTERFACE("1E69FCF6-4203-4936-8076-2A9F4CFD50CB")\r
+    IDeckLinkConfiguration_v10_4 : 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
+    \r
+#else  /* C style interface */\r
+\r
+    typedef struct IDeckLinkConfiguration_v10_4Vtbl\r
+    {\r
+        BEGIN_INTERFACE\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *QueryInterface )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ REFIID riid,\r
+            /* [annotation][iid_is][out] */ \r
+            _COM_Outptr_  void **ppvObject);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *AddRef )( \r
+            IDeckLinkConfiguration_v10_4 * This);\r
+        \r
+        ULONG ( STDMETHODCALLTYPE *Release )( \r
+            IDeckLinkConfiguration_v10_4 * This);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetFlag )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [in] */ BOOL value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetFlag )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [out] */ BOOL *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetInt )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [in] */ LONGLONG value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetInt )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [out] */ LONGLONG *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetFloat )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [in] */ double value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetFloat )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [out] */ double *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *SetString )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [in] */ BSTR value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *GetString )( \r
+            IDeckLinkConfiguration_v10_4 * This,\r
+            /* [in] */ BMDDeckLinkConfigurationID cfgID,\r
+            /* [out] */ BSTR *value);\r
+        \r
+        HRESULT ( STDMETHODCALLTYPE *WriteConfigurationToPreferences )( \r
+            IDeckLinkConfiguration_v10_4 * This);\r
+        \r
+        END_INTERFACE\r
+    } IDeckLinkConfiguration_v10_4Vtbl;\r
+\r
+    interface IDeckLinkConfiguration_v10_4\r
+    {\r
+        CONST_VTBL struct IDeckLinkConfiguration_v10_4Vtbl *lpVtbl;\r
+    };\r
+\r
+    \r
+\r
+#ifdef COBJMACROS\r
+\r
+\r
+#define IDeckLinkConfiguration_v10_4_QueryInterface(This,riid,ppvObject)       \\r
+    ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) \r
+\r
+#define IDeckLinkConfiguration_v10_4_AddRef(This)      \\r
+    ( (This)->lpVtbl -> AddRef(This) ) \r
+\r
+#define IDeckLinkConfiguration_v10_4_Release(This)     \\r
+    ( (This)->lpVtbl -> Release(This) ) \r
+\r
+\r
+#define IDeckLinkConfiguration_v10_4_SetFlag(This,cfgID,value) \\r
+    ( (This)->lpVtbl -> SetFlag(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_4_GetFlag(This,cfgID,value) \\r
+    ( (This)->lpVtbl -> GetFlag(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_4_SetInt(This,cfgID,value)  \\r
+    ( (This)->lpVtbl -> SetInt(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_4_GetInt(This,cfgID,value)  \\r
+    ( (This)->lpVtbl -> GetInt(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_4_SetFloat(This,cfgID,value)        \\r
+    ( (This)->lpVtbl -> SetFloat(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_4_GetFloat(This,cfgID,value)        \\r
+    ( (This)->lpVtbl -> GetFloat(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_4_SetString(This,cfgID,value)       \\r
+    ( (This)->lpVtbl -> SetString(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_4_GetString(This,cfgID,value)       \\r
+    ( (This)->lpVtbl -> GetString(This,cfgID,value) ) \r
+\r
+#define IDeckLinkConfiguration_v10_4_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_v10_4_INTERFACE_DEFINED__ */\r
 \r
-class DECLSPEC_UUID("1073A05C-D885-47E9-B3C6-129B3F9F648B")\r
-CDeckLinkDiscovery;\r
-#endif\r
 \r
 #ifndef __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__\r
 #define __IDeckLinkConfiguration_v10_2_INTERFACE_DEFINED__\r
@@ -7295,9 +9190,9 @@ EXTERN_C const IID IID_IDeckLinkOutput_v9_9;
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
-            /* [in] */ long width,\r
-            /* [in] */ long height,\r
-            /* [in] */ long rowBytes,\r
+            /* [in] */ int width,\r
+            /* [in] */ int height,\r
+            /* [in] */ int rowBytes,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame **outFrame) = 0;\r
@@ -7319,20 +9214,20 @@ EXTERN_C const IID IID_IDeckLinkOutput_v9_9;
             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
-            /* [out] */ unsigned long *bufferedFrameCount) = 0;\r
+            /* [out] */ unsigned int *bufferedFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
-            /* [in] */ unsigned long channelCount,\r
+            /* [in] */ unsigned int 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
+            /* [in] */ unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
         \r
@@ -7340,13 +9235,13 @@ EXTERN_C const IID IID_IDeckLinkOutput_v9_9;
         \r
         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
             /* [in] */ void *buffer,\r
-            /* [in] */ unsigned long sampleFrameCount,\r
+            /* [in] */ unsigned int sampleFrameCount,\r
             /* [in] */ BMDTimeValue streamTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
+            /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;\r
+            /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
         \r
@@ -7431,9 +9326,9 @@ EXTERN_C const IID IID_IDeckLinkOutput_v9_9;
         \r
         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
             IDeckLinkOutput_v9_9 * This,\r
-            /* [in] */ long width,\r
-            /* [in] */ long height,\r
-            /* [in] */ long rowBytes,\r
+            /* [in] */ int width,\r
+            /* [in] */ int height,\r
+            /* [in] */ int rowBytes,\r
             /* [in] */ BMDPixelFormat pixelFormat,\r
             /* [in] */ BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame **outFrame);\r
@@ -7460,13 +9355,13 @@ EXTERN_C const IID IID_IDeckLinkOutput_v9_9;
         \r
         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
             IDeckLinkOutput_v9_9 * This,\r
-            /* [out] */ unsigned long *bufferedFrameCount);\r
+            /* [out] */ unsigned int *bufferedFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
-            /* [in] */ unsigned long channelCount,\r
+            /* [in] */ unsigned int channelCount,\r
             /* [in] */ BMDAudioOutputStreamType streamType);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
@@ -7475,8 +9370,8 @@ EXTERN_C const IID IID_IDeckLinkOutput_v9_9;
         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ void *buffer,\r
-            /* [in] */ unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
+            /* [in] */ unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesWritten);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
             IDeckLinkOutput_v9_9 * This);\r
@@ -7487,14 +9382,14 @@ EXTERN_C const IID IID_IDeckLinkOutput_v9_9;
         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
             IDeckLinkOutput_v9_9 * This,\r
             /* [in] */ void *buffer,\r
-            /* [in] */ unsigned long sampleFrameCount,\r
+            /* [in] */ unsigned int sampleFrameCount,\r
             /* [in] */ BMDTimeValue streamTime,\r
             /* [in] */ BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
+            /* [out] */ unsigned int *sampleFramesWritten);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkOutput_v9_9 * This,\r
-            /* [out] */ unsigned long *bufferedSampleFrameCount);\r
+            /* [out] */ unsigned int *bufferedSampleFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
             IDeckLinkOutput_v9_9 * This);\r
@@ -7687,17 +9582,17 @@ EXTERN_C const IID IID_IDeckLinkInput_v9_2;
         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
-            /* [out] */ unsigned long *availableFrameCount) = 0;\r
+            /* [out] */ unsigned int *availableFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
-            /* [in] */ unsigned long channelCount) = 0;\r
+            /* [in] */ unsigned int channelCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *availableSampleFrameCount) = 0;\r
+            /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
         \r
@@ -7764,20 +9659,20 @@ EXTERN_C const IID IID_IDeckLinkInput_v9_2;
         \r
         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
             IDeckLinkInput_v9_2 * This,\r
-            /* [out] */ unsigned long *availableFrameCount);\r
+            /* [out] */ unsigned int *availableFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
             IDeckLinkInput_v9_2 * This,\r
             /* [in] */ BMDAudioSampleRate sampleRate,\r
             /* [in] */ BMDAudioSampleType sampleType,\r
-            /* [in] */ unsigned long channelCount);\r
+            /* [in] */ unsigned int channelCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
             IDeckLinkInput_v9_2 * This);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetAvailableAudioSampleFrameCount )( \r
             IDeckLinkInput_v9_2 * This,\r
-            /* [out] */ unsigned long *availableSampleFrameCount);\r
+            /* [out] */ unsigned int *availableSampleFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkInput_v9_2 * This);\r
@@ -7909,7 +9804,7 @@ EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback_v8_1;
         \r
         virtual HRESULT STDMETHODCALLTYPE DeckControlStatusChanged( \r
             /* [in] */ BMDDeckControlStatusFlags flags,\r
-            /* [in] */ unsigned long mask) = 0;\r
+            /* [in] */ unsigned int mask) = 0;\r
         \r
     };\r
     \r
@@ -7949,7 +9844,7 @@ EXTERN_C const IID IID_IDeckLinkDeckControlStatusCallback_v8_1;
         HRESULT ( STDMETHODCALLTYPE *DeckControlStatusChanged )( \r
             IDeckLinkDeckControlStatusCallback_v8_1 * This,\r
             /* [in] */ BMDDeckControlStatusFlags flags,\r
-            /* [in] */ unsigned long mask);\r
+            /* [in] */ unsigned int mask);\r
         \r
         END_INTERFACE\r
     } IDeckLinkDeckControlStatusCallback_v8_1Vtbl;\r
@@ -8031,10 +9926,10 @@ EXTERN_C const IID IID_IDeckLinkDeckControl_v8_1;
         \r
         virtual HRESULT STDMETHODCALLTYPE SendCommand( \r
             /* [in] */ unsigned char *inBuffer,\r
-            /* [in] */ unsigned long inBufferSize,\r
+            /* [in] */ unsigned int inBufferSize,\r
             /* [out] */ unsigned char *outBuffer,\r
-            /* [out] */ unsigned long *outDataSize,\r
-            /* [in] */ unsigned long outBufferSize,\r
+            /* [out] */ unsigned int *outDataSize,\r
+            /* [in] */ unsigned int outBufferSize,\r
             /* [out] */ BMDDeckControlError *error) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE Play( \r
@@ -8088,25 +9983,25 @@ EXTERN_C const IID IID_IDeckLinkDeckControl_v8_1;
             /* [out] */ BMDDeckControlError *error) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetPreroll( \r
-            /* [in] */ unsigned long prerollSeconds) = 0;\r
+            /* [in] */ unsigned int prerollSeconds) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetPreroll( \r
-            /* [out] */ unsigned long *prerollSeconds) = 0;\r
+            /* [out] */ unsigned int *prerollSeconds) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetExportOffset( \r
-            /* [in] */ long exportOffsetFields) = 0;\r
+            /* [in] */ int exportOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetExportOffset( \r
-            /* [out] */ long *exportOffsetFields) = 0;\r
+            /* [out] */ int *exportOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( \r
-            /* [out] */ long *deckManualExportOffsetFields) = 0;\r
+            /* [out] */ int *deckManualExportOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( \r
-            /* [in] */ long captureOffsetFields) = 0;\r
+            /* [in] */ int captureOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( \r
-            /* [out] */ long *captureOffsetFields) = 0;\r
+            /* [out] */ int *captureOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE StartExport( \r
             /* [in] */ BMDTimecodeBCD inTimecode,\r
@@ -8180,10 +10075,10 @@ EXTERN_C const IID IID_IDeckLinkDeckControl_v8_1;
         HRESULT ( STDMETHODCALLTYPE *SendCommand )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
             /* [in] */ unsigned char *inBuffer,\r
-            /* [in] */ unsigned long inBufferSize,\r
+            /* [in] */ unsigned int inBufferSize,\r
             /* [out] */ unsigned char *outBuffer,\r
-            /* [out] */ unsigned long *outDataSize,\r
-            /* [in] */ unsigned long outBufferSize,\r
+            /* [out] */ unsigned int *outDataSize,\r
+            /* [in] */ unsigned int outBufferSize,\r
             /* [out] */ BMDDeckControlError *error);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *Play )( \r
@@ -8252,31 +10147,31 @@ EXTERN_C const IID IID_IDeckLinkDeckControl_v8_1;
         \r
         HRESULT ( STDMETHODCALLTYPE *SetPreroll )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
-            /* [in] */ unsigned long prerollSeconds);\r
+            /* [in] */ unsigned int prerollSeconds);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetPreroll )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
-            /* [out] */ unsigned long *prerollSeconds);\r
+            /* [out] */ unsigned int *prerollSeconds);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
-            /* [in] */ long exportOffsetFields);\r
+            /* [in] */ int exportOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
-            /* [out] */ long *exportOffsetFields);\r
+            /* [out] */ int *exportOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
-            /* [out] */ long *deckManualExportOffsetFields);\r
+            /* [out] */ int *deckManualExportOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
-            /* [in] */ long captureOffsetFields);\r
+            /* [in] */ int captureOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
-            /* [out] */ long *captureOffsetFields);\r
+            /* [out] */ int *captureOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *StartExport )( \r
             IDeckLinkDeckControl_v8_1 * This,\r
@@ -8696,25 +10591,25 @@ EXTERN_C const IID IID_IDeckLinkDeckControl_v7_9;
             /* [out] */ BMDDeckControlError *error) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetPreroll( \r
-            /* [in] */ unsigned long prerollSeconds) = 0;\r
+            /* [in] */ unsigned int prerollSeconds) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetPreroll( \r
-            /* [out] */ unsigned long *prerollSeconds) = 0;\r
+            /* [out] */ unsigned int *prerollSeconds) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetExportOffset( \r
-            /* [in] */ long exportOffsetFields) = 0;\r
+            /* [in] */ int exportOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetExportOffset( \r
-            /* [out] */ long *exportOffsetFields) = 0;\r
+            /* [out] */ int *exportOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetManualExportOffset( \r
-            /* [out] */ long *deckManualExportOffsetFields) = 0;\r
+            /* [out] */ int *deckManualExportOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetCaptureOffset( \r
-            /* [in] */ long captureOffsetFields) = 0;\r
+            /* [in] */ int captureOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetCaptureOffset( \r
-            /* [out] */ long *captureOffsetFields) = 0;\r
+            /* [out] */ int *captureOffsetFields) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE StartExport( \r
             /* [in] */ BMDTimecodeBCD inTimecode,\r
@@ -8851,31 +10746,31 @@ EXTERN_C const IID IID_IDeckLinkDeckControl_v7_9;
         \r
         HRESULT ( STDMETHODCALLTYPE *SetPreroll )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ unsigned long prerollSeconds);\r
+            /* [in] */ unsigned int prerollSeconds);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetPreroll )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ unsigned long *prerollSeconds);\r
+            /* [out] */ unsigned int *prerollSeconds);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *SetExportOffset )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ long exportOffsetFields);\r
+            /* [in] */ int exportOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetExportOffset )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ long *exportOffsetFields);\r
+            /* [out] */ int *exportOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetManualExportOffset )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ long *deckManualExportOffsetFields);\r
+            /* [out] */ int *deckManualExportOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *SetCaptureOffset )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
-            /* [in] */ long captureOffsetFields);\r
+            /* [in] */ int captureOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetCaptureOffset )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
-            /* [out] */ long *captureOffsetFields);\r
+            /* [out] */ int *captureOffsetFields);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *StartExport )( \r
             IDeckLinkDeckControl_v7_9 * This,\r
@@ -9281,9 +11176,9 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
+            int width,\r
+            int height,\r
+            int rowBytes,\r
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;\r
@@ -9305,20 +11200,20 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
             /* [in] */ IDeckLinkVideoOutputCallback_v7_6 *theCallback) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
-            /* [out] */ unsigned long *bufferedFrameCount) = 0;\r
+            /* [out] */ unsigned int *bufferedFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
-            unsigned long channelCount,\r
+            unsigned int 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
+            unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
         \r
@@ -9326,13 +11221,13 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
         \r
         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
             /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
+            unsigned int sampleFrameCount,\r
             BMDTimeValue streamTime,\r
             BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
+            /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;\r
+            /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
         \r
@@ -9412,9 +11307,9 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
         \r
         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
             IDeckLinkOutput_v7_6 * This,\r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
+            int width,\r
+            int height,\r
+            int rowBytes,\r
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);\r
@@ -9441,13 +11336,13 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
         \r
         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
             IDeckLinkOutput_v7_6 * This,\r
-            /* [out] */ unsigned long *bufferedFrameCount);\r
+            /* [out] */ unsigned int *bufferedFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
             IDeckLinkOutput_v7_6 * This,\r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
-            unsigned long channelCount,\r
+            unsigned int channelCount,\r
             BMDAudioOutputStreamType streamType);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
@@ -9456,8 +11351,8 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
+            unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesWritten);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
             IDeckLinkOutput_v7_6 * This);\r
@@ -9468,14 +11363,14 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_6;
         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
             IDeckLinkOutput_v7_6 * This,\r
             /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
+            unsigned int sampleFrameCount,\r
             BMDTimeValue streamTime,\r
             BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
+            /* [out] */ unsigned int *sampleFramesWritten);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkOutput_v7_6 * This,\r
-            /* [out] */ unsigned long *bufferedSampleFrameCount);\r
+            /* [out] */ unsigned int *bufferedSampleFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
             IDeckLinkOutput_v7_6 * This);\r
@@ -9659,17 +11554,17 @@ EXTERN_C const IID IID_IDeckLinkInput_v7_6;
         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
-            /* [out] */ unsigned long *availableFrameCount) = 0;\r
+            /* [out] */ unsigned int *availableFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
-            unsigned long channelCount) = 0;\r
+            unsigned int channelCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *availableSampleFrameCount) = 0;\r
+            /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
         \r
@@ -9734,20 +11629,20 @@ EXTERN_C const IID IID_IDeckLinkInput_v7_6;
         \r
         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
             IDeckLinkInput_v7_6 * This,\r
-            /* [out] */ unsigned long *availableFrameCount);\r
+            /* [out] */ unsigned int *availableFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
             IDeckLinkInput_v7_6 * This,\r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
-            unsigned long channelCount);\r
+            unsigned int 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
+            /* [out] */ unsigned int *availableSampleFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkInput_v7_6 * This);\r
@@ -10773,20 +12668,20 @@ EXTERN_C const IID IID_IDeckLinkConfiguration_v7_6;
             /* [out] */ BOOL *blackOutInCapture) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE Set32PulldownSequenceInitialTimecodeFrame( \r
-            /* [in] */ unsigned long aFrameTimecode) = 0;\r
+            /* [in] */ unsigned int aFrameTimecode) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE Get32PulldownSequenceInitialTimecodeFrame( \r
-            /* [out] */ unsigned long *aFrameTimecode) = 0;\r
+            /* [out] */ unsigned int *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
+            /* [in] */ unsigned int activeLine1VANCsource,\r
+            /* [in] */ unsigned int activeLine2VANCsource,\r
+            /* [in] */ unsigned int 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
+            /* [out] */ unsigned int *activeLine1VANCsource,\r
+            /* [out] */ unsigned int *activeLine2VANCsource,\r
+            /* [out] */ unsigned int *activeLine3VANCsource) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE SetAudioInputFormat( \r
             /* [in] */ BMDAudioConnection_v10_2 audioInputFormat) = 0;\r
@@ -10907,23 +12802,23 @@ EXTERN_C const IID IID_IDeckLinkConfiguration_v7_6;
         \r
         HRESULT ( STDMETHODCALLTYPE *Set32PulldownSequenceInitialTimecodeFrame )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
-            /* [in] */ unsigned long aFrameTimecode);\r
+            /* [in] */ unsigned int aFrameTimecode);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *Get32PulldownSequenceInitialTimecodeFrame )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
-            /* [out] */ unsigned long *aFrameTimecode);\r
+            /* [out] */ unsigned int *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
+            /* [in] */ unsigned int activeLine1VANCsource,\r
+            /* [in] */ unsigned int activeLine2VANCsource,\r
+            /* [in] */ unsigned int 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
+            /* [out] */ unsigned int *activeLine1VANCsource,\r
+            /* [out] */ unsigned int *activeLine2VANCsource,\r
+            /* [out] */ unsigned int *activeLine3VANCsource);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *SetAudioInputFormat )( \r
             IDeckLinkConfiguration_v7_6 * This,\r
@@ -11385,9 +13280,9 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
+            int width,\r
+            int height,\r
+            int rowBytes,\r
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame) = 0;\r
@@ -11409,20 +13304,20 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
             /* [in] */ IDeckLinkVideoOutputCallback *theCallback) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetBufferedVideoFrameCount( \r
-            /* [out] */ unsigned long *bufferedFrameCount) = 0;\r
+            /* [out] */ unsigned int *bufferedFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
-            unsigned long channelCount,\r
+            unsigned int 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
+            unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
         \r
@@ -11430,13 +13325,13 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
         \r
         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
             /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
+            unsigned int sampleFrameCount,\r
             BMDTimeValue streamTime,\r
             BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
+            /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *bufferedSampleFrameCount) = 0;\r
+            /* [out] */ unsigned int *bufferedSampleFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
         \r
@@ -11509,9 +13404,9 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
         \r
         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
             IDeckLinkOutput_v7_3 * This,\r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
+            int width,\r
+            int height,\r
+            int rowBytes,\r
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             /* [out] */ IDeckLinkMutableVideoFrame_v7_6 **outFrame);\r
@@ -11538,13 +13433,13 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
         \r
         HRESULT ( STDMETHODCALLTYPE *GetBufferedVideoFrameCount )( \r
             IDeckLinkOutput_v7_3 * This,\r
-            /* [out] */ unsigned long *bufferedFrameCount);\r
+            /* [out] */ unsigned int *bufferedFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *EnableAudioOutput )( \r
             IDeckLinkOutput_v7_3 * This,\r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
-            unsigned long channelCount,\r
+            unsigned int channelCount,\r
             BMDAudioOutputStreamType streamType);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
@@ -11553,8 +13448,8 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
+            unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesWritten);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
             IDeckLinkOutput_v7_3 * This);\r
@@ -11565,14 +13460,14 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_3;
         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
             IDeckLinkOutput_v7_3 * This,\r
             /* [in] */ void *buffer,\r
-            unsigned long sampleFrameCount,\r
+            unsigned int sampleFrameCount,\r
             BMDTimeValue streamTime,\r
             BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
+            /* [out] */ unsigned int *sampleFramesWritten);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkOutput_v7_3 * This,\r
-            /* [out] */ unsigned long *bufferedSampleFrameCount);\r
+            /* [out] */ unsigned int *bufferedSampleFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
             IDeckLinkOutput_v7_3 * This);\r
@@ -11745,17 +13640,17 @@ EXTERN_C const IID IID_IDeckLinkInput_v7_3;
         virtual HRESULT STDMETHODCALLTYPE DisableVideoInput( void) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetAvailableVideoFrameCount( \r
-            /* [out] */ unsigned long *availableFrameCount) = 0;\r
+            /* [out] */ unsigned int *availableFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
-            unsigned long channelCount) = 0;\r
+            unsigned int channelCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE DisableAudioInput( void) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetAvailableAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *availableSampleFrameCount) = 0;\r
+            /* [out] */ unsigned int *availableSampleFrameCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
         \r
@@ -11814,20 +13709,20 @@ EXTERN_C const IID IID_IDeckLinkInput_v7_3;
         \r
         HRESULT ( STDMETHODCALLTYPE *GetAvailableVideoFrameCount )( \r
             IDeckLinkInput_v7_3 * This,\r
-            /* [out] */ unsigned long *availableFrameCount);\r
+            /* [out] */ unsigned int *availableFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *EnableAudioInput )( \r
             IDeckLinkInput_v7_3 * This,\r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
-            unsigned long channelCount);\r
+            unsigned int 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
+            /* [out] */ unsigned int *availableSampleFrameCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkInput_v7_3 * This);\r
@@ -12792,18 +14687,18 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
             /* [in] */ IDeckLinkMemoryAllocator *theAllocator) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE CreateVideoFrame( \r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
+            int width,\r
+            int height,\r
+            int 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
+            int width,\r
+            int height,\r
+            int rowBytes,\r
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             IDeckLinkVideoFrame_v7_1 **outFrame) = 0;\r
@@ -12823,14 +14718,14 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
         virtual HRESULT STDMETHODCALLTYPE EnableAudioOutput( \r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
-            unsigned long channelCount) = 0;\r
+            unsigned int 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
+            unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE BeginAudioPreroll( void) = 0;\r
         \r
@@ -12838,13 +14733,13 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
         \r
         virtual HRESULT STDMETHODCALLTYPE ScheduleAudioSamples( \r
             void *buffer,\r
-            unsigned long sampleFrameCount,\r
+            unsigned int sampleFrameCount,\r
             BMDTimeValue streamTime,\r
             BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten) = 0;\r
+            /* [out] */ unsigned int *sampleFramesWritten) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *bufferedSampleCount) = 0;\r
+            /* [out] */ unsigned int *bufferedSampleCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE FlushBufferedAudioSamples( void) = 0;\r
         \r
@@ -12909,9 +14804,9 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
         \r
         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrame )( \r
             IDeckLinkOutput_v7_1 * This,\r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
+            int width,\r
+            int height,\r
+            int rowBytes,\r
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             IDeckLinkVideoFrame_v7_1 **outFrame);\r
@@ -12919,9 +14814,9 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
         HRESULT ( STDMETHODCALLTYPE *CreateVideoFrameFromBuffer )( \r
             IDeckLinkOutput_v7_1 * This,\r
             void *buffer,\r
-            long width,\r
-            long height,\r
-            long rowBytes,\r
+            int width,\r
+            int height,\r
+            int rowBytes,\r
             BMDPixelFormat pixelFormat,\r
             BMDFrameFlags flags,\r
             IDeckLinkVideoFrame_v7_1 **outFrame);\r
@@ -12945,7 +14840,7 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
             IDeckLinkOutput_v7_1 * This,\r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
-            unsigned long channelCount);\r
+            unsigned int channelCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *DisableAudioOutput )( \r
             IDeckLinkOutput_v7_1 * This);\r
@@ -12953,8 +14848,8 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
         HRESULT ( STDMETHODCALLTYPE *WriteAudioSamplesSync )( \r
             IDeckLinkOutput_v7_1 * This,\r
             void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
+            unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesWritten);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *BeginAudioPreroll )( \r
             IDeckLinkOutput_v7_1 * This);\r
@@ -12965,14 +14860,14 @@ EXTERN_C const IID IID_IDeckLinkOutput_v7_1;
         HRESULT ( STDMETHODCALLTYPE *ScheduleAudioSamples )( \r
             IDeckLinkOutput_v7_1 * This,\r
             void *buffer,\r
-            unsigned long sampleFrameCount,\r
+            unsigned int sampleFrameCount,\r
             BMDTimeValue streamTime,\r
             BMDTimeScale timeScale,\r
-            /* [out] */ unsigned long *sampleFramesWritten);\r
+            /* [out] */ unsigned int *sampleFramesWritten);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkOutput_v7_1 * This,\r
-            /* [out] */ unsigned long *bufferedSampleCount);\r
+            /* [out] */ unsigned int *bufferedSampleCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *FlushBufferedAudioSamples )( \r
             IDeckLinkOutput_v7_1 * This);\r
@@ -13131,19 +15026,19 @@ EXTERN_C const IID IID_IDeckLinkInput_v7_1;
         virtual HRESULT STDMETHODCALLTYPE EnableAudioInput( \r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
-            unsigned long channelCount) = 0;\r
+            unsigned int 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
+            unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesRead,\r
             /* [out] */ BMDTimeValue *audioPacketTime,\r
             BMDTimeScale timeScale) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE GetBufferedAudioSampleFrameCount( \r
-            /* [out] */ unsigned long *bufferedSampleCount) = 0;\r
+            /* [out] */ unsigned int *bufferedSampleCount) = 0;\r
         \r
         virtual HRESULT STDMETHODCALLTYPE StartStreams( void) = 0;\r
         \r
@@ -13198,7 +15093,7 @@ EXTERN_C const IID IID_IDeckLinkInput_v7_1;
             IDeckLinkInput_v7_1 * This,\r
             BMDAudioSampleRate sampleRate,\r
             BMDAudioSampleType sampleType,\r
-            unsigned long channelCount);\r
+            unsigned int channelCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *DisableAudioInput )( \r
             IDeckLinkInput_v7_1 * This);\r
@@ -13206,14 +15101,14 @@ EXTERN_C const IID IID_IDeckLinkInput_v7_1;
         HRESULT ( STDMETHODCALLTYPE *ReadAudioSamples )( \r
             IDeckLinkInput_v7_1 * This,\r
             void *buffer,\r
-            unsigned long sampleFrameCount,\r
-            /* [out] */ unsigned long *sampleFramesRead,\r
+            unsigned int sampleFrameCount,\r
+            /* [out] */ unsigned int *sampleFramesRead,\r
             /* [out] */ BMDTimeValue *audioPacketTime,\r
             BMDTimeScale timeScale);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *GetBufferedAudioSampleFrameCount )( \r
             IDeckLinkInput_v7_1 * This,\r
-            /* [out] */ unsigned long *bufferedSampleCount);\r
+            /* [out] */ unsigned int *bufferedSampleCount);\r
         \r
         HRESULT ( STDMETHODCALLTYPE *StartStreams )( \r
             IDeckLinkInput_v7_1 * This);\r
index 8a69a8ae8480840bedf1cf45da3ef9bf931c42c5..d06c59f1d1772a9baf37608d65810ff71b3b4544 100644 (file)
@@ -1,40 +1,40 @@
-/* -LICENSE-START-
-** Copyright (c) 2011 Blackmagic Design
-**
-** Permission is hereby granted, free of charge, to any person or organization
-** obtaining a copy of the software and accompanying documentation covered by
-** this license (the "Software") to use, reproduce, display, distribute,
-** execute, and transmit the Software, and to prepare derivative works of the
-** Software, and to permit third-parties to whom the Software is furnished to
-** do so, all subject to the following:
-** 
-** The copyright notices in the Software and this entire statement, including
-** the above license grant, this restriction and the following disclaimer,
-** must be included in all copies of the Software, in whole or in part, and
-** all derivative works of the Software, unless such copies or derivative
-** works are solely in the form of machine-executable object code generated by
-** a source language processor.
-** 
-** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
-** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
-** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
-** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-** DEALINGS IN THE SOFTWARE.
-** -LICENSE-END-
-**/
-
-#include "DeckLinkAPI.h"
-
-extern "C" {
-
-IDeckLinkIterator*             CreateDeckLinkIteratorInstance (void)
-{
-       IDeckLinkIterator *deckLinkIterator = NULL;
-       HRESULT res = CoCreateInstance(CLSID_CDeckLinkIterator, NULL, CLSCTX_ALL,
-               IID_IDeckLinkIterator, (void**)&deckLinkIterator);
-       return deckLinkIterator;
-}
-
+/* -LICENSE-START-\r
+** Copyright (c) 2011 Blackmagic Design\r
+**\r
+** Permission is hereby granted, free of charge, to any person or organization\r
+** obtaining a copy of the software and accompanying documentation covered by\r
+** this license (the "Software") to use, reproduce, display, distribute,\r
+** execute, and transmit the Software, and to prepare derivative works of the\r
+** Software, and to permit third-parties to whom the Software is furnished to\r
+** do so, all subject to the following:\r
+** \r
+** The copyright notices in the Software and this entire statement, including\r
+** the above license grant, this restriction and the following disclaimer,\r
+** must be included in all copies of the Software, in whole or in part, and\r
+** all derivative works of the Software, unless such copies or derivative\r
+** works are solely in the form of machine-executable object code generated by\r
+** a source language processor.\r
+** \r
+** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r
+** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
+** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT\r
+** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE\r
+** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,\r
+** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\r
+** DEALINGS IN THE SOFTWARE.\r
+** -LICENSE-END-\r
+**/\r
+\r
+#include "DeckLinkAPI.h"\r
+\r
+extern "C" {\r
+\r
+IDeckLinkIterator*             CreateDeckLinkIteratorInstance (void)\r
+{\r
+       IDeckLinkIterator *deckLinkIterator = NULL;\r
+       HRESULT res = CoCreateInstance(CLSID_CDeckLinkIterator, NULL, CLSCTX_ALL,\r
+               IID_IDeckLinkIterator, (void**)&deckLinkIterator);\r
+       return deckLinkIterator;\r
+}\r
+\r
 };
\ No newline at end of file
index 1769bf8515fa0bf8542076dea9013b9b15aa2abb..cd1e98740a70bd915a2d52ab5cfe1de771f04c22 100644 (file)
@@ -5,11 +5,11 @@
 /* link this file in with the server and any clients */\r
 \r
 \r
- /* File created by MIDL compiler version 8.00.0595 */\r
-/* at Wed Dec 03 06:04:46 2014\r
+ /* File created by MIDL compiler version 8.00.0603 */\r
+/* at Fri Jan 27 17:12:54 2017\r
  */\r
-/* Compiler settings for DeckLinkAPI.idl:\r
-    Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.00.0595 \r
+/* Compiler settings for ..\..\..\..\..\..\blackmagic\SDK\Win\include\DeckLinkAPI.idl:\r
+    Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.00.0603 \r
     protocol : dce , ms_ext, c_ext, robust\r
     error checks: allocation ref bounds_check enum stub_data \r
     VC __declspec() decoration level: \r
@@ -82,7 +82,10 @@ MIDL_DEFINE_GUID(IID, IID_IDeckLinkDisplayMode,0x3EB2C1AB,0x0A3D,0x4523,0xA3,0xA
 MIDL_DEFINE_GUID(IID, IID_IDeckLink,0xC418FBDD,0x0587,0x48ED,0x8F,0xE5,0x64,0x0F,0x0A,0x14,0xAF,0x91);\r
 \r
 \r
-MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration,0x1E69FCF6,0x4203,0x4936,0x80,0x76,0x2A,0x9F,0x4C,0xFD,0x50,0xCB);\r
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration,0xCB71734A,0xFE37,0x4E8D,0x8E,0x13,0x80,0x21,0x33,0xA1,0xC3,0xF2);\r
+\r
+\r
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderConfiguration,0x138050E5,0xC60A,0x4552,0xBF,0x3F,0x0F,0x35,0x80,0x49,0x32,0x7E);\r
 \r
 \r
 MIDL_DEFINE_GUID(IID, IID_IDeckLinkDeckControlStatusCallback,0x53436FFB,0xB434,0x4906,0xBA,0xDC,0xAE,0x30,0x60,0xFF,0xE8,0xEF);\r
@@ -136,6 +139,9 @@ MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoOutputCallback,0x20AA5225,0x1958,0x47CB,
 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_IDeckLinkEncoderInputCallback,0xACF13E61,0xF4A0,0x4974,0xA6,0xA7,0x59,0xAF,0xF6,0x26,0x8B,0x31);\r
+\r
+\r
 MIDL_DEFINE_GUID(IID, IID_IDeckLinkMemoryAllocator,0xB36EB6E7,0x9D29,0x4AA8,0x92,0xEF,0x84,0x3B,0x87,0xA2,0x89,0xE8);\r
 \r
 \r
@@ -154,6 +160,9 @@ MIDL_DEFINE_GUID(IID, IID_IDeckLinkOutput,0xCC5C8A6E,0x3F2F,0x4B3A,0x87,0xEA,0xF
 MIDL_DEFINE_GUID(IID, IID_IDeckLinkInput,0xAF22762B,0xDFAC,0x4846,0xAA,0x79,0xFA,0x88,0x83,0x56,0x09,0x95);\r
 \r
 \r
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderInput,0x270587DA,0x6B7D,0x42E7,0xA1,0xF0,0x6D,0x85,0x3F,0x58,0x11,0x85);\r
+\r
+\r
 MIDL_DEFINE_GUID(IID, IID_IDeckLinkVideoFrame,0x3F716FE0,0xF023,0x4111,0xBE,0x5D,0xEF,0x44,0x14,0xC0,0x5B,0x17);\r
 \r
 \r
@@ -163,12 +172,27 @@ MIDL_DEFINE_GUID(IID, IID_IDeckLinkMutableVideoFrame,0x69E2639F,0x40DA,0x4E19,0x
 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_IDeckLinkVideoFrameMetadataExtensions,0xD5973DC9,0x6432,0x46D0,0x8F,0x0B,0x24,0x96,0xF8,0xA1,0x23,0x8F);\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_IDeckLinkEncoderPacket,0xB693F36C,0x316E,0x4AF1,0xB6,0xC2,0xF3,0x89,0xA4,0xBC,0xA6,0x20);\r
+\r
+\r
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderVideoPacket,0x4E7FD944,0xE8C7,0x4EAC,0xB8,0xC0,0x7B,0x77,0xF8,0x0F,0x5A,0xE0);\r
+\r
+\r
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderAudioPacket,0x49E8EDC8,0x693B,0x4E14,0x8E,0xF6,0x12,0xC6,0x58,0xF5,0xA0,0x7A);\r
+\r
+\r
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkH265NALPacket,0x639C8E0B,0x68D5,0x4BDE,0xA6,0xD4,0x95,0xF3,0xAE,0xAF,0xF2,0xE7);\r
+\r
+\r
 MIDL_DEFINE_GUID(IID, IID_IDeckLinkAudioInputPacket,0xE43D5870,0x2894,0x11DE,0x8C,0x30,0x08,0x00,0x20,0x0C,0x9A,0x66);\r
 \r
 \r
@@ -190,6 +214,9 @@ MIDL_DEFINE_GUID(IID, IID_IDeckLinkNotification,0x0a1fb207,0xe215,0x441b,0x9b,0x
 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_IDeckLinkStatus,0x5F558200,0x4028,0x49BC,0xBE,0xAC,0xDB,0x3F,0xA4,0xA9,0x6E,0x46);\r
+\r
+\r
 MIDL_DEFINE_GUID(IID, IID_IDeckLinkKeyer,0x89AFCAF5,0x65F8,0x421E,0x98,0xF7,0x96,0xFE,0x5F,0x5B,0xFB,0xA3);\r
 \r
 \r
@@ -220,6 +247,12 @@ MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkVideoConversion,0x7DBBBB11,0x5B7B,0x467D,
 MIDL_DEFINE_GUID(CLSID, CLSID_CDeckLinkDiscovery,0x1073A05C,0xD885,0x47E9,0xB3,0xC6,0x12,0x9B,0x3F,0x9F,0x64,0x8B);\r
 \r
 \r
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkEncoderConfiguration_v10_5,0x67455668,0x0848,0x45DF,0x8D,0x8E,0x35,0x0A,0x77,0xC9,0xA0,0x28);\r
+\r
+\r
+MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_4,0x1E69FCF6,0x4203,0x4936,0x80,0x76,0x2A,0x9F,0x4C,0xFD,0x50,0xCB);\r
+\r
+\r
 MIDL_DEFINE_GUID(IID, IID_IDeckLinkConfiguration_v10_2,0xC679A35B,0x610C,0x4D09,0xB7,0x48,0x1D,0x04,0x78,0x10,0x0F,0xC0);\r
 \r
 \r