AJA NTV2 SDK  18.0.0.2122
NTV2 SDK 18.0.0.2122
ancillarydata_cea608_vanc.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef AJA_ANCILLARYDATA_CEA608_VANC_H
9 #define AJA_ANCILLARYDATA_CEA608_VANC_H
10 
11 #include "ancillarydatafactory.h"
12 #include "ancillarydata.h"
13 #include "ancillarydata_cea608.h"
14 
15 
16 // CEA-608 (SMPTE 334) Ancillary Packet
17 const uint8_t AJAAncillaryData_Cea608_Vanc_DID = 0x61;
18 const uint8_t AJAAncillaryData_Cea608_Vanc_SID = 0x02;
19 
20 const uint32_t AJAAncillaryData_Cea608_Vanc_PayloadSize = 3; // constant 3 bytes
21 
22 
27 {
28 public:
30 
36 
42 
48 
49  virtual ~AJAAncillaryData_Cea608_Vanc ();
50 
51  virtual void Clear (void);
52 
59 
60  virtual inline AJAAncillaryData_Cea608_Vanc * Clone (void) const {return new AJAAncillaryData_Cea608_Vanc (this);}
61 
68  virtual AJAStatus SetLine (const bool inIsF2, const uint8_t inLineNum);
69 
70  virtual inline uint16_t GetLineNumber (void) const {return m_lineNum;}
71  virtual inline bool IsField2 (void) const {return m_isF2;}
72 
77  virtual AJAStatus ParsePayloadData (void);
78 
84  virtual AJAStatus GeneratePayloadData (void);
85 
92  virtual std::ostream & Print (std::ostream & inOutStream, const bool inDetailed = false) const;
93 
99 
100 
101  virtual AJAStatus GetLine (uint8_t & outFieldNum, uint8_t & outLineNum) const;
102 
103 protected:
104  void Init (void); // NOT virtual - called by constructors
105 
106  // Note: if you make a change to the local member data, be sure to ALSO make the appropriate
107  // changes in the Init() and operator= methods!
108  bool m_isF2; // F2 if true; otherwise F1
109  uint8_t m_lineNum; // 525i: 0 = line 9 (field 1) or line 272 (field 2)
110  // 625i: 0 = line 5 (field 1) or line 318 (field 2)
111 
112 }; // AJAAncillaryData_Cea608_Vanc
113 
114 #endif // AJA_ANCILLARYDATA_CEA608_VANC_H
virtual void Clear(void)
Frees my allocated memory, if any, and resets my members to their default values. ...
AJAStatus
Definition: types.h:380
AJAAncDataType
Identifies the ancillary data types that are known to this module.
Definition: ancillarydata.h:44
static AJAAncDataType RecognizeThisAncillaryData(const AJAAncillaryData *pInAncData)
virtual AJAStatus ParsePayloadData(void)
Parses (interprets) the "local" ancillary data from my payload data.
This is the base class for handling CEA-608 caption data packets.
virtual AJAStatus GeneratePayloadData(void)
Generates the payload data from the "local" ancillary data.
AJAAncillaryData_Cea608 & operator=(const AJAAncillaryData_Cea608 &inRHS)
Assignment operator – replaces my contents with the right-hand-side value.
const uint32_t AJAAncillaryData_Cea608_Vanc_PayloadSize
This class handles VANC-based CEA-608 caption data packets (not "analog" Line 21).
Declares the AJAAncillaryData_Cea608 class.
Declaration of the AJAAncillaryDataFactory class.
#define AJAExport
Definition: export.h:33
virtual uint16_t GetLineNumber(void) const
Declares the AJAAncillaryData class.
const uint8_t AJAAncillaryData_Cea608_Vanc_SID
I am the principal class that stores a single SMPTE-291 SDI ancillary data packet OR the digitized co...
virtual std::ostream & Print(std::ostream &inOutStream, const bool inDetailed=false) const
Streams a human-readable representation of me to the given output stream.
virtual AJAAncillaryData_Cea608_Vanc * Clone(void) const
const uint8_t AJAAncillaryData_Cea608_Vanc_DID