AJA NTV2 SDK
17.1.3.1410
NTV2 SDK 17.1.3.1410
|
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 AJAAncillaryList & | operator= (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 AJAAncillaryData * | GetAncillaryDataAtIndex (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 AJAAncillaryData * | GetAncillaryDataWithType (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 AJAAncillaryData * | GetAncillaryDataWithID (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 |
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.
Definition at line 64 of file ancillarylist.h.
|
protected |
Handy const iterator for iterating over members of an AJAAncillaryDataList.
Definition at line 616 of file ancillarylist.h.
|
protected |
Handy non-const iterator for iterating over members of an AJAAncillaryDataList.
Definition at line 617 of file ancillarylist.h.
|
protected |
Definition at line 612 of file ancillarylist.h.
AJAAncillaryList::AJAAncillaryList | ( | ) |
Instantiate and initialize with a default set of values.
Definition at line 151 of file ancillarylist.cpp.
|
virtual |
My destructor.
Definition at line 167 of file ancillarylist.cpp.
|
inlinevirtual |
Appends a copy of the given AJAAncillaryData object to me.
[in] | inAncData | Specifies the AJAAncillaryData object to be copied and added to me. |
Definition at line 282 of file ancillarylist.h.
|
virtual |
Appends a copy of the given AJAAncillaryData object to me.
[in] | pInAncData | Specifies the AJAAncillaryData object to be copied and added to me. |
Definition at line 335 of file ancillarylist.cpp.
|
virtual |
Appends a copy of the given list's packets to me.
[in] | inPackets | Specifies the AJAAncillaryList containing the packets to be copied and added to me. |
Definition at line 317 of file ancillarylist.cpp.
|
staticprotected |
Appends whatever can be decoded from the given device Anc buffer to the AJAAncillaryList.
[in] | inAncBuffer | Specifies the Anc buffer to be parsed. |
outPacketList | The AJAAncillaryList to be appended to, for whatever packets are found in the buffer. | |
[in] | inFrameNum | If non-zero, replaces the frame identifier of packets that have a zero frame ID. |
Definition at line 971 of file ancillarylist.cpp.
|
staticprotected |
Appends whatever can be decoded from the given device HDIM aux buffer to the AJAAncillaryList.
[in] | inAuxBuffer | Specifies the Anc buffer to be parsed. |
outPacketList | The AJAAncillaryList to be appended to, for whatever packets are found in the buffer. | |
[in] | inFrameNum | If non-zero, replaces the frame identifier of packets that have a zero frame ID. |
Definition at line 1052 of file ancillarylist.cpp.
|
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.
[in] | inReceivedData | Specifies the buffer that contains "raw" ancillary data received from an Anc Extractor widget. |
[in] | inFrameNum | Optionally 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.
Definition at line 542 of file ancillarylist.cpp.
|
virtual |
Parse a "raw" RTP packet received from hardware (ingest) in network byte order into separate AJAAncillaryData objects and appends them to me.
[in] | inReceivedData | The 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.
Definition at line 724 of file ancillarylist.cpp.
|
virtual |
Parse "raw" HDMI auxillary data bytes received from hardware (ingest) into separate AJAAncillaryData objects and appends them to me.
[in] | pInReceivedData | Specifies a valid, non-NULL address of the first byte of "raw" ancillary data received by an AncExtractor widget. |
[in] | inByteCount | Specifies the number of bytes of data in the specified buffer to process. |
[in] | inFrameNum | If 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.
Definition at line 667 of file ancillarylist.cpp.
|
virtual |
Adds the packet that originated in the VANC lines of an NTV2 frame buffer to my list.
[in] | inPacketWords | Specifies 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] | inLocation | Specifies where the packet was found. |
[in] | inFrameNum | If non-zero, specifies/sets the frame identifier for the added packets. |
Definition at line 840 of file ancillarylist.cpp.
|
inlinevirtual |
Answers true if multiple RTP packets are allowed for capture/receive. The default behavior is to process all (multiple) received RTP packets.
Definition at line 547 of file ancillarylist.h.
|
inlinevirtual |
Answers true if multiple RTP packets will be transmitted/encoded. The default behavior is to transmit/encode a single RTP packet.
Definition at line 474 of file ancillarylist.h.
|
inlinestaticprotected |
Definition at line 621 of file ancillarylist.h.
|
virtual |
Removes and frees all of my AJAAncillaryData objects.
Definition at line 357 of file ancillarylist.cpp.
|
static |
Clears my global Analog Ancillary Data Type map.
Definition at line 1730 of file ancillarylist.cpp.
|
virtual |
Compares me with another list.
[in] | inCompareList | Specifies the other list to be compared with me. |
[in] | inIgnoreLocation | If true, don't compare each packet's AJAAncillaryDataLocation info. Defaults to true. |
[in] | inIgnoreChecksum | If true, don't compare each packet's checksums. Defaults to true. |
Definition at line 467 of file ancillarylist.cpp.
|
virtual |
Compares me with another list and returns a std::string that contains a human-readable explanation of the first difference found (if any).
[in] | inCompareList | Specifies the other list to be compared with me. |
[in] | inIgnoreLocation | If true, don't compare each packet's AJAAncillaryDataLocation info. Defaults to true. |
[in] | inIgnoreChecksum | If true, don't compare each packet's checksums. Defaults to true. |
Definition at line 482 of file ancillarylist.cpp.
|
virtual |
Compares me with another packet list and answers with a list of std::strings of all per-packet differences.
[out] | outDiffs | Receives a list of per-packet differences. If empty, no differences were found. |
[in] | inCompareList | Specifies the other packet list to be compared with me. |
[in] | inIgnoreLocation | If true (the default), don't compare each packet's AJAAncillaryDataLocation info. |
[in] | inIgnoreChecksum | If true (the default), don't compare each packet's checksums. |
|
inlinevirtual |
Answers with the number of AJAAncillaryData objects I contain (any/all types).
Definition at line 199 of file ancillarylist.h.
|
virtual |
Answers with the number of AncillaryData objects having the given DataID and SecondaryID.
[in] | inDID | Specifies the DataID to match. Use AJAAncillaryDataWildcard_DID to match any/all DIDs. |
[in] | inSID | Specifies the secondary ID to match. Use AJAAncillaryDataWildcard_SID to match any/all SIDs. |
Definition at line 263 of file ancillarylist.cpp.
|
virtual |
Answers with the number of AJAAncillaryData objects having the given type.
[in] | inMatchType | Specifies the AJAAncDataType to match. |
Definition at line 222 of file ancillarylist.cpp.
|
virtual |
Removes all copies of the AJAAncillaryData object from me and deletes the object itself.
[in] | pInAncData | Specifies the AJAAncillaryData object to remove and delete. |
Definition at line 400 of file ancillarylist.cpp.
|
inlineprotectedvirtual |
Definition at line 619 of file ancillarylist.h.
|
static |
Answers with the ancillary data type associated with the designated line.
[in] | inLineNum | Specifies the frame line number of interest. |
Definition at line 1768 of file ancillarylist.cpp.
|
static |
Returns a copy of the global Analog Ancillary Data Type map.
[out] | outMap | Receives a copy of the map. |
Definition at line 1746 of file ancillarylist.cpp.
|
virtual |
Answers with the AJAAncillaryData object at the given index.
[in] | inIndex | Specifies the zero-based index position. |
Definition at line 189 of file ancillarylist.cpp.
|
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.
[in] | inIsProgressive | Specify true for insertion into Progressive (transport) frames, or false for interlaced or psf. |
[in] | inF2StartLine | For interlaced/psf frames, specifies the line number where "field 2" begins; otherwise ignored. |
pOutF1AncData | Specifies the valid, non-NULL starting address of the "Field 1" ancillary data buffer. Note that this buffer is written for Progressive frames. | |
[in] | inF1ByteCountMax | Specifies the capacity (in bytes) of the Field 1 buffer (may be larger than needed). |
pOutF2AncData | Specifies the valid, non-NULL starting address of the "Field 2" ancillary data buffer. Note that this buffer is not written for Progressive frames. | |
[in] | inF2ByteCountMax | Specifies the capacity (in bytes) of the Field 2 buffer (may be larger than needed). |
Definition at line 1266 of file ancillarylist.cpp.
|
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.
[in] | inIsProgressive | Specify true for insertion into Progressive (transport) frames, or false for interlaced or psf. |
[in] | inF2StartLine | For interlaced/psf frames, specifies the line number where "field 2" begins; otherwise ignored. |
[out] | outF1ByteCount | Receives the size (in bytes) of the buffer needed to hold the "Field 1" anc data. |
[out] | outF2ByteCount | Receives the size (in bytes) of the buffer needed to hold the "Field 2" anc data. |
Definition at line 1240 of file ancillarylist.cpp.
|
virtual |
Answers with the AJAAncillaryData object having the given DataID and SecondaryID, at the given index.
[in] | inDID | DataID to match (use AJAAncillaryDataWildcard_DID to match "any" DID) |
[in] | inSID | Secondary ID to match (use AJAAncillaryDataWildcard_SID to match "any" SID) |
[in] | inIndex | Specifies which instance among those having the given DID and SID (use zero for the first one). |
Definition at line 281 of file ancillarylist.cpp.
|
virtual |
Answers with the AJAAncillaryData object having the given type and index.
[in] | inMatchType | Specifies the AJAAncDataType to match. |
[in] | inIndex | Specifies the desired instance of the given type (use zero for the first one). |
Definition at line 238 of file ancillarylist.cpp.
|
virtual |
Definition at line 304 of file ancillarylist.cpp.
|
inlinestatic |
Definition at line 122 of file ancillarylist.cpp.
|
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.
F1Buffer | Specifies the buffer memory into which Field 1's anc data will be written. | |
F2Buffer | Specifies the buffer memory into which Field 2's anc data will be written. | |
inIsProgressive | Specify true to designate the output ancillary data stream as progressive; otherwise, specify false. Defaults to true (is progressive). | |
[in] | inF2StartLine | For interlaced/psf frames, specifies the line number where Field 2 begins; otherwise ignored. Defaults to zero (progressive). For interlaced video, see NTV2SmpteLineNumber::GetLastLine . |
Definition at line 452 of file ancillarylist.h.
|
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.
F1Buffer | Specifies the buffer memory into which Field 1's IP/RTP data will be written. | |
F2Buffer | Specifies the buffer memory into which Field 2's IP/RTP data will be written. | |
[in] | inIsProgressive | Specify true to designate the output ancillary data stream as progressive; otherwise, specify false. Defaults to true (is progressive). |
[in] | inF2StartLine | For interlaced/psf frames, specifies the line number where Field 2 begins; otherwise ignored. Defaults to zero (progressive). |
Definition at line 1581 of file ancillarylist.cpp.
|
virtual |
Answers with the number of bytes required to store IP/RTP for my AJAAncillaryData packets in RTP Anc Buffer Data Format .
[out] | outF1ByteCount | Receives the requisite byte count for Field 1's IP/RTP packet data. |
[out] | outF2ByteCount | Receives the requisite byte count for Field 1's IP/RTP packet data. |
[in] | inIsProgressive | Specify true to designate the output ancillary data stream as progressive; otherwise, specify false. Defaults to true (is progressive). |
[in] | inF2StartLine | For interlaced/psf frames, specifies the line number where Field 2 begins; otherwise ignored. Defaults to zero (progressive). |
Definition at line 1618 of file ancillarylist.cpp.
|
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.
[out] | outF1U32Pkts | Receives my F1 AJAU32Pkts, containing zero or more RTP ULWordSequences. |
[out] | outF2U32Pkts | Receives my F1 AJAU32Pkts, containing zero or more RTP ULWordSequences. |
[out] | outF1AncCounts | Receives my F1 SMPTE Anc packet counts for each of the returned F1 RTP packets (in outF1U32Pkts). |
[out] | outF2AncCounts | Receives my F2 SMPTE Anc packet counts for each of the returned F2 RTP packets (in outF2U32Pkts). |
[in] | inIsProgressive | Specify false for interlace; true for progressive/Psf. |
[in] | inF2StartLine | For interlaced/psf frames, specifies the line number where Field 2 begins; otherwise ignored. Defaults to zero (progressive). |
Definition at line 1116 of file ancillarylist.cpp.
|
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.
F1Buffer | Specifies the buffer memory into which Field 1's anc data will be written. | |
F2Buffer | Specifies the buffer memory into which Field 2's anc data will be written. | |
inIsProgressive | Specify true to designate the output ancillary data stream as progressive; otherwise, specify false. Defaults to true (is progressive). | |
[in] | inF2StartLine | For interlaced/psf frames, specifies the line number where Field 2 begins; otherwise ignored. Defaults to zero (progressive). For interlaced video, see NTV2SmpteLineNumber::GetLastLine . |
Definition at line 1277 of file ancillarylist.cpp.
|
virtual |
Writes my AJAAncillaryData objects into the given tall/taller frame buffer having the given raster/format.
inFrameBuffer | Specifies the frame buffer memory on the host to modify. | |
[in] | inFormatDesc | Describes the frame buffer's raster and pixel format. |
Definition at line 1325 of file ancillarylist.cpp.
|
inlinevirtual |
Answers if checksum errors are to be ignored or not. The default behavior is to not ignore them.
Definition at line 562 of file ancillarylist.h.
|
inlinevirtual |
Definition at line 204 of file ancillarylist.h.
|
inlinestatic |
Definition at line 132 of file ancillarylist.cpp.
|
virtual |
Assignment operator – replaces my contents with the right-hand-side value.
[in] | inRHS | The list of packets to be copied into me. |
Definition at line 173 of file ancillarylist.cpp.
|
virtual |
Sends a "ParsePayloadData" command to all of my AJAAncillaryData objects.
Definition at line 205 of file ancillarylist.cpp.
|
virtual |
Dumps a human-readable description of every packet in my list to the given output stream.
[in] | inDetailed | If true, include some of the packet data; otherwise omit packet data. Defaults to true. |
Definition at line 1639 of file ancillarylist.cpp.
|
virtual |
Removes all copies of the AJAAncillaryData object from me.
[in] | pInAncData | Specifies the AJAAncillaryData object to remove. |
Definition at line 378 of file ancillarylist.cpp.
|
inlinestatic |
Resets my tally of excluded zero-length packets to zero.
Definition at line 127 of file ancillarylist.cpp.
|
inlinevirtual |
Determines if more than one RTP packet will be processed/decoded (via AddReceivedAncillaryData).
[in] | inAllow | Specify 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.
|
inlinevirtual |
Determines if multiple RTP packets will be encoded for playout (via GetIPTransmitData). The default behavior is to transmit/encode a single RTP packet.
[in] | inAllow | Specify 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.
|
static |
Sets (or changes) the map entry for the designated line to the designated type.
[in] | inLineNum | Specifies the frame line number to be added or changed. |
[in] | inType | Specifies the ancillary data type to be associated with this line. Use AJAAncDataType_Unknown to remove any associations with the line. |
Definition at line 1754 of file ancillarylist.cpp.
|
static |
Copies the given map to the global Analog Ancillary Data Type map.
[in] | inMap | The map to copy. |
Definition at line 1738 of file ancillarylist.cpp.
|
static |
Returns all ancillary data packets found in the given F1 and F2 ancillary data buffers.
[in] | inF1AncBuffer | Specifies the F1 ancillary data buffer. |
[in] | inF2AncBuffer | Specifies the F2 ancillary data buffer. |
[out] | outPackets | Receives the packet list. |
[in] | inFrameNum | If non-zero, replaces the frame identifier of new packets that have a zero frame ID. |
Definition at line 1076 of file ancillarylist.cpp.
|
static |
Returns all HDMI Aux data packets found in the given F1 and F2 aux data buffers.
[in] | inF1AuxBuffer | Specifies the F1 ancillary data buffer. |
[in] | inF2AuxBuffer | Specifies the F2 ancillary data buffer. |
[out] | outPackets | Receives the packet list. |
[in] | inFrameNum | If non-zero, replaces the frame identifier of new packets that have a zero frame ID. |
Definition at line 1093 of file ancillarylist.cpp.
|
static |
Returns all packets found in the VANC lines of the given NTV2 frame buffer.
[in] | inFrameBuffer | Specifies the NTV2 frame buffer (or at least the portion containing the VANC lines). |
[in] | inFormatDesc | Describes the frame buffer (pixel format, video standard, etc.). |
[out] | outPackets | Receives the packets found. |
[in] | inFrameNum | If non-zero, specifies/sets the frame identifier for the packets. |
inFrameBuffer
was sourced from the "B" link of a Dual-Link SDI source. Definition at line 880 of file ancillarylist.cpp.
|
inlinevirtual |
Determines if checksum errors encountered during capture/ingest (via AddReceivedAncillaryData) will be ignored or not.
[in] | inIgnore | Specify true to ignore checksum errors; otherwise use false. |
Definition at line 569 of file ancillarylist.h.
|
inlinestatic |
Sets whether or not zero-length packets are included or not.
[in] | inExclude | Specify true to exclude zero-length packets. |
Definition at line 137 of file ancillarylist.cpp.
|
virtual |
Sort the AncillaryDataList by DataID (DID) value.
Definition at line 435 of file ancillarylist.cpp.
|
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.
Definition at line 456 of file ancillarylist.cpp.
|
virtual |
Sort the AncillaryDataList by Secondary ID (SID) value.
Definition at line 446 of file ancillarylist.cpp.
|
static |
Copies GUMP from inSrc to outDst buffers, but removes ATC, VPID, VITC, EDH & raw/analog packets.
[in] | inSrc | Specifies the source GUMP buffer. |
outDst | Specifies the destination buffer. It must be at least as large as inSrc. |
Definition at line 1654 of file ancillarylist.cpp.
|
staticprotected |
Fills the buffer with the given RTP packets.
theBuffer | The 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] | outBytesWritten | Receives the total bytes written into the buffer (or that would be written if given a non-NULL buffer). |
[in] | inRTPPkts | The RTP packets, a vector of zero or more RTP ULWordSequences. |
[in] | inAncCounts | The per-RTP-packet anc packet counts. |
[in] | inIsF2 | Specify false for Field1 (or progressive or Psf); true for Field2. |
[in] | inIsProgressive | Specify false for interlace; true for progressive/Psf. |
Definition at line 1505 of file ancillarylist.cpp.
|
friend |
Definition at line 609 of file ancillarylist.h.