Skip to content

Commit a1b6691

Browse files
committed
BMD: updated SDK to 12.6
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.
1 parent 754947a commit a1b6691

File tree

87 files changed

+3447
-9257
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+3447
-9257
lines changed

configure.ac

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -813,7 +813,7 @@ if test $decklink_req != no; then
813813
AC_LANG_PUSH(C++)
814814
AC_MSG_CHECKING([DeckLink usability])
815815
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
816-
#include "$DECKLINK_INC/DeckLinkAPI_h.h"
816+
#include "$DECKLINK_INC/DeckLinkAPI.h"
817817
#include "$DECKLINK_INC/DeckLinkAPIVersion.h"
818818
#include <objbase.h>
819819
]],

ext-deps/DeckLink/Linux/DeckLinkAPI.h

Lines changed: 76 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,43 @@
11
/* -LICENSE-START-
2-
** Copyright (c) 2020 Blackmagic Design
3-
**
4-
** Permission is hereby granted, free of charge, to any person or organization
5-
** obtaining a copy of the software and accompanying documentation covered by
6-
** this license (the "Software") to use, reproduce, display, distribute,
7-
** execute, and transmit the Software, and to prepare derivative works of the
8-
** Software, and to permit third-parties to whom the Software is furnished to
9-
** do so, all subject to the following:
10-
**
11-
** The copyright notices in the Software and this entire statement, including
12-
** the above license grant, this restriction and the following disclaimer,
13-
** must be included in all copies of the Software, in whole or in part, and
14-
** all derivative works of the Software, unless such copies or derivative
15-
** works are solely in the form of machine-executable object code generated by
16-
** a source language processor.
17-
**
18-
** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19-
** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20-
** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
21-
** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
22-
** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
23-
** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
24-
** DEALINGS IN THE SOFTWARE.
25-
** -LICENSE-END-
26-
*/
2+
** Copyright (c) 2023 Blackmagic Design
3+
**
4+
** Permission is hereby granted, free of charge, to any person or organization
5+
** obtaining a copy of the software and accompanying documentation (the
6+
** "Software") to use, reproduce, display, distribute, sub-license, execute,
7+
** and transmit the Software, and to prepare derivative works of the Software,
8+
** and to permit third-parties to whom the Software is furnished to do so, in
9+
** accordance with:
10+
**
11+
** (1) if the Software is obtained from Blackmagic Design, the End User License
12+
** Agreement for the Software Development Kit ("EULA") available at
13+
** https://www.blackmagicdesign.com/EULA/DeckLinkSDK; or
14+
**
15+
** (2) if the Software is obtained from any third party, such licensing terms
16+
** as notified by that third party,
17+
**
18+
** and all subject to the following:
19+
**
20+
** (3) the copyright notices in the Software and this entire statement,
21+
** including the above license grant, this restriction and the following
22+
** disclaimer, must be included in all copies of the Software, in whole or in
23+
** part, and all derivative works of the Software, unless such copies or
24+
** derivative works are solely in the form of machine-executable object code
25+
** generated by a source language processor.
26+
**
27+
** (4) THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
28+
** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
29+
** FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
30+
** SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
31+
** FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
32+
** ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
33+
** DEALINGS IN THE SOFTWARE.
34+
**
35+
** A copy of the Software is available free of charge at
36+
** https://www.blackmagicdesign.com/desktopvideo_sdk under the EULA.
37+
**
38+
** -LICENSE-END-
39+
*/
40+
2741

2842
#ifndef BMD_DECKLINKAPI_H
2943
#define BMD_DECKLINKAPI_H
@@ -200,6 +214,7 @@ enum _BMDOutputFrameCompletionResult {
200214

201215
typedef uint32_t BMDReferenceStatus;
202216
enum _BMDReferenceStatus {
217+
bmdReferenceUnlocked = 0,
203218
bmdReferenceNotSupportedByHardware = 1 << 0,
204219
bmdReferenceLocked = 1 << 1
205220
};
@@ -252,7 +267,7 @@ enum _BMDTimecodeFormat {
252267
bmdTimecodeRP188VITC2 = /* 'rp12' */ 0x72703132, // RP188 timecode where DBB1 equals VITC2 (line 9 for progressive or line 571 for interlaced/PsF)
253268
bmdTimecodeRP188LTC = /* 'rplt' */ 0x72706C74, // RP188 timecode where DBB1 equals LTC (line 10)
254269
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
255-
bmdTimecodeRP188Any = /* 'rp18' */ 0x72703138, // Convenience for capture, returning the first valid timecode in {HFRTC (if supported), VITC1, LTC, VITC2}
270+
bmdTimecodeRP188Any = /* 'rp18' */ 0x72703138, // Convenience for capture, returning the first valid timecode in {HFRTC (if supported), VITC1, VITC2, LTC }
256271
bmdTimecodeVITC = /* 'vitc' */ 0x76697463,
257272
bmdTimecodeVITCField2 = /* 'vit2' */ 0x76697432,
258273
bmdTimecodeSerial = /* 'seri' */ 0x73657269
@@ -421,6 +436,15 @@ enum _BMDDeckLinkFrameMetadataID {
421436
bmdDeckLinkFrameMetadataHDRMaximumFrameAverageLightLevel = /* 'fall' */ 0x66616C6C // Maximum Frame Average Light Level in range 1 cd/m2 - 65535 cd/m2
422437
};
423438

439+
/* Enum BMDEthernetLinkState - The state of the Ethernet link */
440+
441+
typedef uint32_t BMDEthernetLinkState;
442+
enum _BMDEthernetLinkState {
443+
bmdEthernetLinkStateDisconnected = /* 'elds' */ 0x656C6473,
444+
bmdEthernetLinkStateConnectedUnbound = /* 'elcu' */ 0x656C6375,
445+
bmdEthernetLinkStateConnectedBound = /* 'elcb' */ 0x656C6362
446+
};
447+
424448
/* Enum BMDProfileID - Identifies a profile */
425449

426450
typedef uint32_t BMDProfileID;
@@ -522,7 +546,8 @@ enum _BMDDeckLinkAttributeID {
522546
BMDDeckLinkVendorName = /* 'vndr' */ 0x766E6472,
523547
BMDDeckLinkDisplayName = /* 'dspn' */ 0x6473706E,
524548
BMDDeckLinkModelName = /* 'mdln' */ 0x6D646C6E,
525-
BMDDeckLinkDeviceHandle = /* 'devh' */ 0x64657668
549+
BMDDeckLinkDeviceHandle = /* 'devh' */ 0x64657668,
550+
BMDDeckLinkEthernetMACAddress = /* 'eMAC' */ 0x654D4143
526551
};
527552

528553
/* Enum BMDDeckLinkAPIInformationID - DeckLinkAPI information ID */
@@ -553,6 +578,7 @@ enum _BMDDeckLinkStatusID {
553578
bmdDeckLinkStatusCurrentVideoInputFlags = /* 'cvif' */ 0x63766966,
554579
bmdDeckLinkStatusCurrentVideoOutputMode = /* 'cvom' */ 0x63766F6D,
555580
bmdDeckLinkStatusCurrentVideoOutputFlags = /* 'cvof' */ 0x63766F66,
581+
bmdDeckLinkStatusEthernetLink = /* 'sels' */ 0x73656C73,
556582
bmdDeckLinkStatusPCIExpressLinkWidth = /* 'pwid' */ 0x70776964,
557583
bmdDeckLinkStatusPCIExpressLinkSpeed = /* 'plnk' */ 0x706C6E6B,
558584
bmdDeckLinkStatusLastVideoOutputPixelFormat = /* 'opix' */ 0x6F706978,
@@ -567,6 +593,19 @@ enum _BMDDeckLinkStatusID {
567593
bmdDeckLinkStatusVideoInputSignalLocked = /* 'visl' */ 0x7669736C,
568594
bmdDeckLinkStatusReferenceSignalLocked = /* 'refl' */ 0x7265666C,
569595

596+
/* Strings */
597+
598+
bmdDeckLinkStatusEthernetLocalIPAddress = /* 'seip' */ 0x73656970,
599+
bmdDeckLinkStatusEthernetSubnetMask = /* 'sesm' */ 0x7365736D,
600+
bmdDeckLinkStatusEthernetGatewayIPAddress = /* 'segw' */ 0x73656777,
601+
bmdDeckLinkStatusEthernetPrimaryDNS = /* 'sepd' */ 0x73657064,
602+
bmdDeckLinkStatusEthernetSecondaryDNS = /* 'sesd' */ 0x73657364,
603+
bmdDeckLinkStatusEthernetPTPGrandmasterIdentity = /* 'spid' */ 0x73706964,
604+
bmdDeckLinkStatusEthernetVideoOutputAddress = /* 'soav' */ 0x736F6176,
605+
bmdDeckLinkStatusEthernetAudioOutputAddress = /* 'soaa' */ 0x736F6161,
606+
bmdDeckLinkStatusEthernetAncillaryOutputAddress = /* 'soaA' */ 0x736F6141,
607+
bmdDeckLinkStatusEthernetAudioInputChannelOrder = /* 'saco' */ 0x7361636F,
608+
570609
/* Bytes */
571610

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

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

11031142
class BMD_PUBLIC IDeckLinkGLScreenPreviewHelper : public IUnknown
11041143
{
@@ -1268,14 +1307,17 @@ class BMD_PUBLIC IDeckLinkDiscovery : public IUnknown
12681307

12691308
extern "C" {
12701309

1271-
IDeckLinkIterator* BMD_PUBLIC CreateDeckLinkIteratorInstance(void);
1272-
IDeckLinkDiscovery* BMD_PUBLIC CreateDeckLinkDiscoveryInstance(void);
1273-
IDeckLinkAPIInformation* BMD_PUBLIC CreateDeckLinkAPIInformationInstance(void);
1274-
IDeckLinkGLScreenPreviewHelper* BMD_PUBLIC CreateOpenGLScreenPreviewHelper(void);
1275-
IDeckLinkVideoConversion* BMD_PUBLIC CreateVideoConversionInstance(void);
1276-
IDeckLinkVideoFrameAncillaryPackets* BMD_PUBLIC CreateVideoFrameAncillaryPacketsInstance(void); // For use when creating a custom IDeckLinkVideoFrame without wrapping IDeckLinkOutput::CreateVideoFrame
1310+
BMD_PUBLIC IDeckLinkIterator* CreateDeckLinkIteratorInstance(void);
1311+
BMD_PUBLIC IDeckLinkDiscovery* CreateDeckLinkDiscoveryInstance(void);
1312+
BMD_PUBLIC IDeckLinkAPIInformation* CreateDeckLinkAPIInformationInstance(void);
1313+
BMD_PUBLIC IDeckLinkGLScreenPreviewHelper* CreateOpenGLScreenPreviewHelper(void);
1314+
BMD_PUBLIC IDeckLinkGLScreenPreviewHelper* CreateOpenGL3ScreenPreviewHelper(void); // Requires OpenGL 3.2 support and provides improved performance and color handling
1315+
BMD_PUBLIC IDeckLinkVideoConversion* CreateVideoConversionInstance(void);
1316+
BMD_PUBLIC IDeckLinkVideoFrameAncillaryPackets* CreateVideoFrameAncillaryPacketsInstance(void); // For use when creating a custom IDeckLinkVideoFrame without wrapping IDeckLinkOutput::CreateVideoFrame
12771317

12781318
}
12791319

1320+
1321+
12801322
#endif /* defined(__cplusplus) */
12811323
#endif /* defined(BMD_DECKLINKAPI_H) */

ext-deps/DeckLink/Linux/DeckLinkAPIConfiguration.h

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* -LICENSE-START-
2-
** Copyright (c) 2020 Blackmagic Design
2+
** Copyright (c) 2023 Blackmagic Design
33
**
44
** Permission is hereby granted, free of charge, to any person or organization
55
** obtaining a copy of the software and accompanying documentation covered by
@@ -89,6 +89,7 @@ enum _BMDDeckLinkConfigurationID {
8989
bmdDeckLinkConfigVideoOutputConversionMode = /* 'vocm' */ 0x766F636D,
9090
bmdDeckLinkConfigAnalogVideoOutputFlags = /* 'avof' */ 0x61766F66,
9191
bmdDeckLinkConfigReferenceInputTimingOffset = /* 'glot' */ 0x676C6F74,
92+
bmdDeckLinkConfigReferenceOutputMode = /* 'glOm' */ 0x676C4F6D,
9293
bmdDeckLinkConfigVideoOutputIdleOperation = /* 'voio' */ 0x766F696F,
9394
bmdDeckLinkConfigDefaultVideoOutputMode = /* 'dvom' */ 0x64766F6D,
9495
bmdDeckLinkConfigDefaultVideoOutputModeFlags = /* 'dvof' */ 0x64766F66,
@@ -169,6 +170,27 @@ enum _BMDDeckLinkConfigurationID {
169170
bmdDeckLinkConfigDigitalAudioOutputScale = /* 'daos' */ 0x64616F73,
170171
bmdDeckLinkConfigHeadphoneVolume = /* 'hvol' */ 0x68766F6C,
171172

173+
/* Network Flags */
174+
175+
bmdDeckLinkConfigEthernetUseDHCP = /* 'DHCP' */ 0x44484350,
176+
bmdDeckLinkConfigEthernetPTPFollowerOnly = /* 'PTPf' */ 0x50545066,
177+
bmdDeckLinkConfigEthernetPTPUseUDPEncapsulation = /* 'PTPU' */ 0x50545055,
178+
179+
/* Network Strings */
180+
181+
bmdDeckLinkConfigEthernetStaticLocalIPAddress = /* 'nsip' */ 0x6E736970,
182+
bmdDeckLinkConfigEthernetStaticSubnetMask = /* 'nssm' */ 0x6E73736D,
183+
bmdDeckLinkConfigEthernetStaticGatewayIPAddress = /* 'nsgw' */ 0x6E736777,
184+
bmdDeckLinkConfigEthernetStaticPrimaryDNS = /* 'nspd' */ 0x6E737064,
185+
bmdDeckLinkConfigEthernetStaticSecondaryDNS = /* 'nssd' */ 0x6E737364,
186+
bmdDeckLinkConfigEthernetPTPPriority1 = /* 'PTP1' */ 0x50545031,
187+
bmdDeckLinkConfigEthernetPTPPriority2 = /* 'PTP2' */ 0x50545032,
188+
bmdDeckLinkConfigEthernetPTPDomain = /* 'PTPD' */ 0x50545044,
189+
bmdDeckLinkConfigEthernetVideoOutputAddress = /* 'noav' */ 0x6E6F6176,
190+
bmdDeckLinkConfigEthernetAudioOutputAddress = /* 'noaa' */ 0x6E6F6161,
191+
bmdDeckLinkConfigEthernetAncillaryOutputAddress = /* 'noaA' */ 0x6E6F6141,
192+
bmdDeckLinkConfigEthernetAudioOutputChannelOrder = /* 'caco' */ 0x6361636F,
193+
172194
/* Device Information Strings */
173195

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

264286
}
265287

288+
289+
266290
#endif /* defined(__cplusplus) */
267291
#endif /* defined(BMD_DECKLINKAPICONFIGURATION_H) */

ext-deps/DeckLink/Linux/DeckLinkAPIConfiguration_v10_11.h

Lines changed: 0 additions & 71 deletions
This file was deleted.

0 commit comments

Comments
 (0)