216 m_uVPID = inVPID.m_uVPID;
224 m_uVPID = inRHS.m_uVPID;
235 return SetVPIDData (m_uVPID, videoFormat, frameBufferFormat, progressive, aspect16x9, channel);
246 return SetVPIDData (m_uVPID, videoFormat, dualLink, format48Bit, output3Gb, st425, channel);
489 ULWord lowBit(0), highBit(0);
490 highBit = (inColorimetry&0x2)>>1;
491 lowBit = inColorimetry&0x1;
516 uint8_t lowBit(0), highBit(0), value(0);
519 value = (highBit << 1)|lowBit;
581 const bool inIsProgressive,
582 const bool inIs16x9Aspect,
584 const bool inUseChannel)
586 (
void)inIsProgressive;
587 (
void)inIs16x9Aspect;
589 bool bRGB48Bit (
false);
590 bool bDualLinkRGB (
false);
591 const bool kOutput3Gb (
false);
593 switch(inFrameBufferFormat)
614 bDualLinkRGB =
false;
633 const bool inIsDualLinkRGB,
634 const bool inIsRGB48Bit,
635 const bool inOutputIs3Gb,
636 const bool inIsSMPTE425,
638 const bool inUseChannel,
639 const bool inOutputIs6G,
640 const bool inOutputIs12G,
649 ::memset (&vpidSpec, 0,
sizeof(vpidSpec));
684 switch (vpidStandard)
687 switch (vpidFrameRate)
700 switch (vpidFrameRate)
728 if (vpidProgTransport)
730 if (vpidHorizontal2048)
741 if (vpidHorizontal2048)
753 if (vpidHorizontal2048)
766 if (vpidProgTransport)
768 if (vpidHorizontal2048)
779 if (vpidHorizontal2048)
791 if (vpidHorizontal2048)
801 if (vpidHorizontal2048)
812 if (vpidHorizontal2048)
829 #define VPID_ENUM_CASE_RETURN_STR(enum_name) case(enum_name): return #enum_name 1027 #if !defined(_DEBUG) 1085 #if !defined(_DEBUG) 1321 static const string sVPIDPictureRate[] = {
"None",
"Reserved1",
"23.98",
"24.00",
"47.95",
"25.00",
"29.97",
"30.00",
"48.00",
"50.00",
"59.94",
"60.00",
1322 "ReservedC",
"ReservedD",
"ReservedE",
"ReservedF" };
1323 static const string sVPIDSampling[] = {
"YCbCr 4:2:2",
"YCbCr 4:4:4",
"GBR 4:4:4",
"YCbCr 4:2:0",
"YCbCrA 4:2:2:4",
"YCbCrA 4:4:4:4",
1324 "GBRA 4:4:4:4",
"Reserved7",
"YCbCrD 4:2:2:4",
"YCbCrD 4:4:4:4",
"GBRD 4:4:4:4",
"ReservedB",
1325 "ReservedC",
"ReservedD",
"ReservedE",
"XYZ 4:4:4" };
1326 static const string sVPIDChannel[] = {
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8" };
1329 static const string sVPIDLink[] = {
"1",
"2",
"3",
"4",
"5",
"6",
"7",
"8" };
1330 static const string sVPIDAudio[] = {
"Unknown",
"Copied",
"Additional",
"Reserved" };
1340 ostrm <<
"VPID " <<
xHEX0N(m_uVPID,8)
1363 ostrm <<
"VPID " <<
xHEX0N(m_uVPID,8) << endl
1384 #define YesOrNo(__x__) ((__x__) ? "Yes" : "No") 1388 ostringstream hexConv; hexConv <<
xHEX0N(m_uVPID,8);
1420 { ostringstream oss;
1428 return inData.
Print(ostrm);
static const std::string VersionString(const VPIDVersion version)
NTV2VPIDLuminance luminance
Describes the luminance and color difference.
static NTV2VideoFormat stTable2048p[VPIDPictureRate_ReservedF+1]
bool isStereo
If true, the video stream is part of a stereo pair.
virtual CNTV2VPID & SetColorimetry(const NTV2VPIDColorimetry inColorimetry)
NTV2VPIDColorimetry colorimetry
Describes the Colorimetry.
static const string sVPIDPictureRate[]
static const string sVPIDBitDepth[]
#define VPID_ENUM_CASE_RETURN_STR(enum_name)
static NTV2VideoFormat stTable3840psfSID[VPIDPictureRate_ReservedF+1]
virtual NTV2VPIDRGBRange GetRGBRange(void) const
virtual CNTV2VPID & SetProgressiveTransport(const bool inIsProgressiveTransport)
virtual VPIDSampling GetSampling(void) const
static const std::string DynamicRangeString(const VPIDDynamicRange range)
virtual AJALabelValuePairs & GetInfo(AJALabelValuePairs &outInfo) const
VPIDAudio audioCarriage
Specifies how audio is carried in additional channels.
NTV2FrameBufferFormat
Identifies a particular video frame buffer pixel format. See Device Frame Buffer Formats for details...
enum NTV2VPIDTransferCharacteristics NTV2VPIDXferChars
virtual std::ostream & PrintPretty(std::ostream &ostrm) const
static const string sVPIDAudio[]
static bool VPIDStandardIsQuadLink(const VPIDStandard inStd)
Declares the CNTV2VPID class. See SMPTE 352 standard for details.
NTV2VideoFormat videoFormat
Specifies the format of the video stream.
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
static const string sVPIDDynamicRange[]
static const string sVPIDLuminance[]
Declares functions for the C implementations of VPID generation from a VPIDSpec.
virtual NTV2VPIDXferChars GetTransferCharacteristics(void) const
std::vector< AJALabelValuePair > AJALabelValuePairs
An ordered sequence of label/value pairs.
virtual CNTV2VPID & SetTransferCharacteristics(const NTV2VPIDXferChars inXferChars)
virtual VPIDPictureRate GetPictureRate(void) const
virtual bool GetProgressivePicture(void) const
static NTV2VideoFormat stTable8192p[VPIDPictureRate_ReservedF+1]
static const std::string BitDepthString(const VPIDBitDepth depth)
static const std::string VPIDStandardToString(const VPIDStandard inStd)
virtual CNTV2VPID & SetVersion(const VPIDVersion inVersion)
bool isOutputLevelB
If true, the video stream will leave the device as a level B signal.
static bool SetVPIDData(ULWord &outVPID, const NTV2VideoFormat inOutputFormat, const NTV2FrameBufferFormat inFrameBufferFormat, const bool inIsProgressive, const bool inIs16x9Aspect, const VPIDChannel inVPIDChannel, const bool inUseVPIDChannel=true)
static VPIDTableInitializer gVPIDTableInitializer
ostream & operator<<(std::ostream &ostrm, const CNTV2VPID &inData)
static const std::string StandardString(const VPIDStandard std)
#define NTV2_ASSERT(_expr_)
virtual CNTV2VPID & SetImageAspect16x9(const bool inIs16x9Aspect)
NTV2VPIDTransferCharacteristics transferCharacteristics
Describes the transfer characteristics.
static NTV2VideoFormat stTable2048psf[VPIDPictureRate_ReservedF+1]
static const string sVPIDChannel[]
virtual VPIDVersion GetVersion(void) const
bool isTwoSampleInterleave
If true, the video stream is in SMPTE 425-3 two sample interleave format.
static const string sVPIDSampling[]
virtual VPIDBitDepth GetBitDepth(void) const
static const string sVPIDColorimetry[]
virtual CNTV2VPID & SetLuminance(const NTV2VPIDLuminance inLuminance)
virtual NTV2VPIDColorimetry GetColorimetry(void) const
virtual std::ostream & Print(std::ostream &ostrm) const
static bool VPIDStandardIsOctLink(const VPIDStandard inStd)
bool isOutputLevelA
If true, the video stream will leave the device as a level A signal.
NTV2VPIDRGBRange rgbRange
Describes the RGB range as full or SMPTE.
static NTV2VideoFormat stTable1920psf[VPIDPictureRate_ReservedF+1]
std::string NTV2VideoFormatToString(const NTV2VideoFormat inValue, const bool inUseFrameRate=false)
See 8-Bit ARGB, RGBA, ABGR Formats.
See 8-Bit ARGB, RGBA, ABGR Formats.
VPIDChannel vpidChannel
Specifies the channel number of the video stream.
static NTV2VideoFormat stTable7680p[VPIDPictureRate_ReservedF+1]
static NTV2VideoFormat stTable4096psfSID[VPIDPictureRate_ReservedF+1]
virtual std::string AsString(const bool inTabular=false) const
bool SetVPIDFromSpec(ULWord *const pOutVPID, const VPIDSpec *const pInVPIDSpec)
Generates a VPID based on the supplied specification.
static NTV2VideoFormat stTable2048i[VPIDPictureRate_ReservedF+1]
static const string sVPIDLink[]
static const std::string LinkString(const VPIDLink link)
virtual CNTV2VPID & SetBitDepth(const VPIDBitDepth inBitDepth)
CNTV2VPID(const ULWord inData=0)
static const std::string SamplingString(const VPIDSampling sample)
#define NTV2_IS_372_DUALLINK_FORMAT(__f__)
static const string sVPIDTransfer[]
static NTV2VideoFormat stTable4096pSID[VPIDPictureRate_ReservedF+1]
virtual bool GetProgressiveTransport(void) const
virtual CNTV2VPID & SetChannel(const VPIDChannel inChannel)
static AJALabelValuePairs & append(AJALabelValuePairs &inOutTable, const std::string &inLabel, const std::string &inValue=std::string())
A convenience function that appends the given label and value strings to the provided AJALabelValuePa...
static const std::string PictureRateString(const VPIDPictureRate rate)
static NTV2VideoFormat stTable4096pTSI[VPIDPictureRate_ReservedF+1]
Declares numerous NTV2 utility functions.
bool isOutput12G
If true, the transport on the wire is 12G.
virtual CNTV2VPID & SetVPID(const ULWord inData)
virtual CNTV2VPID & SetRGBRange(const NTV2VPIDRGBRange inRGBRange)
static NTV2VideoFormat stTable3840pTSI[VPIDPictureRate_ReservedF+1]
See 8-Bit ARGB, RGBA, ABGR Formats.
virtual CNTV2VPID & SetPictureRate(const VPIDPictureRate inPictureRate)
virtual bool GetImageAspect16x9(void) const
#define xHEX0N(__x__, __n__)
A convenience class that simplifies encoding or decoding the 4-byte VPID payload that can be read or ...
virtual bool IsStandardMultiLink4320(void) const
NTV2FrameBufferFormat pixelFormat
Specifies the pixel format of the source of the video stream.
bool isDualLink
If true, the video stream is part of a SMPTE 372 dual link signal.
virtual bool IsStandardTwoSampleInterleave(void) const
See 10-Bit RGB - DPX Format.
virtual CNTV2VPID & SetProgressivePicture(const bool inIsProgressivePicture)
static const string sVPIDRGBRange[]
static NTV2VideoFormat stTable3840pSID[VPIDPictureRate_ReservedF+1]
bool useChannel
If true, the following vpidChannel value should be inserted into th VPID.
virtual VPIDChannel GetChannel(void) const
virtual VPIDStandard GetStandard(void) const
static const std::string ChannelString(const VPIDChannel chan)
static NTV2VideoFormat stTable1920p[VPIDPictureRate_ReservedF+1]
virtual NTV2VideoFormat GetVideoFormat(void) const
static const std::string VPIDVersionToString(const VPIDVersion inVers)
#define NTV2_IS_3G_FORMAT(__f__)
virtual NTV2VPIDLuminance GetLuminance(void) const
virtual CNTV2VPID & SetSampling(const VPIDSampling inSampling)
virtual CNTV2VPID & operator=(const CNTV2VPID &inRHS)
static NTV2VideoFormat stTable720p[VPIDPictureRate_ReservedF+1]
virtual bool IsRGBSampling(void) const
bool isRGBOnWire
If true, the transport on the wire is RGB.
virtual bool IsValid(void) const
virtual void ToString(std::string &outAllLabelsAndValues) const
Answers with a multi-line string that contains the complete host system info table.
bool isRightEye
If true, the video stream is the right eye of a stereo pair.
bool isOutput6G
If true, the transport on the wire is 6G.
virtual bool IsStandard3Ga(void) const
static bool VPIDStandardIsDualLink(const VPIDStandard inStd)
static bool VPIDStandardIsSingleLink(const VPIDStandard inStd)
Contains all the information needed to generate a valid VPID.
virtual VPIDChannel GetDualLinkChannel(void) const
Declares the CNTV2RegisterExpert class.
static bool stTablesInitialized(false)
static NTV2VideoFormat stTable1920i[VPIDPictureRate_ReservedF+1]
static const std::string AudioString(const VPIDAudio audio)
virtual CNTV2VPID & SetStandard(const VPIDStandard inStandard)
virtual CNTV2VPID & SetDualLinkChannel(const VPIDChannel inChannel)