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
201215typedef uint32_t BMDReferenceStatus;
202216enum _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
426450typedef 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
11031142class BMD_PUBLIC IDeckLinkGLScreenPreviewHelper : public IUnknown
11041143{
@@ -1268,14 +1307,17 @@ class BMD_PUBLIC IDeckLinkDiscovery : public IUnknown
12681307
12691308extern " 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) */
0 commit comments