Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
kdenlive
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Farid Abdelnour
kdenlive
Commits
5ef41994
Commit
5ef41994
authored
Oct 31, 2011
by
Jean-Baptiste Mardelle
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update blackmagic headers to latest version
svn path=/trunk/kdenlive/; revision=6015
parent
4b167312
Changes
12
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
1232 additions
and
549 deletions
+1232
-549
src/blackmagic/include/DeckLinkAPI.h
src/blackmagic/include/DeckLinkAPI.h
+130
-546
src/blackmagic/include/DeckLinkAPIConfiguration.h
src/blackmagic/include/DeckLinkAPIConfiguration.h
+167
-0
src/blackmagic/include/DeckLinkAPIDeckControl.h
src/blackmagic/include/DeckLinkAPIDeckControl.h
+206
-0
src/blackmagic/include/DeckLinkAPIDiscovery.h
src/blackmagic/include/DeckLinkAPIDiscovery.h
+62
-0
src/blackmagic/include/DeckLinkAPIDispatch.cpp
src/blackmagic/include/DeckLinkAPIDispatch.cpp
+26
-1
src/blackmagic/include/DeckLinkAPIDispatch_v8_0.cpp
src/blackmagic/include/DeckLinkAPIDispatch_v8_0.cpp
+133
-0
src/blackmagic/include/DeckLinkAPIModes.h
src/blackmagic/include/DeckLinkAPIModes.h
+155
-0
src/blackmagic/include/DeckLinkAPITypes.h
src/blackmagic/include/DeckLinkAPITypes.h
+89
-0
src/blackmagic/include/DeckLinkAPIVersion.h
src/blackmagic/include/DeckLinkAPIVersion.h
+2
-2
src/blackmagic/include/DeckLinkAPI_v7_9.h
src/blackmagic/include/DeckLinkAPI_v7_9.h
+88
-0
src/blackmagic/include/DeckLinkAPI_v8_0.h
src/blackmagic/include/DeckLinkAPI_v8_0.h
+63
-0
src/blackmagic/include/DeckLinkAPI_v8_1.h
src/blackmagic/include/DeckLinkAPI_v8_1.h
+111
-0
No files found.
src/blackmagic/include/DeckLinkAPI.h
View file @
5ef41994
This diff is collapsed.
Click to expand it.
src/blackmagic/include/DeckLinkAPIConfiguration.h
0 → 100644
View file @
5ef41994
/* -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-
*/
#ifndef BMD_DECKLINKAPICONFIGURATION_H
#define BMD_DECKLINKAPICONFIGURATION_H
// Type Declarations
// Interface ID Declarations
#define IID_IDeckLinkConfiguration
/* C679A35B-610C-4D09-B748-1D0478100FC0 */
(REFIID){0xC6,0x79,0xA3,0x5B,0x61,0x0C,0x4D,0x09,0xB7,0x48,0x1D,0x04,0x78,0x10,0x0F,0xC0}
/* Enum BMDDeckLinkConfigurationID - DeckLink Configuration ID */
typedef
uint32_t
BMDDeckLinkConfigurationID
;
enum
_BMDDeckLinkConfigurationID
{
/* Serial port Flags */
bmdDeckLinkConfigSwapSerialRxTx
=
/* 'ssrt' */
0x73737274
,
/* Video Input/Output Flags */
bmdDeckLinkConfigUse1080pNotPsF
=
/* 'fpro' */
0x6670726F
,
/* Video Input/Output Integers */
bmdDeckLinkConfigHDMI3DPackingFormat
=
/* '3dpf' */
0x33647066
,
bmdDeckLinkConfigBypass
=
/* 'byps' */
0x62797073
,
/* Audio Input/Output Flags */
bmdDeckLinkConfigAnalogAudioConsumerLevels
=
/* 'aacl' */
0x6161636C
,
/* Video output flags */
bmdDeckLinkConfigFieldFlickerRemoval
=
/* 'fdfr' */
0x66646672
,
bmdDeckLinkConfigHD1080p24ToHD1080i5994Conversion
=
/* 'to59' */
0x746F3539
,
bmdDeckLinkConfig444SDIVideoOutput
=
/* '444o' */
0x3434346F
,
bmdDeckLinkConfig3GBpsVideoOutput
=
/* '3gbs' */
0x33676273
,
bmdDeckLinkConfigBlackVideoOutputDuringCapture
=
/* 'bvoc' */
0x62766F63
,
bmdDeckLinkConfigLowLatencyVideoOutput
=
/* 'llvo' */
0x6C6C766F
,
/* Video Output Integers */
bmdDeckLinkConfigVideoOutputConnection
=
/* 'vocn' */
0x766F636E
,
bmdDeckLinkConfigVideoOutputConversionMode
=
/* 'vocm' */
0x766F636D
,
bmdDeckLinkConfigAnalogVideoOutputFlags
=
/* 'avof' */
0x61766F66
,
bmdDeckLinkConfigReferenceInputTimingOffset
=
/* 'glot' */
0x676C6F74
,
bmdDeckLinkConfigVideoOutputIdleOperation
=
/* 'voio' */
0x766F696F
,
/* Video Output Floats */
bmdDeckLinkConfigVideoOutputComponentLumaGain
=
/* 'oclg' */
0x6F636C67
,
bmdDeckLinkConfigVideoOutputComponentChromaBlueGain
=
/* 'occb' */
0x6F636362
,
bmdDeckLinkConfigVideoOutputComponentChromaRedGain
=
/* 'occr' */
0x6F636372
,
bmdDeckLinkConfigVideoOutputCompositeLumaGain
=
/* 'oilg' */
0x6F696C67
,
bmdDeckLinkConfigVideoOutputCompositeChromaGain
=
/* 'oicg' */
0x6F696367
,
bmdDeckLinkConfigVideoOutputSVideoLumaGain
=
/* 'oslg' */
0x6F736C67
,
bmdDeckLinkConfigVideoOutputSVideoChromaGain
=
/* 'oscg' */
0x6F736367
,
/* Video Input Flags */
bmdDeckLinkConfigVideoInputScanning
=
/* 'visc' */
0x76697363
,
// Applicable to H264 Pro Recorder only
/* Video Input Integers */
bmdDeckLinkConfigVideoInputConnection
=
/* 'vicn' */
0x7669636E
,
bmdDeckLinkConfigAnalogVideoInputFlags
=
/* 'avif' */
0x61766966
,
bmdDeckLinkConfigVideoInputConversionMode
=
/* 'vicm' */
0x7669636D
,
bmdDeckLinkConfig32PulldownSequenceInitialTimecodeFrame
=
/* 'pdif' */
0x70646966
,
bmdDeckLinkConfigVANCSourceLine1Mapping
=
/* 'vsl1' */
0x76736C31
,
bmdDeckLinkConfigVANCSourceLine2Mapping
=
/* 'vsl2' */
0x76736C32
,
bmdDeckLinkConfigVANCSourceLine3Mapping
=
/* 'vsl3' */
0x76736C33
,
/* Video Input Floats */
bmdDeckLinkConfigVideoInputComponentLumaGain
=
/* 'iclg' */
0x69636C67
,
bmdDeckLinkConfigVideoInputComponentChromaBlueGain
=
/* 'iccb' */
0x69636362
,
bmdDeckLinkConfigVideoInputComponentChromaRedGain
=
/* 'iccr' */
0x69636372
,
bmdDeckLinkConfigVideoInputCompositeLumaGain
=
/* 'iilg' */
0x69696C67
,
bmdDeckLinkConfigVideoInputCompositeChromaGain
=
/* 'iicg' */
0x69696367
,
bmdDeckLinkConfigVideoInputSVideoLumaGain
=
/* 'islg' */
0x69736C67
,
bmdDeckLinkConfigVideoInputSVideoChromaGain
=
/* 'iscg' */
0x69736367
,
/* Audio Input Integers */
bmdDeckLinkConfigAudioInputConnection
=
/* 'aicn' */
0x6169636E
,
/* Audio Input Floats */
bmdDeckLinkConfigAnalogAudioInputScaleChannel1
=
/* 'ais1' */
0x61697331
,
bmdDeckLinkConfigAnalogAudioInputScaleChannel2
=
/* 'ais2' */
0x61697332
,
bmdDeckLinkConfigAnalogAudioInputScaleChannel3
=
/* 'ais3' */
0x61697333
,
bmdDeckLinkConfigAnalogAudioInputScaleChannel4
=
/* 'ais4' */
0x61697334
,
bmdDeckLinkConfigDigitalAudioInputScale
=
/* 'dais' */
0x64616973
,
/* Audio Output Integers */
bmdDeckLinkConfigAudioOutputAESAnalogSwitch
=
/* 'aoaa' */
0x616F6161
,
/* Audio Output Floats */
bmdDeckLinkConfigAnalogAudioOutputScaleChannel1
=
/* 'aos1' */
0x616F7331
,
bmdDeckLinkConfigAnalogAudioOutputScaleChannel2
=
/* 'aos2' */
0x616F7332
,
bmdDeckLinkConfigAnalogAudioOutputScaleChannel3
=
/* 'aos3' */
0x616F7333
,
bmdDeckLinkConfigAnalogAudioOutputScaleChannel4
=
/* 'aos4' */
0x616F7334
,
bmdDeckLinkConfigDigitalAudioOutputScale
=
/* 'daos' */
0x64616F73
};
// Forward Declarations
class
IDeckLinkConfiguration
;
/* Interface IDeckLinkConfiguration - DeckLink Configuration interface */
class
IDeckLinkConfiguration
:
public
IUnknown
{
public:
virtual
HRESULT
SetFlag
(
/* in */
BMDDeckLinkConfigurationID
cfgID
,
/* in */
bool
value
)
=
0
;
virtual
HRESULT
GetFlag
(
/* in */
BMDDeckLinkConfigurationID
cfgID
,
/* out */
bool
*
value
)
=
0
;
virtual
HRESULT
SetInt
(
/* in */
BMDDeckLinkConfigurationID
cfgID
,
/* in */
int64_t
value
)
=
0
;
virtual
HRESULT
GetInt
(
/* in */
BMDDeckLinkConfigurationID
cfgID
,
/* out */
int64_t
*
value
)
=
0
;
virtual
HRESULT
SetFloat
(
/* in */
BMDDeckLinkConfigurationID
cfgID
,
/* in */
double
value
)
=
0
;
virtual
HRESULT
GetFloat
(
/* in */
BMDDeckLinkConfigurationID
cfgID
,
/* out */
double
*
value
)
=
0
;
virtual
HRESULT
SetString
(
/* in */
BMDDeckLinkConfigurationID
cfgID
,
/* in */
const
char
*
value
)
=
0
;
virtual
HRESULT
GetString
(
/* in */
BMDDeckLinkConfigurationID
cfgID
,
/* out */
const
char
**
value
)
=
0
;
virtual
HRESULT
WriteConfigurationToPreferences
(
void
)
=
0
;
protected:
virtual
~
IDeckLinkConfiguration
()
{};
// call Release method to drop reference count
};
/* Functions */
extern
"C"
{
};
#endif
/* defined(BMD_DECKLINKAPICONFIGURATION_H) */
src/blackmagic/include/DeckLinkAPIDeckControl.h
0 → 100644
View file @
5ef41994
This diff is collapsed.
Click to expand it.
src/blackmagic/include/DeckLinkAPIDiscovery.h
0 → 100644
View file @
5ef41994
/* -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-
*/
#ifndef BMD_DECKLINKAPIDISCOVERY_H
#define BMD_DECKLINKAPIDISCOVERY_H
// Type Declarations
// Interface ID Declarations
#define IID_IDeckLink
/* C418FBDD-0587-48ED-8FE5-640F0A14AF91 */
(REFIID){0xC4,0x18,0xFB,0xDD,0x05,0x87,0x48,0xED,0x8F,0xE5,0x64,0x0F,0x0A,0x14,0xAF,0x91}
// Forward Declarations
class
IDeckLink
;
/* Interface IDeckLink - represents a DeckLink device */
class
IDeckLink
:
public
IUnknown
{
public:
virtual
HRESULT
GetModelName
(
/* out */
const
char
**
modelName
)
=
0
;
virtual
HRESULT
GetDisplayName
(
/* out */
const
char
**
displayName
)
=
0
;
protected:
virtual
~
IDeckLink
()
{};
// call Release method to drop reference count
};
/* Functions */
extern
"C"
{
};
#endif
/* defined(BMD_DECKLINKAPIDISCOVERY_H) */
src/blackmagic/include/DeckLinkAPIDispatch.cpp
View file @
5ef41994
...
...
@@ -35,13 +35,17 @@
#define KDeckLinkPreviewAPI_Name "libDeckLinkPreviewAPI.so"
typedef
IDeckLinkIterator
*
(
*
CreateIteratorFunc
)(
void
);
typedef
IDeckLinkAPIInformation
*
(
*
CreateAPIInformationFunc
)(
void
);
typedef
IDeckLinkGLScreenPreviewHelper
*
(
*
CreateOpenGLScreenPreviewHelperFunc
)(
void
);
typedef
IDeckLinkVideoConversion
*
(
*
CreateVideoConversionInstanceFunc
)(
void
);
static
pthread_once_t
gDeckLinkOnceControl
=
PTHREAD_ONCE_INIT
;
static
pthread_once_t
gPreviewOnceControl
=
PTHREAD_ONCE_INIT
;
static
bool
gLoadedDeckLinkAPI
=
false
;
static
CreateIteratorFunc
gCreateIteratorFunc
=
NULL
;
static
CreateAPIInformationFunc
gCreateAPIInformationFunc
=
NULL
;
static
CreateOpenGLScreenPreviewHelperFunc
gCreateOpenGLPreviewFunc
=
NULL
;
static
CreateVideoConversionInstanceFunc
gCreateVideoConversionFunc
=
NULL
;
...
...
@@ -55,9 +59,15 @@ void InitDeckLinkAPI (void)
fprintf
(
stderr
,
"%s
\n
"
,
dlerror
());
return
;
}
gCreateIteratorFunc
=
(
CreateIteratorFunc
)
dlsym
(
libraryHandle
,
"CreateDeckLinkIteratorInstance_0001"
);
gLoadedDeckLinkAPI
=
true
;
gCreateIteratorFunc
=
(
CreateIteratorFunc
)
dlsym
(
libraryHandle
,
"CreateDeckLinkIteratorInstance_0002"
);
if
(
!
gCreateIteratorFunc
)
fprintf
(
stderr
,
"%s
\n
"
,
dlerror
());
gCreateAPIInformationFunc
=
(
CreateAPIInformationFunc
)
dlsym
(
libraryHandle
,
"CreateDeckLinkAPIInformationInstance_0001"
);
if
(
!
gCreateAPIInformationFunc
)
fprintf
(
stderr
,
"%s
\n
"
,
dlerror
());
gCreateVideoConversionFunc
=
(
CreateVideoConversionInstanceFunc
)
dlsym
(
libraryHandle
,
"CreateVideoConversionInstance_0001"
);
if
(
!
gCreateVideoConversionFunc
)
fprintf
(
stderr
,
"%s
\n
"
,
dlerror
());
...
...
@@ -78,6 +88,12 @@ void InitDeckLinkPreviewAPI (void)
fprintf
(
stderr
,
"%s
\n
"
,
dlerror
());
}
bool
IsDeckLinkAPIPresent
(
void
)
{
// If the DeckLink API dynamic library was successfully loaded, return this knowledge to the caller
return
gLoadedDeckLinkAPI
;
}
IDeckLinkIterator
*
CreateDeckLinkIteratorInstance
(
void
)
{
pthread_once
(
&
gDeckLinkOnceControl
,
InitDeckLinkAPI
);
...
...
@@ -87,6 +103,15 @@ IDeckLinkIterator* CreateDeckLinkIteratorInstance (void)
return
gCreateIteratorFunc
();
}
IDeckLinkAPIInformation
*
CreateDeckLinkAPIInformationInstance
(
void
)
{
pthread_once
(
&
gDeckLinkOnceControl
,
InitDeckLinkAPI
);
if
(
gCreateAPIInformationFunc
==
NULL
)
return
NULL
;
return
gCreateAPIInformationFunc
();
}
IDeckLinkGLScreenPreviewHelper
*
CreateOpenGLScreenPreviewHelper
(
void
)
{
pthread_once
(
&
gDeckLinkOnceControl
,
InitDeckLinkAPI
);
...
...
src/blackmagic/include/DeckLinkAPIDispatch_v8_0.cpp
0 → 100644
View file @
5ef41994
/* -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 <stdio.h>
#include <pthread.h>
#include <dlfcn.h>
#include "DeckLinkAPI_v8_0.h"
#define kDeckLinkAPI_Name "libDeckLinkAPI.so"
#define KDeckLinkPreviewAPI_Name "libDeckLinkPreviewAPI.so"
typedef
IDeckLinkIterator_v8_0
*
(
*
CreateIteratorFunc
)(
void
);
typedef
IDeckLinkAPIInformation
*
(
*
CreateAPIInformationFunc
)(
void
);
typedef
IDeckLinkGLScreenPreviewHelper
*
(
*
CreateOpenGLScreenPreviewHelperFunc
)(
void
);
typedef
IDeckLinkVideoConversion
*
(
*
CreateVideoConversionInstanceFunc
)(
void
);
static
pthread_once_t
gDeckLinkOnceControl
=
PTHREAD_ONCE_INIT
;
static
pthread_once_t
gPreviewOnceControl
=
PTHREAD_ONCE_INIT
;
static
bool
gLoadedDeckLinkAPI
=
false
;
static
CreateIteratorFunc
gCreateIteratorFunc
=
NULL
;
static
CreateAPIInformationFunc
gCreateAPIInformationFunc
=
NULL
;
static
CreateOpenGLScreenPreviewHelperFunc
gCreateOpenGLPreviewFunc
=
NULL
;
static
CreateVideoConversionInstanceFunc
gCreateVideoConversionFunc
=
NULL
;
void
InitDeckLinkAPI
(
void
)
{
void
*
libraryHandle
;
libraryHandle
=
dlopen
(
kDeckLinkAPI_Name
,
RTLD_NOW
|
RTLD_GLOBAL
);
if
(
!
libraryHandle
)
{
fprintf
(
stderr
,
"%s
\n
"
,
dlerror
());
return
;
}
gLoadedDeckLinkAPI
=
true
;
gCreateIteratorFunc
=
(
CreateIteratorFunc
)
dlsym
(
libraryHandle
,
"CreateDeckLinkIteratorInstance_0001"
);
if
(
!
gCreateIteratorFunc
)
fprintf
(
stderr
,
"%s
\n
"
,
dlerror
());
gCreateAPIInformationFunc
=
(
CreateAPIInformationFunc
)
dlsym
(
libraryHandle
,
"CreateDeckLinkAPIInformationInstance_0001"
);
if
(
!
gCreateAPIInformationFunc
)
fprintf
(
stderr
,
"%s
\n
"
,
dlerror
());
gCreateVideoConversionFunc
=
(
CreateVideoConversionInstanceFunc
)
dlsym
(
libraryHandle
,
"CreateVideoConversionInstance_0001"
);
if
(
!
gCreateVideoConversionFunc
)
fprintf
(
stderr
,
"%s
\n
"
,
dlerror
());
}
void
InitDeckLinkPreviewAPI
(
void
)
{
void
*
libraryHandle
;
libraryHandle
=
dlopen
(
KDeckLinkPreviewAPI_Name
,
RTLD_NOW
|
RTLD_GLOBAL
);
if
(
!
libraryHandle
)
{
fprintf
(
stderr
,
"%s
\n
"
,
dlerror
());
return
;
}
gCreateOpenGLPreviewFunc
=
(
CreateOpenGLScreenPreviewHelperFunc
)
dlsym
(
libraryHandle
,
"CreateOpenGLScreenPreviewHelper_0001"
);
if
(
!
gCreateOpenGLPreviewFunc
)
fprintf
(
stderr
,
"%s
\n
"
,
dlerror
());
}
bool
IsDeckLinkAPIPresent
(
void
)
{
// If the DeckLink API dynamic library was successfully loaded, return this knowledge to the caller
return
gLoadedDeckLinkAPI
;
}
IDeckLinkIterator_v8_0
*
CreateDeckLinkIteratorInstance
(
void
)
{
pthread_once
(
&
gDeckLinkOnceControl
,
InitDeckLinkAPI
);
if
(
gCreateIteratorFunc
==
NULL
)
return
NULL
;
return
gCreateIteratorFunc
();
}
IDeckLinkAPIInformation
*
CreateDeckLinkAPIInformationInstance
(
void
)
{
pthread_once
(
&
gDeckLinkOnceControl
,
InitDeckLinkAPI
);
if
(
gCreateAPIInformationFunc
==
NULL
)
return
NULL
;
return
gCreateAPIInformationFunc
();
}
IDeckLinkGLScreenPreviewHelper
*
CreateOpenGLScreenPreviewHelper
(
void
)
{
pthread_once
(
&
gDeckLinkOnceControl
,
InitDeckLinkAPI
);
pthread_once
(
&
gPreviewOnceControl
,
InitDeckLinkPreviewAPI
);
if
(
gCreateOpenGLPreviewFunc
==
NULL
)
return
NULL
;
return
gCreateOpenGLPreviewFunc
();
}
IDeckLinkVideoConversion
*
CreateVideoConversionInstance
(
void
)
{
pthread_once
(
&
gDeckLinkOnceControl
,
InitDeckLinkAPI
);
if
(
gCreateVideoConversionFunc
==
NULL
)
return
NULL
;
return
gCreateVideoConversionFunc
();
}
src/blackmagic/include/DeckLinkAPIModes.h
0 → 100644
View file @
5ef41994
/* -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-
*/
#ifndef BMD_DECKLINKAPIMODES_H
#define BMD_DECKLINKAPIMODES_H
// Type Declarations
// Interface ID Declarations
#define IID_IDeckLinkDisplayModeIterator
/* 9C88499F-F601-4021-B80B-032E4EB41C35 */
(REFIID){0x9C,0x88,0x49,0x9F,0xF6,0x01,0x40,0x21,0xB8,0x0B,0x03,0x2E,0x4E,0xB4,0x1C,0x35}
#define IID_IDeckLinkDisplayMode
/* 3EB2C1AB-0A3D-4523-A3AD-F40D7FB14E78 */
(REFIID){0x3E,0xB2,0xC1,0xAB,0x0A,0x3D,0x45,0x23,0xA3,0xAD,0xF4,0x0D,0x7F,0xB1,0x4E,0x78}
/* Enum BMDDisplayMode - Video display modes */
typedef
uint32_t
BMDDisplayMode
;
enum
_BMDDisplayMode
{
/* SD Modes */
bmdModeNTSC
=
/* 'ntsc' */
0x6E747363
,
bmdModeNTSC2398
=
/* 'nt23' */
0x6E743233
,
// 3:2 pulldown
bmdModePAL
=
/* 'pal ' */
0x70616C20
,
bmdModeNTSCp
=
/* 'ntsp' */
0x6E747370
,
bmdModePALp
=
/* 'palp' */
0x70616C70
,
/* HD 1080 Modes */
bmdModeHD1080p2398
=
/* '23ps' */
0x32337073
,
bmdModeHD1080p24
=
/* '24ps' */
0x32347073
,
bmdModeHD1080p25
=
/* 'Hp25' */
0x48703235
,
bmdModeHD1080p2997
=
/* 'Hp29' */
0x48703239
,
bmdModeHD1080p30
=
/* 'Hp30' */
0x48703330
,
bmdModeHD1080i50
=
/* 'Hi50' */
0x48693530
,
bmdModeHD1080i5994
=
/* 'Hi59' */
0x48693539
,
bmdModeHD1080i6000
=
/* 'Hi60' */
0x48693630
,
// N.B. This _really_ is 60.00 Hz.
bmdModeHD1080p50
=
/* 'Hp50' */
0x48703530
,
bmdModeHD1080p5994
=
/* 'Hp59' */
0x48703539
,
bmdModeHD1080p6000
=
/* 'Hp60' */
0x48703630
,
// N.B. This _really_ is 60.00 Hz.
/* HD 720 Modes */
bmdModeHD720p50
=
/* 'hp50' */
0x68703530
,
bmdModeHD720p5994
=
/* 'hp59' */
0x68703539
,
bmdModeHD720p60
=
/* 'hp60' */
0x68703630
,
/* 2k Modes */
bmdMode2k2398
=
/* '2k23' */
0x326B3233
,
bmdMode2k24
=
/* '2k24' */
0x326B3234
,
bmdMode2k25
=
/* '2k25' */
0x326B3235
,
/* Special Modes */
bmdModeUnknown
=
/* 'iunk' */
0x69756E6B
};
/* Enum BMDFieldDominance - Video field dominance */
typedef
uint32_t
BMDFieldDominance
;
enum
_BMDFieldDominance
{
bmdUnknownFieldDominance
=
0
,
bmdLowerFieldFirst
=
/* 'lowr' */
0x6C6F7772
,
bmdUpperFieldFirst
=
/* 'uppr' */
0x75707072
,
bmdProgressiveFrame
=
/* 'prog' */
0x70726F67
,
bmdProgressiveSegmentedFrame
=
/* 'psf ' */
0x70736620
};
/* Enum BMDPixelFormat - Video pixel formats supported for output/input */
typedef
uint32_t
BMDPixelFormat
;
enum
_BMDPixelFormat
{
bmdFormat8BitYUV
=
/* '2vuy' */
0x32767579
,
bmdFormat10BitYUV
=
/* 'v210' */
0x76323130
,
bmdFormat8BitARGB
=
32
,
bmdFormat8BitBGRA
=
/* 'BGRA' */
0x42475241
,
bmdFormat10BitRGB
=
/* 'r210' */
0x72323130
// Big-endian RGB 10-bit per component with SMPTE video levels (64-960). Packed as 2:10:10:10
};
/* Enum BMDDisplayModeFlags - Flags to describe the characteristics of an IDeckLinkDisplayMode. */
typedef
uint32_t
BMDDisplayModeFlags
;
enum
_BMDDisplayModeFlags
{
bmdDisplayModeSupports3D
=
1
<<
0
,
bmdDisplayModeColorspaceRec601
=
1
<<
1
,
bmdDisplayModeColorspaceRec709
=
1
<<
2
};
// Forward Declarations
class
IDeckLinkDisplayModeIterator
;
class
IDeckLinkDisplayMode
;
/* Interface IDeckLinkDisplayModeIterator - enumerates over supported input/output display modes. */
class
IDeckLinkDisplayModeIterator
:
public
IUnknown
{
public:
virtual
HRESULT
Next
(
/* out */
IDeckLinkDisplayMode
**
deckLinkDisplayMode
)
=
0
;
protected:
virtual
~
IDeckLinkDisplayModeIterator
()
{};
// call Release method to drop reference count
};
/* Interface IDeckLinkDisplayMode - represents a display mode */
class
IDeckLinkDisplayMode
:
public
IUnknown
{
public:
virtual
HRESULT
GetName
(
/* out */
const
char
**
name
)
=
0
;
virtual
BMDDisplayMode
GetDisplayMode
(
void
)
=
0
;
virtual
long
GetWidth
(
void
)
=
0
;
virtual
long
GetHeight
(
void
)
=
0
;
virtual
HRESULT
GetFrameRate
(
/* out */
BMDTimeValue
*
frameDuration
,
/* out */
BMDTimeScale
*
timeScale
)
=
0
;
virtual
BMDFieldDominance
GetFieldDominance
(
void
)
=
0
;
virtual
BMDDisplayModeFlags
GetFlags
(
void
)
=
0
;
protected:
virtual
~
IDeckLinkDisplayMode
()
{};
// call Release method to drop reference count
};
/* Functions */
extern
"C"
{
};
#endif
/* defined(BMD_DECKLINKAPIMODES_H) */
src/blackmagic/include/DeckLinkAPITypes.h
0 → 100644
View file @
5ef41994
/* -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-
*/
#ifndef BMD_DECKLINKAPITYPES_H
#define BMD_DECKLINKAPITYPES_H
// Type Declarations
typedef
int64_t
BMDTimeValue
;
typedef
int64_t
BMDTimeScale
;
typedef
uint32_t
BMDTimecodeBCD
;
typedef
uint32_t
BMDTimecodeUserBits
;
// Interface ID Declarations
#define IID_IDeckLinkTimecode
/* BC6CFBD3-8317-4325-AC1C-1216391E9340 */
(REFIID){0xBC,0x6C,0xFB,0xD3,0x83,0x17,0x43,0x25,0xAC,0x1C,0x12,0x16,0x39,0x1E,0x93,0x40}
/* Enum BMDTimecodeFlags - Timecode flags */
typedef
uint32_t
BMDTimecodeFlags
;
enum
_BMDTimecodeFlags
{
bmdTimecodeFlagDefault
=
0
,
bmdTimecodeIsDropFrame
=
1
<<
0
};
/* Enum BMDVideoConnection - Video connection types */
typedef
uint32_t
BMDVideoConnection
;
enum
_BMDVideoConnection
{
bmdVideoConnectionSDI
=
1
<<
0
,
bmdVideoConnectionHDMI
=
1
<<
1
,
bmdVideoConnectionOpticalSDI
=
1
<<
2
,
bmdVideoConnectionComponent
=
1
<<
3
,
bmdVideoConnectionComposite
=
1
<<
4
,
bmdVideoConnectionSVideo
=
1
<<
5
};
// Forward Declarations
class
IDeckLinkTimecode
;
/* Interface IDeckLinkTimecode - Used for video frame timecode representation. */
class
IDeckLinkTimecode
:
public
IUnknown
{
public:
virtual
BMDTimecodeBCD
GetBCD
(
void
)
=
0
;
virtual
HRESULT
GetComponents
(
/* out */
uint8_t
*
hours
,
/* out */
uint8_t
*
minutes
,
/* out */
uint8_t
*
seconds
,
/* out */
uint8_t
*
frames
)
=
0
;
virtual
HRESULT
GetString
(
/* out */
const
char
**
timecode
)
=
0
;
virtual
BMDTimecodeFlags
GetFlags
(
void
)
=
0
;
virtual
HRESULT
GetTimecodeUserBits
(
/* out */
BMDTimecodeUserBits
*
userBits
)
=
0
;
protected:
virtual
~
IDeckLinkTimecode
()
{};
// call Release method to drop reference count
};
/* Functions */
extern
"C"
{
};
#endif
/* defined(BMD_DECKLINKAPITYPES_H) */
src/blackmagic/include/DeckLinkAPIVersion.h
View file @
5ef41994
...
...
@@ -30,8 +30,8 @@
#ifndef __DeckLink_API_Verison_h__
#define __DeckLink_API_Version_h__
#define BLACKMAGIC_DECKLINK_API_VERSION 0x0
70905
00
#define BLACKMAGIC_DECKLINK_API_VERSION_STRING "
7.9.5
"
#define BLACKMAGIC_DECKLINK_API_VERSION 0x0
80601
00
#define BLACKMAGIC_DECKLINK_API_VERSION_STRING "
8.6.1
"
#endif // __DeckLink_API_Version_h__
src/blackmagic/include/DeckLinkAPI_v7_9.h
0 → 100644
View file @
5ef41994
/* -LICENSE-START-
** Copyright (c) 2010 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-
*/
/* DeckLinkAPI_v7_9.h */
#ifndef __DeckLink_API_v7_9_h__
#define __DeckLink_API_v7_9_h__
#include "DeckLinkAPI.h"