AJA NTV2 SDK  17.0.1.1246
NTV2 SDK 17.0.1.1246
ancillarydata_hdr_hlg.cpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
9 #include <ios>
10 #include <iomanip>
11 
12 using namespace std;
13 
14 
15 #define AJAAncillaryData_HDR_HLG_PayloadSize 0x1D
16 
17 
19  : AJAAncillaryData ()
20 {
21  Init();
22 }
23 
24 
26  : AJAAncillaryData ()
27 {
28  Init();
29  *this = inClone;
30 }
31 
32 
34  : AJAAncillaryData ()
35 {
36  Init();
37  if (pInClone)
38  *this = *pInClone;
39 }
40 
41 
43  : AJAAncillaryData (pInData)
44 {
45  Init();
46 }
47 
48 
50 {
51 }
52 
53 
55 {
61  uint8_t payload[29] = {0x08,0x03,0x00,0x0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
62  SetPayloadData(payload, 29);
63 }
64 
65 
67 {
69  Init();
70 }
71 
72 
74 {
75  // Ignore self-assignment
76  if (this != &rhs)
77  {
78  // Copy the base class members
80  }
81  return *this;
82 }
83 
84 
86 {
87  // The size is specific to Canon
89  {
90  // Load default values
91  Init();
92  m_rcvDataValid = false;
93  return AJA_STATUS_FAIL;
94  }
95 
96  m_rcvDataValid = true;
97  return AJA_STATUS_SUCCESS;
98 }
99 
100 
102 {
103  if (pInAncData->GetDataCoding() == AJAAncDataCoding_Digital)
104  if (pInAncData->GetDID() == AJAAncillaryData_HDR_HLG_DID)
105  if (pInAncData->GetSID() == AJAAncillaryData_HDR_HLG_SID)
106  if (pInAncData->GetDC() == AJAAncillaryData_HDR_HLG_PayloadSize)
107  return AJAAncDataType_HDR_HLG;
108  return AJAAncDataType_Unknown;
109 }
110 
111 
112 ostream & AJAAncillaryData_HDR_HLG::Print (ostream & debugStream, const bool bShowDetail) const
113 {
114  AJAAncillaryData::Print (debugStream, bShowDetail);
115  debugStream << endl;
116  return debugStream;
117 }
AJAAncillaryData_HDR_HLG::RecognizeThisAncillaryData
static AJAAncDataType RecognizeThisAncillaryData(const AJAAncillaryData *pInAncData)
Definition: ancillarydata_hdr_hlg.cpp:101
ancillarydata_hdr_hlg.h
Declares the AJAAncillaryData_HDR_HLG class.
AJAAncillaryData::m_DID
uint8_t m_DID
Official SMPTE ancillary packet ID (w/o parity)
Definition: ancillarydata.h:1084
AJAAncDataType_Unknown
@ AJAAncDataType_Unknown
Includes data that is valid, but we don't recognize.
Definition: ancillarydata.h:46
AJA_STATUS_SUCCESS
@ AJA_STATUS_SUCCESS
Definition: types.h:368
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:1087
AJAAncDataLoc::SetLineNumber
AJAAncDataLoc & SetLineNumber(const uint16_t inLineNum)
Sets my anc data line number value.
Definition: ancillarydata.h:392
AJAAncDataType
AJAAncDataType
Identifies the ancillary data types that are known to this module.
Definition: ancillarydata.h:44
AJAAncillaryData_HDR_HLG_SID
const uint8_t AJAAncillaryData_HDR_HLG_SID
Definition: ancillarydata_hdr_hlg.h:15
AJAAncillaryData_HDR_HLG::operator=
virtual AJAAncillaryData_HDR_HLG & operator=(const AJAAncillaryData_HDR_HLG &inRHS)
Assignment operator – replaces my contents with the right-hand-side value.
Definition: ancillarydata_hdr_hlg.cpp:73
AJAStatus
AJAStatus
Definition: types.h:365
AJAAncillaryData_HDR_HLG::~AJAAncillaryData_HDR_HLG
virtual ~AJAAncillaryData_HDR_HLG()
My destructor.
Definition: ancillarydata_hdr_hlg.cpp:49
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:1306
AJA_STATUS_FAIL
@ AJA_STATUS_FAIL
Definition: types.h:369
AJAAncDataHorizOffset_AnyVanc
#define AJAAncDataHorizOffset_AnyVanc
VANC – Packet placed/found in any legal area of raster line after SAV, but before EAV.
Definition: ancillarydata.h:211
AJAAncillaryData
I am the principal class that stores a single SMPTE-291 SDI ancillary data packet OR the digitized co...
Definition: ancillarydata.h:550
AJAAncDataChannel_Y
@ AJAAncDataChannel_Y
The ancillary data is associated with the luminance (Y) channel of the video stream.
Definition: ancillarydata.h:132
AJAAncillaryData_HDR_HLG::Init
void Init(void)
Definition: ancillarydata_hdr_hlg.cpp:54
AJAAncillaryData::m_coding
AJAAncDataCoding m_coding
Analog or digital data.
Definition: ancillarydata.h:1088
AJAAncillaryData_HDR_HLG
This class handles "5251" Frame Status Information packets.
Definition: ancillarydata_hdr_hlg.h:21
AJAAncillaryData_HDR_HLG::Clear
virtual void Clear(void)
Frees my allocated memory, if any, and resets my members to their default values.
Definition: ancillarydata_hdr_hlg.cpp:66
AJAAncillaryData::SetPayloadData
virtual AJAStatus SetPayloadData(const uint8_t *pInData, const uint32_t inByteCount)
Copy data from external memory into my local payload memory.
Definition: ancillarydata.cpp:342
AJAAncillaryData_HDR_HLG::ParsePayloadData
virtual AJAStatus ParsePayloadData(void)
Parses out (interprets) the "local" ancillary data from my payload data.
Definition: ancillarydata_hdr_hlg.cpp:85
AJAAncillaryData::m_rcvDataValid
bool m_rcvDataValid
This is set true (or not) by ParsePayloadData()
Definition: ancillarydata.h:1090
AJAAncDataLoc::SetHorizontalOffset
AJAAncDataLoc & SetHorizontalOffset(uint16_t inHOffset)
Specifies the horizontal packet position in the raster.
Definition: ancillarydata.h:407
AJAAncillaryData::m_SID
uint8_t m_SID
Official SMPTE secondary ID (or DBN - w/o parity)
Definition: ancillarydata.h:1085
AJAAncillaryData_HDR_HLG::AJAAncillaryData_HDR_HLG
AJAAncillaryData_HDR_HLG()
My default constructor.
Definition: ancillarydata_hdr_hlg.cpp:18
AJAAncillaryData::Clear
virtual void Clear(void)
Frees my allocated memory, if any, and resets my members to their default values.
Definition: ancillarydata.cpp:147
AJAAncillaryData_HDR_HLG_PayloadSize
#define AJAAncillaryData_HDR_HLG_PayloadSize
Definition: ancillarydata_hdr_hlg.cpp:15
AJAAncillaryData::operator=
virtual AJAAncillaryData & operator=(const AJAAncillaryData &inRHS)
Definition: ancillarydata.cpp:1465
AJAAncDataLoc::SetDataLink
AJAAncDataLoc & SetDataLink(const AJAAncDataLink inLink)
Sets my data link value to the given value (if valid).
Definition: ancillarydata.h:353
AJAAncDataCoding_Digital
@ AJAAncDataCoding_Digital
The ancillary data is in the form of a SMPTE-291 Ancillary Packet.
Definition: ancillarydata.h:475
AJAAncDataType_HDR_HLG
@ AJAAncDataType_HDR_HLG
Definition: ancillarydata.h:59
AJAAncillaryData_HDR_HLG::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_hdr_hlg.cpp:112
AJAAncDataLoc::SetDataChannel
AJAAncDataLoc & SetDataChannel(const AJAAncDataChannel inChannel)
Sets my data video stream value to the given value (if valid).
Definition: ancillarydata.h:367
AJAAncillaryData::m_ancType
AJAAncDataType m_ancType
One of a known set of ancillary data types (or "Custom" if not identified)
Definition: ancillarydata.h:1091
AJAAncDataLink_A
@ AJAAncDataLink_A
The ancillary data is associated with Link A of the video stream.
Definition: ancillarydata.h:80
AJAAncillaryData_HDR_HLG_DID
const uint8_t AJAAncillaryData_HDR_HLG_DID
Definition: ancillarydata_hdr_hlg.h:14