9 #ifndef _NTV2DEMOCOMMON_H 10 #define _NTV2DEMOCOMMON_H 28 #define CAPFAIL(_expr_) AJA_sERROR (AJA_DebugUnit_DemoCapture, AJAFUNC << ": " << _expr_) 29 #define CAPWARN(_expr_) AJA_sWARNING(AJA_DebugUnit_DemoCapture, AJAFUNC << ": " << _expr_) 30 #define CAPDBG(_expr_) AJA_sDEBUG (AJA_DebugUnit_DemoCapture, AJAFUNC << ": " << _expr_) 31 #define CAPNOTE(_expr_) AJA_sNOTICE (AJA_DebugUnit_DemoCapture, AJAFUNC << ": " << _expr_) 32 #define CAPINFO(_expr_) AJA_sINFO (AJA_DebugUnit_DemoCapture, AJAFUNC << ": " << _expr_) 34 #define PLFAIL(_xpr_) AJA_sERROR (AJA_DebugUnit_DemoPlayout, AJAFUNC << ": " << _xpr_) 35 #define PLWARN(_xpr_) AJA_sWARNING(AJA_DebugUnit_DemoPlayout, AJAFUNC << ": " << _xpr_) 36 #define PLNOTE(_xpr_) AJA_sNOTICE (AJA_DebugUnit_DemoPlayout, AJAFUNC << ": " << _xpr_) 37 #define PLINFO(_xpr_) AJA_sINFO (AJA_DebugUnit_DemoPlayout, AJAFUNC << ": " << _xpr_) 38 #define PLDBG(_xpr_) AJA_sDEBUG (AJA_DebugUnit_DemoPlayout, AJAFUNC << ": " << _xpr_) 40 #define BURNFAIL(_expr_) AJA_sERROR (AJA_DebugUnit_Application, AJAFUNC << ": " << _expr_) 41 #define BURNWARN(_expr_) AJA_sWARNING(AJA_DebugUnit_Application, AJAFUNC << ": " << _expr_) 42 #define BURNDBG(_expr_) AJA_sDEBUG (AJA_DebugUnit_Application, AJAFUNC << ": " << _expr_) 43 #define BURNNOTE(_expr_) AJA_sNOTICE (AJA_DebugUnit_Application, AJAFUNC << ": " << _expr_) 44 #define BURNINFO(_expr_) AJA_sINFO (AJA_DebugUnit_Application, AJAFUNC << ": " << _expr_) 46 #define NTV2_AUDIOSIZE_MAX (401 * 1024) 47 #define NTV2_ANCSIZE_MAX (0x2000) // 8K 142 fNumAudioBytes = fNumAncBytes = fNumAnc2Bytes = 0;
170 inline Bouncer (
const T inUpperLimit,
const T inLowerLimit = T(0),
const T inStartValue = T(0),
const bool inStartAscend =
true)
171 : mMin (inLowerLimit),
173 mValue (inStartValue),
175 mAscend (inStartAscend)
179 else if (mMin == mMax)
180 mMax = mMin + mIncrement;
198 mValue += mIncrement;
205 mValue -= mIncrement;
213 inline T
Value (
void)
const {
return mValue;}
216 T mMin, mMax, mValue, mIncrement;
230 #if !defined(NTV2_DEPRECATE_17_5) 237 #endif // !defined(NTV2_DEPRECATE_17_5) 294 : fDeviceSpec (inDeviceSpec),
301 fDoABConversion (
false),
302 fDoMultiFormat (
false),
344 inline explicit PlayerConfig (
const std::string & inDeviceSpecifier =
"0")
408 inline explicit BurnConfig (
const std::string & inDeviceSpecifier =
"0")
444 inline std::string
IChStr(
void)
const {std::ostringstream oss; oss <<
"Ch" << int(
fInputChannel);
return oss.str();}
445 inline std::string
OChStr(
void)
const {std::ostringstream oss; oss <<
"Ch" << int(
fOutputChannel);
return oss.str();}
483 static bool IsValidDevice (
const std::string & inDeviceSpec);
505 const std::string inDevSpec = std::string());
516 static NTV2VideoFormat GetVideoFormatFromString (
const std::string & inStr,
518 const std::string & inDevSpec = std::string());
554 const std::string inDevSpec = std::string());
564 static NTV2PixelFormat GetPixelFormatFromString (
const std::string & inStr,
566 const std::string inDevSpec = std::string());
594 const std::string inDevSpec = std::string ());
604 static NTV2InputSource GetInputSourceFromString (
const std::string & inStr,
606 const std::string inDevSpec = std::string());
628 static std::string GetOutputDestinationStrings (
const NTV2IOKinds inKinds,
const std::string inDevSpec = std::string ());
640 const std::string inDevSpec = std::string());
666 const std::string inDeviceSpecifier = std::string(),
667 const bool inIsInputOnly =
true);
676 static NTV2TCIndex GetTCIndexFromString (
const std::string & inStr,
678 const std::string inDevSpec = std::string());
692 static std::string GetAudioSystemStrings (
const std::string inDeviceSpecifier = std::string ());
699 static NTV2AudioSystem GetAudioSystemFromString (
const std::string & inStr);
711 static std::string GetTestPatternStrings (
void);
717 static std::string GetTestPatternNameFromString (
const std::string & inStr);
729 static std::string GetVANCModeStrings (
void);
735 static NTV2VANCMode GetVANCModeFromString (
const std::string & inStr);
750 const bool isInputRGB =
false);
762 const bool isInputRGB =
false);
776 const bool isInputRGB =
false);
789 static std::string ToLower (
const std::string & inStr);
796 static std::string StripFormatString (
const std::string & inStr);
802 static char ReadCharacterPress (
void);
807 static void WaitForEnterKeyPress (
void);
824 static const char * GetGlobalMutexName (
void);
843 static size_t SetDefaultPageSize (
void);
852 Popt (
const int inArgc,
const char ** pArgs,
const PoptOpts * pInOptionsTable);
855 virtual inline bool isGood (
void)
const {
return parseResult() == -1;}
856 virtual inline operator bool()
const {
return isGood();}
857 virtual inline const std::string &
errorStr (
void)
const {
return mError;}
866 static bool BFT(
void);
873 #if defined(AJA_RAW_AUDIO_RECORD) 880 #define AJA_NTV2_AUDIO_RECORD_BEGIN ostringstream _filename; \ 881 _filename << ::NTV2DeviceString(mDeviceID) << "-" << mDevice.GetIndexNumber() \ 882 << "." << ::NTV2ChannelToString(mConfig.fInputChannel,true) \ 883 << "." << ::NTV2InputSourceToString(mConfig.fInputSource, true) \ 884 << "." << ::NTV2VideoFormatToString(mVideoFormat) \ 885 << "." << ::NTV2AudioSystemToString(mAudioSystem, true) \ 886 << "." << AJAProcess::GetPid() \ 888 ofstream _ostrm(_filename.str(), ios::binary); 890 #define AJA_NTV2_AUDIO_RECORD_DO if (NTV2_IS_VALID_AUDIO_SYSTEM(mAudioSystem)) \ 891 if (pFrameData->fAudioBuffer) \ 892 _ostrm.write(pFrameData->AudioBuffer(), \ 893 streamsize(pFrameData->NumCapturedAudioBytes())); 895 #define AJA_NTV2_AUDIO_RECORD_END 896 #elif defined(AJA_WAV_AUDIO_RECORD) 899 #define AJA_NTV2_AUDIO_RECORD_BEGIN ostringstream _wavfilename; \ 900 _wavfilename << ::NTV2DeviceString(mDeviceID) << "-" << mDevice.GetIndexNumber() \ 901 << "." << ::NTV2ChannelToString(mConfig.fInputChannel,true) \ 902 << "." << ::NTV2InputSourceToString(mConfig.fInputSource, true) \ 903 << "." << ::NTV2VideoFormatToString(mVideoFormat) \ 904 << "." << ::NTV2AudioSystemToString(mAudioSystem, true) \ 905 << "." << AJAProcess::GetPid() \ 907 const int _wavMaxNumAudChls(mDevice.features().GetMaxAudioChannels()); \ 908 AJAWavWriter _wavWriter (_wavfilename.str(), \ 909 AJAWavWriterAudioFormat(_wavMaxNumAudChls, 48000, 32)); \ 912 #define AJA_NTV2_AUDIO_RECORD_DO if (NTV2_IS_VALID_AUDIO_SYSTEM(mAudioSystem)) \ 913 if (pFrameData->fAudioBuffer) \ 914 if (_wavWriter.IsOpen()) \ 915 _wavWriter.write(pFrameData->AudioBuffer(), pFrameData->NumCapturedAudioBytes()); 917 #define AJA_NTV2_AUDIO_RECORD_END if (_wavWriter.IsOpen()) \ 920 #define AJA_NTV2_AUDIO_RECORD_BEGIN 921 #define AJA_NTV2_AUDIO_RECORD_DO 922 #define AJA_NTV2_AUDIO_RECORD_END 926 #if defined(AJA_RECORD_MLAUDIO) 928 #define AJA_NTV2_MLAUDIO_RECORD_BEGIN ofstream ofs1, ofs2; \ 929 if (mConfig.fNumAudioLinks > 1) \ 931 ofs1.open("temp1.raw", ios::out | ios::trunc | ios::binary); \ 932 ofs2.open("temp2.raw", ios::out | ios::trunc | ios::binary); \ 935 #define AJA_NTV2_MLAUDIO_RECORD_DO if (mConfig.fNumAudioLinks > 1) \ 936 { const ULWord halfBytes (pFrameData->NumCapturedAudioBytes() / 2); \ 937 ofs1.write(pFrameData->AudioBuffer(), halfBytes); \ 938 NTV2Buffer lastHalf (pFrameData->fAudioBuffer.GetHostAddress(halfBytes), halfBytes); \ 939 ofs2.write(lastHalf, lastHalf.GetByteCount()); \ 942 #define AJA_NTV2_MLAUDIO_RECORD_END if (mConfig.fNumAudioLinks > 1) \ 948 #define AJA_NTV2_MLAUDIO_RECORD_BEGIN 949 #define AJA_NTV2_MLAUDIO_RECORD_DO 950 #define AJA_NTV2_MLAUDIO_RECORD_END 953 #endif // _NTV2DEMOCOMMON_H NTV2Channel NTV2InputSourceToChannel(const NTV2InputSource inInputSource)
Converts a given NTV2InputSource to its equivalent NTV2Channel value.
AJALabelValuePairs Get(const bool inCompact=(0)) const
Renders a human-readable representation of me.
std::set< NTV2VideoFormat > NTV2VideoFormatSet
A set of distinct NTV2VideoFormat values.
enum _NTV2TCIndexKinds NTV2TCIndexKinds
bool fWithAnc
If true, capture & play anc data (LLBurn). Defaults to false.
NTV2AudioSystem
Used to identify an Audio System on an NTV2 device. See Audio System Operation for more information...
std::set< NTV2TCIndex > NTV2TCIndexes
bool fSuppressAudio
If true, suppress audio; otherwise generate & xfer audio tone.
uint32_t fFrameFlags
Frame data flags.
bool Allocate(const size_t inByteCount, const bool inPageAligned=false)
Allocates (or re-allocates) my user-space storage using the given byte count. I assume full responsib...
std::string ODstStr(void) const
I interrogate and control an AJA video/audio capture/playout device.
NTV2FrameBufferFormat
Identifies a particular video frame buffer pixel format. See Device Frame Buffer Formats for details...
ULWord AncBuffer2Size(void) const
ULWord NumCapturedAnc2Bytes(void) const
ULWord NumCapturedAncBytes(void) const
RP188_STRUCT fRP188Data2
For future use.
NTV2OutputDestination
Identifies a specific video output destination.
Declares the AJADebug class.
ULWord VideoBufferSize(void) const
NTV2VANCMode fVancMode
VANC mode to use.
bool fDoMultiFormat
If true, use multi-format/multi-channel mode, if device supports it; otherwise normal mode...
std::set< NTV2InputSource > NTV2InputSourceSet
A set of distinct NTV2InputSource values.
uint32_t fFrameFlags
Frame data flags.
std::string NTV2OutputDestinationToString(const NTV2OutputDestination inValue, const bool inForRetailDisplay=false)
ULWord AudioBufferSize(void) const
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
std::string IChStr(void) const
ULWord GetByteCount(void) const
bool fDoLinkGrouping
If true, enables 6/12G output mode on IoX3/Kona5 (4K/8K)
std::vector< AJALabelValuePair > AJALabelValuePairs
An ordered sequence of label/value pairs.
bool fSuppressAudio
If true, suppress audio; otherwise include audio.
NTV2FrameDataArray::const_iterator NTV2FrameDataArrayConstIter
Handy const iterator.
struct BurnConfig BurnConfig
Configures an NTV2Burn or NTV2FieldBurn instance.
Declares the AJATime class.
bool fWithTallFrames
If true && fWithAnc, use "taller" VANC mode for anc. Defaults to false.
enum _NTV2PixelFormatKind NTV2PixelFormatKind
#define NTV2_FOURCC(_a_, _b_, _c_, _d_)
bool fWithAnc
If true, also capture Anc.
Specifies any/all input/output kinds.
#define NTV2_IS_VALID_OUTPUT_DEST(_dest_)
PlayerConfig(const std::string &inDeviceSpecifier="0")
Constructs a default Player configuration.
NTV2FrameBufferFormatSet NTV2PixelFormats
#define NTV2_IS_VALID_TIMECODE_INDEX(__x__)
ULWord fNumAudioBytes
Actual number of captured audio bytes.
bool fDoABConversion
If true, do level-A/B conversion; otherwise don't.
std::set< NTV2OutputDestination > NTV2OutputDestinations
A set of distinct NTV2OutputDestination values.
std::string fDeviceSpec
The AJA device to use.
bool WithTimecode(void) const
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
std::string fDeviceSpec2
Second AJA device to use (Burn4KQuadrant or BurnBoardToBoard only)
AJALabelValuePairs Get(const bool inCompact=(0)) const
Renders a human-readable representation of me.
struct PlayerConfig PlayerConfig
Configures an NTV2Player instance.
uint8_t * fVideoBufferUnaligned
For future use.
uint32_t fAudioRecordSize
For future use.
bool fWithAudio
If true, also capture Audio.
NTV2ACFrameRange fOutputFrames
Playout frame count or range.
This struct replaces the old RP188_STRUCT.
std::ostream & operator<<(std::ostream &ioStrm, const CaptureConfig &inObj)
A handy class that makes it easy to "bounce" an unsigned integer value between a minimum and maximum ...
NTV2Channel fInputChannel
The device channel to use.
NTV2OutputDest fOutputDest
The device output connector to use (NTV2_OUTPUTDESTINATION_INVALID means unspecified) ...
NTV2Channel ISrcCh(void) const
NTV2TCIndex
These enum values are indexes into the capture/playout AutoCirculate timecode arrays.
bool Fill(const T &inValue)
Fills me with the given scalar value.
bool WithAudio(void) const
AutoCirculate Frame Range.
std::string NTV2InputSourceToString(const NTV2InputSource inValue, const bool inForRetailDisplay=false)
NTV2PixelFormat fPixelFormat
The pixel format to use.
NTV2Channel NTV2OutputDestinationToChannel(const NTV2OutputDestination inOutputDest)
Converts a given NTV2OutputDestination to its equivalent NTV2Channel value.
NTV2Channel fOutputChannel
The output channel to use.
NTV2FrameRate
Identifies a particular video frame rate.
bool fTransmitLTC
If true, embed LTC; otherwise embed VITC.
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
std::string fAncDataFilePath
Optional path to Anc binary data file.
UWord fNumAudioLinks
The number of audio systems to control for multi-link audio (4K/8K)
This class is used to configure an NTV2Capture instance.
bool WithTallVANC(void) const
ULWord AncBufferSize(void) const
bool fIsFieldMode
True if Field Mode, otherwise Frame Mode.
NTV2Buffer & AncBuffer2(void)
virtual const NTV2StringList & otherArgs(void) const
NTV2ACFrameRange ACFrameRange
Declares the CRP188 class. See SMPTE RP188 standard for details.
NTV2Buffer & AncBuffer(void)
bool WithHanc(void) const
NTV2PixelFormat fPixelFormat
The pixel format to use.
std::vector< std::string > NTV2StringList
uint32_t * fAudioBuffer
Pointer to host audio buffer.
virtual const std::string & errorStr(void) const
bool FieldMode(void) const
virtual bool isGood(void) const
bool fDoABConversion
If true, do level-A/B conversion; otherwise don't.
ULWord NumCapturedAudioBytes(void) const
std::set< NTV2AudioSystem > NTV2AudioSystemSet
A set of distinct NTV2AudioSystem values. New in SDK 16.2.
NTV2VideoFormat fVideoFormat
The video format to use.
bool HasTimecode(const NTV2TCIndex inTCNdx) const
NTV2Buffer & VideoBuffer(void)
Configures an NTV2Burn or NTV2FieldBurn instance.
NTV2Buffer fAncBuffer
Host ancillary data buffer.
bool fDoRGBOnWire
If true, produce RGB on the wire; otherwise output YUV.
ULWord fNumAnc2Bytes
Actual number of captured F2 anc bytes.
bool ISrcIsSDI(void) const
This structure encapsulates the video, audio and anc buffers used in the AutoCirculate demos...
NTV2OutputDest fOutputDest
The desired output connector to use.
bool IsVerbose(void) const
ULWord NTV2PixelFormatKinds
bool HasValidTimecode(const NTV2TCIndex inTCNdx) const
UWord fNumAudioLinks
Number of audio links to capture.
NTV2Buffer fAncBuffer2
Additional "F2" host anc buffer.
std::string fDeviceSpec
The AJA device to use.
CaptureConfig(const std::string &inDeviceSpec="0")
Constructs a default NTV2Capture configuration.
#define NTV2_OUTPUT_DEST_IS_SDI(_dest_)
NTV2Buffer & VideoBuffer2(void)
Describes a user-space buffer on the host computer. I have an address and a length, plus some optional attributes (allocated by SDK?, page-aligned? etc.).
std::map< NTV2TCIndex, NTV2_RP188 > NTV2TimeCodes
A mapping of NTV2TCIndex enum values to NTV2_RP188 structures.
bool fDoMultiFormat
If true, enable device-sharing; otherwise take exclusive control of device.
std::string OChStr(void) const
ULWord fNumAncBytes
Actual number of captured F1 anc bytes.
A set of common convenience functions used by the NTV2 Demonstration Applications. Most are used for converting a command line argument into NTV2VideoFormat, NTV2FrameBufferFormat, etc. types.
ULWord VideoBufferSize2(void) const
NTV2Buffer & AudioBuffer(void)
NTV2InputSource
Identifies a specific video input source.
uint32_t * fVideoBuffer
Pointer to host video buffer.
std::vector< NTV2FrameData > NTV2FrameDataArray
A vector of NTV2FrameData elements.
virtual int parseResult(void) const
Declaration of AJACircularBuffer template class.
uint32_t fAudioBufferSize
Size of host audio buffer, in bytes.
Declares the AJAWavWriter class.
uint32_t * fVideoBuffer2
Pointer to an additional host video buffer, usually field 2.
NTV2InputSource fInputSource
The device input connector to use.
bool fDoTsiRouting
If true, enable TSI routing; otherwise route for square division (4K/8K)
bool WithAudio(void) const
NTV2Channel fOutputChannel
The device channel to use.
static const size_t CIRCULAR_BUFFER_SIZE(10)
Number of NTV2FrameData's in our ring.
static const ULWord kDemoAppSignature((((uint32_t)( 'D'))<< 24)|(((uint32_t)( 'E'))<< 16)|(((uint32_t)( 'M'))<< 8)|(((uint32_t)( 'O'))<< 0))
Declares numerous NTV2 utility functions.
void swap(nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass > &j1, nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass > &j2) noexcept(//NOLINT(readability-inconsistent-declaration-parameter-name, cert-dcl58-cpp) is_nothrow_move_constructible< nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass > >::value &&//NOLINT(misc-redundant-expression, cppcoreguidelines-noexcept-swap, performance-noexcept-swap) is_nothrow_move_assignable< nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType, CustomBaseClass > >::value)
exchanges the values of two JSON objects
Declares the AJASystemInfo class.
bool fDoMultiFormat
If true, enables device-sharing; otherwise takes exclusive control of the device. ...
AJACircularBuffer< NTV2FrameData * > FrameDataRingBuffer
Buffer ring of NTV2FrameData's.
bool fVerbose
If true, emit explanatory messages to stdout/stderr. Defaults to false.
uint32_t * fAncF2Buffer
Pointer to "Field 2" ANC buffer.
uint32_t fAncF2BufferSize
Size of "Field 2" ANC buffer, in bytes.
NTV2ACFrameRange fInputFrames
Ingest frame count or range.
bool fSuppressVideo
If true, suppress video; otherwise include video.
Specifies channel or FrameStore 1 (or the first item).
uint32_t fAncBufferSize
Size of ANC buffer, in bytes.
NTV2ACFrameRange fFrames
AutoCirculate frame count or range.
NTV2VANCMode
These enum values identify the available VANC modes.
NTV2PixelFormat fPixelFormat
Pixel format to use.
bool OutputSpecified(void) const
NTV2Channel ODstCh(void) const
NTV2Buffer fVideoBuffer2
Additional host video buffer, usually F2.
Declares the AJAAncillaryData class.
ULWord NTV2VideoFormatKinds
Declares the CNTV2Card class.
I encapsulate the video, audio and anc host buffers used in the AutoCirculate demos. I'm a more modern version of the AVDataBuffer.
NTV2Buffer fVideoBuffer
Host video buffer.
enum NTV2OutputDestination NTV2OutputDest
NTV2Channel fInputChannel
The input channel to use.
NTV2ACFrameRange fFrames
AutoCirculate frame count or range.
NTV2TCIndex fTimecodeSource
Timecode source to use.
Private include file for all ajabase sources.
Configures an NTV2Player instance.
std::vector< NTV2Channel > NTV2ChannelList
An ordered sequence of NTV2Channel values.
std::string ISrcStr(void) const
std::string fDeviceSpec
The AJA device to use.
std::map< NTV2InputXptID, NTV2OutputXptID > NTV2XptConnections
uint32_t fAncRecordSize
For future use.
uint32_t * fAncBuffer
Pointer to ANC buffer.
enum _NTV2VideoFormatKind NTV2VideoFormatKind
bool fWithHanc
If true, capture & play HANC data, including audio (LLBurn). Defaults to false.
#define NTV2_INPUT_SOURCE_IS_SDI(_inpSrc_)
bool WithVideo(void) const
BurnConfig(const std::string &inDeviceSpecifier="0")
Constructs a default Player configuration.
uint32_t fVideoBufferSize
Size of host video buffer, in bytes.
Declares the enumeration constants used in the ajabase library.
Declares enums and structs used by all platform drivers and the SDK.
NTV2FrameDataArray::iterator NTV2FrameDataArrayIter
Handy non-const iterator.
void SetIncrement(const T inValue)
Identifies the 1st SDI video input.
virtual void ToString(std::string &outAllLabelsAndValues) const
Answers with a multi-line string that contains the complete host system info table.
RP188_STRUCT fRP188Data
For future use.
NTV2TimeCodes fTimecodes
Map of TC indexes to NTV2_RP188 values.
NTV2Buffer fAudioBuffer
Host audio buffer.
bool fDoHDMIOutput
If true, enable HDMI output; otherwise, disable HDMI output.
bool fSuppressVideo
If true, suppress video; otherwise generate & xfer test patterns.
bool WithVideo(void) const
This identifies the mode in which there are no VANC lines in the frame buffer.
Bouncer(const T inUpperLimit, const T inLowerLimit=T(0), const T inStartValue=T(0), const bool inStartAscend=(!(0)))
Specifies channel or FrameStore 3 (or the 3rd item).
bool ODstIsSDI(void) const
bool fDoTSIRouting
If true, do TSI routing; otherwise squares.
std::string fAncDataFilePath
Optional path to Anc binary data file to playout.
NTV2InputSource fInputSource
The device input connector to use.