111 { 561, 26, 1124, 588, 1125, 1125, 563, 7, 569, 0, 0, 0, 0, 0, 0, 0x07800000 },
112 { 746, 745, 0, 0, 750, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0x05000000 },
113 { 264, 30, 1, 293, 525, 3, 265, 10, 273, 4, 266, 0x20000, 0x40000, 0, 0, 0x02D00000 },
114 { 311, 33, 1, 346, 625, 625, 312, 6, 319, 5, 318, 0x10000, 0x10000, 0, 0, 0x02D00000 },
115 { 1122, 1125, 0, 0, 1125, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0x07800000 },
116 { 1122, 1125, 0, 0, 1125, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0x07800000 },
117 { 1122, 1125, 0, 0, 1125, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0x07800000 },
118 { 561, 26, 1124, 588, 1125, 1125, 563, 7, 569, 0, 0, 0, 0, 0, 0, 0x07800000 },
119 { 1122, 1125, 0, 0, 1125, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0x07800000 },
120 { 1122, 1125, 0, 0, 1125, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0x07800000 },
121 { 1122, 1125, 0, 0, 1125, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0x07800000 },
122 { 1122, 1125, 0, 0, 1125, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0x07800000 },
137 outF1Offset = outF2Offset = 0;
364 const bool inVauxY,
const bool inVauxC,
365 const bool inHauxY,
const bool inHauxC)
723 outIsRunning =
false;
764 const ULWord nextFrame (inFrameNumber + 1);
767 bool quadEnabled(
false), quadQuadEnabled(
false);
771 endOfFrameLocation *= 4;
773 endOfFrameLocation *= 4;
775 ULWord F1Offset(0), F2Offset(0);
778 const ULWord AUXStartMemory (endOfFrameLocation - F1Offset);
779 const ULWord AUXStopMemory (endOfFrameLocation - F2Offset - 1);
811 const ULWord frameNumber (inFrameNumber + 1);
814 bool quadEnabled(
false), quadQuadEnabled(
false);
825 const ULWord AUXStartMemory (frameLocation - F2Offset);
837 uint64_t & outF1StartAddr, uint64_t & outF1EndAddr,
838 uint64_t & outF2StartAddr, uint64_t & outF2EndAddr)
840 outF1StartAddr = outF1EndAddr = outF2StartAddr = outF2EndAddr = 0;
848 ULWord startAddr(0), endAddr(0);
850 outF1StartAddr = uint64_t(startAddr);
851 outF1EndAddr = uint64_t(endAddr);
854 outF2StartAddr = uint64_t(startAddr);
856 outF2EndAddr = uint64_t(startAddr) + (outF1EndAddr - outF1StartAddr);
875 for (
unsigned regByte(0); regByte < 4; regByte++)
877 const NTV2DID theDID ((regValue >> (regByte*8)) & 0x000000FF);
879 outFilters.insert(theDID);
901 for (
unsigned regByte(0); regByte < 4; regByte++)
903 const NTV2DID theDID (iter != inDIDs.end() ? *iter++ : 0);
904 regValue |= (
ULWord(theDID) << (regByte*8));
984 outIsOverrun =
false;
1030 static const ULWord kNumDIDsPerRegister (4);
1036 static const NTV2DID sDefaultHDDIDs[] = {0x02, 0x00};
1040 const NTV2DID * pDIDArray (sDefaultHDDIDs);
1041 for (
unsigned ndx(0); pDIDArray[ndx]; ndx++)
1042 result.insert(pDIDArray[ndx]);
Anc Field2 byte offset from end of frame buffer (GUMP on all boards except RTP for SMPTE2022/IP) ...
virtual bool IsSupported(const NTV2BoolParamID inParamID)
virtual bool AuxExtractSetWriteParams(const UWord inHDMIInput, const ULWord inFrameNumber, const NTV2Channel inChannel=NTV2_CHANNEL_INVALID, const NTV2Framesize inFrameSize=NTV2_FRAMESIZE_INVALID)
Configures the given HDMI input's Aux extractor to receive the next frame's F1 Aux data...
I interrogate and control an AJA video/audio capture/playout device.
virtual bool AuxExtractGetField2Size(const UWord inHDMIInput, ULWord &outF2Size)
Answers with the number of bytes of field 2 HDMI AUX data extracted.
UByte NTV2DID
An ancillary Data IDentifier.
static bool GetAuxOffsets(CNTV2Card &inDevice, ULWord &outF1Offset, ULWord &outF2Offset)
virtual bool AuxExtractGetField1Size(const UWord inHDMIInput, ULWord &outF1Size)
Answers with the number of bytes of field 1 ANC extracted.
virtual bool AuxExtractGetPacketFilters(const UWord inHDMIInput, NTV2DIDSet &outDIDs)
Answers with the HDMI packet types currently being excluded (filtered) by the HDMI input's Aux extrac...
static bool GetAuxExtField2Status(CNTV2DriverInterface &inDevice, const UWord inHDMIInput, ULWord &outF2Status)
static bool GetAuxExtField1EndAddr(CNTV2Card &inDevice, const UWord inHDMIInput, uint32_t &outAddr)
virtual bool AuxInsertSetReadParams(const UWord inHDMIOutput, const ULWord inFrameNumber, const ULWord inF1Size, const NTV2Channel inChannel=NTV2_CHANNEL_INVALID, const NTV2Framesize inFrameSize=NTV2_FRAMESIZE_INVALID)
Configures the Aux inserter for the next frame's F1 Aux data to embed/transmit.
struct AUXExtractorInitParams AUXExtractorInitParams
static ULWord AuxExtRegNum(const UWord inHDMIInput, const AUXExtRegisters inReg)
static bool IsAuxExtFilterModeInclude(CNTV2DriverInterface &inDevice, const UWord inHDMIInput, bool &outIsInclude)
static bool SetAuxExtTotalFrameLines(CNTV2Card &inDevice, const UWord inHDMIInput, uint32_t totalFrameLines)
static bool GetAuxExtField1StartAddr(CNTV2Card &inDevice, const UWord inHDMIInput, uint32_t &outAddr)
virtual ULWord GetFrameBufferSize(void) const
static const AUXExtractorInitParams extractorInitParamsTable[NTV2_NUM_STANDARDS]
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
virtual bool AuxInsertGetReadInfo(const UWord inHDMIOutput, uint64_t &outF1StartAddr, uint64_t &outF2StartAddr)
Answers where, in device SDRAM, the given HDMI connector's Aux inserter is currently reading Aux data...
static bool SetAuxExtField1StartAddr(CNTV2Card &inDevice, const UWord inHDMIInput, uint32_t addr)
static bool SetAuxExtField1StartLine(CNTV2Card &inDevice, const UWord inHDMIInput, uint32_t lineNumber)
Anc Field1 byte offset from end of frame buffer (GUMP on all boards except RTP for SMPTE2022/IP) ...
static bool SetAuxExtSynchro(CNTV2Card &inDevice, const UWord inHDMIInput)
virtual bool AuxInsertSetEnable(const UWord inHDMIOutput, const bool inIsEnabled)
Enables or disables the given HDMI output's Aux inserter frame buffer reads.
I'm the base class that undergirds the platform-specific derived classes (from which CNTV2Card is ult...
NTV2Standard
Identifies a particular video standard.
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 AuxInsertIsEnabled(const UWord inHDMIOutput, bool &outIsEnabled)
Answers with the run state of the given Aux inserter – i.e. if its "memory reader" is enabled or not...
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 kNumDIDRegisters(regAuxExtPacketMask_Last - regAuxExtPacketMask_First+1)
ULWord NTV2FramesizeToByteCount(const NTV2Framesize inFrameSize)
Converts the given NTV2Framesize value into an exact byte count.
static bool IsAuxExtProgressive(CNTV2DriverInterface &inDevice, const UWord inHDMIInput, bool &outIsProgressive)
static const ULWord sAuxExtBaseRegNum[]
#define NTV2_IS_VALID_8MB_FRAMESIZE(__x__)
virtual bool AuxExtractIsProgressive(const UWord inHDMIInput, bool &outIsProgressive)
Answers whether or not the given HDMI input's Aux extractor was configured with a progressive video f...
virtual bool AuxInsertInit(const UWord inHDMIOutput, const NTV2Channel inChannel=NTV2_CHANNEL_INVALID, const NTV2Standard inStandard=NTV2_STANDARD_INVALID)
Initializes the given HDMI output's Aux inserter for custom Aux packet insertion. ...
virtual bool IS_HDMI_INPUT_SPIGOT_INVALID(const UWord inInputHDMIPort)
#define NTV2_IS_VALID_STANDARD(__s__)
static bool SetAuxExtField2StartAddr(CNTV2Card &inDevice, const UWord inHDMIInput, uint32_t addr)
virtual bool AuxInsertSetField2ReadParams(const UWord inHDMIOutput, const ULWord inFrameNumber, const ULWord inF2Size, const NTV2Channel inChannel=NTV2_CHANNEL_INVALID, const NTV2Framesize inFrameSize=NTV2_FRAMESIZE_INVALID)
Configures the Aux inserter for the next frame's F2 Aux data to embed/transmit.
NTV2DIDSet::const_iterator NTV2DIDSetConstIter
Handy const iterator to iterate over an NTV2DIDSet.
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. ...
True if device has any SDI, HDMI or analog video inputs.
static bool SetAuxExtField1EndAddr(CNTV2Card &inDevice, const UWord inHDMIInput, uint32_t addr)
virtual bool AuxExtractGetWriteInfo(const UWord inHDMIInput, uint64_t &outF1StartAddr, uint64_t &outF1EndAddr, uint64_t &outF2StartAddr, uint64_t &outF2EndAddr)
Answers with the given HDMI input's current Aux extractor info.
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...
NTV2Framesize
Kona2/Xena2 specific enums.
static UWord AuxExtractGetMaxNumPacketFilters(void)
static bool GetAuxExtField1Status(CNTV2DriverInterface &inDevice, const UWord inHDMIInput, ULWord &outF1Status)
#define NTV2_IS_VALID_CHANNEL(__x__)
virtual bool AuxExtractSetEnable(const UWord inHDMIInput, const bool inIsEnabled)
Enables or disables the given HDMI input's Aux extractor.
virtual bool AuxExtractIsEnabled(const UWord inHDMIInput, bool &outIsEnabled)
Answers whether the given HDMI input's Aux extractor is enabled/active or not.
virtual bool AuxExtractSetPacketFilters(const UWord inHDMIInput, const NTV2DIDSet &inDIDs)
Replaces the HDMI packet types to be excluded (filtered) by the given HDMI input's Aux extractor...
static bool SetAuxExtFidLow(CNTV2Card &inDevice, const UWord inHDMIInput, uint32_t lineNumber)
static bool SetAuxExtProgressive(CNTV2Card &inDevice, const UWord inHDMIInput, bool bEnable)
Declares numerous NTV2 utility functions.
virtual bool AuxExtractInit(const UWord inHDMIInput, const NTV2Channel inChannel=NTV2_CHANNEL_INVALID, const NTV2Standard inStandard=NTV2_STANDARD_INVALID)
Initializes the given HDMI input's Aux extractor for custom Aux packet detection and de-embedding...
static bool IsAuxExtOverrun(CNTV2DriverInterface &inDevice, const UWord inHDMIInput, bool &outIsOverrun)
virtual bool AuxExtractGetBufferOverrun(const UWord inHDMIInput, bool &outIsOverrun, const UWord inField=0)
Answers whether or not the given HDMI input's Aux extractor reached its buffer limits.
virtual bool AuxExtractSetField2WriteParams(const UWord inHDMIInput, const ULWord inFrameNumber, const NTV2Channel inChannel=NTV2_CHANNEL_INVALID, const NTV2Framesize inFrameSize=NTV2_FRAMESIZE_INVALID)
Configures the given HDMI input's Aux extractor to receive the next frame's F2 Aux data...
static bool GetAuxExtField2StartAddr(CNTV2Card &inDevice, const UWord inHDMIInput, uint32_t &outAddr)
#define NTV2_UNUSED(__p__)
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 AuxInsertSetIPParams(const UWord inHDMIOutput, const UWord auxChannel, const ULWord payloadID, const ULWord ssrc)
Configures the Aux inserter IP specific params.
virtual bool AuxInsertSetComponents(const UWord inHDMIOutput, const bool inVauxY, const bool inVauxC, const bool inHauxY, const bool inHauxC)
Enables or disables individual Aux insertion components for the given HDMI output.
True if device has HDMI AUX data extractor(s).
virtual bool IS_CHANNEL_INVALID(const NTV2Channel inChannel) const
Declares the CNTV2Card class.
static bool SetAuxExtField2StartLine(CNTV2Card &inDevice, const UWord inHDMIInput, uint32_t lineNumber)
static bool SetAuxExtFidHi(CNTV2Card &inDevice, const UWord inHDMIInput, uint32_t lineNumber)
static bool SetAuxExtFilterMode(CNTV2Card &inDevice, const UWord inHDMIInput, bool bInclude)
static NTV2DIDSet AuxExtractGetDefaultPacketFilters(void)
virtual bool AuxExtractGetFilterInclusionMode(const UWord inHDMIInput, bool &outEnabled)
Answers whether or not HDMI AUX packet filtering is enabled for the given HDMI input.
virtual bool AuxExtractSetFilterInclusionMode(const UWord inHDMIInput, const bool inEnable)
Enables or disables HDMI AUX packet filtering for the given HDMI input.
virtual bool GetStandard(NTV2Standard &outValue, NTV2Channel inChannel=NTV2_CHANNEL1)
#define NTV2_IS_PROGRESSIVE_STANDARD(__s__)
Declares device capability functions.
std::set< UByte > NTV2DIDSet
A set of distinct NTV2DID values.