|
AJA NTV2 SDK
17.0.1.1246
NTV2 SDK 17.0.1.1246
|
Go to the documentation of this file.
8 #ifndef AJA_ANCILLARYLIST_H
9 #define AJA_ANCILLARYLIST_H
18 #define AJAANCLISTIMPL_VECTOR // Comment out this line to revert to pre-16.3 behavior
19 #if defined(AJAANCLISTIMPL_VECTOR)
86 const uint32_t inFrameNum = 0);
99 const uint32_t inFrameNum = 0);
111 static AJAStatus ClearAnalogAncillaryDataTypeMap (
void);
146 static AJAAncDataType GetAnalogAncillaryDataTypeForLine (
const uint16_t inLineNum);
153 static void SetIncludeZeroLengthPackets (
const bool inExclude);
154 static uint32_t GetExcludedZeroLengthPacketCount (
void);
155 static void ResetExcludedZeroLengthPacketCount (
void);
156 static bool IsIncludingZeroLengthPackets (
void);
192 virtual inline bool IsEmpty (
void)
const {
return !CountAncillaryData();}
200 virtual AJAAncillaryData * GetAncillaryDataAtIndex (
const uint32_t inIndex)
const;
207 virtual uint32_t CountAncillaryDataWithType (
const AJAAncDataType inMatchType)
const;
224 virtual uint32_t CountAncillaryDataWithID (
const uint8_t inDID,
const uint8_t inSID)
const;
234 virtual AJAAncillaryData * GetAncillaryDataWithID (
const uint8_t inDID,
const uint8_t inSID,
const uint32_t inIndex = 0)
const;
311 virtual AJAStatus SortListByLocation (
void);
321 virtual AJAStatus Compare (
const AJAAncillaryList & inCompareList,
const bool inIgnoreLocation =
true,
const bool inIgnoreChecksum =
true)
const;
333 virtual std::string CompareWithInfo (
const AJAAncillaryList & inCompareList,
const bool inIgnoreLocation =
true,
const bool inIgnoreChecksum =
true)
const;
344 virtual bool CompareWithInfo (std::vector<std::string> & outDiffs,
const AJAAncillaryList & inCompareList,
const bool inIgnoreLocation =
true,
const bool inIgnoreChecksum =
true)
const;
361 virtual AJAStatus GetAncillaryDataTransmitSize (
const bool inIsProgressive,
const uint32_t inF2StartLine,
362 uint32_t & outF1ByteCount, uint32_t & outF2ByteCount);
378 virtual AJAStatus GetAncillaryDataTransmitData (
const bool inIsProgressive,
const uint32_t inF2StartLine,
379 uint8_t * pOutF1AncData,
const uint32_t inF1ByteCountMax,
380 uint8_t * pOutF2AncData,
const uint32_t inF2ByteCountMax);
395 const bool inIsProgressive =
true,
const uint32_t inF2StartLine = 0);
398 const bool inIsProgressive =
true,
const uint32_t inF2StartLine = 0)
399 {
return GetTransmitData(F1Buffer, F2Buffer, inIsProgressive, inF2StartLine);}
426 const bool inIsProgressive =
true,
const uint32_t inF2StartLine = 0);
438 virtual AJAStatus GetIPTransmitDataLength (uint32_t & outF1ByteCount, uint32_t & outF2ByteCount,
439 const bool inIsProgressive =
true,
const uint32_t inF2StartLine = 0);
474 virtual AJAStatus AddReceivedAncillaryData (
const uint8_t * pInReceivedData,
const uint32_t inByteCount,
const uint32_t inFrameNum = 0);
500 const uint32_t inFrameNum = 0);
535 virtual AJAStatus ParseAllAncillaryData (
void);
550 virtual std::ostream & Print (std::ostream & inOutStream,
const bool inDetailed =
true)
const;
557 #if defined(AJAANCLISTIMPL_VECTOR)
567 static bool BufferHasGUMPData (
const NTV2Buffer & inBuffer);
579 const uint32_t inFrameNum = 0);
597 const bool inIsProgressive,
598 const uint32_t inF2StartLine);
613 uint32_t & outBytesWritten,
617 const bool inIsProgressive);
620 AJAAncillaryDataList m_ancList;
652 #endif // AJA_ANCILLARYLIST_H
virtual bool AllowMultiRTPReceive(void) const
Answers true if multiple RTP packets are allowed for capture/receive. The default behavior is to proc...
UByteSequence AJAAncPktCounts
Ordered sequence of SMPTE Anc packet counts.
std::vector< AJAAncillaryData * > AJAAncillaryDataList
Defines where the ancillary data can be found within a video stream.
virtual void SetAllowMultiRTPTransmit(const bool inAllow)
Determines if multiple RTP packets will be encoded for playout (via GetIPTransmitData)....
Declares the AJAAncillaryData class.
virtual void SetIgnoreChecksumErrors(const bool inIgnore)
Determines if checksum errors encountered during capture/ingest (via AddReceivedAncillaryData) will b...
A generic user-space buffer object that has an address and a length. Used most often to share an arbi...
std::vector< uint8_t > UByteSequence
An ordered sequence of UByte (uint8_t) values.
std::set< AJAAncPktDIDSID > AJAAncPktDIDSIDSet
Set of distinct packet DID/SIDs (New in SDK 16.0)
AJAU32Pkts::const_iterator AJAU32PktsConstIter
Handy const iterator over AJAU32Pkts.
AJAAncDataType
Identifies the ancillary data types that are known to this module.
I am an ordered collection of AJAAncillaryData instances which represent one or more SMPTE 291 data p...
virtual bool IsEmpty(void) const
AJAAncillaryDataList::const_iterator AJAAncDataListConstIter
Handy const iterator for iterating over members of an AJAAncillaryDataList.
std::map< uint16_t, AJAAncDataType > AJAAncillaryAnalogTypeMap
Associates certain frame line numbers with specific types of "raw" or "analog" ancillary data....
AJAAncillaryDataList::iterator AJAAncDataListIter
Handy non-const iterator for iterating over members of an AJAAncillaryDataList.
I am the principal class that stores a single SMPTE-291 SDI ancillary data packet OR the digitized co...
virtual AJAStatus AddAncillaryData(const AJAAncillaryData &inAncData)
Appends a copy of the given AJAAncillaryData object to me.
std::vector< uint16_t > UWordSequence
An ordered sequence of UWord (uint16_t) values.
const uint8_t AJAAncillaryDataWildcard_DID
std::vector< ULWordSequence > AJAU32Pkts
Ordered sequence of U32 RTP packets (U32s in network byte order)
AJAU32Pkts::iterator AJAU32PktsIter
Handy non-const iterator over AJAU32Pkts.
I interrogate and control an AJA video/audio capture/playout device.
AJAAncPktCounts::const_iterator AJAAncPktCountsConstIter
Handy const iterator over AJAAncPktCounts.
virtual std::ostream & Print(std::ostream &inOutStream, const bool inDetailed=true) const
Dumps a human-readable description of every packet in my list to the given output stream.
virtual bool AllowMultiRTPTransmit(void) const
Answers true if multiple RTP packets will be transmitted/encoded. The default behavior is to transmit...
virtual uint32_t CountAncillaryData(void) const
Answers with the number of AJAAncillaryData objects I contain (any/all types).
const uint8_t AJAAncillaryDataWildcard_SID
std::vector< uint32_t > ULWordSequence
An ordered sequence of ULWord (uint32_t) values.
AJAAncPktDIDSIDSet::iterator AJAAncPktDIDSIDSetIter
Handy non-const iterator for AJAAncPktDIDSIDSet (New in SDK 16.0)
std::ostream & operator<<(std::ostream &inOutStream, const AJAAncillaryList &inList)
Writes a human-readable rendition of the given AJAAncillaryList into the given output stream.
virtual AJAAncDataType GetAnalogAncillaryDataType(const AJAAncillaryData &inAncData)
virtual void SetAllowMultiRTPReceive(const bool inAllow)
Determines if more than one RTP packet will be processed/decoded (via AddReceivedAncillaryData).
virtual bool IgnoreChecksumErrors(void) const
Answers if checksum errors are to be ignored or not. The default behavior is to not ignore them.
AJAAncPktDIDSIDSet::const_iterator AJAAncPktDIDSIDSetConstIter
Handy const iterator for AJAAncPktDIDSIDSet (New in SDK 16.0)