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) 187 #if !defined(NTV2_DEPRECATE_16_3) 197 #endif // !defined(NTV2_DEPRECATE_16_3) 204 bool ajaRetail(inIsRetail);
212 int hOffset(0), vOffset(0);
216 GetVideoHOffset(hOffset);
217 GetVideoVOffset(vOffset);
222 if (itms.find(
ULWord(value)) == itms.end())
244 SetStandard(inStandard, channel);
247 SetFrameGeometry(inFrameGeometry, ajaRetail, channel);
250 SetFrameRate(inFrameRate, channel);
261 SetQuadQuadFrameEnable(
false, channel);
262 Get4kSquaresEnable(squares, channel);
265 Set4kSquaresEnable(
true, channel);
269 SetQuadFrameEnable(
true, channel);
274 GetQuadQuadSquaresEnable(squares, channel);
277 SetQuadQuadSquaresEnable(
true, channel);
281 SetQuadQuadFrameEnable(
true, channel);
287 SetQuadFrameEnable(
false, channel);
288 SetQuadQuadFrameEnable(
false, channel);
289 if (!IsMultiFormatActive())
301 SetVideoHOffset(hOffset);
302 SetVideoVOffset(vOffset);
314 GetRegisterWriteMode(writeMode);
315 SetRegisterWriteMode(writeMode);
325 if (!SetVideoFormat(inVideoFormat, inIsAJARetail,
false, *it))
335 if (!IsMultiFormatActive () && !IsMultiRasterWidgetChannel(inChannel))
339 GetStandard (standard, inChannel);
342 GetFrameGeometry (frameGeometry, inChannel);
345 GetFrameRate (frameRate, inChannel);
348 GetSmpte372 (smpte372Enabled, inChannel);
350 ULWord progressivePicture;
351 GetProgressivePicture (progressivePicture);
353 bool isSquares =
false;
359 Get4kSquaresEnable(isSquares, inChannel);
372 return GetNTV2VideoFormat(frameRate, standard, isThreeG, inputGeometry, progressivePicture);
412 if (isThreeG && progressivePicture)
418 if (isThreeG && progressivePicture)
424 if (isThreeG && progressivePicture)
426 if (inputGeometry == 8)
431 else if (inputGeometry == 8)
599 if (GetVideoFormat(videoFormat))
616 int nominalH(0), minH(0), maxH(0), nominalV(0), minV(0), maxV(0), count(0);
617 ULWord timingValue(0), lineCount(0), lineCount2(0);
621 if (!GetNominalMinMaxHV(nominalH, minH, maxH, nominalV, minV, maxV))
626 nominalH = nominalH + hOffset;
628 nominalH = nominalH - hOffset;
633 else if (nominalH < minH)
636 if (!ReadOutputTimingControl(timingValue, inOutputSpigot))
645 if (
LWord((timingValue & 0x0000FFFF)) == nominalH)
647 if (((
LWord((timingValue & 0x0000FFFF)) + 1) == nominalH) )
651 timingValue &= 0xFFFF0000;
652 timingValue |=
ULWord(nominalH + 2);
653 WriteOutputTimingControl(timingValue, inOutputSpigot);
661 else if ( ((
LWord((timingValue & 0x0000FFFF)) -1) == nominalH ) )
665 timingValue &= 0xFFFF0000;
666 timingValue |=
ULWord(nominalH - 2);
667 WriteOutputTimingControl(timingValue, inOutputSpigot);
679 timingValue &= 0xFFFF0000;
680 timingValue |=
ULWord(nominalH);
682 return WriteOutputTimingControl(timingValue, inOutputSpigot);
688 int nominalH(0), minH(0), maxH(0), nominalV(0), minV(0), maxV(0);
691 if (!GetNominalMinMaxHV(nominalH, minH, maxH, nominalV, minV, maxV))
695 if (!ReadOutputTimingControl(timingValue, inOutputSpigot))
697 timingValue &= 0xFFFF;
701 outHOffset = int(timingValue) - nominalH;
703 outHOffset = nominalH - int(timingValue);
709 int nominalH(0), minH(0), maxH(0), nominalV(0), minV(0), maxV(0);
712 if (!GetNominalMinMaxHV(nominalH, minH, maxH, nominalV, minV, maxV))
717 nominalV = nominalV + vOffset;
719 nominalV = nominalV - vOffset;
724 else if (nominalV < minV)
728 if (!ReadOutputTimingControl(timingValue, inOutputSpigot))
730 timingValue &= 0x0000FFFF;
731 return WriteOutputTimingControl(timingValue |
ULWord(nominalV << 16), inOutputSpigot);
736 int nominalH(0), minH(0), maxH(0), nominalV(0), minV(0), maxV(0);
739 if (!GetNominalMinMaxHV(nominalH, minH, maxH, nominalV, minV, maxV))
743 if (!ReadOutputTimingControl(timingValue, inOutputSpigot))
745 timingValue = (timingValue >> 16);
749 outVOffset =
int(timingValue) - nominalV;
751 outVOffset = nominalV - int(timingValue);
755 #if !defined(NTV2_DEPRECATE_16_2) 758 outNumActiveLines = 0;
760 if (!GetStandard(st) || !GetVANCMode(vm))
769 outFrameDimensions.
Reset();
770 if (IsXilinxProgrammed() && GetStandard(st, inChannel) && GetVANCMode(vm, inChannel))
774 return outFrameDimensions.
IsValid();
781 if (!IsXilinxProgrammed() || !GetStandard(st, inChannel) || !GetVANCMode(vm, inChannel))
786 #endif // defined(NTV2_DEPRECATE_16_2) 793 if (IsMultiRasterWidgetChannel(inChannel))
795 if (!IsMultiFormatActive())
814 if (IsMultiRasterWidgetChannel(inChannel))
816 if (!IsMultiFormatActive())
821 bool quadFrameEnabled(
false);
822 status = GetQuadFrameEnable(quadFrameEnabled, inChannel);
823 if (status && quadFrameEnabled)
827 bool quadQuadFrameEnabled(
false);
828 status = GetQuadQuadFrameEnable(quadQuadFrameEnabled);
829 if(status && quadQuadFrameEnabled)
841 ULWord smpte372Enabled (0);
843 outIsProgressive =
false;
845 if (!IsMultiFormatActive())
848 if (GetStandard (standard, inChannel) && GetSmpte372 (smpte372Enabled, inChannel))
851 outIsProgressive =
true;
863 outIsStandardDef =
false;
865 if (!IsMultiFormatActive())
868 if (GetStandard (standard, inChannel))
871 outIsStandardDef =
true;
891 if (IsMultiRasterWidgetChannel(channel))
893 if (!IsMultiFormatActive())
895 else if (IS_CHANNEL_INVALID(channel))
905 bool status = GetFrameGeometry(oldGeometry, channel);
909 status = GetLargestFrameBufferFormatInUse(format);
916 newFrameStoreGeometry = newGeometry;
932 #if !defined(NTV2_DEPRECATE_17_2) 934 if ( GetFBSizeAndCountFromHW(_ulFrameBufferSize, _ulNumFrameBuffers) )
936 changeBufferSize =
false;
942 if ( changeBufferSize )
944 _ulFrameBufferSize = newFrameBufferSize;
957 if (IsMultiRasterWidgetChannel(inChannel))
962 if (!IsMultiFormatActive())
964 else if (IS_CHANNEL_INVALID(inChannel))
971 bool quadFrameEnabled(
false);
972 status = GetQuadFrameEnable(quadFrameEnabled, inChannel);
973 if (status && quadFrameEnabled)
977 bool quadQuadFrameEnabled(
false);
978 status = GetQuadQuadFrameEnable(quadQuadFrameEnabled);
979 if (status && quadQuadFrameEnabled)
991 const ULWord loValue (value & 0x7);
992 const ULWord hiValue ((value & 0x8) >> 3);
994 if (IsMultiRasterWidgetChannel(inChannel))
996 if (!IsMultiFormatActive ())
1008 ULWord returnVal1 (0), returnVal2 (0);
1010 if (IsMultiRasterWidgetChannel(inChannel))
1012 if (!IsMultiFormatActive())
1014 else if (IS_CHANNEL_INVALID(inChannel))
1020 outValue =
NTV2FrameRate((returnVal1 & 0x7) | ((returnVal2 & 0x1) << 3));
1031 if (IsMultiRasterWidgetChannel(inChannel))
1032 return inValue == 0;
1033 if (!IsMultiFormatActive())
1044 if (IsMultiRasterWidgetChannel(inChannel))
1045 {outValue = 0;
return true;}
1046 if (!IsMultiFormatActive())
1069 outValue = result1 ? returnVal : 0;
1080 if (IsMultiRasterWidgetChannel(inChannel))
1081 return inEnable ==
true;
1090 if (ok) ok = SetTsiFrameEnable(
true, inChannel);
1094 if(ok) ok = SetTsiFrameEnable(
true, inChannel);
1098 if(ok) ok = Set4kSquaresEnable(
true, inChannel);
1103 SetTsiFrameEnable(
false, inChannel);
1104 Set4kSquaresEnable(
false, inChannel);
1113 if (IsMultiRasterWidgetChannel(inChannel))
1118 if (!IsMultiFormatActive())
1138 if(ok) ok = SetQuadQuadSquaresEnable(
false, inChannel);
1141 if (!IsMultiFormatActive())
1197 bool quadEnabled (0);
1198 bool status2 (
true);
1199 bool s425Enabled (
false);
1200 bool status1 = Get4kSquaresEnable (quadEnabled, inChannel);
1202 status2 = GetTsiFrameEnable (s425Enabled, inChannel);
1204 outValue = (status1 & status2) ? ((quadEnabled | s425Enabled) ?
true :
false) :
false;
1228 if (IsMultiRasterWidgetChannel(inChannel))
1229 return inEnable ==
true;
1236 if (!IsMultiFormatActive())
1261 if (!IsMultiFormatActive())
1275 outIsEnabled =
false;
1276 if (IsMultiRasterWidgetChannel(inChannel))
1277 {outIsEnabled =
true;
return true;}
1280 ULWord squaresEnabled (0);
1288 outIsEnabled = (squaresEnabled ?
true :
false);
1301 if (IsMultiRasterWidgetChannel(inChannel))
1302 return enable ==
true;
1319 if (!IsMultiFormatActive())
1329 else if (!IsMultiFormatActive())
1358 if (!IsMultiFormatActive())
1367 else if (!IsMultiFormatActive())
1390 outIsEnabled =
false;
1393 if (IsMultiRasterWidgetChannel(inChannel))
1394 {outIsEnabled =
true;
return true;}
1399 bool returnVal(
false), readOkay(
false);
1403 readOkay = GetQuadQuadFrameEnable(returnVal, inChannel);
1419 outIsEnabled = readOkay ? returnVal : 0;
1426 outSyncFailed =
false;
1433 if (value & (1<<inWhichTsiMux))
1434 outSyncFailed =
true;
1440 ULWord standard(0), rate1(0), rate2(0), s372(0), geometry(0), format(0);
1449 if (!status)
return false;
1451 for (
int channel = inFirst; channel <= inLast; channel++)
1459 if (!status)
return false;
1471 SetLTCInputEnable(
false);
1474 EnableFramePulseReference(
false);
1478 ULWord refControl1 =
ULWord(inRefSource), refControl2 = 0, ptpControl = 0;
1479 switch (inRefSource)
1509 ULWord refControl2(0), ptpControl(0);
1584 outValue = returnValue == 0 ?
false :
true;
1610 { (
void) inIsRetail;
1611 if (IsMultiRasterWidgetChannel(inChannel))
1613 if (IS_CHANNEL_INVALID(inChannel))
1622 if (!SetMode(*it, inMode))
1629 if (IsMultiRasterWidgetChannel(inChannel))
1631 if (IS_CHANNEL_INVALID(inChannel))
1638 bool status = GetFrameGeometry(outGeometry);
1642 status = GetFrameBufferFormat(inChannel, outFBF);
1658 if (IsBufferSizeSetBySW())
1659 changeBufferSize =
false;
1661 return changeBufferSize;
1674 if (IsBufferSizeSetBySW())
1675 changeBufferSize =
false;
1677 return changeBufferSize;
1689 return swControl != 0;
1692 #if !defined(NTV2_DEPRECATE_17_2) 1693 bool CNTV2Card::GetFBSizeAndCountFromHW (
ULWord & outSize,
ULWord & outCount)
1695 if (!IsBufferSizeSetBySW())
1698 ULWord ch1Control(0), multiplier(0), sizeMultiplier(0);
1706 case 0: multiplier = 4;
1710 case BIT_20: multiplier = 2;
1714 case BIT_21: multiplier = 1;
1719 sizeMultiplier = 16;
1723 outSize = sizeMultiplier * 1024 * 1024;
1724 outCount = multiplier ? multiplier * DeviceGetNumberFrameBuffers() : DeviceGetNumberFrameBuffers() / 2;
1727 GetFrameGeometry(geometry);
1755 if (!GetFrameGeometry(geometry))
1760 if ( ch1FrameBufferSize >= ch2FrameBufferSize )
1767 bool CNTV2Card::IsMultiFormatActive (
void)
1781 outConnections.clear();
1787 && ReadRegisters(ROMregs)
1808 outInputs.insert(*it);
1831 outOutputs.insert(*it);
1844 { (
void) inIsRetailMode;
1846 if (IsMultiRasterWidgetChannel(inChannel))
1848 if (IS_CHANNEL_INVALID(inChannel))
1852 const ULWord loValue (inNewFormat & 0x0f);
1853 const ULWord hiValue ((inNewFormat & 0x10) >> 4);
1856 bool status = GetFrameInfo(inChannel, currentGeometry, currentFormat);
1864 #if !defined(NTV2_DEPRECATE_17_2) 1866 if ( !GetFBSizeAndCountFromHW(_ulFrameBufferSize, _ulNumFrameBuffers) &&
1867 IsBufferSizeChangeRequired(inChannel, currentGeometry, currentFormat, inNewFormat) )
1875 {
if (inNewFormat != currentFormat)
1876 CVIDINFO(
"'" << GetDisplayName() <<
"': Channel " <<
DEC(
UWord(inChannel)+1) <<
" FBF changed from " 1879 CVIDFAIL(
"'" << GetDisplayName() <<
"': Failed to change channel " <<
DEC(
UWord(inChannel)+1) <<
" FBF from " 1882 SetVPIDTransferCharacteristics(inXferChars, inChannel);
1883 SetVPIDColorimetry(inColorimetry, inChannel);
1884 SetVPIDLuminance(inLuminance, inChannel);
1890 const bool inIsAJARetail,
1897 if (!SetFrameBufferFormat (*it, inNewFormat, inIsAJARetail, inXferChars, inColorimetry, inLuminance))
1899 return failures == 0;
1907 if (IsMultiRasterWidgetChannel(inChannel))
1909 if (IS_CHANNEL_INVALID (inChannel))
1912 ULWord returnVal1, returnVal2;
1917 return result1 && result2;
1925 if (IS_CHANNEL_INVALID (channel))
1935 if (IS_CHANNEL_INVALID (inChannel))
1945 if (IS_CHANNEL_INVALID (channel))
1948 ULWord loValue = quality & 0x1;
1949 ULWord hiValue = (quality >> 1) & 0x3;
1959 if (IS_CHANNEL_INVALID (inChannel))
1963 ULWord loValue(0), hiValue(0);
1979 if (IS_CHANNEL_INVALID (channel))
1989 if (IS_CHANNEL_INVALID (inChannel))
1999 if (IsMultiRasterWidgetChannel(inChannel))
2001 if (IS_CHANNEL_INVALID(inChannel))
2011 if (IsMultiRasterWidgetChannel(inChannel))
2013 if (IS_CHANNEL_INVALID (inChannel))
2021 ULWord swCanChgFBSize(0);
2034 #if !defined(NTV2_DEPRECATE_17_2) 2035 return GetFBSizeAndCountFromHW(_ulFrameBufferSize, _ulNumFrameBuffers);
2036 #else//NTV2_DEPRECATE_17_2 2038 #endif//defined(NTV2_DEPRECATE_17_2) 2046 if (IS_CHANNEL_INVALID(inChannel))
2048 #if defined (NTV2_ALLOW_2MB_FRAMES) 2072 default:
return false;
2077 #endif // defined (NTV2_ALLOW_2MB_FRAMES) 2091 #if defined (NTV2_ALLOW_2MB_FRAMES) 2118 default:
return false;
2120 NTV2_ASSERT (NTV2_IS_8MB_OR_16MB_FRAMESIZE(outValue));
2124 #endif // defined (NTV2_ALLOW_2MB_FRAMES) 2131 if (IsMultiRasterWidgetChannel(inChannel))
2132 return SetMultiRasterBypassEnable(
false);
2140 {
UWord failures(0);
2142 if (!DisableChannel(*it))
2151 if (IsMultiRasterWidgetChannel(inChannel))
2152 return SetMultiRasterBypassEnable(
true);
2160 {
UWord failures(0);
2162 if (inChannels.find(chan) != inChannels.end())
2164 if (!EnableChannel(chan))
2167 else if (inDisableOthers)
2168 DisableChannel(chan);
2176 bool disabled (
false);
2177 if (IsMultiRasterWidgetChannel(inChannel))
2178 return GetMultiRasterBypassEnable(outEnabled);
2179 if (IS_CHANNEL_INVALID(inChannel))
2183 outEnabled = disabled ?
false :
true;
2191 bool enabled(
false);
2192 outChannels.clear();
2194 if (!IsChannelEnabled (ch, enabled))
2197 outChannels.insert(ch);
2205 bool enabled(
false);
2206 outChannels.clear();
2208 if (!IsChannelEnabled (ch, enabled))
2211 outChannels.insert(ch);
2215 #if !defined(NTV2_DEPRECATE_16_2) 2218 if (IS_CHANNEL_INVALID(inChannel))
2222 WaitForOutputVerticalInterrupt (inChannel);
2228 return !IS_CHANNEL_INVALID(inChannel)
2234 ULWord nextFrm(0), outFrm(0);
2235 return !IS_CHANNEL_INVALID(inCh)
2237 && GetOutputFrame(inCh, outFrm)
2238 && SetOutputFrame(inCh, nextFrm)
2241 #endif // !defined (NTV2_DEPRECATE_16_2) 2245 if (IsMultiRasterWidgetChannel(inChannel))
2247 if (IS_CHANNEL_INVALID(inChannel))
2254 if (IsMultiRasterWidgetChannel(inChannel))
2255 {outValue = 0;
return false;}
2256 if (IS_CHANNEL_INVALID(inChannel))
2263 if (IsMultiRasterWidgetChannel(inChannel))
2265 if (IS_CHANNEL_INVALID(inChannel))
2272 if (IsMultiRasterWidgetChannel(inChannel))
2274 if (IS_CHANNEL_INVALID(inChannel))
2290 ULWord programFlashValue(0);
2297 ULWord totalProgress = 0;
2308 #if !defined(NTV2_DEPRECATE_18_1) 2317 #if 0 // IP10G purge 2319 devFlasher.SetMBReset();
2322 progResults = devFlasher.
Program(
false);
2325 if (!progResults.empty())
2327 return progResults.empty();
2347 uint32_t regValue (0);
2351 outRevision = uint16_t((regValue & 0x0000FF00) >> 8);
2357 outYear = outMonth = outDay = 0;
2361 uint32_t regValue (0);
2365 const UWord yearBCD ((regValue & 0xFFFF0000) >> 16);
2366 const UWord monthBCD ((regValue & 0x0000FF00) >> 8);
2367 const UWord dayBCD (regValue & 0x000000FF);
2369 outYear = ((yearBCD & 0xF000) >> 12) * 1000
2370 + ((yearBCD & 0x0F00) >> 8) * 100
2371 + ((yearBCD & 0x00F0) >> 4) * 10
2372 + (yearBCD & 0x000F);
2374 outMonth = ((monthBCD & 0x00F0) >> 4) * 10 + (monthBCD & 0x000F);
2376 outDay = ((dayBCD & 0x00F0) >> 4) * 10 + (dayBCD & 0x000F);
2378 return outYear > 2010
2379 && outMonth > 0 && outMonth < 13
2380 && outDay > 0 && outDay < 32;
2386 outHours = outMinutes = outSeconds = 0;
2390 uint32_t regValue (0);
2394 const UWord hoursBCD ((regValue & 0x00FF0000) >> 16);
2395 const UWord minutesBCD ((regValue & 0x0000FF00) >> 8);
2396 const UWord secondsBCD (regValue & 0x000000FF);
2398 outHours = ((hoursBCD & 0x00F0) >> 4) * 10 + (hoursBCD & 0x000F);
2400 outMinutes = ((minutesBCD & 0x00F0) >> 4) * 10 + (minutesBCD & 0x000F);
2402 outSeconds = ((secondsBCD & 0x00F0) >> 4) * 10 + (secondsBCD & 0x000F);
2404 return outHours < 24 && outMinutes < 60 && outSeconds < 60;
2410 outDate = outTime = string();
2411 UWord yr(0), mo(0), dy(0),
hr(0), mn(0), sec(0);
2412 if (!GetRunningFirmwareDate (yr, mo, dy))
2414 if (!GetRunningFirmwareTime (
hr, mn, sec))
2417 ostringstream date, time;
2421 outDate = date.str();
2422 outTime = time.str();
2437 outUserID = regValue;
2447 if (IS_CHANNEL_INVALID(inFrameStore))
2449 if (IsMultiFormatActive())
2467 if (IS_CHANNEL_INVALID (inFrameStore))
2484 if (IS_CHANNEL_INVALID (inChannel))
2492 if (IS_CHANNEL_INVALID (inChannel))
2504 if (IS_CHANNEL_INVALID (inChannel))
2514 if (IS_CHANNEL_INVALID (inChannel))
2526 if (IS_CHANNEL_INVALID (inChannel))
2534 if (IS_CHANNEL_INVALID (inChannel))
2542 if (IS_CHANNEL_INVALID (inChannel))
2548 outIsBypassEnabled = regValue &
BIT(23);
2555 if (IS_CHANNEL_INVALID (inChannel))
2564 if (IS_CHANNEL_INVALID (inChannel))
2574 if (IS_CHANNEL_INVALID(inSDIOutput))
2583 if (IS_CHANNEL_INVALID(inSDIOutput))
2590 case 0: outSDIInput = inSDIOutput <
NTV2_CHANNEL5 ? 0 : 4;
break;
2591 case 2: outSDIInput = inSDIOutput <
NTV2_CHANNEL5 ? 1 : 5;
break;
2592 case 1: outSDIInput = inSDIOutput <
NTV2_CHANNEL5 ? 2 : 6;
break;
2593 case 3: outSDIInput = inSDIOutput <
NTV2_CHANNEL5 ? 3 : 7;
break;
2594 default:
return false;
2625 if (!SetVANCMode (inVancMode, *it))
2634 if (IsMultiRasterWidgetChannel(ch))
2636 if (IS_CHANNEL_INVALID(ch))
2643 GetStandard(st, ch);
2644 GetFrameGeometry(fg, ch);
2660 CVIDWARN(
"'taller' mode requested for 720p -- using 'tall' geometry instead");
2696 default:
return false;
2699 SetFrameGeometry (fg,
false, ch);
2712 { (
void) inStandard; (
void) inFrameGeometry;
2713 if (inTallerVANC && !inVANCenabled)
2721 bool isTall (
false);
2722 bool isTaller (
false);
2727 if (IsMultiRasterWidgetChannel(channel))
2731 if (IS_CHANNEL_INVALID (channel))
2734 GetStandard (standard, channel);
2735 GetFrameGeometry (frameGeometry, channel);
2780 #if defined (_DEBUG) 2783 default:
return false;
2793 if (IsMultiRasterWidgetChannel(inChannel))
2795 if (IS_CHANNEL_INVALID (inChannel))
2797 CVIDINFO(
"'" << GetDisplayName() <<
"' Ch" <<
DEC(inChannel+1) <<
": Vanc data shift " << (inValue ?
"enabled" :
"disabled"));
2806 if (!SetVANCShiftMode(*it, inMode))
2814 if (IsMultiRasterWidgetChannel(inChannel))
2816 if (IS_CHANNEL_INVALID (inChannel))
2824 if (IS_CHANNEL_INVALID (inChannel))
2833 if (IS_CHANNEL_INVALID (inChannel))
2837 outValue = value ?
true :
false;
2848 CVIDINFO(
"'" << GetDisplayName() <<
"' Mixer" <<
DEC(inWhichMixer+1) <<
": Vanc from " << (inFromForegroundSource ?
"FG" :
"BG"));
2861 outIsFromForegroundSource = value ?
true :
false;
2939 CVIDINFO(
"'" << GetDisplayName() <<
"' Mixer" <<
DEC(inWhichMixer+1) <<
": mixCoeff=" <<
xHEX0N(inMixCoefficient,8));
2946 outMixCoefficient = 0;
2958 bool syncFail (
false);
2961 outIsSyncOK = syncFail ?
false :
true;
2967 outIsEnabled =
false;
2982 outIsEnabled =
false;
3000 outYCbCrValue.
cb = outYCbCrValue.
y = outYCbCrValue.
cr = 0;
3006 outYCbCrValue.
cb = packedValue & 0x03FF;
3007 outYCbCrValue.
y = ((packedValue >> 10) & 0x03FF) + 0x0040;
3008 outYCbCrValue.
cr = (packedValue >> 20) & 0x03FF;
3018 if (ycbcrPixel.
y < 0x40)
3021 ycbcrPixel.
y -= 0x40;
3022 ycbcrPixel.
y &= 0x3FF;
3023 ycbcrPixel.
cb &= 0x3FF;
3024 ycbcrPixel.
cr &= 0x3FF;
3028 CVIDINFO(
"'" << GetDisplayName() <<
"' Mixer" <<
DEC(inWhichMixer+1) <<
": set to YCbCr=" <<
DEC(ycbcrPixel.
y)
3029 <<
"|" <<
DEC(ycbcrPixel.
cb) <<
"|" <<
DEC(ycbcrPixel.
cr) <<
":" <<
HEXN(ycbcrPixel.
y,3) <<
"|" 3030 <<
HEXN(ycbcrPixel.
cb,3) <<
"|" <<
HEXN(ycbcrPixel.
cr,3) <<
", write " <<
xHEX0N(packedValue,8)
3039 outIsSupported =
false;
3064 #if !defined(NTV2_DEPRECATE_16_0) 3070 if (IS_CHANNEL_INVALID(channel))
3075 if (ulFrame > GetNumFrameBuffers())
3080 if (!_pFrameBaseAddress)
3081 if (!MapFrameBuffers())
3083 *pBaseAddress = _pFrameBaseAddress + ((ulFrame * _ulFrameBufferSize) /
sizeof(
ULWord));
3087 if (!_pCh1FrameBaseAddress)
3088 if (!MapFrameBuffers())
3090 *pBaseAddress = (channel ==
NTV2_CHANNEL1) ? _pCh1FrameBaseAddress : _pCh2FrameBaseAddress;
3100 if (!_pFrameBaseAddress)
3101 if (!MapFrameBuffers())
3103 *pBaseAddress = _pFrameBaseAddress;
3112 if (!_pRegisterBaseAddress)
3113 if (!MapRegisters())
3116 if ((regNumber*4) >= _pRegisterBaseAddressLength)
3119 *pBaseAddress = _pRegisterBaseAddress + regNumber;
3127 if (!_pXena2FlashBaseAddress)
3128 if (!MapXena2Flash())
3130 *pXena2FlashAddress = _pXena2FlashBaseAddress;
3133 #endif // !defined(NTV2_DEPRECATE_16_0) 3142 outIsEnabled =
false;
3155 outIsEnabled =
false;
3164 if (IS_CHANNEL_INVALID(inChannel))
3171 if (IS_CHANNEL_INVALID(inChannel))
3193 if (IS_OUTPUT_SPIGOT_INVALID(inOutputSpigot))
3197 bool is2Kx1080(
false);
3237 && SetSDIOut2Kx1080Enable(
NTV2Channel(inOutputSpigot), is2Kx1080);
3244 if (!SetSDIOutputStandard(*it, inValue))
3251 if (IS_OUTPUT_SPIGOT_INVALID(inOutputSpigot))
3253 bool is2kx1080(
false);
3258 && GetSDIOut2Kx1080Enable(
NTV2Channel(inOutputSpigot), is2kx1080)
3259 && GetSDIOut6GEnable(
NTV2Channel(inOutputSpigot), is6G)
3260 && GetSDIOut12GEnable(
NTV2Channel(inOutputSpigot), is12G));
3284 if (IS_OUTPUT_SPIGOT_INVALID(inOutputSpigot))
3286 if (IsMultiFormatActive())
3317 if (IS_OUTPUT_SPIGOT_INVALID (inOutputSpigot))
3341 #if !defined(R2_DEPRECATE) 3353 #endif // R2_DEPRECATE 3379 ULWord vpidDS1(0), vpidDS2(0);
3381 if (IS_CHANNEL_INVALID(inChannel))
3384 bool isValidVPID (GetVPIDValidA(inChannel));
3387 ReadSDIInVPID(inChannel, vpidDS1, vpidDS2);
3389 isValidVPID = inputVPID.
IsValid();
3394 bool isProgressiveTrans (isValidVPID ? inputVPID.
GetProgressiveTransport() : GetSDIInputIsProgressive(inChannel));
3396 bool isInput3G (
false);
3406 if (canDo3GIn || canDo12GIn)
3408 GetSDIInput3GPresent(isInput3G, inChannel);
3409 NTV2VideoFormat format = isValidVPID ? inputVPID.
GetVideoFormat() : GetNTV2VideoFormat(inputRate, inputGeometry, isProgressiveTrans, isInput3G, isProgressivePic);
3413 isProgressiveTrans = GetSDIInputIsProgressive(inChannel);
3414 isProgressivePic = inIsProgressivePicture;
3415 format = GetNTV2VideoFormat(inputRate, inputGeometry, isProgressiveTrans, isInput3G, isProgressivePic);
3419 bool is6G(
false), is12G(
false);
3420 GetSDIInput6GPresent(is6G, inChannel);
3421 GetSDIInput12GPresent(is12G, inChannel);
3440 return GetNTV2VideoFormat(inputRate, inputGeometry, isProgressiveTrans, isInput3G, isProgressivePic);
3451 if (GetHDMIInputStatus(status, inChannel))
3456 if(hdmiVersion == 1)
3473 else if(hdmiVersion > 1)
3475 bool squareDivision = hdmiVersion == 5 ?
false :
true;
3478 UByte inputGeometry = 0;
3481 format = GetNTV2VideoFormat (hdmiRate, hdmiStandard,
false, inputGeometry,
false, squareDivision);
3542 return GetNTV2VideoFormat (
NTV2FrameRate((status >> 16) & 0xF),
3543 ((status >> 20) & 0x7),
3544 (status &
BIT_23) ?
true :
false,
3551 if (IS_CHANNEL_INVALID (channel))
3554 ULWord rateLow (0), rateHigh (0);
3568 if (IS_CHANNEL_INVALID (channel))
3571 ULWord geometryLow (0), geometryHigh (0);
3585 if (IS_CHANNEL_INVALID (channel))
3588 ULWord isProgressive = 0;
3590 return isProgressive ?
true :
false;
3595 if (IS_CHANNEL_INVALID (channel))
3600 outValue = static_cast <
bool> (value);
3607 if (IS_CHANNEL_INVALID (channel))
3612 outValue = static_cast <
bool> (value);
3619 if (IS_CHANNEL_INVALID (channel))
3624 outValue = static_cast <
bool> (value);
3631 if (IS_CHANNEL_INVALID (channel))
3636 outValue = static_cast <
bool> (value);
3645 inEnable = !inEnable;
3655 outIsEnabled = !outIsEnabled;
3674 #if !defined(NTV2_DEPRECATE_16_3) 3684 #endif // !defined(NTV2_DEPRECATE_16_3) 3689 if (!ReadAnalogLTCInput(inLTCInput, result))
3691 outRP188Data = result;
3704 outRP188Data.
fDBB = 0;
3705 return ReadRegister(regLo, outRP188Data.
fLo) && ReadRegister(regHi, outRP188Data.
fHi);
3726 if (IS_CHANNEL_INVALID(inChannel))
3735 return WriteAnalogLTCOutput (inLTCOutput, rp188data);
3755 bool isMultiFormat(
false);
3756 if (!GetMultiFormatMode(isMultiFormat))
3771 if (IS_CHANNEL_INVALID (inChannel))
3773 bool isMultiFormat(
false);
3774 if (!GetMultiFormatMode(isMultiFormat))
3789 if (IS_CHANNEL_INVALID(inChannel))
3803 if (!SetSDITransmitEnable(*it, inEnable))
3810 if (IS_CHANNEL_INVALID(inChannel))
3815 {outIsEnabled =
true;
return true;}
3822 outXmitSDIs.clear();
3827 if (!biDirectionalSDI || (GetSDITransmitEnable(ch, isXmit) && isXmit))
3828 outXmitSDIs.insert(ch);
3835 if (IS_CHANNEL_INVALID (inChannel))
3842 if (IS_CHANNEL_INVALID (inChannel))
3849 if (IS_CHANNEL_INVALID(inChannel))
3856 if (IS_CHANNEL_INVALID(inChannel))
3864 if (IS_CHANNEL_INVALID(inChannel))
3871 if (IS_CHANNEL_INVALID(inChannel))
3878 if (IS_CHANNEL_INVALID(inChannel))
3888 if (IS_CHANNEL_INVALID(inChannel))
3890 bool is6G(
false), is12G(
false);
3895 outIsEnabled =
true;
3897 outIsEnabled =
false;
3903 if (IS_CHANNEL_INVALID(inChannel))
3913 if (IS_CHANNEL_INVALID(inChannel))
3964 size_t numFailures(0);
3965 for (NTV2ChannelSet::const_iterator it(inSDIOutputs.begin()); it != inSDIOutputs.end(); ++it)
3966 if (!(inDS2 ? SetSDIOutputDS2AudioSystem(*it, inAudioSystem) : SetSDIOutputAudioSystem(*it, inAudioSystem)))
3968 return numFailures == 0;
4100 outValue = statusBit ?
true :
false;
4138 outIsEnabled = static_cast <
bool> (tempVal);
4151 outIsEnabled = static_cast <
bool> (tempVal);
4164 outIsEnabled = static_cast <
bool> (tempVal);
4177 outIsEnabled = static_cast <
bool> (tempVal);
4186 if (IS_CHANNEL_INVALID(inChannel))
4190 return value ?
true :
false;
4197 if (IS_CHANNEL_INVALID(inChannel))
4201 return value ?
true :
false;
4208 if (IS_CHANNEL_INVALID(inChannel))
4219 if (IS_CHANNEL_INVALID(inChannel))
4230 if (IS_CHANNEL_INVALID(inChannel))
4241 if (IS_INPUT_SPIGOT_INVALID (inInputSpigot))
4244 ULWord regNum, mask, shift;
4245 switch (inInputSpigot)
4255 default:
return false;
4257 return WriteRegister(regNum, inEnable, mask, shift);
4264 if (!SetSDIInLevelBtoLevelAConversion(*it, inEnable))
4273 if (IS_INPUT_SPIGOT_INVALID (inInputSpigot))
4276 ULWord regNum, mask, shift;
4277 switch (inInputSpigot)
4287 default:
return false;
4296 if (IS_OUTPUT_SPIGOT_INVALID(inOutputSpigot))
4306 if (!SetSDIOutLevelAtoLevelBConversion(*it, inEnable))
4315 if (IS_OUTPUT_SPIGOT_INVALID (inOutputSpigot))
4320 outEnable = static_cast <
bool> (tempVal);
4328 if (IS_OUTPUT_SPIGOT_INVALID (inOutputSpigot))
4338 if (!SetSDIOutRGBLevelAConversion(*it, inEnable))
4347 if (IS_OUTPUT_SPIGOT_INVALID (inOutputSpigot))
4352 outEnable = static_cast <
bool> (tempVal);
4394 default:
return false;
4436 #if !defined(_DEBUG) 4460 default:
return false;
4498 UWord dieTempRaw (rawRegValue & 0x0000FFFF);
4499 celsius = double (dieTempRaw) / 128.0;
4503 UWord dieTempRaw ((rawRegValue & 0x0000FFFF) >> 6);
4504 celsius = (double (dieTempRaw) * 503.975 / 1024.0 - 273.15);
4506 switch (inTempScale)
4512 default:
return false;
4526 const UWord coreVoltageRaw ((rawRegValue>>22) & 0x00003FF);
4527 const double coreVoltageFloat (
double(coreVoltageRaw)/ 1024.0 * 3.0);
4528 outVoltage = coreVoltageFloat;
4532 #if defined(READREGMULTICHANGE) 4538 if (inRegisters.empty())
4542 if (NTV2Message(getRegsParams))
4544 if (!getRegsParams.GetRegisterValues(outValues))
4552 if (ReadRegister (*iter, tempVal))
4553 outValues[*iter] = tempVal;
4555 return outValues.size() == inRegisters.size();
4557 #endif // !defined(READREGMULTICHANGE) 4564 if (inRegWrites.empty())
4570 result = NTV2Message(setRegsParams);
4577 if (!WriteRegister(pRegInfos[ndx].registerNumber, pRegInfos[ndx].registerValue, pRegInfos[ndx].registerMask, pRegInfos[ndx].registerShift))
4583 if (!result)
CVIDFAIL(
"Failed: setRegsParams: " << setRegsParams);
4591 if (!NTV2Message(bankSelGetSetMsg))
4602 if (!NTV2Message(bankSelGetSetMsg))
4607 inOutRegInfo = bankSelGetSetMsg.
GetRegInfo();
4613 NTV2VirtualData virtualDataMsg (inTag, inVirtualData, inVirtualDataSize,
true);
4615 return NTV2Message(virtualDataMsg);
4620 NTV2VirtualData virtualDataMsg (inTag, outVirtualData, inVirtualDataSize,
false);
4622 return NTV2Message(virtualDataMsg);
4632 if (!NTV2Message(reinterpret_cast<NTV2_HEADER*>(&outStats)))
4636 for (
size_t sdi(0); sdi < numSDIInputs; sdi++)
4637 for (
ULWord reg(0); reg < 6; reg++)
4642 if (!ReadRegisters(sdiStatRegInfos))
4645 for (
size_t sdi(0); sdi < numSDIInputs; sdi++)
4648 size_t ndx(sdi*6 + 0);
4657 regInfo = sdiStatRegInfos.at(ndx+1);
4678 if (!HasMultiRasterWidget())
4680 NTV2ULWordVector regs; regs.push_back(0); regs.push_back(0); regs.push_back(0); regs.push_back(0);
4704 #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)
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.
virtual bool ReadRegisters(NTV2RegisterReads &inOutValues)
Reads the register(s) specified by the given NTV2RegInfo sequence.
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)