|
AJA NTV2 SDK
17.5.0.1242
NTV2 SDK 17.5.0.1242
|
Go to the documentation of this file.
18 #if defined(NTV2_DEPRECATE_17_1)
24 string deviceIdentifier;
25 #if defined(VIRTUAL_DEVICES_SUPPORT)
26 bool isVirtualDevice=
false;
27 std::string virtualDeviceName;
28 std::string virtualDeviceID;
29 #endif // defined(VIRTUAL_DEVICES_SUPPORT)
36 {
static const string sHexDigits(
"0123456789ABCDEFabcdef");
37 return sHexDigits.find(inChr) != string::npos;
41 {
static const string sDecDigits(
"0123456789");
42 return sDecDigits.find(inChr) != string::npos;
46 {
static const string sLegalChars(
"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
47 return sLegalChars.find(inChr) != string::npos;
52 if (inStr.length() > inMaxLength)
54 for (
size_t ndx(0); ndx < inStr.size(); ndx++)
62 if (inStr.length() < 3)
65 if (hexStr[0] ==
'0' && hexStr[1] ==
'x')
67 if (hexStr.length() > 16)
69 for (
size_t ndx(0); ndx < hexStr.size(); ndx++)
72 while (hexStr.length() != 16)
73 hexStr =
'0' + hexStr;
74 istringstream iss(hexStr);
82 for (
size_t ndx(0); ndx < inStr.size(); ndx++)
87 #endif // !defined(NTV2_DEPRECATE_17_1)
91 if (inStr.length() != 8 && inStr.length() != 9)
105 #if defined(NTV2_DEPRECATE_17_1)
106 void ScanHardware (
void)
114 if (!tmpDev.IsOpen())
117 info.
deviceID = tmpDev.GetDeviceID();
124 #else // !defined(NTV2_DEPRECATE_17_1)
131 #if !defined(NTV2_DEPRECATE_16_3)
138 #endif // !defined(NTV2_DEPRECATE_16_3)
152 for (
UWord boardNum(0); ; boardNum++)
155 if (!tmpDev.IsOpen())
213 SetAudioAttributes(info, tmpDev);
219 #if defined(VIRTUAL_DEVICES_SUPPORT)
220 NTV2SerialToVirtualDevices vdMap;
221 GetSerialToVirtualDeviceMap(vdMap);
224 for (
auto hwInfo : hwList)
226 string hwSN = hwInfo.serialNumber;
227 auto it = vdMap.find(hwSN);
228 if (it != vdMap.end())
230 std::vector<VirtualDeviceInfo> vdevs = it->second;
231 for (
const auto& vdev : vdevs)
233 hwInfo.deviceIndex = vdIndex++;
234 hwInfo.isVirtualDevice =
true;
235 hwInfo.virtualDeviceID = vdev.vdID;
236 hwInfo.virtualDeviceName = vdev.vdName;
241 #endif // defined(VIRTUAL_DEVICES_SUPPORT)
251 if (iter->deviceID == inDeviceID)
267 return outDeviceInfo.
deviceIndex == inDeviceIndexNumber;
272 #endif // !defined(NTV2_DEPRECATE_17_1)
279 return size_t(inDeviceIndexNumber) <
sDevInfoList.size()
280 ? outDevice.
Open(
UWord(inDeviceIndexNumber))
304 if (inNameSubString.find(
":") != string::npos)
305 return outDevice.
Open(inNameSubString);
311 string nameSubString(inNameSubString);
aja::lower(nameSubString);
315 if (deviceName.find(nameSubString) != string::npos)
318 if (nameSubString ==
"io4kplus")
320 nameSubString =
"avid dnxiv";
324 if (deviceName.find(nameSubString) != string::npos)
338 string searchSerialStr(inSerialStr);
aja::lower(searchSerialStr);
346 if (serNumStr.find(searchSerialStr) != string::npos)
354 #if !defined(NTV2_DEPRECATE_17_5)
358 return GetDeviceWithSerial(serNumStr, outDevice);
360 #endif // !defined(NTV2_DEPRECATE_17_5)
368 if (
sDevInfoList.at(ndx).serialNumber == inSerialNumber)
377 if (inArgument.empty())
383 string upperArg(inArgument);
aja::upper(upperArg);
384 if (upperArg ==
"LIST" || upperArg ==
"?")
387 cout <<
"No local devices detected" << endl;
395 cout <<
" | " << setw(10) << serNum;
398 #if defined(VIRTUAL_DEVICES_SUPPORT)
401 cout <<
"*** Virtual Devices ***" << endl;
404 const string serNum(iter->serialNumber);
405 cout <<
DECN(iter->deviceIndex,2) <<
" | " << setw(15) << iter->virtualDeviceName;
406 cout <<
" | " << iter->virtualDeviceID;
409 cout <<
" " << serNum;
414 #endif // defined(VIRTUAL_DEVICES_SUPPORT)
418 #if defined(VIRTUAL_DEVICES_SUPPORT)
421 string cp2ConfigPath;
422 GetCP2ConfigPath(cp2ConfigPath);
423 std::ifstream cfgJsonfile(cp2ConfigPath);
426 if (iter->isVirtualDevice)
429 iter->virtualDeviceName == inArgument ||
430 iter->virtualDeviceID == inArgument)
432 string inVDSpec =
"ntv2virtualdev://localhost/?CP2ConfigPath=" + cp2ConfigPath +
433 "&DeviceSN=" + iter->serialNumber +
434 "&vdid=" + iter->virtualDeviceID +
436 return outDevice.
Open(inVDSpec);
441 #endif // defined(VIRTUAL_DEVICES_SUPPORT)
442 return outDevice.
Open(inArgument);
449 if (!inDevice.IsOpen())
452 if (!inDevice.GetHostName().empty() && inDevice.IsRemote())
453 return inDevice.GetHostName();
462 if (!str.empty() && str !=
"???")
466 ostringstream oss; oss <<
DEC(inDevice.GetIndexNumber());
471 #if !defined(NTV2_DEPRECATE_17_1)
475 inOutStr <<
" " << *iter;
502 return diffs ?
false :
true;
511 deviceSerialNumber = 0;
515 numAnlgVidInputs = 0;
516 numAnlgVidOutputs = 0;
517 numHDMIVidInputs = 0;
518 numHDMIVidOutputs = 0;
519 numInputConverters = 0;
520 numOutputConverters = 0;
522 numDownConverters = 0;
523 downConverterDelay = 0;
524 isoConvertSupport =
false;
525 rateConvertSupport =
false;
526 dvcproHDSupport =
false;
529 quarterExpandSupport =
false;
530 vidProcSupport =
false;
531 dualLinkSupport =
false;
532 colorCorrectionSupport =
false;
533 programmableCSCSupport =
false;
534 rgbAlphaOutputSupport =
false;
535 breakoutBoxSupport =
false;
536 procAmpSupport =
false;
537 has2KSupport =
false;
538 has4KSupport =
false;
539 has8KSupport =
false;
540 has3GLevelConversion =
false;
541 proResSupport =
false;
542 sdi3GSupport =
false;
543 sdi12GSupport =
false;
545 biDirectionalSDI =
false;
546 ltcInSupport =
false;
547 ltcOutSupport =
false;
548 ltcInOnRefPort =
false;
549 stereoOutSupport =
false;
550 stereoInSupport =
false;
553 numAnalogAudioInputChannels = 0;
554 numAESAudioInputChannels = 0;
555 numEmbeddedAudioInputChannels = 0;
556 numHDMIAudioInputChannels = 0;
557 numAnalogAudioOutputChannels = 0;
558 numAESAudioOutputChannels = 0;
559 numEmbeddedAudioOutputChannels = 0;
560 numHDMIAudioOutputChannels = 0;
564 deviceIdentifier.clear();
565 audioSampleRateList.clear();
566 audioNumChannelsList.clear();
567 audioBitsPerSampleList.clear();
568 audioInSourceList.clear();
569 audioOutSourceList.clear();
587 outBoardsAdded.clear ();
588 outBoardsRemoved.clear ();
592 if (oldIter == inOldList.end () && newIter == inNewList.end ())
595 if (oldIter != inOldList.end () && newIter != inNewList.end ())
599 if (oldInfo != newInfo)
602 outBoardsRemoved.push_back (oldInfo);
606 outBoardsAdded.push_back (newInfo);
615 if (oldIter != inOldList.end () && newIter == inNewList.end ())
617 outBoardsRemoved.push_back (*oldIter);
622 if (oldIter == inOldList.end () && newIter != inNewList.end ())
624 if (newIter->deviceID && newIter->deviceID !=
NTV2DeviceID(0xFFFFFFFF))
625 outBoardsAdded.push_back (*newIter);
635 return !outBoardsAdded.empty () || !outBoardsRemoved.empty ();
643 inOutStr <<
" " << *iter;
652 inOutStr <<
" " << *iter;
670 return inOutStr <<
" ???";
677 inOutStr <<
" " << *iter;
686 <<
" Device Index Number: " << inInfo.
deviceIndex << endl
687 <<
" Device ID: 0x" << hex << inInfo.
deviceID << dec << endl
689 <<
" PCI Slot: 0x" << hex << inInfo.
pciSlot << dec << endl
703 <<
" Qrez: " << (inInfo.
qrezSupport ?
"Y" :
"N") << endl
704 <<
" HDV: " << (inInfo.
hdvSupport ?
"Y" :
"N") << endl
720 <<
" SDI 3G: " << (inInfo.
sdi3GSupport ?
"Y" :
"N") << endl
721 <<
" SDI 12G: " << (inInfo.
sdi12GSupport ?
"Y" :
"N") << endl
722 <<
" IP: " << (inInfo.
ipSupport ?
"Y" :
"N") << endl
724 <<
" LTC In: " << (inInfo.
ltcInSupport ?
"Y" :
"N") << endl
725 <<
" LTC Out: " << (inInfo.
ltcOutSupport ?
"Y" :
"N") << endl
726 <<
" LTC In on Ref Port: " << (inInfo.
ltcInOnRefPort ?
"Y" :
"N") << endl
755 inOutStr <<
"AudioPhysicalFormat:" << endl
756 <<
" boardNumber: " << inFormat.
boardNumber << endl
757 <<
" sampleRate: " << inFormat.
sampleRate << endl
758 <<
" numChannels: " << inFormat.
numChannels << endl
760 #if defined (DEBUG) || defined (AJA_DEBUG)
761 <<
" sourceIn: 0x" << hex << inFormat.
sourceIn << dec << endl
762 <<
" sourceOut: 0x" << hex << inFormat.
sourceOut << dec << endl
763 #endif // DEBUG or AJA_DEBUG
808 if (audioControl &
BIT(21))
839 #if defined(VIRTUAL_DEVICES_SUPPORT)
840 bool CNTV2DeviceScanner::GetSerialToVirtualDeviceMap (NTV2SerialToVirtualDevices & outSerialToVirtualDevMap)
842 string cp2ConfigPath;
843 GetCP2ConfigPath(cp2ConfigPath);
844 std::ifstream cfgJsonfile(cp2ConfigPath);
846 if (cfgJsonfile.is_open())
848 cp2Json = json::parse(cfgJsonfile);
854 for (
const auto& hwdev : cp2Json[
"v2"][
"deviceConfigList"])
856 std::vector<VirtualDeviceInfo> vdevs;
857 json hwdevice = hwdev;
858 for (
const auto& vdev : hwdevice[
"virtualDevices"])
860 VirtualDeviceInfo newVDev;
861 newVDev.vdID = vdev[
"id"];
862 newVDev.vdName = vdev[
"name"];
863 vdevs.push_back(newVDev);
866 outSerialToVirtualDevMap[hwdev[
"serial"]] = vdevs;
872 bool CNTV2DeviceScanner::GetCP2ConfigPath(
string & outCP2ConfigPath)
876 outCP2ConfigPath = outCP2ConfigPath +
"aja/controlpanelConfigPrimary.json";
879 #endif // defined(VIRTUAL_DEVICES_SUPPORT)
880 #endif // !defined(NTV2_DEPRECATE_17_1)
static uint64_t IsLegalHexSerialNumber(const std::string &inStr)
@ kDeviceGetNumVideoInputs
The number of SDI video inputs on the device.
@ kDeviceHasBiDirectionalSDI
True if device SDI connectors are bi-directional.
@ kDeviceCanDoAudio6Channels
True if audio system(s) support 6 or more audio channels.
NTV2AudioSourceList audioOutSourceList
My supported audio output destinations (AES, etc.)
bool quarterExpandSupport
static bool DeviceIDPresent(const NTV2DeviceID inDeviceID, const bool inRescan=(0))
UWord numAnalogAudioInputChannels
Total number of analog audio input channels.
bool biDirectionalSDI
Supports Bi-directional SDI.
NTV2AudioBitsPerSampleList audioBitsPerSampleList
My supported audio bits-per-sample.
@ kDeviceCanDoIP
True if device has SFP connectors.
@ kDeviceCanDoVideoProcessing
True if device can do video processing.
UWord numDownConverters
Total number of down-converters.
UWord numAnlgVidOutputs
Total number of analog video outputs.
Declares device capability functions.
virtual bool ReadRegister(const ULWord inRegNum, ULWord &outValue, const ULWord inMask=0xFFFFFFFF, const ULWord inShift=0)
Reads all or part of the 32-bit contents of a specific register (real or virtual) on the AJA device....
bool has3GLevelConversion
Supports 3G Level Conversion?
UWord numHDMIVidInputs
Total number of HDMI inputs.
@ kDeviceGetNumDownConverters
The number of down-converters on the device.
@ kDeviceCanDoHDV
True if device can squeeze/stretch between 1920x1080 and 1440x1080.
bool is_hex_digit(const char inChr)
bool sdi12GSupport
Supports 12G?
@ kDeviceGetNumAnalogAudioInputChannels
The number of analog audio input channels on the device.
#define NTV2_ASSERT(_expr_)
bool ltcInSupport
Accepts LTC input?
@ kDeviceGetNumEmbeddedAudioOutputChannels
The number of SDI-embedded output audio channels supported by the device.
NTV2DeviceInfoList GetDeviceInfoList(void)
NTV2AudioSourceList::const_iterator NTV2AudioSourceListConstIter
UWord numHDMIVidOutputs
Total number of HDMI outputs.
static AJALock sDevInfoListLock
static bool GetFirstDeviceFromArgument(const std::string &inArgument, CNTV2Card &outDevice)
Rescans the host, and returns an open CNTV2Card instance for the AJA device that matches a command li...
static bool GetFirstDeviceWithID(const NTV2DeviceID inDeviceID, CNTV2Card &outDevice)
Rescans the host, and returns an open CNTV2Card instance for the first AJA device found on the host t...
std::vector< NTV2DeviceInfo > NTV2DeviceInfoList
I am an ordered list of NTV2DeviceInfo structs.
@ kDeviceCanDo4KVideo
True if the device can handle 4K/UHD video.
UWord numSerialPorts
Total number of serial ports.
@ kDeviceCanDoAudio96K
True if Audio System(s) support a 96kHz sample rate.
@ kDeviceCanDo3GLevelConversion
True if device can do 3G level B to 3G level A conversion.
@ kDeviceCanDoQuarterExpand
True if device can handle quarter-sized frames (pixel-halving and line-halving during input,...
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
@ kDeviceGetNumVideoOutputs
The number of SDI video outputs on the device.
CNTV2DeviceScanner(const bool inScanNow=(!(0)))
static bool GetDeviceWithSerial(const std::string &inSerialNumber, CNTV2Card &outDevice)
Rescans the host, and returns an open CNTV2Card instance for the first AJA device whose serial number...
@ kDeviceGetNumAESAudioOutputChannels
The number of AES/EBU audio output channels on the device.
@ kDeviceCanDoColorCorrection
True if device has any LUTs.
@ kDeviceCanDoDualLink
True if device supports 10-bit RGB input/output over 2-wire SDI.
static size_t GetNumDevices(void)
static bool GetFirstDeviceWithSerial(const std::string &inSerialStr, CNTV2Card &outDevice)
Rescans the host, and returns an open CNTV2Card instance for the first AJA device whose serial number...
@ kDeviceGetNumAnalogAudioOutputChannels
The number of analog audio output channels on the device.
@ kDeviceGetNumDMAEngines
The number of DMA engines on the device.
UWord numHDMIAudioOutputChannels
Total number of HDMI audio output channels.
UWord numAnlgVidInputs
Total number of analog video inputs.
NTV2AudioChannelsPerFrameList::const_iterator NTV2AudioChannelsPerFrameListConstIter
virtual bool IsSupported(const NTV2BoolParamID inParamID)
@ kDeviceCanDoDVCProHD
True if device can squeeze/stretch between 1920x1080/1280x1080 and 1280x720/960x720.
std::vector< AudioBitsPerSampleEnum > NTV2AudioBitsPerSampleList
std::vector< AudioSampleRateEnum > NTV2AudioSampleRateList
static bool CompareDeviceInfoLists(const NTV2DeviceInfoList &inOldList, const NTV2DeviceInfoList &inNewList, NTV2DeviceInfoList &outDevicesAdded, NTV2DeviceInfoList &outDevicesRemoved)
@ kDeviceCanDoAnalogAudio
True if device has any analog inputs or outputs.
UWord numVidOutputs
Total number of video outputs – analog, digital, whatever.
std::string & lower(std::string &str)
@ kDeviceGetNumAudioSystems
The number of independent Audio Systems on the device.
std::string deviceIdentifier
Device name as seen in Control Panel, Watcher, Cables, etc.
NTV2AudioSourceList audioInSourceList
My supported audio input sources (AES, ADAT, etc.)
std::set< ULWord > ULWordSet
A collection of unique ULWord (uint32_t) values.
Declares the AJALock class.
bool has4KSupport
Supports 4K formats?
virtual AJAStatus GetValue(const AJASystemInfoTag inTag, std::string &outValue) const
Answers with the host system info value string for the given AJASystemInfoTag.
@ kDeviceCanDoProRes
True if device can can accommodate Apple ProRes-compressed video in its frame buffers.
@ kDeviceGetNumAnalogVideoInputs
The number of analog video inputs on the device.
Declares the CNTV2DeviceScanner class.
UWord numOutputConverters
Total number of output converters.
@ kDeviceCanDoLTCInOnRefPort
True if device can read LTC (Linear TimeCode) from its reference input.
std::string NTV2DeviceIDToString(const NTV2DeviceID inValue, const bool inForRetailDisplay=false)
static void ScanHardware(void)
static bool GetDeviceInfo(const ULWord inDeviceIndexNumber, NTV2DeviceInfo &outDeviceInfo, const bool inRescan=(0))
virtual bool GetSerialNumberString(std::string &outSerialNumberString)
Answers with a string that contains my human-readable serial number.
@ kDeviceGetNumInputConverters
The number of input converter widgets on the device.
std::string & upper(std::string &str)
Declares numerous NTV2 utility functions.
UWord numDMAEngines
Total number of DMA engines.
static bool GetFirstDeviceWithName(const std::string &inNameSubString, CNTV2Card &outDevice)
Rescans the host, and returns an open CNTV2Card instance for the first AJA device whose device identi...
bool is_decimal_digit(const char inChr)
I interrogate and control an AJA video/audio capture/playout device.
bool rgbAlphaOutputSupport
Supports RGB alpha channel?
@ AJA_SystemInfoTag_Path_PersistenceStoreUser
static NTV2DeviceInfoList sDevInfoList
@ kDeviceCanDoBreakoutBox
True if device supports an AJA breakout box.
UWord numAESAudioOutputChannels
Total number of AES audio output channels.
@ kNTV2EnumsID_WidgetID
Identifies the NTV2AudioWidgetID enumerated type.
static std::string GetDeviceRefName(CNTV2Card &inDevice)
@ kDeviceGetPingLED
The highest bit number of the LED bits in the Global Control Register on the device.
@ kDeviceCanDoStereoIn
True if device supports 3D video input over dual-stream SDI.
virtual ULWord GetNumSupported(const NTV2NumericParamID inParamID)
bool has2KSupport
Supports 2K formats?
@ kDeviceGetDownConverterDelay
The down-converter delay on the device.
bool proResSupport
Supports ProRes?
bool stereoOutSupport
Supports stereo output?
@ kDeviceGetNumAESAudioInputChannels
The number of AES/EBU audio input channels on the device.
UWord numUpConverters
Total number of up-converters.
@ kDeviceGetNumHDMIVideoInputs
The number of HDMI video inputs on the device.
UWord numEmbeddedAudioInputChannels
Total number of embedded (SDI) audio input channels.
static bool IsHexDigit(const char inChr)
bool programmableCSCSupport
Programmable color space converter?
@ kDeviceCanDoRGBPlusAlphaOut
True if device has CSCs capable of splitting the key (alpha) and YCbCr (fill) from RGB frame buffers ...
NTV2DeviceInfoList::const_iterator NTV2DeviceInfoListConstIter
bool multiFormat
Supports multiple video formats?
ULWord deviceIndex
Device index number – this will be phased out someday.
UWord numAnalogAudioOutputChannels
Total number of analog audio output channels.
UWord numHDMIAudioInputChannels
Total number of HDMI audio input channels.
UWord numVidInputs
Total number of video inputs – analog, digital, whatever.
bool has8KSupport
Supports 8K formats?
std::vector< AudioSourceEnum > NTV2AudioSourceList
@ kDeviceGetNumHDMIVideoOutputs
The number of HDMI video outputs on the device.
Private include file for all ajabase sources.
static bool GetDeviceAtIndex(const ULWord inDeviceIndexNumber, CNTV2Card &outDevice)
Rescans the host, and returns an open CNTV2Card instance for the AJA device having the given zero-bas...
@ kDeviceGetNumHDMIAudioOutputChannels
The number of HDMI audio output channels on the device.
@ kDeviceGetNumHDMIAudioInputChannels
The number of HDMI audio input channels on the device.
bool is_alpha_numeric(const char inChr)
ostream & operator<<(ostream &inOutStr, const NTV2DeviceInfoList &inList)
NTV2AudioPhysicalFormatList::const_iterator NTV2AudioPhysicalFormatListConstIter
NTV2AudioSampleRateList audioSampleRateList
My supported audio sample rates.
@ kDeviceCanDo8KVideo
True if device supports 8K video formats.
@ kDeviceHasMicrophoneInput
True if device has a microphone input connector.
virtual NTV2DeviceID GetDeviceID(void)
bool operator==(const NTV2DeviceInfo &rhs) const
ULWord pciSlot
PCI slot (if applicable and/or known)
@ kDeviceCanDoAudio2Channels
True if audio system(s) support 2 or more audio channels.
@ kDeviceCanDo12GSDI
True if device has 12G SDI connectors.
NTV2AudioSampleRateList::const_iterator NTV2AudioSampleRateListConstIter
bool ltcOutSupport
Supports LTC output?
UWord numInputConverters
Total number of input converters.
@ kDeviceCanDoRateConvert
True if device can do frame rate conversion.
bool ipSupport
Supports IP IO?
bool colorCorrectionSupport
Supports color correction?
bool sdi3GSupport
Supports 3G?
@ kDeviceCanDoProgrammableCSC
True if device has at least one programmable color space converter widget.
@ kDeviceCanDoAudio8Channels
True if audio system(s) support 8 or more audio channels.
std::string to_string(bool val)
bool breakoutBoxSupport
Can support a breakout box?
@ kDeviceCanDo2KVideo
True if device can handle 2Kx1556 (film) video.
struct NTV2DeviceInfo NTV2DeviceInfo
@ kDeviceGetNumUpConverters
The number of up-converters on the device.
std::vector< NTV2AudioPhysicalFormat > NTV2AudioPhysicalFormatList
I am an ordered list of NTV2AudioPhysicalFormat structs.
bool ltcInOnRefPort
Supports LTC on reference input?
NTV2AudioChannelsPerFrameList audioNumChannelsList
My supported number of audio channels per frame.
std::vector< AudioChannelsPerFrameEnum > NTV2AudioChannelsPerFrameList
@ kDeviceGetNumAnalogVideoOutputs
The number of analog video outputs on the device.
@ kDeviceGetNumOutputConverters
The number of output converter widgets on the device.
virtual bool Open(const UWord inDeviceIndex)
Opens a local/physical AJA device so it can be monitored/controlled.
@ kDeviceGetNumEmbeddedAudioInputChannels
The number of SDI-embedded input audio channels supported by the device.
@ kDeviceGetNumSerialPorts
The number of RS-422 serial ports on the device.
basic_json<> json
default specialization
@ DEVICE_ID_NOTFOUND
Invalid or "not found".
bool stereoInSupport
Supports stereo input?
@ kDeviceCanDoQREZ
True if device can handle QRez.
static bool IsDecimalDigit(const char inChr)
UWord numAESAudioInputChannels
Total number of AES audio input channels.
std::string serialNumber
Unique device serial number (new in SDK 17.5)
@ kDeviceCanDoIsoConvert
True if device can do ISO conversion.
@ kDeviceCanDoMultiFormat
True if device can simultaneously handle different video formats on more than one SDI input or output...
NTV2DeviceID deviceID
Device ID/species (e.g., DEVICE_ID_KONA3G, DEVICE_ID_IOXT, etc.)
std::string SerialNum64ToString(const uint64_t &inSerNum)
virtual bool Close(void)
Closes me, releasing host resources that may have been allocated in a previous Open call.
static bool IsAlphaNumeric(const char inStr)
static bool IsLegalSerialNumber(const std::string &inStr)
@ kDeviceGetNumLTCOutputs
The number of analog LTC outputs on the device.
virtual ULWordSet GetSupportedItems(const NTV2EnumsID inEnumsID)
NTV2AudioBitsPerSampleList::const_iterator NTV2AudioBitsPerSampleListConstIter
static bool IsLegalDecimalNumber(const std::string &inStr, const size_t maxLen=2)
UWord numAudioStreams
Maximum number of independent audio streams.
@ kDeviceCanDoStereoOut
True if device supports 3D video output over dual-stream SDI.
bool dualLinkSupport
Supports dual-link?
@ kDeviceGetNumLTCInputs
The number of analog LTC inputs on the device.
#define DECN(__x__, __n__)
UWord numEmbeddedAudioOutputChannels
Total number of embedded (SDI) audio output channels.