18 #if defined (MSWindows) 19 #pragma warning(disable: 4800) 22 #define HEX16(__x__) "0x" << hex << setw(16) << setfill('0') << uint64_t(__x__) << dec 23 #define INSTP(_p_) HEX16(uint64_t(_p_)) 24 #define CVIDFAIL(__x__) AJA_sERROR (AJA_DebugUnit_VideoGeneric, INSTP(this) << "::" << AJAFUNC << ": " << __x__) 25 #define CVIDWARN(__x__) AJA_sWARNING(AJA_DebugUnit_VideoGeneric, INSTP(this) << "::" << AJAFUNC << ": " << __x__) 26 #define CVIDNOTE(__x__) AJA_sNOTICE (AJA_DebugUnit_VideoGeneric, INSTP(this) << "::" << AJAFUNC << ": " << __x__) 27 #define CVIDINFO(__x__) AJA_sINFO (AJA_DebugUnit_VideoGeneric, INSTP(this) << "::" << AJAFUNC << ": " << __x__) 28 #define CVIDDBG(__x__) AJA_sDEBUG (AJA_DebugUnit_VideoGeneric, INSTP(this) << "::" << AJAFUNC << ": " << __x__) 42 #define K2_NOMINAL_H 0x1000 43 #define K2_MIN_H (K2_NOMINAL_H-0x800) 44 #define K2_MAX_H (K2_NOMINAL_H+0x800) 45 #define K2_NOMINAL_V 0x0800 46 #define K2_MIN_V (K2_NOMINAL_V-0x400) 47 #define K2_MAX_V (K2_NOMINAL_V+0x400) 49 #define KLS_NOMINAL_525_H 0x0640 50 #define KLS_MIN_525_H 0x0000 51 #define KLS_MAX_525_H 0x06B3 52 #define KLS_NOMINAL_525_V 0x010A 53 #define KLS_MIN_525_V 0x0001 54 #define KLS_MAX_525_V 0x020D 56 #define KLS_NOMINAL_625_H 0x0638 57 #define KLS_MIN_625_H 0x0000 58 #define KLS_MAX_625_H 0x06BF 59 #define KLS_NOMINAL_625_V 0x0139 60 #define KLS_MIN_625_V 0x0001 61 #define KLS_MAX_625_V 0x0271 80 #if !defined(NTV2_DEPRECATE_16_2) 83 #endif // !defined(NTV2_DEPRECATE_16_2) 102 #if defined (NTV2_ALLOW_2MB_FRAMES) 105 #endif // defined (NTV2_ALLOW_2MB_FRAMES) 173 #define ARFAIL(__x__) AJA_sERROR (AJA_DebugUnit_AcquireRelease, INSTP(this) << "::" << AJAFUNC << ": " << __x__) 174 #define ARWARN(__x__) AJA_sWARNING(AJA_DebugUnit_AcquireRelease, INSTP(this) << "::" << AJAFUNC << ": " << __x__) 175 #define ARNOTE(__x__) AJA_sNOTICE (AJA_DebugUnit_AcquireRelease, INSTP(this) << "::" << AJAFUNC << ": " << __x__) 176 #define ARINFO(__x__) AJA_sINFO (AJA_DebugUnit_AcquireRelease, INSTP(this) << "::" << AJAFUNC << ": " << __x__) 177 #define ARDBG(__x__) AJA_sDEBUG (AJA_DebugUnit_AcquireRelease, INSTP(this) << "::" << AJAFUNC << ": " << __x__) 185 {
ARFAIL(GetDescription() <<
": invalid task mode " <<
DEC(inMode));
return false;}
187 GetTaskMode(oldMode);
188 if (inMode == oldMode)
192 GetTaskMode(newMode);
193 if (result && newMode != inMode)
195 if (result && newMode == inMode)
207 #if !defined(NTV2_DEPRECATE_16_3) 217 #endif // !defined(NTV2_DEPRECATE_16_3) 230 return WriteRegister (regNum, value, mask, shift);
232 if (pGlobalControl->
isValid && pGlobalControl->
regNum != regNum)
233 FlushGlobalControlWrite (pGlobalControl);
237 if (!ReadRegister (regNum, pGlobalControl->
regValue))
239 pGlobalControl->
regNum = regNum;
240 pGlobalControl->
isValid =
true;
242 pGlobalControl->
regValue = (pGlobalControl->
regValue & ~mask) | ((value << shift) & mask);
249 if (!pGlobalControl || !pGlobalControl->
isValid)
251 const bool ok (WriteRegister (pGlobalControl->
regNum, pGlobalControl->
regValue));
252 pGlobalControl->
isValid =
false;
261 bool ajaRetail(inIsRetail);
269 int hOffset(0), vOffset(0);
273 GetVideoHOffset(hOffset);
274 GetVideoVOffset(vOffset);
279 if (itms.find(
ULWord(value)) == itms.end())
306 SetStandard(inStandard, channel, &globalControl);
307 SetFrameGeometry(inFrameGeometry, ajaRetail, channel, &globalControl);
308 SetFrameRate(inFrameRate, channel, &globalControl);
310 FlushGlobalControlWrite(&globalControl);
318 SetQuadQuadFrameEnable(
false, channel);
319 Get4kSquaresEnable(squares, channel);
322 Set4kSquaresEnable(
true, channel);
326 SetQuadFrameEnable(
true, channel);
331 GetQuadQuadSquaresEnable(squares, channel);
334 SetQuadQuadSquaresEnable(
true, channel);
338 SetQuadQuadFrameEnable(
true, channel);
344 SetQuadFrameEnable(
false, channel);
345 SetQuadQuadFrameEnable(
false, channel);
346 if (!IsMultiFormatActive())
358 SetVideoHOffset(hOffset);
359 SetVideoVOffset(vOffset);
371 GetRegisterWriteMode(writeMode);
372 SetRegisterWriteMode(writeMode);
382 if (!SetVideoFormat(inVideoFormat, inIsAJARetail,
false, *it))
392 if (!IsMultiFormatActive () && !IsMultiRasterWidgetChannel(inChannel))
396 GetStandard (standard, inChannel);
399 GetFrameGeometry (frameGeometry, inChannel);
402 GetFrameRate (frameRate, inChannel);
405 GetSmpte372 (smpte372Enabled, inChannel);
407 ULWord progressivePicture;
408 GetProgressivePicture (progressivePicture);
410 bool isSquares =
false;
416 Get4kSquaresEnable(isSquares, inChannel);
429 return GetNTV2VideoFormat(frameRate, standard, isThreeG, inputGeometry, progressivePicture);
469 if (isThreeG && progressivePicture)
475 if (isThreeG && progressivePicture)
481 if (isThreeG && progressivePicture)
483 if (inputGeometry == 8)
488 else if (inputGeometry == 8)
656 if (GetVideoFormat(videoFormat))
673 int nominalH(0), minH(0), maxH(0), nominalV(0), minV(0), maxV(0), count(0);
674 ULWord timingValue(0), lineCount(0), lineCount2(0);
678 if (!GetNominalMinMaxHV(nominalH, minH, maxH, nominalV, minV, maxV))
683 nominalH = nominalH + hOffset;
685 nominalH = nominalH - hOffset;
690 else if (nominalH < minH)
693 if (!ReadOutputTimingControl(timingValue, inOutputSpigot))
702 if (
LWord((timingValue & 0x0000FFFF)) == nominalH)
704 if (((
LWord((timingValue & 0x0000FFFF)) + 1) == nominalH) )
708 timingValue &= 0xFFFF0000;
709 timingValue |=
ULWord(nominalH + 2);
710 WriteOutputTimingControl(timingValue, inOutputSpigot);
718 else if ( ((
LWord((timingValue & 0x0000FFFF)) -1) == nominalH ) )
722 timingValue &= 0xFFFF0000;
723 timingValue |=
ULWord(nominalH - 2);
724 WriteOutputTimingControl(timingValue, inOutputSpigot);
736 timingValue &= 0xFFFF0000;
737 timingValue |=
ULWord(nominalH);
739 return WriteOutputTimingControl(timingValue, inOutputSpigot);
745 int nominalH(0), minH(0), maxH(0), nominalV(0), minV(0), maxV(0);
748 if (!GetNominalMinMaxHV(nominalH, minH, maxH, nominalV, minV, maxV))
752 if (!ReadOutputTimingControl(timingValue, inOutputSpigot))
754 timingValue &= 0xFFFF;
758 outHOffset = int(timingValue) - nominalH;
760 outHOffset = nominalH - int(timingValue);
766 int nominalH(0), minH(0), maxH(0), nominalV(0), minV(0), maxV(0);
769 if (!GetNominalMinMaxHV(nominalH, minH, maxH, nominalV, minV, maxV))
774 nominalV = nominalV + vOffset;
776 nominalV = nominalV - vOffset;
781 else if (nominalV < minV)
785 if (!ReadOutputTimingControl(timingValue, inOutputSpigot))
787 timingValue &= 0x0000FFFF;
788 return WriteOutputTimingControl(timingValue |
ULWord(nominalV << 16), inOutputSpigot);
793 int nominalH(0), minH(0), maxH(0), nominalV(0), minV(0), maxV(0);
796 if (!GetNominalMinMaxHV(nominalH, minH, maxH, nominalV, minV, maxV))
800 if (!ReadOutputTimingControl(timingValue, inOutputSpigot))
802 timingValue = (timingValue >> 16);
806 outVOffset =
int(timingValue) - nominalV;
808 outVOffset = nominalV - int(timingValue);
812 #if !defined(NTV2_DEPRECATE_16_2) 815 outNumActiveLines = 0;
817 if (!GetStandard(st) || !GetVANCMode(vm))
826 outFrameDimensions.
Reset();
827 if (IsXilinxProgrammed() && GetStandard(st, inChannel) && GetVANCMode(vm, inChannel))
831 return outFrameDimensions.
IsValid();
838 if (!IsXilinxProgrammed() || !GetStandard(st, inChannel) || !GetVANCMode(vm, inChannel))
843 #endif // defined(NTV2_DEPRECATE_16_2) 850 return SetStandard (value, inChannel,
NULL);
855 if (IsMultiRasterWidgetChannel(inChannel))
857 if (!IsMultiFormatActive())
876 if (IsMultiRasterWidgetChannel(inChannel))
878 if (!IsMultiFormatActive())
883 bool quadFrameEnabled(
false);
884 status = GetQuadFrameEnable(quadFrameEnabled, inChannel);
885 if (status && quadFrameEnabled)
889 bool quadQuadFrameEnabled(
false);
890 status = GetQuadQuadFrameEnable(quadQuadFrameEnabled);
891 if(status && quadQuadFrameEnabled)
903 ULWord smpte372Enabled (0);
905 outIsProgressive =
false;
907 if (!IsMultiFormatActive())
910 if (GetStandard (standard, inChannel) && GetSmpte372 (smpte372Enabled, inChannel))
913 outIsProgressive =
true;
925 outIsStandardDef =
false;
927 if (!IsMultiFormatActive())
930 if (GetStandard (standard, inChannel))
933 outIsStandardDef =
true;
945 return SetFrameGeometry (value, ajaRetail, channel,
NULL);
958 if (IsMultiRasterWidgetChannel(channel))
960 if (!IsMultiFormatActive())
962 else if (IS_CHANNEL_INVALID(channel))
972 bool status = GetFrameGeometry(oldGeometry, channel);
976 status = GetLargestFrameBufferFormatInUse(format);
983 newFrameStoreGeometry = newGeometry;
999 #if !defined(NTV2_DEPRECATE_17_2) 1001 if ( GetFBSizeAndCountFromHW(_ulFrameBufferSize, _ulNumFrameBuffers) )
1003 changeBufferSize =
false;
1009 if ( changeBufferSize )
1011 _ulFrameBufferSize = newFrameBufferSize;
1024 if (IsMultiRasterWidgetChannel(inChannel))
1029 if (!IsMultiFormatActive())
1031 else if (IS_CHANNEL_INVALID(inChannel))
1038 bool quadFrameEnabled(
false);
1039 status = GetQuadFrameEnable(quadFrameEnabled, inChannel);
1040 if (status && quadFrameEnabled)
1044 bool quadQuadFrameEnabled(
false);
1045 status = GetQuadQuadFrameEnable(quadQuadFrameEnabled);
1046 if (status && quadQuadFrameEnabled)
1059 SetFrameRate (value, inChannel, &globalControl);
1060 return FlushGlobalControlWrite(&globalControl);
1065 const ULWord loValue (value & 0x7);
1066 const ULWord hiValue ((value & 0x8) >> 3);
1068 if (IsMultiRasterWidgetChannel(inChannel))
1070 if (!IsMultiFormatActive ())
1082 ULWord returnVal1 (0), returnVal2 (0);
1084 if (IsMultiRasterWidgetChannel(inChannel))
1086 if (!IsMultiFormatActive())
1088 else if (IS_CHANNEL_INVALID(inChannel))
1094 outValue =
NTV2FrameRate((returnVal1 & 0x7) | ((returnVal2 & 0x1) << 3));
1103 return SetSmpte372 (inValue, inChannel,
NULL);
1110 if (IsMultiRasterWidgetChannel(inChannel))
1111 return inValue == 0;
1112 if (!IsMultiFormatActive())
1123 if (IsMultiRasterWidgetChannel(inChannel))
1124 {outValue = 0;
return true;}
1125 if (!IsMultiFormatActive())
1148 outValue = result1 ? returnVal : 0;
1159 if (IsMultiRasterWidgetChannel(inChannel))
1160 return inEnable ==
true;
1169 if (ok) ok = SetTsiFrameEnable(
true, inChannel);
1173 if(ok) ok = SetTsiFrameEnable(
true, inChannel);
1177 if(ok) ok = Set4kSquaresEnable(
true, inChannel);
1182 SetTsiFrameEnable(
false, inChannel);
1183 Set4kSquaresEnable(
false, inChannel);
1192 if (IsMultiRasterWidgetChannel(inChannel))
1197 if (!IsMultiFormatActive())
1217 if(ok) ok = SetQuadQuadSquaresEnable(
false, inChannel);
1220 if (!IsMultiFormatActive())
1276 bool quadEnabled (0);
1277 bool status2 (
true);
1278 bool s425Enabled (
false);
1279 bool status1 = Get4kSquaresEnable (quadEnabled, inChannel);
1281 status2 = GetTsiFrameEnable (s425Enabled, inChannel);
1283 outValue = (status1 & status2) ? ((quadEnabled | s425Enabled) ?
true :
false) :
false;
1307 if (IsMultiRasterWidgetChannel(inChannel))
1308 return inEnable ==
true;
1315 if (!IsMultiFormatActive())
1340 if (!IsMultiFormatActive())
1354 outIsEnabled =
false;
1355 if (IsMultiRasterWidgetChannel(inChannel))
1356 {outIsEnabled =
true;
return true;}
1359 ULWord squaresEnabled (0);
1367 outIsEnabled = (squaresEnabled ?
true :
false);
1380 if (IsMultiRasterWidgetChannel(inChannel))
1381 return enable ==
true;
1398 if (!IsMultiFormatActive())
1408 else if (!IsMultiFormatActive())
1437 if (!IsMultiFormatActive())
1446 else if (!IsMultiFormatActive())
1469 outIsEnabled =
false;
1472 if (IsMultiRasterWidgetChannel(inChannel))
1473 {outIsEnabled =
true;
return true;}
1478 bool returnVal(
false), readOkay(
false);
1482 readOkay = GetQuadQuadFrameEnable(returnVal, inChannel);
1498 outIsEnabled = readOkay ? returnVal : 0;
1505 outSyncFailed =
false;
1512 if (value & (1<<inWhichTsiMux))
1513 outSyncFailed =
true;
1519 ULWord standard(0), rate1(0), rate2(0), s372(0), geometry(0), format(0);
1528 if (!status)
return false;
1530 for (
int channel = inFirst; channel <= inLast; channel++)
1538 if (!status)
return false;
1550 SetLTCInputEnable(
false);
1553 EnableFramePulseReference(
false);
1557 ULWord refControl1 =
ULWord(inRefSource), refControl2 = 0, ptpControl = 0;
1558 switch (inRefSource)
1588 ULWord refControl2(0), ptpControl(0);
1663 outValue = returnValue == 0 ?
false :
true;
1689 { (
void) inIsRetail;
1690 if (IsMultiRasterWidgetChannel(inChannel))
1692 if (IS_CHANNEL_INVALID(inChannel))
1701 if (!SetMode(*it, inMode))
1708 if (IsMultiRasterWidgetChannel(inChannel))
1710 if (IS_CHANNEL_INVALID(inChannel))
1717 bool status = GetFrameGeometry(outGeometry);
1721 status = GetFrameBufferFormat(inChannel, outFBF);
1737 if (IsBufferSizeSetBySW())
1738 changeBufferSize =
false;
1740 return changeBufferSize;
1753 if (IsBufferSizeSetBySW())
1754 changeBufferSize =
false;
1756 return changeBufferSize;
1768 return swControl != 0;
1771 #if !defined(NTV2_DEPRECATE_17_2) 1772 bool CNTV2Card::GetFBSizeAndCountFromHW (
ULWord & outSize,
ULWord & outCount)
1774 if (!IsBufferSizeSetBySW())
1777 ULWord ch1Control(0), multiplier(0), sizeMultiplier(0);
1785 case 0: multiplier = 4;
1789 case BIT_20: multiplier = 2;
1793 case BIT_21: multiplier = 1;
1798 sizeMultiplier = 16;
1802 outSize = sizeMultiplier * 1024 * 1024;
1803 outCount = multiplier ? multiplier * DeviceGetNumberFrameBuffers() : DeviceGetNumberFrameBuffers() / 2;
1806 GetFrameGeometry(geometry);
1834 if (!GetFrameGeometry(geometry))
1839 if ( ch1FrameBufferSize >= ch2FrameBufferSize )
1846 bool CNTV2Card::IsMultiFormatActive (
void)
1860 outConnections.clear();
1866 && ReadRegisters(ROMregs)
1887 outInputs.insert(*it);
1910 outOutputs.insert(*it);
1923 { (
void) inIsRetailMode;
1925 if (IsMultiRasterWidgetChannel(inChannel))
1927 if (IS_CHANNEL_INVALID(inChannel))
1931 const ULWord loValue (inNewFormat & 0x0f);
1932 const ULWord hiValue ((inNewFormat & 0x10) >> 4);
1935 bool status = GetFrameInfo(inChannel, currentGeometry, currentFormat);
1943 #if !defined(NTV2_DEPRECATE_17_2) 1945 if ( !GetFBSizeAndCountFromHW(_ulFrameBufferSize, _ulNumFrameBuffers) &&
1946 IsBufferSizeChangeRequired(inChannel, currentGeometry, currentFormat, inNewFormat) )
1954 {
if (inNewFormat != currentFormat)
1955 CVIDINFO(
"'" << GetDisplayName() <<
"': Channel " <<
DEC(
UWord(inChannel)+1) <<
" FBF changed from " 1958 CVIDFAIL(
"'" << GetDisplayName() <<
"': Failed to change channel " <<
DEC(
UWord(inChannel)+1) <<
" FBF from " 1961 SetVPIDTransferCharacteristics(inXferChars, inChannel);
1962 SetVPIDColorimetry(inColorimetry, inChannel);
1963 SetVPIDLuminance(inLuminance, inChannel);
1969 const bool inIsAJARetail,
1976 if (!SetFrameBufferFormat (*it, inNewFormat, inIsAJARetail, inXferChars, inColorimetry, inLuminance))
1978 return failures == 0;
1986 if (IsMultiRasterWidgetChannel(inChannel))
1988 if (IS_CHANNEL_INVALID (inChannel))
1991 ULWord returnVal1, returnVal2;
1996 return result1 && result2;
2004 if (IS_CHANNEL_INVALID (channel))
2014 if (IS_CHANNEL_INVALID (inChannel))
2024 if (IS_CHANNEL_INVALID (channel))
2027 ULWord loValue = quality & 0x1;
2028 ULWord hiValue = (quality >> 1) & 0x3;
2038 if (IS_CHANNEL_INVALID (inChannel))
2042 ULWord loValue(0), hiValue(0);
2058 if (IS_CHANNEL_INVALID (channel))
2068 if (IS_CHANNEL_INVALID (inChannel))
2078 if (IsMultiRasterWidgetChannel(inChannel))
2080 if (IS_CHANNEL_INVALID(inChannel))
2090 if (IsMultiRasterWidgetChannel(inChannel))
2092 if (IS_CHANNEL_INVALID (inChannel))
2100 ULWord swCanChgFBSize(0);
2113 #if !defined(NTV2_DEPRECATE_17_2) 2114 return GetFBSizeAndCountFromHW(_ulFrameBufferSize, _ulNumFrameBuffers);
2115 #else//NTV2_DEPRECATE_17_2 2117 #endif//defined(NTV2_DEPRECATE_17_2) 2125 if (IS_CHANNEL_INVALID(inChannel))
2127 #if defined (NTV2_ALLOW_2MB_FRAMES) 2151 default:
return false;
2156 #endif // defined (NTV2_ALLOW_2MB_FRAMES) 2170 #if defined (NTV2_ALLOW_2MB_FRAMES) 2197 default:
return false;
2199 NTV2_ASSERT (NTV2_IS_8MB_OR_16MB_FRAMESIZE(outValue));
2203 #endif // defined (NTV2_ALLOW_2MB_FRAMES) 2210 if (IsMultiRasterWidgetChannel(inChannel))
2211 return SetMultiRasterBypassEnable(
false);
2219 {
UWord failures(0);
2221 if (!DisableChannel(*it))
2230 if (IsMultiRasterWidgetChannel(inChannel))
2231 return SetMultiRasterBypassEnable(
true);
2239 {
UWord failures(0);
2241 if (inChannels.find(chan) != inChannels.end())
2243 if (!EnableChannel(chan))
2246 else if (inDisableOthers)
2247 DisableChannel(chan);
2255 bool disabled (
false);
2256 if (IsMultiRasterWidgetChannel(inChannel))
2257 return GetMultiRasterBypassEnable(outEnabled);
2258 if (IS_CHANNEL_INVALID(inChannel))
2262 outEnabled = disabled ?
false :
true;
2270 bool enabled(
false);
2271 outChannels.clear();
2273 if (!IsChannelEnabled (ch, enabled))
2276 outChannels.insert(ch);
2284 bool enabled(
false);
2285 outChannels.clear();
2287 if (!IsChannelEnabled (ch, enabled))
2290 outChannels.insert(ch);
2294 #if !defined(NTV2_DEPRECATE_16_2) 2297 if (IS_CHANNEL_INVALID(inChannel))
2301 WaitForOutputVerticalInterrupt (inChannel);
2307 return !IS_CHANNEL_INVALID(inChannel)
2313 ULWord nextFrm(0), outFrm(0);
2314 return !IS_CHANNEL_INVALID(inCh)
2316 && GetOutputFrame(inCh, outFrm)
2317 && SetOutputFrame(inCh, nextFrm)
2320 #endif // !defined (NTV2_DEPRECATE_16_2) 2324 if (IsMultiRasterWidgetChannel(inChannel))
2326 if (IS_CHANNEL_INVALID(inChannel))
2333 if (IsMultiRasterWidgetChannel(inChannel))
2334 {outValue = 0;
return false;}
2335 if (IS_CHANNEL_INVALID(inChannel))
2342 if (IsMultiRasterWidgetChannel(inChannel))
2344 if (IS_CHANNEL_INVALID(inChannel))
2351 if (IsMultiRasterWidgetChannel(inChannel))
2353 if (IS_CHANNEL_INVALID(inChannel))
2369 ULWord programFlashValue(0);
2376 ULWord totalProgress = 0;
2387 #if !defined(NTV2_DEPRECATE_18_1) 2396 #if 0 // IP10G purge 2398 devFlasher.SetMBReset();
2401 progResults = devFlasher.
Program(
false);
2404 if (!progResults.empty())
2406 return progResults.empty();
2426 uint32_t regValue (0);
2430 outRevision = uint16_t((regValue & 0x0000FF00) >> 8);
2436 outYear = outMonth = outDay = 0;
2440 uint32_t regValue (0);
2444 const UWord yearBCD ((regValue & 0xFFFF0000) >> 16);
2445 const UWord monthBCD ((regValue & 0x0000FF00) >> 8);
2446 const UWord dayBCD (regValue & 0x000000FF);
2448 outYear = ((yearBCD & 0xF000) >> 12) * 1000
2449 + ((yearBCD & 0x0F00) >> 8) * 100
2450 + ((yearBCD & 0x00F0) >> 4) * 10
2451 + (yearBCD & 0x000F);
2453 outMonth = ((monthBCD & 0x00F0) >> 4) * 10 + (monthBCD & 0x000F);
2455 outDay = ((dayBCD & 0x00F0) >> 4) * 10 + (dayBCD & 0x000F);
2457 return outYear > 2010
2458 && outMonth > 0 && outMonth < 13
2459 && outDay > 0 && outDay < 32;
2465 outHours = outMinutes = outSeconds = 0;
2469 uint32_t regValue (0);
2473 const UWord hoursBCD ((regValue & 0x00FF0000) >> 16);
2474 const UWord minutesBCD ((regValue & 0x0000FF00) >> 8);
2475 const UWord secondsBCD (regValue & 0x000000FF);
2477 outHours = ((hoursBCD & 0x00F0) >> 4) * 10 + (hoursBCD & 0x000F);
2479 outMinutes = ((minutesBCD & 0x00F0) >> 4) * 10 + (minutesBCD & 0x000F);
2481 outSeconds = ((secondsBCD & 0x00F0) >> 4) * 10 + (secondsBCD & 0x000F);
2483 return outHours < 24 && outMinutes < 60 && outSeconds < 60;
2489 outDate = outTime = string();
2490 UWord yr(0), mo(0), dy(0),
hr(0), mn(0), sec(0);
2491 if (!GetRunningFirmwareDate (yr, mo, dy))
2493 if (!GetRunningFirmwareTime (
hr, mn, sec))
2496 ostringstream date, time;
2500 outDate = date.str();
2501 outTime = time.str();
2516 outUserID = regValue;
2526 if (IS_CHANNEL_INVALID(inFrameStore))
2528 if (IsMultiFormatActive())
2546 if (IS_CHANNEL_INVALID (inFrameStore))
2563 if (IS_CHANNEL_INVALID (inChannel))
2571 if (IS_CHANNEL_INVALID (inChannel))
2583 if (IS_CHANNEL_INVALID (inChannel))
2593 if (IS_CHANNEL_INVALID (inChannel))
2605 if (IS_CHANNEL_INVALID (inChannel))
2613 if (IS_CHANNEL_INVALID (inChannel))
2621 if (IS_CHANNEL_INVALID (inChannel))
2627 outIsBypassEnabled = regValue &
BIT(23);
2634 if (IS_CHANNEL_INVALID (inChannel))
2643 if (IS_CHANNEL_INVALID (inChannel))
2653 if (IS_CHANNEL_INVALID(inSDIOutput))
2662 if (IS_CHANNEL_INVALID(inSDIOutput))
2669 case 0: outSDIInput = inSDIOutput <
NTV2_CHANNEL5 ? 0 : 4;
break;
2670 case 2: outSDIInput = inSDIOutput <
NTV2_CHANNEL5 ? 1 : 5;
break;
2671 case 1: outSDIInput = inSDIOutput <
NTV2_CHANNEL5 ? 2 : 6;
break;
2672 case 3: outSDIInput = inSDIOutput <
NTV2_CHANNEL5 ? 3 : 7;
break;
2673 default:
return false;
2704 if (!SetVANCMode (inVancMode, *it))
2713 if (IsMultiRasterWidgetChannel(ch))
2715 if (IS_CHANNEL_INVALID(ch))
2722 GetStandard(st, ch);
2723 GetFrameGeometry(fg, ch);
2739 CVIDWARN(
"'taller' mode requested for 720p -- using 'tall' geometry instead");
2775 default:
return false;
2778 SetFrameGeometry (fg,
false, ch);
2791 { (
void) inStandard; (
void) inFrameGeometry;
2792 if (inTallerVANC && !inVANCenabled)
2800 bool isTall (
false);
2801 bool isTaller (
false);
2806 if (IsMultiRasterWidgetChannel(channel))
2810 if (IS_CHANNEL_INVALID (channel))
2813 GetStandard (standard, channel);
2814 GetFrameGeometry (frameGeometry, channel);
2859 #if defined (_DEBUG) 2862 default:
return false;
2872 if (IsMultiRasterWidgetChannel(inChannel))
2874 if (IS_CHANNEL_INVALID (inChannel))
2876 CVIDINFO(
"'" << GetDisplayName() <<
"' Ch" <<
DEC(inChannel+1) <<
": Vanc data shift " << (inValue ?
"enabled" :
"disabled"));
2885 if (!SetVANCShiftMode(*it, inMode))
2893 if (IsMultiRasterWidgetChannel(inChannel))
2895 if (IS_CHANNEL_INVALID (inChannel))
2903 if (IS_CHANNEL_INVALID (inChannel))
2912 if (IS_CHANNEL_INVALID (inChannel))
2916 outValue = value ?
true :
false;
2927 CVIDINFO(
"'" << GetDisplayName() <<
"' Mixer" <<
DEC(inWhichMixer+1) <<
": Vanc from " << (inFromForegroundSource ?
"FG" :
"BG"));
2940 outIsFromForegroundSource = value ?
true :
false;
3018 CVIDINFO(
"'" << GetDisplayName() <<
"' Mixer" <<
DEC(inWhichMixer+1) <<
": mixCoeff=" <<
xHEX0N(inMixCoefficient,8));
3025 outMixCoefficient = 0;
3037 bool syncFail (
false);
3040 outIsSyncOK = syncFail ?
false :
true;
3046 outIsEnabled =
false;
3061 outIsEnabled =
false;
3079 outYCbCrValue.
cb = outYCbCrValue.
y = outYCbCrValue.
cr = 0;
3085 outYCbCrValue.
cb = packedValue & 0x03FF;
3086 outYCbCrValue.
y = ((packedValue >> 10) & 0x03FF) + 0x0040;
3087 outYCbCrValue.
cr = (packedValue >> 20) & 0x03FF;
3097 if (ycbcrPixel.
y < 0x40)
3100 ycbcrPixel.
y -= 0x40;
3101 ycbcrPixel.
y &= 0x3FF;
3102 ycbcrPixel.
cb &= 0x3FF;
3103 ycbcrPixel.
cr &= 0x3FF;
3107 CVIDINFO(
"'" << GetDisplayName() <<
"' Mixer" <<
DEC(inWhichMixer+1) <<
": set to YCbCr=" <<
DEC(ycbcrPixel.
y)
3108 <<
"|" <<
DEC(ycbcrPixel.
cb) <<
"|" <<
DEC(ycbcrPixel.
cr) <<
":" <<
HEXN(ycbcrPixel.
y,3) <<
"|" 3109 <<
HEXN(ycbcrPixel.
cb,3) <<
"|" <<
HEXN(ycbcrPixel.
cr,3) <<
", write " <<
xHEX0N(packedValue,8)
3118 outIsSupported =
false;
3143 #if !defined(NTV2_DEPRECATE_16_0) 3149 if (IS_CHANNEL_INVALID(channel))
3154 if (ulFrame > GetNumFrameBuffers())
3159 if (!_pFrameBaseAddress)
3160 if (!MapFrameBuffers())
3162 *pBaseAddress = _pFrameBaseAddress + ((ulFrame * _ulFrameBufferSize) /
sizeof(
ULWord));
3166 if (!_pCh1FrameBaseAddress)
3167 if (!MapFrameBuffers())
3169 *pBaseAddress = (channel ==
NTV2_CHANNEL1) ? _pCh1FrameBaseAddress : _pCh2FrameBaseAddress;
3179 if (!_pFrameBaseAddress)
3180 if (!MapFrameBuffers())
3182 *pBaseAddress = _pFrameBaseAddress;
3191 if (!_pRegisterBaseAddress)
3192 if (!MapRegisters())
3195 if ((regNumber*4) >= _pRegisterBaseAddressLength)
3198 *pBaseAddress = _pRegisterBaseAddress + regNumber;
3206 if (!_pXena2FlashBaseAddress)
3207 if (!MapXena2Flash())
3209 *pXena2FlashAddress = _pXena2FlashBaseAddress;
3212 #endif // !defined(NTV2_DEPRECATE_16_0) 3221 outIsEnabled =
false;
3234 outIsEnabled =
false;
3243 if (IS_CHANNEL_INVALID(inChannel))
3250 if (IS_CHANNEL_INVALID(inChannel))
3272 if (IS_OUTPUT_SPIGOT_INVALID(inOutputSpigot))
3276 bool is2Kx1080(
false);
3316 && SetSDIOut2Kx1080Enable(
NTV2Channel(inOutputSpigot), is2Kx1080);
3323 if (!SetSDIOutputStandard(*it, inValue))
3330 if (IS_OUTPUT_SPIGOT_INVALID(inOutputSpigot))
3332 bool is2kx1080(
false);
3337 && GetSDIOut2Kx1080Enable(
NTV2Channel(inOutputSpigot), is2kx1080)
3338 && GetSDIOut6GEnable(
NTV2Channel(inOutputSpigot), is6G)
3339 && GetSDIOut12GEnable(
NTV2Channel(inOutputSpigot), is12G));
3363 if (IS_OUTPUT_SPIGOT_INVALID(inOutputSpigot))
3365 if (IsMultiFormatActive())
3396 if (IS_OUTPUT_SPIGOT_INVALID (inOutputSpigot))
3420 #if !defined(R2_DEPRECATE) 3432 #endif // R2_DEPRECATE 3458 ULWord vpidDS1(0), vpidDS2(0);
3460 if (IS_CHANNEL_INVALID(inChannel))
3463 bool isValidVPID (GetVPIDValidA(inChannel));
3466 ReadSDIInVPID(inChannel, vpidDS1, vpidDS2);
3468 isValidVPID = inputVPID.
IsValid();
3473 bool isProgressiveTrans (isValidVPID ? inputVPID.
GetProgressiveTransport() : GetSDIInputIsProgressive(inChannel));
3475 bool isInput3G (
false);
3496 if (canDo3GIn || canDo12GIn)
3498 GetSDIInput3GPresent(isInput3G, inChannel);
3499 NTV2VideoFormat format = isValidVPID ? inputVPID.
GetVideoFormat() : GetNTV2VideoFormat(inputRate, inputGeometry, isProgressiveTrans, isInput3G, isProgressivePic);
3503 isProgressiveTrans = GetSDIInputIsProgressive(inChannel);
3504 isProgressivePic = inIsProgressivePicture;
3505 format = GetNTV2VideoFormat(inputRate, inputGeometry, isProgressiveTrans, isInput3G, isProgressivePic);
3509 bool is6G(
false), is12G(
false);
3510 GetSDIInput6GPresent(is6G, inChannel);
3511 GetSDIInput12GPresent(is12G, inChannel);
3530 return GetNTV2VideoFormat(inputRate, inputGeometry, isProgressiveTrans, isInput3G, isProgressivePic);
3541 if (GetHDMIInputStatus(status, inChannel))
3546 if(hdmiVersion == 1)
3563 else if(hdmiVersion > 1)
3565 bool squareDivision = hdmiVersion == 5 ?
false :
true;
3568 UByte inputGeometry = 0;
3571 format = GetNTV2VideoFormat (hdmiRate, hdmiStandard,
false, inputGeometry,
false, squareDivision);
3632 return GetNTV2VideoFormat (
NTV2FrameRate((status >> 16) & 0xF),
3633 ((status >> 20) & 0x7),
3634 (status &
BIT_23) ?
true :
false,
3641 if (IS_CHANNEL_INVALID (channel))
3644 ULWord rateLow (0), rateHigh (0);
3658 if (IS_CHANNEL_INVALID (channel))
3661 ULWord geometryLow (0), geometryHigh (0);
3675 if (IS_CHANNEL_INVALID (channel))
3678 ULWord isProgressive = 0;
3680 return isProgressive ?
true :
false;
3685 if (IS_CHANNEL_INVALID (channel))
3690 outValue = static_cast <
bool> (value);
3697 if (IS_CHANNEL_INVALID (channel))
3702 outValue = static_cast <
bool> (value);
3709 if (IS_CHANNEL_INVALID (channel))
3714 outValue = static_cast <
bool> (value);
3721 if (IS_CHANNEL_INVALID (channel))
3726 outValue = static_cast <
bool> (value);
3735 inEnable = !inEnable;
3745 outIsEnabled = !outIsEnabled;
3764 #if !defined(NTV2_DEPRECATE_16_3) 3774 #endif // !defined(NTV2_DEPRECATE_16_3) 3779 if (!ReadAnalogLTCInput(inLTCInput, result))
3781 outRP188Data = result;
3794 outRP188Data.
fDBB = 0;
3795 return ReadRegister(regLo, outRP188Data.
fLo) && ReadRegister(regHi, outRP188Data.
fHi);
3816 if (IS_CHANNEL_INVALID(inChannel))
3825 return WriteAnalogLTCOutput (inLTCOutput, rp188data);
3845 bool isMultiFormat(
false);
3846 if (!GetMultiFormatMode(isMultiFormat))
3861 if (IS_CHANNEL_INVALID (inChannel))
3863 bool isMultiFormat(
false);
3864 if (!GetMultiFormatMode(isMultiFormat))
3879 if (IS_CHANNEL_INVALID(inChannel))
3893 if (!SetSDITransmitEnable(*it, inEnable))
3900 if (IS_CHANNEL_INVALID(inChannel))
3905 {outIsEnabled =
true;
return true;}
3912 outXmitSDIs.clear();
3917 if (!biDirectionalSDI || (GetSDITransmitEnable(ch, isXmit) && isXmit))
3918 outXmitSDIs.insert(ch);
3925 if (IS_CHANNEL_INVALID (inChannel))
3932 if (IS_CHANNEL_INVALID (inChannel))
3939 if (IS_CHANNEL_INVALID(inChannel))
3946 if (IS_CHANNEL_INVALID(inChannel))
3954 if (IS_CHANNEL_INVALID(inChannel))
3961 if (IS_CHANNEL_INVALID(inChannel))
3968 if (IS_CHANNEL_INVALID(inChannel))
3978 if (IS_CHANNEL_INVALID(inChannel))
3980 bool is6G(
false), is12G(
false);
3985 outIsEnabled =
true;
3987 outIsEnabled =
false;
3993 if (IS_CHANNEL_INVALID(inChannel))
4003 if (IS_CHANNEL_INVALID(inChannel))
4054 size_t numFailures(0);
4055 for (NTV2ChannelSet::const_iterator it(inSDIOutputs.begin()); it != inSDIOutputs.end(); ++it)
4056 if (!(inDS2 ? SetSDIOutputDS2AudioSystem(*it, inAudioSystem) : SetSDIOutputAudioSystem(*it, inAudioSystem)))
4058 return numFailures == 0;
4190 outValue = statusBit ?
true :
false;
4228 outIsEnabled = static_cast <
bool> (tempVal);
4241 outIsEnabled = static_cast <
bool> (tempVal);
4254 outIsEnabled = static_cast <
bool> (tempVal);
4267 outIsEnabled = static_cast <
bool> (tempVal);
4276 if (IS_CHANNEL_INVALID(inChannel))
4280 return value ?
true :
false;
4287 if (IS_CHANNEL_INVALID(inChannel))
4291 return value ?
true :
false;
4298 if (IS_CHANNEL_INVALID(inChannel))
4309 if (IS_CHANNEL_INVALID(inChannel))
4320 if (IS_CHANNEL_INVALID(inChannel))
4331 if (IS_INPUT_SPIGOT_INVALID (inInputSpigot))
4334 ULWord regNum, mask, shift;
4335 switch (inInputSpigot)
4345 default:
return false;
4347 return WriteRegister(regNum, inEnable, mask, shift);
4354 if (!SetSDIInLevelBtoLevelAConversion(*it, inEnable))
4363 if (IS_INPUT_SPIGOT_INVALID (inInputSpigot))
4366 ULWord regNum, mask, shift;
4367 switch (inInputSpigot)
4377 default:
return false;
4386 if (IS_OUTPUT_SPIGOT_INVALID(inOutputSpigot))
4396 if (!SetSDIOutLevelAtoLevelBConversion(*it, inEnable))
4405 if (IS_OUTPUT_SPIGOT_INVALID (inOutputSpigot))
4410 outEnable = static_cast <
bool> (tempVal);
4418 if (IS_OUTPUT_SPIGOT_INVALID (inOutputSpigot))
4428 if (!SetSDIOutRGBLevelAConversion(*it, inEnable))
4437 if (IS_OUTPUT_SPIGOT_INVALID (inOutputSpigot))
4442 outEnable = static_cast <
bool> (tempVal);
4484 default:
return false;
4526 #if !defined(_DEBUG) 4550 default:
return false;
4588 UWord dieTempRaw (rawRegValue & 0x0000FFFF);
4589 celsius = double (dieTempRaw) / 128.0;
4593 UWord dieTempRaw ((rawRegValue & 0x0000FFFF) >> 6);
4594 celsius = (double (dieTempRaw) * 503.975 / 1024.0 - 273.15);
4596 switch (inTempScale)
4602 default:
return false;
4616 const UWord coreVoltageRaw ((rawRegValue>>22) & 0x00003FF);
4617 const double coreVoltageFloat (
double(coreVoltageRaw)/ 1024.0 * 3.0);
4618 outVoltage = coreVoltageFloat;
4622 #if defined(READREGMULTICHANGE) 4628 if (inRegisters.empty())
4632 if (NTV2Message(getRegsParams))
4634 if (!getRegsParams.GetRegisterValues(outValues))
4642 if (ReadRegister (*iter, tempVal))
4643 outValues[*iter] = tempVal;
4645 return outValues.size() == inRegisters.size();
4647 #endif // !defined(READREGMULTICHANGE) 4654 if (inRegWrites.empty())
4660 result = NTV2Message(setRegsParams);
4667 if (!WriteRegister(pRegInfos[ndx].registerNumber, pRegInfos[ndx].registerValue, pRegInfos[ndx].registerMask, pRegInfos[ndx].registerShift))
4673 if (!result)
CVIDFAIL(
"Failed: setRegsParams: " << setRegsParams);
4681 if (!NTV2Message(bankSelGetSetMsg))
4692 if (!NTV2Message(bankSelGetSetMsg))
4697 inOutRegInfo = bankSelGetSetMsg.
GetRegInfo();
4703 NTV2VirtualData virtualDataMsg (inTag, inVirtualData, inVirtualDataSize,
true);
4705 return NTV2Message(virtualDataMsg);
4710 NTV2VirtualData virtualDataMsg (inTag, outVirtualData, inVirtualDataSize,
false);
4712 return NTV2Message(virtualDataMsg);
4722 if (!NTV2Message(outStats))
4726 for (
size_t sdi(0); sdi < numSDIInputs; sdi++)
4727 for (
ULWord reg(0); reg < 6; reg++)
4732 if (!ReadRegisters(sdiStatRegInfos))
4735 for (
size_t sdi(0); sdi < numSDIInputs; sdi++)
4738 size_t ndx(sdi*6 + 0);
4747 regInfo = sdiStatRegInfos.at(ndx+1);
4768 if (!HasMultiRasterWidget())
4770 NTV2ULWordVector regs; regs.push_back(0); regs.push_back(0); regs.push_back(0); regs.push_back(0);
4794 #pragma warning(default: 4800)
Fractional rate of 15,000 frames per 1,001 seconds.
static const ULWord gChannelToSDIInputProgressiveShift[]
#define NTV2_IS_VANCMODE_TALLER(__v__)
virtual bool GetForce64(ULWord *force64)
Everything needed to call CNTV2Card::ReadRegister or CNTV2Card::WriteRegister functions.
virtual NTV2VideoFormat GetSDIInputVideoFormat(NTV2Channel inChannel, bool inIsProgressive=(0))
Returns the video format of the signal that is present on the given SDI input source.
NTV2FrameRate GetNTV2FrameRateFromVideoFormat(const NTV2VideoFormat inVideoFormat)
static const ULWord gChannelToSDIIn6GModeMask[]
virtual bool SetFrameBufferSize(const NTV2Framesize inSize)
Sets the device's intrinsic frame buffer size.
virtual bool SetMixerBGMatteEnabled(const UWord inWhichMixer, const bool inIsEnabled)
Answers if the given mixer/keyer's background matte is enabled or not.
std::string NTV2FrameGeometryToString(const NTV2FrameGeometry inValue, const bool inForRetailDisplay=false)
static const ULWord gChannelToInputFrameRegNum[]
virtual bool SetTaskMode(const NTV2TaskMode inMode)
Sets the device's task mode.
virtual bool GetVideoHOffset(int &outHOffset, const UWord inOutputSpigot=0)
Answers with the current horizontal timing offset, in pixels, for the given SDI output connector...
Identifies the 4th HDMI video input.
static const ULWord sSDIXmitEnableShifts[]
#define NTV2_IS_VALID_TASK_MODE(__m__)
Identifies the 5th SDI video input.
virtual bool GetSDITransmitEnable(const NTV2Channel inChannel, bool &outEnabled)
Answers whether or not the specified SDI connector is currently acting as a transmitter (i...
static const ULWord gChannelToSDIIn12GModeShift[]
NTV2AudioSystem
Used to identify an Audio System on an NTV2 device. See Audio System Operation for more information...
virtual bool SetSDIWatchdogEnable(const bool inEnable, const UWord inIndex0)
Sets the connector pair relays to be under watchdog timer control or manual control.
NTV2InputXptIDSet::const_iterator NTV2InputXptIDSetConstIter
A const iterator for iterating over an NTV2InputXptIDSet.
virtual bool GetRegisterBaseAddress(ULWord regNumber, ULWord **pRegAddress)
virtual bool GetFrameBufferOrientation(const NTV2Channel inChannel, NTV2FBOrientation &outValue)
Answers with the current frame buffer orientation for the given NTV2Channel.
virtual bool GetSDIOut2Kx1080Enable(const NTV2Channel inChannel, bool &outIsEnabled)
virtual bool AcquireMailBoxLock(void)
virtual bool SetStandard(NTV2Standard inValue, NTV2Channel inChannel=NTV2_CHANNEL1)
virtual bool GetMultiFormatMode(bool &outIsEnabled)
Answers if the device is operating in multiple-format per channel (independent channel) mode or not...
Specifies the SDI In 6 connector.
virtual bool SetEncodeAsPSF(NTV2Channel inChannel, NTV2EncodeAsPSF inValue)
Identifies SMPTE HD 1080p.
virtual bool GetVideoFormat(NTV2VideoFormat &outValue, NTV2Channel inChannel=NTV2_CHANNEL1)
virtual bool BankSelectReadRegister(const NTV2RegInfo &inBankSelect, NTV2RegInfo &inOutRegInfo)
Reads the given set of registers from the bank specified in position 0.
virtual bool GetMixerFGMatteEnabled(const UWord inWhichMixer, bool &outIsEnabled)
Answers if the given mixer/keyer's foreground matte is enabled or not.
#define NTV2VANCModeFromBools(_tall_, _taller_)
Specifies the device's internal clock.
virtual bool SetReference(const NTV2ReferenceSource inRefSource, const bool inKeepFramePulseSelect=(0))
Sets the device's clock reference source. See Video Output Clocking & Synchronization for more inform...
virtual bool GetDieTemperature(double &outTemp, const NTV2DieTempScale inTempScale=NTV2DieTempScale_Celsius)
Reads the current die temperature of the device.
virtual bool GetAnalogOutHTiming(ULWord &outValue)
ULWord registerMask
My register mask value to use in a ReadRegister or WriteRegister call.
This identifies the invalid (unspecified, uninitialized) VANC mode.
virtual bool GetSDIInput3GPresent(bool &outValue, const NTV2Channel channel)
static const ULWord gIndexToVidProcControlRegNum[]
True if the device supports SMPTE 425 mux control.
Odd parity – this is the power-up default.
static bool GetPossibleConnections(const NTV2RegReads &inROMRegisters, NTV2PossibleConnections &outConnections)
Answers with the implemented crosspoint connections as obtained from the given ROM registers...
virtual bool GetQuadQuadSquaresEnable(bool &outValue, const NTV2Channel inChannel=NTV2_CHANNEL1)
Returns the device's current "quad-quad-squares" frame mode, whether it's enabled or not...
NTV2FrameGeometry GetQuarterSizedGeometry(const NTV2FrameGeometry inGeometry)
virtual bool ReadLineCount(ULWord &outValue, const NTV2Channel inChannel=NTV2_CHANNEL1)
Answers with the line offset into the frame currently being read (NTV2_MODE_DISPLAY) or written (NTV2...
virtual bool SetPCIAccessFrame(const NTV2Channel inChannel, const ULWord inValue, const bool inWaitForVBI=(!(0)))
Identifies the 2nd HDMI video input.
#define DEC0N(__x__, __n__)
#define NTV2_IS_2K1080_STANDARD(__s__)
The number of video channels supported on the device.
1920x1080, for 1080i and 1080p, NTV2_VANCMODE_TALL
I interrogate and control an AJA video/audio capture/playout device.
The number of mixer/keyer widgets on the device.
static const ULWord gChannelToSmpte372Shifts[]
NTV2FrameBufferFormat
Identifies a particular video frame buffer pixel format. See Device Frame Buffer Formats for details...
virtual bool SetMixerMode(const UWord inWhichMixer, const NTV2MixerKeyerMode inMode)
Sets the mode for the given mixer/keyer.
static const ULWord gChannelToSDIIn3GbModeMask[]
static const ULWord gChannelToSDIInputRateHighMask[]
True if device can do 3G level B to 3G level A conversion.
NTV2ChannelSet::const_iterator NTV2ChannelSetConstIter
A handy const iterator into an NTV2ChannelSet.
NTV2TaskMode
Describes the task mode state. See also: NTV2 Device Sharing.
virtual bool GetAllWidgetInputs(NTV2InputXptIDSet &outInputs)
Returns all my widget input crosspoints.
virtual bool SetVideoFormat(const NTV2VideoFormat inVideoFormat, const bool inIsAJARetail=(!(0)), const bool inKeepVancSettings=(0), const NTV2Channel inChannel=NTV2_CHANNEL1)
Configures the AJA device to handle a specific video format.
The number of analog LTC outputs on the device.
virtual bool Set4kSquaresEnable(const bool inIsEnabled, const NTV2Channel inChannel)
Enables or disables SMPTE 425 "2K quadrants" mode for the given FrameStore bank on the device...
virtual bool SetSDIOut6GEnable(const NTV2Channel inChannel, const bool inEnable)
Specifies the HDMI In 1 connector.
virtual bool SetDualLinkOutputEnable(const bool inIsEnabled)
Declares the AJADebug class.
virtual bool SetFrameGeometry(NTV2FrameGeometry inGeometry, bool inIsRetail=(!(0)), NTV2Channel inChannel=NTV2_CHANNEL1)
Sets the frame geometry of the given channel.
720x576, for PAL 625i, NTV2_VANCMODE_TALL
virtual bool SetRP188Mode(const NTV2Channel inChannel, const NTV2_RP188Mode inMode)
Sets the current RP188 mode – NTV2_RP188_INPUT or NTV2_RP188_OUTPUT – for the given channel...
virtual bool GetPossibleConnections(NTV2PossibleConnections &outConnections)
Answers with the implemented crosspoint connections (if known).
Declares the CNTV2VPID class. See SMPTE 352 standard for details.
1280x720, for 720p, NTV2_VANCMODE_OFF
static const ULWord gMatteColorRegs[]
virtual bool SetMixerMatteColor(const UWord inWhichMixer, const YCbCr10BitPixel inYCbCrValue)
Sets the matte color to use for the given mixer/keyer.
virtual bool SetProgressivePicture(ULWord value)
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
virtual bool DisableChannel(const NTV2Channel inChannel)
Disables the given FrameStore.
static const ULWord gSDIOutToRP188Input[]
enum NTV2VPIDLuminance NTV2HDRLuminance
Identifies the 1st HDMI video input.
Fractional rate of 120,000 frames per 1,001 seconds.
virtual bool Enable4KDCYCC444Mode(bool inEnable)
Sets 4K Down Convert YCC 444 mode.
enum NTV2VideoFrameBufferOrientation NTV2FBOrientation
virtual bool GetMixerMode(const UWord inWhichMixer, NTV2MixerKeyerMode &outMode)
Returns the current operating mode of the given mixer/keyer.
virtual bool SetDualLinkInputEnable(const bool inIsEnabled)
virtual bool GetRunningFirmwareRevision(UWord &outRevision)
Reports the revision number of the currently-running firmware.
Identifies SMPTE SD 525i.
enum NTV2VPIDColorimetry NTV2HDRColorimetry
virtual bool IsMultiRasterWidgetChannel(const NTV2Channel inChannel)
virtual bool SetFrameBufferQuality(NTV2Channel inChannel, NTV2FrameBufferQuality inValue)
virtual bool SetSmpte372(ULWord inValue, NTV2Channel inChannel=NTV2_CHANNEL1)
Enables or disables the device's SMPTE-372 (dual-link) mode (used for older 3G-levelB-capable devices...
virtual NTV2FrameGeometry GetSDIInputGeometry(const NTV2Channel channel)
bool IsValid(void) const
Answers true if I'm valid, or false if I'm not valid.
#define NTV2_IS_QUAD_QUAD_FRAME_GEOMETRY(geom)
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 GetMixerSyncStatus(const UWord inWhichMixer, bool &outIsSyncOK)
Returns the current sync state of the given mixer/keyer.
virtual bool ReleaseMailBoxLock(void)
virtual bool WriteGlobalControlBits(const ULWord regNum, const ULWord value, const ULWord mask, const ULWord shift, GlobalControlRegWrite *pGlobalControl)
Identifies high frame-rate UHD.
std::map< ULWord, ULWord > NTV2RegisterValueMap
A mapping of distinct NTV2RegisterNumbers to their corresponding ULWord values.
static bool isEnabled(CNTV2Card &device, const NTV2Channel inChannel)
virtual bool IsProgressiveStandard(bool &outIsProgressive, NTV2Channel inChannel=NTV2_CHANNEL1)
ULWordSetConstIter NTV2RegNumSetConstIter
A const iterator that iterates over a set of distinct NTV2RegisterNumbers.
virtual bool GetSDIOut12GEnable(const NTV2Channel inChannel, bool &outIsEnabled)
virtual bool GetRP188SourceFilter(const NTV2Channel inSDIInput, UWord &outFilterValue)
Returns the current RP188 filter setting for the given SDI input.
Declares the AJATime class.
virtual bool GetSDIInput3GbPresent(bool &outValue, const NTV2Channel channel)
static const ULWord gChannelToRS422ControlRegNum[]
virtual bool GetMixerBGInputControl(const UWord inWhichMixer, NTV2MixerKeyerInputControl &outInputControl)
Returns the current background input control value for the given mixer/keyer.
virtual bool GetTransmitSDIs(NTV2ChannelSet &outXmitSDIs)
Answers with the transmitting/output SDI connectors.
virtual bool GetDieVoltage(double &outVoltage)
Reads the current "Vcc" voltage of the device.
virtual bool GetRunningFirmwareUserID(ULWord &outUserID)
Reports the UserID number of the currently-running firmware.
Identifies the NTV2VideoFormat enumerated type.
virtual bool GetVANCShiftMode(NTV2Channel inChannel, NTV2VANCDataShiftMode &outValue)
Retrieves the current "VANC Shift Mode" feature for the given channel.
virtual bool GetProgressivePicture(void) const
virtual bool SetMixerBGInputControl(const UWord inWhichMixer, const NTV2MixerKeyerInputControl inInputControl)
Sets the background input control value for the given mixer/keyer.
virtual bool GetSDIOutputStandard(const UWord inOutputSpigot, NTV2Standard &outValue)
Answers with the current video standard of the given SDI output spigot.
True if device has SFP connectors.
static bool GetWidgetOutputs(const NTV2WidgetID inWidgetID, NTV2OutputXptIDSet &outOutputs)
Returns the output crosspoints known to be "owned" by the given widget.
virtual bool GetRegisterWriteMode(NTV2RegisterWriteMode &outValue, const NTV2Channel inFrameStore=NTV2_CHANNEL1)
Answers with the FrameStore's current NTV2RegisterWriteMode setting, which determines when CNTV2Card:...
virtual bool GetEnable4KPSFOutMode(bool &outIsEnabled)
virtual bool SetRP188BypassSource(const NTV2Channel inSDIOutput, const UWord inSDIInput)
For the given SDI output that's in RP188 bypass mode (E-E), specifies the SDI input to be used as a t...
NTV2Standard GetNTV2StandardFromScanGeometry(const UByte inScanGeometry, const bool inIsProgressiveTransport)
NTV2FrameSize & Reset(void)
Input & output directly connected.
2048x1080, for 2Kx1080p, NTV2_VANCMODE_TALL
True if the device can do RGB over 3G Level A.
virtual bool GetActiveFrameDimensions(NTV2FrameDimensions &outFrameDimensions, const NTV2Channel inChannel=NTV2_CHANNEL1)
NTV2RelayState
This enumerated data type identifies the two possible states of the bypass relays. See CNTV2Card::GetSDIRelayPosition, CNTV2Card::GetSDIRelayManualControl, CNTV2Card::GetSDIWatchdogStatus, etc.
Fractional rate of 60,000 frames per 1,001 seconds.
virtual ULWord GetFrameBufferSize(void) const
virtual bool FlipFlopPage(const NTV2Channel inChannel)
virtual bool GetEnabledChannels(NTV2ChannelSet &outChannels)
Answers with the set of channels that are currently enabled.
virtual bool SetFrameBufferFormat(NTV2Channel inChannel, NTV2FrameBufferFormat inNewFormat, bool inIsAJARetail=(!(0)), NTV2HDRXferChars inXferChars=NTV2_VPID_TC_SDR_TV, NTV2HDRColorimetry inColorimetry=NTV2_VPID_Color_Rec709, NTV2HDRLuminance inLuminance=NTV2_VPID_Luminance_YCbCr)
Sets the frame buffer format for the given FrameStore on the AJA device.
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
NTV2OutputXptIDSet::const_iterator NTV2OutputXptIDSetConstIter
A const iterator for iterating over an NTV2OutputXptIDSet.
virtual bool SetAnalogLTCOutClockChannel(const UWord inLTCOutput, const NTV2Channel inChannel)
Sets the (SDI) output channel that is to provide the clock reference to be used by the given analog L...
virtual bool SetSDI1OutHTiming(ULWord value)
Identifies the 8th SDI video input.
virtual bool GetSDIWatchdogEnable(bool &outIsEnabled, const UWord inIndex0)
Answers true if the given connector pair relays are under watchdog timer control, or false if they're...
virtual bool GetSDI1OutHTiming(ULWord *value)
virtual bool GetEnable4KDCYCC444Mode(bool &outIsEnabled)
virtual bool SetSDI2OutHTiming(ULWord value)
virtual bool SetMultiFormatMode(const bool inEnable)
Enables or disables multi-format (per channel) device operation. If enabled, each device channel can ...
static NTV2VideoFormat GetNTV2VideoFormat(NTV2FrameRate frameRate, UByte inputGeometry, bool progressiveTransport, bool isThreeG, bool progressivePicture=(0))
virtual bool GetSDIInput12GPresent(bool &outValue, const NTV2Channel channel)
3840x2160, for UHD, NTV2_VANCMODE_OFF
virtual bool GetLTCEmbeddedOutEnable(bool &outValue)
Identifies the 2nd SDI video input.
virtual bool MixerHasRGBModeSupport(const UWord inWhichMixer, bool &outIsSupported)
Answers if the given mixer/keyer's has RGB mode support.
virtual bool SetVideoHOffset(const int inHOffset, const UWord inOutputSpigot=0)
Adjusts the horizontal timing offset, in pixels, for the given SDI output connector.
bool IsProgressivePicture(const NTV2VideoFormat format)
virtual bool EnableRP188Bypass(const NTV2Channel inSDIOutput)
Configures the SDI output's embedder to embed SMPTE 12M timecode obtained from an SDI input...
bool NTV2DeviceNeedsRoutingSetup(const NTV2DeviceID inDeviceID)
virtual bool WriteOutputTimingControl(const ULWord inValue, const UWord inOutputSpigot=0)
Adjusts the output timing for the given SDI output connector.
virtual bool Enable4KDCPSFInMode(bool inEnable)
Sets 4K Down Convert PSF in mode.
#define NTV2_ASSERT(_expr_)
The number of SDI video outputs on the device.
virtual bool GetRS422Parity(const NTV2Channel inSerialPort, NTV2_RS422_PARITY &outParity)
Answers with the current parity control for the specified RS422 serial port.
Identifies SMPTE HD 2K1080psf.
38400 baud – this is the power-up default
virtual bool GetRunningFirmwarePackageRevision(ULWord &outRevision)
Reports the revision number of the currently-running firmware package. KonaIP style boards have a pac...
Represents an unknown or invalid frame rate.
virtual bool GetRP188Data(const NTV2Channel inSDIInput, NTV2_RP188 &outRP188Data)
Reads the raw RP188 data from the DBB/Low/Hi registers for the given SDI input. On newer devices with...
bool NTV2DeviceSoftwareCanChangeFrameBufferSize(const NTV2DeviceID inDeviceID)
ULWordSet::const_iterator ULWordSetConstIter
#define NTV2_IS_QUAD_STANDARD(__s__)
static const ULWord gChlToRP188DBBRegNum[]
This struct replaces the old RP188_STRUCT.
virtual NTV2VideoFormat GetHDMIInputVideoFormat(NTV2Channel inHDMIInput=NTV2_CHANNEL1)
The total number of audio systems on the device, including host audio and mixer audio systems...
static const ULWord gChannelToPCIAccessFrameRegNum[]
static bool WriteWatchdogControlBit(CNTV2Card &card, const ULWord inValue, const ULWord inMask, const ULWord inShift)
virtual bool GetInputVideoSelect(NTV2InputVideoSelect &outInputSelect)
Identifies SMPTE HD 720p.
static const ULWord gIndexToVidProcMixCoeffRegNum[]
True if device can read LTC (Linear TimeCode) from its reference input.
std::string NTV2MixerInputControlToString(const NTV2MixerKeyerInputControl inValue, const bool inCompactDisplay=false)
2048x1556, for 2Kx1556psf film format, NTV2_VANCMODE_OFF
virtual bool SetQuadFrameEnable(const bool inValue, const NTV2Channel inChannel=NTV2_CHANNEL1)
Enables or disables quad-frame mode on the device.
virtual bool GetTaskMode(NTV2TaskMode &outMode)
Retrieves the device's current task mode.
Specifies the External Reference connector.
True if device SDI connectors are bi-directional.
static const ULWord gChannelToRXSDICRCErrorCountRegs[]
Fractional rate of 48,000 frames per 1,001 seconds.
virtual bool GetTsiMuxSyncFail(bool &outSyncFailed, const NTV2Channel inWhichTsiMux)
Answers if the SMPTE 425 two-sample-interleave mux/demux input sync has failed or not...
virtual bool SetSDIOut3GEnable(const NTV2Channel inChannel, const bool inEnable)
virtual bool KickSDIWatchdog(void)
Restarts the countdown timer to prevent the watchdog timer from timing out.
static const ULWord gChannelToSDIInputRateMask[]
virtual bool GetSDIRelayManualControl(NTV2RelayState &outValue, const UWord inIndex0)
Answers if the bypass relays between connectors 1 and 2 would be in bypass or would route signals thr...
static const ULWord gChannelToOutputTimingCtrlRegNum[]
bool SetBitFile(const std::string &inBitfileName, std::ostream &outMsgs, const FlashBlockID blockNumber=AUTO_FLASHBLOCK)
ULWord mInNumRegisters
The number of NTV2RegInfo's to be set.
std::string Program(bool fullVerify=(0))
NTV2FrameRate
Identifies a particular video frame rate.
7680x4320, for UHD2, NTV2_VANCMODE_OFF
virtual bool SetLTCInputEnable(const bool inEnable)
Enables or disables the ability for the device to read analog LTC on the reference input connector...
virtual bool GetXena2FlashBaseAddress(ULWord **pXena2FlashAddress)
std::string NTV2StandardToString(const NTV2Standard inValue, const bool inForRetailDisplay=false)
virtual bool SetOutputFrame(const NTV2Channel inChannel, const ULWord inValue)
Sets the output frame index number for the given FrameStore. This identifies which frame in device SD...
std::string NTV2InputCrosspointIDToString(const NTV2InputCrosspointID inValue, const bool inForRetailDisplay=false)
virtual bool GetEncodeAsPSF(NTV2Channel inChannel, NTV2EncodeAsPSF &outValue)
2048x1080, NTV2_VANCMODE_TALLER
virtual bool EnableChannels(const NTV2ChannelSet &inChannels, const bool inDisableOthers=(0))
Enables the given FrameStore(s).
NTV2Standard
Identifies a particular video standard.
virtual bool GetSDILock(const NTV2Channel inChannel)
ULWord registerValue
My register value to use in a ReadRegister or WriteRegister call.
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
Specifies the HDMI In 3 connector.
ULWord registerNumber
My register number to use in a ReadRegister or WriteRegister call.
virtual bool GetVideoVOffset(int &outVOffset, const UWord inOutputSpigot=0)
Answers with the current vertical timing offset, in lines, for the given SDI output connector...
virtual bool SetMode(const NTV2Channel inChannel, const NTV2Mode inNewValue, const bool inIsRetail=(!(0)))
Determines if a given FrameStore on the AJA device will be used to capture or playout video...
enum NTV2VPIDTransferCharacteristics NTV2HDRXferChars
virtual bool GetSecondaryVideoFormat(NTV2VideoFormat &outFormat)
NTV2Standard GetQuarterSizedStandard(const NTV2Standard inGeometry)
virtual bool SetRP188Data(const NTV2Channel inSDIOutput, const NTV2_RP188 &inRP188Data)
Writes the raw RP188 data into the DBB/Low/Hi registers for the given SDI output. These values are la...
This is used to perform virtual data reads or writes.
virtual bool IsXilinxProgrammed(void)
static const ULWord gChannelToOutputFrameRegNum[]
The number of FrameStores on the device.
virtual bool WriteRegisters(const NTV2RegisterWrites &inRegWrites)
Writes the given sequence of NTV2RegInfo's.
virtual bool GetSDIOutputAudioSystem(const NTV2Channel inSDIOutputConnector, NTV2AudioSystem &outAudioSystem)
Answers with the device's NTV2AudioSystem that is currently providing audio for the given SDI output'...
static const ULWord gChannelToSDIInputGeometryMask[]
1920x1080, for 1080i and 1080p, NTV2_VANCMODE_OFF
NTV2_RS422_PARITY
These enum values identify RS-422 serial port parity configuration.
virtual bool GetQuadFrameEnable(bool &outValue, const NTV2Channel inChannel=NTV2_CHANNEL1)
Returns the device's current quad-frame mode, whether it's enabled or not.
virtual bool SetFramePulseReference(const NTV2ReferenceSource inRefSource)
Sets the device's frame pulse reference source. See Video Output Clocking & Synchronization for more ...
#define NTV2_IS_QUAD_QUAD_STANDARD(__s__)
virtual bool GetDefaultVideoOutMode(ULWord &outMode)
virtual bool GetEnableFramePulseReference(bool &outEnabled)
Answers whether or not the device's current frame pulse reference source is enabled. See Video Output Clocking & Synchronization for more information.
True if device has bypass relays on its SDI connectors.
static const ULWord gChannelToSDIOutControlRegNum[]
static const ULWord gChannelToGlobalControlRegNum[]
virtual bool SetSDITransmitEnable(const NTV2Channel inChannel, const bool inEnable)
Sets the specified bidirectional SDI connector to act as an input or an output.
NTV2ReferenceSource
These enum values identify a specific source for the device's (output) reference clock.
std::string NTV2TaskModeToString(const NTV2TaskMode inValue, const bool inCompactDisplay=false)
virtual bool ReadRegisters(NTV2RegisterReads &inOutValues)
Reads the register(s) specified by the given NTV2RegInfo sequence.
virtual bool FlushGlobalControlWrite(GlobalControlRegWrite *pGlobalControl)
virtual bool SetRP188SourceFilter(const NTV2Channel inSDIInput, const UWord inFilterValue)
Sets the RP188 DBB filter for the given SDI input.
Identifies Ultra-High-Definition (UHD) psf.
1280x720, for 720p, NTV2_VANCMODE_TALL
virtual bool SetRS422Parity(const NTV2Channel inSerialPort, const NTV2_RS422_PARITY inParity)
Sets the parity control on the specified RS422 serial port.
virtual bool GetVANCMode(NTV2VANCMode &outVancMode, const NTV2Channel inChannel=NTV2_CHANNEL1)
Retrieves the current VANC mode for the given FrameStore.
#define NTV2_IS_2K_1080_FRAME_GEOMETRY(geom)
virtual bool ReadAnalogLTCInput(const UWord inLTCInput, RP188_STRUCT &outRP188Data)
Reads the current contents of the device's analog LTC input registers.
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 const ULWord gChannelToRP188ModeShifts[]
Identifies the 3rd SDI video input.
static const ULWord gChannelToSDIIn3GModeMask[]
virtual bool SetSDIOut2Kx1080Enable(const NTV2Channel inChannel, const bool inIsEnabled)
virtual NTV2VideoFormat GetInputVideoFormat(const NTV2InputSource inVideoSource=NTV2_INPUTSOURCE_SDI1, const bool inIsProgressive=(0))
Returns the video format of the signal that is present on the given input source. ...
std::vector< ULWord > NTV2ULWordVector
An ordered sequence of ULWords.
Disables normal FrameBuffer Y/C value read limiting (NOT RECOMMENDED).
True if device has 25Gbps SFPs. (New in SDK 18.0)
virtual NTV2VideoFormat GetAnalogInputVideoFormat(void)
Returns the video format of the signal that is present on the device's analog video input...
static const ULWord gChlToRP188Bits031RegNum[]
True if device has at least one RS-422 serial port, and it (they) can be programmed (for baud rate...
Specifies the SDI In 8 connector.
static const ULWord gChannelToControlRegNum[]
virtual bool GetSDITRSError(const NTV2Channel inChannel)
NTV2QuarterSizeExpandMode
NTV2RegisterNumberSet NTV2RegNumSet
A set of distinct NTV2RegisterNumbers.
This is used to atomically perform bank-selected register reads or writes.
static const ULWord gChannelToSDIInputRateShift[]
std::set< ULWord > ULWordSet
A collection of unique ULWord (uint32_t) values.
virtual bool SetSecondaryVideoFormat(NTV2VideoFormat inFormat)
virtual bool GetSDIOutLevelAtoLevelBConversion(const UWord inOutputSpigot, bool &outIsEnabled)
Answers with the device's current 3G level A to 3G level B conversion setting for the given SDI outpu...
NTV2MixerKeyerInputControl
These enum values identify the Mixer/Keyer foreground and background input control values...
std::string NTV2VANCModeToString(const NTV2VANCMode inValue, const bool inCompactDisplay=false)
virtual bool Enable4KDCRGBMode(bool inEnable)
Sets 4K Down Convert RGB mode.
#define NTV2_IS_PSF_VIDEO_FORMAT(__f__)
NTV2RegWrites NTV2RegisterReads
ProgramState programState
ULWord registerShift
My register shift value to use in a ReadRegister or WriteRegister call.
virtual bool GetInputFrame(const NTV2Channel inChannel, ULWord &outValue)
Answers with the current input frame index number for the given FrameStore. This identifies which par...
virtual bool SetSDIOutputAudioSystem(const NTV2Channel inSDIOutputConnector, const NTV2AudioSystem inAudioSystem)
Sets the device's NTV2AudioSystem that will provide audio for the given SDI output's audio embedder...
NTV2Buffer mInRegInfos
NTV2RegInfo array of registers be read/written. The SDK owns this memory.
virtual bool GetMixerVancOutputFromForeground(const UWord inWhichMixer, bool &outIsFromForegroundSource)
Answers whether or not the VANC source for the given mixer/keyer is currently the foreground video...
#define NTV2_IS_3Gb_FORMAT(__f__)
virtual bool GetMixerFGInputControl(const UWord inWhichMixer, NTV2MixerKeyerInputControl &outInputControl)
Returns the current foreground input control value for the given mixer/keyer.
virtual bool GetSDIOutputDS2AudioSystem(const NTV2Channel inSDIOutputConnector, NTV2AudioSystem &outAudioSystem)
Answers with the device's Audio System that is currently providing audio for the given SDI output's a...
static const ULWord gChannelToSDIIn6GModeShift[]
virtual bool GetDisabledChannels(NTV2ChannelSet &outChannels)
Answers with the set of channels that are currently disabled.
virtual bool SetVANCShiftMode(NTV2Channel inChannel, NTV2VANCDataShiftMode inMode)
Enables or disables the "VANC Shift Mode" feature for the given channel.
virtual bool GetProgressivePicture(ULWord &outValue)
virtual bool SetMixerCoefficient(const UWord inWhichMixer, const ULWord inMixCoefficient)
Sets the current mix coefficient of the given mixer/keyer.
virtual bool GetAnalogLTCOutClockChannel(const UWord inLTCOutput, NTV2Channel &outChannel)
Answers with the (SDI) output channel that's providing the clock reference being used by the given de...
virtual bool SetTsiFrameEnable(const bool inIsEnabled, const NTV2Channel inChannel)
Enables or disables SMPTE 425 two-sample interleave (Tsi) frame mode on the device.
virtual bool GetNumberActiveLines(ULWord &outNumActiveLines)
Specifies channel or FrameStore 8 (or the 8th item).
Identifies SMPTE HD 2K1080p.
Specifies the PTP source on SFP 1.
#define HEXN(__x__, __n__)
static const ULWord gChannelToSDIIn3GModeShift[]
virtual NTV2VideoFormat GetReferenceVideoFormat(void)
Returns the video format of the signal that is present on the device's reference input.
virtual bool GetAnalogLTCInClockChannel(const UWord inLTCInput, NTV2Channel &outChannel)
Answers with the (SDI) input channel that's providing the clock reference being used by the given dev...
Specifies channel or FrameStore 2 (or the 2nd item).
virtual bool AbortMailBoxLock(void)
Specifies the PCR source on SFP 1.
True if frame buffer sizes are not fixed.
virtual bool GetQuadQuadFrameEnable(bool &outValue, const NTV2Channel inChannel=NTV2_CHANNEL1)
Returns the device's current "quad-quad" frame mode, whether it's enabled or not. ...
virtual bool GetEnable4KDCPSFInMode(bool &outIsEnabled)
This is used by the CNTV2Card::ReadRegisters function.
static NTV2WidgetID WidgetIDFromTypeAndChannel(const NTV2WidgetType inWidgetType, const NTV2Channel inChannel)
static const ULWord gChlToRP188Bits3263RegNum[]
Specifies the HDMI In 2 connector.
1920x1080, NTV2_VANCMODE_TALLER
720x486, for NTSC 525i, NTV2_VANCMODE_TALL
virtual bool SetDefaultVideoOutMode(ULWord mode)
virtual ULWord GetCRCErrorCountA(const NTV2Channel inChannel)
virtual bool GetRunningFirmwareTime(UWord &outHours, UWord &outMinutes, UWord &outSeconds)
Reports the (local Pacific) build time of the currently-running firmware.
virtual bool SetRegisterWriteMode(const NTV2RegisterWriteMode inValue, const NTV2Channel inFrameStore=NTV2_CHANNEL1)
Sets the FrameStore's NTV2RegisterWriteMode, which determines when CNTV2Card::SetInputFrame or CNTV2C...
ULWord NTV2DeviceGetNumberFrameBuffers(NTV2DeviceID id, NTV2FrameGeometry fg, NTV2FrameBufferFormat fbf)
static void SleepInMicroseconds(const int32_t inMicroseconds)
Suspends execution of the current thread for a given number of microseconds.
virtual bool SetMultiRasterBypassEnable(const bool inEnable)
#define NTV2_IS_VANCMODE_ON(__v__)
virtual bool GetDualLinkInputEnable(bool &outIsEnabled)
virtual bool GetSDIInput6GPresent(bool &outValue, const NTV2Channel channel)
virtual ULWord GetCRCErrorCountB(const NTV2Channel inChannel)
static const ULWord gChannelToSDIInputStatusRegNum[]
4096x2160, for 4K, NTV2_VANCMODE_OFF
virtual bool GetSDIOut3GbEnable(const NTV2Channel inChannel, bool &outIsEnabled)
Identifies the 4th SDI video input.
NTV2Framesize
Kona2/Xena2 specific enums.
Specifies the PCR source on SFP 2.
virtual bool GetPulldownMode(NTV2Channel inChannel, bool &outValue)
virtual bool GetMixerBGMatteEnabled(const UWord inWhichMixer, bool &outIsEnabled)
Answers if the given mixer/keyer's background matte is enabled or not.
virtual bool GetFramePulseReference(NTV2ReferenceSource &outRefSource)
Answers with the device's current frame pulse reference source.
NTV2FrameGeometry Get4xSizedGeometry(const NTV2FrameGeometry inGeometry)
virtual bool GetProgramStatus(SSC_GET_FIRMWARE_PROGRESS_STRUCT *statusStruct)
8192x4320, for 8K, NTV2_VANCMODE_OFF
virtual bool GetMixerRGBRange(const UWord inWhichMixer, NTV2MixerRGBRange &outRGBRange)
Answers with the given mixer/keyer's current RGB Range.
static const ULWord gChannelToSDIInput3GStatusRegNum[]
#define NTV2_IS_VALID_CHANNEL(__x__)
static const ULWord gChannelToSDIInputRateHighShift[]
virtual bool SetMixerVancOutputFromForeground(const UWord inWhichMixer, const bool inFromForegroundSource=(!(0)))
Sets the VANC source for the given mixer/keyer to the foreground video (or not). See the SDI Ancillar...
#define AJA_sERROR(_index_, _expr_)
virtual bool GetVideoDACMode(NTV2VideoDACMode &outValue)
Identifies SMPTE HD 1080i or 1080psf.
Identifies Ultra-High-Definition (UHD)
NTV2Mode
Used to identify the mode of a widget_framestore, or the direction of an AutoCirculate stream: either...
virtual bool SetVideoLimiting(const NTV2VideoLimiting inValue)
Sets the device's video range limiting mode.
Fractional rate of 30,000 frames per 1,001 seconds.
Identifies the "Legal SDI" mode (Ymax=0x3AC, Cmax=0x3C0)
virtual bool GetEnable4KDCRGBMode(bool &outIsEnabled)
NTV2InputSource
Identifies a specific video input source.
Identifies SMPTE SD 625i.
virtual bool GetDitherFor8BitInputs(const NTV2Channel inChannel, ULWord &outDither)
virtual bool SetVideoVOffset(const int inVOffset, const UWord inOutputSpigot=0)
Adjusts the vertical timing offset, in lines, for the given SDI output connector. ...
Identifies the 6th SDI video input.
virtual NTV2FrameRate GetSDIInputRate(const NTV2Channel channel)
True if device has a crosspoint connection ROM (New in SDK 17.0)
virtual bool EnableFramePulseReference(const bool inEnable)
Enables the device's frame pulse reference select.
virtual bool GetProgressiveTransport(void) const
2048x1080, for 2Kx1080p, NTV2_VANCMODE_OFF
True if device frame buffer size can be changed.
virtual bool SetForce64(ULWord force64)
bool NTV2DeviceIsDirectAddressable(const NTV2DeviceID inDeviceID)
virtual bool GetMultiRasterBypassEnable(bool &outEnabled)
void Clear(void)
Resets the struct to its initialized state.
virtual bool GetFrameBufferFormat(NTV2Channel inChannel, NTV2FrameBufferFormat &outValue)
Returns the current frame buffer format for the given FrameStore on the AJA device.
NTV2FrameGeometry
Identifies a particular video frame geometry.
720x576, for PAL 625i, NTV2_VANCMODE_OFF
virtual bool SetMixerFGInputControl(const UWord inWhichMixer, const NTV2MixerKeyerInputControl inInputControl)
Sets the foreground input control value for the given mixer/keyer.
virtual NTV2VideoFormat GetAnalogCompositeInputVideoFormat(void)
Returns the video format of the signal that is present on the device's composite video input...
std::set< NTV2Channel > NTV2ChannelSet
A set of distinct NTV2Channel values.
virtual bool SetVideoDACMode(NTV2VideoDACMode inValue)
virtual bool ProgramMainFlash(const std::string &filePath, const bool forceUpdate=(0), const bool quiet=(0))
The number of analog LTC inputs on the device.
virtual bool Get64BitAutodetect(ULWord *autodetect64)
virtual bool GetDualLinkOutputEnable(bool &outIsEnabled)
void Set(const ULWord inDBB=0xFFFFFFFF, const ULWord inLow=0xFFFFFFFF, const ULWord inHigh=0xFFFFFFFF)
Sets my fields from the given DBB, low and high ULWord components.
virtual bool GetRP188Mode(const NTV2Channel inChannel, NTV2_RP188Mode &outMode)
Returns the current RP188 mode – NTV2_RP188_INPUT or NTV2_RP188_OUTPUT – for the given channel...
#define NTV2_IS_QUAD_FRAME_FORMAT(__f__)
Identifies the 7th SDI video input.
virtual bool GetFrameGeometry(NTV2FrameGeometry &outValue, NTV2Channel inChannel=NTV2_CHANNEL1)
Declares numerous NTV2 utility functions.
virtual bool SetSDIWatchdogTimeout(const ULWord inValue)
Specifies the amount of time that must elapse before the watchdog timer times out.
static const ULWord sSDIXmitEnableMasks[]
virtual CNTV2VPID & SetVPID(const ULWord inData)
virtual bool GetReference(NTV2ReferenceSource &outRefSource)
Answers with the device's current clock reference source.
NTV2Buffer mOutBadRegIndexes
Array of UWords containing index numbers of the register writes that failed. The SDK owns this memory...
NTV2Standard Get4xSizedStandard(const NTV2Standard inGeometry, const bool bIs4k=false)
True if device supports 12G routing crosspoints.
bool NTV2DeviceGetVideoFormatFromState_Ex2(NTV2VideoFormat *pOutValue, const NTV2FrameRate inFrameRate, const NTV2FrameGeometry inFrameGeometry, const NTV2Standard inStandard, const ULWord inIsSMPTE372Enabled, const bool inIsProgressivePicture, const bool inIsSquareDivision)
virtual bool DisableChannels(const NTV2ChannelSet &inChannels)
Disables the given FrameStore(s).
Describes the horizontal and vertical size dimensions of a raster, bitmap, frame or image...
static const ULWord gChannelToRP188ModeGCRegisterNum[]
Specifies the SDI In 7 connector.
std::set< NTV2InputXptID > NTV2InputXptIDSet
A collection of distinct NTV2InputXptID values.
virtual bool SetSDIOutRGBLevelAConversion(const UWord inOutputSpigot, const bool inEnable)
Enables or disables an RGB-over-3G-level-A conversion at the SDI output widget (assuming the AJA devi...
virtual bool WriteVirtualData(const ULWord inTag, const void *inVirtualData, const ULWord inVirtualDataSize)
Writes the block of virtual data.
True if device can perform SDI error checking.
NTV2RegInfo GetRegInfo(const UWord inIndex0=0) const
virtual bool SetAnalogLTCInClockChannel(const UWord inLTCInput, const NTV2Channel inChannel)
Sets the (SDI) input channel that is to provide the clock reference to be used by the given analog LT...
True if the device can handle 4K/UHD video.
Specifies the PTP source on SFP 2.
The number of RS-422 serial ports on the device.
#define NTV2_IS_QUAD_QUAD_FORMAT(__f__)
virtual bool SetSDIOutLevelAtoLevelBConversion(const UWord inOutputSpigot, const bool inEnable)
Enables or disables 3G level A to 3G level B conversion at the SDI output widget (assuming the AJA de...
720x486, for NTSC 525i and 525p60, NTV2_VANCMODE_OFF
#define NTV2_IS_VANCMODE_TALL(__v__)
virtual bool WriteAnalogLTCOutput(const UWord inLTCOutput, const RP188_STRUCT &inRP188Data)
Writes the given timecode to the specified analog LTC output register.
static bool MakeRouteROMRegisters(NTV2RegReads &outROMRegisters)
Prepares an initialized, zeroed NTV2RegReads that's prepared to read all ROM registers from a device...
Identifies high frame-rate 4K.
static const ULWord gChannelToSDIIn12GModeMask[]
virtual bool GetSDIInLevelBtoLevelAConversion(const UWord inInputSpigot, bool &outIsEnabled)
Answers with the device's current 3G level B to 3G level A conversion setting for the given SDI input...
virtual bool WriteRegister(const ULWord inRegNum, const ULWord inValue, const ULWord inMask=0xFFFFFFFF, const ULWord inShift=0)
Updates or replaces all or part of the 32-bit contents of a specific register (real or virtual) on th...
virtual bool SetInputVideoSelect(NTV2InputVideoSelect inInputSelect)
virtual bool SetQuadQuadFrameEnable(const bool inValue, const NTV2Channel inChannel=NTV2_CHANNEL1)
Enables or disables "quad-quad" 8K frame mode on the device.
1: Standard/Retail: device configured by AJA ControlPanel, service/daemon, and driver.
#define NTV2_IS_QUAD_FRAME_GEOMETRY(geom)
virtual bool SetLTCEmbeddedOutEnable(const bool inNewValue)
virtual bool GetMixerMatteColor(const UWord inWhichMixer, YCbCr10BitPixel &outYCbCrValue)
Answers with the given mixer/keyer's current matte color value being used.
Specifies channel or FrameStore 1 (or the first item).
True if device can report its running (and not necessarily installed) firmware date.
virtual bool ReadOutputTimingControl(ULWord &outValue, const UWord inOutputSpigot=0)
Returns the current output timing control value for the given SDI output connector.
NTV2VideoLimiting
These enum values identify the available SDI video output limiting modes.
True if device supports Versal Adaptive SoC System Monitor.
static const ULWord gChannelToRXSDIStatusRegs[]
virtual bool SetAnalogOutHTiming(ULWord inValue)
virtual bool SetInputFrame(const NTV2Channel inChannel, const ULWord inValue)
Sets the input frame index number for the given FrameStore. This identifies which frame in device SDR...
#define NTV2_IS_TSI_FORMAT(__f__)
#define xHEX0N(__x__, __n__)
virtual bool SetEnableVANCData(const bool inVANCenabled, const bool inTallerVANC, const NTV2Standard inStandard, const NTV2FrameGeometry inGeometry, const NTV2Channel inChannel=NTV2_CHANNEL1)
NTV2VANCMode
These enum values identify the available VANC modes.
virtual bool SetSDIInLevelBtoLevelAConversion(const NTV2ChannelSet &inSDIInputs, const bool inEnable)
Enables or disables 3G level B to 3G level A conversion at the SDI input(s).
True if device supports frame pulse source independent of reference source.
virtual bool GetSDIInputIsProgressive(const NTV2Channel channel)
virtual bool SetDitherFor8BitInputs(const NTV2Channel inChannel, const ULWord inDither)
A convenience class that simplifies encoding or decoding the 4-byte VPID payload that can be read or ...
virtual bool Enable4KPSFOutMode(bool inEnable)
Sets 4K Down Convert PSF out Mode.
virtual bool GetFrameRate(NTV2FrameRate &outValue, NTV2Channel inChannel=NTV2_CHANNEL1)
Returns the AJA device's currently configured frame rate via its "value" parameter.
Identifies the 3rd HDMI video input.
std::string NTV2FrameBufferFormatToString(const NTV2FrameBufferFormat inValue, const bool inForRetailDisplay=false)
NTV2RegisterWriteMode
These values are used to determine when certain register writes actually take effect. See CNTV2Card::SetRegisterWriteMode or Field/Frame Interrupts.
virtual bool IsStandardMultiLink4320(void) const
virtual bool IsChannelEnabled(const NTV2Channel inChannel, bool &outEnabled)
Answers whether or not the given FrameStore is enabled.
std::string NTV2MixerKeyerModeToString(const NTV2MixerKeyerMode inValue, const bool inCompactDisplay=false)
virtual bool SetPulldownMode(NTV2Channel inChannel, bool inValue)
Declares the CNTV2KonaFlashProgram class.
virtual bool GetSDIWatchdogTimeout(ULWord &outValue)
Answers with the amount of time that must elapse before the watchdog timer times out.
Declares the CNTV2Card class.
virtual bool GetSDI2OutHTiming(ULWord *value)
virtual bool IsSDStandard(bool &outIsStandardDef, NTV2Channel inChannel=NTV2_CHANNEL1)
Specifies channel or FrameStore 4 (or the 4th item).
Input (capture) mode, which writes into device SDRAM.
virtual bool Get4kSquaresEnable(bool &outIsEnabled, const NTV2Channel inChannel)
Answers whether the FrameStore bank's current SMPTE 425 "4K squares" (i.e., "2K quadrants") mode is e...
static const ULWord gChannelToSDIInputProgressiveMask[]
std::multimap< NTV2InputXptID, NTV2OutputXptID > NTV2PossibleConnections
A map of zero or more one-to-many possible NTV2InputXptID to NTV2OutputXptID connections.
Specifies channel or FrameStore 5 (or the 5th item).
ULWord NTV2DeviceGetFrameBufferSize(NTV2DeviceID id, NTV2FrameGeometry fg, NTV2FrameBufferFormat fbf)
Identifies the first analog video input.
The version number of the HDMI chipset on the device.
NTV2Standard GetNTV2StandardFromVideoFormat(const NTV2VideoFormat inVideoFormat)
virtual bool GetLTCInputPresent(bool &outIsPresent, const UWord inLTCInputNdx=0)
Answers whether or not a valid analog LTC signal is being applied to the device's analog LTC input co...
virtual bool BankSelectWriteRegister(const NTV2RegInfo &inBankSelect, const NTV2RegInfo &inRegInfo)
Writes the given set of registers to the bank specified at position 0.
virtual bool SetSDIOutputDS2AudioSystem(const NTV2Channel inSDIOutputConnector, const NTV2AudioSystem inAudioSystem)
Sets the Audio System that will supply audio for the given SDI output's audio embedder for Data Strea...
NTV2FrameSize & Set(const ULWord w, const ULWord h)
virtual bool GetSDIRelayPosition(NTV2RelayState &outValue, const UWord inIndex0)
Answers if the bypass relays between connectors 1/2 or 3/4 are currently in bypass or routing the sig...
Specifies the HDMI In 4 connector.
static const ULWord gChannelToSDIInputGeometryShift[]
virtual bool SetQuadQuadSquaresEnable(const bool inValue, const NTV2Channel inChannel=NTV2_CHANNEL1)
Enables or disables quad-quad-frame (8K) squares mode on the device.
ULWord fLo
| BG 4 | Secs10 | BG 3 | Secs 1 | BG 2 | Frms10 | BG 1 | Frms 1 |
virtual bool GetFrameBufferQuality(NTV2Channel inChannel, NTV2FrameBufferQuality &outValue)
std::string NTV2OutputCrosspointIDToString(const NTV2OutputCrosspointID inValue, const bool inForRetailDisplay=false)
virtual bool GetNominalMinMaxHV(int &outNominalH, int &outMinH, int &outMaxH, int &outNominalV, int &outMinV, int &outMaxV)
virtual bool SetFrameBufferQuarterSizeMode(NTV2Channel inChannel, NTV2QuarterSizeExpandMode inValue)
std::string NTV2VideoLimitingToString(const NTV2VideoLimiting inValue, const bool inCompactDisplay=false)
virtual bool DisableRP188Bypass(const NTV2Channel inSDIOutput)
Configures the SDI output's embedder to embed SMPTE 12M timecode specified in calls to CNTV2Card::Set...
This is used by the CNTV2Card::ReadSDIStatistics function.
2048x1556, for 2Kx1556psf film format, NTV2_VANCMODE_TALL
static const ULWord gChannelToRP188ModeMasks[]
Specifies channel or FrameStore 6 (or the 6th item).
static const ULWord gChannelToSDIInputGeometryHighMask[]
#define NTV2_IS_VALID_VIDEOLIMITING(__v__)
#define NTV2_IS_VALID_VANCMODE(__v__)
virtual bool IsBufferSizeSetBySW(void)
defined(NTV2_DEPRECATE_17_2)
virtual bool GetFrameBufferQuarterSizeMode(NTV2Channel inChannel, NTV2QuarterSizeExpandMode &outValue)
std::vector< NTV2RegInfo > NTV2RegisterWrites
Specifies channel or FrameStore 7 (or the 7th item).
virtual bool SetRS422BaudRate(const NTV2Channel inSerialPort, const NTV2_RS422_BAUD_RATE inBaudRate)
Sets the baud rate of the specified RS422 serial port.
virtual NTV2VideoFormat GetVideoFormat(void) const
NTV2_RS422_BAUD_RATE
These enum values identify RS-422 serial port baud rate configuration.
virtual bool GetLTCInputEnable(bool &outIsEnabled)
Answers true if the device is currently configured to read analog LTC from the reference input connec...
NTV2RegWrites NTV2RegReads
An ordered sequence of zero or more NTV2RegInfo structs intended for ReadRegister.
virtual ULWord GetSDIUnlockCount(const NTV2Channel inChannel)
720x576, for PAL 625i, NTV2_VANCMODE_TALLER
virtual bool SetSDIOutputStandard(const UWord inOutputSpigot, const NTV2Standard inValue)
Sets the SDI output spigot's video standard.
static NTV2WidgetType WidgetIDToType(const NTV2WidgetID inWidgetID)
virtual bool GetTsiFrameEnable(bool &outIsEnabled, const NTV2Channel inChannel)
Returns the current SMPTE 425 two-sample-interleave frame mode on the device, whether it's enabled or...
Identifies the 1st SDI video input.
virtual bool GetSDIWatchdogStatus(NTV2RelayState &outValue)
Answers if the watchdog timer would put the SDI relays into NTV2_DEVICE_BYPASSED or NTV2_THROUGH_DEVI...
virtual bool GetAllWidgetOutputs(NTV2OutputXptIDSet &outOutputs)
Returns all my widget output crosspoints.
Identifies the NTV2AudioWidgetID enumerated type.
virtual bool SetFrameRate(NTV2FrameRate inNewValue, NTV2Channel inChannel=NTV2_CHANNEL1)
Sets the AJA device's frame rate.
NTV2Buffer mInRegInfos
Read-only array of NTV2RegInfo structs to be set. The SDK owns this memory.
static const ULWord gChannelToSDIIn3GbModeShift[]
virtual bool GetStandard(NTV2Standard &outValue, NTV2Channel inChannel=NTV2_CHANNEL1)
virtual bool SetVANCMode(const NTV2VANCMode inVancMode, const NTV2Channel inChannel=NTV2_CHANNEL1)
Sets the VANC mode for the given FrameStore.
virtual bool SetSDIOut12GEnable(const NTV2Channel inChannel, const bool inEnable)
True if device supports 8K video formats.
#define NTV2_IS_PROGRESSIVE_STANDARD(__s__)
virtual bool SetSDIRelayManualControl(const NTV2RelayState inValue, const UWord inIndex0)
Sets the state of the given connector pair relays to NTV2_DEVICE_BYPASSED (or NTV2_THROUGH_DEVICE if ...
#define NTV2_IS_VALID_NTV2FrameGeometry(__s__)
Specifies the SDI In 5 connector.
virtual bool GetVideoLimiting(NTV2VideoLimiting &outValue)
Answers with the current video range limiting mode for the device.
ULWord mOutNumFailures
The number of registers unsuccessfully written.
std::set< NTV2OutputXptID > NTV2OutputXptIDSet
A collection of distinct NTV2OutputXptID values.
virtual bool SetMixerFGMatteEnabled(const UWord inWhichMixer, const bool inIsEnabled)
Answers if the given mixer/keyer's foreground matte is enabled or not.
static bool GetWidgetInputs(const NTV2WidgetID inWidgetID, NTV2InputXptIDSet &outInputs)
Returns the input crosspoints known to be "owned" by the given widget.
ULWord fHi
| BG 8 | Hrs 10 | BG 7 | Hrs 1 | BG 6 | Mins10 | BG 5 | Mins 1 |
virtual bool IsValid(void) const
NTV2VideoFormat GetQuadSizedVideoFormat(const NTV2VideoFormat inVideoFormat, const bool isSquareDivision=true)
The number of SDI video inputs on the device.
virtual bool SetMixerRGBRange(const UWord inWhichMixer, const NTV2MixerRGBRange inRGBRange)
Sets the RGB range for the given mixer/keyer.
virtual bool GetSDIOut3GEnable(const NTV2Channel inChannel, bool &outIsEnabled)
virtual bool ReadVirtualData(const ULWord inTag, void *outVirtualData, const ULWord inVirtualDataSize)
Reads the block of virtual data for a specific tag.
static const ULWord gChannelToSmpte372Masks[]
static const ULWord gChannelToSmpte372RegisterNum[]
Declares device capability functions.
virtual bool IsRP188BypassEnabled(const NTV2Channel inSDIOutput, bool &outIsBypassEnabled)
Answers if the SDI output's RP-188 bypass mode is enabled or not.
#define NTV2_IS_VALID_NTV2FrameRate(__r__)
NTV2MixerKeyerMode
These enum values identify the mixer mode.
This identifies the mode in which there are no VANC lines in the frame buffer.
virtual bool GetRunningFirmwareDate(UWord &outYear, UWord &outMonth, UWord &outDay)
Reports the (local Pacific) build date of the currently-running firmware.
virtual bool GetRS422BaudRate(const NTV2Channel inSerialPort, NTV2_RS422_BAUD_RATE &outBaudRate)
Answers with the current baud rate of the specified RS422 serial port.
virtual bool GetPCIAccessFrame(const NTV2Channel inChannel, ULWord &outValue)
720x486, for NTSC 525i and 525p60, NTV2_VANCMODE_TALLER
Fractional rate of 24,000 frames per 1,001 seconds.
This is used by the CNTV2Card::WriteRegisters function.
Specifies channel or FrameStore 3 (or the 3rd item).
virtual bool ReadSDIStatistics(NTV2SDIInStatistics &outStats)
For devices that support it (see the NTV2DeviceCanDoSDIErrorChecks function in "ntv2devicefeatures.h"), this function fetches the SDI statistics for all SDI input spigots.
Input & output routed through device.
virtual bool GetMixerCoefficient(const UWord inWhichMixer, ULWord &outMixCoefficient)
Returns the current mix coefficient the given mixer/keyer.
virtual bool GetMode(const NTV2Channel inChannel, NTV2Mode &outValue)
Answers with the current NTV2Mode of the given FrameStore on the AJA device.
virtual bool GetSDIOut6GEnable(const NTV2Channel inChannel, bool &outIsEnabled)
virtual bool GetSDIOutRGBLevelAConversion(const UWord inOutputSpigot, bool &outIsEnabled)
Answers with the device's current RGB-over-3G-level-A conversion at the given SDI output spigot (assu...
static const ULWord gChannelToSDIInputGeometryHighShift[]
virtual bool GetRP188BypassSource(const NTV2Channel inSDIOutput, UWord &outSDIInput)
For the given SDI output that's in RP188 bypass mode (E-E), answers with the SDI input that's current...
virtual bool GetBaseAddress(NTV2Channel channel, ULWord **pBaseAddress)
virtual bool GetSmpte372(ULWord &outValue, NTV2Channel inChannel=NTV2_CHANNEL1)
Returns the device's current SMPTE-372 (dual-link) mode, whether it's enabled or not.
virtual bool SetFrameBufferOrientation(const NTV2Channel inChannel, const NTV2FBOrientation inValue)
Sets the frame buffer orientation for the given NTV2Channel.
NTV2FrameGeometry GetNTV2FrameGeometryFromVideoFormat(const NTV2VideoFormat inVideoFormat)
True if device can simultaneously handle different video formats on more than one SDI input or output...
virtual bool EnableChannel(const NTV2Channel inChannel)
Enables the given FrameStore.
virtual bool SetSDIOut3GbEnable(const NTV2Channel inChannel, const bool inEnable)