AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
ancillarydata_framestatusinfo524D.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 #define AJAAncillaryData_FrameStatusInfo524D_PayloadSize 0x0B
15 
16 
19 {
20  Init();
21 }
22 
23 
26 {
27  Init();
28  *this = inClone;
29 }
30 
31 
34 {
35  Init();
36  if (pInClone)
37  *this = *pInClone;
38 }
39 
40 
42  : AJAAncillaryData (pInData)
43 {
44  Init();
45 }
46 
47 
49 {
50 }
51 
52 
54 {
59  m_IsRecording = false;
60 }
61 
62 
64 {
66  Init();
67 }
68 
69 
71 {
72  // Ignore self-assignment
73  if (this != &rhs)
74  {
75  // Copy the base class members
77 
78  // Copy the local members
79  m_IsRecording = rhs.m_IsRecording;
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  // This is valid for the Canon C300 and C500, and bit 1 (0x02) is
97  // valid for the Sony F3.
98  m_IsRecording = (((m_payload[10] & 0x03) == 0) ? false : true);
99  m_rcvDataValid = true;
100  return AJA_STATUS_SUCCESS;
101 }
102 
103 
105 {
106  if (pInAncData->GetDataCoding() == AJAAncDataCoding_Digital)
107  if (pInAncData->GetDID() == AJAAncillaryData_FrameStatusInfo524D_DID)
108  if (pInAncData->GetSID() == AJAAncillaryData_FrameStatusInfo524D_SID)
109  if (pInAncData->GetDC() == AJAAncillaryData_FrameStatusInfo524D_PayloadSize)
111  return AJAAncDataType_Unknown;
112 }
113 
114 
115 ostream & AJAAncillaryData_FrameStatusInfo524D::Print (ostream & debugStream, const bool bShowDetail) const
116 {
117  AJAAncillaryData::Print (debugStream, bShowDetail);
118  debugStream << endl
119  << "Recording: " << (m_IsRecording ? "Active" : "Inactive");
120  return debugStream;
121 }
AJAAncillaryData_FrameStatusInfo524D::operator=
virtual AJAAncillaryData_FrameStatusInfo524D & operator=(const AJAAncillaryData_FrameStatusInfo524D &inRHS)
Assignment operator – replaces my contents with the right-hand-side value.
Definition: ancillarydata_framestatusinfo524D.cpp:70
AJAAncillaryData_FrameStatusInfo524D::ParsePayloadData
virtual AJAStatus ParsePayloadData(void)
Parses out (interprets) the "local" ancillary data from my payload data.
Definition: ancillarydata_framestatusinfo524D.cpp:85
AJAAncillaryData::m_DID
uint8_t m_DID
Official SMPTE ancillary packet ID (w/o parity)
Definition: ancillarydata.h:1152
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:381
AJAAncillaryData_FrameStatusInfo524D::RecognizeThisAncillaryData
static AJAAncDataType RecognizeThisAncillaryData(const AJAAncillaryData *pInAncData)
Definition: ancillarydata_framestatusinfo524D.cpp:104
AJAAncDataType
AJAAncDataType
Identifies the ancillary data types that are known to this module.
Definition: ancillarydata.h:44
AJAAncillaryData_FrameStatusInfo524D::Clear
virtual void Clear(void)
Frees my allocated memory, if any, and resets my members to their default values.
Definition: ancillarydata_framestatusinfo524D.cpp:63
ancillarydata_framestatusinfo524D.h
Declares the AJAAncillaryData_FrameStatusInfo524D class.
AJAStatus
AJAStatus
Definition: types.h:378
AJAAncillaryData_FrameStatusInfo524D_PayloadSize
#define AJAAncillaryData_FrameStatusInfo524D_PayloadSize
Definition: ancillarydata_framestatusinfo524D.cpp:14
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
AJA_STATUS_FAIL
@ AJA_STATUS_FAIL
Definition: types.h:382
AJAAncillaryData
I am the principal class that stores a single SMPTE-291 SDI ancillary data packet OR the digitized co...
Definition: ancillarydata.h:552
AJAAncillaryData::m_coding
AJAAncDataCoding m_coding
Analog or digital data.
Definition: ancillarydata.h:1156
AJAAncillaryData_FrameStatusInfo524D_SID
const uint8_t AJAAncillaryData_FrameStatusInfo524D_SID
Definition: ancillarydata_framestatusinfo524D.h:17
AJAAncillaryData_FrameStatusInfo524D::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_framestatusinfo524D.cpp:115
AJAAncillaryData::m_rcvDataValid
bool m_rcvDataValid
This is set true (or not) by ParsePayloadData()
Definition: ancillarydata.h:1158
AJAAncillaryData_FrameStatusInfo524D_DID
const uint8_t AJAAncillaryData_FrameStatusInfo524D_DID
Definition: ancillarydata_framestatusinfo524D.h:16
AJAAncillaryData::m_SID
uint8_t m_SID
Official SMPTE secondary ID (or DBN - w/o parity)
Definition: ancillarydata.h:1153
AJAAncillaryData_FrameStatusInfo524D
This class handles "524D" Frame Status Information packets.
Definition: ancillarydata_framestatusinfo524D.h:24
AJAAncillaryData_FrameStatusInfo524D::~AJAAncillaryData_FrameStatusInfo524D
virtual ~AJAAncillaryData_FrameStatusInfo524D()
My destructor.
Definition: ancillarydata_framestatusinfo524D.cpp:48
false
#define false
Definition: ntv2devicefeatures.h:25
AJAAncillaryData::m_payload
ByteVector m_payload
My payload data (DC = size)
Definition: ancillarydata.h:1157
AJAAncillaryData::Clear
virtual void Clear(void)
Frees my allocated memory, if any, and resets my members to their default values.
Definition: ancillarydata.cpp:159
AJAAncillaryData::operator=
AJAAncillaryData & operator=(const AJAAncillaryData &inRHS)
Definition: ancillarydata.cpp:1576
std
Definition: json.hpp:5362
AJAAncillaryData_FrameStatusInfo524D::Init
void Init(void)
Definition: ancillarydata_framestatusinfo524D.cpp:53
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
AJAAncillaryData::m_ancType
AJAAncDataType m_ancType
One of a known set of ancillary data types (or "Custom" if not identified)
Definition: ancillarydata.h:1159
AJAAncillaryData_FrameStatusInfo524D::AJAAncillaryData_FrameStatusInfo524D
AJAAncillaryData_FrameStatusInfo524D()
My default constructor.
Definition: ancillarydata_framestatusinfo524D.cpp:17