AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
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
ancillarydata.h
Declares the AJAAncillaryData class.
AJAAncillaryData_Cea608::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_cea608.cpp:149
AJAAncillaryData_Cea608_Vanc_SID
const uint8_t AJAAncillaryData_Cea608_Vanc_SID
Definition: ancillarydata_cea608_vanc.h:18
AJAAncillaryData_Cea608::Clear
virtual void Clear(void)
Frees my allocated memory, if any, and resets my members to their default values.
Definition: ancillarydata_cea608.cpp:71
AJAAncillaryData_Cea608_Vanc::m_lineNum
uint8_t m_lineNum
Definition: ancillarydata_cea608_vanc.h:109
AJAAncillaryData_Cea608_Vanc_DID
const uint8_t AJAAncillaryData_Cea608_Vanc_DID
Definition: ancillarydata_cea608_vanc.h:17
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
ancillarydatafactory.h
Declaration of the AJAAncillaryDataFactory class.
AJAStatus
AJAStatus
Definition: types.h:378
AJAAncillaryData_Cea608::RecognizeThisAncillaryData
static AJAAncDataType RecognizeThisAncillaryData(const AJAAncillaryData *pInAncData)
Definition: ancillarydata_cea608.cpp:141
AJAAncillaryData_Cea608
This is the base class for handling CEA-608 caption data packets.
Definition: ancillarydata_cea608.h:18
AJAAncillaryData
I am the principal class that stores a single SMPTE-291 SDI ancillary data packet OR the digitized co...
Definition: ancillarydata.h:552
ancillarydata_cea608.h
Declares the AJAAncillaryData_Cea608 class.
AJAAncillaryData_Cea608_Vanc::m_isF2
bool m_isF2
Definition: ancillarydata_cea608_vanc.h:108
AJAAncillaryData_Cea608_Vanc_PayloadSize
const uint32_t AJAAncillaryData_Cea608_Vanc_PayloadSize
Definition: ancillarydata_cea608_vanc.h:20
AJAAncillaryData_Cea608::Init
void Init(void)
Definition: ancillarydata_cea608.cpp:50
AJAAncillaryData::ParsePayloadData
virtual AJAStatus ParsePayloadData(void)
Parses (interprets) the "local" ancillary data from my payload data.
Definition: ancillarydata.cpp:501
AJAExport
#define AJAExport
Definition: export.h:33
AJAAncillaryData::Clone
virtual AJAAncillaryData * Clone(void) const
Definition: ancillarydata.cpp:165
AJAAncillaryData_Cea608_Vanc
This class handles VANC-based CEA-608 caption data packets (not "analog" Line 21).
Definition: ancillarydata_cea608_vanc.h:26
AJAAncillaryData_Cea608::operator=
AJAAncillaryData_Cea608 & operator=(const AJAAncillaryData_Cea608 &inRHS)
Assignment operator – replaces my contents with the right-hand-side value.
Definition: ancillarydata_cea608.cpp:57