library DeckLinkAPI\r
{\r
\r
-/* Type Declarations */\r
+// Type Declarations\r
\r
typedef LONGLONG BMDTimeValue;\r
typedef LONGLONG BMDTimeScale;\r
typedef unsigned long BMDTimecodeBCD;\r
+typedef unsigned long BMDTimecodeUserBits;\r
\r
-/* End Type Declarations */\r
\r
-/* Enumeration Mapping */\r
+// Enumeration Mapping\r
\r
+cpp_quote("typedef unsigned long BMDDisplayModeFlags;")\r
cpp_quote("typedef unsigned long BMDFrameFlags;")\r
cpp_quote("typedef unsigned long BMDVideoInputFlags;")\r
cpp_quote("typedef unsigned long BMDVideoInputFormatChangedEvents;")\r
cpp_quote("typedef unsigned long BMDDetectedVideoInputFormatFlags;")\r
cpp_quote("typedef unsigned long BMDTimecodeFlags;")\r
cpp_quote("typedef unsigned long BMDAnalogVideoFlags;")\r
+cpp_quote("typedef unsigned long BMDDeckControlStatusFlags;")\r
+cpp_quote("typedef unsigned long BMDDeckControlExportModeOpsFlags;")\r
cpp_quote("#if 0")\r
+typedef enum _BMDDisplayModeFlags BMDDisplayModeFlags;\r
typedef enum _BMDFrameFlags BMDFrameFlags;\r
typedef enum _BMDVideoInputFlags BMDVideoInputFlags;\r
typedef enum _BMDVideoInputFormatChangedEvents BMDVideoInputFormatChangedEvents;\r
typedef enum _BMDDetectedVideoInputFormatFlags BMDDetectedVideoInputFormatFlags;\r
typedef enum _BMDTimecodeFlags BMDTimecodeFlags;\r
typedef enum _BMDAnalogVideoFlags BMDAnalogVideoFlags;\r
+typedef enum _BMDDeckControlStatusFlags BMDDeckControlStatusFlags;\r
+typedef enum _BMDDeckControlExportModeOpsFlags BMDDeckControlExportModeOpsFlags;\r
cpp_quote("#endif")\r
\r
-/* End Enumeration Mapping */\r
\r
/* Enum BMDDisplayMode - Video display modes */\r
\r
typedef [v1_enum] enum _BMDDisplayMode {\r
+\r
+ /* SD Modes */\r
+\r
bmdModeNTSC = /* 'ntsc' */ 0x6E747363,\r
- bmdModeNTSC2398 = /* 'nt23' */ 0x6E743233, // 3:2 pulldown\r
+ bmdModeNTSC2398 = /* 'nt23' */ 0x6E743233, // 3:2 pulldown\r
bmdModePAL = /* 'pal ' */ 0x70616C20,\r
\r
/* HD 1080 Modes */\r
bmdModeHD1080p30 = /* 'Hp30' */ 0x48703330,\r
bmdModeHD1080i50 = /* 'Hi50' */ 0x48693530,\r
bmdModeHD1080i5994 = /* 'Hi59' */ 0x48693539,\r
- bmdModeHD1080i6000 = /* 'Hi60' */ 0x48693630, // N.B. This _really_ is 60.00 Hz.\r
+ bmdModeHD1080i6000 = /* 'Hi60' */ 0x48693630, // N.B. This _really_ is 60.00 Hz.\r
bmdModeHD1080p50 = /* 'Hp50' */ 0x48703530,\r
bmdModeHD1080p5994 = /* 'Hp59' */ 0x48703539,\r
- bmdModeHD1080p6000 = /* 'Hp60' */ 0x48703630, // N.B. This _really_ is 60.00 Hz.\r
+ bmdModeHD1080p6000 = /* 'Hp60' */ 0x48703630, // N.B. This _really_ is 60.00 Hz.\r
\r
/* HD 720 Modes */\r
\r
bmdMode2k25 = /* '2k25' */ 0x326B3235\r
} BMDDisplayMode;\r
\r
-/* End Enum BMDDisplayMode */\r
\r
/* Enum BMDFieldDominance - Video field dominance */\r
\r
bmdProgressiveSegmentedFrame = /* 'psf ' */ 0x70736620\r
} BMDFieldDominance;\r
\r
-/* End Enum BMDFieldDominance */\r
\r
/* Enum BMDPixelFormat - Video pixel formats supported for output/input */\r
\r
typedef [v1_enum] enum _BMDPixelFormat {\r
bmdFormat8BitYUV = /* '2vuy' */ 0x32767579,\r
bmdFormat10BitYUV = /* 'v210' */ 0x76323130,\r
- bmdFormat8BitARGB = 0x20,\r
+ bmdFormat8BitARGB = 32,\r
bmdFormat8BitBGRA = /* 'BGRA' */ 0x42475241,\r
- bmdFormat10BitRGB = /* 'r210' */ 0x72323130\r
+ bmdFormat10BitRGB = /* 'r210' */ 0x72323130 // Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10\r
} BMDPixelFormat;\r
\r
-/* End Enum BMDPixelFormat */\r
+\r
+/* Enum BMDDisplayModeFlags - Flags to describe the characteristics of an IDeckLinkDisplayMode. */\r
+\r
+[v1_enum] enum _BMDDisplayModeFlags {\r
+ bmdDisplayModeSupports3D = 1 << 0,\r
+ bmdDisplayModeColorspaceRec601 = 1 << 1,\r
+ bmdDisplayModeColorspaceRec709 = 1 << 2\r
+};\r
+\r
\r
/* Enum BMDVideoOutputFlags - Flags to control the output of ancillary data along with video. */\r
\r
typedef [v1_enum] enum _BMDVideoOutputFlags {\r
bmdVideoOutputFlagDefault = 0,\r
- bmdVideoOutputRP188 = 1 << 0,\r
- bmdVideoOutputVANC = 1 << 1\r
+ bmdVideoOutputVANC = 1 << 0,\r
+ bmdVideoOutputVITC = 1 << 1,\r
+ bmdVideoOutputRP188 = 1 << 2,\r
+ bmdVideoOutputDualStream3D = 1 << 4\r
} BMDVideoOutputFlags;\r
\r
-/* End Enum BMDVideoOutputFlags */\r
\r
/* Enum BMDFrameFlags - Frame flags */\r
\r
bmdFrameFlagDefault = 0,\r
bmdFrameFlagFlipVertical = 1 << 0,\r
\r
- /* Flags that are valid only for frames returned through IDeckLinkInput */\r
+ /* Flags that are applicable only to instances of IDeckLinkVideoInputFrame */\r
\r
bmdFrameHasNoInputSource = 1 << 31\r
};\r
\r
-/* End Enum BMDFrameFlags */\r
\r
/* Enum BMDVideoInputFlags - Flags applicable to video input */\r
\r
[v1_enum] enum _BMDVideoInputFlags {\r
bmdVideoInputFlagDefault = 0,\r
- bmdVideoInputEnableFormatDetection = 1 << 0\r
+ bmdVideoInputEnableFormatDetection = 1 << 0,\r
+ bmdVideoInputDualStream3D = 1 << 1\r
};\r
\r
-/* End Enum BMDVideoInputFlags */\r
\r
/* Enum BMDVideoInputFormatChangedEvents - Bitmask passed to the VideoInputFormatChanged notification to identify the properties of the input signal that have changed */\r
\r
bmdVideoInputColorspaceChanged = 1 << 2\r
};\r
\r
-/* End Enum BMDVideoInputFormatChangedEvents */\r
\r
/* Enum BMDDetectedVideoInputFormatFlags - Flags passed to the VideoInputFormatChanged notification to describe the detected video input signal */\r
\r
bmdDetectedVideoInputRGB444 = 1 << 1\r
};\r
\r
-/* End Enum BMDDetectedVideoInputFormatFlags */\r
\r
/* Enum BMDOutputFrameCompletionResult - Frame Completion Callback */\r
\r
bmdOutputFrameFlushed \r
} BMDOutputFrameCompletionResult;\r
\r
-/* End Enum BMDOutputFrameCompletionResult */\r
+\r
+/* Enum BMDReferenceStatus - GenLock input status */\r
+\r
+typedef [v1_enum] enum _BMDReferenceStatus {\r
+ bmdReferenceNotSupportedByHardware = 1 << 0,\r
+ bmdReferenceLocked = 1 << 1\r
+} BMDReferenceStatus;\r
+\r
\r
/* Enum BMDAudioSampleRate - Audio sample rates supported for output/input */\r
\r
bmdAudioSampleRate48kHz = 48000\r
} BMDAudioSampleRate;\r
\r
-/* End Enum BMDAudioSampleRate */\r
\r
/* Enum BMDAudioSampleType - Audio sample sizes supported for output/input */\r
\r
bmdAudioSampleType32bitInteger = 32\r
} BMDAudioSampleType;\r
\r
-/* End Enum BMDAudioSampleType */\r
\r
/* Enum BMDAudioOutputStreamType - Audio output stream type */\r
\r
bmdAudioOutputStreamTimestamped \r
} BMDAudioOutputStreamType;\r
\r
-/* End Enum BMDAudioOutputStreamType */\r
\r
/* Enum BMDDisplayModeSupport - Output mode supported flags */\r
\r
bmdDisplayModeSupportedWithConversion \r
} BMDDisplayModeSupport;\r
\r
-/* End Enum BMDDisplayModeSupport */\r
\r
/* Enum BMDTimecodeFormat - Timecode formats for frame metadata */\r
\r
bmdTimecodeSerial = /* 'seri' */ 0x73657269\r
} BMDTimecodeFormat;\r
\r
-/* End Enum BMDTimecodeFormat */\r
\r
/* Enum BMDTimecodeFlags - Timecode flags */\r
\r
bmdTimecodeIsDropFrame = 1 << 0\r
};\r
\r
-/* End Enum BMDTimecodeFlags */\r
\r
/* Enum BMDVideoConnection - Video connection types */\r
\r
typedef [v1_enum] enum _BMDVideoConnection {\r
- bmdVideoConnectionSDI = /* 'sdi ' */ 0x73646920,\r
- bmdVideoConnectionHDMI = /* 'hdmi' */ 0x68646D69,\r
- bmdVideoConnectionOpticalSDI = /* 'opti' */ 0x6F707469,\r
- bmdVideoConnectionComponent = /* 'cpnt' */ 0x63706E74,\r
- bmdVideoConnectionComposite = /* 'cmst' */ 0x636D7374,\r
- bmdVideoConnectionSVideo = /* 'svid' */ 0x73766964\r
+ bmdVideoConnectionSDI = 1 << 0,\r
+ bmdVideoConnectionHDMI = 1 << 1,\r
+ bmdVideoConnectionOpticalSDI = 1 << 2,\r
+ bmdVideoConnectionComponent = 1 << 3,\r
+ bmdVideoConnectionComposite = 1 << 4,\r
+ bmdVideoConnectionSVideo = 1 << 5\r
} BMDVideoConnection;\r
\r
-/* End Enum BMDVideoConnection */\r
\r
/* Enum BMDAnalogVideoFlags - Analog video display flags */\r
\r
bmdAnalogVideoFlagComponentBetacamLevels = 1 << 1\r
};\r
\r
-/* End Enum BMDAnalogVideoFlags */\r
\r
/* Enum BMDAudioConnection - Audio connection types */\r
\r
bmdAudioConnectionAnalog = /* 'anlg' */ 0x616E6C67\r
} BMDAudioConnection;\r
\r
-/* End Enum BMDAudioConnection */\r
+\r
+/* Enum BMDAudioOutputAnalogAESSwitch - Audio output Analog/AESEBU switch */\r
+\r
+typedef [v1_enum] enum _BMDAudioOutputAnalogAESSwitch {\r
+ bmdAudioOutputSwitchAESEBU = /* 'aes ' */ 0x61657320,\r
+ bmdAudioOutputSwitchAnalog = /* 'anlg' */ 0x616E6C67\r
+} BMDAudioOutputAnalogAESSwitch;\r
+\r
\r
/* Enum BMDVideoOutputConversionMode - Video/audio conversion mode */\r
\r
typedef [v1_enum] enum _BMDVideoOutputConversionMode {\r
bmdNoVideoOutputConversion = /* 'none' */ 0x6E6F6E65,\r
- bmdVideoOutputLetterboxDownonversion = /* 'ltbx' */ 0x6C746278,\r
- bmdVideoOutputAnamorphicDownonversion = /* 'amph' */ 0x616D7068,\r
+ bmdVideoOutputLetterboxDownconversion = /* 'ltbx' */ 0x6C746278,\r
+ bmdVideoOutputAnamorphicDownconversion = /* 'amph' */ 0x616D7068,\r
bmdVideoOutputHD720toHD1080Conversion = /* '720c' */ 0x37323063,\r
bmdVideoOutputHardwareLetterboxDownconversion = /* 'HWlb' */ 0x48576C62,\r
bmdVideoOutputHardwareAnamorphicDownconversion = /* 'HWam' */ 0x4857616D,\r
- bmdVideoOutputHardwareCenterCutDownconversion = /* 'HWcc' */ 0x48576363\r
+ bmdVideoOutputHardwareCenterCutDownconversion = /* 'HWcc' */ 0x48576363,\r
+ bmdVideoOutputHardware720p1080pCrossconversion = /* 'xcap' */ 0x78636170,\r
+ bmdVideoOutputHardwareAnamorphic720pUpconversion = /* 'ua7p' */ 0x75613770,\r
+ bmdVideoOutputHardwareAnamorphic1080iUpconversion = /* 'ua1i' */ 0x75613169,\r
+ bmdVideoOutputHardwareAnamorphic149To720pUpconversion = /* 'u47p' */ 0x75343770,\r
+ bmdVideoOutputHardwareAnamorphic149To1080iUpconversion = /* 'u41i' */ 0x75343169,\r
+ bmdVideoOutputHardwarePillarbox720pUpconversion = /* 'up7p' */ 0x75703770,\r
+ bmdVideoOutputHardwarePillarbox1080iUpconversion = /* 'up1i' */ 0x75703169\r
} BMDVideoOutputConversionMode;\r
\r
-/* End Enum BMDVideoOutputConversionMode */\r
\r
/* Enum BMDVideoInputConversionMode - Video input conversion mode */\r
\r
bmdVideoInputAnamorphicUpconversion = /* 'amup' */ 0x616D7570\r
} BMDVideoInputConversionMode;\r
\r
-/* End Enum BMDVideoInputConversionMode */\r
\r
-/* Enum BMDDeckLinkAttributeID - DeckLink Atribute ID */\r
+/* Enum BMDVideo3DPackingFormat - Video 3D packing format */\r
+\r
+typedef [v1_enum] enum _BMDVideo3DPackingFormat {\r
+ bmdVideo3DPackingSidebySideHalf = /* 'sbsh' */ 0x73627368,\r
+ bmdVideo3DPackingLinebyLine = /* 'lbyl' */ 0x6C62796C,\r
+ bmdVideo3DPackingTopAndBottom = /* 'tabo' */ 0x7461626F,\r
+ bmdVideo3DPackingLeftOnly = /* 'left' */ 0x6C656674,\r
+ bmdVideo3DPackingRightOnly = /* 'righ' */ 0x72696768\r
+} BMDVideo3DPackingFormat;\r
+\r
+\r
+/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */\r
+\r
+typedef [v1_enum] enum _BMDDeckLinkConfigurationID {\r
+\r
+ /* Video Input/Output Flags */\r
+\r
+ bmdDeckLinkConfigUse1080pNotPsF = /* 'fpro' */ 0x6670726F,\r
+\r
+ /* Video Input/Output Integers */\r
+\r
+ bmdDeckLinkConfigHDMI3DPackingFormat = /* '3dpf' */ 0x33647066,\r
+\r
+ /* Audio Input/Output Flags */\r
+\r
+ bmdDeckLinkConfigAnalogAudioConsumerLevels = /* 'aacl' */ 0x6161636C,\r
+\r
+ /* Video output flags */\r
+\r
+ bmdDeckLinkConfigFieldFlickerRemoval = /* 'fdfr' */ 0x66646672,\r
+ bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion = /* 'to59' */ 0x746F3539,\r
+ bmdDeckLinkConfig444SDIVideoOutput = /* '444o' */ 0x3434346F,\r
+ bmdDeckLinkConfig3GBpsVideoOutput = /* '3gbs' */ 0x33676273,\r
+ bmdDeckLinkConfigBlackVideoOutputDuringCapture = /* 'bvoc' */ 0x62766F63,\r
+ bmdDeckLinkConfigLowLatencyVideoOutput = /* 'llvo' */ 0x6C6C766F,\r
+\r
+ /* Video Output Integers */\r
+\r
+ bmdDeckLinkConfigVideoOutputConnection = /* 'vocn' */ 0x766F636E,\r
+ bmdDeckLinkConfigVideoOutputConversionMode = /* 'vocm' */ 0x766F636D,\r
+ bmdDeckLinkConfigAnalogVideoOutputFlags = /* 'avof' */ 0x61766F66,\r
+ bmdDeckLinkConfigReferenceInputTimingOffset = /* 'glot' */ 0x676C6F74,\r
+\r
+ /* Video Input Integers */\r
+\r
+ bmdDeckLinkConfigVideoInputConnection = /* 'vicn' */ 0x7669636E,\r
+ bmdDeckLinkConfigAnalogVideoInputFlags = /* 'avif' */ 0x61766966,\r
+ bmdDeckLinkConfigVideoInputConversionMode = /* 'vicm' */ 0x7669636D,\r
+ bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame = /* 'pdif' */ 0x70646966,\r
+ bmdDeckLinkConfigVANCSourceLine1Mapping = /* 'vsl1' */ 0x76736C31,\r
+ bmdDeckLinkConfigVANCSourceLine2Mapping = /* 'vsl2' */ 0x76736C32,\r
+ bmdDeckLinkConfigVANCSourceLine3Mapping = /* 'vsl3' */ 0x76736C33,\r
+\r
+ /* Audio Input Integers */\r
+\r
+ bmdDeckLinkConfigAudioInputConnection = /* 'aicn' */ 0x6169636E,\r
+\r
+ /* Audio Input Floats */\r
+\r
+ bmdDeckLinkConfigAnalogAudioInputScaleChannel1 = /* 'ais1' */ 0x61697331,\r
+ bmdDeckLinkConfigAnalogAudioInputScaleChannel2 = /* 'ais2' */ 0x61697332,\r
+ bmdDeckLinkConfigAnalogAudioInputScaleChannel3 = /* 'ais3' */ 0x61697333,\r
+ bmdDeckLinkConfigAnalogAudioInputScaleChannel4 = /* 'ais4' */ 0x61697334,\r
+ bmdDeckLinkConfigDigitalAudioInputScale = /* 'dais' */ 0x64616973,\r
+\r
+ /* Audio Output Integers */\r
+\r
+ bmdDeckLinkConfigAudioOutputAESAnalogSwitch = /* 'aoaa' */ 0x616F6161,\r
+\r
+ /* Audio Output Floats */\r
+\r
+ bmdDeckLinkConfigAnalogAudioOutputScaleChannel1 = /* 'aos1' */ 0x616F7331,\r
+ bmdDeckLinkConfigAnalogAudioOutputScaleChannel2 = /* 'aos2' */ 0x616F7332,\r
+ bmdDeckLinkConfigAnalogAudioOutputScaleChannel3 = /* 'aos3' */ 0x616F7333,\r
+ bmdDeckLinkConfigAnalogAudioOutputScaleChannel4 = /* 'aos4' */ 0x616F7334,\r
+ bmdDeckLinkConfigDigitalAudioOutputScale = /* 'daos' */ 0x64616F73\r
+} BMDDeckLinkConfigurationID;\r
+\r
+\r
+/* Enum BMDDeckLinkAttributeID - DeckLink Attribute ID */\r
\r
typedef [v1_enum] enum _BMDDeckLinkAttributeID {\r
\r
BMDDeckLinkSupportsExternalKeying = /* 'keye' */ 0x6B657965,\r
BMDDeckLinkSupportsHDKeying = /* 'keyh' */ 0x6B657968,\r
BMDDeckLinkSupportsInputFormatDetection = /* 'infd' */ 0x696E6664,\r
+ BMDDeckLinkHasReferenceInput = /* 'hrin' */ 0x6872696E,\r
BMDDeckLinkHasSerialPort = /* 'hspt' */ 0x68737074,\r
\r
/* Integers */\r
\r
BMDDeckLinkMaximumAudioChannels = /* 'mach' */ 0x6D616368,\r
+ BMDDeckLinkNumberOfSubDevices = /* 'nsbd' */ 0x6E736264,\r
+ BMDDeckLinkSubDeviceIndex = /* 'subi' */ 0x73756269,\r
+ BMDDeckLinkVideoOutputConnections = /* 'vocn' */ 0x766F636E,\r
+ BMDDeckLinkVideoInputConnections = /* 'vicn' */ 0x7669636E,\r
\r
/* Strings */\r
\r
BMDDeckLinkSerialPortDeviceName = /* 'slpn' */ 0x736C706E\r
} BMDDeckLinkAttributeID;\r
\r
-/* End Enum BMDDeckLinkAttributeID */\r
\r
/* Enum BMDDeckLinkAPIInformationID - DeckLinkAPI information ID */\r
\r
BMDDeckLinkAPIVersion = /* 'vers' */ 0x76657273\r
} BMDDeckLinkAPIInformationID;\r
\r
-/* End Enum BMDDeckLinkAPIInformationID */\r
\r
-/* Forward Declarations */\r
+/* Enum BMDDeckControlMode - DeckControl mode */\r
+\r
+typedef [v1_enum] enum _BMDDeckControlMode {\r
+ bmdDeckControlNotOpened = /* 'ntop' */ 0x6E746F70,\r
+ bmdDeckControlVTRControlMode = /* 'vtrc' */ 0x76747263,\r
+ bmdDeckControlExportMode = /* 'expm' */ 0x6578706D,\r
+ bmdDeckControlCaptureMode = /* 'capm' */ 0x6361706D\r
+} BMDDeckControlMode;\r
+\r
+\r
+/* Enum BMDDeckControlEvent - DeckControl event */\r
+\r
+typedef [v1_enum] enum _BMDDeckControlEvent {\r
+ bmdDeckControlAbortedEvent = /* 'abte' */ 0x61627465, // This event is triggered when a capture or edit-to-tape operation is aborted.\r
+\r
+ /* Export-To-Tape events */\r
+\r
+ bmdDeckControlPrepareForExportEvent = /* 'pfee' */ 0x70666565, // This event is triggered a few frames before reaching the in-point. IDeckLinkInput::StartScheduledPlayback() should be called at this point.\r
+ bmdDeckControlExportCompleteEvent = /* 'exce' */ 0x65786365, // This event is triggered a few frames after reaching the out-point. At this point, it is safe to stop playback.\r
+\r
+ /* Capture events */\r
+\r
+ bmdDeckControlPrepareForCaptureEvent = /* 'pfce' */ 0x70666365, // This event is triggered a few frames before reaching the in-point. The serial timecode attached to IDeckLinkVideoInputFrames is now valid.\r
+ bmdDeckControlCaptureCompleteEvent = /* 'ccev' */ 0x63636576 // This event is triggered a few frames after reaching the out-point.\r
+} BMDDeckControlEvent;\r
+\r
+\r
+/* Enum BMDDeckControlVTRControlState - VTR Control state */\r
+\r
+typedef [v1_enum] enum _BMDDeckControlVTRControlState {\r
+ bmdDeckControlNotInVTRControlMode = /* 'nvcm' */ 0x6E76636D,\r
+ bmdDeckControlVTRControlPlaying = /* 'vtrp' */ 0x76747270,\r
+ bmdDeckControlVTRControlRecording = /* 'vtrr' */ 0x76747272,\r
+ bmdDeckControlVTRControlStill = /* 'vtra' */ 0x76747261,\r
+ bmdDeckControlVTRControlSeeking = /* 'vtrs' */ 0x76747273,\r
+ bmdDeckControlVTRControlStopped = /* 'vtro' */ 0x7674726F\r
+} BMDDeckControlVTRControlState;\r
+\r
+\r
+/* Enum BMDDeckControlStatusFlags - Deck Control status flags */\r
+\r
+[v1_enum] enum _BMDDeckControlStatusFlags {\r
+ bmdDeckControlStatusDeckConnected = 1 << 0,\r
+ bmdDeckControlStatusRemoteMode = 1 << 1,\r
+ bmdDeckControlStatusRecordInhibited = 1 << 2,\r
+ bmdDeckControlStatusCassetteOut = 1 << 3\r
+};\r
+\r
+\r
+/* Enum BMDDeckControlExportModeOpsFlags - Export mode flags */\r
+\r
+[v1_enum] enum _BMDDeckControlExportModeOpsFlags {\r
+ bmdDeckControlExportModeInsertVideo = 1 << 0,\r
+ bmdDeckControlExportModeInsertAudio1 = 1 << 1,\r
+ bmdDeckControlExportModeInsertAudio2 = 1 << 2,\r
+ bmdDeckControlExportModeInsertAudio3 = 1 << 3,\r
+ bmdDeckControlExportModeInsertAudio4 = 1 << 4,\r
+ bmdDeckControlExportModeInsertAudio5 = 1 << 5,\r
+ bmdDeckControlExportModeInsertAudio6 = 1 << 6,\r
+ bmdDeckControlExportModeInsertAudio7 = 1 << 7,\r
+ bmdDeckControlExportModeInsertAudio8 = 1 << 8,\r
+ bmdDeckControlExportModeInsertAudio9 = 1 << 9,\r
+ bmdDeckControlExportModeInsertAudio10 = 1 << 10,\r
+ bmdDeckControlExportModeInsertAudio11 = 1 << 11,\r
+ bmdDeckControlExportModeInsertAudio12 = 1 << 12,\r
+ bmdDeckControlExportModeInsertTimeCode = 1 << 13,\r
+ bmdDeckControlExportModeInsertAssemble = 1 << 14,\r
+ bmdDeckControlExportModeInsertPreview = 1 << 15,\r
+ bmdDeckControlUseManualExport = 1 << 16\r
+};\r
+\r
+\r
+/* Enum BMDDeckControlError - Deck Control error */\r
+\r
+typedef [v1_enum] enum _BMDDeckControlError {\r
+ bmdDeckControlNoError = /* 'noer' */ 0x6E6F6572,\r
+ bmdDeckControlModeError = /* 'moer' */ 0x6D6F6572,\r
+ bmdDeckControlMissedInPointError = /* 'mier' */ 0x6D696572,\r
+ bmdDeckControlDeckTimeoutError = /* 'dter' */ 0x64746572,\r
+ bmdDeckControlCommandFailedError = /* 'cfer' */ 0x63666572,\r
+ bmdDeckControlDeviceAlreadyOpenedError = /* 'dalo' */ 0x64616C6F,\r
+ bmdDeckControlFailedToOpenDeviceError = /* 'fder' */ 0x66646572,\r
+ bmdDeckControlInLocalModeError = /* 'lmer' */ 0x6C6D6572,\r
+ bmdDeckControlEndOfTapeError = /* 'eter' */ 0x65746572,\r
+ bmdDeckControlUserAbortError = /* 'uaer' */ 0x75616572,\r
+ bmdDeckControlNoTapeInDeckError = /* 'nter' */ 0x6E746572,\r
+ bmdDeckControlNoVideoFromCardError = /* 'nvfc' */ 0x6E766663,\r
+ bmdDeckControlNoCommunicationError = /* 'ncom' */ 0x6E636F6D,\r
+ bmdDeckControlUnknownError = /* 'uner' */ 0x756E6572\r
+} BMDDeckControlError;\r
+\r
+\r
+/* Enum BMD3DPreviewFormat - Linked Frame preview format */\r
+\r
+typedef [v1_enum] enum _BMD3DPreviewFormat {\r
+ bmd3DPreviewFormatDefault = /* 'defa' */ 0x64656661,\r
+ bmd3DPreviewFormatLeftOnly = /* 'left' */ 0x6C656674,\r
+ bmd3DPreviewFormatRightOnly = /* 'righ' */ 0x72696768,\r
+ bmd3DPreviewFormatSideBySide = /* 'side' */ 0x73696465,\r
+ bmd3DPreviewFormatTopBottom = /* 'topb' */ 0x746F7062\r
+} BMD3DPreviewFormat;\r
+\r
+\r
+// Forward Declarations\r
\r
interface IDeckLinkVideoOutputCallback;\r
interface IDeckLinkInputCallback;\r
interface IDeckLinkTimecode;\r
interface IDeckLinkVideoFrame;\r
interface IDeckLinkMutableVideoFrame;\r
+interface IDeckLinkVideoFrame3DExtensions;\r
interface IDeckLinkVideoInputFrame;\r
interface IDeckLinkVideoFrameAncillary;\r
interface IDeckLinkAudioInputPacket;\r
interface IDeckLinkConfiguration;\r
interface IDeckLinkAttributes;\r
interface IDeckLinkKeyer;\r
+interface IDeckLinkVideoConversion;\r
+interface IDeckLinkDeckControlStatusCallback;\r
+interface IDeckLinkDeckControl;\r
\r
-/* End Forward Declarations */\r
\r
/* Interface IDeckLinkVideoOutputCallback - Frame completion callback. */\r
\r
[\r
object,\r
- uuid(E763A626-4A3C-49D1-BF13-E7AD3692AE52),\r
+ uuid(20AA5225-1958-47CB-820B-80A8D521A6EE),\r
helpstring("Frame completion callback.")\r
] interface IDeckLinkVideoOutputCallback : IUnknown\r
{\r
HRESULT ScheduledPlaybackHasStopped(void);\r
};\r
\r
-/* End Interface IDeckLinkVideoOutputCallback */\r
\r
/* Interface IDeckLinkInputCallback - Frame arrival callback. */\r
\r
[\r
object,\r
- uuid(31D28EE7-88B6-4CB1-897A-CDBF79A26414),\r
+ uuid(DD04E5EC-7415-42AB-AE4A-E80C4DFC044A),\r
helpstring("Frame arrival callback.")\r
] interface IDeckLinkInputCallback : IUnknown\r
{\r
HRESULT VideoInputFormatChanged([in] BMDVideoInputFormatChangedEvents notificationEvents, [in] IDeckLinkDisplayMode *newDisplayMode, [in] BMDDetectedVideoInputFormatFlags detectedSignalFlags);\r
- HRESULT VideoInputFrameArrived([in] IDeckLinkVideoInputFrame *videoFrame, [in] IDeckLinkAudioInputPacket *audioPacket);\r
+ HRESULT VideoInputFrameArrived([in] IDeckLinkVideoInputFrame* videoFrame, [in] IDeckLinkAudioInputPacket* audioPacket);\r
};\r
\r
-/* End Interface IDeckLinkInputCallback */\r
\r
/* Interface IDeckLinkMemoryAllocator - Memory allocator for video frames. */\r
\r
helpstring("Memory allocator for video frames.")\r
] interface IDeckLinkMemoryAllocator : IUnknown\r
{\r
- HRESULT AllocateBuffer(unsigned long bufferSize, [out] void **allocatedBuffer);\r
+ HRESULT AllocateBuffer([in] unsigned long bufferSize, [out] void **allocatedBuffer);\r
HRESULT ReleaseBuffer([in] void *buffer);\r
\r
HRESULT Commit(void);\r
HRESULT Decommit(void);\r
};\r
\r
-/* End Interface IDeckLinkMemoryAllocator */\r
\r
/* Interface IDeckLinkAudioOutputCallback - Optional callback to allow audio samples to be pulled as required. */\r
\r
helpstring("Optional callback to allow audio samples to be pulled as required.")\r
] interface IDeckLinkAudioOutputCallback : IUnknown\r
{\r
- HRESULT RenderAudioSamples(BOOL preroll);\r
+ HRESULT RenderAudioSamples([in] BOOL preroll);\r
};\r
\r
-/* End Interface IDeckLinkAudioOutputCallback */\r
\r
/* Interface IDeckLinkIterator - enumerates installed DeckLink hardware */\r
\r
HRESULT Next([out] IDeckLink **deckLinkInstance);\r
};\r
\r
-/* End Interface IDeckLinkIterator */\r
\r
/* Interface IDeckLinkAPIInformation - DeckLinkAPI attribute interface */\r
\r
HRESULT GetString([in] BMDDeckLinkAPIInformationID cfgID, [out] BSTR *value);\r
};\r
\r
-/* End Interface IDeckLinkAPIInformation */\r
\r
/* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */\r
\r
[\r
object,\r
- uuid(455D741F-1779-4800-86F5-0B5D13D79751),\r
+ uuid(9C88499F-F601-4021-B80B-032E4EB41C35),\r
helpstring("enumerates over supported input/output display modes.")\r
] interface IDeckLinkDisplayModeIterator : IUnknown\r
{\r
HRESULT Next([out] IDeckLinkDisplayMode **deckLinkDisplayMode);\r
};\r
\r
-/* End Interface IDeckLinkDisplayModeIterator */\r
\r
/* Interface IDeckLinkDisplayMode - represents a display mode */\r
\r
[\r
object,\r
- uuid(87451E84-2B7E-439E-A629-4393EA4A8550),\r
+ uuid(3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78),\r
helpstring("represents a display mode")\r
] interface IDeckLinkDisplayMode : IUnknown\r
{\r
long GetHeight(void);\r
HRESULT GetFrameRate([out] BMDTimeValue *frameDuration, [out] BMDTimeScale *timeScale);\r
BMDFieldDominance GetFieldDominance(void);\r
+ BMDDisplayModeFlags GetFlags(void);\r
};\r
\r
-/* End Interface IDeckLinkDisplayMode */\r
\r
/* Interface IDeckLink - represents a DeckLink device */\r
\r
HRESULT GetModelName([out] BSTR *modelName);\r
};\r
\r
-/* End Interface IDeckLink */\r
\r
/* Interface IDeckLinkOutput - Created by QueryInterface from IDeckLink. */\r
\r
[\r
object,\r
- uuid(29228142-EB8C-4141-A621-F74026450955),\r
+ uuid(A3EF0963-0862-44ED-92A9-EE89ABF431C7),\r
local, \r
helpstring("Created by QueryInterface from IDeckLink.")\r
] interface IDeckLinkOutput : IUnknown\r
{\r
- HRESULT DoesSupportVideoMode(BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, [out] BMDDisplayModeSupport *result);\r
+ HRESULT DoesSupportVideoMode([in] BMDDisplayMode displayMode, [in] BMDPixelFormat pixelFormat, [in] BMDVideoOutputFlags flags, [out] BMDDisplayModeSupport *result, [out] IDeckLinkDisplayMode **resultDisplayMode);\r
HRESULT GetDisplayModeIterator([out] IDeckLinkDisplayModeIterator **iterator);\r
\r
HRESULT SetScreenPreviewCallback([in] IDeckLinkScreenPreviewCallback *previewCallback);\r
\r
/* Video Output */\r
\r
- HRESULT EnableVideoOutput(BMDDisplayMode displayMode, BMDVideoOutputFlags flags);\r
+ HRESULT EnableVideoOutput([in] BMDDisplayMode displayMode, [in] BMDVideoOutputFlags flags);\r
HRESULT DisableVideoOutput(void);\r
\r
HRESULT SetVideoOutputFrameMemoryAllocator([in] IDeckLinkMemoryAllocator *theAllocator);\r
- HRESULT CreateVideoFrame(long width, long height, long rowBytes, BMDPixelFormat pixelFormat, BMDFrameFlags flags, [out] IDeckLinkMutableVideoFrame **outFrame);\r
- HRESULT CreateAncillaryData(BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, [out] IDeckLinkVideoFrameAncillary **outBuffer);\r
+ HRESULT CreateVideoFrame([in] long width, [in] long height, [in] long rowBytes, [in] BMDPixelFormat pixelFormat, [in] BMDFrameFlags flags, [out] IDeckLinkMutableVideoFrame **outFrame);\r
+ HRESULT CreateAncillaryData([in] BMDPixelFormat pixelFormat, [out] IDeckLinkVideoFrameAncillary **outBuffer);\r
\r
HRESULT DisplayVideoFrameSync([in] IDeckLinkVideoFrame *theFrame);\r
- HRESULT ScheduleVideoFrame([in] IDeckLinkVideoFrame *theFrame, BMDTimeValue displayTime, BMDTimeValue displayDuration, BMDTimeScale timeScale);\r
+ HRESULT ScheduleVideoFrame([in] IDeckLinkVideoFrame *theFrame, [in] BMDTimeValue displayTime, [in] BMDTimeValue displayDuration, [in] BMDTimeScale timeScale);\r
HRESULT SetScheduledFrameCompletionCallback([in] IDeckLinkVideoOutputCallback *theCallback);\r
HRESULT GetBufferedVideoFrameCount([out] unsigned long *bufferedFrameCount);\r
\r
/* Audio Output */\r
\r
- HRESULT EnableAudioOutput(BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, unsigned long channelCount, BMDAudioOutputStreamType streamType);\r
+ HRESULT EnableAudioOutput([in] BMDAudioSampleRate sampleRate, [in] BMDAudioSampleType sampleType, [in] unsigned long channelCount, [in] BMDAudioOutputStreamType streamType);\r
HRESULT DisableAudioOutput(void);\r
\r
- HRESULT WriteAudioSamplesSync([in] void *buffer, unsigned long sampleFrameCount, [out] unsigned long *sampleFramesWritten);\r
+ HRESULT WriteAudioSamplesSync([in] void *buffer, [in] unsigned long sampleFrameCount, [out] unsigned long *sampleFramesWritten);\r
\r
HRESULT BeginAudioPreroll(void);\r
HRESULT EndAudioPreroll(void);\r
- HRESULT ScheduleAudioSamples([in] void *buffer, unsigned long sampleFrameCount, BMDTimeValue streamTime, BMDTimeScale timeScale, [out] unsigned long *sampleFramesWritten);\r
+ HRESULT ScheduleAudioSamples([in] void *buffer, [in] unsigned long sampleFrameCount, [in] BMDTimeValue streamTime, [in] BMDTimeScale timeScale, [out] unsigned long *sampleFramesWritten);\r
\r
HRESULT GetBufferedAudioSampleFrameCount([out] unsigned long *bufferedSampleFrameCount);\r
HRESULT FlushBufferedAudioSamples(void);\r
\r
/* Output Control */\r
\r
- HRESULT StartScheduledPlayback(BMDTimeValue playbackStartTime, BMDTimeScale timeScale, double playbackSpeed);\r
- HRESULT StopScheduledPlayback(BMDTimeValue stopPlaybackAtTime, [out] BMDTimeValue *actualStopTime, BMDTimeScale timeScale);\r
+ HRESULT StartScheduledPlayback([in] BMDTimeValue playbackStartTime, [in] BMDTimeScale timeScale, [in] double playbackSpeed);\r
+ HRESULT StopScheduledPlayback([in] BMDTimeValue stopPlaybackAtTime, [out] BMDTimeValue *actualStopTime, [in] BMDTimeScale timeScale);\r
HRESULT IsScheduledPlaybackRunning([out] BOOL *active);\r
- HRESULT GetScheduledStreamTime(BMDTimeScale desiredTimeScale, [out] BMDTimeValue *streamTime, [out] double *playbackSpeed);\r
+ HRESULT GetScheduledStreamTime([in] BMDTimeScale desiredTimeScale, [out] BMDTimeValue *streamTime, [out] double *playbackSpeed);\r
+ HRESULT GetReferenceStatus([out] BMDReferenceStatus *referenceStatus);\r
\r
/* Hardware Timing */\r
\r
- HRESULT GetHardwareReferenceClock(BMDTimeScale desiredTimeScale, [out] BMDTimeValue *hardwareTime, [out] BMDTimeValue *timeInFrame, [out] BMDTimeValue *ticksPerFrame);\r
+ HRESULT GetHardwareReferenceClock([in] BMDTimeScale desiredTimeScale, [out] BMDTimeValue *hardwareTime, [out] BMDTimeValue *timeInFrame, [out] BMDTimeValue *ticksPerFrame);\r
};\r
\r
-/* End Interface IDeckLinkOutput */\r
\r
/* Interface IDeckLinkInput - Created by QueryInterface from IDeckLink. */\r
\r
[\r
object,\r
- uuid(300C135A-9F43-48E2-9906-6D7911D93CF1),\r
+ uuid(6D40EF78-28B9-4E21-990D-95BB7750A04F),\r
helpstring("Created by QueryInterface from IDeckLink.")\r
] interface IDeckLinkInput : IUnknown\r
{\r
- HRESULT DoesSupportVideoMode(BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, [out] BMDDisplayModeSupport *result);\r
+ HRESULT DoesSupportVideoMode([in] BMDDisplayMode displayMode, [in] BMDPixelFormat pixelFormat, [in] BMDVideoInputFlags flags, [out] BMDDisplayModeSupport *result, [out] IDeckLinkDisplayMode **resultDisplayMode);\r
HRESULT GetDisplayModeIterator([out] IDeckLinkDisplayModeIterator **iterator);\r
\r
HRESULT SetScreenPreviewCallback([in] IDeckLinkScreenPreviewCallback *previewCallback);\r
\r
/* Video Input */\r
\r
- HRESULT EnableVideoInput(BMDDisplayMode displayMode, BMDPixelFormat pixelFormat, BMDVideoInputFlags flags);\r
+ HRESULT EnableVideoInput([in] BMDDisplayMode displayMode, [in] BMDPixelFormat pixelFormat, [in] BMDVideoInputFlags flags);\r
HRESULT DisableVideoInput(void);\r
HRESULT GetAvailableVideoFrameCount([out] unsigned long *availableFrameCount);\r
\r
/* Audio Input */\r
\r
- HRESULT EnableAudioInput(BMDAudioSampleRate sampleRate, BMDAudioSampleType sampleType, unsigned long channelCount);\r
+ HRESULT EnableAudioInput([in] BMDAudioSampleRate sampleRate, [in] BMDAudioSampleType sampleType, [in] unsigned long channelCount);\r
HRESULT DisableAudioInput(void);\r
HRESULT GetAvailableAudioSampleFrameCount([out] unsigned long *availableSampleFrameCount);\r
\r
\r
/* Hardware Timing */\r
\r
- HRESULT GetHardwareReferenceClock(BMDTimeScale desiredTimeScale, [out] BMDTimeValue *hardwareTime, [out] BMDTimeValue *timeInFrame, [out] BMDTimeValue *ticksPerFrame);\r
+ HRESULT GetHardwareReferenceClock([in] BMDTimeScale desiredTimeScale, [out] BMDTimeValue *hardwareTime, [out] BMDTimeValue *timeInFrame, [out] BMDTimeValue *ticksPerFrame);\r
};\r
\r
-/* End Interface IDeckLinkInput */\r
\r
/* Interface IDeckLinkTimecode - Used for video frame timecode representation. */\r
\r
[\r
object,\r
- uuid(EFB9BCA6-A521-44F7-BD69-2332F24D9EE6),\r
+ uuid(BC6CFBD3-8317-4325-AC1C-1216391E9340),\r
helpstring("Used for video frame timecode representation.")\r
] interface IDeckLinkTimecode : IUnknown\r
{\r
HRESULT GetComponents([out] unsigned char *hours, [out] unsigned char *minutes, [out] unsigned char *seconds, [out] unsigned char *frames);\r
HRESULT GetString([out] BSTR *timecode);\r
BMDTimecodeFlags GetFlags(void);\r
+ HRESULT GetTimecodeUserBits([out] BMDTimecodeUserBits *userBits);\r
};\r
\r
-/* End Interface IDeckLinkTimecode */\r
\r
/* Interface IDeckLinkVideoFrame - Interface to encapsulate a video frame; can be caller-implemented. */\r
\r
[\r
object,\r
- uuid(A8D8238E-6B18-4196-99E1-5AF717B83D32),\r
+ uuid(3F716FE0-F023-4111-BE5D-EF4414C05B17),\r
local, \r
helpstring("Interface to encapsulate a video frame; can be caller-implemented.")\r
] interface IDeckLinkVideoFrame : IUnknown\r
BMDFrameFlags GetFlags(void);\r
HRESULT GetBytes([out] void **buffer);\r
\r
- HRESULT GetTimecode(BMDTimecodeFormat format, [out] IDeckLinkTimecode **timecode);\r
+ HRESULT GetTimecode([in] BMDTimecodeFormat format, [out] IDeckLinkTimecode **timecode);\r
HRESULT GetAncillaryData([out] IDeckLinkVideoFrameAncillary **ancillary);\r
};\r
\r
-/* End Interface IDeckLinkVideoFrame */\r
\r
/* Interface IDeckLinkMutableVideoFrame - Created by IDeckLinkOutput::CreateVideoFrame. */\r
\r
[\r
object,\r
- uuid(46FCEE00-B4E6-43D0-91C0-023A7FCEB34F),\r
+ uuid(69E2639F-40DA-4E19-B6F2-20ACE815C390),\r
local, \r
helpstring("Created by IDeckLinkOutput::CreateVideoFrame.")\r
] interface IDeckLinkMutableVideoFrame : IDeckLinkVideoFrame\r
{\r
- HRESULT SetFlags(BMDFrameFlags newFlags);\r
+ HRESULT SetFlags([in] BMDFrameFlags newFlags);\r
\r
- HRESULT SetTimecode(BMDTimecodeFormat format, [in] IDeckLinkTimecode *timecode);\r
- HRESULT SetTimecodeFromComponents(BMDTimecodeFormat format, unsigned char hours, unsigned char minutes, unsigned char seconds, unsigned char frames, BMDTimecodeFlags flags);\r
+ HRESULT SetTimecode([in] BMDTimecodeFormat format, [in] IDeckLinkTimecode *timecode);\r
+ HRESULT SetTimecodeFromComponents([in] BMDTimecodeFormat format, [in] unsigned char hours, [in] unsigned char minutes, [in] unsigned char seconds, [in] unsigned char frames, [in] BMDTimecodeFlags flags);\r
HRESULT SetAncillaryData([in] IDeckLinkVideoFrameAncillary *ancillary);\r
+ HRESULT SetTimecodeUserBits([in] BMDTimecodeFormat format, [in] BMDTimecodeUserBits userBits);\r
+};\r
+\r
+\r
+/* Interface IDeckLinkVideoFrame3DExtensions - Optional interface implemented on IDeckLinkVideoFrame to support 3D frames */\r
+\r
+[\r
+ object,\r
+ uuid(DA0F7E4A-EDC7-48A8-9CDD-2DB51C729CD7),\r
+ local, \r
+ helpstring("Optional interface implemented on IDeckLinkVideoFrame to support 3D frames")\r
+] interface IDeckLinkVideoFrame3DExtensions : IUnknown\r
+{\r
+ BMDVideo3DPackingFormat Get3DPackingFormat(void);\r
+ HRESULT GetFrameForRightEye([in] IDeckLinkVideoFrame* *rightEyeFrame);\r
};\r
\r
-/* End Interface IDeckLinkMutableVideoFrame */\r
\r
/* Interface IDeckLinkVideoInputFrame - Provided by the IDeckLinkVideoInput frame arrival callback. */\r
\r
[\r
object,\r
- uuid(9A74FA41-AE9F-47AC-8CF4-01F42DD59965),\r
+ uuid(05CFE374-537C-4094-9A57-680525118F44),\r
local, \r
helpstring("Provided by the IDeckLinkVideoInput frame arrival callback.")\r
] interface IDeckLinkVideoInputFrame : IDeckLinkVideoFrame\r
{\r
- HRESULT GetStreamTime([out] BMDTimeValue *frameTime, [out] BMDTimeValue *frameDuration, BMDTimeScale timeScale);\r
- HRESULT GetHardwareReferenceTimestamp(BMDTimeScale timeScale, [out] BMDTimeValue *frameTime, [out] BMDTimeValue *frameDuration);\r
+ HRESULT GetStreamTime([out] BMDTimeValue *frameTime, [out] BMDTimeValue *frameDuration, [in] BMDTimeScale timeScale);\r
+ HRESULT GetHardwareReferenceTimestamp([in] BMDTimeScale timeScale, [out] BMDTimeValue *frameTime, [out] BMDTimeValue *frameDuration);\r
};\r
\r
-/* End Interface IDeckLinkVideoInputFrame */\r
\r
/* Interface IDeckLinkVideoFrameAncillary - Obtained through QueryInterface() on an IDeckLinkVideoFrame object. */\r
\r
] interface IDeckLinkVideoFrameAncillary : IUnknown\r
{\r
\r
- HRESULT GetBufferForVerticalBlankingLine(unsigned long lineNumber, [out] void **buffer);\r
+ HRESULT GetBufferForVerticalBlankingLine([in] unsigned long lineNumber, [out] void **buffer);\r
BMDPixelFormat GetPixelFormat(void);\r
BMDDisplayMode GetDisplayMode(void);\r
};\r
\r
-/* End Interface IDeckLinkVideoFrameAncillary */\r
\r
/* Interface IDeckLinkAudioInputPacket - Provided by the IDeckLinkInput callback. */\r
\r
{\r
long GetSampleFrameCount(void);\r
HRESULT GetBytes([out] void **buffer);\r
- HRESULT GetPacketTime([out] BMDTimeValue *packetTime, BMDTimeScale timeScale);\r
+ HRESULT GetPacketTime([out] BMDTimeValue *packetTime, [in] BMDTimeScale timeScale);\r
};\r
\r
-/* End Interface IDeckLinkAudioInputPacket */\r
\r
/* Interface IDeckLinkScreenPreviewCallback - Screen preview callback */\r
\r
[\r
object,\r
- uuid(373F499D-4B4D-4518-AD22-6354E5A5825E),\r
+ uuid(B1D3F49A-85FE-4C5D-95C8-0B5D5DCCD438),\r
local, \r
helpstring("Screen preview callback")\r
] interface IDeckLinkScreenPreviewCallback : IUnknown\r
HRESULT DrawFrame([in] IDeckLinkVideoFrame *theFrame);\r
};\r
\r
-/* End Interface IDeckLinkScreenPreviewCallback */\r
\r
/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance(). */\r
\r
[\r
object,\r
- uuid(BA575CD9-A15E-497B-B2C2-F9AFE7BE4EBA),\r
+ uuid(504E2209-CAC7-4C1A-9FB4-C5BB6274D22F),\r
local, \r
helpstring("Created with CoCreateInstance().")\r
] interface IDeckLinkGLScreenPreviewHelper : IUnknown\r
HRESULT InitializeGL(void);\r
HRESULT PaintGL(void);\r
HRESULT SetFrame([in] IDeckLinkVideoFrame *theFrame);\r
+ HRESULT Set3DPreviewFormat([in] BMD3DPreviewFormat previewFormat);\r
};\r
\r
-/* End Interface IDeckLinkGLScreenPreviewHelper */\r
\r
-/* Interface IDeckLinkConfiguration - Created by QueryInterface from IDeckLink. */\r
+/* Interface IDeckLinkConfiguration - DeckLink Configuration interface */\r
\r
[\r
object,\r
- uuid(B8EAD569-B764-47F0-A73F-AE40DF6CBF10),\r
- helpstring("Created by QueryInterface from IDeckLink.")\r
+ uuid(C679A35B-610C-4D09-B748-1D0478100FC0),\r
+ local, \r
+ helpstring("DeckLink Configuration interface")\r
] interface IDeckLinkConfiguration : IUnknown\r
{\r
- HRESULT GetConfigurationValidator([out] IDeckLinkConfiguration **configObject);\r
+ HRESULT SetFlag([in] BMDDeckLinkConfigurationID cfgID, [in] BOOL value);\r
+ HRESULT GetFlag([in] BMDDeckLinkConfigurationID cfgID, [out] BOOL *value);\r
+ HRESULT SetInt([in] BMDDeckLinkConfigurationID cfgID, [in] LONGLONG value);\r
+ HRESULT GetInt([in] BMDDeckLinkConfigurationID cfgID, [out] LONGLONG *value);\r
+ HRESULT SetFloat([in] BMDDeckLinkConfigurationID cfgID, [in] double value);\r
+ HRESULT GetFloat([in] BMDDeckLinkConfigurationID cfgID, [out] double *value);\r
+ HRESULT SetString([in] BMDDeckLinkConfigurationID cfgID, [in] BSTR value);\r
+ HRESULT GetString([in] BMDDeckLinkConfigurationID cfgID, [out] BSTR *value);\r
HRESULT WriteConfigurationToPreferences(void);\r
-\r
- /* Video Output Configuration */\r
-\r
- HRESULT SetVideoOutputFormat(BMDVideoConnection videoOutputConnection);\r
- HRESULT IsVideoOutputActive(BMDVideoConnection videoOutputConnection, [out] BOOL *active);\r
-\r
- HRESULT SetAnalogVideoOutputFlags(BMDAnalogVideoFlags analogVideoFlags);\r
- HRESULT GetAnalogVideoOutputFlags([out] BMDAnalogVideoFlags *analogVideoFlags);\r
-\r
- HRESULT EnableFieldFlickerRemovalWhenPaused(BOOL enable);\r
- HRESULT IsEnabledFieldFlickerRemovalWhenPaused([out] BOOL *enabled);\r
-\r
- HRESULT Set444And3GBpsVideoOutput(BOOL enable444VideoOutput, BOOL enable3GbsOutput);\r
- HRESULT Get444And3GBpsVideoOutput([out] BOOL *is444VideoOutputEnabled, [out] BOOL *threeGbsOutputEnabled);\r
-\r
- HRESULT SetVideoOutputConversionMode(BMDVideoOutputConversionMode conversionMode);\r
- HRESULT GetVideoOutputConversionMode([out] BMDVideoOutputConversionMode *conversionMode);\r
-\r
- HRESULT Set_HD1080p24_to_HD1080i5994_Conversion(BOOL enable);\r
- HRESULT Get_HD1080p24_to_HD1080i5994_Conversion([out] BOOL *enabled);\r
-\r
- /* Video Input Configuration */\r
-\r
- HRESULT SetVideoInputFormat(BMDVideoConnection videoInputFormat);\r
- HRESULT GetVideoInputFormat([out] BMDVideoConnection *videoInputFormat);\r
-\r
- HRESULT SetAnalogVideoInputFlags(BMDAnalogVideoFlags analogVideoFlags);\r
- HRESULT GetAnalogVideoInputFlags([out] BMDAnalogVideoFlags *analogVideoFlags);\r
-\r
- HRESULT SetVideoInputConversionMode(BMDVideoInputConversionMode conversionMode);\r
- HRESULT GetVideoInputConversionMode([out] BMDVideoInputConversionMode *conversionMode);\r
-\r
- HRESULT SetBlackVideoOutputDuringCapture(BOOL blackOutInCapture);\r
- HRESULT GetBlackVideoOutputDuringCapture([out] BOOL *blackOutInCapture);\r
-\r
- HRESULT Set32PulldownSequenceInitialTimecodeFrame(unsigned long aFrameTimecode);\r
- HRESULT Get32PulldownSequenceInitialTimecodeFrame([out] unsigned long *aFrameTimecode);\r
-\r
- HRESULT SetVancSourceLineMapping(unsigned long activeLine1VANCsource, unsigned long activeLine2VANCsource, unsigned long activeLine3VANCsource);\r
- HRESULT GetVancSourceLineMapping([out] unsigned long *activeLine1VANCsource, [out] unsigned long *activeLine2VANCsource, [out] unsigned long *activeLine3VANCsource);\r
-\r
- /* Audio Input Configuration */\r
-\r
- HRESULT SetAudioInputFormat(BMDAudioConnection audioInputFormat);\r
- HRESULT GetAudioInputFormat([out] BMDAudioConnection *audioInputFormat);\r
};\r
\r
-/* End Interface IDeckLinkConfiguration */\r
\r
/* Interface IDeckLinkAttributes - DeckLink Attribute interface */\r
\r
HRESULT GetString([in] BMDDeckLinkAttributeID cfgID, [out] BSTR *value);\r
};\r
\r
-/* End Interface IDeckLinkAttributes */\r
\r
/* Interface IDeckLinkKeyer - DeckLink Keyer interface */\r
\r
HRESULT Disable(void);\r
};\r
\r
-/* End Interface IDeckLinkKeyer */\r
+\r
+/* Interface IDeckLinkVideoConversion - Created with CoCreateInstance(). */\r
+\r
+[\r
+ object,\r
+ uuid(3BBCB8A2-DA2C-42D9-B5D8-88083644E99A),\r
+ local, \r
+ helpstring("Created with CoCreateInstance().")\r
+] interface IDeckLinkVideoConversion : IUnknown\r
+{\r
+ HRESULT ConvertFrame([in] IDeckLinkVideoFrame* srcFrame, [in] IDeckLinkVideoFrame* dstFrame);\r
+};\r
+\r
+\r
+/* Interface IDeckLinkDeckControlStatusCallback - Deck control state change callback. */\r
+\r
+[\r
+ object,\r
+ uuid(E5F693C1-4283-4716-B18F-C1431521955B),\r
+ helpstring("Deck control state change callback.")\r
+] interface IDeckLinkDeckControlStatusCallback : IUnknown\r
+{\r
+ HRESULT TimecodeUpdate([in] BMDTimecodeBCD currentTimecode);\r
+ HRESULT VTRControlStateChanged([in] BMDDeckControlVTRControlState newState, [in] BMDDeckControlError error);\r
+ HRESULT DeckControlEventReceived([in] BMDDeckControlEvent event, [in] BMDDeckControlError error);\r
+ HRESULT DeckControlStatusChanged([in] BMDDeckControlStatusFlags flags, [in] unsigned long mask);\r
+};\r
+\r
+\r
+/* Interface IDeckLinkDeckControl - Deck Control main interface */\r
+\r
+[\r
+ object,\r
+ uuid(A4D81043-0619-42B7-8ED6-602D29041DF7),\r
+ helpstring("Deck Control main interface")\r
+] interface IDeckLinkDeckControl : IUnknown\r
+{\r
+ HRESULT Open([in] BMDTimeScale timeScale, [in] BMDTimeValue timeValue, [in] BOOL timecodeIsDropFrame, [out] BMDDeckControlError *error);\r
+ HRESULT Close([in] BOOL standbyOn);\r
+ HRESULT GetCurrentState([out] BMDDeckControlMode *mode, [out] BMDDeckControlVTRControlState *vtrControlState, [out] BMDDeckControlStatusFlags *flags);\r
+ HRESULT SetStandby([in] BOOL standbyOn);\r
+ HRESULT Play([out] BMDDeckControlError *error);\r
+ HRESULT Stop([out] BMDDeckControlError *error);\r
+ HRESULT TogglePlayStop([out] BMDDeckControlError *error);\r
+ HRESULT Eject([out] BMDDeckControlError *error);\r
+ HRESULT GoToTimecode([in] BMDTimecodeBCD timecode, [out] BMDDeckControlError *error);\r
+ HRESULT FastForward([in] BOOL viewTape, [out] BMDDeckControlError *error);\r
+ HRESULT Rewind([in] BOOL viewTape, [out] BMDDeckControlError *error);\r
+ HRESULT StepForward([out] BMDDeckControlError *error);\r
+ HRESULT StepBack([out] BMDDeckControlError *error);\r
+ HRESULT Jog([in] double rate, [out] BMDDeckControlError *error);\r
+ HRESULT Shuttle([in] double rate, [out] BMDDeckControlError *error);\r
+ HRESULT GetTimecodeString([out] BSTR *currentTimeCode, [out] BMDDeckControlError *error);\r
+ HRESULT GetTimecode([out] IDeckLinkTimecode **currentTimecode, [out] BMDDeckControlError *error);\r
+ HRESULT GetTimecodeBCD([out] BMDTimecodeBCD *currentTimecode, [out] BMDDeckControlError *error);\r
+ HRESULT SetPreroll([in] unsigned long prerollSeconds);\r
+ HRESULT GetPreroll([out] unsigned long *prerollSeconds);\r
+ HRESULT SetExportOffset([in] long exportOffsetFields);\r
+ HRESULT GetExportOffset([out] long *exportOffsetFields);\r
+ HRESULT GetManualExportOffset([out] long *deckManualExportOffsetFields);\r
+ HRESULT SetCaptureOffset([in] long captureOffsetFields);\r
+ HRESULT GetCaptureOffset([out] long *captureOffsetFields);\r
+ HRESULT StartExport([in] BMDTimecodeBCD inTimecode, [in] BMDTimecodeBCD outTimecode, [in] BMDDeckControlExportModeOpsFlags exportModeOps, [out] BMDDeckControlError *error);\r
+ HRESULT StartCapture([in] BOOL useVITC, [in] BMDTimecodeBCD inTimecode, [in] BMDTimecodeBCD outTimecode, [out] BMDDeckControlError *error);\r
+ HRESULT GetDeviceID([out] unsigned short *deviceId, [out] BMDDeckControlError *error);\r
+ HRESULT Abort(void);\r
+ HRESULT CrashRecordStart([out] BMDDeckControlError *error);\r
+ HRESULT CrashRecordStop([out] BMDDeckControlError *error);\r
+ HRESULT SetCallback([in] IDeckLinkDeckControlStatusCallback *callback);\r
+};\r
+\r
\r
/* Coclasses */\r
\r
};\r
\r
[\r
- uuid(D398CEE7-4434-4CA3-9BA6-5AE34556B905),\r
+ uuid(F63E77C7-B655-4A4A-9AD0-3CA85D394343),\r
helpstring("CDeckLinkGLScreenPreviewHelper Class")\r
] coclass CDeckLinkGLScreenPreviewHelper\r
{\r
[default] interface IDeckLinkGLScreenPreviewHelper;\r
};\r
\r
-/* End Coclasses */\r
+[\r
+ uuid(7DBBBB11-5B7B-467D-AEA4-CEA468FD368C),\r
+ helpstring("CDeckLinkVideoConversion Class")\r
+] coclass CDeckLinkVideoConversion\r
+{\r
+ [default] interface IDeckLinkVideoConversion;\r
+};\r
+\r
\r
// import deprecated interfaces\r
-#include "DeckLinkAPI_v7_1.idl"\r
+#include "DeckLinkAPI_v7_6.idl"\r
#include "DeckLinkAPI_v7_3.idl"\r
+#include "DeckLinkAPI_v7_1.idl"\r
};\r