|
AJA NTV2 SDK
17.5.0.1492
NTV2 SDK 17.5.0.1492
|
Go to the documentation of this file.
23 #if defined(NTV2_DEPRECATE_17_1)
29 string deviceIdentifier;
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;
62 for (
size_t ndx(0); ndx < inStr.size(); ndx++)
67 #endif // !defined(NTV2_DEPRECATE_17_1)
71 if (inStr.length() != 8 && inStr.length() != 9)
85 #if defined(NTV2_DEPRECATE_17_1)
86 void ScanHardware (
void)
97 info.
deviceID = tmpDev.GetDeviceID();
104 #else // !defined(NTV2_DEPRECATE_17_1)
111 #if !defined(NTV2_DEPRECATE_16_3)
118 #endif // !defined(NTV2_DEPRECATE_16_3)
132 for (
UWord boardNum(0); ; boardNum++)
135 if (!tmpDev.IsOpen())
150 SetDeviceAttributes(info, tmpDev);
151 SetAudioAttributes(info, tmpDev);
167 if (iter->deviceID == inDeviceID)
181 if (iter->deviceIndex == inDeviceIndexNumber)
183 outDeviceInfo = *iter;
189 #endif // !defined(NTV2_DEPRECATE_17_1)
197 if (iter->deviceIndex == inDeviceIndexNumber)
199 if (iter->isVirtualDevice)
200 return outDevice.
Open(iter->vdevUrl);
202 return outDevice.
Open(
UWord(inDeviceIndexNumber));
232 string nameSubString(inNameSubString);
aja::lower(nameSubString);
236 if (deviceName.find(nameSubString) != string::npos)
244 if (nameSubString ==
"io4kplus")
246 nameSubString =
"avid dnxiv";
250 if (deviceName.find(nameSubString) != string::npos)
269 string nameString(inNameString);
aja::lower(nameString);
275 if (deviceName == nameString)
288 string searchSerialStr(inSerialStr);
aja::lower(searchSerialStr);
292 if (ser.find(searchSerialStr) != string::npos)
304 #if !defined(NTV2_DEPRECATE_17_5)
308 return GetDeviceWithSerial(serNumStr, outDevice);
310 #endif // !defined(NTV2_DEPRECATE_17_5)
318 if (
sDevInfoList.at(ndx).serialNumber == inSerialNumber)
332 if (inArgument.empty())
338 string upperArg(inArgument);
aja::upper(upperArg);
339 if (upperArg ==
"LIST" || upperArg ==
"?")
342 cout <<
"No devices detected" << endl;
349 cout <<
DECN(ndx, 2) <<
" | " << setw(8) <<
"virtual";
351 cout <<
" | " << setw(10) <<
sDevInfoList.at(ndx).vdevName;
356 cout <<
DECN(ndx, 2) <<
" | " << setw(8) <<
"local";
359 cout <<
" | " << setw(10) << serNum;
369 if (
to_string(iter->deviceIndex) == inArgument)
370 return outDevice.
Open(iter->isVirtualDevice ? iter->vdevUrl : inArgument);
371 else if (iter->deviceIdentifier == inArgument)
372 return outDevice.
Open(iter->isVirtualDevice ? iter->vdevUrl : inArgument);
373 else if (iter->isVirtualDevice && iter->vdevName == inArgument)
374 return outDevice.
Open( iter->vdevUrl );
378 return outDevice.
Open(iter->isVirtualDevice ? iter->vdevUrl : inArgument);
379 else if (IsLegalSerialNumber(inArgument))
380 return outDevice.
Open(inArgument);
381 else if (inArgument.find(
"://") != string::npos)
382 return outDevice.
Open(inArgument);
384 return outDevice.
Open(inArgument);
390 if (!inDevice.IsOpen())
393 if (!inDevice.GetHostName().empty() && inDevice.IsRemote())
394 return inDevice.GetHostName();
403 if (!str.empty() && str !=
"???")
407 ostringstream oss; oss <<
DEC(inDevice.GetIndexNumber());
412 #if !defined(NTV2_DEPRECATE_17_1)
416 inOutStr <<
" " << *iter;
443 return diffs ?
false :
true;
452 deviceSerialNumber = 0;
456 numAnlgVidInputs = 0;
457 numAnlgVidOutputs = 0;
458 numHDMIVidInputs = 0;
459 numHDMIVidOutputs = 0;
460 numInputConverters = 0;
461 numOutputConverters = 0;
463 numDownConverters = 0;
464 downConverterDelay = 0;
465 isoConvertSupport =
false;
466 rateConvertSupport =
false;
467 dvcproHDSupport =
false;
470 quarterExpandSupport =
false;
471 vidProcSupport =
false;
472 dualLinkSupport =
false;
473 colorCorrectionSupport =
false;
474 programmableCSCSupport =
false;
475 rgbAlphaOutputSupport =
false;
476 breakoutBoxSupport =
false;
477 procAmpSupport =
false;
478 has2KSupport =
false;
479 has4KSupport =
false;
480 has8KSupport =
false;
481 has3GLevelConversion =
false;
482 proResSupport =
false;
483 sdi3GSupport =
false;
484 sdi12GSupport =
false;
486 biDirectionalSDI =
false;
487 ltcInSupport =
false;
488 ltcOutSupport =
false;
489 ltcInOnRefPort =
false;
490 stereoOutSupport =
false;
491 stereoInSupport =
false;
494 numAnalogAudioInputChannels = 0;
495 numAESAudioInputChannels = 0;
496 numEmbeddedAudioInputChannels = 0;
497 numHDMIAudioInputChannels = 0;
498 numAnalogAudioOutputChannels = 0;
499 numAESAudioOutputChannels = 0;
500 numEmbeddedAudioOutputChannels = 0;
501 numHDMIAudioOutputChannels = 0;
505 deviceIdentifier.clear();
506 audioSampleRateList.clear();
507 audioNumChannelsList.clear();
508 audioBitsPerSampleList.clear();
509 audioInSourceList.clear();
510 audioOutSourceList.clear();
528 outBoardsAdded.clear ();
529 outBoardsRemoved.clear ();
533 if (oldIter == inOldList.end () && newIter == inNewList.end ())
536 if (oldIter != inOldList.end () && newIter != inNewList.end ())
540 if (oldInfo != newInfo)
543 outBoardsRemoved.push_back (oldInfo);
547 outBoardsAdded.push_back (newInfo);
556 if (oldIter != inOldList.end () && newIter == inNewList.end ())
558 outBoardsRemoved.push_back (*oldIter);
563 if (oldIter == inOldList.end () && newIter != inNewList.end ())
565 if (newIter->deviceID && newIter->deviceID !=
NTV2DeviceID(0xFFFFFFFF))
566 outBoardsAdded.push_back (*newIter);
576 return !outBoardsAdded.empty () || !outBoardsRemoved.empty ();
584 inOutStr <<
" " << *iter;
593 inOutStr <<
" " << *iter;
611 return inOutStr <<
" ???";
618 inOutStr <<
" " << *iter;
627 <<
" Device Index Number: " << inInfo.
deviceIndex << endl
628 <<
" Device ID: 0x" << hex << inInfo.
deviceID << dec << endl
630 <<
" PCI Slot: 0x" << hex << inInfo.
pciSlot << dec << endl
644 <<
" Qrez: " << (inInfo.
qrezSupport ?
"Y" :
"N") << endl
645 <<
" HDV: " << (inInfo.
hdvSupport ?
"Y" :
"N") << endl
661 <<
" SDI 3G: " << (inInfo.
sdi3GSupport ?
"Y" :
"N") << endl
662 <<
" SDI 12G: " << (inInfo.
sdi12GSupport ?
"Y" :
"N") << endl
663 <<
" IP: " << (inInfo.
ipSupport ?
"Y" :
"N") << endl
665 <<
" LTC In: " << (inInfo.
ltcInSupport ?
"Y" :
"N") << endl
666 <<
" LTC Out: " << (inInfo.
ltcOutSupport ?
"Y" :
"N") << endl
667 <<
" LTC In on Ref Port: " << (inInfo.
ltcInOnRefPort ?
"Y" :
"N") << endl
696 inOutStr <<
"AudioPhysicalFormat:" << endl
697 <<
" boardNumber: " << inFormat.
boardNumber << endl
698 <<
" sampleRate: " << inFormat.
sampleRate << endl
699 <<
" numChannels: " << inFormat.
numChannels << endl
701 #if defined (DEBUG) || defined (AJA_DEBUG)
702 <<
" sourceIn: 0x" << hex << inFormat.
sourceIn << dec << endl
703 <<
" sourceOut: 0x" << hex << inFormat.
sourceOut << dec << endl
704 #endif // DEBUG or AJA_DEBUG
797 if (audioControl &
BIT(21))
830 #if defined(NTV2_PREVENT_PLUGIN_LOAD)
838 vdevPath = vdevPath +
"virtualdevices";
840 std::vector<std::string> vdevFiles;
842 for (
const auto& vdevFile : vdevFiles)
844 std::ifstream cfgJsonfile(vdevFile);
846 if (cfgJsonfile.is_open())
854 cerr <<
"JSON parse error: " << e.
what() << endl;
855 cerr <<
"Exception id: " << e.
id << endl;
856 cerr <<
"Byte position of error: " << e.
byte << endl;
878 auto pluginVal = vdevJson[
"plugin"];
879 auto nameVal = vdevJson[
"name"];
880 auto hostVal = vdevJson[
"host"];
882 if (pluginVal.is_null())
884 cerr <<
"JSON file: '" << vdevFile <<
"' is missing the required paramater 'plugin'." << endl;
887 newVDev.
vdevUrl = pluginVal.get<std::string>();
889 if (!nameVal.is_null())
892 oss << nameVal.get<std::string>() <<
" - " << newVDev.
deviceIndex;
895 newVDev.
vdevName = nameVal.get<std::string>();
898 if (!hostVal.is_null())
900 hostName = hostVal.get<std::string>();
903 if (hostName.empty())
905 hostName =
"localhost";
908 newVDev.
vdevUrl +=
"://" + hostName +
"/?";
909 bool isFirstParam =
true;
910 for (
auto it = vdevJson.
begin(); it != vdevJson.
end(); ++it)
912 if (it.key() !=
"plugin" && it.key() !=
"name" && it.key() !=
"host")
914 auto paramValStr =
to_string(it.value());
917 isFirstParam =
false;
923 string displayNameParam =
"displayname";
927 outVirtualDevList.push_back(newVDev);
931 #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.
Declares the AJASystemInfo class.
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.
const char * what() const noexcept override
returns the explanatory string
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.
std::string & strip(std::string &str, const std::string &ws)
@ kDeviceGetNumDownConverters
The number of down-converters on the device.
@ kDeviceCanDoHDV
True if device can squeeze/stretch between 1920x1080 and 1440x1080.
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)))
uint64_t is_legal_hex_serial_number(const std::string &inStr)
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...
int stoi(const std::string &str, std::size_t *idx, int base)
@ 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...
a class to store JSON values
std::string PercentEncode(const std::string &inStr)
iterator begin() noexcept
returns an iterator to the first element
@ 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...
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.
@ kNTV2EnumsID_WidgetID
Identifies the NTV2AudioWidgetID enumerated type.
UWord numAESAudioOutputChannels
Total number of AES audio output channels.
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?
Declares the AJAFileIO class.
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)
bool is_legal_decimal_number(const std::string &inStr, const size_t inMaxLength)
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?
static basic_json parse(InputType &&i, const parser_callback_t cb=nullptr, const bool allow_exceptions=true, const bool ignore_comments=false)
deserialize from a compatible input
iterator end() noexcept
returns an iterator to one past the last element
UWord numInputConverters
Total number of input converters.
@ kDeviceCanDoRateConvert
True if device can do frame rate conversion.
bool ipSupport
Supports IP IO?
static bool GetVirtualDeviceWithName(const std::string &inNameString, CNTV2Card &outDevice, const bool inRescan=(!(0)))
Rescans the host, and returns an open CNTV2Card instance for the first virtual device with a matching...
bool colorCorrectionSupport
Supports color correction?
bool sdi3GSupport
Supports 3G?
@ kDeviceCanDoProgrammableCSC
True if device has at least one programmable color space converter widget.
const int id
the id of the exception
@ 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.
static AJAStatus ReadDirectory(const std::string &directory, const std::string &filePattern, std::vector< std::string > &fileContainer)
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.
const std::size_t byte
byte index of the parse error
@ DEVICE_ID_SOFTWARE
Software device that doesn't emulate one of the above devices.
@ 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.
@ 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)
exception indicating a parse error
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.