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);
657 ReadLineCount (lineCount);
660 ReadLineCount (lineCount2);
661 if (count > 1000000)
return false;
663 }
while (lineCount == lineCount2);
668 else if ( ((
LWord((timingValue & 0x0000FFFF)) -1) == nominalH ) )
672 timingValue &= 0xFFFF0000;
673 timingValue |=
ULWord(nominalH - 2);
674 WriteOutputTimingControl(timingValue, inOutputSpigot);
678 ReadLineCount (lineCount);
681 ReadLineCount (lineCount2);
682 if (count > 1000000)
return false;
684 }
while (lineCount == lineCount2);
693 timingValue &= 0xFFFF0000;
694 timingValue |=
ULWord(nominalH);
696 return WriteOutputTimingControl(timingValue, inOutputSpigot);
702 int nominalH(0), minH(0), maxH(0), nominalV(0), minV(0), maxV(0);
705 if (!GetNominalMinMaxHV(nominalH, minH, maxH, nominalV, minV, maxV))
709 if (!ReadOutputTimingControl(timingValue, inOutputSpigot))
711 timingValue &= 0xFFFF;
715 outHOffset = int(timingValue) - nominalH;
717 outHOffset = nominalH - int(timingValue);
723 int nominalH(0), minH(0), maxH(0), nominalV(0), minV(0), maxV(0);
726 if (!GetNominalMinMaxHV(nominalH, minH, maxH, nominalV, minV, maxV))
731 nominalV = nominalV + vOffset;
733 nominalV = nominalV - vOffset;
738 else if (nominalV < minV)
742 if (!ReadOutputTimingControl(timingValue, inOutputSpigot))
744 timingValue &= 0x0000FFFF;
745 return WriteOutputTimingControl(timingValue |
ULWord(nominalV << 16), inOutputSpigot);
750 int nominalH(0), minH(0), maxH(0), nominalV(0), minV(0), maxV(0);
753 if (!GetNominalMinMaxHV(nominalH, minH, maxH, nominalV, minV, maxV))
757 if (!ReadOutputTimingControl(timingValue, inOutputSpigot))
759 timingValue = (timingValue >> 16);
763 outVOffset =
int(timingValue) - nominalV;
765 outVOffset = nominalV - int(timingValue);
769 #if !defined(NTV2_DEPRECATE_16_2) 772 outNumActiveLines = 0;
774 if (!GetStandard(st) || !GetVANCMode(vm))
783 outFrameDimensions.
Reset();
784 if (IsXilinxProgrammed() && GetStandard(st, inChannel) && GetVANCMode(vm, inChannel))
788 return outFrameDimensions.
IsValid();
795 if (!IsXilinxProgrammed() || !GetStandard(st, inChannel) || !GetVANCMode(vm, inChannel))
800 #endif // defined(NTV2_DEPRECATE_16_2) 807 if (IsMultiRasterWidgetChannel(inChannel))
809 if (!IsMultiFormatActive())
828 if (IsMultiRasterWidgetChannel(inChannel))
830 if (!IsMultiFormatActive())
835 bool quadFrameEnabled(
false);
836 status = GetQuadFrameEnable(quadFrameEnabled, inChannel);
837 if (status && quadFrameEnabled)
841 bool quadQuadFrameEnabled(
false);
842 status = GetQuadQuadFrameEnable(quadQuadFrameEnabled);
843 if(status && quadQuadFrameEnabled)
855 ULWord smpte372Enabled (0);
857 outIsProgressive =
false;
859 if (!IsMultiFormatActive())
862 if (GetStandard (standard, inChannel) && GetSmpte372 (smpte372Enabled, inChannel))
865 outIsProgressive =
true;
877 outIsStandardDef =
false;
879 if (!IsMultiFormatActive())
882 if (GetStandard (standard, inChannel))
885 outIsStandardDef =
true;
905 if (IsMultiRasterWidgetChannel(channel))
907 if (!IsMultiFormatActive())
909 else if (IS_CHANNEL_INVALID(channel))
919 bool status = GetFrameGeometry(oldGeometry, channel);
923 status = GetLargestFrameBufferFormatInUse(format);
930 newFrameStoreGeometry = newGeometry;
946 #if !defined(NTV2_DEPRECATE_17_2) 948 if ( GetFBSizeAndCountFromHW(_ulFrameBufferSize, _ulNumFrameBuffers) )
950 changeBufferSize =
false;
956 if ( changeBufferSize )
958 _ulFrameBufferSize = newFrameBufferSize;
971 if (IsMultiRasterWidgetChannel(inChannel))
976 if (!IsMultiFormatActive())
978 else if (IS_CHANNEL_INVALID(inChannel))
985 bool quadFrameEnabled(
false);
986 status = GetQuadFrameEnable(quadFrameEnabled, inChannel);
987 if (status && quadFrameEnabled)
991 bool quadQuadFrameEnabled(
false);
992 status = GetQuadQuadFrameEnable(quadQuadFrameEnabled);
993 if (status && quadQuadFrameEnabled)
1005 const ULWord loValue (value & 0x7);
1006 const ULWord hiValue ((value & 0x8) >> 3);
1008 if (IsMultiRasterWidgetChannel(inChannel))
1010 if (!IsMultiFormatActive ())
1022 ULWord returnVal1 (0), returnVal2 (0);
1024 if (IsMultiRasterWidgetChannel(inChannel))
1026 if (!IsMultiFormatActive())
1028 else if (IS_CHANNEL_INVALID(inChannel))
1034 outValue =
NTV2FrameRate((returnVal1 & 0x7) | ((returnVal2 & 0x1) << 3));
1045 if (IsMultiRasterWidgetChannel(inChannel))
1046 return inValue == 0;
1047 if (!IsMultiFormatActive())
1058 if (IsMultiRasterWidgetChannel(inChannel))
1059 {outValue = 0;
return true;}
1060 if (!IsMultiFormatActive())
1083 outValue = result1 ? returnVal : 0;
1094 if (IsMultiRasterWidgetChannel(inChannel))
1095 return inEnable ==
true;
1104 if (ok) ok = SetTsiFrameEnable(
true, inChannel);
1108 if(ok) ok = SetTsiFrameEnable(
true, inChannel);
1112 if(ok) ok = Set4kSquaresEnable(
true, inChannel);
1117 SetTsiFrameEnable(
false, inChannel);
1118 Set4kSquaresEnable(
false, inChannel);
1127 if (IsMultiRasterWidgetChannel(inChannel))
1132 if (!IsMultiFormatActive())
1152 if(ok) ok = SetQuadQuadSquaresEnable(
false, inChannel);
1155 if (!IsMultiFormatActive())
1211 bool quadEnabled (0);
1212 bool status2 (
true);
1213 bool s425Enabled (
false);
1214 bool status1 = Get4kSquaresEnable (quadEnabled, inChannel);
1216 status2 = GetTsiFrameEnable (s425Enabled, inChannel);
1218 outValue = (status1 & status2) ? ((quadEnabled | s425Enabled) ?
true :
false) :
false;
1242 if (IsMultiRasterWidgetChannel(inChannel))
1243 return inEnable ==
true;
1250 if (!IsMultiFormatActive())
1275 if (!IsMultiFormatActive())
1289 outIsEnabled =
false;
1290 if (IsMultiRasterWidgetChannel(inChannel))
1291 {outIsEnabled =
true;
return true;}
1294 ULWord squaresEnabled (0);
1302 outIsEnabled = (squaresEnabled ?
true :
false);
1315 if (IsMultiRasterWidgetChannel(inChannel))
1316 return enable ==
true;
1333 if (!IsMultiFormatActive())
1343 else if (!IsMultiFormatActive())
1372 if (!IsMultiFormatActive())
1381 else if (!IsMultiFormatActive())
1404 outIsEnabled =
false;
1407 if (IsMultiRasterWidgetChannel(inChannel))
1408 {outIsEnabled =
true;
return true;}
1413 bool returnVal(
false), readOkay(
false);
1417 readOkay = GetQuadQuadFrameEnable(returnVal, inChannel);
1433 outIsEnabled = readOkay ? returnVal : 0;
1440 outSyncFailed =
false;
1447 if (value & (1<<inWhichTsiMux))
1448 outSyncFailed =
true;
1454 ULWord standard(0), rate1(0), rate2(0), s372(0), geometry(0), format(0);
1463 if (!status)
return false;
1465 for (
int channel = inFirst; channel <= inLast; channel++)
1473 if (!status)
return false;
1485 SetLTCInputEnable(
false);
1488 EnableFramePulseReference(
false);
1492 ULWord refControl1 =
ULWord(inRefSource), refControl2 = 0, ptpControl = 0;
1493 switch (inRefSource)
1523 ULWord refControl2(0), ptpControl(0);
1598 outValue = returnValue == 0 ?
false :
true;
1624 { (
void) inIsRetail;
1625 if (IsMultiRasterWidgetChannel(inChannel))
1627 if (IS_CHANNEL_INVALID(inChannel))
1636 if (!SetMode(*it, inMode))
1643 if (IsMultiRasterWidgetChannel(inChannel))
1645 if (IS_CHANNEL_INVALID(inChannel))
1652 bool status = GetFrameGeometry(outGeometry);
1656 status = GetFrameBufferFormat(inChannel, outFBF);
1672 if (IsBufferSizeSetBySW())
1673 changeBufferSize =
false;
1675 return changeBufferSize;
1688 if (IsBufferSizeSetBySW())
1689 changeBufferSize =
false;
1691 return changeBufferSize;
1703 return swControl != 0;
1706 #if !defined(NTV2_DEPRECATE_17_2) 1707 bool CNTV2Card::GetFBSizeAndCountFromHW (
ULWord & outSize,
ULWord & outCount)
1709 if (!IsBufferSizeSetBySW())
1712 ULWord ch1Control(0), multiplier(0), sizeMultiplier(0);
1720 case 0: multiplier = 4;
1724 case BIT_20: multiplier = 2;
1728 case BIT_21: multiplier = 1;
1733 sizeMultiplier = 16;
1737 outSize = sizeMultiplier * 1024 * 1024;
1738 outCount = multiplier ? multiplier * DeviceGetNumberFrameBuffers() : DeviceGetNumberFrameBuffers() / 2;
1741 GetFrameGeometry(geometry);
1769 if (!GetFrameGeometry(geometry))
1774 if ( ch1FrameBufferSize >= ch2FrameBufferSize )
1781 bool CNTV2Card::IsMultiFormatActive (
void)
1795 outConnections.clear();
1801 && ReadRegisters(ROMregs)
1822 outInputs.insert(*it);
1845 outOutputs.insert(*it);
1858 { (
void) inIsRetailMode;
1860 if (IsMultiRasterWidgetChannel(inChannel))
1862 if (IS_CHANNEL_INVALID(inChannel))
1866 const ULWord loValue (inNewFormat & 0x0f);
1867 const ULWord hiValue ((inNewFormat & 0x10) >> 4);
1870 bool status = GetFrameInfo(inChannel, currentGeometry, currentFormat);
1878 #if !defined(NTV2_DEPRECATE_17_2) 1880 if ( !GetFBSizeAndCountFromHW(_ulFrameBufferSize, _ulNumFrameBuffers) &&
1881 IsBufferSizeChangeRequired(inChannel, currentGeometry, currentFormat, inNewFormat) )
1889 {
if (inNewFormat != currentFormat)
1890 CVIDINFO(
"'" << GetDisplayName() <<
"': Channel " <<
DEC(
UWord(inChannel)+1) <<
" FBF changed from " 1893 CVIDFAIL(
"'" << GetDisplayName() <<
"': Failed to change channel " <<
DEC(
UWord(inChannel)+1) <<
" FBF from " 1896 SetVPIDTransferCharacteristics(inXferChars, inChannel);
1897 SetVPIDColorimetry(inColorimetry, inChannel);
1898 SetVPIDLuminance(inLuminance, inChannel);
1904 const bool inIsAJARetail,
1911 if (!SetFrameBufferFormat (*it, inNewFormat, inIsAJARetail, inXferChars, inColorimetry, inLuminance))
1913 return failures == 0;
1921 if (IsMultiRasterWidgetChannel(inChannel))
1923 if (IS_CHANNEL_INVALID (inChannel))
1926 ULWord returnVal1, returnVal2;
1931 return result1 && result2;
1939 if (IS_CHANNEL_INVALID (channel))
1949 if (IS_CHANNEL_INVALID (inChannel))
1959 if (IS_CHANNEL_INVALID (channel))
1962 ULWord loValue = quality & 0x1;
1963 ULWord hiValue = (quality >> 1) & 0x3;
1973 if (IS_CHANNEL_INVALID (inChannel))
1977 ULWord loValue(0), hiValue(0);
1993 if (IS_CHANNEL_INVALID (channel))
2003 if (IS_CHANNEL_INVALID (inChannel))
2013 if (IsMultiRasterWidgetChannel(inChannel))
2015 if (IS_CHANNEL_INVALID(inChannel))
2025 if (IsMultiRasterWidgetChannel(inChannel))
2027 if (IS_CHANNEL_INVALID (inChannel))
2035 ULWord swCanChgFBSize(0);
2048 #if !defined(NTV2_DEPRECATE_17_2) 2049 return GetFBSizeAndCountFromHW(_ulFrameBufferSize, _ulNumFrameBuffers);
2050 #else//NTV2_DEPRECATE_17_2 2052 #endif//defined(NTV2_DEPRECATE_17_2) 2060 if (IS_CHANNEL_INVALID(inChannel))
2062 #if defined (NTV2_ALLOW_2MB_FRAMES) 2086 default:
return false;
2091 #endif // defined (NTV2_ALLOW_2MB_FRAMES) 2105 #if defined (NTV2_ALLOW_2MB_FRAMES) 2132 default:
return false;
2134 NTV2_ASSERT (NTV2_IS_8MB_OR_16MB_FRAMESIZE(outValue));
2138 #endif // defined (NTV2_ALLOW_2MB_FRAMES) 2145 if (IsMultiRasterWidgetChannel(inChannel))
2146 return SetMultiRasterBypassEnable(
false);
2154 {
UWord failures(0);
2156 if (!DisableChannel(*it))
2165 if (IsMultiRasterWidgetChannel(inChannel))
2166 return SetMultiRasterBypassEnable(
true);
2174 {
UWord failures(0);
2176 if (inChannels.find(chan) != inChannels.end())
2178 if (!EnableChannel(chan))
2181 else if (inDisableOthers)
2182 DisableChannel(chan);
2190 bool disabled (
false);
2191 if (IsMultiRasterWidgetChannel(inChannel))
2192 return GetMultiRasterBypassEnable(outEnabled);
2193 if (IS_CHANNEL_INVALID(inChannel))
2197 outEnabled = disabled ?
false :
true;
2205 bool enabled(
false);
2206 outChannels.clear();
2208 if (!IsChannelEnabled (ch, enabled))
2211 outChannels.insert(ch);
2219 bool enabled(
false);
2220 outChannels.clear();
2222 if (!IsChannelEnabled (ch, enabled))
2225 outChannels.insert(ch);
2229 #if !defined(NTV2_DEPRECATE_16_2) 2232 if (IS_CHANNEL_INVALID(inChannel))
2236 WaitForOutputVerticalInterrupt (inChannel);
2242 return !IS_CHANNEL_INVALID(inChannel)
2248 ULWord nextFrm(0), outFrm(0);
2249 return !IS_CHANNEL_INVALID(inCh)
2251 && GetOutputFrame(inCh, outFrm)
2252 && SetOutputFrame(inCh, nextFrm)
2255 #endif // !defined (NTV2_DEPRECATE_16_2) 2259 if (IsMultiRasterWidgetChannel(inChannel))
2261 if (IS_CHANNEL_INVALID(inChannel))
2268 if (IsMultiRasterWidgetChannel(inChannel))
2269 {outValue = 0;
return false;}
2270 if (IS_CHANNEL_INVALID(inChannel))
2277 if (IsMultiRasterWidgetChannel(inChannel))
2279 if (IS_CHANNEL_INVALID(inChannel))
2286 if (IsMultiRasterWidgetChannel(inChannel))
2288 if (IS_CHANNEL_INVALID(inChannel))
2312 ULWord programFlashValue;
2313 if(ReadFlashProgramControl(programFlashValue))
2315 if ((programFlashValue &
BIT(9)) ==
BIT(9))
2326 ULWord totalProgress = 0;
2348 progResults = devFlasher.
Program(
false);
2351 if (!progResults.empty())
2353 return progResults.empty();
2372 uint32_t regValue (0);
2376 outRevision = uint16_t((regValue & 0x0000FF00) >> 8);
2382 outYear = outMonth = outDay = 0;
2386 uint32_t regValue (0);
2390 const UWord yearBCD ((regValue & 0xFFFF0000) >> 16);
2391 const UWord monthBCD ((regValue & 0x0000FF00) >> 8);
2392 const UWord dayBCD (regValue & 0x000000FF);
2394 outYear = ((yearBCD & 0xF000) >> 12) * 1000
2395 + ((yearBCD & 0x0F00) >> 8) * 100
2396 + ((yearBCD & 0x00F0) >> 4) * 10
2397 + (yearBCD & 0x000F);
2399 outMonth = ((monthBCD & 0x00F0) >> 4) * 10 + (monthBCD & 0x000F);
2401 outDay = ((dayBCD & 0x00F0) >> 4) * 10 + (dayBCD & 0x000F);
2403 return outYear > 2010
2404 && outMonth > 0 && outMonth < 13
2405 && outDay > 0 && outDay < 32;
2411 outHours = outMinutes = outSeconds = 0;
2415 uint32_t regValue (0);
2419 const UWord hoursBCD ((regValue & 0x00FF0000) >> 16);
2420 const UWord minutesBCD ((regValue & 0x0000FF00) >> 8);
2421 const UWord secondsBCD (regValue & 0x000000FF);
2423 outHours = ((hoursBCD & 0x00F0) >> 4) * 10 + (hoursBCD & 0x000F);
2425 outMinutes = ((minutesBCD & 0x00F0) >> 4) * 10 + (minutesBCD & 0x000F);
2427 outSeconds = ((secondsBCD & 0x00F0) >> 4) * 10 + (secondsBCD & 0x000F);
2429 return outHours < 24 && outMinutes < 60 && outSeconds < 60;
2435 outDate = outTime = string();
2436 UWord yr(0), mo(0), dy(0),
hr(0), mn(0), sec(0);
2437 if (!GetRunningFirmwareDate (yr, mo, dy))
2439 if (!GetRunningFirmwareTime (
hr, mn, sec))
2442 ostringstream date, time;
2446 outDate = date.str();
2447 outTime = time.str();
2462 outUserID = regValue;
2475 if (GetPCIDeviceID (pciID))
2497 if (GetPCIDeviceID (pciID))
2518 if (IS_CHANNEL_INVALID(inFrameStore))
2520 if (IsMultiFormatActive())
2538 if (IS_CHANNEL_INVALID (inFrameStore))
2559 if (IS_CHANNEL_INVALID (inChannel))
2567 if (IS_CHANNEL_INVALID (inChannel))
2579 if (IS_CHANNEL_INVALID (inChannel))
2589 if (IS_CHANNEL_INVALID (inChannel))
2601 if (IS_CHANNEL_INVALID (inChannel))
2609 if (IS_CHANNEL_INVALID (inChannel))
2617 if (IS_CHANNEL_INVALID (inChannel))
2623 outIsBypassEnabled = regValue &
BIT(23);
2630 if (IS_CHANNEL_INVALID (inChannel))
2639 if (IS_CHANNEL_INVALID (inChannel))
2649 if (IS_CHANNEL_INVALID(inSDIOutput))
2658 if (IS_CHANNEL_INVALID(inSDIOutput))
2665 case 0: outSDIInput = inSDIOutput <
NTV2_CHANNEL5 ? 0 : 4;
break;
2666 case 2: outSDIInput = inSDIOutput <
NTV2_CHANNEL5 ? 1 : 5;
break;
2667 case 1: outSDIInput = inSDIOutput <
NTV2_CHANNEL5 ? 2 : 6;
break;
2668 case 3: outSDIInput = inSDIOutput <
NTV2_CHANNEL5 ? 3 : 7;
break;
2669 default:
return false;
2700 if (!SetVANCMode (inVancMode, *it))
2709 if (IsMultiRasterWidgetChannel(ch))
2711 if (IS_CHANNEL_INVALID(ch))
2718 GetStandard(st, ch);
2719 GetFrameGeometry(fg, ch);
2735 CVIDWARN(
"'taller' mode requested for 720p -- using 'tall' geometry instead");
2771 default:
return false;
2774 SetFrameGeometry (fg,
false, ch);
2787 { (
void) inStandard; (
void) inFrameGeometry;
2788 if (inTallerVANC && !inVANCenabled)
2796 bool isTall (
false);
2797 bool isTaller (
false);
2802 if (IsMultiRasterWidgetChannel(channel))
2806 if (IS_CHANNEL_INVALID (channel))
2809 GetStandard (standard, channel);
2810 GetFrameGeometry (frameGeometry, channel);
2855 #if defined (_DEBUG) 2858 default:
return false;
2868 if (IsMultiRasterWidgetChannel(inChannel))
2870 if (IS_CHANNEL_INVALID (inChannel))
2872 CVIDINFO(
"'" << GetDisplayName() <<
"' Ch" <<
DEC(inChannel+1) <<
": Vanc data shift " << (inValue ?
"enabled" :
"disabled"));
2881 if (!SetVANCShiftMode(*it, inMode))
2889 if (IsMultiRasterWidgetChannel(inChannel))
2891 if (IS_CHANNEL_INVALID (inChannel))
2899 if (IS_CHANNEL_INVALID (inChannel))
2908 if (IS_CHANNEL_INVALID (inChannel))
2912 outValue = value ?
true :
false;
2923 CVIDINFO(
"'" << GetDisplayName() <<
"' Mixer" <<
DEC(inWhichMixer+1) <<
": Vanc from " << (inFromForegroundSource ?
"FG" :
"BG"));
2936 outIsFromForegroundSource = value ?
true :
false;
3014 CVIDINFO(
"'" << GetDisplayName() <<
"' Mixer" <<
DEC(inWhichMixer+1) <<
": mixCoeff=" <<
xHEX0N(inMixCoefficient,8));
3021 outMixCoefficient = 0;
3033 bool syncFail (
false);
3036 outIsSyncOK = syncFail ?
false :
true;
3042 outIsEnabled =
false;
3057 outIsEnabled =
false;
3075 outYCbCrValue.
cb = outYCbCrValue.
y = outYCbCrValue.
cr = 0;
3081 outYCbCrValue.
cb = packedValue & 0x03FF;
3082 outYCbCrValue.
y = ((packedValue >> 10) & 0x03FF) + 0x0040;
3083 outYCbCrValue.
cr = (packedValue >> 20) & 0x03FF;
3093 if (ycbcrPixel.
y < 0x40)
3096 ycbcrPixel.
y -= 0x40;
3097 ycbcrPixel.
y &= 0x3FF;
3098 ycbcrPixel.
cb &= 0x3FF;
3099 ycbcrPixel.
cr &= 0x3FF;
3103 CVIDINFO(
"'" << GetDisplayName() <<
"' Mixer" <<
DEC(inWhichMixer+1) <<
": set to YCbCr=" <<
DEC(ycbcrPixel.
y)
3104 <<
"|" <<
DEC(ycbcrPixel.
cb) <<
"|" <<
DEC(ycbcrPixel.
cr) <<
":" <<
HEXN(ycbcrPixel.
y,3) <<
"|" 3105 <<
HEXN(ycbcrPixel.
cb,3) <<
"|" <<
HEXN(ycbcrPixel.
cr,3) <<
", write " <<
xHEX0N(packedValue,8)
3114 outIsSupported =
false;
3139 #if !defined(NTV2_DEPRECATE_16_0) 3145 if (IS_CHANNEL_INVALID(channel))
3150 if (ulFrame > GetNumFrameBuffers())
3155 if (!_pFrameBaseAddress)
3156 if (!MapFrameBuffers())
3158 *pBaseAddress = _pFrameBaseAddress + ((ulFrame * _ulFrameBufferSize) /
sizeof(
ULWord));
3162 if (!_pCh1FrameBaseAddress)
3163 if (!MapFrameBuffers())
3165 *pBaseAddress = (channel ==
NTV2_CHANNEL1) ? _pCh1FrameBaseAddress : _pCh2FrameBaseAddress;
3175 if (!_pFrameBaseAddress)
3176 if (!MapFrameBuffers())
3178 *pBaseAddress = _pFrameBaseAddress;
3187 if (!_pRegisterBaseAddress)
3188 if (!MapRegisters())
3191 if ((regNumber*4) >= _pRegisterBaseAddressLength)
3194 *pBaseAddress = _pRegisterBaseAddress + regNumber;
3202 if (!_pXena2FlashBaseAddress)
3203 if (!MapXena2Flash())
3205 *pXena2FlashAddress = _pXena2FlashBaseAddress;
3208 #endif // !defined(NTV2_DEPRECATE_16_0) 3217 outIsEnabled =
false;
3230 outIsEnabled =
false;
3239 if (IS_CHANNEL_INVALID(inChannel))
3246 if (IS_CHANNEL_INVALID(inChannel))
3268 if (IS_OUTPUT_SPIGOT_INVALID(inOutputSpigot))
3272 bool is2Kx1080(
false);
3312 && SetSDIOut2Kx1080Enable(
NTV2Channel(inOutputSpigot), is2Kx1080);
3319 if (!SetSDIOutputStandard(*it, inValue))
3326 if (IS_OUTPUT_SPIGOT_INVALID(inOutputSpigot))
3328 bool is2kx1080(
false);
3333 && GetSDIOut2Kx1080Enable(
NTV2Channel(inOutputSpigot), is2kx1080)
3334 && GetSDIOut6GEnable(
NTV2Channel(inOutputSpigot), is6G)
3335 && GetSDIOut12GEnable(
NTV2Channel(inOutputSpigot), is12G));
3359 if (IS_OUTPUT_SPIGOT_INVALID(inOutputSpigot))
3361 if (IsMultiFormatActive())
3392 if (IS_OUTPUT_SPIGOT_INVALID (inOutputSpigot))
3416 #if !defined(R2_DEPRECATE) 3428 #endif // R2_DEPRECATE 3454 ULWord vpidDS1(0), vpidDS2(0);
3456 if (IS_CHANNEL_INVALID(inChannel))
3459 bool isValidVPID (GetVPIDValidA(inChannel));
3462 ReadSDIInVPID(inChannel, vpidDS1, vpidDS2);
3464 isValidVPID = inputVPID.
IsValid();
3469 bool isProgressiveTrans (isValidVPID ? inputVPID.
GetProgressiveTransport() : GetSDIInputIsProgressive(inChannel));
3471 bool isInput3G (
false);
3481 if (canDo3GIn || canDo12GIn)
3483 GetSDIInput3GPresent(isInput3G, inChannel);
3484 NTV2VideoFormat format = isValidVPID ? inputVPID.
GetVideoFormat() : GetNTV2VideoFormat(inputRate, inputGeometry, isProgressiveTrans, isInput3G, isProgressivePic);
3488 isProgressiveTrans = GetSDIInputIsProgressive(inChannel);
3489 isProgressivePic = inIsProgressivePicture;
3490 format = GetNTV2VideoFormat(inputRate, inputGeometry, isProgressiveTrans, isInput3G, isProgressivePic);
3494 bool is6G(
false), is12G(
false);
3495 GetSDIInput6GPresent(is6G, inChannel);
3496 GetSDIInput12GPresent(is12G, inChannel);
3515 return GetNTV2VideoFormat(inputRate, inputGeometry, isProgressiveTrans, isInput3G, isProgressivePic);
3526 if (GetHDMIInputStatus(status, inChannel))
3531 if(hdmiVersion == 1)
3548 else if(hdmiVersion > 1)
3550 bool squareDivision = hdmiVersion == 5 ?
false :
true;
3553 UByte inputGeometry = 0;
3556 format = GetNTV2VideoFormat (hdmiRate, hdmiStandard,
false, inputGeometry,
false, squareDivision);
3617 return GetNTV2VideoFormat (
NTV2FrameRate((status >> 16) & 0xF),
3618 ((status >> 20) & 0x7),
3619 (status &
BIT_23) ?
true :
false,
3626 if (IS_CHANNEL_INVALID (channel))
3629 ULWord rateLow (0), rateHigh (0);
3643 if (IS_CHANNEL_INVALID (channel))
3646 ULWord geometryLow (0), geometryHigh (0);
3660 if (IS_CHANNEL_INVALID (channel))
3663 ULWord isProgressive = 0;
3665 return isProgressive ?
true :
false;
3670 if (IS_CHANNEL_INVALID (channel))
3675 outValue = static_cast <
bool> (value);
3682 if (IS_CHANNEL_INVALID (channel))
3687 outValue = static_cast <
bool> (value);
3694 if (IS_CHANNEL_INVALID (channel))
3699 outValue = static_cast <
bool> (value);
3706 if (IS_CHANNEL_INVALID (channel))
3711 outValue = static_cast <
bool> (value);
3720 inEnable = !inEnable;
3730 outIsEnabled = !outIsEnabled;
3749 #if !defined(NTV2_DEPRECATE_16_3) 3759 #endif // !defined(NTV2_DEPRECATE_16_3) 3764 if (!ReadAnalogLTCInput(inLTCInput, result))
3766 outRP188Data = result;
3779 outRP188Data.
fDBB = 0;
3780 return ReadRegister(regLo, outRP188Data.
fLo) && ReadRegister(regHi, outRP188Data.
fHi);
3801 if (IS_CHANNEL_INVALID(inChannel))
3810 return WriteAnalogLTCOutput (inLTCOutput, rp188data);
3830 bool isMultiFormat(
false);
3831 if (!GetMultiFormatMode(isMultiFormat))
3846 if (IS_CHANNEL_INVALID (inChannel))
3848 bool isMultiFormat(
false);
3849 if (!GetMultiFormatMode(isMultiFormat))
3864 if (IS_CHANNEL_INVALID(inChannel))
3878 if (!SetSDITransmitEnable(*it, inEnable))
3885 if (IS_CHANNEL_INVALID(inChannel))
3890 {outIsEnabled =
true;
return true;}
3897 outXmitSDIs.clear();
3902 if (!biDirectionalSDI || (GetSDITransmitEnable(ch, isXmit) && isXmit))
3903 outXmitSDIs.insert(ch);
3910 if (IS_CHANNEL_INVALID (inChannel))
3917 if (IS_CHANNEL_INVALID (inChannel))
3924 if (IS_CHANNEL_INVALID(inChannel))
3931 if (IS_CHANNEL_INVALID(inChannel))
3939 if (IS_CHANNEL_INVALID(inChannel))
3946 if (IS_CHANNEL_INVALID(inChannel))
3953 if (IS_CHANNEL_INVALID(inChannel))
3963 if (IS_CHANNEL_INVALID(inChannel))
3965 bool is6G(
false), is12G(
false);
3970 outIsEnabled =
true;
3972 outIsEnabled =
false;
3978 if (IS_CHANNEL_INVALID(inChannel))
3988 if (IS_CHANNEL_INVALID(inChannel))
4039 size_t numFailures(0);
4040 for (NTV2ChannelSet::const_iterator it(inSDIOutputs.begin()); it != inSDIOutputs.end(); ++it)
4041 if (!(inDS2 ? SetSDIOutputDS2AudioSystem(*it, inAudioSystem) : SetSDIOutputAudioSystem(*it, inAudioSystem)))
4043 return numFailures == 0;
4175 outValue = statusBit ?
true :
false;
4213 outIsEnabled = static_cast <
bool> (tempVal);
4226 outIsEnabled = static_cast <
bool> (tempVal);
4239 outIsEnabled = static_cast <
bool> (tempVal);
4252 outIsEnabled = static_cast <
bool> (tempVal);
4261 if (IS_CHANNEL_INVALID(inChannel))
4265 return value ?
true :
false;
4272 if (IS_CHANNEL_INVALID(inChannel))
4276 return value ?
true :
false;
4283 if (IS_CHANNEL_INVALID(inChannel))
4294 if (IS_CHANNEL_INVALID(inChannel))
4305 if (IS_CHANNEL_INVALID(inChannel))
4316 if (IS_INPUT_SPIGOT_INVALID (inInputSpigot))
4319 ULWord regNum, mask, shift;
4320 switch (inInputSpigot)
4330 default:
return false;
4332 return WriteRegister(regNum, inEnable, mask, shift);
4339 if (!SetSDIInLevelBtoLevelAConversion(*it, inEnable))
4348 if (IS_INPUT_SPIGOT_INVALID (inInputSpigot))
4351 ULWord regNum, mask, shift;
4352 switch (inInputSpigot)
4362 default:
return false;
4371 if (IS_OUTPUT_SPIGOT_INVALID(inOutputSpigot))
4381 if (!SetSDIOutLevelAtoLevelBConversion(*it, inEnable))
4390 if (IS_OUTPUT_SPIGOT_INVALID (inOutputSpigot))
4395 outEnable = static_cast <
bool> (tempVal);
4403 if (IS_OUTPUT_SPIGOT_INVALID (inOutputSpigot))
4413 if (!SetSDIOutRGBLevelAConversion(*it, inEnable))
4422 if (IS_OUTPUT_SPIGOT_INVALID (inOutputSpigot))
4427 outEnable = static_cast <
bool> (tempVal);
4469 default:
return false;
4511 #if !defined(_DEBUG) 4535 default:
return false;
4573 UWord dieTempRaw (rawRegValue & 0x0000FFFF);
4574 celsius = double (dieTempRaw) / 128.0;
4578 UWord dieTempRaw ((rawRegValue & 0x0000FFFF) >> 6);
4579 celsius = (double (dieTempRaw) * 503.975 / 1024.0 - 273.15);
4581 switch (inTempScale)
4587 default:
return false;
4601 const UWord coreVoltageRaw ((rawRegValue>>22) & 0x00003FF);
4602 const double coreVoltageFloat (
double(coreVoltageRaw)/ 1024.0 * 3.0);
4603 outVoltage = coreVoltageFloat;
4609 bool canReboot =
false;
4610 CanWarmBootFPGA(canReboot);
4616 #if defined(READREGMULTICHANGE) 4622 if (inRegisters.empty())
4626 if (NTV2Message(getRegsParams))
4628 if (!getRegsParams.GetRegisterValues(outValues))
4636 if (ReadRegister (*iter, tempVal))
4637 outValues[*iter] = tempVal;
4639 return outValues.size() == inRegisters.size();
4641 #endif // !defined(READREGMULTICHANGE) 4648 if (inRegWrites.empty())
4654 result = NTV2Message(setRegsParams);
4661 if (!WriteRegister(pRegInfos[ndx].registerNumber, pRegInfos[ndx].registerValue, pRegInfos[ndx].registerMask, pRegInfos[ndx].registerShift))
4667 if (!result)
CVIDFAIL(
"Failed: setRegsParams: " << setRegsParams);
4675 if (!NTV2Message(bankSelGetSetMsg))
4686 if (!NTV2Message(bankSelGetSetMsg))
4691 inOutRegInfo = bankSelGetSetMsg.
GetRegInfo();
4697 NTV2VirtualData virtualDataMsg (inTag, inVirtualData, inVirtualDataSize,
true);
4699 return NTV2Message(virtualDataMsg);
4704 NTV2VirtualData virtualDataMsg (inTag, outVirtualData, inVirtualDataSize,
false);
4706 return NTV2Message(virtualDataMsg);
4716 if (!NTV2Message(reinterpret_cast<NTV2_HEADER*>(&outStats)))
4720 for (
size_t sdi(0); sdi < numSDIInputs; sdi++)
4721 for (
ULWord reg(0); reg < 6; reg++)
4726 if (!ReadRegisters(sdiStatRegInfos))
4729 for (
size_t sdi(0); sdi < numSDIInputs; sdi++)
4732 size_t ndx(sdi*6 + 0);
4741 regInfo = sdiStatRegInfos.at(ndx+1);
4762 if (!HasMultiRasterWidget())
4764 NTV2ULWordVector regs; regs.push_back(0); regs.push_back(0); regs.push_back(0); regs.push_back(0);
4788 #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)
Defines the KonaIP/IoIP registers.
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)
defined(NTV2_DEPRECATE_17_6)
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 SupportsP2PTarget(void)
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 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: Sharing AJA Devices With Other Applications.
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.
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.
virtual bool SetWarmBootFirmwareReload(bool enable)
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.
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.
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 bool GetLEDState(ULWord &outValue)
Answers with the current state of the four on-board LEDs.
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.
virtual bool SetLEDState(ULWord inValue)
The four on-board LEDs can be set by writing 0-15.
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.
#define kRegSarekPackageVersion
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)
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)
virtual bool ProgramMainFlash(const std::string &inFileName, const bool bInForceUpdate=(0), const bool bInQuiet=(0))
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)
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.
std::string Program(bool fullVerify=(0))
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.
virtual bool GetPCIDeviceID(ULWord &outPCIDeviceID)
Answers with my PCI device ID.
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
virtual bool SetAlphaFromInput2Bit(ULWord inValue)
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 bool GetAlphaFromInput2Bit(ULWord &outValue)
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...
virtual bool IsXilinxProgrammed()
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.
virtual bool SupportsP2PTransfer(void)
static const ULWord gChannelToSDIIn3GbModeShift[]
virtual bool ReadLineCount(ULWord &outValue)
Answers with the line offset into the frame currently being read (NTV2_MODE_DISPLAY) or written (NTV2...
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__)
virtual bool ReadFlashProgramControl(ULWord &outValue)
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)