 |
AJA NTV2 SDK
18.0.0.2717
NTV2 SDK 18.0.0.2717
|
Go to the documentation of this file.
22 : mDevCap(driverInterface())
28 : mDevCap(driverInterface())
30 string hostName(inHostName);
95 if (model ==
"Software" || model ==
"AJA Device" || model ==
"(Not Found)" || model ==
"Unknown" || model ==
"???")
98 {ostringstream tmp; tmp << GetIndexNumber(); devNdx = tmp.str();}
99 oss << model <<
" - " << devNdx;
110 string dateStr, timeStr;
114 oss << dateStr <<
" at " << timeStr;
116 oss <<
"Unavailable";
125 return ReadRegister (48, status) ? ((status >> 8) & 0xFF) : -1;
133 oss << hex << version;
146 string hostName(
"localhost"), snStr;
153 oss <<
" '" << snStr <<
"'";
154 if (!hostName.empty())
155 oss <<
" on '" << hostName <<
"'";
156 oss <<
" at index " <<
DEC(GetIndexNumber());
162 static const string sDriverBuildTypes [] = {
"",
"b",
"a",
"d"};
163 UWord versions[4] = {0, 0, 0, 0};
170 const string & dabr (sDriverBuildTypes[versBits >> 30]);
172 oss <<
DEC(versions[0]) <<
"." <<
DEC(versions[1]) <<
"." <<
DEC(versions[2]);
174 oss <<
"." <<
DEC(versions[3]);
176 oss << dabr <<
DEC(versions[3]);
184 outMajor = outMinor = outPoint = outBuild = 0;
185 ULWord driverVersionULWord (0);
188 if (!driverVersionULWord)
216 const uint64_t result((hi << 32) | lo);
234 if (hasLPPC || spiFlashVers >= 6)
237 ULWord serialArray[] = {0,0,0,0};
242 outSerialNumberString.clear();
243 for (
int serialIndex = 0; serialIndex < 4; serialIndex++)
244 if (serialArray[serialIndex] != 0xffffffff)
245 for (
int i = 0; i < 4; i++)
247 const char tempChar(((serialArray[serialIndex] >> (i*8)) & 0xff));
248 if (tempChar > 0 && tempChar !=
'.')
249 outSerialNumberString.push_back(tempChar);
255 if (outSerialNumberString.empty())
256 {outSerialNumberString =
"INVALID?";
return false;}
260 outSerialNumberString =
"5" + outSerialNumberString;
264 outSerialNumberString =
"6" + outSerialNumberString;
266 outSerialNumberString =
"7" + outSerialNumberString;
330 ::memset (&bitFileInfo, 0,
sizeof (bitFileInfo));
338 outDateStr =
reinterpret_cast <char *
> (&bitFileInfo.
dateStr [0]);
339 outTimeStr =
reinterpret_cast <char *
> (&bitFileInfo.
timeStr [0]);
348 oss << inBitFileInfo.
dateStr <<
" " << inBitFileInfo.
timeStr <<
" ";
358 outIsSafeBoot =
false;
367 outCanWarmBoot =
false;
375 outCanWarmBoot =
true;
387 const bool bPhonyKBox (
false);
441 ostringstream tempString;
446 outURLString.clear();
447 tempString <<
"http://";
448 ipOctet = (portIP & 0xFF000000) >> 24;
449 tempString << ipOctet <<
".";
450 ipOctet = (portIP & 0x00FF0000) >> 16;
451 tempString << ipOctet <<
".";
452 ipOctet = (portIP & 0x0000FF00) >> 8;
453 tempString << ipOctet <<
".";
454 ipOctet = (portIP & 0x000000FF);
455 tempString << ipOctet;
457 outURLString = tempString.str();
467 ostringstream tempString;
472 outURLString.clear();
473 tempString <<
"http://";
474 ipOctet = (portIP & 0xFF000000) >> 24;
475 tempString << ipOctet <<
".";
476 ipOctet = (portIP & 0x00FF0000) >> 16;
477 tempString << ipOctet <<
".";
478 ipOctet = (portIP & 0x0000FF00) >> 8;
479 tempString << ipOctet <<
".";
480 ipOctet = (portIP & 0x000000FF);
481 tempString << ipOctet;
483 outURLString = tempString.str();
494 for (
int i = 0; i < numSFPs; i++)
498 ostringstream tempString;
503 tempString <<
"http://";
504 ipOctet = (portIP & 0xFF000000) >> 24;
505 tempString << ipOctet <<
".";
506 ipOctet = (portIP & 0x00FF0000) >> 16;
507 tempString << ipOctet <<
".";
508 ipOctet = (portIP & 0x0000FF00) >> 8;
509 tempString << ipOctet <<
".";
510 ipOctet = (portIP & 0x000000FF);
511 tempString << ipOctet;
513 OutSFPURLStrings.push_back(tempString.str());
515 return int(OutSFPURLStrings.size());
518 #if !defined(NTV2_DEPRECATE_16_3)
564 return itms.find(
ULWord(inVideoFormat)) != itms.end();
569 return itms.find(
ULWord(inFBFormat)) != itms.end();
575 return wgtIDs.find(inWidgetID) != wgtIDs.end();
580 return itms.find(
ULWord(inConversionMode)) != itms.end();
585 return itms.find(
ULWord(inDSKMode)) != itms.end();
590 return itms.find(
ULWord(inInputSource)) != itms.end();
592 #endif // !defined(NTV2_DEPRECATE_16_3)
613 if (!inDevice.IsOpen())
618 mNumFrames =
UWord(totalBytes / m8MB);
619 if (totalBytes % m8MB)
620 {mNumFrames++; cerr <<
DEC(totalBytes % m8MB) <<
" leftover/spare bytes -- last frame is partial frame" << endl;}
621 for (
UWord frm(0); frm < mNumFrames; frm++)
629 for (FrameTagsConstIter it(mFrameTags.begin()); it != mFrameTags.end(); ++it)
632 oss <<
DEC0N(it->first,3) <<
": " <<
aja::join(tags,
", ") << endl;
640 for (
size_t ndx(0); ndx < inRgn1.size(); ndx++)
641 if (result.find(inRgn1.at(ndx)) == result.end())
642 result.insert(inRgn1.at(ndx));
643 for (
size_t ndx(0); ndx < inRgn2.size(); ndx++)
644 if (result.find(inRgn2.at(ndx)) == result.end())
645 result.insert(inRgn2.at(ndx));
646 for (
size_t ndx(0); ndx < inRgn3.size(); ndx++)
647 if (result.find(inRgn3.at(ndx)) == result.end())
648 result.insert(inRgn3.at(ndx));
660 const ULWord rgnInfo(*it);
661 const UWord startBlk(rgnInfo >> 16), numBlks(
UWord(rgnInfo & 0x0000FFFF));
665 oss <<
"Frms " <<
DEC0N(startBlk,3) <<
"-" <<
DEC0N(startBlk+numBlks-1,3) <<
" : ";
667 oss <<
"Frm " <<
DEC0N(startBlk,3) <<
" : ";
679 outFree.clear(); outUsed.clear(); outBad.clear();
680 FrameTagsConstIter it(mFrameTags.begin());
681 if (it == mFrameTags.end())
683 UWord frmStart(it->first), lastFrm(frmStart);
685 while (++it != mFrameTags.end())
692 if (frmStart != lastFrm)
693 outFree.push_back((
ULWord(frmStart) << 16) |
ULWord(lastFrm-frmStart+1));
695 outFree.push_back((
ULWord(frmStart) << 16) |
ULWord(1));
697 else if (runTags.size() > 1)
699 if (frmStart != lastFrm)
700 outBad.push_back((
ULWord(frmStart) << 16) |
ULWord(lastFrm-frmStart+1));
706 if (frmStart != lastFrm)
707 outUsed.push_back((
ULWord(frmStart) << 16) |
ULWord(lastFrm-frmStart+1));
709 outUsed.push_back((
ULWord(frmStart) << 16) |
ULWord(1));
711 frmStart = lastFrm = it->first;
719 if (frmStart != lastFrm)
720 outFree.push_back((
ULWord(frmStart) << 16) |
ULWord(lastFrm-frmStart+1));
722 outFree.push_back((
ULWord(frmStart) << 16) |
ULWord(1));
724 else if (runTags.size() > 1)
726 if (frmStart != lastFrm)
727 outBad.push_back((
ULWord(frmStart) << 16) |
ULWord(lastFrm-frmStart+1));
733 if (frmStart != lastFrm)
734 outUsed.push_back((
ULWord(frmStart) << 16) |
ULWord(lastFrm-frmStart+1));
736 outUsed.push_back((
ULWord(frmStart) << 16) |
ULWord(1));
744 FrameTagsConstIter it(mFrameTags.find(inIndex));
745 if (it == mFrameTags.end())
747 outTags = it->second;
753 FrameTagsConstIter it(mFrameTags.find(inIndex));
754 if (it == mFrameTags.end())
756 return it->second.size();
762 if (inIsQuad && inIsQuadQuad)
764 if (inSrcRgns.empty())
766 const UWord _8MB_frames_per_dest_frame(
UWord(GetIntrinsicFrameByteCount() / m8MB) * (inIsQuad?4:1) * (inIsQuadQuad?16:1));
767 if (!_8MB_frames_per_dest_frame)
769 if (_8MB_frames_per_dest_frame == 1)
770 {outDestRgns = inSrcRgns;
return true;}
773 for (
size_t ndx(0); ndx < inSrcRgns.size(); ndx++)
774 {
const ULWord val(inSrcRgns.at(ndx));
775 ULWord startBlkOffset(val >> 16), lengthBlks(val & 0x0000FFFF);
776 startBlkOffset = startBlkOffset / _8MB_frames_per_dest_frame + (startBlkOffset % _8MB_frames_per_dest_frame ? 1 : 0);
777 lengthBlks = lengthBlks / _8MB_frames_per_dest_frame;
778 outDestRgns.push_back((startBlkOffset << 16) | lengthBlks);
786 bool isReading(
false), isWriting(
false);
791 tag <<
"Aud" <<
DEC(audSys+1);
796 TagMemoryBlock(addr, m8MB, inMarkStoppedAudioBuffersFree && !isReading && !isWriting ?
string() : tag.str());
808 bool isEnabled(
false), isMultiFormat(
false), isQuad(
false), isQuadQuad(
false), isSquares(
false), isTSI(
false);
810 uint64_t addr(0), len(0);
811 if (skipChannels.find(chan) != skipChannels.end())
818 tag <<
"AC" <<
DEC(chan+1) << (acStatus.
IsInput() ?
" Write" :
" Read");
830 inDevice.
GetDeviceFrameInfo (
UWord(frameNum), chan, mIntrinsicSize, isMultiFormat, isQuad, isQuadQuad, isSquares, isTSI, addr, len);
832 tag <<
"MR" <<
DEC(chan+1);
834 tag <<
"Ch" <<
DEC(chan+1);
842 else if (isQuad && !isQuadQuad && isTSI)
865 if (inStartAddr % m8MB)
867 if (inByteLength % m8MB)
871 const UWord startFrm(
UWord(inStartAddr / m8MB)), frmCnt(
UWord(inByteLength / m8MB));
872 for (
UWord frm(0); frm < frmCnt; frm++)
874 UWord frameNum(startFrm + frm);
876 if (tags.find(inTag) == tags.end())
879 if (frameNum >= mNumFrames)
880 tags.insert(
"Invalid");
virtual ULWord DeviceGetAudioFrameBuffer(void)
#define kQParamVDevIndex
Device index number for .vdev virtual device.
@ kDeviceGetNumVideoInputs
The number of SDI video inputs on the device.
virtual bool IsAudioOutputRunning(const NTV2AudioSystem inAudioSystem, bool &outIsRunning)
Answers whether or not the playout side of the given NTV2AudioSystem is currently running.
#define kNTV2PluginRegInfoKey_ShortName
Plugin short name.
bool TagMemoryBlock(const ULWord inStartAddr, const ULWord inByteLength, const std::string &inTag)
@ kDeviceCanDoStackedAudio
True if device uses a "stacked" arrangement of its audio buffers.
virtual bool SetFrameBufferSize(const NTV2Framesize inSize)
Sets the device's intrinsic frame buffer size.
Declares the AJASystemInfo class.
virtual ULWord GetSerialNumberHigh(void)
@ NTV2_CHANNEL8
Specifies channel or FrameStore 8 (or the 8th item).
@ NTV2_CHANNEL2
Specifies channel or FrameStore 2 (or the 2nd item).
@ AJA_SystemInfoMemoryUnit_Megabytes
@ kDeviceGetSPIFlashVersion
The SPI-flash version on the device. (New in SDK 17.1)
@ kNTV2EnumsID_VideoFormat
Identifies the NTV2VideoFormat enumerated type.
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 TagAudioBuffers(CNTV2Card &inDevice, const bool inMarkStoppedAudioBuffersFree)
std::set< std::string > NTV2StringSet
ULWord NTV2DeviceGetNumberFrameBuffers(NTV2DeviceID id, NTV2FrameGeometry fg, NTV2FrameBufferFormat fbf)
std::string & strip(std::string &str, const std::string &ws)
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
bool _boardOpened
True if I'm open and connected to the device.
Describes a user-space buffer on the host computer. I have an address and a length,...
virtual bool IS_CHANNEL_INVALID(const NTV2Channel inChannel) const
std::string join(const std::vector< std::string > &parts, const std::string &delim)
@ DEVICE_ID_KONA5
See KONA 5.
ULWord NTV2DeviceGetFrameBufferSize(NTV2DeviceID id, NTV2FrameGeometry fg, NTV2FrameBufferFormat fbf)
virtual Word GetDeviceVersion(void)
Answers with this device's version number.
@ DEVICE_ID_IOX3
See Io X3.
ULWord NTV2DeviceGetActiveMemorySize(const NTV2DeviceID inDeviceID)
@ DEVICE_ID_IOIP_2022
See Io IP.
bool GetTagsForFrameIndex(const UWord inIndex, NTV2StringSet &outTags) const
Answers with the list of tags for the given frame number.
@ NTV2_AUDIOSYSTEM_1
This identifies the first Audio System.
@ NTV2_BreakoutCableBNC
Identifies the AES/EBU audio breakout cable that has BNC connectors.
virtual bool GetFrameBufferSize(const NTV2Channel inChannel, NTV2Framesize &outValue)
Answers with the frame size currently being used on the device.
@ DEVICE_ID_KONA5_8KMK
See KONA 5.
ULWord _ulNumFrameBuffers
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
#define DEC0N(__x__, __n__)
virtual bool GetInputFrame(const NTV2Channel inChannel, ULWord &outValue)
Answers with the current input frame index number for the given FrameStore. This identifies which par...
@ kDeviceGetNumVideoOutputs
The number of SDI video outputs on the device.
virtual bool DeviceCanDoConversionMode(const NTV2ConversionMode inCM)
NTV2FrameBufferFormat
Identifies a particular video frame buffer format. See Device Frame Buffer Formats for details.
virtual bool GetInstalledBitfileInfo(ULWord &outNumBytes, std::string &outDateStr, std::string &outTimeStr)
Returns the bitfile size and time/date stamp from the header of the bitfile that's currently installe...
@ kDeviceCanDo12gRouting
True if device supports 12G routing crosspoints.
virtual bool DeviceCanDoFrameBufferFormat(const NTV2PixelFormat inPF)
ULWord _ulFrameBufferSize
static std::string SerialNum64ToString(const uint64_t inSerialNumber)
Returns a string containing the decoded, human-readable device serial number.
@ NTV2_CHANNEL1
Specifies channel or FrameStore 1 (or the first item).
virtual bool DeviceCanDoFormat(const NTV2FrameRate inFR, const NTV2FrameGeometry inFG, const NTV2Standard inStd)
@ NTV2_BreakoutNone
No identifiable breakout hardware appears to be attached.
virtual bool DeviceCanDoWidget(const NTV2WidgetID inWgtID)
virtual bool GetFrameBufferFormat(NTV2Channel inChannel, NTV2FrameBufferFormat &outValue)
Returns the current frame buffer format for the given FrameStore on the AJA device.
@ kDeviceCanDoWarmBootFPGA
True if device can warm-boot to load updated firmware.
NTV2DeviceID _boardID
My cached device ID.
NTV2FrameRate
Identifies a particular video frame rate.
ULWord NTV2FramesizeToByteCount(const NTV2Framesize inFrameSize)
Converts the given NTV2Framesize value into an exact byte count.
@ NTV2_CHANNEL6
Specifies channel or FrameStore 6 (or the 6th item).
@ kDeviceGetNumBufferedAudioSystems
The total number of audio systems on the device that can read/write audio buffer memory....
virtual std::string GetDeviceVersionString(void)
Answers with this device's version number as a human-readable string.
@ NTV2_CHANNEL4
Specifies channel or FrameStore 4 (or the 4th item).
#define kQParamVDevName
Device name, if not specified in .vdev file, then base name of .vdev file.
ULWordSet::const_iterator ULWordSetConstIter
virtual bool IsSupported(const NTV2BoolParamID inParamID)
#define NTV2DriverVersionDecode_Point(__vers__)
@ NTV2_CHANNEL5
Specifies channel or FrameStore 5 (or the 5th item).
virtual std::string GetModelName(void)
Answers with this device's model name.
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....
static bool isEnabled(CNTV2Card &device, const NTV2Channel inChannel)
virtual bool IS_INPUT_SPIGOT_INVALID(const UWord inInputSpigot)
virtual std::string GetBitfileInfoString(const BITFILE_INFO_STRUCT &inBitFileInfo)
Generates and returns an info string with date, time and name for the given inBifFileInfo.
virtual bool IsAudioInputRunning(const NTV2AudioSystem inAudioSystem, bool &outIsRunning)
Answers whether or not the capture side of the given NTV2AudioSystem is currently running.
virtual std::string GetDisplayName(void)
Answers with this device's display name.
std::ostream & DumpBlocks(std::ostream &oss) const
Dumps all 8MB blocks/frames and their tags, if any, into the given stream.
@ kDeviceGetNumAudioSystems
The number of independent Audio Systems on the device.
virtual bool GetOutputFrame(const NTV2Channel inChannel, ULWord &outValue)
Answers with the current output frame number for the given FrameStore (expressed as an NTV2Channel).
virtual bool IS_OUTPUT_SPIGOT_INVALID(const UWord inOutputSpigot)
NTV2Standard
Identifies a particular video standard.
std::set< ULWord > ULWordSet
A collection of unique ULWord (uint32_t) values.
virtual std::string GetPCIFPGAVersionString(void)
@ DEVICE_ID_KONA5_8K
See KONA 5.
@ DEVICE_ID_KONA3G
See KONA 3G (UFC Mode).
virtual AJAStatus GetValue(const AJASystemInfoTag inTag, std::string &outValue) const
Answers with the host system info value string for the given AJASystemInfoTag.
#define NTV2DriverVersionDecode_Major(__vers__)
static NTV2Buffer NULL_POINTER
Used for default empty NTV2Buffer parameters – do not modify.
@ kDeviceGetNumVideoChannels
The number of video channels supported on the device.
virtual std::string GetDescription(void) const
This is returned from the CNTV2Card::AutoCirculateGetStatus function.
@ AJA_SystemInfoTag_System_Name
virtual bool DeviceCanDoInputSource(const NTV2InputSource inSrc)
@ NTV2_CHANNEL7
Specifies channel or FrameStore 7 (or the 7th item).
virtual ULWord DeviceGetFrameBufferSize(void)
@ DEVICE_ID_KONAX
See KONA X™.
virtual bool IS_HDMI_INPUT_SPIGOT_INVALID(const UWord inInputHDMIPort)
@ kNTV2EnumsID_ConversionMode
Identifies the NTV2ConversionMode enumerated type.
@ DEVICE_ID_KONA4UFC
See KONA 4 (UFC Mode).
virtual ULWord DeviceGetNumberFrameBuffers(void)
NTV2Mode
Used to identify the mode of a widget_framestore, or the direction of an AutoCirculate stream: either...
std::ostream & RawDump(std::ostream &oss) const
Dumps a human-readable list of regions into the given stream.
std::string NTV2DeviceIDToString(const NTV2DeviceID inValue, const bool inForRetailDisplay=false)
Declares the CNTV2Card class.
@ NTV2_BITFILE_IO4KPLUS_MAIN
virtual bool GetDeviceFrameInfo(const UWord inFrameNumber, const NTV2Channel inChannel, uint64_t &outAddress, uint64_t &outLength)
Answers with the address and size of the given frame.
virtual bool IsFailSafeBitfileLoaded(bool &outIsFailSafe)
Answers whether or not the "fail-safe" (aka "safe-boot") bitfile is currently loaded and running in t...
virtual bool HasMultiRasterWidget(void)
size_t GetTagCount(const UWord inIndex) const
virtual bool GetSerialNumberString(std::string &outSerialNumberString)
Answers with a string that contains my human-readable serial number.
ULWord NTV2DeviceGetAudioFrameBuffer2(NTV2DeviceID boardID, NTV2FrameGeometry frameGeometry, NTV2FrameBufferFormat frameFormat)
@ NTV2_CHANNEL3
Specifies channel or FrameStore 3 (or the 3rd item).
virtual bool AutoCirculateGetStatus(const NTV2Channel inChannel, AUTOCIRCULATE_STATUS &outStatus)
Returns the current AutoCirculate status for the given channel.
virtual uint64_t GetSerialNumber(void)
Answers with my serial number.
@ kNTV2EnumsID_InputSource
Identifies the NTV2InputSource enumerated type.
Declares numerous NTV2 utility functions.
NTV2Framesize
Kona2/Xena2 specific enums.
NTV2BreakoutType
Identifies the Breakout Boxes and Cables that may be attached to an AJA NTV2 device.
virtual bool GetNumericParam(const ULWord inParamID, ULWord &outValue)
I interrogate and control an AJA video/audio capture/playout device.
@ DEVICE_ID_KONA5_8K_MV_TX
See KONA 5.
virtual bool CanWarmBootFPGA(bool &outCanWarmBoot)
Answers whether or not the FPGA can be reloaded without powering off.
bool IsStopped(void) const
@ DEVICE_ID_KONALHEPLUS
See KONA LHe Plus.
@ DEVICE_ID_KONA5_OE1
See KONA 5.
std::set< NTV2Channel > NTV2ChannelSet
A set of distinct NTV2Channel values.
uint16_t GetEndFrame(void) const
@ kNTV2EnumsID_WidgetID
Identifies the NTV2AudioWidgetID enumerated type.
static NTV2WidgetID WidgetIDFromTypeAndChannel(const NTV2WidgetType inWidgetType, const NTV2Channel inChannel)
virtual ULWord GetNumSupported(const NTV2NumericParamID inParamID)
virtual bool GetMode(const NTV2Channel inChannel, NTV2Mode &outValue)
Answers with the current NTV2Mode of the given FrameStore on the AJA device.
@ NTV2_BreakoutCableXLR
Identifies the AES/EBU audio breakout cable that has XLR connectors.
#define NTV2_IS_VALID_CHANNEL(__x__)
virtual std::string GetDriverVersionString(void)
Answers with this device's driver's version as a human-readable string.
virtual NTV2BreakoutType GetBreakoutHardware(void)
bool AssessDevice(CNTV2Card &inDevice, const bool inIgnoreStoppedAudioBuffers=(0))
Assesses the given device.
@ kDeviceGetNumHDMIVideoInputs
The number of HDMI video inputs on the device.
NTV2InputSource
Identifies a specific video input source.
@ DEVICE_ID_IOIP_2110
See Io IP.
@ DEVICE_ID_KONA5_3DLUT
See KONA 5.
virtual bool DeviceCanDoVideoFormat(const NTV2VideoFormat inVF)
virtual bool GetFrameGeometry(NTV2FrameGeometry &outValue, NTV2Channel inChannel=NTV2_CHANNEL1)
virtual bool GetLPExternalConfigurationURLString(std::string &outURLString)
virtual int GetSFPConfigurationURLStrings(std::vector< std::string > &sfpURLStrings)
bool GetRegions(ULWordSequence &outFree, ULWordSequence &outUsed, ULWordSequence &outBad) const
Answers with the lists of free, in-use and conflicting 8MB memory blocks. Each ULWord represents a re...
bool TranslateRegions(ULWordSequence &outRgns, const ULWordSequence &inRgns, const bool inIsQuad, const bool inIsQuadQuad) const
Translates an 8MB-chunked list of regions into another list of regions with frame indexes and sizes e...
@ kNTV2EnumsID_DSKMode
Identifies the NTV2DSKMode enumerated type.
Private include file for all ajabase sources.
virtual ~CNTV2Card()
My destructor.
#define NTV2DriverVersionDecode_Minor(__vers__)
@ DEVICE_ID_IO4KPLUS
See Io 4K Plus.
virtual bool DeviceCanDoDSKMode(const NTV2DSKMode inDSKM)
bool NTV2DeviceCanDoFormat(const NTV2DeviceID inDevID, const NTV2FrameRate inFR, const NTV2FrameGeometry inFG, const NTV2Standard inStd)
std::vector< uint32_t > ULWordSequence
An ordered sequence of ULWord (uint32_t) values.
@ kDeviceHasBreakoutBoard
True if device has attached breakout board. (New in SDK 17.0)
@ DEVICE_ID_KONA4
See KONA 4 (Quad Mode).
uint16_t GetStartFrame(void) const
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
@ kDeviceHasMicrophoneInput
True if device has a microphone input connector.
bool TagVideoFrames(CNTV2Card &inDevice)
virtual std::string GetDescription(void) const
NTV2FrameGeometry
Identifies a particular video frame geometry.
virtual bool IsChannelEnabled(const NTV2Channel inChannel, bool &outEnabled)
Answers whether or not the given FrameStore is enabled.
bool CanDoWidget(const NTV2WidgetID inWgtID)
virtual ULWord GetFrameBufferSize(void) const
CNTV2Card()
My default constructor.
static ULWordSet CoalesceRegions(const ULWordSequence &inRgn1, const ULWordSequence &inRgn2, const ULWordSequence &inRgn3)
virtual NTV2DeviceID GetDeviceID(void)
virtual bool GetDriverVersionComponents(UWord &outMajor, UWord &outMinor, UWord &outPoint, UWord &outBuild)
Answers with the individual version components of this device's driver.
virtual bool IsMultiRasterWidgetChannel(const NTV2Channel inChannel)
virtual NTV2Dictionary ConnectParams(void) const
virtual bool IsBufferSizeSetBySW(void)
virtual std::string GetFPGAVersionString(const NTV2XilinxFPGA inFPGA=eFPGAVideoProc)
@ kDeviceGetActiveMemorySize
The size, in bytes, of the device's active RAM available for video and audio.
@ NTV2_MODE_INVALID
The invalid mode.
UWord NTV2DeviceGetNum25GSFPs(const NTV2DeviceID inDeviceID)
@ DEVICE_ID_KONA3GQUAD
See KONA 3G (Quad Mode).
@ kDeviceCanReportFailSafeLoaded
True if device can report if its "fail-safe" firmware is loaded/running.
#define NTV2DriverVersionDecode_Build(__vers__)
std::string NTV2BitfileTypeToString(const NTV2BitfileType inValue, const bool inCompactDisplay=false)
#define NTV2_IS_INPUT_MODE(__mode__)
virtual ULWord GetSerialNumberLow(void)
@ kVRegDriverVersion
Packed driver version – use NTV2DriverVersionEncode, NTV2DriverVersionDecode* macros to encode/decode...
NTV2AudioSystem
Used to identify an Audio System on an NTV2 device. See Audio System Operation for more information.
@ DEVICE_ID_IOIP_2110_RGB12
See Io IP.
@ DEVICE_ID_KONA5_2X4K
See KONA 5.
I'm the base class that undergirds the platform-specific derived classes (from which CNTV2Card is ult...
std::string valueForKey(const std::string &inKey) const
A simple (not thread-safe) set of key/value pairs. (New in SDK 16.3)
virtual bool GetAudioMemoryOffset(const ULWord inOffsetBytes, ULWord &outAbsByteOffset, const NTV2AudioSystem inAudioSystem, const bool inCaptureBuffer=(0))
Answers with the byte offset in device SDRAM into the specified Audio System's audio buffer.
virtual bool Open(const UWord inDeviceIndex)
Opens a local/physical AJA device so it can be monitored/controlled.
@ DEVICE_ID_IO4K
See Io 4K (Quad Mode).
@ AJA_SystemInfoSection_System
virtual bool DriverGetBitFileInformation(BITFILE_INFO_STRUCT &outBitFileInfo, const NTV2BitFileType inBitFileType=NTV2_VideoProcBitFile)
Answers with the currently-installed bitfile information.
@ DEVICE_ID_KONALHI
See KONA LHi.
virtual ULWord DeviceGetAudioFrameBuffer2(void)
std::string SerialNum64ToString(const uint64_t &inSerNum)
virtual Word GetPCIFPGAVersion(void)
virtual bool Close(void)
Closes me, releasing host resources that may have been allocated in a previous Open call.
virtual bool GetLPTunnelConfigurationURLString(std::string &outURLString)
virtual ULWordSet GetSupportedItems(const NTV2EnumsID inEnumsID)
@ kNTV2EnumsID_PixelFormat
Identifies the NTV2PixelFormat enumerated type.
bool NTV2DeviceHasLPProductCode(const NTV2DeviceID inDeviceID)
ULWord NTV2DeviceGetAudioFrameBuffer(NTV2DeviceID boardID, NTV2FrameGeometry frameGeometry, NTV2FrameBufferFormat frameFormat)