AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
ntv2vpid.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef NTV2VPID_H
9 #define NTV2VPID_H
10 
11 #include "ajaexport.h"
12 #include "ntv2publicinterface.h"
13 #include "ajabase/system/info.h"
14 
15 #if defined(AJALinux)
16 #include <stdio.h>
17 #endif
18 
24 {
25 public:
29  CNTV2VPID (const ULWord inData = 0);
31  CNTV2VPID (const CNTV2VPID & other);
32  virtual CNTV2VPID & operator = (const CNTV2VPID & inRHS);
33  virtual inline ~CNTV2VPID () {}
35 
39  virtual inline ULWord GetVPID (void) const {return m_uVPID;}
41  virtual VPIDVersion GetVersion (void) const;
42  virtual NTV2VideoFormat GetVideoFormat (void) const;
43  virtual bool IsStandard3Ga (void) const;
44  virtual bool IsStandardMultiLink4320 (void) const;
45  virtual bool IsStandardTwoSampleInterleave (void) const;
46  virtual VPIDStandard GetStandard (void) const;
47  virtual bool GetProgressiveTransport (void) const;
48  virtual bool GetProgressivePicture (void) const;
49  virtual VPIDPictureRate GetPictureRate (void) const;
50  virtual bool GetImageAspect16x9 (void) const;
51  virtual VPIDSampling GetSampling (void) const;
52  virtual bool IsRGBSampling (void) const; // New in SDK 16.0
53  virtual VPIDChannel GetChannel (void) const;
54  virtual VPIDChannel GetDualLinkChannel (void) const;
55  virtual VPIDBitDepth GetBitDepth (void) const;
56  virtual inline bool IsValid (void) const {return GetVersion() == VPIDVersion_1;}
57  virtual AJALabelValuePairs & GetInfo (AJALabelValuePairs & outInfo) const;
58  virtual NTV2VPIDXferChars GetTransferCharacteristics (void) const;
59  virtual NTV2VPIDColorimetry GetColorimetry (void) const;
60  virtual NTV2VPIDLuminance GetLuminance (void) const;
61  virtual NTV2VPIDRGBRange GetRGBRange (void) const; // New in SDK 16.0
62  virtual std::ostream & Print (std::ostream & ostrm) const;
63  virtual std::ostream & PrintPretty (std::ostream & ostrm) const; // New in SDK 16.0
64  virtual std::string AsString (const bool inTabular = false) const; // New in SDK 16.0
66 
70  virtual inline CNTV2VPID & SetVPID (const ULWord inData) {m_uVPID = inData; return *this;}
72 
73  virtual bool SetVPID (const NTV2VideoFormat inVideoFormat,
74  const NTV2FrameBufferFormat inFrameBufferFormat,
75  const bool inIsProgressive,
76  const bool inIs16x9Aspect,
77  const VPIDChannel inVPIDChannel);
78 
79  virtual bool SetVPID (const NTV2VideoFormat inOutputFormat,
80  const bool inIsDualLink,
81  const bool inIs48BitRGBFormat,
82  const bool inIsOutput3Gb,
83  const bool inIsSMPTE425,
84  const VPIDChannel inVPIDhannel);
85 
86 
87 
88  virtual CNTV2VPID & SetVersion (const VPIDVersion inVersion);
89  virtual CNTV2VPID & SetStandard (const VPIDStandard inStandard);
90  virtual CNTV2VPID & SetProgressiveTransport (const bool inIsProgressiveTransport);
91  virtual CNTV2VPID & SetProgressivePicture (const bool inIsProgressivePicture);
92  virtual CNTV2VPID & SetPictureRate (const VPIDPictureRate inPictureRate);
93  virtual CNTV2VPID & SetImageAspect16x9 (const bool inIs16x9Aspect);
94  virtual CNTV2VPID & SetSampling (const VPIDSampling inSampling);
95  virtual CNTV2VPID & SetChannel (const VPIDChannel inChannel);
96  virtual CNTV2VPID & SetDualLinkChannel (const VPIDChannel inChannel);
97  virtual CNTV2VPID & SetBitDepth (const VPIDBitDepth inBitDepth);
98  virtual CNTV2VPID & SetTransferCharacteristics (const NTV2VPIDXferChars inXferChars);
99  virtual CNTV2VPID & SetColorimetry (const NTV2VPIDColorimetry inColorimetry);
100  virtual CNTV2VPID & SetLuminance (const NTV2VPIDLuminance inLuminance);
101  virtual CNTV2VPID & SetRGBRange (const NTV2VPIDRGBRange inRGBRange); // New in SDK 16.0
102  virtual inline CNTV2VPID & MakeInvalid (void) {return SetVPID(0);} // New in SDK 16.0
103 
105 
106 
110  static bool SetVPIDData (ULWord & outVPID,
112  const NTV2VideoFormat inOutputFormat,
113  const NTV2FrameBufferFormat inFrameBufferFormat,
114  const bool inIsProgressive,
115  const bool inIs16x9Aspect,
116  const VPIDChannel inVPIDChannel,
117  const bool inUseVPIDChannel = true); // defaults to using VPID channel
118 
119  static bool SetVPIDData (ULWord & outVPID,
120  const NTV2VideoFormat inOutputFormat,
121  const bool inIsDualLinkRGB,
122  const bool inIsRGB48Bit,
123  const bool inIsOutput3Gb,
124  const bool inIsSMPTE425,
125  const VPIDChannel inVPIDChannel,
126  const bool inUseVPIDChannel = true,
127  const bool inOutputIs6G = false,
128  const bool inOutputIs12G = false,
129  const NTV2VPIDXferChars inXferChars = NTV2_VPID_TC_SDR_TV,
130  const NTV2VPIDColorimetry inColorimetry = NTV2_VPID_Color_Rec709,
131  const NTV2VPIDLuminance inLuminance = NTV2_VPID_Luminance_YCbCr,
132  const NTV2VPIDRGBRange inRGBRange = NTV2_VPID_Range_Narrow); // New in SDK 16.0
133 
134  static const std::string VersionString (const VPIDVersion version); // New in SDK 15.5
135  static const std::string StandardString (const VPIDStandard std); // New in SDK 15.5
136  static const std::string PictureRateString (const VPIDPictureRate rate); // New in SDK 15.5
137  static const std::string SamplingString (const VPIDSampling sample); // New in SDK 15.5
138  static const std::string ChannelString (const VPIDChannel chan); // New in SDK 15.5
139  static const std::string DynamicRangeString (const VPIDDynamicRange range); // New in SDK 15.5
140  static const std::string BitDepthString (const VPIDBitDepth depth); // New in SDK 15.5
141  static const std::string LinkString (const VPIDLink link); // New in SDK 15.5
142  static const std::string AudioString (const VPIDAudio audio); // New in SDK 15.5
143  static const std::string VPIDVersionToString (const VPIDVersion inVers); // New in SDK 16.0.1
144  static const std::string VPIDStandardToString (const VPIDStandard inStd); // New in SDK 16.0.1
145  static bool VPIDStandardIsSingleLink (const VPIDStandard inStd); // New in SDK 16.0
146  static bool VPIDStandardIsDualLink (const VPIDStandard inStd); // New in SDK 16.0
147  static bool VPIDStandardIsQuadLink (const VPIDStandard inStd); // New in SDK 16.0
148  static bool VPIDStandardIsOctLink (const VPIDStandard inStd); // New in SDK 16.0
150 
151 private:
152  ULWord m_uVPID;
153 
154 }; // CNTV2VPID
155 
156 AJAExport std::ostream & operator << (std::ostream & ostrm, const CNTV2VPID & inData);
157 
158 #endif // NTV2VPID_H
CNTV2VPID::~CNTV2VPID
virtual ~CNTV2VPID()
Definition: ntv2vpid.h:33
ajaexport.h
Defines the import/export macros for producing DLLs or LIBs.
info.h
Declares the AJASystemInfo class.
VPIDStandard
VPIDStandard
Definition: ntv2enums.h:3933
CNTV2VPID::MakeInvalid
virtual CNTV2VPID & MakeInvalid(void)
Definition: ntv2vpid.h:102
NTV2VPIDXferChars
enum NTV2VPIDTransferCharacteristics NTV2VPIDXferChars
NTV2VPIDLuminance
NTV2VPIDLuminance
Definition: ntv2enums.h:4178
VPIDPictureRate
VPIDPictureRate
Definition: ntv2enums.h:3985
NTV2FrameBufferFormat
NTV2FrameBufferFormat
Identifies a particular video frame buffer format. See Device Frame Buffer Formats for details.
Definition: ntv2enums.h:207
operator<<
std::ostream & operator<<(std::ostream &ostrm, const CNTV2VPID &inData)
Definition: ntv2vpid.cpp:1426
VPIDVersion_1
@ VPIDVersion_1
Definition: ntv2enums.h:3930
ULWord
uint32_t ULWord
Definition: ajatypes.h:253
CNTV2VPID
A convenience class that simplifies encoding or decoding the 4-byte VPID payload that can be read or ...
Definition: ntv2vpid.h:23
VPIDBitDepth
VPIDBitDepth
Definition: ntv2enums.h:4045
VPIDSampling
VPIDSampling
Definition: ntv2enums.h:4005
NTV2_VPID_TC_SDR_TV
@ NTV2_VPID_TC_SDR_TV
Definition: ntv2enums.h:4164
NTV2VPIDColorimetry
NTV2VPIDColorimetry
Definition: ntv2enums.h:4170
VPIDVersion
VPIDVersion
Definition: ntv2enums.h:3927
VPIDAudio
VPIDAudio
Definition: ntv2enums.h:4066
NTV2_VPID_Color_Rec709
@ NTV2_VPID_Color_Rec709
Definition: ntv2enums.h:4172
std
Definition: json.hpp:5362
AJAExport
#define AJAExport
Definition: export.h:33
NTV2_VPID_Range_Narrow
@ NTV2_VPID_Range_Narrow
Definition: ntv2enums.h:4186
NTV2VideoFormat
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
NTV2VPIDRGBRange
NTV2VPIDRGBRange
Definition: ntv2enums.h:4184
ntv2publicinterface.h
Declares enums and structs used by all platform drivers and the SDK.
VPIDDynamicRange
VPIDDynamicRange
Definition: ntv2enums.h:4037
AJALabelValuePairs
std::vector< AJALabelValuePair > AJALabelValuePairs
An ordered sequence of label/value pairs.
Definition: info.h:69
NTV2_VPID_Luminance_YCbCr
@ NTV2_VPID_Luminance_YCbCr
Definition: ntv2enums.h:4180
VPIDLink
VPIDLink
Definition: ntv2enums.h:4054
VPIDChannel
VPIDChannel
Definition: ntv2enums.h:4025