AJA NTV2 SDK
17.5.0.1658
NTV2 SDK 17.5.0.1658
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Functions
a
b
c
e
f
g
h
i
j
k
l
m
o
p
r
s
t
u
v
w
Variables
Typedefs
a
b
c
d
e
f
g
h
i
j
k
m
n
o
p
r
s
t
u
v
Enumerations
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Typedefs
_
a
b
c
d
e
f
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Enumerations
Enumerator
b
c
e
g
k
n
r
v
Related Functions
:
a
b
c
d
j
o
s
w
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Functions
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
y
Variables
_
a
b
c
e
f
g
h
i
k
l
m
n
p
r
s
t
u
v
w
Typedefs
_
a
b
c
d
f
h
i
j
l
m
n
o
p
q
r
s
t
u
w
Enumerations
_
a
b
c
d
e
f
h
i
j
k
m
n
p
q
r
s
t
u
v
x
Enumerator
a
b
c
d
e
f
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
ancillarydata_hdr_hlg.cpp
Go to the documentation of this file.
1
/* SPDX-License-Identifier: MIT */
8
#include "
ancillarydata_hdr_hlg.h
"
9
#include <ios>
10
#include <iomanip>
11
12
using namespace
std
;
13
14
15
#define AJAAncillaryData_HDR_HLG_PayloadSize 0x1D
16
17
18
AJAAncillaryData_HDR_HLG::AJAAncillaryData_HDR_HLG
()
19
:
AJAAncillaryData
()
20
{
21
Init
();
22
}
23
24
25
AJAAncillaryData_HDR_HLG::AJAAncillaryData_HDR_HLG
(
const
AJAAncillaryData_HDR_HLG
& inClone)
26
:
AJAAncillaryData
()
27
{
28
Init
();
29
*
this
= inClone;
30
}
31
32
33
AJAAncillaryData_HDR_HLG::AJAAncillaryData_HDR_HLG
(
const
AJAAncillaryData_HDR_HLG
* pInClone)
34
:
AJAAncillaryData
()
35
{
36
Init
();
37
if
(pInClone)
38
*
this
= *pInClone;
39
}
40
41
42
AJAAncillaryData_HDR_HLG::AJAAncillaryData_HDR_HLG
(
const
AJAAncillaryData
* pInData)
43
:
AJAAncillaryData
(pInData)
44
{
45
Init
();
46
}
47
48
49
AJAAncillaryData_HDR_HLG::~AJAAncillaryData_HDR_HLG
()
50
{
51
}
52
53
54
void
AJAAncillaryData_HDR_HLG::Init
(
void
)
55
{
56
m_ancType
=
AJAAncDataType_HDR_HLG
;
57
m_coding
=
AJAAncDataCoding_Digital
;
58
m_DID
=
AJAAncillaryData_HDR_HLG_DID
;
59
m_SID
=
AJAAncillaryData_HDR_HLG_SID
;
60
m_location
.
SetDataLink
(
AJAAncDataLink_A
).
SetDataChannel
(
AJAAncDataChannel_Y
).
SetLineNumber
(16).
SetHorizontalOffset
(
AJAAncDataHorizOffset_AnyVanc
);
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
66
void
AJAAncillaryData_HDR_HLG::Clear
(
void
)
67
{
68
AJAAncillaryData::Clear
();
69
Init
();
70
}
71
72
73
AJAAncillaryData_HDR_HLG
&
AJAAncillaryData_HDR_HLG::operator =
(
const
AJAAncillaryData_HDR_HLG
& rhs)
74
{
75
// Ignore self-assignment
76
if
(
this
!= &rhs)
77
{
78
// Copy the base class members
79
AJAAncillaryData::operator=
(rhs);
80
}
81
return
*
this
;
82
}
83
84
85
AJAStatus
AJAAncillaryData_HDR_HLG::ParsePayloadData
(
void
)
86
{
87
// The size is specific to Canon
88
if
(GetDC() !=
AJAAncillaryData_HDR_HLG_PayloadSize
)
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
101
AJAAncDataType
AJAAncillaryData_HDR_HLG::RecognizeThisAncillaryData
(
const
AJAAncillaryData
* pInAncData)
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: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::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
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:378
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:1408
AJA_STATUS_FAIL
@ AJA_STATUS_FAIL
Definition:
types.h:382
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
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
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:1156
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:354
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:1158
AJAAncDataLoc::SetHorizontalOffset
AJAAncDataLoc & SetHorizontalOffset(uint16_t inHOffset)
Specifies the horizontal packet position in the raster.
Definition:
ancillarydata.h:408
AJAAncillaryData::m_SID
uint8_t m_SID
Official SMPTE secondary ID (or DBN - w/o parity)
Definition:
ancillarydata.h:1153
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:159
AJAAncillaryData_HDR_HLG_PayloadSize
#define AJAAncillaryData_HDR_HLG_PayloadSize
Definition:
ancillarydata_hdr_hlg.cpp:15
AJAAncillaryData::operator=
AJAAncillaryData & operator=(const AJAAncillaryData &inRHS)
Definition:
ancillarydata.cpp:1575
std
Definition:
json.hpp:5362
AJAAncDataLoc::SetDataLink
AJAAncDataLoc & SetDataLink(const AJAAncDataLink inLink)
Sets my data link value to the given value (if valid).
Definition:
ancillarydata.h:354
AJAAncDataCoding_Digital
@ AJAAncDataCoding_Digital
The ancillary data is in the form of a SMPTE-291 Ancillary Packet.
Definition:
ancillarydata.h:476
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:368
AJAAncillaryData::m_ancType
AJAAncDataType m_ancType
One of a known set of ancillary data types (or "Custom" if not identified)
Definition:
ancillarydata.h:1159
AJAAncDataLink_A
@ AJAAncDataLink_A
The ancillary data is associated with Link A of the video stream.
Definition:
ancillarydata.h:81
AJAAncillaryData_HDR_HLG_DID
const uint8_t AJAAncillaryData_HDR_HLG_DID
Definition:
ancillarydata_hdr_hlg.h:14
libajantv2
ajaanc
src
ancillarydata_hdr_hlg.cpp
Generated on Tue Feb 25 2025 18:41:13 for AJA NTV2 SDK by
1.8.17