11#include <promeki/config.h>
12#if PROMEKI_ENABLE_NTV2
22PROMEKI_NAMESPACE_BEGIN
53class Ntv2Capabilities {
63 Ntv2Capabilities() =
default;
73 bool probe(CNTV2Card &card);
76 bool isValid()
const {
return _valid; }
81 int sdiInputCount()
const {
return _sdiInputs; }
84 int sdiOutputCount()
const {
return _sdiOutputs; }
87 int hdmiInputCount()
const {
return _hdmiInputs; }
90 int hdmiOutputCount()
const {
return _hdmiOutputs; }
93 int audioSystemCount()
const {
return _audioSystems; }
96 int channelCount()
const {
return _channels; }
108 int cscCount()
const {
return _cscs; }
116 bool canDoMultiFormat()
const {
return _canDoMultiFormat; }
122 bool hasBiDirectionalSdi()
const {
return _hasBiDirectionalSdi; }
128 bool canDoCustomAnc()
const {
return _canDoCustomAnc; }
131 bool canCapture()
const {
return _canCapture; }
134 bool canPlayout()
const {
return _canPlayout; }
152 bool hasAudioCounter()
const {
return _audioSystems > 0; }
163 bool supportsLinkStandard(
const SdiLinkStandard &standard)
const;
173 bool supportsPixelFormat(PixelFormat::ID pixelFormat)
const;
182 String toString()
const;
197 static Ntv2Capabilities createForTest(
int channelCount,
int audioSystemCount,
198 int sdiInputs,
int sdiOutputs,
199 bool canMultiFormat =
true,
200 bool hasBiSdi =
true,
201 bool canDoAnc =
true,
209 int _hdmiOutputs = 0;
210 int _audioSystems = 0;
213 bool _canDoMultiFormat =
false;
214 bool _hasBiDirectionalSdi =
false;
215 bool _canDoCustomAnc =
false;
216 bool _canCapture =
false;
217 bool _canPlayout =
false;
225 static constexpr int kFbfMapSize = 128;
226 bool _fbfSupported[kFbfMapSize] = {};