AJA NTV2 SDK  17.1.3.1410
NTV2 SDK 17.1.3.1410
AJAAncillaryList Class Reference

I am an ordered collection of AJAAncillaryData instances which represent one or more SMPTE 291 data packets that were captured from, or destined to be played into, one video field or frame. I can be built from the ancillary data received by the hardware during one field/frame, and/or built "from scratch" and used as the source of outgoing ancillary data to hardware. More...

#include <ancillarylist.h>

Public Member Functions

Construction, Destruction, Assignment & Copying
 AJAAncillaryList ()
 Instantiate and initialize with a default set of values. More...
 
virtual ~AJAAncillaryList ()
 My destructor. More...
 
virtual AJAAncillaryListoperator= (const AJAAncillaryList &inRHS)
 Assignment operator – replaces my contents with the right-hand-side value. More...
 
Fetching, Searching & Enumerating Packets
virtual uint32_t CountAncillaryData (void) const
 Answers with the number of AJAAncillaryData objects I contain (any/all types). More...
 
virtual bool IsEmpty (void) const
 
virtual AJAAncillaryDataGetAncillaryDataAtIndex (const uint32_t inIndex) const
 Answers with the AJAAncillaryData object at the given index. More...
 
virtual uint32_t CountAncillaryDataWithType (const AJAAncDataType inMatchType) const
 Answers with the number of AJAAncillaryData objects having the given type. More...
 
virtual AJAAncillaryDataGetAncillaryDataWithType (const AJAAncDataType inMatchType, const uint32_t inIndex=0) const
 Answers with the AJAAncillaryData object having the given type and index. More...
 
virtual uint32_t CountAncillaryDataWithID (const uint8_t inDID, const uint8_t inSID) const
 Answers with the number of AncillaryData objects having the given DataID and SecondaryID. More...
 
virtual AJAAncillaryDataGetAncillaryDataWithID (const uint8_t inDID, const uint8_t inSID, const uint32_t inIndex=0) const
 Answers with the AJAAncillaryData object having the given DataID and SecondaryID, at the given index. More...
 
virtual AJAAncPktDIDSIDSet GetAncillaryPacketIDs (void) const
 
Adding & Removing Packets
virtual AJAStatus Clear (void)
 Removes and frees all of my AJAAncillaryData objects. More...
 
virtual AJAStatus AddAncillaryData (const AJAAncillaryList &inPackets)
 Appends a copy of the given list's packets to me. More...
 
virtual AJAStatus AddAncillaryData (const AJAAncillaryData *pInAncData)
 Appends a copy of the given AJAAncillaryData object to me. More...
 
virtual AJAStatus AddAncillaryData (const AJAAncillaryData &inAncData)
 Appends a copy of the given AJAAncillaryData object to me. More...
 
virtual AJAStatus RemoveAncillaryData (AJAAncillaryData *pInAncData)
 Removes all copies of the AJAAncillaryData object from me. More...
 
virtual AJAStatus DeleteAncillaryData (AJAAncillaryData *pInAncData)
 Removes all copies of the AJAAncillaryData object from me and deletes the object itself. More...
 
Operations
virtual AJAStatus SortListByDID (void)
 Sort the AncillaryDataList by DataID (DID) value. More...
 
virtual AJAStatus SortListBySID (void)
 Sort the AncillaryDataList by Secondary ID (SID) value. More...
 
virtual AJAStatus SortListByLocation (void)
 Sort the AncillaryDataList by "location", i.e. where in the video (field, line num, HANC/VANC) the data came from or will be inserted to. More...
 
virtual AJAStatus Compare (const AJAAncillaryList &inCompareList, const bool inIgnoreLocation=true, const bool inIgnoreChecksum=true) const
 Compares me with another list. More...
 
virtual std::string CompareWithInfo (const AJAAncillaryList &inCompareList, const bool inIgnoreLocation=true, const bool inIgnoreChecksum=true) const
 Compares me with another list and returns a std::string that contains a human-readable explanation of the first difference found (if any). More...
 
virtual bool CompareWithInfo (std::vector< std::string > &outDiffs, const AJAAncillaryList &inCompareList, const bool inIgnoreLocation=true, const bool inIgnoreChecksum=true) const
 Compares me with another packet list and answers with a list of std::strings of all per-packet differences. More...
 
Transmit to AJA Hardware (Playout)
virtual AJAStatus GetAncillaryDataTransmitSize (const bool inIsProgressive, const uint32_t inF2StartLine, uint32_t &outF1ByteCount, uint32_t &outF2ByteCount)
 Answers with the sizes of the buffers (one for field 1, one for field 2) needed to hold the anc data inserter "transmit" data for all of my AJAAncillaryData objects. More...
 
virtual AJAStatus GetAncillaryDataTransmitData (const bool inIsProgressive, const uint32_t inF2StartLine, uint8_t *pOutF1AncData, const uint32_t inF1ByteCountMax, uint8_t *pOutF2AncData, const uint32_t inF2ByteCountMax)
 Builds one or two ancillary data buffers (one for field 1, one for field 2) with the anc data inserter "transmit" data for all of my AJAAncillaryData objects. More...
 
virtual AJAStatus GetTransmitData (NTV2Buffer &F1Buffer, NTV2Buffer &F2Buffer, const bool inIsProgressive=true, const uint32_t inF2StartLine=0)
 Encodes my AJAAncillaryData packets into the given buffers in the default SDI Anc Buffer Data Format . The buffer contents are replaced; the unused remainder, if any, will be zeroed. More...
 
virtual AJAStatus GetVANCTransmitData (NTV2Buffer &inFrameBuffer, const NTV2FormatDescriptor &inFormatDesc)
 Writes my AJAAncillaryData objects into the given tall/taller frame buffer having the given raster/format. More...
 
virtual AJAStatus GetIPTransmitData (NTV2Buffer &F1Buffer, NTV2Buffer &F2Buffer, const bool inIsProgressive=true, const uint32_t inF2StartLine=0)
 Explicitly encodes my AJAAncillaryData packets into the given buffers in RTP Anc Buffer Data Format . The buffer contents are replaced; the unused remainder, if any, will be zeroed. More...
 
virtual AJAStatus GetHDMITransmitData (NTV2Buffer &F1Buffer, NTV2Buffer &F2Buffer, const bool inIsProgressive=true, const uint32_t inF2StartLine=0)
 Encodes my AJAAuxiliaryData packets into the given buffers in the default HDMI Aux Buffer Data Format . The buffer contents are replaced; the unused remainder, if any, will be zeroed. More...
 
virtual AJAStatus GetIPTransmitDataLength (uint32_t &outF1ByteCount, uint32_t &outF2ByteCount, const bool inIsProgressive=true, const uint32_t inF2StartLine=0)
 Answers with the number of bytes required to store IP/RTP for my AJAAncillaryData packets in RTP Anc Buffer Data Format . More...
 
virtual bool AllowMultiRTPTransmit (void) const
 Answers true if multiple RTP packets will be transmitted/encoded. The default behavior is to transmit/encode a single RTP packet. More...
 
virtual void SetAllowMultiRTPTransmit (const bool inAllow)
 Determines if multiple RTP packets will be encoded for playout (via GetIPTransmitData). The default behavior is to transmit/encode a single RTP packet. More...
 
Receive from AJA Hardware (Ingest)
virtual AJAStatus AddReceivedAncillaryData (const NTV2Buffer &inReceivedData, const uint32_t inFrameNum=0)
 Parse "raw" ancillary data bytes received from hardware (ingest) – see SDI Anc Buffer Data Format – into separate AJAAncillaryData objects and appends them to me. More...
 
virtual AJAStatus AddReceivedAuxiliaryData (const NTV2Buffer &inReceivedData, const uint32_t inFrameNum=0)
 Parse "raw" HDMI auxillary data bytes received from hardware (ingest) into separate AJAAncillaryData objects and appends them to me. More...
 
virtual AJAStatus AddReceivedAncillaryData (const ULWordSequence &inReceivedData)
 Parse a "raw" RTP packet received from hardware (ingest) in network byte order into separate AJAAncillaryData objects and appends them to me. More...
 
virtual AJAStatus AddVANCData (const UWordSequence &inPacketWords, const AJAAncillaryDataLocation &inLocation, const uint32_t inFrameNum=0)
 Adds the packet that originated in the VANC lines of an NTV2 frame buffer to my list. More...
 
virtual bool AllowMultiRTPReceive (void) const
 Answers true if multiple RTP packets are allowed for capture/receive. The default behavior is to process all (multiple) received RTP packets. More...
 
virtual void SetAllowMultiRTPReceive (const bool inAllow)
 Determines if more than one RTP packet will be processed/decoded (via AddReceivedAncillaryData). More...
 
virtual bool IgnoreChecksumErrors (void) const
 Answers if checksum errors are to be ignored or not. The default behavior is to not ignore them. More...
 
virtual void SetIgnoreChecksumErrors (const bool inIgnore)
 Determines if checksum errors encountered during capture/ingest (via AddReceivedAncillaryData) will be ignored or not. More...
 
virtual AJAStatus ParseAllAncillaryData (void)
 Sends a "ParsePayloadData" command to all of my AJAAncillaryData objects. More...
 
Printing & Debugging
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. More...
 

Static Public Member Functions

static bool StripNativeInserterGUMPPackets (const NTV2Buffer &inSrc, NTV2Buffer &outDst)
 Copies GUMP from inSrc to outDst buffers, but removes ATC, VPID, VITC, EDH & raw/analog packets. More...
 
Create from Device Buffers (Capture/Ingest)
static AJAStatus SetFromVANCData (const NTV2Buffer &inFrameBuffer, const NTV2FormatDescriptor &inFormatDesc, AJAAncillaryList &outPackets, const uint32_t inFrameNum=0)
 Returns all packets found in the VANC lines of the given NTV2 frame buffer. More...
 
static AJAStatus SetFromDeviceAncBuffers (const NTV2Buffer &inF1AncBuffer, const NTV2Buffer &inF2AncBuffer, AJAAncillaryList &outPackets, const uint32_t inFrameNum=0)
 Returns all ancillary data packets found in the given F1 and F2 ancillary data buffers. More...
 
static AJAStatus SetFromDeviceAuxBuffers (const NTV2Buffer &inF1AuxBuffer, const NTV2Buffer &inF2AuxBuffer, AJAAncillaryList &outPackets, const uint32_t inFrameNum=0)
 Returns all HDMI Aux data packets found in the given F1 and F2 aux data buffers. More...
 
Global Configuration
static AJAStatus ClearAnalogAncillaryDataTypeMap (void)
 Clears my global Analog Ancillary Data Type map. More...
 
static AJAStatus SetAnalogAncillaryDataTypeMap (const AJAAncillaryAnalogTypeMap &inMap)
 Copies the given map to the global Analog Ancillary Data Type map. More...
 
static AJAStatus GetAnalogAncillaryDataTypeMap (AJAAncillaryAnalogTypeMap &outMap)
 Returns a copy of the global Analog Ancillary Data Type map. More...
 
static AJAStatus SetAnalogAncillaryDataTypeForLine (const uint16_t inLineNum, const AJAAncDataType inType)
 Sets (or changes) the map entry for the designated line to the designated type. More...
 
static AJAAncDataType GetAnalogAncillaryDataTypeForLine (const uint16_t inLineNum)
 Answers with the ancillary data type associated with the designated line. More...
 
static void SetIncludeZeroLengthPackets (const bool inExclude)
 Sets whether or not zero-length packets are included or not. More...
 
static uint32_t GetExcludedZeroLengthPacketCount (void)
 
static void ResetExcludedZeroLengthPacketCount (void)
 Resets my tally of excluded zero-length packets to zero. More...
 
static bool IsIncludingZeroLengthPackets (void)
 

Protected Types

typedef std::vector< AJAAncillaryData * > AJAAncillaryDataList
 
typedef AJAAncillaryDataList::const_iterator AJAAncDataListConstIter
 Handy const iterator for iterating over members of an AJAAncillaryDataList. More...
 
typedef AJAAncillaryDataList::iterator AJAAncDataListIter
 Handy non-const iterator for iterating over members of an AJAAncillaryDataList. More...
 

Protected Member Functions

virtual AJAAncDataType GetAnalogAncillaryDataType (const AJAAncillaryData &inAncData)
 
virtual AJAStatus GetRTPPackets (AJAU32Pkts &outF1U32Pkts, AJAU32Pkts &outF2U32Pkts, AJAAncPktCounts &outF1AncCounts, AJAAncPktCounts &outF2AncCounts, const bool inIsProgressive, const uint32_t inF2StartLine)
 Answers with my F1 & F2 SMPTE anc packets encoded as RTP ULWordSequences. The returned ULWords are already network-byte-order, ready to encapsulate into an RTP packet buffer. More...
 

Static Protected Member Functions

static bool BufferHasGUMPData (const NTV2Buffer &inBuffer)
 
static AJAStatus AddFromDeviceAncBuffer (const NTV2Buffer &inAncBuffer, AJAAncillaryList &outPacketList, const uint32_t inFrameNum=0)
 Appends whatever can be decoded from the given device Anc buffer to the AJAAncillaryList. More...
 
static AJAStatus AddFromDeviceAuxBuffer (const NTV2Buffer &inAuxBuffer, AJAAncillaryList &outPacketList, const uint32_t inFrameNum=0)
 Appends whatever can be decoded from the given device HDIM aux buffer to the AJAAncillaryList. More...
 
static AJAStatus WriteRTPPackets (NTV2Buffer &theBuffer, uint32_t &outBytesWritten, const AJAU32Pkts &inRTPPkts, const AJAAncPktCounts &inAncCounts, const bool inIsF2, const bool inIsProgressive)
 Fills the buffer with the given RTP packets. More...
 

Friends

class CNTV2Card
 

Detailed Description

I am an ordered collection of AJAAncillaryData instances which represent one or more SMPTE 291 data packets that were captured from, or destined to be played into, one video field or frame. I can be built from the ancillary data received by the hardware during one field/frame, and/or built "from scratch" and used as the source of outgoing ancillary data to hardware.

By default, packets (AJAAncillaryData instances) remain in the order added to me. Use my AJAAncillaryList::SortListByDID, AJAAncillaryList::SortListBySID or AJAAncillaryList::SortListByLocation methods to sort my packets by DID, SDID or location.

Warning
I am not thread-safe! When any of my non-const instance methods are called by one thread, do not call any of my other instance methods from any other thread.

Definition at line 64 of file ancillarylist.h.

Member Typedef Documentation

◆ AJAAncDataListConstIter

typedef AJAAncillaryDataList::const_iterator AJAAncillaryList::AJAAncDataListConstIter
protected

Handy const iterator for iterating over members of an AJAAncillaryDataList.

Definition at line 616 of file ancillarylist.h.

◆ AJAAncDataListIter

typedef AJAAncillaryDataList::iterator AJAAncillaryList::AJAAncDataListIter
protected

Handy non-const iterator for iterating over members of an AJAAncillaryDataList.

Definition at line 617 of file ancillarylist.h.

◆ AJAAncillaryDataList

Definition at line 612 of file ancillarylist.h.

Constructor & Destructor Documentation

◆ AJAAncillaryList()

AJAAncillaryList::AJAAncillaryList ( )

Instantiate and initialize with a default set of values.

Definition at line 151 of file ancillarylist.cpp.

◆ ~AJAAncillaryList()

AJAAncillaryList::~AJAAncillaryList ( )
virtual

My destructor.

Definition at line 167 of file ancillarylist.cpp.

Member Function Documentation

◆ AddAncillaryData() [1/3]

virtual AJAStatus AJAAncillaryList::AddAncillaryData ( const AJAAncillaryData inAncData)
inlinevirtual

Appends a copy of the given AJAAncillaryData object to me.

Parameters
[in]inAncDataSpecifies the AJAAncillaryData object to be copied and added to me.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 282 of file ancillarylist.h.

◆ AddAncillaryData() [2/3]

AJAStatus AJAAncillaryList::AddAncillaryData ( const AJAAncillaryData pInAncData)
virtual

Appends a copy of the given AJAAncillaryData object to me.

Parameters
[in]pInAncDataSpecifies the AJAAncillaryData object to be copied and added to me.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 335 of file ancillarylist.cpp.

◆ AddAncillaryData() [3/3]

AJAStatus AJAAncillaryList::AddAncillaryData ( const AJAAncillaryList inPackets)
virtual

Appends a copy of the given list's packets to me.

Parameters
[in]inPacketsSpecifies the AJAAncillaryList containing the packets to be copied and added to me.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 317 of file ancillarylist.cpp.

◆ AddFromDeviceAncBuffer()

AJAStatus AJAAncillaryList::AddFromDeviceAncBuffer ( const NTV2Buffer inAncBuffer,
AJAAncillaryList outPacketList,
const uint32_t  inFrameNum = 0 
)
staticprotected

Appends whatever can be decoded from the given device Anc buffer to the AJAAncillaryList.

Parameters
[in]inAncBufferSpecifies the Anc buffer to be parsed.
outPacketListThe AJAAncillaryList to be appended to, for whatever packets are found in the buffer.
[in]inFrameNumIf non-zero, replaces the frame identifier of packets that have a zero frame ID.
Note
Called by SetFromDeviceAncBuffers, once for the F1 buffer, another time for the F2 buffer.
Returns
AJA_STATUS_SUCCESS if successful, including if no Anc packets are found and added to the list.

Definition at line 971 of file ancillarylist.cpp.

◆ AddFromDeviceAuxBuffer()

AJAStatus AJAAncillaryList::AddFromDeviceAuxBuffer ( const NTV2Buffer inAuxBuffer,
AJAAncillaryList outPacketList,
const uint32_t  inFrameNum = 0 
)
staticprotected

Appends whatever can be decoded from the given device HDIM aux buffer to the AJAAncillaryList.

Parameters
[in]inAuxBufferSpecifies the Anc buffer to be parsed.
outPacketListThe AJAAncillaryList to be appended to, for whatever packets are found in the buffer.
[in]inFrameNumIf non-zero, replaces the frame identifier of packets that have a zero frame ID.
Note
Called by SetFromDeviceAncBuffers, once for the F1 buffer, another time for the F2 buffer.
Returns
AJA_STATUS_SUCCESS if successful, including if no Anc packets are found and added to the list.

Definition at line 1052 of file ancillarylist.cpp.

◆ AddReceivedAncillaryData() [1/2]

AJAStatus AJAAncillaryList::AddReceivedAncillaryData ( const NTV2Buffer inReceivedData,
const uint32_t  inFrameNum = 0 
)
virtual

Parse "raw" ancillary data bytes received from hardware (ingest) – see SDI Anc Buffer Data Format – into separate AJAAncillaryData objects and appends them to me.

Parameters
[in]inReceivedDataSpecifies the buffer that contains "raw" ancillary data received from an Anc Extractor widget.
[in]inFrameNumOptionally specifies the frame identifier.

For each packet parsed from the received data, AJAAncillaryDataFactory::GuessAncillaryDataType is called to ascertain the packet's AJAAncDataType, then AJAAncillaryDataFactory::Create is used to instantiate the specific AJAAncillaryData subclass instance.

Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 542 of file ancillarylist.cpp.

◆ AddReceivedAncillaryData() [2/2]

AJAStatus AJAAncillaryList::AddReceivedAncillaryData ( const ULWordSequence inReceivedData)
virtual

Parse a "raw" RTP packet received from hardware (ingest) in network byte order into separate AJAAncillaryData objects and appends them to me.

Parameters
[in]inReceivedDataThe received packet words in network byte order.

For each packet parsed from the received data, AJAAncillaryDataFactory::GuessAncillaryDataType is called to ascertain the packet's AJAAncDataType, then AJAAncillaryDataFactory::Create is used to instantiate the specific AJAAncillaryData subclass instance.

Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 724 of file ancillarylist.cpp.

◆ AddReceivedAuxiliaryData()

AJAStatus AJAAncillaryList::AddReceivedAuxiliaryData ( const NTV2Buffer inReceivedData,
const uint32_t  inFrameNum = 0 
)
virtual

Parse "raw" HDMI auxillary data bytes received from hardware (ingest) into separate AJAAncillaryData objects and appends them to me.

Parameters
[in]pInReceivedDataSpecifies a valid, non-NULL address of the first byte of "raw" ancillary data received by an AncExtractor widget.
[in]inByteCountSpecifies the number of bytes of data in the specified buffer to process.
[in]inFrameNumIf non-zero, replaces the frame identifier of new packets that have a zero frame ID.

For each packet parsed from the received data, AJAAncillaryDataFactory::GuessAncillaryDataType is called to ascertain the packet's AJAAncDataType, then AJAAncillaryDataFactory::Create is used to instantiate the specific AJAAncillaryData subclass instance.

Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 667 of file ancillarylist.cpp.

◆ AddVANCData()

AJAStatus AJAAncillaryList::AddVANCData ( const UWordSequence inPacketWords,
const AJAAncillaryDataLocation inLocation,
const uint32_t  inFrameNum = 0 
)
virtual

Adds the packet that originated in the VANC lines of an NTV2 frame buffer to my list.

Parameters
[in]inPacketWordsSpecifies the "raw" 16-bit User Data Words of the packet to be added. The first six elements must be 0x0000, 0x03ff, 0x03ff, DID, SDID, DC, data words, and CS. Each word will have its upper byte masked off.
[in]inLocationSpecifies where the packet was found.
[in]inFrameNumIf non-zero, specifies/sets the frame identifier for the added packets.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 840 of file ancillarylist.cpp.

◆ AllowMultiRTPReceive()

virtual bool AJAAncillaryList::AllowMultiRTPReceive ( void  ) const
inlinevirtual

Answers true if multiple RTP packets are allowed for capture/receive. The default behavior is to process all (multiple) received RTP packets.

Returns
True if multiple RTP packets are allowed to be decoded; otherwise false.

Definition at line 547 of file ancillarylist.h.

◆ AllowMultiRTPTransmit()

virtual bool AJAAncillaryList::AllowMultiRTPTransmit ( void  ) const
inlinevirtual

Answers true if multiple RTP packets will be transmitted/encoded. The default behavior is to transmit/encode a single RTP packet.

Returns
True if multiple RTP packets are allowed to be encoded; otherwise false.

Definition at line 474 of file ancillarylist.h.

◆ BufferHasGUMPData()

static bool AJAAncillaryList::BufferHasGUMPData ( const NTV2Buffer inBuffer)
inlinestaticprotected

Definition at line 621 of file ancillarylist.h.

◆ Clear()

AJAStatus AJAAncillaryList::Clear ( void  )
virtual

Removes and frees all of my AJAAncillaryData objects.

Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 357 of file ancillarylist.cpp.

◆ ClearAnalogAncillaryDataTypeMap()

AJAStatus AJAAncillaryList::ClearAnalogAncillaryDataTypeMap ( void  )
static

Clears my global Analog Ancillary Data Type map.

Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1730 of file ancillarylist.cpp.

◆ Compare()

AJAStatus AJAAncillaryList::Compare ( const AJAAncillaryList inCompareList,
const bool  inIgnoreLocation = true,
const bool  inIgnoreChecksum = true 
) const
virtual

Compares me with another list.

Parameters
[in]inCompareListSpecifies the other list to be compared with me.
[in]inIgnoreLocationIf true, don't compare each packet's AJAAncillaryDataLocation info. Defaults to true.
[in]inIgnoreChecksumIf true, don't compare each packet's checksums. Defaults to true.
Returns
AJA_STATUS_SUCCESS if equal; otherwise AJA_STATUS_FAIL.
Note
The sort order of each list, to be considered identical, must be the same.

Definition at line 467 of file ancillarylist.cpp.

◆ CompareWithInfo() [1/2]

string AJAAncillaryList::CompareWithInfo ( const AJAAncillaryList inCompareList,
const bool  inIgnoreLocation = true,
const bool  inIgnoreChecksum = true 
) const
virtual

Compares me with another list and returns a std::string that contains a human-readable explanation of the first difference found (if any).

Parameters
[in]inCompareListSpecifies the other list to be compared with me.
[in]inIgnoreLocationIf true, don't compare each packet's AJAAncillaryDataLocation info. Defaults to true.
[in]inIgnoreChecksumIf true, don't compare each packet's checksums. Defaults to true.
Returns
A string that contains a human-readable explanation of the first difference found (if any); or an empty string if the lists are identical.
Note
The sort order of each list, to be considered identical, must be the same.

Definition at line 482 of file ancillarylist.cpp.

◆ CompareWithInfo() [2/2]

virtual bool AJAAncillaryList::CompareWithInfo ( std::vector< std::string > &  outDiffs,
const AJAAncillaryList inCompareList,
const bool  inIgnoreLocation = true,
const bool  inIgnoreChecksum = true 
) const
virtual

Compares me with another packet list and answers with a list of std::strings of all per-packet differences.

Parameters
[out]outDiffsReceives a list of per-packet differences. If empty, no differences were found.
[in]inCompareListSpecifies the other packet list to be compared with me.
[in]inIgnoreLocationIf true (the default), don't compare each packet's AJAAncillaryDataLocation info.
[in]inIgnoreChecksumIf true (the default), don't compare each packet's checksums.
Returns
True if the packet lists are identical; otherwise false.
Note
The sort order of each list, to be considered identical, must be the same.

◆ CountAncillaryData()

virtual uint32_t AJAAncillaryList::CountAncillaryData ( void  ) const
inlinevirtual

Answers with the number of AJAAncillaryData objects I contain (any/all types).

Returns
The number of AJAAncillaryData objects I contain.

Definition at line 199 of file ancillarylist.h.

◆ CountAncillaryDataWithID()

uint32_t AJAAncillaryList::CountAncillaryDataWithID ( const uint8_t  inDID,
const uint8_t  inSID 
) const
virtual

Answers with the number of AncillaryData objects having the given DataID and SecondaryID.

Parameters
[in]inDIDSpecifies the DataID to match. Use AJAAncillaryDataWildcard_DID to match any/all DIDs.
[in]inSIDSpecifies the secondary ID to match. Use AJAAncillaryDataWildcard_SID to match any/all SIDs.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 263 of file ancillarylist.cpp.

◆ CountAncillaryDataWithType()

uint32_t AJAAncillaryList::CountAncillaryDataWithType ( const AJAAncDataType  inMatchType) const
virtual

Answers with the number of AJAAncillaryData objects having the given type.

Parameters
[in]inMatchTypeSpecifies the AJAAncDataType to match.
Returns
The number of AJAAncillaryData objects having the given type.

Definition at line 222 of file ancillarylist.cpp.

◆ DeleteAncillaryData()

AJAStatus AJAAncillaryList::DeleteAncillaryData ( AJAAncillaryData pInAncData)
virtual

Removes all copies of the AJAAncillaryData object from me and deletes the object itself.

Parameters
[in]pInAncDataSpecifies the AJAAncillaryData object to remove and delete.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 400 of file ancillarylist.cpp.

◆ GetAnalogAncillaryDataType()

virtual AJAAncDataType AJAAncillaryList::GetAnalogAncillaryDataType ( const AJAAncillaryData inAncData)
inlineprotectedvirtual

Definition at line 619 of file ancillarylist.h.

◆ GetAnalogAncillaryDataTypeForLine()

AJAAncDataType AJAAncillaryList::GetAnalogAncillaryDataTypeForLine ( const uint16_t  inLineNum)
static

Answers with the ancillary data type associated with the designated line.

Parameters
[in]inLineNumSpecifies the frame line number of interest.
Returns
The ancillary data type associated with the designated line, if any; otherwise AJAAncDataType_Unknown if the line has no association.

Definition at line 1768 of file ancillarylist.cpp.

◆ GetAnalogAncillaryDataTypeMap()

AJAStatus AJAAncillaryList::GetAnalogAncillaryDataTypeMap ( AJAAncillaryAnalogTypeMap outMap)
static

Returns a copy of the global Analog Ancillary Data Type map.

Parameters
[out]outMapReceives a copy of the map.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1746 of file ancillarylist.cpp.

◆ GetAncillaryDataAtIndex()

AJAAncillaryData * AJAAncillaryList::GetAncillaryDataAtIndex ( const uint32_t  inIndex) const
virtual

Answers with the AJAAncillaryData object at the given index.

Parameters
[in]inIndexSpecifies the zero-based index position.
Returns
The AJAAncillaryData object at the given index (or NULL if not found).
Note
I own the returned object. If my contents are cleared or I'm destroyed, the returned pointer will be invalid.

Definition at line 189 of file ancillarylist.cpp.

◆ GetAncillaryDataTransmitData()

AJAStatus AJAAncillaryList::GetAncillaryDataTransmitData ( const bool  inIsProgressive,
const uint32_t  inF2StartLine,
uint8_t *  pOutF1AncData,
const uint32_t  inF1ByteCountMax,
uint8_t *  pOutF2AncData,
const uint32_t  inF2ByteCountMax 
)
virtual

Builds one or two ancillary data buffers (one for field 1, one for field 2) with the anc data inserter "transmit" data for all of my AJAAncillaryData objects.

Parameters
[in]inIsProgressiveSpecify true for insertion into Progressive (transport) frames, or false for interlaced or psf.
[in]inF2StartLineFor interlaced/psf frames, specifies the line number where "field 2" begins; otherwise ignored.
pOutF1AncDataSpecifies the valid, non-NULL starting address of the "Field 1" ancillary data buffer. Note that this buffer is written for Progressive frames.
[in]inF1ByteCountMaxSpecifies the capacity (in bytes) of the Field 1 buffer (may be larger than needed).
pOutF2AncDataSpecifies the valid, non-NULL starting address of the "Field 2" ancillary data buffer. Note that this buffer is not written for Progressive frames.
[in]inF2ByteCountMaxSpecifies the capacity (in bytes) of the Field 2 buffer (may be larger than needed).
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1266 of file ancillarylist.cpp.

◆ GetAncillaryDataTransmitSize()

AJAStatus AJAAncillaryList::GetAncillaryDataTransmitSize ( const bool  inIsProgressive,
const uint32_t  inF2StartLine,
uint32_t &  outF1ByteCount,
uint32_t &  outF2ByteCount 
)
virtual

Answers with the sizes of the buffers (one for field 1, one for field 2) needed to hold the anc data inserter "transmit" data for all of my AJAAncillaryData objects.

Parameters
[in]inIsProgressiveSpecify true for insertion into Progressive (transport) frames, or false for interlaced or psf.
[in]inF2StartLineFor interlaced/psf frames, specifies the line number where "field 2" begins; otherwise ignored.
[out]outF1ByteCountReceives the size (in bytes) of the buffer needed to hold the "Field 1" anc data.
[out]outF2ByteCountReceives the size (in bytes) of the buffer needed to hold the "Field 2" anc data.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1240 of file ancillarylist.cpp.

◆ GetAncillaryDataWithID()

AJAAncillaryData * AJAAncillaryList::GetAncillaryDataWithID ( const uint8_t  inDID,
const uint8_t  inSID,
const uint32_t  inIndex = 0 
) const
virtual

Answers with the AJAAncillaryData object having the given DataID and SecondaryID, at the given index.

Parameters
[in]inDIDDataID to match (use AJAAncillaryDataWildcard_DID to match "any" DID)
[in]inSIDSecondary ID to match (use AJAAncillaryDataWildcard_SID to match "any" SID)
[in]inIndexSpecifies which instance among those having the given DID and SID (use zero for the first one).
Returns
The AJAAncillaryData object having the given DID, SID and index.
Note
The AJAAncillaryList owns the returned object. If the list gets Cleared or deleted, the returned pointer will become invalid.

Definition at line 281 of file ancillarylist.cpp.

◆ GetAncillaryDataWithType()

AJAAncillaryData * AJAAncillaryList::GetAncillaryDataWithType ( const AJAAncDataType  inMatchType,
const uint32_t  inIndex = 0 
) const
virtual

Answers with the AJAAncillaryData object having the given type and index.

Parameters
[in]inMatchTypeSpecifies the AJAAncDataType to match.
[in]inIndexSpecifies the desired instance of the given type (use zero for the first one).
Returns
The AJAAncillaryData object (or NULL if not found).
Note
The AJAAncillaryList owns the returned object. If the list gets Cleared or deleted, the returned pointer will become invalid.

Definition at line 238 of file ancillarylist.cpp.

◆ GetAncillaryPacketIDs()

AJAAncPktDIDSIDSet AJAAncillaryList::GetAncillaryPacketIDs ( void  ) const
virtual
Returns
The set of DID/SID pairs of all of my packets. (New in SDK 16.0)

Definition at line 304 of file ancillarylist.cpp.

◆ GetExcludedZeroLengthPacketCount()

uint32_t AJAAncillaryList::GetExcludedZeroLengthPacketCount ( void  )
inlinestatic
Returns
The current number of zero-length packets that have been excluded

Definition at line 122 of file ancillarylist.cpp.

◆ GetHDMITransmitData()

virtual AJAStatus AJAAncillaryList::GetHDMITransmitData ( NTV2Buffer F1Buffer,
NTV2Buffer F2Buffer,
const bool  inIsProgressive = true,
const uint32_t  inF2StartLine = 0 
)
inlinevirtual

Encodes my AJAAuxiliaryData packets into the given buffers in the default HDMI Aux Buffer Data Format . The buffer contents are replaced; the unused remainder, if any, will be zeroed.

Parameters
F1BufferSpecifies the buffer memory into which Field 1's anc data will be written.
F2BufferSpecifies the buffer memory into which Field 2's anc data will be written.
inIsProgressiveSpecify true to designate the output ancillary data stream as progressive; otherwise, specify false. Defaults to true (is progressive).
[in]inF2StartLineFor interlaced/psf frames, specifies the line number where Field 2 begins; otherwise ignored. Defaults to zero (progressive). For interlaced video, see NTV2SmpteLineNumber::GetLastLine .
Bug:
TBD – not currently implemented.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 452 of file ancillarylist.h.

◆ GetIPTransmitData()

AJAStatus AJAAncillaryList::GetIPTransmitData ( NTV2Buffer F1Buffer,
NTV2Buffer F2Buffer,
const bool  inIsProgressive = true,
const uint32_t  inF2StartLine = 0 
)
virtual

Explicitly encodes my AJAAncillaryData packets into the given buffers in RTP Anc Buffer Data Format . The buffer contents are replaced; the unused remainder, if any, will be zeroed.

Parameters
F1BufferSpecifies the buffer memory into which Field 1's IP/RTP data will be written.
F2BufferSpecifies the buffer memory into which Field 2's IP/RTP data will be written.
[in]inIsProgressiveSpecify true to designate the output ancillary data stream as progressive; otherwise, specify false. Defaults to true (is progressive).
[in]inF2StartLineFor interlaced/psf frames, specifies the line number where Field 2 begins; otherwise ignored. Defaults to zero (progressive).
Note
This function has the following side-effects:
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1581 of file ancillarylist.cpp.

◆ GetIPTransmitDataLength()

AJAStatus AJAAncillaryList::GetIPTransmitDataLength ( uint32_t &  outF1ByteCount,
uint32_t &  outF2ByteCount,
const bool  inIsProgressive = true,
const uint32_t  inF2StartLine = 0 
)
virtual

Answers with the number of bytes required to store IP/RTP for my AJAAncillaryData packets in RTP Anc Buffer Data Format .

Parameters
[out]outF1ByteCountReceives the requisite byte count for Field 1's IP/RTP packet data.
[out]outF2ByteCountReceives the requisite byte count for Field 1's IP/RTP packet data.
[in]inIsProgressiveSpecify true to designate the output ancillary data stream as progressive; otherwise, specify false. Defaults to true (is progressive).
[in]inF2StartLineFor interlaced/psf frames, specifies the line number where Field 2 begins; otherwise ignored. Defaults to zero (progressive).
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1618 of file ancillarylist.cpp.

◆ GetRTPPackets()

AJAStatus AJAAncillaryList::GetRTPPackets ( AJAU32Pkts outF1U32Pkts,
AJAU32Pkts outF2U32Pkts,
AJAAncPktCounts outF1AncCounts,
AJAAncPktCounts outF2AncCounts,
const bool  inIsProgressive,
const uint32_t  inF2StartLine 
)
protectedvirtual

Answers with my F1 & F2 SMPTE anc packets encoded as RTP ULWordSequences. The returned ULWords are already network-byte-order, ready to encapsulate into an RTP packet buffer.

Parameters
[out]outF1U32PktsReceives my F1 AJAU32Pkts, containing zero or more RTP ULWordSequences.
[out]outF2U32PktsReceives my F1 AJAU32Pkts, containing zero or more RTP ULWordSequences.
[out]outF1AncCountsReceives my F1 SMPTE Anc packet counts for each of the returned F1 RTP packets (in outF1U32Pkts).
[out]outF2AncCountsReceives my F2 SMPTE Anc packet counts for each of the returned F2 RTP packets (in outF2U32Pkts).
[in]inIsProgressiveSpecify false for interlace; true for progressive/Psf.
[in]inF2StartLineFor interlaced/psf frames, specifies the line number where Field 2 begins; otherwise ignored. Defaults to zero (progressive).
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1116 of file ancillarylist.cpp.

◆ GetTransmitData()

AJAStatus AJAAncillaryList::GetTransmitData ( NTV2Buffer F1Buffer,
NTV2Buffer F2Buffer,
const bool  inIsProgressive = true,
const uint32_t  inF2StartLine = 0 
)
virtual

Encodes my AJAAncillaryData packets into the given buffers in the default SDI Anc Buffer Data Format . The buffer contents are replaced; the unused remainder, if any, will be zeroed.

Parameters
F1BufferSpecifies the buffer memory into which Field 1's anc data will be written.
F2BufferSpecifies the buffer memory into which Field 2's anc data will be written.
inIsProgressiveSpecify true to designate the output ancillary data stream as progressive; otherwise, specify false. Defaults to true (is progressive).
[in]inF2StartLineFor interlaced/psf frames, specifies the line number where Field 2 begins; otherwise ignored. Defaults to zero (progressive). For interlaced video, see NTV2SmpteLineNumber::GetLastLine .
Note
This function has a side-effect of automatically sorting my packets by ascending location before encoding.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1277 of file ancillarylist.cpp.

◆ GetVANCTransmitData()

AJAStatus AJAAncillaryList::GetVANCTransmitData ( NTV2Buffer inFrameBuffer,
const NTV2FormatDescriptor inFormatDesc 
)
virtual

Writes my AJAAncillaryData objects into the given tall/taller frame buffer having the given raster/format.

Parameters
inFrameBufferSpecifies the frame buffer memory on the host to modify.
[in]inFormatDescDescribes the frame buffer's raster and pixel format.
Note
Before writing, I automatically sort my packets by location.
Returns
AJA_STATUS_SUCCESS if successful.
Bug:
Currently ignores each packet's horizontal offset (assumes AJAAncDataHorizOffset_Anywhere).

Definition at line 1325 of file ancillarylist.cpp.

◆ IgnoreChecksumErrors()

virtual bool AJAAncillaryList::IgnoreChecksumErrors ( void  ) const
inlinevirtual

Answers if checksum errors are to be ignored or not. The default behavior is to not ignore them.

Note
This applies to capture/ingest (i.e. AddReceivedAncillaryData methods).
Returns
True if ignoring checksum errors; otherwise false.

Definition at line 562 of file ancillarylist.h.

◆ IsEmpty()

virtual bool AJAAncillaryList::IsEmpty ( void  ) const
inlinevirtual
Returns
True if I'm empty; otherwise false.

Definition at line 204 of file ancillarylist.h.

◆ IsIncludingZeroLengthPackets()

bool AJAAncillaryList::IsIncludingZeroLengthPackets ( void  )
inlinestatic
Returns
True if zero-length packets are included; otherwise false.

Definition at line 132 of file ancillarylist.cpp.

◆ operator=()

AJAAncillaryList & AJAAncillaryList::operator= ( const AJAAncillaryList inRHS)
virtual

Assignment operator – replaces my contents with the right-hand-side value.

Parameters
[in]inRHSThe list of packets to be copied into me.
Returns
A non-const reference to myself.

Definition at line 173 of file ancillarylist.cpp.

◆ ParseAllAncillaryData()

AJAStatus AJAAncillaryList::ParseAllAncillaryData ( void  )
virtual

Sends a "ParsePayloadData" command to all of my AJAAncillaryData objects.

Returns
AJA_STATUS_SUCCESS if all items parse successfully; otherwise the last failure result.

Definition at line 205 of file ancillarylist.cpp.

◆ Print()

ostream & AJAAncillaryList::Print ( std::ostream &  inOutStream,
const bool  inDetailed = true 
) const
virtual

Dumps a human-readable description of every packet in my list to the given output stream.

Parameters
[in]inDetailedIf true, include some of the packet data; otherwise omit packet data. Defaults to true.
Returns
The specified output stream.

Definition at line 1639 of file ancillarylist.cpp.

◆ RemoveAncillaryData()

AJAStatus AJAAncillaryList::RemoveAncillaryData ( AJAAncillaryData pInAncData)
virtual

Removes all copies of the AJAAncillaryData object from me.

Note
The given AJAAncillaryData object is not freed/deleted – it's only removed from my list.
Parameters
[in]pInAncDataSpecifies the AJAAncillaryData object to remove.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 378 of file ancillarylist.cpp.

◆ ResetExcludedZeroLengthPacketCount()

void AJAAncillaryList::ResetExcludedZeroLengthPacketCount ( void  )
inlinestatic

Resets my tally of excluded zero-length packets to zero.

Definition at line 127 of file ancillarylist.cpp.

◆ SetAllowMultiRTPReceive()

virtual void AJAAncillaryList::SetAllowMultiRTPReceive ( const bool  inAllow)
inlinevirtual

Determines if more than one RTP packet will be processed/decoded (via AddReceivedAncillaryData).

Parameters
[in]inAllowSpecify true to allow processing/decoding multiple RTP packets from the receiving Anc buffer. Specify false to only process/decode the first RTP packet found in the receiving Anc buffer.

Definition at line 554 of file ancillarylist.h.

◆ SetAllowMultiRTPTransmit()

virtual void AJAAncillaryList::SetAllowMultiRTPTransmit ( const bool  inAllow)
inlinevirtual

Determines if multiple RTP packets will be encoded for playout (via GetIPTransmitData). The default behavior is to transmit/encode a single RTP packet.

Parameters
[in]inAllowSpecify true to allow encoding more than one RTP packet into the destination Anc buffer. Specify false to transmit/encode a single RTP packet (the default).

Definition at line 482 of file ancillarylist.h.

◆ SetAnalogAncillaryDataTypeForLine()

AJAStatus AJAAncillaryList::SetAnalogAncillaryDataTypeForLine ( const uint16_t  inLineNum,
const AJAAncDataType  inType 
)
static

Sets (or changes) the map entry for the designated line to the designated type.

Parameters
[in]inLineNumSpecifies the frame line number to be added or changed.
[in]inTypeSpecifies the ancillary data type to be associated with this line. Use AJAAncDataType_Unknown to remove any associations with the line.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1754 of file ancillarylist.cpp.

◆ SetAnalogAncillaryDataTypeMap()

AJAStatus AJAAncillaryList::SetAnalogAncillaryDataTypeMap ( const AJAAncillaryAnalogTypeMap inMap)
static

Copies the given map to the global Analog Ancillary Data Type map.

Parameters
[in]inMapThe map to copy.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1738 of file ancillarylist.cpp.

◆ SetFromDeviceAncBuffers()

AJAStatus AJAAncillaryList::SetFromDeviceAncBuffers ( const NTV2Buffer inF1AncBuffer,
const NTV2Buffer inF2AncBuffer,
AJAAncillaryList outPackets,
const uint32_t  inFrameNum = 0 
)
static

Returns all ancillary data packets found in the given F1 and F2 ancillary data buffers.

Parameters
[in]inF1AncBufferSpecifies the F1 ancillary data buffer.
[in]inF2AncBufferSpecifies the F2 ancillary data buffer.
[out]outPacketsReceives the packet list.
[in]inFrameNumIf non-zero, replaces the frame identifier of new packets that have a zero frame ID.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1076 of file ancillarylist.cpp.

◆ SetFromDeviceAuxBuffers()

AJAStatus AJAAncillaryList::SetFromDeviceAuxBuffers ( const NTV2Buffer inF1AuxBuffer,
const NTV2Buffer inF2AuxBuffer,
AJAAncillaryList outPackets,
const uint32_t  inFrameNum = 0 
)
static

Returns all HDMI Aux data packets found in the given F1 and F2 aux data buffers.

Parameters
[in]inF1AuxBufferSpecifies the F1 ancillary data buffer.
[in]inF2AuxBufferSpecifies the F2 ancillary data buffer.
[out]outPacketsReceives the packet list.
[in]inFrameNumIf non-zero, replaces the frame identifier of new packets that have a zero frame ID.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1093 of file ancillarylist.cpp.

◆ SetFromVANCData()

AJAStatus AJAAncillaryList::SetFromVANCData ( const NTV2Buffer inFrameBuffer,
const NTV2FormatDescriptor inFormatDesc,
AJAAncillaryList outPackets,
const uint32_t  inFrameNum = 0 
)
static

Returns all packets found in the VANC lines of the given NTV2 frame buffer.

Parameters
[in]inFrameBufferSpecifies the NTV2 frame buffer (or at least the portion containing the VANC lines).
[in]inFormatDescDescribes the frame buffer (pixel format, video standard, etc.).
[out]outPacketsReceives the packets found.
[in]inFrameNumIf non-zero, specifies/sets the frame identifier for the packets.
Returns
AJA_STATUS_SUCCESS if successful.
Bug:
The AJAAncDataLink in the AJAAncillaryDataLocation in each of the returned packets is currently AJAAncDataLink_A, which will be incorrect if, for example, the FrameStore that delivered the inFrameBuffer was sourced from the "B" link of a Dual-Link SDI source.

Definition at line 880 of file ancillarylist.cpp.

◆ SetIgnoreChecksumErrors()

virtual void AJAAncillaryList::SetIgnoreChecksumErrors ( const bool  inIgnore)
inlinevirtual

Determines if checksum errors encountered during capture/ingest (via AddReceivedAncillaryData) will be ignored or not.

Parameters
[in]inIgnoreSpecify true to ignore checksum errors; otherwise use false.

Definition at line 569 of file ancillarylist.h.

◆ SetIncludeZeroLengthPackets()

void AJAAncillaryList::SetIncludeZeroLengthPackets ( const bool  inExclude)
inlinestatic

Sets whether or not zero-length packets are included or not.

Parameters
[in]inExcludeSpecify true to exclude zero-length packets.

Definition at line 137 of file ancillarylist.cpp.

◆ SortListByDID()

AJAStatus AJAAncillaryList::SortListByDID ( void  )
virtual

Sort the AncillaryDataList by DataID (DID) value.

Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 435 of file ancillarylist.cpp.

◆ SortListByLocation()

AJAStatus AJAAncillaryList::SortListByLocation ( void  )
virtual

Sort the AncillaryDataList by "location", i.e. where in the video (field, line num, HANC/VANC) the data came from or will be inserted to.

Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 456 of file ancillarylist.cpp.

◆ SortListBySID()

AJAStatus AJAAncillaryList::SortListBySID ( void  )
virtual

Sort the AncillaryDataList by Secondary ID (SID) value.

Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 446 of file ancillarylist.cpp.

◆ StripNativeInserterGUMPPackets()

bool AJAAncillaryList::StripNativeInserterGUMPPackets ( const NTV2Buffer inSrc,
NTV2Buffer outDst 
)
static

Copies GUMP from inSrc to outDst buffers, but removes ATC, VPID, VITC, EDH & raw/analog packets.

Parameters
[in]inSrcSpecifies the source GUMP buffer.
outDstSpecifies the destination buffer. It must be at least as large as inSrc.
Note
Both inSrc and outDst buffers can refer to the same buffer.
Returns
True if successful; otherwise false.

Definition at line 1654 of file ancillarylist.cpp.

◆ WriteRTPPackets()

AJAStatus AJAAncillaryList::WriteRTPPackets ( NTV2Buffer theBuffer,
uint32_t &  outBytesWritten,
const AJAU32Pkts inRTPPkts,
const AJAAncPktCounts inAncCounts,
const bool  inIsF2,
const bool  inIsProgressive 
)
staticprotected

Fills the buffer with the given RTP packets.

Parameters
theBufferThe buffer to be filled. An empty/NULL buffer is permitted, and will copy no data, but instead will return the byte count that otherwise would've been written.
[out]outBytesWrittenReceives the total bytes written into the buffer (or that would be written if given a non-NULL buffer).
[in]inRTPPktsThe RTP packets, a vector of zero or more RTP ULWordSequences.
[in]inAncCountsThe per-RTP-packet anc packet counts.
[in]inIsF2Specify false for Field1 (or progressive or Psf); true for Field2.
[in]inIsProgressiveSpecify false for interlace; true for progressive/Psf.
Returns
AJA_STATUS_SUCCESS if successful.

Definition at line 1505 of file ancillarylist.cpp.

Friends And Related Function Documentation

◆ CNTV2Card

friend class CNTV2Card
friend

Definition at line 609 of file ancillarylist.h.


The documentation for this class was generated from the following files: