Skip to content

Commit

Permalink
BMD: updated SDK to 12.6
Browse files Browse the repository at this point in the history
first to support DeckLink IP

In this import, do not import the older API versions (Linux, Mac) -
it is not needed since we do not use them.
  • Loading branch information
MartinPulec committed Nov 18, 2024
1 parent 754947a commit a1b6691
Show file tree
Hide file tree
Showing 87 changed files with 3,447 additions and 9,257 deletions.
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -813,7 +813,7 @@ if test $decklink_req != no; then
AC_LANG_PUSH(C++)
AC_MSG_CHECKING([DeckLink usability])
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include "$DECKLINK_INC/DeckLinkAPI_h.h"
#include "$DECKLINK_INC/DeckLinkAPI.h"
#include "$DECKLINK_INC/DeckLinkAPIVersion.h"
#include <objbase.h>
]],
Expand Down
110 changes: 76 additions & 34 deletions ext-deps/DeckLink/Linux/DeckLinkAPI.h
Original file line number Diff line number Diff line change
@@ -1,29 +1,43 @@
/* -LICENSE-START-
** Copyright (c) 2020 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-
*/
** Copyright (c) 2023 Blackmagic Design
**
** Permission is hereby granted, free of charge, to any person or organization
** obtaining a copy of the software and accompanying documentation (the
** "Software") to use, reproduce, display, distribute, sub-license, 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, in
** accordance with:
**
** (1) if the Software is obtained from Blackmagic Design, the End User License
** Agreement for the Software Development Kit ("EULA") available at
** https://www.blackmagicdesign.com/EULA/DeckLinkSDK; or
**
** (2) if the Software is obtained from any third party, such licensing terms
** as notified by that third party,
**
** and all subject to the following:
**
** (3) 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.
**
** (4) 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.
**
** A copy of the Software is available free of charge at
** https://www.blackmagicdesign.com/desktopvideo_sdk under the EULA.
**
** -LICENSE-END-
*/


#ifndef BMD_DECKLINKAPI_H
#define BMD_DECKLINKAPI_H
Expand Down Expand Up @@ -200,6 +214,7 @@ enum _BMDOutputFrameCompletionResult {

typedef uint32_t BMDReferenceStatus;
enum _BMDReferenceStatus {
bmdReferenceUnlocked = 0,
bmdReferenceNotSupportedByHardware = 1 << 0,
bmdReferenceLocked = 1 << 1
};
Expand Down Expand Up @@ -252,7 +267,7 @@ enum _BMDTimecodeFormat {
bmdTimecodeRP188VITC2 = /* 'rp12' */ 0x72703132, // RP188 timecode where DBB1 equals VITC2 (line 9 for progressive or line 571 for interlaced/PsF)
bmdTimecodeRP188LTC = /* 'rplt' */ 0x72706C74, // RP188 timecode where DBB1 equals LTC (line 10)
bmdTimecodeRP188HighFrameRate = /* 'rphr' */ 0x72706872, // RP188 timecode where DBB1 is an HFRTC (SMPTE ST 12-3), the only timecode allowing the frame value to go above 30
bmdTimecodeRP188Any = /* 'rp18' */ 0x72703138, // Convenience for capture, returning the first valid timecode in {HFRTC (if supported), VITC1, LTC, VITC2}
bmdTimecodeRP188Any = /* 'rp18' */ 0x72703138, // Convenience for capture, returning the first valid timecode in {HFRTC (if supported), VITC1, VITC2, LTC }
bmdTimecodeVITC = /* 'vitc' */ 0x76697463,
bmdTimecodeVITCField2 = /* 'vit2' */ 0x76697432,
bmdTimecodeSerial = /* 'seri' */ 0x73657269
Expand Down Expand Up @@ -421,6 +436,15 @@ enum _BMDDeckLinkFrameMetadataID {
bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel = /* 'fall' */ 0x66616C6C // Maximum Frame Average Light Level in range 1 cd/m2 - 65535 cd/m2
};

/* Enum BMDEthernetLinkState - The state of the Ethernet link */

typedef uint32_t BMDEthernetLinkState;
enum _BMDEthernetLinkState {
bmdEthernetLinkStateDisconnected = /* 'elds' */ 0x656C6473,
bmdEthernetLinkStateConnectedUnbound = /* 'elcu' */ 0x656C6375,
bmdEthernetLinkStateConnectedBound = /* 'elcb' */ 0x656C6362
};

/* Enum BMDProfileID - Identifies a profile */

typedef uint32_t BMDProfileID;
Expand Down Expand Up @@ -522,7 +546,8 @@ enum _BMDDeckLinkAttributeID {
BMDDeckLinkVendorName = /* 'vndr' */ 0x766E6472,
BMDDeckLinkDisplayName = /* 'dspn' */ 0x6473706E,
BMDDeckLinkModelName = /* 'mdln' */ 0x6D646C6E,
BMDDeckLinkDeviceHandle = /* 'devh' */ 0x64657668
BMDDeckLinkDeviceHandle = /* 'devh' */ 0x64657668,
BMDDeckLinkEthernetMACAddress = /* 'eMAC' */ 0x654D4143
};

/* Enum BMDDeckLinkAPIInformationID - DeckLinkAPI information ID */
Expand Down Expand Up @@ -553,6 +578,7 @@ enum _BMDDeckLinkStatusID {
bmdDeckLinkStatusCurrentVideoInputFlags = /* 'cvif' */ 0x63766966,
bmdDeckLinkStatusCurrentVideoOutputMode = /* 'cvom' */ 0x63766F6D,
bmdDeckLinkStatusCurrentVideoOutputFlags = /* 'cvof' */ 0x63766F66,
bmdDeckLinkStatusEthernetLink = /* 'sels' */ 0x73656C73,
bmdDeckLinkStatusPCIExpressLinkWidth = /* 'pwid' */ 0x70776964,
bmdDeckLinkStatusPCIExpressLinkSpeed = /* 'plnk' */ 0x706C6E6B,
bmdDeckLinkStatusLastVideoOutputPixelFormat = /* 'opix' */ 0x6F706978,
Expand All @@ -567,6 +593,19 @@ enum _BMDDeckLinkStatusID {
bmdDeckLinkStatusVideoInputSignalLocked = /* 'visl' */ 0x7669736C,
bmdDeckLinkStatusReferenceSignalLocked = /* 'refl' */ 0x7265666C,

/* Strings */

bmdDeckLinkStatusEthernetLocalIPAddress = /* 'seip' */ 0x73656970,
bmdDeckLinkStatusEthernetSubnetMask = /* 'sesm' */ 0x7365736D,
bmdDeckLinkStatusEthernetGatewayIPAddress = /* 'segw' */ 0x73656777,
bmdDeckLinkStatusEthernetPrimaryDNS = /* 'sepd' */ 0x73657064,
bmdDeckLinkStatusEthernetSecondaryDNS = /* 'sesd' */ 0x73657364,
bmdDeckLinkStatusEthernetPTPGrandmasterIdentity = /* 'spid' */ 0x73706964,
bmdDeckLinkStatusEthernetVideoOutputAddress = /* 'soav' */ 0x736F6176,
bmdDeckLinkStatusEthernetAudioOutputAddress = /* 'soaa' */ 0x736F6161,
bmdDeckLinkStatusEthernetAncillaryOutputAddress = /* 'soaA' */ 0x736F6141,
bmdDeckLinkStatusEthernetAudioInputChannelOrder = /* 'saco' */ 0x7361636F,

/* Bytes */

bmdDeckLinkStatusReceivedEDID = /* 'edid' */ 0x65646964
Expand Down Expand Up @@ -1098,7 +1137,7 @@ class BMD_PUBLIC IDeckLinkScreenPreviewCallback : public IUnknown
virtual ~IDeckLinkScreenPreviewCallback () {} // call Release method to drop reference count
};

/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance on platforms with native COM support or from CreateOpenGLScreenPreviewHelper on other platforms. */
/* Interface IDeckLinkGLScreenPreviewHelper - Created with CoCreateInstance on platforms with native COM support or from CreateOpenGLScreenPreviewHelper/CreateOpenGL3ScreenPreviewHelper on other platforms. */

class BMD_PUBLIC IDeckLinkGLScreenPreviewHelper : public IUnknown
{
Expand Down Expand Up @@ -1268,14 +1307,17 @@ class BMD_PUBLIC IDeckLinkDiscovery : public IUnknown

extern "C" {

IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIteratorInstance(void);
IDeckLinkDiscovery* BMD_PUBLIC CreateDeckLinkDiscoveryInstance(void);
IDeckLinkAPIInformation* BMD_PUBLIC CreateDeckLinkAPIInformationInstance(void);
IDeckLinkGLScreenPreviewHelper* BMD_PUBLIC CreateOpenGLScreenPreviewHelper(void);
IDeckLinkVideoConversion* BMD_PUBLIC CreateVideoConversionInstance(void);
IDeckLinkVideoFrameAncillaryPackets* BMD_PUBLIC CreateVideoFrameAncillaryPacketsInstance(void); // For use when creating a custom IDeckLinkVideoFrame without wrapping IDeckLinkOutput::CreateVideoFrame
BMD_PUBLIC IDeckLinkIterator* CreateDeckLinkIteratorInstance(void);
BMD_PUBLIC IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance(void);
BMD_PUBLIC IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance(void);
BMD_PUBLIC IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper(void);
BMD_PUBLIC IDeckLinkGLScreenPreviewHelper* CreateOpenGL3ScreenPreviewHelper(void); // Requires OpenGL 3.2 support and provides improved performance and color handling
BMD_PUBLIC IDeckLinkVideoConversion* CreateVideoConversionInstance(void);
BMD_PUBLIC IDeckLinkVideoFrameAncillaryPackets* CreateVideoFrameAncillaryPacketsInstance(void); // For use when creating a custom IDeckLinkVideoFrame without wrapping IDeckLinkOutput::CreateVideoFrame

}



#endif /* defined(__cplusplus) */
#endif /* defined(BMD_DECKLINKAPI_H) */
26 changes: 25 additions & 1 deletion ext-deps/DeckLink/Linux/DeckLinkAPIConfiguration.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/* -LICENSE-START-
** Copyright (c) 2020 Blackmagic Design
** Copyright (c) 2023 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
Expand Down Expand Up @@ -89,6 +89,7 @@ enum _BMDDeckLinkConfigurationID {
bmdDeckLinkConfigVideoOutputConversionMode = /* 'vocm' */ 0x766F636D,
bmdDeckLinkConfigAnalogVideoOutputFlags = /* 'avof' */ 0x61766F66,
bmdDeckLinkConfigReferenceInputTimingOffset = /* 'glot' */ 0x676C6F74,
bmdDeckLinkConfigReferenceOutputMode = /* 'glOm' */ 0x676C4F6D,
bmdDeckLinkConfigVideoOutputIdleOperation = /* 'voio' */ 0x766F696F,
bmdDeckLinkConfigDefaultVideoOutputMode = /* 'dvom' */ 0x64766F6D,
bmdDeckLinkConfigDefaultVideoOutputModeFlags = /* 'dvof' */ 0x64766F66,
Expand Down Expand Up @@ -169,6 +170,27 @@ enum _BMDDeckLinkConfigurationID {
bmdDeckLinkConfigDigitalAudioOutputScale = /* 'daos' */ 0x64616F73,
bmdDeckLinkConfigHeadphoneVolume = /* 'hvol' */ 0x68766F6C,

/* Network Flags */

bmdDeckLinkConfigEthernetUseDHCP = /* 'DHCP' */ 0x44484350,
bmdDeckLinkConfigEthernetPTPFollowerOnly = /* 'PTPf' */ 0x50545066,
bmdDeckLinkConfigEthernetPTPUseUDPEncapsulation = /* 'PTPU' */ 0x50545055,

/* Network Strings */

bmdDeckLinkConfigEthernetStaticLocalIPAddress = /* 'nsip' */ 0x6E736970,
bmdDeckLinkConfigEthernetStaticSubnetMask = /* 'nssm' */ 0x6E73736D,
bmdDeckLinkConfigEthernetStaticGatewayIPAddress = /* 'nsgw' */ 0x6E736777,
bmdDeckLinkConfigEthernetStaticPrimaryDNS = /* 'nspd' */ 0x6E737064,
bmdDeckLinkConfigEthernetStaticSecondaryDNS = /* 'nssd' */ 0x6E737364,
bmdDeckLinkConfigEthernetPTPPriority1 = /* 'PTP1' */ 0x50545031,
bmdDeckLinkConfigEthernetPTPPriority2 = /* 'PTP2' */ 0x50545032,
bmdDeckLinkConfigEthernetPTPDomain = /* 'PTPD' */ 0x50545044,
bmdDeckLinkConfigEthernetVideoOutputAddress = /* 'noav' */ 0x6E6F6176,
bmdDeckLinkConfigEthernetAudioOutputAddress = /* 'noaa' */ 0x6E6F6161,
bmdDeckLinkConfigEthernetAncillaryOutputAddress = /* 'noaA' */ 0x6E6F6141,
bmdDeckLinkConfigEthernetAudioOutputChannelOrder = /* 'caco' */ 0x6361636F,

/* Device Information Strings */

bmdDeckLinkConfigDeviceInformationLabel = /* 'dila' */ 0x64696C61,
Expand Down Expand Up @@ -263,5 +285,7 @@ extern "C" {

}



#endif /* defined(__cplusplus) */
#endif /* defined(BMD_DECKLINKAPICONFIGURATION_H) */
71 changes: 0 additions & 71 deletions ext-deps/DeckLink/Linux/DeckLinkAPIConfiguration_v10_11.h

This file was deleted.

Loading

0 comments on commit a1b6691

Please sign in to comment.