AJA NTV2 SDK  17.5.0.1242
NTV2 SDK 17.5.0.1242
ancillarydata.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef AJA_ANCILLARYDATA_H
9 #define AJA_ANCILLARYDATA_H
10 
11 #include "ajatypes.h"
12 #include "ntv2version.h"
13 #include "ajabase/common/types.h" // for AJAStatus
14 #include "ntv2publicinterface.h"
15 #include <sstream>
16 #include <vector>
17 
18 
19 // Default Packet IDs used when building "analog" packets
20 // NOTE: There's NO guarantee that the Anc Extractor hardware will use these codes - nor does the
21 // Anc Inserter hardware care. To determine if a given packet is "analog" or "digital", check
22 // the appropriate flag in the packet header. This is just to have all the locally (software)
23 // built "analog" IDs come from a single location.
24 const uint8_t AJAAncData_AnalogDID = 0x00;
25 const uint8_t AJAAncData_AnalogSID = 0x00;
26 
27 typedef std::pair <uint8_t, uint8_t> AJAAncDIDSIDPair, AJAAncillaryDIDSIDPair;
28 typedef uint16_t AJAAncPktDIDSID;
29 #define ToAJAAncPktDIDSID(_d_,_s_) (uint16_t((_d_) << 8) | uint16_t(_s_))
30 #define FromAJAAncPktDIDSID(_k_,_d_,_s_) (_d_) = uint8_t(((_k_) & 0xFF00) >> 8); (_d_) = uint8_t(_k_ & 0x00FF);
31 
38 AJAExport std::ostream & operator << (std::ostream & inOutStream, const AJAAncDIDSIDPair & inData);
39 
40 
44 typedef enum
45 {
63 
64 #define IS_VALID_AJAAncDataType(_x_) ((_x_) >= AJAAncDataType_Unknown && (_x_) < AJAAncDataType_Size)
65 #define IS_KNOWN_AJAAncDataType(_x_) ((_x_) > AJAAncDataType_Unknown && (_x_) < AJAAncDataType_Size)
66 
72 AJAExport const std::string & AJAAncDataTypeToString (const AJAAncDataType inValue, const bool inCompact = true);
73 
74 
75 
79 typedef enum
80 {
88 
89 #define IS_VALID_AJAAncDataLink(_x_) ((_x_) >= AJAAncDataLink_A && (_x_) < AJAAncDataLink_Unknown)
90 
96 AJAExport const std::string & AJAAncDataLinkToString (const AJAAncDataLink inValue, const bool inCompact = true);
97 
98 
99 
103 typedef enum
104 {
112 
113 #define IS_VALID_AJAAncDataStream(_x_) ((_x_) >= AJAAncDataStream_1 && (_x_) < AJAAncDataStream_Unknown)
114 #define IS_LINKA_AJAAncDataStream(_x_) ((_x_) == AJAAncDataStream_1)
115 #define IS_LINKB_AJAAncDataStream(_x_) ((_x_) == AJAAncDataStream_2)
116 
122 AJAExport const std::string & AJAAncDataStreamToString (const AJAAncDataStream inValue, const bool inCompact = true);
123 
124 
125 
129 typedef enum
130 {
137 
138 #define IS_VALID_AJAAncDataChannel(_x_) ((_x_) >= AJAAncDataChannel_C && (_x_) < AJAAncDataChannel_Unknown)
139 
145 AJAExport const std::string & AJAAncDataChannelToString (const AJAAncDataChannel inValue, const bool inCompact = true);
146 
147 
148 
152 typedef enum
153 {
159 
160 #define IS_VALID_AncChannelSearchSelect(_x_) ((_x_) >= AncChannelSearch_Y && (_x_) < AncChannelSearch_Invalid)
161 
167 AJAExport std::string AncChannelSearchSelectToString (const AncChannelSearchSelect inSelect, const bool inCompact = true);
168 
169 
175 typedef enum
176 {
182 
183 #define IS_VALID_AJAAncDataSpace(_x_) ((_x_) >= AJAAncDataSpace_VANC && (_x_) < AJAAncDataSpace_Unknown)
184 #define IS_HANC_AJAAncDataSpace(_x_) ((_x_) == AJAAncDataSpace_HANC)
185 #define IS_VANC_AJAAncDataSpace(_x_) ((_x_) == AJAAncDataSpace_VANC)
186 
192 AJAExport const std::string & AJAAncDataSpaceToString (const AJAAncDataSpace inValue, const bool inCompact = true);
193 
194 
195 
196 #define AJAAncDataLineNumber_Unknown uint16_t(0x0000)
197 #define AJAAncDataLineNumber_DontCare uint16_t(0x07FF)
198 #define AJAAncDataLineNumber_Anywhere (AJAAncDataLineNumber_DontCare)
199 #define AJAAncDataLineNumber_AnyVanc uint16_t(0x07FE)
200 #define AJAAncDataLineNumber_Future uint16_t(0x07FD)
201 
202 #define IS_UNKNOWN_AJAAncDataLineNumber(_x_) ((_x_) == AJAAncDataLineNumber_Unknown)
203 #define IS_IRRELEVANT_AJAAncDataLineNumber(_x_) ((_x_) == AJAAncDataLineNumber_DontCare)
204 #define IS_GOOD_AJAAncDataLineNumber(_x_) ((_x_) > 0 && (_x_) < AJAAncDataLineNumber_DontCare)
205 
206 AJAExport std::string AJAAncLineNumberToString (const uint16_t inValue);
207 
208 // Special horizOffset values:
209 #define AJAAncDataHorizOffset_Unknown uint16_t(0x0000)
210 #define AJAAncDataHorizOffset_Anywhere uint16_t(0x0FFF)
211 #define AJAAncDataHorizOffset_AnyHanc uint16_t(0x0FFE)
212 #define AJAAncDataHorizOffset_AnyVanc uint16_t(0x0FFD)
213 #define AJAAncDataHorizOffset_Future uint16_t(0x0FFC)
214 
215 
219 AJAExport std::string AJAAncHorizOffsetToString (const uint16_t inValue);
220 
221 
225 typedef struct AJAExport AJAAncDataLoc
226 {
227  // Instance Methods
228  public:
231  const AJAAncDataSpace inIgnored = AJAAncDataSpace_Unknown,
232  const uint16_t inLineNum = AJAAncDataLineNumber_Unknown,
233  const uint16_t inHorizOffset = AJAAncDataHorizOffset_Unknown,
234  const AJAAncDataStream inStream = AJAAncDataStream_1)
235  { AJA_UNUSED(inIgnored);
236  SetDataLink(inLink).SetDataChannel(inChannel).SetLineNumber(inLineNum).SetHorizontalOffset(inHorizOffset).SetDataStream(inStream);
237  }
238 
239  inline bool operator == (const AJAAncDataLoc & inRHS) const
240  {
241  // Everything must match exactly:
242  bool equal = (GetDataLink() == inRHS.GetDataLink()
243  && GetDataStream() == inRHS.GetDataStream()
244  && GetDataChannel() == inRHS.GetDataChannel()
245 // No longer necessary && GetDataSpace() == inRHS.GetDataSpace()
246  && GetLineNumber() == inRHS.GetLineNumber());
247  if (equal && GetHorizontalOffset() && inRHS.GetHorizontalOffset())
248  equal = (GetHorizontalOffset() == inRHS.GetHorizontalOffset());
249 
250  return equal;
251  }
252 
253  inline bool operator != (const AJAAncDataLoc & inRHS) const {return !(*this == inRHS);}
254 
255  inline bool operator < (const AJAAncDataLoc & inRHS) const
256  {
257  const uint64_t lhs (OrdinalValue());
258  const uint64_t rhs (inRHS.OrdinalValue());
259  return lhs < rhs; // 64-bit unsigned compare:
260  }
261 
262  inline bool IsValid (void) const
263  {
264  return IS_VALID_AJAAncDataLink(mLink)
265  && IS_VALID_AJAAncDataStream(mStream)
266  && IS_VALID_AJAAncDataChannel(mChannel)
267  && (IS_VALID_AJAAncDataSpace(GetDataSpace())
268  || (GetDataSpace() == AJAAncDataSpace_Unknown));
269  }
270 
276  virtual AJAStatus Compare (const AJAAncDataLoc & inRHS) const;
277 
284  virtual std::string CompareWithInfo (const AJAAncDataLoc & inRHS) const;
285 
290  inline AJAAncDataLoc & Reset (void)
291  {
292  mLink = AJAAncDataLink_Unknown;
293  mStream = AJAAncDataStream_Unknown;
294  mChannel = AJAAncDataChannel_Unknown;
295  mLineNum = AJAAncDataLineNumber_Unknown;
296  mHorizOffset = AJAAncDataHorizOffset_Unknown;
297  return *this;
298  }
299 
300  inline AJAAncDataLink GetDataLink (void) const {return mLink;}
301  inline bool IsDataLinkA (void) const {return mLink == AJAAncDataLink_A;}
302  inline bool IsDataLinkB (void) const {return mLink == AJAAncDataLink_B;}
303 
304  inline AJAAncDataStream GetDataStream (void) const {return mStream;}
305 
306  inline AJAAncDataChannel GetDataChannel (void) const {return mChannel;}
307  inline bool IsLumaChannel (void) const {return mChannel == AJAAncDataChannel_Y;}
308  inline bool IsChromaChannel (void) const {return mChannel == AJAAncDataChannel_C;}
309 
316  inline AJAAncDataSpace GetDataSpace (void) const
317  {
318  if (mHorizOffset == AJAAncDataHorizOffset_AnyVanc)
319  return AJAAncDataSpace_VANC;
320  if (mHorizOffset == AJAAncDataHorizOffset_AnyHanc)
321  return AJAAncDataSpace_HANC;
323  }
324  inline bool IsVanc (void) const {return GetDataSpace() == AJAAncDataSpace_VANC;}
325  inline bool IsHanc (void) const {return GetDataSpace() == AJAAncDataSpace_HANC;}
326 
327  inline uint16_t GetLineNumber (void) const {return mLineNum;}
328 
339  inline uint16_t GetHorizontalOffset (void) const {return mHorizOffset & 0x0FFF;}
340 
347  std::ostream & Print (std::ostream & ostrm, const bool inCompact = true) const;
348 
354  inline AJAAncDataLoc & SetDataLink (const AJAAncDataLink inLink) {mLink = inLink; return *this;}
355 
361  inline AJAAncDataLoc & SetDataStream (const AJAAncDataStream inStream) {mStream = inStream; return *this;}
362 
368  inline AJAAncDataLoc & SetDataChannel (const AJAAncDataChannel inChannel) {mChannel = inChannel; return *this;}
369 #if AJA_NTV2_SDK_VERSION_AT_LEAST(16,3)
370  inline AJAAncDataLoc & SetDataVideoStream (const AJAAncDataChannel inChannel) {return SetDataChannel(inChannel);}
371 #endif
372 
378  inline AJAAncDataLoc & SetDataSpace (const AJAAncDataSpace inSpace)
379  {
380  if (IS_VANC_AJAAncDataSpace(inSpace))
381  mHorizOffset = AJAAncDataHorizOffset_AnyVanc;
382  else if (IS_HANC_AJAAncDataSpace(inSpace))
383  mHorizOffset = AJAAncDataHorizOffset_AnyHanc;
384  return *this;
385  }
386 
393  inline AJAAncDataLoc & SetLineNumber (const uint16_t inLineNum) {mLineNum = inLineNum; return *this;}
394 
395 
408  inline AJAAncDataLoc & SetHorizontalOffset (uint16_t inHOffset)
409  { inHOffset &= 0x0FFF;
410  if (inHOffset == AJAAncDataHorizOffset_AnyVanc)
411  mHorizOffset = inHOffset; // Force [any] VANC
412  else if (inHOffset == AJAAncDataHorizOffset_AnyHanc)
413  mHorizOffset = inHOffset; // Force [any] HANC
414  else if (inHOffset == AJAAncDataHorizOffset_Anywhere)
415  mHorizOffset = inHOffset; // Anywhere (unknown DataSpace)
416  else
417  mHorizOffset = inHOffset; // Trust the caller; don't mess with existing DataSpace
418  return *this;
419  }
420 
431  inline uint64_t OrdinalValue (void) const
432  { // 64-bit unsigned compare: LLLLLLLLLLLLSSSHHHHHHHHHHHHCCCDDDDDDDKK
433  const uint64_t hOffset (mHorizOffset == AJAAncDataHorizOffset_AnyVanc || mHorizOffset == AJAAncDataHorizOffset_Anywhere ? 0 : mHorizOffset);
434  return ((uint64_t(mLineNum) << 27) // LLLLLLLLLLLL
435  | (uint64_t(GetDataSpace()) << 24) // SSS
436  | (hOffset << 12) // HHHHHHHHHHHH
437  | (uint64_t(mChannel) << 9) // CCC
438  | (uint64_t(mStream) << 2) // DDDDDDD
439  | uint64_t(mLink)); // KK
440  }
441 
442  private: // Made private in SDK 15.2
443  AJAAncDataLink mLink;
444  AJAAncDataStream mStream;
445  AJAAncDataChannel mChannel;
446  uint16_t mLineNum;
447  uint16_t mHorizOffset;
448 
449 } AJAAncDataLoc;
450 
453 
459 AJAExport std::string AJAAncDataLocToString (const AJAAncDataLoc & inValue, const bool inCompact = true);
460 
467 AJAExport std::ostream & operator << (std::ostream & inOutStream, const AJAAncDataLoc & inData);
468 
469 
470 
474 typedef enum
475 {
481 
482 #define IS_VALID_AJAAncDataCoding(_x_) ((_x_) >= AJAAncDataCoding_Digital && (_x_) < AJAAncDataCoding_Size)
483 
489 AJAExport const std::string & AJAAncDataCodingToString (const AJAAncDataCoding inValue, const bool inCompact = true);
490 
491 
492 
496 typedef enum
497 {
505 
507 
508 #define IS_VALID_AJAAncBufferFormat(_x_) ((_x_) >= AJAAncBufferFormat_Unknown && (_x_) < AJAAncBufferFormat_Size)
509 #define IS_KNOWN_AJAAncBufferFormat(_x_) ((_x_) > AJAAncBufferFormat_Unknown && (_x_) < AJAAncBufferFormat_Size)
510 
516 AJAExport const std::string & AJAAncBufferFormatToString (const AJAAncBufferFormat inValue, const bool inCompact = true);
517 
518 
553 {
554 public:
558 
560  AJAAncillaryData ();
561 
566  AJAAncillaryData (const AJAAncillaryData & inClone);
567 
572  AJAAncillaryData (const AJAAncillaryData * pInClone);
573 
574  virtual ~AJAAncillaryData ();
575  virtual void Clear (void);
576  virtual AJAAncillaryData * Clone (void) const;
577 
579 
583 
585  virtual inline uint8_t GetDID (void) const {return m_DID;}
586  virtual inline uint8_t GetSID (void) const {return m_SID;}
587  virtual inline uint32_t GetDC (void) const {return uint32_t(m_payload.size());}
588  virtual inline AJAAncDIDSIDPair GetDIDSIDPair (void) const {return AJAAncDIDSIDPair(GetDID(),GetSID());}
589  virtual inline AJAAncPktDIDSID GetDIDSID (void) const {return ToAJAAncPktDIDSID(GetDID(),GetSID());}
590  virtual inline size_t GetPayloadByteCount (void) const {return size_t(GetDC());}
591  virtual AJAAncDataType GetAncillaryDataType (void) const {return m_ancType;}
592  virtual inline uint32_t GetFrameID (void) const {return m_frameID;}
593 
594  virtual inline const AJAAncDataLoc & GetDataLocation (void) const {return m_location;}
595  virtual inline AJAAncDataLoc & GetDataLocation (void) {return m_location;}
596  virtual inline AJAAncDataCoding GetDataCoding (void) const {return m_coding;}
597  virtual inline AJAAncBufferFormat GetBufferFormat (void) const {return m_bufferFmt;}
598  virtual uint8_t GetChecksum (void) const {return m_checksum;}
599 
600  virtual inline AJAAncDataLink GetLocationVideoLink (void) const {return GetDataLocation().GetDataLink();}
601  virtual inline AJAAncDataStream GetLocationDataStream (void) const {return GetDataLocation().GetDataStream();}
602  virtual inline AJAAncDataChannel GetLocationDataChannel (void) const {return GetDataLocation().GetDataChannel();}
603  virtual inline AJAAncDataSpace GetLocationVideoSpace (void) const {return GetDataLocation().GetDataSpace();}
604  virtual inline uint16_t GetLocationLineNumber (void) const {return GetDataLocation().GetLineNumber();}
605  virtual inline uint16_t GetLocationHorizOffset (void) const {return GetDataLocation().GetHorizontalOffset();}
606  virtual uint16_t GetStreamInfo (void) const;
607  virtual inline const uint64_t & UserData (void) const {return m_userData;}
608 
609  virtual uint8_t GetAuxType (void) const {return m_auxType;}
610  virtual uint8_t GetAuxHB1 (void) const {return m_auxHB1;}
611  virtual uint8_t GetAuxHB2 (void) const {return m_auxHB2;}
612 
616  virtual inline bool HasStreamInfo (void) const {return IS_VALID_AJAAncDataLink(GetLocationVideoLink()) && IS_VALID_AJAAncDataStream(GetLocationDataStream());}
617  virtual inline bool IsEmpty (void) const {return GetDC() == 0;}
618  virtual inline bool IsLumaChannel (void) const {return GetDataLocation().IsLumaChannel ();}
619  virtual inline bool IsChromaChannel (void) const {return GetDataLocation().IsChromaChannel ();}
620  virtual inline bool IsVanc (void) const {return GetDataLocation().IsVanc ();}
621  virtual inline bool IsHanc (void) const {return GetDataLocation().IsHanc ();}
622  virtual inline bool IsDigital (void) const {return GetDataCoding() == AJAAncDataCoding_Digital;}
623  virtual inline bool IsRaw (void) const {return GetDataCoding() == AJAAncDataCoding_Raw;}
624  virtual inline bool IsFBVANC (void) const {return GetBufferFormat() == AJAAncBufferFormat_FBVANC;}
625  virtual inline bool IsSDI (void) const {return GetBufferFormat() == AJAAncBufferFormat_SDI;}
626  virtual inline bool IsRTP (void) const {return GetBufferFormat() == AJAAncBufferFormat_RTP;}
627  virtual inline bool IsHDMI (void) const {return GetBufferFormat() == AJAAncBufferFormat_HDMI;}
628 
634  virtual bool isHDMIAuxInfoFrame(void) const {return false;}
635 
642  virtual uint8_t Calculate8BitChecksum (void) const;
643 
649  virtual uint16_t Calculate9BitChecksum (void) const;
650 
656  virtual bool ChecksumOK (void) const {return m_checksum == Calculate8BitChecksum ();}
657 
658  AJAAncillaryData & operator = (const AJAAncillaryData & inRHS);
659 
664  virtual bool operator == (const AJAAncillaryData & inRHS) const;
665 
670  virtual inline bool operator != (const AJAAncillaryData & inRHS) const {return !(*this == inRHS);}
671 
679  virtual AJAStatus Compare (const AJAAncillaryData & inRHS, const bool inIgnoreLocation = true, const bool inIgnoreChecksum = true) const;
681 
682 
686 
693  virtual AJAStatus SetDID (const uint8_t inDataID);
694 
700  virtual AJAStatus SetSID (const uint8_t inSID);
701 
707  virtual inline AJAStatus SetDIDSID (const AJAAncDIDSIDPair & inDIDSID) {SetDID(inDIDSID.first); return SetSID(inDIDSID.second);} // New in SDK 16.0
708 
718  virtual AJAStatus SetChecksum (const uint8_t inChecksum8, const bool inValidate = false);
719 
725  virtual AJAStatus SetDataLocation (const AJAAncDataLoc & inLoc);
726 
732  virtual AJAStatus SetLocationVideoLink (const AJAAncDataLink inLink);
733 
739  virtual AJAStatus SetLocationDataStream (const AJAAncDataStream inStream);
740 
746  virtual AJAStatus SetLocationDataChannel (const AJAAncDataChannel inChannel);
747 
753  virtual AJAStatus SetLocationLineNumber (const uint16_t inLineNum);
754 
760  virtual AJAStatus SetLocationHorizOffset (const uint16_t inOffset);
761 
767  virtual AJAStatus SetDataCoding (const AJAAncDataCoding inCodingType);
768 
774  virtual inline AJAAncillaryData & SetFrameID (const uint32_t inFrameID) {m_frameID = inFrameID; return *this;}
775 
781  virtual inline AJAAncillaryData & SetBufferFormat (const AJAAncBufferFormat inFmt) {m_bufferFmt = inFmt; return *this;}
782 
783  virtual inline uint64_t & UserData (void) {return m_userData;}
784 
786 
790 
796  virtual uint8_t GetPayloadByteAtIndex (const uint32_t inIndex0) const;
797 
801  virtual inline const uint8_t * GetPayloadData (void) const {return m_payload.empty() ? NULL : &(m_payload[0]);}
802 
809  virtual AJAStatus GetPayloadData (uint8_t * pBuffer, const uint32_t inByteCapacity) const;
810 
817  virtual AJAStatus GetPayloadData (UWordSequence & outUDWs, const bool inAddParity = true) const;
819 
820 
824 
831  virtual AJAStatus SetPayloadByteAtIndex (const uint8_t inDataByte, const uint32_t inIndex0);
832 
839  virtual AJAStatus SetPayloadData (const uint8_t * pInData, const uint32_t inByteCount);
840 
847  virtual AJAStatus AppendPayloadData (const uint8_t * pInBuffer, const uint32_t inByteCount);
848 
854  virtual AJAStatus AppendPayload (const AJAAncillaryData & inAncData);
855 
859  virtual inline NTV2_DEPRECATED_f(AJAStatus AppendPayload (const AJAAncillaryData * pInAncData)) {return pInAncData ? AppendPayload (*pInAncData) : AJA_STATUS_NULL;}
860 
869  virtual AJAStatus SetFromSMPTE334 (const uint16_t * pInData, const uint32_t inNumWords, const AJAAncDataLoc & inLocInfo);
870 
876  virtual AJAStatus ParsePayloadData (void);
877 
887  virtual inline bool GotValidReceiveData (void) const {return m_rcvDataValid;}
888 
894  virtual inline AJAStatus GeneratePayloadData (void) {return AJA_STATUS_SUCCESS;}
896 
897 
901 
911  virtual AJAStatus InitWithReceivedData ( const uint8_t * pInData,
912  const size_t inMaxBytes,
913  const AJAAncDataLoc & inLocationInfo,
914  uint32_t & outPacketByteCount);
923  virtual AJAStatus InitAuxWithReceivedData ( const uint8_t * pInData,
924  const size_t inMaxBytes,
925  //const AJAAncDataLoc & inLocationInfo,
926  uint32_t & outPacketByteCount);
927 
934  virtual AJAStatus InitWithReceivedData ( const std::vector<uint8_t> & inData,
935  const AJAAncDataLoc & inLocationInfo);
936 
948  virtual AJAStatus InitWithReceivedData (const ULWordSequence & inData, uint16_t & inOutStartIndex, const bool inIgnoreChecksum = false);
950 
951 
955 
963  virtual AJAStatus GetRawPacketSize (uint32_t & outPacketSize) const;
964 
972  virtual AJAStatus GenerateTransmitData (uint8_t * pBuffer, const size_t inMaxBytes, uint32_t & outPacketSize);
973 
979  virtual AJAStatus GenerateTransmitData (UWordSequence & outData);
980 
987  virtual AJAStatus GenerateTransmitData (ULWordSequence & outData);
989 
990 
994 
1002  virtual std::ostream & Print (std::ostream & inOutStream, const bool inDetailed = false) const;
1003 
1009  virtual std::ostream & DumpPayload (std::ostream & inOutStream) const;
1010 
1019  virtual std::string CompareWithInfo (const AJAAncillaryData & inRHS, const bool inIgnoreLocation = true, const bool inIgnoreChecksum = true) const;
1020 
1021  virtual std::string IDAsString (void) const;
1022 
1027  virtual std::string AsString (const uint16_t inDumpMaxBytes = 0) const;
1028 
1035  static std::string DIDSIDToString (const uint8_t inDID, const uint8_t inSDID);
1036 
1042  static std::string AuxPacketTypeToString (const uint8_t inAuxPktType);
1043 
1048  static bool AuxPacketTypeIsValid (const uint8_t inAuxPktType);
1049 
1050 
1051 
1053 
1058  static uint16_t AddEvenParity (const uint8_t inDataByte);
1059 
1060 
1062  typedef std::vector<U16Packet> U16Packets;
1063 
1081  static bool GetAncPacketsFromVANCLine (const UWordSequence & inYUV16Line,
1082  const AncChannelSearchSelect inChanSelect,
1083  U16Packets & outRawPackets,
1084  U16Packet & outWordOffsets);
1104  static bool Unpack8BitYCbCrToU16sVANCLine (const void * pInYUV8Line,
1105  U16Packet & outU16YUVLine,
1106  const uint32_t inNumPixels);
1126  static bool Unpack8BitYCbCrToU16sVANCLineSD (const void * pInYUV8Line,
1127  UWordSequence & outU16YUVLine,
1128  const uint32_t inNumPixels);
1129 
1130  static void GetInstanceCounts (uint32_t & outConstructed, uint32_t & outDestructed);
1131  static uint32_t GetNumActiveInstances (void);
1132  static uint32_t GetNumConstructed (void);
1133  static uint32_t GetNumDestructed (void);
1134  static void ResetInstanceCounts (void);
1135 
1136  protected:
1137  typedef std::vector<uint8_t> ByteVector;
1138  typedef ByteVector::size_type ByteVectorIndex;
1139  typedef ByteVector::const_iterator ByteVectorConstIter;
1140 
1141  void Init (void); // NOT virtual - called by constructors
1142 
1143  AJAStatus AllocDataMemory (const uint32_t inNumBytes);
1144  AJAStatus FreeDataMemory (void);
1145 
1146  static inline uint8_t GetGUMPHeaderByte1 (void) {return 0xFF;}
1147  virtual uint8_t GetGUMPHeaderByte2 (void) const;
1148  virtual inline uint8_t GetGUMPHeaderByte3 (void) const {return GetLocationLineNumber() & 0x7F;} // ls 7 bits [6:0] of line num
1149 
1150  // Instance Data
1151  protected:
1152  uint8_t m_DID;
1153  uint8_t m_SID;
1154  uint8_t m_checksum;
1161  uint32_t m_frameID;
1162  uint64_t m_userData;
1163  //HDMI Aux specific types
1164  uint8_t m_auxType;
1165  uint8_t m_auxHB1;
1166  uint8_t m_auxHB2;
1167 
1168 }; // AJAAncillaryData
1169 
1171 
1172 
1179 static inline std::ostream & operator << (std::ostream & inOutStream, const AJAAncillaryData & inAncData) {return inAncData.Print(inOutStream);}
1180 
1181 
1186 {
1187  public: // CLASS METHODS
1191 
1196  static bool BufferStartsWithRTPHeader (const NTV2Buffer & inBuffer);
1197 
1198  static inline size_t GetHeaderWordCount (void) {return 5;}
1199  static inline size_t GetHeaderByteCount (void) {return GetHeaderWordCount() * sizeof(uint32_t);}
1200 
1205  static const std::string & FieldSignalToString (const uint8_t inFBits);
1207 
1208 
1209  public: // INSTANCE METHODS
1211  virtual inline ~AJARTPAncPayloadHeader () {}
1212 
1216  virtual bool IsNULL (void) const;
1218  virtual bool IsValid (void) const;
1219  virtual inline bool IsEndOfFieldOrFrame (void) const {return mMarkerBit;}
1220  virtual inline uint8_t GetPayloadType (void) const {return mPayloadType;}
1221  virtual inline uint32_t GetSequenceNumber (void) const {return mSequenceNumber;}
1222  virtual inline uint32_t GetTimeStamp (void) const {return mTimeStamp;}
1223  virtual inline uint32_t GetSyncSourceID (void) const {return mSyncSourceID;}
1224  virtual inline uint16_t GetPayloadLength (void) const {return mPayloadLength;}
1225  virtual inline uint8_t GetAncPacketCount (void) const {return mAncCount;}
1226  virtual inline uint8_t GetFieldSignal (void) const {return mFieldSignal & 3;}
1227  virtual inline bool IsProgressive (void) const {return mFieldSignal == 0;}
1228  virtual inline bool NoFieldSpecified (void) const {return IsProgressive();}
1229  virtual inline bool IsField1 (void) const {return mFieldSignal == 2;}
1230  virtual inline bool IsField2 (void) const {return mFieldSignal == 3;}
1231  virtual inline bool IsValidFieldSignal (void) const {return mFieldSignal != 1;}
1232  virtual inline bool HasPaddingBytes (void) const {return mPBit;}
1233  virtual inline bool HasExtendedHeader (void) const {return mXBit;}
1234 
1239  virtual bool operator == (const AJARTPAncPayloadHeader & inRHS) const;
1240 
1245  virtual inline bool operator != (const AJARTPAncPayloadHeader & inRHS) const {return !(operator == (inRHS));}
1246 
1252  virtual std::ostream & Print (std::ostream & inOutStream) const;
1254 
1258 
1267  virtual bool WriteToULWordVector (ULWordSequence & outVector, const bool inReset = true) const;
1268 
1277  virtual bool WriteToBuffer (NTV2Buffer & outBuffer, const ULWord inU32Offset = 0) const;
1278 
1285  virtual bool ReadFromULWordVector (const ULWordSequence & inVector);
1286 
1293  virtual bool ReadFromBuffer (const NTV2Buffer & inBuffer);
1295 
1299 
1304  virtual inline AJARTPAncPayloadHeader & SetField1 (void) {return SetFieldSignal(2);}
1305 
1310  virtual inline AJARTPAncPayloadHeader & SetField2 (void) {return SetFieldSignal(3);}
1311 
1316  virtual inline AJARTPAncPayloadHeader & SetProgressive (void) {return SetFieldSignal(0);}
1317 
1323  virtual inline AJARTPAncPayloadHeader & SetPayloadType (const uint8_t inPayloadType) {mPayloadType = inPayloadType & 0x7F; return *this;}
1324 
1330  virtual inline AJARTPAncPayloadHeader & SetPayloadLength (const uint16_t inByteCount) {mPayloadLength = inByteCount; return *this;}
1331 
1337  virtual inline AJARTPAncPayloadHeader & SetAncPacketCount (const uint8_t inPktCount) {mAncCount = inPktCount; return *this;}
1338 
1344  virtual inline AJARTPAncPayloadHeader & SetTimeStamp (const uint32_t inTimeStamp) {mTimeStamp = inTimeStamp; return *this;}
1345 
1351  virtual inline AJARTPAncPayloadHeader & SetSyncSourceID (const uint32_t inSyncSrcID) {mSyncSourceID = inSyncSrcID; return *this;}
1352 
1358  virtual inline AJARTPAncPayloadHeader & SetSequenceNumber (const uint32_t inSeqNumber) {mSequenceNumber = inSeqNumber; return *this;}
1359 
1365  virtual inline AJARTPAncPayloadHeader & SetCCBits (const uint8_t inCCBits) {mCCBits = inCCBits & 0x0F; return *this;}
1366 
1372  virtual inline AJARTPAncPayloadHeader & SetEndOfFieldOrFrame (const bool inIsLast = true) {mMarkerBit = inIsLast; return *this;}
1374 
1375  protected:
1382  virtual bool SetFromPacketHeaderULWordAtIndex (const unsigned inIndex0, const uint32_t inULWord);
1383 
1389  virtual inline AJARTPAncPayloadHeader & SetFieldSignal (const uint8_t inFieldSignal) {mFieldSignal = (inFieldSignal & 0x03); return *this;}
1390 
1397  virtual bool GetPacketHeaderULWordForIndex (const unsigned inIndex0, uint32_t & outULWord) const;
1398 
1403  virtual inline uint32_t GetPacketHeaderULWordForIndex (const unsigned inIndex0) const {uint32_t result(0); GetPacketHeaderULWordForIndex(inIndex0, result); return result;}
1404 
1405  private: // INSTANCE DATA
1406  uint8_t mVBits;
1407  bool mPBit;
1408  bool mXBit;
1409  bool mMarkerBit;
1410  uint8_t mCCBits;
1411  uint8_t mPayloadType;
1412  uint32_t mSequenceNumber;
1413  uint32_t mTimeStamp;
1414  uint32_t mSyncSourceID;
1415  uint16_t mPayloadLength;
1416  uint8_t mAncCount;
1419  uint8_t mFieldSignal;
1420 }; // AJARTPAncPayloadHeader
1421 
1428 static inline std::ostream & operator << (std::ostream & inOutStrm, const AJARTPAncPayloadHeader & inObj) {return inObj.Print(inOutStrm);}
1429 
1430 
1435 {
1436  public: // INSTANCE METHODS
1442  explicit AJARTPAncPacketHeader (const AJAAncDataLoc & inLocation);
1443  virtual inline ~AJARTPAncPacketHeader () {}
1444 
1449  virtual uint32_t GetULWord (void) const;
1451  virtual inline bool IsCBitSet (void) const {return mCBit;}
1452  virtual inline bool IsSBitSet (void) const {return mSBit;}
1453  virtual inline uint16_t GetLineNumber (void) const {return mLineNum;}
1454  virtual inline uint16_t GetHorizOffset (void) const {return mHOffset;}
1455  virtual inline uint8_t GetStreamNumber (void) const {return mStreamNum;}
1456  virtual AJAAncDataLoc AsDataLocation(void) const;
1457 
1463  virtual std::ostream & Print (std::ostream & inOutStream) const;
1465 
1469 
1474  virtual inline AJARTPAncPacketHeader & SetCChannel (void) {mCBit = true; return *this;}
1475 
1480  virtual inline AJARTPAncPacketHeader & SetYChannel (void) {mCBit = false; return *this;}
1481 
1487  virtual inline AJARTPAncPacketHeader & SetLineNumber (const uint16_t inLineNum) {mLineNum = inLineNum & 0x7FF; return *this;}
1488 
1494  virtual inline AJARTPAncPacketHeader & SetHorizOffset (const uint16_t inHOffset) {mHOffset = inHOffset & 0x0FFF; return *this;}
1495 
1502  virtual inline AJARTPAncPacketHeader & SetStreamNumber (const uint8_t inStreamNum) {mStreamNum = inStreamNum & 0x07F; return *this;}
1503 
1510  virtual inline AJARTPAncPacketHeader & SetDataStreamFlag (const bool inFlag) {mSBit = inFlag; return *this;}
1511 
1517  virtual AJARTPAncPacketHeader & SetFrom (const AJAAncDataLoc & inLocation);
1518 
1524  virtual inline AJARTPAncPacketHeader & operator = (const AJAAncDataLoc & inRHS) {return SetFrom(inRHS);}
1526 
1530 
1536  virtual bool SetFromULWord (const uint32_t inULWord);
1537 
1545  virtual bool ReadFromULWordVector (const ULWordSequence & inVector, const unsigned inIndex0);
1546 
1554  virtual bool WriteToULWordVector (ULWordSequence & outVector, const bool inReset = true) const;
1556 
1557  private: // INSTANCE DATA
1558  bool mCBit;
1559  bool mSBit;
1560  uint16_t mLineNum;
1561  uint16_t mHOffset;
1562  uint8_t mStreamNum;
1563 }; // AJARTPAncPacketHeader
1564 
1571 static inline std::ostream & operator << (std::ostream & inOutStrm, const AJARTPAncPacketHeader & inObj) {return inObj.Print(inOutStrm);}
1572 
1573 
1574 #if !defined(NTV2_DEPRECATE_16_3)
1575  // The old, original long names...
1585 // typedef AJAAncillaryDataChannel AJAAncDataChannel;
1587 
1588  AJAExport inline const std::string & AJAAncillaryDataVideoStreamToString (const AJAAncillaryDataVideoStream inValue, const bool inCompact = true)
1589  {
1590  return AJAAncDataChannelToString(inValue,inCompact);
1591  }
1592 
1593  #define AJAAncillaryDataChannel_C AJAAncDataChannel_C
1594  #define AJAAncillaryDataChannel_Both AJAAncDataChannel_Both
1595  #define AJAAncillaryDataChannel_Y AJAAncDataChannel_Y
1596  #define AJAAncillaryDataChannel_Unknown AJAAncDataChannel_Unknown
1597  #define AJAAncillaryDataChannel_Size AJAAncDataChannel_Size
1598  #define IS_VALID_AJAAncillaryDataVideoStream(_x_) (IS_VALID_AJAAncDataChannel(_x_))
1599  #define AJAAncillaryDataVideoStream_C AJAAncillaryDataChannel_C
1600  #define AJAAncillaryDataVideoStream_Y AJAAncillaryDataChannel_Y
1601  #define AJAAncillaryDataVideoStream_Unknown AJAAncillaryDataChannel_Unknown
1602  #define AJAAncillaryDataVideoStream_Size AJAAncillaryDataChannel_Size
1603  #define IS_VALID_AJAAncillaryDataChannel IS_VALID_AJAAncDataChannel
1604  #define AJAAncillaryDataChannelToString AJAAncDataChannelToString
1605 
1606  #define AJAAncillaryDataSpace_VANC AJAAncDataSpace_VANC
1607  #define AJAAncillaryDataSpace_HANC AJAAncDataSpace_HANC
1608  #define AJAAncillaryDataSpace_Unknown AJAAncDataSpace_Unknown
1609  #define AJAAncillaryDataSpace_Size AJAAncDataSpace_Size
1610  #define IS_VALID_AJAAncillaryDataSpace IS_VALID_AJAAncDataSpace
1611  #define IS_HANC_AJAAncillaryDataSpace IS_HANC_AJAAncDataSpace
1612  #define IS_VANC_AJAAncillaryDataSpace IS_VANC_AJAAncDataSpace
1613  #define AJAAncillaryDataSpaceToString AJAAncDataSpaceToString
1614 
1615  #define AJAAncillaryDataStream_1 AJAAncDataStream_1
1616  #define AJAAncillaryDataStream_2 AJAAncDataStream_2
1617  #define AJAAncillaryDataStream_3 AJAAncDataStream_3
1618  #define AJAAncillaryDataStream_4 AJAAncDataStream_4
1619  #define AJAAncillaryDataStream_Unknown AJAAncDataStream_Unknown
1620  #define AJAAncillaryDataStream_Size AJAAncDataStream_Size
1621  #define IS_VALID_AJAAncillaryDataStream IS_VALID_AJAAncDataStream
1622  #define IS_LINKA_AJAAncillaryDataStream IS_LINKA_AJAAncDataStream
1623  #define IS_LINKB_AJAAncillaryDataStream IS_LINKB_AJAAncDataStream
1624  #define AJAAncillaryDataStreamToString AJAAncDataStreamToString
1625 
1626  #define AJAAncillaryDataLink_A AJAAncDataLink_A
1627  #define AJAAncillaryDataLink_B AJAAncDataLink_B
1628  #define AJAAncillaryDataLink_LeftEye AJAAncDataLink_LeftEye
1629  #define AJAAncillaryDataLink_RightEye AJAAncDataLink_RightEye
1630  #define AJAAncillaryDataLink_Unknown AJAAncDataLink_Unknown
1631  #define AJAAncillaryDataLink_Size AJAAncDataLink_Size
1632  #define IS_VALID_AJAAncillaryDataLink IS_VALID_AJAAncDataLink
1633  #define AJAAncillaryDataLinkToString AJAAncDataLinkToString
1634 
1635  #define AJAAncillaryDataType_Unknown AJAAncDataType_Unknown
1636  #define AJAAncillaryDataType_Smpte2016_3 AJAAncDataType_Smpte2016_3
1637  #define AJAAncillaryDataType_Timecode_ATC AJAAncDataType_Timecode_ATC
1638  #define AJAAncillaryDataType_Timecode_VITC AJAAncDataType_Timecode_VITC
1639  #define AJAAncillaryDataType_Cea708 AJAAncDataType_Cea708
1640  #define AJAAncillaryDataType_Cea608_Vanc AJAAncDataType_Cea608_Vanc
1641  #define AJAAncillaryDataType_Cea608_Line21 AJAAncDataType_Cea608_Line21
1642  #define AJAAncillaryDataType_Smpte352 AJAAncDataType_Smpte352
1643  #define AJAAncillaryDataType_Smpte2051 AJAAncDataType_Smpte2051
1644  #define AJAAncillaryDataType_FrameStatusInfo524D AJAAncDataType_FrameStatusInfo524D
1645  #define AJAAncillaryDataType_FrameStatusInfo5251 AJAAncDataType_FrameStatusInfo5251
1646  #define AJAAncillaryDataType_HDR_SDR AJAAncDataType_HDR_SDR
1647  #define AJAAncillaryDataType_HDR_HDR10 AJAAncDataType_HDR_HDR10
1648  #define AJAAncillaryDataType_HDR_HLG AJAAncDataType_HDR_HLG
1649  #define AJAAncillaryDataType_Size AJAAncDataType_Size
1650  #define IS_VALID_AJAAncillaryDataType IS_VALID_AJAAncDataType
1651  #define IS_KNOWN_AJAAncillaryDataType IS_KNOWN_AJAAncDataType
1652  #define AJAAncillaryDataTypeToString AJAAncDataTypeToString
1653  #define AJAAncillaryData_AnalogDID AJAAncData_AnalogDID
1654  #define AJAAncillaryData_AnalogSID AJAAncData_AnalogSID
1655 
1656  #define AJAAncillaryDataCoding_Digital AJAAncDataCoding_Digital
1657  #define AJAAncillaryDataCoding_Raw AJAAncDataCoding_Raw
1658  #define AJAAncillaryDataCoding_Analog AJAAncDataCoding_Raw
1659  #define AJAAncillaryDataCoding_Unknown AJAAncDataCoding_Unknown
1660  #define AJAAncillaryDataCoding_Size AJAAncDataCoding_Size
1661  #define IS_VALID_AJAAncillaryDataCoding(_x_) IS_VALID_AJAAncDataCoding(_x_)
1662  #define AJAAncillaryDataCodingToString AJAAncDataCodingToString
1663 
1664  #define AJAAncillaryBufferFormat_Unknown AJAAncBufferFormat_Unknown
1665  #define AJAAncillaryBufferFormat_FBVANC AJAAncBufferFormat_FBVANC
1666  #define AJAAncillaryBufferFormat_SDI AJAAncBufferFormat_SDI
1667  #define AJAAncillaryBufferFormat_RTP AJAAncBufferFormat_RTP
1668  #define AJAAncillaryBufferFormat_Invalid AJAAncBufferFormat_Invalid
1669  #define AJAAncillaryBufferFormat_Size AJAAncBufferFormat_Invalid
1670  #define IS_VALID_AJAAncillaryBufferFormat(_x_) IS_VALID_AJAAncBufferFormat(_x_)
1671  #define IS_KNOWN_AJAAncillaryBufferFormat(_x_) IS_KNOWN_AJAAncBufferFormat(_x_)
1672  #define AJAAncillaryBufferFormatToString AJAAncBufferFormatToString
1673 #endif // !defined(NTV2_DEPRECATE_16_3)
1674 
1675 #endif // AJA_ANCILLARYDATA_H
AJAAncDataLoc::OrdinalValue
uint64_t OrdinalValue(void) const
Definition: ancillarydata.h:431
AJAAncillaryData::GetGUMPHeaderByte1
static uint8_t GetGUMPHeaderByte1(void)
Definition: ancillarydata.h:1146
AJAAncillaryData::m_frameID
uint32_t m_frameID
ID of my originating frame, if known.
Definition: ancillarydata.h:1161
AJAAncDataStream_Size
@ AJAAncDataStream_Size
Definition: ancillarydata.h:110
AJAAncBufferFormat_FBVANC
@ AJAAncBufferFormat_FBVANC
Frame buffer VANC lines.
Definition: ancillarydata.h:499
AJAAncDataStream_3
@ AJAAncDataStream_3
The ancillary data is associated with DS3 of the video stream (Link B).
Definition: ancillarydata.h:107
AJAAncillaryDataSpace
AJAAncDataSpace AJAAncillaryDataSpace
Definition: ancillarydata.h:1576
AJAAncDataLinkToString
const std::string & AJAAncDataLinkToString(const AJAAncDataLink inValue, const bool inCompact=true)
Definition: ancillarydata.cpp:1234
AJAAncillaryDataVideoStreamToString
const std::string & AJAAncillaryDataVideoStreamToString(const AJAAncillaryDataVideoStream inValue, const bool inCompact=true)
Definition: ancillarydata.h:1588
AJAAncDataLoc
Defines where the ancillary data can be found within a video stream.
Definition: ancillarydata.h:225
AJAAncDataLoc::IsDataLinkB
bool IsDataLinkB(void) const
Definition: ancillarydata.h:302
AJAAncDataChannel_Unknown
@ AJAAncDataChannel_Unknown
It is not known which channel of the video stream the ancillary data is associated with.
Definition: ancillarydata.h:134
AJAAncillaryData::m_userData
uint64_t m_userData
User data (for client use)
Definition: ancillarydata.h:1162
AJAAncillaryData::HasStreamInfo
virtual bool HasStreamInfo(void) const
Definition: ancillarydata.h:616
AJARTPAncPayloadHeader::SetAncPacketCount
virtual AJARTPAncPayloadHeader & SetAncPacketCount(const uint8_t inPktCount)
Sets my RTP Anc Packet Count value.
Definition: ancillarydata.h:1337
AJAAncDataLineNumber_Unknown
#define AJAAncDataLineNumber_Unknown
Packet line number is unknown.
Definition: ancillarydata.h:196
AJAAncDataType_Cea608_Vanc
@ AJAAncDataType_Cea608_Vanc
CEA608 SD Closed Captioning (SMPTE 334 VANC packet)
Definition: ancillarydata.h:51
AJAAncillaryData::ByteVector
std::vector< uint8_t > ByteVector
Definition: ancillarydata.h:1137
AJAAncillaryData::m_DID
uint8_t m_DID
Official SMPTE ancillary packet ID (w/o parity)
Definition: ancillarydata.h:1152
AJAAncillaryDataLink
AJAAncDataLink AJAAncillaryDataLink
Definition: ancillarydata.h:1578
AJAAncDataLoc::IsChromaChannel
bool IsChromaChannel(void) const
Definition: ancillarydata.h:308
AJARTPAncPacketHeader::SetYChannel
virtual AJARTPAncPacketHeader & SetYChannel(void)
Sets my "C" channel bit setting to 'false'.
Definition: ancillarydata.h:1480
AJAAncillaryData::ChecksumOK
virtual bool ChecksumOK(void) const
Compares the received 8-bit checksum with a newly calculated 8-bit checksum. Returns 'true' if they m...
Definition: ancillarydata.h:656
IS_VALID_AJAAncDataSpace
#define IS_VALID_AJAAncDataSpace(_x_)
Definition: ancillarydata.h:183
AJAAncDataType_Unknown
@ AJAAncDataType_Unknown
Includes data that is valid, but we don't recognize.
Definition: ancillarydata.h:46
AJAAncillaryDataType
AJAAncDataType AJAAncillaryDataType
Definition: ancillarydata.h:1579
AJARTPAncPacketHeader::SetCChannel
virtual AJARTPAncPacketHeader & SetCChannel(void)
Sets my "C" channel bit setting to 'true'.
Definition: ancillarydata.h:1474
types.h
Declares common types used in the ajabase library.
NULL
#define NULL
Definition: ntv2caption608types.h:19
IS_VALID_AJAAncDataLink
#define IS_VALID_AJAAncDataLink(_x_)
Definition: ancillarydata.h:89
NTV2Buffer
A generic user-space buffer object that has an address and a length. Used most often to share an arbi...
Definition: ntv2publicinterface.h:6022
AJAAncDataSpaceToString
const std::string & AJAAncDataSpaceToString(const AJAAncDataSpace inValue, const bool inCompact=true)
Definition: ancillarydata.cpp:1262
AJAAncDataLocToString
std::string AJAAncDataLocToString(const AJAAncDataLoc &inValue, const bool inCompact=true)
Definition: ancillarydata.cpp:1359
AJARTPAncPayloadHeader::GetPacketHeaderULWordForIndex
virtual uint32_t GetPacketHeaderULWordForIndex(const unsigned inIndex0) const
Definition: ancillarydata.h:1403
AJA_STATUS_SUCCESS
@ AJA_STATUS_SUCCESS
Definition: types.h:381
ToAJAAncPktDIDSID
#define ToAJAAncPktDIDSID(_d_, _s_)
Definition: ancillarydata.h:29
AJAAncData
AJAAncillaryData AJAAncData
Definition: ancillarydata.h:1170
AJAAncillaryData::ByteVectorIndex
ByteVector::size_type ByteVectorIndex
Definition: ancillarydata.h:1138
AJAAncDataChannel
AJAAncDataChannel
Identifies which component of a video stream in which the ancillary data is placed or found.
Definition: ancillarydata.h:129
AJAAncDataCoding_Unknown
@ AJAAncDataCoding_Unknown
It is not known which coding type the ancillary data is using.
Definition: ancillarydata.h:478
AJAAncDataLoc::IsValid
bool IsValid(void) const
Definition: ancillarydata.h:262
AJAAncillaryData::m_location
AJAAncDataLoc m_location
Location of the ancillary data in the video stream (Y or C, HANC or VANC, etc.)
Definition: ancillarydata.h:1155
AJAAncDataLoc::SetLineNumber
AJAAncDataLoc & SetLineNumber(const uint16_t inLineNum)
Sets my anc data line number value.
Definition: ancillarydata.h:393
AJAAncillaryDataVideoStream
AJAAncillaryDataChannel AJAAncillaryDataVideoStream
Definition: ancillarydata.h:1586
AncChannelSearch_C
@ AncChannelSearch_C
Only look in chroma samples.
Definition: ancillarydata.h:155
AJAAncDataSpace
AJAAncDataSpace
Identified the raster section of a video stream that contains the ancillary data. Deprecated in favor...
Definition: ancillarydata.h:175
AJAAncBufferFormat_Size
@ AJAAncBufferFormat_Size
Definition: ancillarydata.h:504
AJARTPAncPayloadHeader::SetPayloadType
virtual AJARTPAncPayloadHeader & SetPayloadType(const uint8_t inPayloadType)
Sets my Payload Type value.
Definition: ancillarydata.h:1323
AJAAncDataLink_B
@ AJAAncDataLink_B
The ancillary data is associated with Link B of the video stream.
Definition: ancillarydata.h:82
AJAAncillaryData::ByteVectorConstIter
ByteVector::const_iterator ByteVectorConstIter
Definition: ancillarydata.h:1139
AJAAncDataType_Smpte352
@ AJAAncDataType_Smpte352
SMPTE 352 "Payload ID".
Definition: ancillarydata.h:53
AJAAncDataType
AJAAncDataType
Identifies the ancillary data types that are known to this module.
Definition: ancillarydata.h:44
AJAAncillaryData::GeneratePayloadData
virtual AJAStatus GeneratePayloadData(void)
Generates the payload data from the "local" ancillary data.
Definition: ancillarydata.h:894
AJAAncDataType_Timecode_VITC
@ AJAAncDataType_Timecode_VITC
SMPTE 12-M Vertical Interval Timecode (aka "VITC")
Definition: ancillarydata.h:49
AJARTPAncPacketHeader
I represent the 4-byte header of an anc packet that's inside an RTP packet.
Definition: ancillarydata.h:1434
AJAAncDataTypeToString
const std::string & AJAAncDataTypeToString(const AJAAncDataType inValue, const bool inCompact=true)
Definition: ancillarydata.cpp:1391
AJARTPAncPayloadHeader::SetSyncSourceID
virtual AJARTPAncPayloadHeader & SetSyncSourceID(const uint32_t inSyncSrcID)
Sets my RTP Packet Sync Source ID value.
Definition: ancillarydata.h:1351
nlohmann::json_abiNLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON_v3_11_NLOHMANN_JSON_VERSION_PATCH::detail::operator<
bool operator<(const value_t lhs, const value_t rhs) noexcept
comparison operator for JSON types
Definition: json.hpp:2902
AJAAncillaryData::m_bufferFmt
AJAAncBufferFormat m_bufferFmt
My originating buffer format, if known.
Definition: ancillarydata.h:1160
AJAAncPacket
AJAAncillaryData AJAAncPacket
Definition: ancillarydata.h:1170
AJAAuxiliaryData
AJAAncillaryData AJAAuxiliaryData
Definition: ancillarydata.h:1170
AJAAncDataLink_Unknown
@ AJAAncDataLink_Unknown
It is not known which link of the video stream the ancillary data is associated with.
Definition: ancillarydata.h:85
nlohmann::json_abiNLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON_v3_11_NLOHMANN_JSON_VERSION_PATCH::operator==
bool operator==(const json_pointer< RefStringTypeLhs > &lhs, const json_pointer< RefStringTypeRhs > &rhs) noexcept
Definition: json.hpp:14737
AJAAncDataLoc::Reset
AJAAncDataLoc & Reset(void)
Resets all of my location elements to an unknown, invalid state.
Definition: ancillarydata.h:290
AJAAncBufferFormat_Invalid
@ AJAAncBufferFormat_Invalid
Invalid.
Definition: ancillarydata.h:503
AJA_UNUSED
#define AJA_UNUSED(_x_)
Definition: types.h:424
AJAAncillaryData::m_auxType
uint8_t m_auxType
HDMI Aux Header Byte 0 (Packet Type)
Definition: ancillarydata.h:1164
AJAAncDataLoc::SetDataStream
AJAAncDataLoc & SetDataStream(const AJAAncDataStream inStream)
Sets my data link value to the given value (if valid).
Definition: ancillarydata.h:361
AJAAuxPacket
AJAAncillaryData AJAAuxPacket
Definition: ancillarydata.h:1170
AJAAncDataLink_LeftEye
@ AJAAncDataLink_LeftEye
The ancillary data is associated with the Left Eye stereoscopic video stream.
Definition: ancillarydata.h:83
AJAAncBufferFormat_HDMI
@ AJAAncBufferFormat_HDMI
HDMI.
Definition: ancillarydata.h:502
ajatypes.h
Declares the most fundamental data types used by NTV2. Since Windows NT was the first principal devel...
AJAAncDataCoding_Raw
@ AJAAncDataCoding_Raw
The ancillary data is in the form of a digitized waveform (e.g. CEA-608 captions, VITC,...
Definition: ancillarydata.h:477
AJARTPAncPayloadHeader::SetEndOfFieldOrFrame
virtual AJARTPAncPayloadHeader & SetEndOfFieldOrFrame(const bool inIsLast=true)
Sets my RTP Packet End-Of-Field or End-Of-Frame (Marker Bit) value.
Definition: ancillarydata.h:1372
AJARTPAncPacketHeader::SetDataStreamFlag
virtual AJARTPAncPacketHeader & SetDataStreamFlag(const bool inFlag)
Sets my data stream flag.
Definition: ancillarydata.h:1510
AJAAncDataHorizOffset_Anywhere
#define AJAAncDataHorizOffset_Anywhere
Unspecified – Packet placed/found in any legal area of raster line.
Definition: ancillarydata.h:210
AncChannelSearchSelectToString
std::string AncChannelSearchSelectToString(const AncChannelSearchSelect inSelect, const bool inCompact=true)
Definition: ancillarydata.cpp:1649
AJAAncDataLoc::IsDataLinkA
bool IsDataLinkA(void) const
Definition: ancillarydata.h:301
AJAAncDataLoc::IsLumaChannel
bool IsLumaChannel(void) const
Definition: ancillarydata.h:307
AJAAncillaryData::isHDMIAuxInfoFrame
virtual bool isHDMIAuxInfoFrame(void) const
Returns whether or not this is an HDMI Aux Info Frame Packet.
Definition: ancillarydata.h:634
AJAAncDataType_Size
@ AJAAncDataType_Size
Definition: ancillarydata.h:61
AJAAncDataLoc::GetHorizontalOffset
uint16_t GetHorizontalOffset(void) const
Definition: ancillarydata.h:339
AJAStatus
AJAStatus
Definition: types.h:378
AJARTPAncPayloadHeader::SetTimeStamp
virtual AJARTPAncPayloadHeader & SetTimeStamp(const uint32_t inTimeStamp)
Sets my RTP Packet Time Stamp value.
Definition: ancillarydata.h:1344
AJAAncDataLoc::IsVanc
bool IsVanc(void) const
Definition: ancillarydata.h:324
AJAAncillaryData::SetDIDSID
virtual AJAStatus SetDIDSID(const AJAAncDIDSIDPair &inDIDSID)
Sets both my Data ID (DID) and Secondary Data ID (SID).
Definition: ancillarydata.h:707
AJARTPAncPacketHeader::SetLineNumber
virtual AJARTPAncPacketHeader & SetLineNumber(const uint16_t inLineNum)
Sets my line number value to least-significant 11 bits of the given value.
Definition: ancillarydata.h:1487
AJAAncillaryData::Print
virtual std::ostream & Print(std::ostream &inOutStream, const bool inDetailed=false) const
Streams a human-readable representation of me to the given output stream.
Definition: ancillarydata.cpp:1409
AJARTPAncPayloadHeader
I represent the header of a SMPTE 2110 compliant RTP Anc network packet.
Definition: ancillarydata.h:1185
AJAAncBufferFormatToString
const std::string & AJAAncBufferFormatToString(const AJAAncBufferFormat inValue, const bool inCompact=true)
Definition: ancillarydata.cpp:1381
AJAAncillaryData::m_auxHB2
uint8_t m_auxHB2
HDMI Aux Header Byte 2 (Header Data)
Definition: ancillarydata.h:1166
AJARTPAncPayloadHeader::SetCCBits
virtual AJARTPAncPayloadHeader & SetCCBits(const uint8_t inCCBits)
Sets my RTP Packet CC Bits value.
Definition: ancillarydata.h:1365
ULWord
uint32_t ULWord
Definition: ajatypes.h:255
AJAAncDataHorizOffset_AnyVanc
#define AJAAncDataHorizOffset_AnyVanc
VANC – Packet placed/found in any legal area of raster line after SAV, but before EAV.
Definition: ancillarydata.h:212
AJAAncDataSpace_HANC
@ AJAAncDataSpace_HANC
Ancillary data found between EAV and SAV (.
Definition: ancillarydata.h:178
AJAAncillaryData
I am the principal class that stores a single SMPTE-291 SDI ancillary data packet OR the digitized co...
Definition: ancillarydata.h:552
AJAAncDataChannel_Y
@ AJAAncDataChannel_Y
The ancillary data is associated with the luminance (Y) channel of the video stream.
Definition: ancillarydata.h:133
AJARTPAncPayloadHeader::SetPayloadLength
virtual AJARTPAncPayloadHeader & SetPayloadLength(const uint16_t inByteCount)
Sets my RTP Packet Length value.
Definition: ancillarydata.h:1330
AJAAncillaryData::GotValidReceiveData
virtual bool GotValidReceiveData(void) const
Definition: ancillarydata.h:887
AJAAncillaryData::GetPayloadData
virtual const uint8_t * GetPayloadData(void) const
Definition: ancillarydata.h:801
UWordSequence
std::vector< uint16_t > UWordSequence
An ordered sequence of UWord (uint16_t) values.
Definition: ntv2publicinterface.h:42
AJARTPAncPayloadHeader::SetField2
virtual AJARTPAncPayloadHeader & SetField2(void)
Sets my Field Signal value to "Field 2".
Definition: ancillarydata.h:1310
AJAAncDataLoc::SetDataSpace
AJAAncDataLoc & SetDataSpace(const AJAAncDataSpace inSpace)
Sets my data space value to the given value (if valid).
Definition: ancillarydata.h:378
AJAAncHorizOffsetToString
std::string AJAAncHorizOffsetToString(const uint16_t inValue)
Definition: ancillarydata.cpp:1288
AJAAncDIDSIDPair
std::pair< uint8_t, uint8_t > AJAAncDIDSIDPair
Definition: ancillarydata.h:27
AJAAncillaryData::m_coding
AJAAncDataCoding m_coding
Analog or digital data.
Definition: ancillarydata.h:1156
AJAAncDataStream
AJAAncDataStream
Identifies which data stream the ancillary data is associated with.
Definition: ancillarydata.h:103
AJAAncDataLocPtr
AJAAncDataLoc * AJAAncDataLocPtr
Definition: ancillarydata.h:452
AJAAncDataType_HDMI_Aux
@ AJAAncDataType_HDMI_Aux
HDMI Auxiliary data.
Definition: ancillarydata.h:60
AJAAncDataType_Smpte2016_3
@ AJAAncDataType_Smpte2016_3
SMPTE 2016-3 VANC Aspect Format Description (AFD) metadata.
Definition: ancillarydata.h:47
AJAAncillaryData::SetBufferFormat
virtual AJAAncillaryData & SetBufferFormat(const AJAAncBufferFormat inFmt)
Sets my originating buffer format.
Definition: ancillarydata.h:781
AJAAncBufferFormat_SDI
@ AJAAncBufferFormat_SDI
SDI (AJA "GUMP")
Definition: ancillarydata.h:500
AJAAncDataLoc
struct AJAAncDataLoc AJAAncDataLoc
Defines where the ancillary data can be found within a video stream.
ntv2version.h
Defines for the NTV2 SDK version number, used by ajantv2/includes/ntv2enums.h. See the ajantv2/includ...
AJAAncillaryDataChannel
AJAAncDataChannel AJAAncillaryDataChannel
Definition: ancillarydata.h:1584
AJARTPAncPayloadHeader::SetSequenceNumber
virtual AJARTPAncPayloadHeader & SetSequenceNumber(const uint32_t inSeqNumber)
Sets my RTP Packet Sequence Number value.
Definition: ancillarydata.h:1358
AJAAncDataCoding_Size
@ AJAAncDataCoding_Size
Definition: ancillarydata.h:479
IS_VALID_AJAAncDataChannel
#define IS_VALID_AJAAncDataChannel(_x_)
Definition: ancillarydata.h:138
AJAAncDataChannel_Size
@ AJAAncDataChannel_Size
Definition: ancillarydata.h:135
AJARTPAncPayloadHeader::SetProgressive
virtual AJARTPAncPayloadHeader & SetProgressive(void)
Sets my Field Signal value to "Progressive".
Definition: ancillarydata.h:1316
AJAAncillaryData::m_rcvDataValid
bool m_rcvDataValid
This is set true (or not) by ParsePayloadData()
Definition: ancillarydata.h:1158
IS_VALID_AJAAncDataStream
#define IS_VALID_AJAAncDataStream(_x_)
Definition: ancillarydata.h:113
AJAAncDataLoc::SetHorizontalOffset
AJAAncDataLoc & SetHorizontalOffset(uint16_t inHOffset)
Specifies the horizontal packet position in the raster.
Definition: ancillarydata.h:408
AJAAncDataHorizOffset_AnyHanc
#define AJAAncDataHorizOffset_AnyHanc
HANC – Packet placed/found in any legal area of raster line after EAV.
Definition: ancillarydata.h:211
AJAAncDataLink
AJAAncDataLink
Identifies which link of a video stream the ancillary data is associated with.
Definition: ancillarydata.h:79
AJAAncDataType_HDR_SDR
@ AJAAncDataType_HDR_SDR
Definition: ancillarydata.h:57
AJAAncDataSpace_Size
@ AJAAncDataSpace_Size
Definition: ancillarydata.h:180
AJAAncillaryData::AppendPayload
virtual AJAStatus AppendPayload(const AJAAncillaryData *pInAncData)
Definition: ancillarydata.h:859
AJAAncillaryData::m_SID
uint8_t m_SID
Official SMPTE secondary ID (or DBN - w/o parity)
Definition: ancillarydata.h:1153
AJAAncillaryData::SetFrameID
virtual AJAAncillaryData & SetFrameID(const uint32_t inFrameID)
Sets my originating frame identifier.
Definition: ancillarydata.h:774
AJAAncPktDIDSID
uint16_t AJAAncPktDIDSID
Packet DID/SID pair: DID (MS 8 bits) and SID (LS 8 bits)
Definition: ancillarydata.h:28
AJAAncillaryDataCoding
AJAAncDataCoding AJAAncillaryDataCoding
Definition: ancillarydata.h:1582
AJAAncDataType_FrameStatusInfo5251
@ AJAAncDataType_FrameStatusInfo5251
Frame Status Information, such as Active Frame flag.
Definition: ancillarydata.h:56
AJAAncDataStreamToString
const std::string & AJAAncDataStreamToString(const AJAAncDataStream inValue, const bool inCompact=true)
Definition: ancillarydata.cpp:1243
nlohmann::json_abiNLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON_v3_11_NLOHMANN_JSON_VERSION_PATCH::operator!=
bool operator!=(const json_pointer< RefStringTypeLhs > &lhs, const json_pointer< RefStringTypeRhs > &rhs) noexcept
Definition: json.hpp:14762
AJAAncDataType_Smpte2051
@ AJAAncDataType_Smpte2051
SMPTE 2051 "Two Frame Marker".
Definition: ancillarydata.h:54
AJA_STATUS_NULL
@ AJA_STATUS_NULL
Definition: types.h:387
NTV2_DEPRECATED_f
#define NTV2_DEPRECATED_f(__f__)
Definition: ajatypes.h:555
AJAAncDataStream_1
@ AJAAncDataStream_1
The ancillary data is associated with DS1 of the video stream (Link A).
Definition: ancillarydata.h:105
AJAAncillaryData::m_payload
ByteVector m_payload
My payload data (DC = size)
Definition: ancillarydata.h:1157
AJAAncDataChannel_C
@ AJAAncDataChannel_C
The ancillary data is associated with the chrominance (C) channel of the video stream.
Definition: ancillarydata.h:131
AJAAncillaryBufferFormat
AJAAncBufferFormat AJAAncillaryBufferFormat
Definition: ancillarydata.h:1583
IS_HANC_AJAAncDataSpace
#define IS_HANC_AJAAncDataSpace(_x_)
Definition: ancillarydata.h:184
AJARTPAncPayloadHeader::SetFieldSignal
virtual AJARTPAncPayloadHeader & SetFieldSignal(const uint8_t inFieldSignal)
Sets my Field Signal value from the given 8-bit value.
Definition: ancillarydata.h:1389
IS_VANC_AJAAncDataSpace
#define IS_VANC_AJAAncDataSpace(_x_)
Definition: ancillarydata.h:185
ULWordSequence
std::vector< uint32_t > ULWordSequence
An ordered sequence of ULWord (uint32_t) values.
Definition: ntv2publicinterface.h:46
AJAAncDataType_Cea708
@ AJAAncDataType_Cea708
CEA708 (SMPTE 334) HD Closed Captioning.
Definition: ancillarydata.h:50
AJAExport
#define AJAExport
Definition: export.h:33
AJAAncDataCodingToString
const std::string & AJAAncDataCodingToString(const AJAAncDataCoding inValue, const bool inCompact=true)
Definition: ancillarydata.cpp:1372
AncChannelSearchSelect
AncChannelSearchSelect
Specifies which channel of a video stream in which to look for Anc data.
Definition: ancillarydata.h:152
AJAAncDataStream_4
@ AJAAncDataStream_4
The ancillary data is associated with DS4 of the video stream (Link B).
Definition: ancillarydata.h:108
AJAAncDataLoc::SetDataLink
AJAAncDataLoc & SetDataLink(const AJAAncDataLink inLink)
Sets my data link value to the given value (if valid).
Definition: ancillarydata.h:354
AJAAncData_AnalogSID
const uint8_t AJAAncData_AnalogSID
Definition: ancillarydata.h:25
AJAAncDataChannelToString
const std::string & AJAAncDataChannelToString(const AJAAncDataChannel inValue, const bool inCompact=true)
Definition: ancillarydata.cpp:1253
AncChannelSearch_Invalid
@ AncChannelSearch_Invalid
Invalid.
Definition: ancillarydata.h:157
AJAAncDataStream_2
@ AJAAncDataStream_2
The ancillary data is associated with DS2 of the video stream (Link A).
Definition: ancillarydata.h:106
AJAAncDataLink_RightEye
@ AJAAncDataLink_RightEye
The ancillary data is associated with the Right Eye stereoscopic video stream.
Definition: ancillarydata.h:84
AJAAncDataType_FrameStatusInfo524D
@ AJAAncDataType_FrameStatusInfo524D
Frame Status Information, such as Active Frame flag.
Definition: ancillarydata.h:55
AJAAncDataCoding_Digital
@ AJAAncDataCoding_Digital
The ancillary data is in the form of a SMPTE-291 Ancillary Packet.
Definition: ancillarydata.h:476
AJARTPAncPayloadHeader::SetField1
virtual AJARTPAncPayloadHeader & SetField1(void)
Sets my Field Signal value to "Field 1".
Definition: ancillarydata.h:1304
AJAAncDataType_HDR_HLG
@ AJAAncDataType_HDR_HLG
Definition: ancillarydata.h:59
AJAAncDataCoding
AJAAncDataCoding
Identifies the ancillary data coding type: digital or non-digital (analog/raw).
Definition: ancillarydata.h:474
AJAAncBufferFormat
AJAAncBufferFormat
Identifies the type of anc buffer the packet originated from: GUMP, RTP, VANC, or unknown.
Definition: ancillarydata.h:496
AJAAncDataHorizOffset_Unknown
#define AJAAncDataHorizOffset_Unknown
Unknown.
Definition: ancillarydata.h:209
AJAAncBufferFormat_RTP
@ AJAAncBufferFormat_RTP
RTP/IP.
Definition: ancillarydata.h:501
IsRaw
bool IsRaw(const NTV2FrameBufferFormat format)
Definition: ntv2utils.cpp:5506
AJAAncDataLoc::AJAAncDataLoc
AJAAncDataLoc(const AJAAncDataLink inLink=AJAAncDataLink_Unknown, const AJAAncDataChannel inChannel=AJAAncDataChannel_Unknown, const AJAAncDataSpace inIgnored=AJAAncDataSpace_Unknown, const uint16_t inLineNum=uint16_t(0x0000), const uint16_t inHorizOffset=uint16_t(0x0000), const AJAAncDataStream inStream=AJAAncDataStream_1)
Definition: ancillarydata.h:229
AJAAncDataLoc::SetDataVideoStream
AJAAncDataLoc & SetDataVideoStream(const AJAAncDataChannel inChannel)
Definition: ancillarydata.h:370
AJAAncillaryData::m_auxHB1
uint8_t m_auxHB1
HDMI Aux Header Byte 1 (Header Data)
Definition: ancillarydata.h:1165
ntv2publicinterface.h
Declares enums and structs used by all platform drivers and the SDK.
AJAAncDataLoc::SetDataChannel
AJAAncDataLoc & SetDataChannel(const AJAAncDataChannel inChannel)
Sets my data video stream value to the given value (if valid).
Definition: ancillarydata.h:368
AJAAncData_AnalogDID
const uint8_t AJAAncData_AnalogDID
Definition: ancillarydata.h:24
AJAAncDataSpace_VANC
@ AJAAncDataSpace_VANC
Ancillary data found between SAV and EAV (.
Definition: ancillarydata.h:177
AJAAncDataStream_Unknown
@ AJAAncDataStream_Unknown
It is not known which data stream the ancillary data is associated with.
Definition: ancillarydata.h:109
AJAAncillaryData::m_ancType
AJAAncDataType m_ancType
One of a known set of ancillary data types (or "Custom" if not identified)
Definition: ancillarydata.h:1159
AJARTPAncPacketHeader::Print
virtual std::ostream & Print(std::ostream &inOutStream) const
Streams a human-readable represetation of my current state to the given output stream.
Definition: ancillarydata.cpp:2496
AJAAncDataLink_Size
@ AJAAncDataLink_Size
Definition: ancillarydata.h:86
AJAAncBufferFormat_Unknown
@ AJAAncBufferFormat_Unknown
Unknown or "don't care".
Definition: ancillarydata.h:498
operator<<
std::ostream & operator<<(std::ostream &inOutStream, const AJAAncDIDSIDPair &inData)
Writes a human-readable rendition of the given AJAAncDIDSIDPair into the given output stream.
AJAAncillaryDataLocationPtr
AJAAncillaryDataLocation * AJAAncillaryDataLocationPtr
Definition: ancillarydata.h:1581
AJAAncDataSpace_Unknown
@ AJAAncDataSpace_Unknown
It's unknown which raster section contains the ancillary data (.
Definition: ancillarydata.h:179
AJAAncDataType_Cea608_Line21
@ AJAAncDataType_Cea608_Line21
CEA608 SD Closed Captioning ("Line 21" waveform)
Definition: ancillarydata.h:52
AJAAncillaryDIDSIDPair
std::pair< uint8_t, uint8_t > AJAAncillaryDIDSIDPair
A DID/SID pair, typically used as an indexing key.
Definition: ancillarydata.h:27
AJARTPAncPacketHeader::SetHorizOffset
virtual AJARTPAncPacketHeader & SetHorizOffset(const uint16_t inHOffset)
Sets my horizontal offset value to least-significant 12 bits of the given value.
Definition: ancillarydata.h:1494
AJAAncillaryData::GetGUMPHeaderByte3
virtual uint8_t GetGUMPHeaderByte3(void) const
Definition: ancillarydata.h:1148
AJAAncDataLoc::IsHanc
bool IsHanc(void) const
Definition: ancillarydata.h:325
AJAAncillaryDataStream
enum AJAAncDataStream AJAAncillaryDataStream
Definition: ancillarydata.h:1577
AJAAncDataLink_A
@ AJAAncDataLink_A
The ancillary data is associated with Link A of the video stream.
Definition: ancillarydata.h:81
AJAAncDataChannel_Both
@ AJAAncDataChannel_Both
SD ONLY – The ancillary data is associated with both the chroma and luma channels.
Definition: ancillarydata.h:132
AJARTPAncPacketHeader::SetStreamNumber
virtual AJARTPAncPacketHeader & SetStreamNumber(const uint8_t inStreamNum)
Sets my stream number value to least-significant 7 bits of the given value.
Definition: ancillarydata.h:1502
AJAAncillaryData::U16Packets
std::vector< U16Packet > U16Packets
An ordered sequence of zero or more U16Packet values.
Definition: ancillarydata.h:1062
AJAAncDataType_Timecode_ATC
@ AJAAncDataType_Timecode_ATC
SMPTE 12-M Ancillary Timecode (formerly known as "RP-188")
Definition: ancillarydata.h:48
AJAAuxData
AJAAncillaryData AJAAuxData
Definition: ancillarydata.h:1170
AJAAncillaryData::U16Packet
UWordSequence U16Packet
An ordered sequence of 10-bit packet words stored in uint16_t values.
Definition: ancillarydata.h:1061
AJARTPAncPayloadHeader::Print
virtual std::ostream & Print(std::ostream &inOutStream) const
Writes a human-readable dump of my current state into a given output stream.
Definition: ancillarydata.cpp:2346
AJAAncillaryData::m_checksum
uint8_t m_checksum
My 8-bit checksum: DID + SID + DC + payload (w/o parity) [note: NOT the same as the 9-bit checksum in...
Definition: ancillarydata.h:1154
AncChannelSearch_Both
@ AncChannelSearch_Both
Look both luma and chroma samples (SD only)
Definition: ancillarydata.h:156
AJAAncDataType_HDR_HDR10
@ AJAAncDataType_HDR_HDR10
Definition: ancillarydata.h:58
AJAAncLineNumberToString
std::string AJAAncLineNumberToString(const uint16_t inValue)
Definition: ancillarydata.cpp:1271
AJAAncillaryDataLocation
AJAAncDataLoc AJAAncillaryDataLocation
Definition: ancillarydata.h:451
AJAAncDataLoc::GetDataSpace
AJAAncDataSpace GetDataSpace(void) const
Definition: ancillarydata.h:316
AncChannelSearch_Y
@ AncChannelSearch_Y
Only look in luma samples.
Definition: ancillarydata.h:154