AJA NTV2 SDK  17.5.0.1242
NTV2 SDK 17.5.0.1242
ntv2democommon.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
9 #ifndef _NTV2DEMOCOMMON_H
10 #define _NTV2DEMOCOMMON_H
11 
12 #include "ntv2rp188.h"
13 #include "ntv2publicinterface.h"
14 #include "ntv2card.h"
15 #include "ntv2utils.h" // for NTV2ACFrameRange
20 #include "ajabase/system/debug.h"
21 #include "ajabase/system/info.h"
22 #include "ajabase/system/systemtime.h" // convenience to get AJATime
23 #include "ajabase/common/common.h" // convenience to get aja::strip & etc.
24 #include <algorithm>
25 #include <string>
26 
27 // Convenience macros for EZ logging:
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_)
33 
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_)
39 
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_)
45 
46 #define NTV2_AUDIOSIZE_MAX (401 * 1024)
47 #define NTV2_ANCSIZE_MAX (0x2000) // 8K
48 
49 
55 typedef struct
56 {
57  uint32_t * fVideoBuffer;
58  uint32_t * fVideoBuffer2;
59  uint32_t fVideoBufferSize;
60  uint32_t * fAudioBuffer;
61  uint32_t fAudioBufferSize;
62  uint32_t * fAncBuffer;
63  uint32_t fAncBufferSize;
64  uint32_t * fAncF2Buffer;
65  uint32_t fAncF2BufferSize;
66  uint32_t fAudioRecordSize;
67  uint32_t fAncRecordSize;
71  uint32_t fFrameFlags;
72 } AVDataBuffer;
73 
74 
80 {
81  public:
91  uint32_t fFrameFlags;
92  public:
93  explicit inline NTV2FrameData()
94  : fVideoBuffer (0),
95  fVideoBuffer2 (0),
96  fAudioBuffer (0),
97  fAncBuffer (0),
98  fAncBuffer2 (0),
99  fTimecodes (),
100  fNumAudioBytes (0),
101  fNumAncBytes (0),
102  fNumAnc2Bytes (0),
103  fFrameFlags(0) {}
104 
105  // Inquiry Methods
106  inline NTV2Buffer & VideoBuffer (void) {return fVideoBuffer;}
107  inline ULWord VideoBufferSize (void) const {return fVideoBuffer.GetByteCount();}
108 
109  inline NTV2Buffer & AudioBuffer (void) {return fAudioBuffer;}
110  inline ULWord AudioBufferSize (void) const {return fAudioBuffer.GetByteCount();}
111  inline ULWord NumCapturedAudioBytes (void) const {return fNumAudioBytes;}
112 
113  inline NTV2Buffer & AncBuffer (void) {return fAncBuffer;}
114  inline ULWord AncBufferSize (void) const {return fAncBuffer.GetByteCount();}
115  inline ULWord NumCapturedAncBytes (void) const {return fNumAncBytes;}
116 
117  inline NTV2Buffer & AncBuffer2 (void) {return fAncBuffer2;}
118  inline ULWord AncBuffer2Size (void) const {return fAncBuffer2.GetByteCount();}
119  inline ULWord NumCapturedAnc2Bytes (void) const {return fNumAnc2Bytes;}
120 
121  inline NTV2Buffer & VideoBuffer2 (void) {return fVideoBuffer2;}
122  inline ULWord VideoBufferSize2 (void) const {return fVideoBuffer2.GetByteCount();}
123 
124  inline bool IsNULL (void) const {return fVideoBuffer.IsNULL() && fVideoBuffer2.IsNULL()
125  && fAudioBuffer.IsNULL() && fAncBuffer.IsNULL()
126  && fAncBuffer2.IsNULL();}
127  inline bool HasTimecode (const NTV2TCIndex inTCNdx) const {return fTimecodes.find(inTCNdx) != fTimecodes.end();}
128  NTV2_RP188 Timecode (const NTV2TCIndex inTCNdx) const;
129  inline bool HasValidTimecode (const NTV2TCIndex inTCNdx) const {return Timecode(inTCNdx).IsValid();}
130 
131  // Modifier Methods
132  inline void ZeroBuffers (void) { if (fVideoBuffer)
133  fVideoBuffer.Fill(ULWord(0));
134  if (fVideoBuffer2)
135  fVideoBuffer2.Fill(ULWord(0));
136  if (fAudioBuffer)
137  fAudioBuffer.Fill(ULWord(0));
138  if (fAncBuffer)
139  fAncBuffer.Fill(ULWord(0));
140  if (fAncBuffer2)
141  fAncBuffer2.Fill(ULWord(0));
142  fNumAudioBytes = fNumAncBytes = fNumAnc2Bytes = 0;
143  }
144  bool LockAll (CNTV2Card & inDevice);
145  bool UnlockAll (CNTV2Card & inDevice);
146 
147  bool Reset (void) {return fVideoBuffer.Allocate(0) && fVideoBuffer2.Allocate(0)
148  && fAudioBuffer.Allocate(0) && fAncBuffer.Allocate(0)
149  && fAncBuffer2.Allocate(0);}
150 }; // NTV2FrameData
151 
152 typedef std::vector<NTV2FrameData> NTV2FrameDataArray;
153 typedef NTV2FrameDataArray::iterator NTV2FrameDataArrayIter;
154 typedef NTV2FrameDataArray::const_iterator NTV2FrameDataArrayConstIter;
156 
157 
158 
159 static const size_t CIRCULAR_BUFFER_SIZE (10);
160 static const ULWord kDemoAppSignature NTV2_FOURCC('D','E','M','O');
161 
162 
167 template <typename T> class Bouncer
168 {
169  public:
170  inline Bouncer (const T inUpperLimit, const T inLowerLimit = T(0), const T inStartValue = T(0), const bool inStartAscend = true)
171  : mMin (inLowerLimit),
172  mMax (inUpperLimit),
173  mValue (inStartValue),
174  mIncrement (T(1)),
175  mAscend (inStartAscend)
176  {
177  if (mMin > mMax)
178  std::swap (mMin, mMax);
179  else if (mMin == mMax)
180  mMax = mMin + mIncrement;
181  if (mValue < mMin)
182  {
183  mValue = mMin;
184  mAscend = true;
185  }
186  if (mValue > mMax)
187  {
188  mValue = mMax;
189  mAscend = false;
190  }
191  }
192 
193  inline T Next (void)
194  {
195  if (mAscend)
196  {
197  if (mValue < mMax)
198  mValue += mIncrement;
199  else
200  mAscend = false;
201  }
202  else
203  {
204  if (mValue > mMin)
205  mValue -= mIncrement;
206  else
207  mAscend = true;
208  }
209  return mValue;
210  }
211 
212  inline void SetIncrement (const T inValue) {mIncrement = inValue;}
213  inline T Value (void) const {return mValue;}
214 
215  private:
216  T mMin, mMax, mValue, mIncrement;
217  bool mAscend;
218 
219 }; // Bouncer
220 
221 
223 {
230 #if !defined(NTV2_DEPRECATE_17_5)
231  // Deprecated old ones:
237 #endif // !defined(NTV2_DEPRECATE_17_5)
239 
241 
242 
244 {
254 
256 
257 
258 typedef enum _NTV2TCIndexKinds
259 {
269 
270 
275 {
276  public:
277  std::string fDeviceSpec;
278  std::string fAncDataFilePath;
286  bool fWithAnc;
287  bool fWithAudio;
289 
293  inline explicit CaptureConfig (const std::string & inDeviceSpec = "0")
294  : fDeviceSpec (inDeviceSpec),
295  fAncDataFilePath (),
296  fInputChannel (NTV2_CHANNEL_INVALID),
297  fInputSource (NTV2_INPUTSOURCE_INVALID),
298  fFrames (7),
299  fPixelFormat (NTV2_FBF_8BIT_YCBCR),
300  fNumAudioLinks (1),
301  fDoABConversion (false),
302  fDoMultiFormat (false),
303  fWithAnc (false),
304  fWithAudio (true),
305  fDoTSIRouting (true)
306  {
307  }
308 
309  AJALabelValuePairs Get (const bool inCompact = false) const;
310 
311 }; // CaptureConfig
312 
313 AJAExport std::ostream & operator << (std::ostream & ioStrm, const CaptureConfig & inObj);
314 
315 
319 typedef struct PlayerConfig
320 {
321  public:
322  std::string fDeviceSpec;
323  std::string fAncDataFilePath;
341 
345  inline explicit PlayerConfig (const std::string & inDeviceSpecifier = "0")
346  : fDeviceSpec (inDeviceSpecifier),
347  fAncDataFilePath (),
350  fFrames (7),
355  fNumAudioLinks (1),
365  {
366  }
367 
368  inline bool WithAudio(void) const {return !fSuppressAudio && fNumAudioLinks > 0;}
369  inline bool WithVideo(void) const {return !fSuppressVideo;}
370 
376  AJALabelValuePairs Get (const bool inCompact = false) const;
377 
378 } PlayerConfig;
379 
380 AJAExport std::ostream & operator << (std::ostream & ioStrm, const PlayerConfig & inObj);
381 
385 typedef struct BurnConfig
386 {
387  public:
388  std::string fDeviceSpec;
389  std::string fDeviceSpec2;
402  bool fWithAnc;
404  bool fWithHanc;
405  bool fVerbose;
406 
410  inline explicit BurnConfig (const std::string & inDeviceSpecifier = "0")
411  : fDeviceSpec (inDeviceSpecifier),
412  fDeviceSpec2 (),
417  fInputFrames (7),
418  fOutputFrames (7),
425  fWithAnc (false),
427  fWithHanc (false),
428  fVerbose (false)
429  {
430  }
431 
432  inline bool WithAudio(void) const {return !fSuppressAudio;}
433  inline bool WithVideo(void) const {return !fSuppressVideo;}
434  inline bool WithAnc(void) const {return fWithAnc;}
435  inline bool WithTallVANC(void) const {return fWithTallFrames;}
436  inline bool WithHanc(void) const {return fWithHanc;}
437  inline bool WithTimecode(void) const {return NTV2_IS_VALID_TIMECODE_INDEX(fTimecodeSource);}
438  inline bool FieldMode(void) const {return fIsFieldMode;}
439  inline bool OutputSpecified(void) const {return NTV2_IS_VALID_OUTPUT_DEST(fOutputDest);}
440  inline bool IsVerbose(void) const {return fVerbose;}
441  inline std::string ISrcStr(void) const {return ::NTV2InputSourceToString(fInputSource, true);}
443  inline bool ISrcIsSDI(void) const {return NTV2_INPUT_SOURCE_IS_SDI(fInputSource);}
444  inline std::string ODstStr(void) const {return ::NTV2OutputDestinationToString(fOutputDest, true);}
446  inline std::string IChStr(void) const {std::ostringstream oss; oss << "Ch" << int(fInputChannel); return oss.str();}
447  inline std::string OChStr(void) const {std::ostringstream oss; oss << "Ch" << int(fOutputChannel); return oss.str();}
448  inline bool ODstIsSDI(void) const {return NTV2_OUTPUT_DEST_IS_SDI(fOutputDest);}
449 
455  AJALabelValuePairs Get (const bool inCompact = false) const;
456 
457 } BurnConfig;
458 
465 inline std::ostream & operator << (std::ostream & strm, const BurnConfig & inObj) {return strm << AJASystemInfo::ToString(inObj.Get());}
466 
467 
468 
475 {
476  public:
480 
485  static bool IsValidDevice (const std::string & inDeviceSpec);
487 
491 
496  static NTV2VideoFormatSet GetSupportedVideoFormats (const NTV2VideoFormatKinds inKinds = VIDEO_FORMATS_SDHD);
497 
506  static std::string GetVideoFormatStrings (const NTV2VideoFormatKinds inKinds = VIDEO_FORMATS_SDHD,
507  const std::string inDevSpec = std::string());
508 
518  static NTV2VideoFormat GetVideoFormatFromString (const std::string & inStr,
520  const std::string & inDevSpec = std::string());
521 
527  static bool Get4KInputFormat (NTV2VideoFormat & inOutVideoFormat);
528 
534  static bool Get8KInputFormat (NTV2VideoFormat & inOutVideoFormat);
536 
540 
545  static NTV2PixelFormats GetSupportedPixelFormats (const NTV2PixelFormatKinds inKinds = PIXEL_FORMATS_ALL);
546 
555  static std::string GetPixelFormatStrings (const NTV2PixelFormatKinds inKinds = PIXEL_FORMATS_ALL,
556  const std::string inDevSpec = std::string());
557 
566  static NTV2PixelFormat GetPixelFormatFromString (const std::string & inStr,
567  const NTV2PixelFormatKinds inKinds = PIXEL_FORMATS_ALL,
568  const std::string inDevSpec = std::string());
569 
574  static AJA_PixelFormat GetAJAPixelFormat (const NTV2PixelFormat inFormat);
576 
580 
585  static const NTV2InputSourceSet GetSupportedInputSources (const NTV2IOKinds inKinds = NTV2_IOKINDS_ALL);
586 
595  static std::string GetInputSourceStrings (const NTV2IOKinds inKinds = NTV2_IOKINDS_ALL,
596  const std::string inDevSpec = std::string ());
597 
606  static NTV2InputSource GetInputSourceFromString (const std::string & inStr,
607  const NTV2IOKinds inKinds = NTV2_IOKINDS_ALL,
608  const std::string inDevSpec = std::string());
610 
614 
619  static const NTV2OutputDestinations GetSupportedOutputDestinations (const NTV2IOKinds inKinds);
620 
630  static std::string GetOutputDestinationStrings (const NTV2IOKinds inKinds, const std::string inDevSpec = std::string ());
631 
640  static NTV2OutputDestination GetOutputDestinationFromString (const std::string & inStr,
641  const NTV2IOKinds inKinds = NTV2_IOKINDS_ALL,
642  const std::string inDevSpec = std::string());
644 
648 
653  static const NTV2TCIndexes GetSupportedTCIndexes (const NTV2TCIndexKinds inKinds);
654 
667  static std::string GetTCIndexStrings (const NTV2TCIndexKinds inKinds = TC_INDEXES_ALL,
668  const std::string inDeviceSpecifier = std::string(),
669  const bool inIsInputOnly = true);
670 
676  static NTV2TCIndex GetTCIndexFromString (const std::string & inStr,
677  const NTV2TCIndexKinds inKinds = TC_INDEXES_ALL,
678  const std::string inDevSpec = std::string());
680 
684 
692  static std::string GetAudioSystemStrings (const std::string inDeviceSpecifier = std::string ());
693 
699  static NTV2AudioSystem GetAudioSystemFromString (const std::string & inStr);
701 
705 
711  static std::string GetTestPatternStrings (void);
712 
717  static std::string GetTestPatternNameFromString (const std::string & inStr);
719 
723 
729  static std::string GetVANCModeStrings (void);
730 
735  static NTV2VANCMode GetVANCModeFromString (const std::string & inStr);
737 
741 
748  static bool GetInputRouting (NTV2XptConnections & outConnections,
749  const CaptureConfig & inConfig,
750  const bool isInputRGB = false);
751 
759  static bool GetInputRouting4K ( NTV2XptConnections & outConnections,
760  const CaptureConfig & inConfig,
761  const NTV2DeviceID inDevID = DEVICE_ID_INVALID,
762  const bool isInputRGB = false);
763 
771  static bool GetInputRouting8K ( NTV2XptConnections & outConnections,
772  const CaptureConfig & inConfig,
773  const NTV2VideoFormat inVidFormat,
774  const NTV2DeviceID inDevID = DEVICE_ID_INVALID,
775  const bool isInputRGB = false);
777 
781 
788  static std::string ToLower (const std::string & inStr);
789 
795  static std::string StripFormatString (const std::string & inStr);
796 
801  static char ReadCharacterPress (void);
802 
806  static void WaitForEnterKeyPress (void);
807 
812  static TimecodeFormat NTV2FrameRate2TimecodeFormat(const NTV2FrameRate inFrameRate);
813 
818  static AJA_FrameRate GetAJAFrameRate (const NTV2FrameRate inFrameRate);
819 
823  static const char * GetGlobalMutexName (void);
824 
831  static NTV2ChannelList GetTSIMuxesForFrameStore (CNTV2Card & inDevice, const NTV2Channel in1stFrameStore, const UWord inCount);
832 
840  static bool ConfigureAudioSystems (CNTV2Card & inDevice, const CaptureConfig & inConfig, const NTV2AudioSystemSet inAudioSystems);
841 
842  static size_t SetDefaultPageSize (void);
844 
846 
847  typedef struct poptOption PoptOpts;
849  {
850  public:
851  Popt (const int inArgc, const char ** pArgs, const PoptOpts * pInOptionsTable);
852  virtual ~Popt();
853  virtual inline int parseResult(void) const {return mResult;}
854  virtual inline bool isGood (void) const {return parseResult() == -1;}
855  virtual inline operator bool() const {return isGood();}
856  virtual inline const std::string & errorStr (void) const {return mError;}
857  virtual inline const NTV2StringList & otherArgs (void) const {return mOtherArgs;}
858  private:
859  poptContext mContext;
860  int mResult;
861  std::string mError;
862  NTV2StringList mOtherArgs;
863  };
864 
865  static bool BFT(void);
866 
867 }; // CNTV2DemoCommon
868 
869 
870 // These AJA_NTV2_AUDIO_RECORD* macros can, if enabled, record audio samples into a file in the current directory.
871 // Optionally used in the CNTV2Capture demo.
872 #if defined(AJA_RAW_AUDIO_RECORD)
873  #include "ntv2debug.h" // For NTV2DeviceString
874  #include <fstream> // For ofstream
875  // To open the raw audio file in Audacity -- see http://audacity.sourceforge.net/ ...
876  // 1) Choose File => Import => Raw Data...
877  // 2) Select "Signed 32 bit PCM", Little/No/Default Endian, "16 Channels" (or 8 if applicable), "48000" sample rate.
878  // 3) Click "Import"
879  #define AJA_NTV2_AUDIO_RECORD_BEGIN ostringstream _filename; \
880  _filename << ::NTV2DeviceString(mDeviceID) << "-" << mDevice.GetIndexNumber() \
881  << "." << ::NTV2ChannelToString(mConfig.fInputChannel,true) \
882  << "." << ::NTV2InputSourceToString(mConfig.fInputSource, true) \
883  << "." << ::NTV2VideoFormatToString(mVideoFormat) \
884  << "." << ::NTV2AudioSystemToString(mAudioSystem, true) \
885  << "." << AJAProcess::GetPid() \
886  << ".raw"; \
887  ofstream _ostrm(_filename.str(), ios::binary);
888 
889  #define AJA_NTV2_AUDIO_RECORD_DO if (NTV2_IS_VALID_AUDIO_SYSTEM(mAudioSystem)) \
890  if (pFrameData->fAudioBuffer) \
891  _ostrm.write(pFrameData->AudioBuffer(), \
892  streamsize(pFrameData->NumCapturedAudioBytes()));
893 
894  #define AJA_NTV2_AUDIO_RECORD_END
895 #elif defined(AJA_WAV_AUDIO_RECORD)
896  #include "ntv2debug.h" // For NTV2DeviceString
897  #include "ajabase/common/wavewriter.h" // For AJAWavWriter
898  #define AJA_NTV2_AUDIO_RECORD_BEGIN ostringstream _wavfilename; \
899  _wavfilename << ::NTV2DeviceString(mDeviceID) << "-" << mDevice.GetIndexNumber() \
900  << "." << ::NTV2ChannelToString(mConfig.fInputChannel,true) \
901  << "." << ::NTV2InputSourceToString(mConfig.fInputSource, true) \
902  << "." << ::NTV2VideoFormatToString(mVideoFormat) \
903  << "." << ::NTV2AudioSystemToString(mAudioSystem, true) \
904  << "." << AJAProcess::GetPid() \
905  << ".wav"; \
906  const int _wavMaxNumAudChls(mDevice.features().GetMaxAudioChannels()); \
907  AJAWavWriter _wavWriter (_wavfilename.str(), \
908  AJAWavWriterAudioFormat(_wavMaxNumAudChls, 48000, 32)); \
909  _wavWriter.open();
910 
911  #define AJA_NTV2_AUDIO_RECORD_DO if (NTV2_IS_VALID_AUDIO_SYSTEM(mAudioSystem)) \
912  if (pFrameData->fAudioBuffer) \
913  if (_wavWriter.IsOpen()) \
914  _wavWriter.write(pFrameData->AudioBuffer(), pFrameData->NumCapturedAudioBytes());
915 
916  #define AJA_NTV2_AUDIO_RECORD_END if (_wavWriter.IsOpen()) \
917  _wavWriter.close();
918 #else
919  #define AJA_NTV2_AUDIO_RECORD_BEGIN
920  #define AJA_NTV2_AUDIO_RECORD_DO
921  #define AJA_NTV2_AUDIO_RECORD_END
922 #endif
923 
924 // Optionally used in the CNTV2Capture4K demo.
925 #if defined(AJA_RECORD_MLAUDIO)
926  #include <fstream>
927  #define AJA_NTV2_MLAUDIO_RECORD_BEGIN ofstream ofs1, ofs2; \
928  if (mConfig.fNumAudioLinks > 1) \
929  { \
930  ofs1.open("temp1.raw", ios::out | ios::trunc | ios::binary); \
931  ofs2.open("temp2.raw", ios::out | ios::trunc | ios::binary); \
932  }
933 
934  #define AJA_NTV2_MLAUDIO_RECORD_DO if (mConfig.fNumAudioLinks > 1) \
935  { const ULWord halfBytes (pFrameData->NumCapturedAudioBytes() / 2); \
936  ofs1.write(pFrameData->AudioBuffer(), halfBytes); \
937  NTV2Buffer lastHalf (pFrameData->fAudioBuffer.GetHostAddress(halfBytes), halfBytes); \
938  ofs2.write(lastHalf, lastHalf.GetByteCount()); \
939  }
940 
941  #define AJA_NTV2_MLAUDIO_RECORD_END if (mConfig.fNumAudioLinks > 1) \
942  { \
943  ofs1.close(); \
944  ofs2.close(); \
945  }
946 #else
947  #define AJA_NTV2_MLAUDIO_RECORD_BEGIN
948  #define AJA_NTV2_MLAUDIO_RECORD_DO
949  #define AJA_NTV2_MLAUDIO_RECORD_END
950 #endif
951 
952 #endif // _NTV2DEMOCOMMON_H
NTV2InputSourceSet
std::set< NTV2InputSource > NTV2InputSourceSet
A set of distinct NTV2InputSource values.
Definition: ntv2publicinterface.h:8816
VIDEO_FORMATS_ALL_UHD4K8K
@ VIDEO_FORMATS_ALL_UHD4K8K
Definition: ntv2democommon.h:228
PIXEL_FORMATS_RGB
@ PIXEL_FORMATS_RGB
Definition: ntv2democommon.h:246
NTV2FrameData::NumCapturedAnc2Bytes
ULWord NumCapturedAnc2Bytes(void) const
Definition: ntv2democommon.h:119
NTV2FrameData::fFrameFlags
uint32_t fFrameFlags
Frame data flags.
Definition: ntv2democommon.h:91
CaptureConfig::fDoMultiFormat
bool fDoMultiFormat
If true, use multi-format/multi-channel mode, if device supports it; otherwise normal mode.
Definition: ntv2democommon.h:285
AVDataBuffer::fFrameFlags
uint32_t fFrameFlags
Frame data flags.
Definition: ntv2democommon.h:71
BurnConfig::fVerbose
bool fVerbose
If true, emit explanatory messages to stdout/stderr. Defaults to false.
Definition: ntv2democommon.h:405
TC_INDEXES_NO_ANALOG
@ TC_INDEXES_NO_ANALOG
Definition: ntv2democommon.h:266
CNTV2DemoCommon::Popt::otherArgs
virtual const NTV2StringList & otherArgs(void) const
Definition: ntv2democommon.h:857
TC_INDEXES_VITC1
@ TC_INDEXES_VITC1
Definition: ntv2democommon.h:264
PIXEL_FORMATS_NO_RAW
@ PIXEL_FORMATS_NO_RAW
Definition: ntv2democommon.h:251
BurnConfig::OChStr
std::string OChStr(void) const
Definition: ntv2democommon.h:447
VIDEO_FORMATS_8KUHD2
@ VIDEO_FORMATS_8KUHD2
Definition: ntv2democommon.h:227
NTV2InputSourceToChannel
NTV2Channel NTV2InputSourceToChannel(const NTV2InputSource inInputSource)
Converts a given NTV2InputSource to its equivalent NTV2Channel value.
Definition: ntv2utils.cpp:5107
PlayerConfig::fDoHDMIOutput
bool fDoHDMIOutput
If true, enable HDMI output; otherwise, disable HDMI output.
Definition: ntv2democommon.h:337
info.h
Declares the AJASystemInfo class.
AVDataBuffer::fRP188Data2
RP188_STRUCT fRP188Data2
For future use.
Definition: ntv2democommon.h:69
PlayerConfig::PlayerConfig
PlayerConfig(const std::string &inDeviceSpecifier="0")
Constructs a default Player configuration.
Definition: ntv2democommon.h:345
BurnConfig::ISrcIsSDI
bool ISrcIsSDI(void) const
Definition: ntv2democommon.h:443
ancillarydata.h
Declares the AJAAncillaryData class.
BurnConfig::ISrcStr
std::string ISrcStr(void) const
Definition: ntv2democommon.h:441
NTV2OutputDestination
NTV2OutputDestination
Identifies a specific video output destination.
Definition: ntv2enums.h:1301
NTV2_FOURCC
#define NTV2_FOURCC(_a_, _b_, _c_, _d_)
Definition: ntv2publicinterface.h:5444
poptOption
Definition: options_popt.h:148
AVDataBuffer::fRP188Data
RP188_STRUCT fRP188Data
For future use.
Definition: ntv2democommon.h:68
NTV2PixelFormats
NTV2FrameBufferFormatSet NTV2PixelFormats
Definition: ntv2publicinterface.h:8807
NTV2OutputDestinations
std::set< NTV2OutputDestination > NTV2OutputDestinations
A set of distinct NTV2OutputDestination values.
Definition: ntv2publicinterface.h:8819
AJAAncDataType_Unknown
@ AJAAncDataType_Unknown
Includes data that is valid, but we don't recognize.
Definition: ancillarydata.h:46
BurnConfig::fIsFieldMode
bool fIsFieldMode
True if Field Mode, otherwise Frame Mode.
Definition: ntv2democommon.h:401
UHD_VIDEO_FORMATS
@ UHD_VIDEO_FORMATS
Definition: ntv2democommon.h:236
NTV2TCIndexes
std::set< NTV2TCIndex > NTV2TCIndexes
Definition: ntv2publicinterface.h:6879
NTV2FrameData
I encapsulate the video, audio and anc host buffers used in the AutoCirculate demos....
Definition: ntv2democommon.h:79
NTV2FrameDataArrayConstIter
NTV2FrameDataArray::const_iterator NTV2FrameDataArrayConstIter
Handy const iterator.
Definition: ntv2democommon.h:154
NTV2Channel
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
Definition: ntv2enums.h:1334
NTV2FrameData::fNumAncBytes
ULWord fNumAncBytes
Actual number of captured F1 anc bytes.
Definition: ntv2democommon.h:89
NTV2Buffer
A generic user-space buffer object that has an address and a length. Used most often to share an arbi...
Definition: ntv2publicinterface.h:6022
CNTV2DemoCommon::ACFrameRange
NTV2ACFrameRange ACFrameRange
Definition: ntv2democommon.h:845
NTV2Buffer::GetByteCount
ULWord GetByteCount(void) const
Definition: ntv2publicinterface.h:6096
Bouncer::Value
T Value(void) const
Definition: ntv2democommon.h:213
NTV2VideoFormatSet
std::set< NTV2VideoFormat > NTV2VideoFormatSet
A set of distinct NTV2VideoFormat values.
Definition: ntv2publicinterface.h:8802
AVDataBuffer
This structure encapsulates the video, audio and anc buffers used in the AutoCirculate demos....
Definition: ntv2democommon.h:55
PIXEL_FORMATS_RAW
@ PIXEL_FORMATS_RAW
Definition: ntv2democommon.h:248
VIDEO_FORMATS_ALL
@ VIDEO_FORMATS_ALL
Definition: ntv2democommon.h:229
NTV2FrameData::ZeroBuffers
void ZeroBuffers(void)
Definition: ntv2democommon.h:132
NTV2FrameData::AncBuffer2
NTV2Buffer & AncBuffer2(void)
Definition: ntv2democommon.h:117
systemtime.h
Declares the AJATime class.
wavewriter.h
Declares the AJAWavWriter class.
BurnConfig::fOutputDest
NTV2OutputDest fOutputDest
The device output connector to use (NTV2_OUTPUTDESTINATION_INVALID means unspecified)
Definition: ntv2democommon.h:393
NTV2_OUTPUTDESTINATION_SDI2
@ NTV2_OUTPUTDESTINATION_SDI2
Definition: ntv2enums.h:1306
NTV2_FORMAT_1080i_5994
@ NTV2_FORMAT_1080i_5994
Definition: ntv2enums.h:535
BurnConfig::fWithTallFrames
bool fWithTallFrames
If true && fWithAnc, use "taller" VANC mode for anc. Defaults to false.
Definition: ntv2democommon.h:403
NTV2_IS_VALID_TIMECODE_INDEX
#define NTV2_IS_VALID_TIMECODE_INDEX(__x__)
Definition: ntv2enums.h:3937
PIXEL_FORMATS_PLANAR
@ PIXEL_FORMATS_PLANAR
Definition: ntv2democommon.h:247
BurnConfig::fDoMultiFormat
bool fDoMultiFormat
If true, enables device-sharing; otherwise takes exclusive control of the device.
Definition: ntv2democommon.h:398
BurnConfig::fSuppressAudio
bool fSuppressAudio
If true, suppress audio; otherwise include audio.
Definition: ntv2democommon.h:399
BurnConfig::fTimecodeSource
NTV2TCIndex fTimecodeSource
Timecode source to use.
Definition: ntv2democommon.h:397
PIXEL_FORMATS_NONE
@ PIXEL_FORMATS_NONE
Definition: ntv2democommon.h:245
CaptureConfig::fPixelFormat
NTV2PixelFormat fPixelFormat
Pixel format to use.
Definition: ntv2democommon.h:282
NTV2OutputDestinationToChannel
NTV2Channel NTV2OutputDestinationToChannel(const NTV2OutputDestination inOutputDest)
Converts a given NTV2OutputDestination to its equivalent NTV2Channel value.
Definition: ntv2utils.cpp:5215
AJAAncDataType
AJAAncDataType
Identifies the ancillary data types that are known to this module.
Definition: ancillarydata.h:44
NTV2FrameData::NTV2FrameData
NTV2FrameData()
Definition: ntv2democommon.h:93
NTV2DeviceID
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
Definition: ntv2enums.h:20
NTV2VideoFormatKinds
ULWord NTV2VideoFormatKinds
Definition: ntv2democommon.h:240
NTV2FrameData::fAncBuffer2
NTV2Buffer fAncBuffer2
Additional "F2" host anc buffer.
Definition: ntv2democommon.h:86
NTV2FrameBufferFormat
NTV2FrameBufferFormat
Identifies a particular video frame buffer format. See Device Frame Buffer Formats for details.
Definition: ntv2enums.h:210
CaptureConfig::fAncDataFilePath
std::string fAncDataFilePath
Optional path to Anc binary data file.
Definition: ntv2democommon.h:278
NTV2Buffer::Allocate
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...
Definition: ntv2publicinterface.cpp:1647
BurnConfig::ODstStr
std::string ODstStr(void) const
Definition: ntv2democommon.h:444
PlayerConfig::fDoMultiFormat
bool fDoMultiFormat
If true, enable device-sharing; otherwise take exclusive control of device.
Definition: ntv2democommon.h:332
NTV2_IS_VALID_OUTPUT_DEST
#define NTV2_IS_VALID_OUTPUT_DEST(_dest_)
Definition: ntv2enums.h:1324
BurnConfig::fSuppressVideo
bool fSuppressVideo
If true, suppress video; otherwise include video.
Definition: ntv2democommon.h:400
NTV2FrameData::fAncBuffer
NTV2Buffer fAncBuffer
Host ancillary data buffer.
Definition: ntv2democommon.h:85
TimecodeFormat
TimecodeFormat
Definition: ntv2rp188.h:27
PlayerConfig::fVancMode
NTV2VANCMode fVancMode
VANC mode to use.
Definition: ntv2democommon.h:329
NTV2_CHANNEL1
@ NTV2_CHANNEL1
Specifies channel or Frame Store 1 (or the first item).
Definition: ntv2enums.h:1336
ntv2debug.h
PIXEL_FORMATS_ALPHA
@ PIXEL_FORMATS_ALPHA
Definition: ntv2democommon.h:250
NTV2FrameData::IsNULL
bool IsNULL(void) const
Definition: ntv2democommon.h:124
PlayerConfig::fDoLinkGrouping
bool fDoLinkGrouping
If true, enables 6/12G output mode on IoX3/Kona5 (4K/8K)
Definition: ntv2democommon.h:340
CNTV2DemoCommon::Popt::parseResult
virtual int parseResult(void) const
Definition: ntv2democommon.h:853
VIDEO_FORMATS_4KUHD
@ VIDEO_FORMATS_4KUHD
Definition: ntv2democommon.h:226
NTV2FrameRate
NTV2FrameRate
Identifies a particular video frame rate.
Definition: ntv2enums.h:399
poptContext_s
Definition: options_popt.cpp:289
NTV2_CHANNEL_INVALID
@ NTV2_CHANNEL_INVALID
Definition: ntv2enums.h:1345
TC_INDEXES_ATCLTC
@ TC_INDEXES_ATCLTC
Definition: ntv2democommon.h:263
NTV2OutputDest
enum NTV2OutputDestination NTV2OutputDest
_NTV2VideoFormatKind
_NTV2VideoFormatKind
Definition: ntv2democommon.h:222
CaptureConfig::fWithAnc
bool fWithAnc
If true, also capture Anc.
Definition: ntv2democommon.h:286
NTV2FrameData::VideoBuffer
NTV2Buffer & VideoBuffer(void)
Definition: ntv2democommon.h:106
PlayerConfig::fDoTsiRouting
bool fDoTsiRouting
If true, enable TSI routing; otherwise route for square division (4K/8K)
Definition: ntv2democommon.h:338
PlayerConfig::fTransmitHDRType
AJAAncDataType fTransmitHDRType
Specifies the HDR anc data packet to transmit, if any.
Definition: ntv2democommon.h:330
AJA_FrameRate
AJA_FrameRate
Definition: videotypes.h:210
BurnConfig::ODstCh
NTV2Channel ODstCh(void) const
Definition: ntv2democommon.h:445
BurnConfig::fPixelFormat
NTV2PixelFormat fPixelFormat
The pixel format to use.
Definition: ntv2democommon.h:396
Bouncer::Bouncer
Bouncer(const T inUpperLimit, const T inLowerLimit=T(0), const T inStartValue=T(0), const bool inStartAscend=(!(0)))
Definition: ntv2democommon.h:170
TC_INDEXES_VITC2
@ TC_INDEXES_VITC2
Definition: ntv2democommon.h:265
BurnConfig::fOutputFrames
NTV2ACFrameRange fOutputFrames
Playout frame count or range.
Definition: ntv2democommon.h:395
NTV2FrameData::NumCapturedAncBytes
ULWord NumCapturedAncBytes(void) const
Definition: ntv2democommon.h:115
NTV2_INPUTSOURCE_SDI1
@ NTV2_INPUTSOURCE_SDI1
Identifies the 1st SDI video input.
Definition: ntv2enums.h:1251
AVDataBuffer::fAudioRecordSize
uint32_t fAudioRecordSize
For future use.
Definition: ntv2democommon.h:66
NTV2PixelFormatKinds
ULWord NTV2PixelFormatKinds
Definition: ntv2democommon.h:255
NTV2InputSourceToString
std::string NTV2InputSourceToString(const NTV2InputSource inValue, const bool inForRetailDisplay=false)
Definition: ntv2utils.cpp:7258
PlayerConfig::fFrames
NTV2ACFrameRange fFrames
AutoCirculate frame count or range.
Definition: ntv2democommon.h:326
NTV2_TCINDEX_SDI1
@ NTV2_TCINDEX_SDI1
SDI 1 embedded VITC.
Definition: ntv2enums.h:3907
NTV2_VANCMODE_OFF
@ NTV2_VANCMODE_OFF
This identifies the mode in which there are no VANC lines in the frame buffer.
Definition: ntv2enums.h:3752
NTV2FrameData::HasValidTimecode
bool HasValidTimecode(const NTV2TCIndex inTCNdx) const
Definition: ntv2democommon.h:129
NTV2Buffer::IsNULL
bool IsNULL(void) const
Definition: ntv2publicinterface.h:6118
ULWord
uint32_t ULWord
Definition: ajatypes.h:255
NTV2FrameData::NumCapturedAudioBytes
ULWord NumCapturedAudioBytes(void) const
Definition: ntv2democommon.h:111
NTV2FrameData::fVideoBuffer
NTV2Buffer fVideoBuffer
Host video buffer.
Definition: ntv2democommon.h:82
CaptureConfig
This class is used to configure an NTV2Capture instance.
Definition: ntv2democommon.h:274
AVDataBuffer::fVideoBufferUnaligned
uint8_t * fVideoBufferUnaligned
For future use.
Definition: ntv2democommon.h:70
NTV2FrameData::VideoBufferSize
ULWord VideoBufferSize(void) const
Definition: ntv2democommon.h:107
PlayerConfig::fSuppressAudio
bool fSuppressAudio
If true, suppress audio; otherwise generate & xfer audio tone.
Definition: ntv2democommon.h:333
BurnConfig
struct BurnConfig BurnConfig
Configures an NTV2Burn or NTV2FieldBurn instance.
NTV2ACFrameRange
AutoCirculate Frame Range.
Definition: ntv2utils.h:969
BurnConfig::fWithHanc
bool fWithHanc
If true, capture & play HANC data, including audio (LLBurn). Defaults to false.
Definition: ntv2democommon.h:404
NTV2_INPUTSOURCE_INVALID
@ NTV2_INPUTSOURCE_INVALID
The invalid video input.
Definition: ntv2enums.h:1259
NTV2AudioSystemSet
std::set< NTV2AudioSystem > NTV2AudioSystemSet
A set of distinct NTV2AudioSystem values. New in SDK 16.2.
Definition: ntv2publicinterface.h:3900
ntv2card.h
Declares the CNTV2Card class.
AVDataBuffer::fAudioBufferSize
uint32_t fAudioBufferSize
Size of host audio buffer, in bytes.
Definition: ntv2democommon.h:61
BurnConfig::ISrcCh
NTV2Channel ISrcCh(void) const
Definition: ntv2democommon.h:442
NTV2TCIndex
NTV2TCIndex
These enum values are indexes into the capture/playout AutoCirculate timecode arrays.
Definition: ntv2enums.h:3904
PlayerConfig::fSuppressVideo
bool fSuppressVideo
If true, suppress video; otherwise generate & xfer test patterns.
Definition: ntv2democommon.h:334
AJASystemInfo::ToString
virtual void ToString(std::string &outAllLabelsAndValues) const
Answers with a multi-line string that contains the complete host system info table.
NTV2FrameData::AncBufferSize
ULWord AncBufferSize(void) const
Definition: ntv2democommon.h:114
PlayerConfig::fNumAudioLinks
UWord fNumAudioLinks
The number of audio systems to control for multi-link audio (4K/8K)
Definition: ntv2democommon.h:331
_NTV2PixelFormatKind
_NTV2PixelFormatKind
Definition: ntv2democommon.h:243
NTV2_CHANNEL3
@ NTV2_CHANNEL3
Specifies channel or Frame Store 3 (or the 3rd item).
Definition: ntv2enums.h:1338
UWord
uint16_t UWord
Definition: ajatypes.h:253
PlayerConfig::fVideoFormat
NTV2VideoFormat fVideoFormat
The video format to use.
Definition: ntv2democommon.h:328
NTV2FrameData::AudioBufferSize
ULWord AudioBufferSize(void) const
Definition: ntv2democommon.h:110
options_popt.h
NTV2FrameData::AncBuffer2Size
ULWord AncBuffer2Size(void) const
Definition: ntv2democommon.h:118
NTV2FrameData::fNumAudioBytes
ULWord fNumAudioBytes
Actual number of captured audio bytes.
Definition: ntv2democommon.h:88
NTV2_FBF_8BIT_YCBCR
@ NTV2_FBF_8BIT_YCBCR
See 8-Bit YCbCr Format.
Definition: ntv2enums.h:214
CNTV2DemoCommon::Popt
Definition: ntv2democommon.h:848
PlayerConfig::fOutputChannel
NTV2Channel fOutputChannel
The device channel to use.
Definition: ntv2democommon.h:324
CaptureConfig::fDeviceSpec
std::string fDeviceSpec
The AJA device to use.
Definition: ntv2democommon.h:277
ntv2utils.h
Declares numerous NTV2 utility functions.
PlayerConfig::Get
AJALabelValuePairs Get(const bool inCompact=(0)) const
Renders a human-readable representation of me.
Definition: ntv2democommon.cpp:1801
CNTV2DemoCommon::Popt::errorStr
virtual const std::string & errorStr(void) const
Definition: ntv2democommon.h:856
PlayerConfig::fAncDataFilePath
std::string fAncDataFilePath
Optional path to Anc binary data file to playout.
Definition: ntv2democommon.h:323
NTV2FrameData::AudioBuffer
NTV2Buffer & AudioBuffer(void)
Definition: ntv2democommon.h:109
CNTV2Card
I interrogate and control an AJA video/audio capture/playout device.
Definition: ntv2card.h:28
AVDataBuffer::fAncF2BufferSize
uint32_t fAncF2BufferSize
Size of "Field 2" ANC buffer, in bytes.
Definition: ntv2democommon.h:65
DEVICE_ID_INVALID
@ DEVICE_ID_INVALID
Definition: ntv2enums.h:93
RP188_STRUCT
Definition: ntv2publicinterface.h:4083
kDemoAppSignature
static const ULWord kDemoAppSignature((((uint32_t)( 'D'))<< 24)|(((uint32_t)( 'E'))<< 16)|(((uint32_t)( 'M'))<< 8)|(((uint32_t)( 'O'))<< 0))
NTV2FrameData::fVideoBuffer2
NTV2Buffer fVideoBuffer2
Additional host video buffer, usually F2.
Definition: ntv2democommon.h:83
BurnConfig::fWithAnc
bool fWithAnc
If true, capture & play anc data (LLBurn). Defaults to false.
Definition: ntv2democommon.h:402
BurnConfig::fDeviceSpec2
std::string fDeviceSpec2
Second AJA device to use (Burn4KQuadrant or BurnBoardToBoard only)
Definition: ntv2democommon.h:389
NTV2FrameDataArray
std::vector< NTV2FrameData > NTV2FrameDataArray
A vector of NTV2FrameData elements.
Definition: ntv2democommon.h:152
CaptureConfig::fDoABConversion
bool fDoABConversion
If true, do level-A/B conversion; otherwise don't.
Definition: ntv2democommon.h:284
NTV2StringList
std::vector< std::string > NTV2StringList
Definition: ntv2utils.h:1143
NTV2VANCMode
NTV2VANCMode
These enum values identify the available VANC modes.
Definition: ntv2enums.h:3750
NTV2_OUTPUT_DEST_IS_SDI
#define NTV2_OUTPUT_DEST_IS_SDI(_dest_)
Definition: ntv2enums.h:1323
NTV2FrameData::HasTimecode
bool HasTimecode(const NTV2TCIndex inTCNdx) const
Definition: ntv2democommon.h:127
PIXEL_FORMATS_PACKED
@ PIXEL_FORMATS_PACKED
Definition: ntv2democommon.h:249
CaptureConfig::fFrames
NTV2ACFrameRange fFrames
AutoCirculate frame count or range.
Definition: ntv2democommon.h:281
BurnConfig::IChStr
std::string IChStr(void) const
Definition: ntv2democommon.h:446
AVDataBuffer::fAudioBuffer
uint32_t * fAudioBuffer
Pointer to host audio buffer.
Definition: ntv2democommon.h:60
BurnConfig::fInputChannel
NTV2Channel fInputChannel
The input channel to use.
Definition: ntv2democommon.h:390
CaptureConfig::fInputChannel
NTV2Channel fInputChannel
The device channel to use.
Definition: ntv2democommon.h:279
AVDataBuffer::fVideoBuffer
uint32_t * fVideoBuffer
Pointer to host video buffer.
Definition: ntv2democommon.h:57
CNTV2DemoCommon
A set of common convenience functions used by the NTV2 Demonstration Applications....
Definition: ntv2democommon.h:474
NTV2ChannelList
std::vector< NTV2Channel > NTV2ChannelList
An ordered sequence of NTV2Channel values.
Definition: ntv2publicinterface.h:3835
BurnConfig::fDeviceSpec
std::string fDeviceSpec
The AJA device to use.
Definition: ntv2democommon.h:388
NTV2VideoFormatKind
enum _NTV2VideoFormatKind NTV2VideoFormatKind
NTV2InputSource
NTV2InputSource
Identifies a specific video input source.
Definition: ntv2enums.h:1244
BurnConfig::fInputSource
NTV2InputSource fInputSource
The device input connector to use.
Definition: ntv2democommon.h:392
VIDEO_FORMATS_SDHD
@ VIDEO_FORMATS_SDHD
Definition: ntv2democommon.h:225
BurnConfig::ODstIsSDI
bool ODstIsSDI(void) const
Definition: ntv2democommon.h:448
NTV2FrameData::fAudioBuffer
NTV2Buffer fAudioBuffer
Host audio buffer.
Definition: ntv2democommon.h:84
AVDataBuffer::fVideoBuffer2
uint32_t * fVideoBuffer2
Pointer to an additional host video buffer, usually field 2.
Definition: ntv2democommon.h:58
PlayerConfig::fTransmitLTC
bool fTransmitLTC
If true, embed LTC; otherwise embed VITC.
Definition: ntv2democommon.h:335
AVDataBuffer::fAncBufferSize
uint32_t fAncBufferSize
Size of ANC buffer, in bytes.
Definition: ntv2democommon.h:63
BOTH_VIDEO_FORMATS
@ BOTH_VIDEO_FORMATS
Definition: ntv2democommon.h:234
NTV2FrameData::VideoBuffer2
NTV2Buffer & VideoBuffer2(void)
Definition: ntv2democommon.h:121
NTV2_IOKINDS_ALL
@ NTV2_IOKINDS_ALL
Specifies any/all input/output kinds.
Definition: ntv2enums.h:1277
PlayerConfig::fDoRGBOnWire
bool fDoRGBOnWire
If true, produce RGB on the wire; otherwise output YUV.
Definition: ntv2democommon.h:339
PlayerConfig::fOutputDest
NTV2OutputDest fOutputDest
The desired output connector to use.
Definition: ntv2democommon.h:325
false
#define false
Definition: ntv2devicefeatures.h:25
common.h
Private include file for all ajabase sources.
NTV2_OUTPUTDESTINATION_INVALID
@ NTV2_OUTPUTDESTINATION_INVALID
Definition: ntv2enums.h:1313
NON_UHD_VIDEO_FORMATS
@ NON_UHD_VIDEO_FORMATS
Definition: ntv2democommon.h:235
FrameDataRingBuffer
AJACircularBuffer< NTV2FrameData * > FrameDataRingBuffer
Buffer ring of NTV2FrameData's.
Definition: ntv2democommon.h:155
PlayerConfig::fDeviceSpec
std::string fDeviceSpec
The AJA device to use.
Definition: ntv2democommon.h:322
TC_INDEXES_SDI
@ TC_INDEXES_SDI
Definition: ntv2democommon.h:261
AVDataBuffer::fAncF2Buffer
uint32_t * fAncF2Buffer
Pointer to "Field 2" ANC buffer.
Definition: ntv2democommon.h:64
videotypes.h
Declares the enumeration constants used in the ajabase library.
CaptureConfig::fDoTSIRouting
bool fDoTSIRouting
If true, do TSI routing; otherwise squares.
Definition: ntv2democommon.h:288
NTV2XptConnections
std::map< NTV2InputXptID, NTV2OutputXptID > NTV2XptConnections
Definition: ntv2signalrouter.h:39
NTV2TimeCodes
std::map< NTV2TCIndex, NTV2_RP188 > NTV2TimeCodes
A mapping of NTV2TCIndex enum values to NTV2_RP188 structures.
Definition: ntv2publicinterface.h:6876
NTV2FrameData::VideoBufferSize2
ULWord VideoBufferSize2(void) const
Definition: ntv2democommon.h:122
NTV2FrameDataArrayIter
NTV2FrameDataArray::iterator NTV2FrameDataArrayIter
Handy non-const iterator.
Definition: ntv2democommon.h:153
CNTV2DemoCommon::Popt::isGood
virtual bool isGood(void) const
Definition: ntv2democommon.h:854
NTV2_RP188
This struct replaces the old RP188_STRUCT.
Definition: ntv2publicinterface.h:6790
BurnConfig::Get
AJALabelValuePairs Get(const bool inCompact=(0)) const
Renders a human-readable representation of me.
Definition: ntv2democommon.cpp:1838
NTV2FrameData::Reset
bool Reset(void)
Definition: ntv2democommon.h:147
AVDataBuffer::fVideoBufferSize
uint32_t fVideoBufferSize
Size of host video buffer, in bytes.
Definition: ntv2democommon.h:59
AJAExport
#define AJAExport
Definition: export.h:33
NTV2VideoFormat
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
NTV2FrameData::fNumAnc2Bytes
ULWord fNumAnc2Bytes
Actual number of captured F2 anc bytes.
Definition: ntv2democommon.h:90
Bouncer
A handy class that makes it easy to "bounce" an unsigned integer value between a minimum and maximum ...
Definition: ntv2democommon.h:167
CIRCULAR_BUFFER_SIZE
static const size_t CIRCULAR_BUFFER_SIZE(10)
Number of NTV2FrameData's in our ring.
ntv2rp188.h
Declares the CRP188 class. See SMPTE RP188 standard for details.
std::swap
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
Definition: json.hpp:24538
true
#define true
Definition: ntv2devicefeatures.h:26
AVDataBuffer::fAncRecordSize
uint32_t fAncRecordSize
For future use.
Definition: ntv2democommon.h:67
Bouncer::SetIncrement
void SetIncrement(const T inValue)
Definition: ntv2democommon.h:212
AVDataBuffer::fAncBuffer
uint32_t * fAncBuffer
Pointer to ANC buffer.
Definition: ntv2democommon.h:62
CaptureConfig::fNumAudioLinks
UWord fNumAudioLinks
Number of audio links to capture.
Definition: ntv2democommon.h:283
AJA_PixelFormat
AJA_PixelFormat
Definition: videotypes.h:121
CaptureConfig::CaptureConfig
CaptureConfig(const std::string &inDeviceSpec="0")
Constructs a default NTV2Capture configuration.
Definition: ntv2democommon.h:293
PlayerConfig
Configures an NTV2Player instance.
Definition: ntv2democommon.h:319
VIDEO_FORMATS_UHD2
@ VIDEO_FORMATS_UHD2
Definition: ntv2democommon.h:233
NTV2_INPUT_SOURCE_IS_SDI
#define NTV2_INPUT_SOURCE_IS_SDI(_inpSrc_)
Definition: ntv2enums.h:1265
PlayerConfig::fDoABConversion
bool fDoABConversion
If true, do level-A/B conversion; otherwise don't.
Definition: ntv2democommon.h:336
PlayerConfig::fPixelFormat
NTV2PixelFormat fPixelFormat
The pixel format to use.
Definition: ntv2democommon.h:327
NTV2Buffer::Fill
bool Fill(const T &inValue)
Fills me with the given scalar value.
Definition: ntv2publicinterface.h:6248
ntv2publicinterface.h
Declares enums and structs used by all platform drivers and the SDK.
operator<<
std::ostream & operator<<(std::ostream &ioStrm, const CaptureConfig &inObj)
Definition: ntv2democommon.cpp:1791
Bouncer::Next
T Next(void)
Definition: ntv2democommon.h:193
circularbuffer.h
Declaration of AJACircularBuffer template class.
AJALabelValuePairs
std::vector< AJALabelValuePair > AJALabelValuePairs
An ordered sequence of label/value pairs.
Definition: info.h:69
NTV2AudioSystem
NTV2AudioSystem
Used to identify an Audio System on an NTV2 device. See Audio System Operation for more information.
Definition: ntv2enums.h:3848
BurnConfig::fInputFrames
NTV2ACFrameRange fInputFrames
Ingest frame count or range.
Definition: ntv2democommon.h:394
TC_INDEXES_NONE
@ TC_INDEXES_NONE
Definition: ntv2democommon.h:260
VIDEO_FORMATS_NONE
@ VIDEO_FORMATS_NONE
Definition: ntv2democommon.h:224
TC_INDEXES_ANALOG
@ TC_INDEXES_ANALOG
Definition: ntv2democommon.h:262
BurnConfig
Configures an NTV2Burn or NTV2FieldBurn instance.
Definition: ntv2democommon.h:385
NTV2FrameData::AncBuffer
NTV2Buffer & AncBuffer(void)
Definition: ntv2democommon.h:113
PlayerConfig
struct PlayerConfig PlayerConfig
Configures an NTV2Player instance.
NTV2IOKinds
ULWord NTV2IOKinds
Definition: ntv2enums.h:1287
NTV2TCIndexKinds
enum _NTV2TCIndexKinds NTV2TCIndexKinds
BurnConfig::BurnConfig
BurnConfig(const std::string &inDeviceSpecifier="0")
Constructs a default Player configuration.
Definition: ntv2democommon.h:410
VIDEO_FORMATS_NON_4KUHD
@ VIDEO_FORMATS_NON_4KUHD
Definition: ntv2democommon.h:232
CaptureConfig::fInputSource
NTV2InputSource fInputSource
The device input connector to use.
Definition: ntv2democommon.h:280
BurnConfig::fOutputChannel
NTV2Channel fOutputChannel
The output channel to use.
Definition: ntv2democommon.h:391
debug.h
Declares the AJADebug class.
TC_INDEXES_ALL
@ TC_INDEXES_ALL
Definition: ntv2democommon.h:267
NTV2PixelFormatKind
enum _NTV2PixelFormatKind NTV2PixelFormatKind
AJACircularBuffer< NTV2FrameData * >
_NTV2TCIndexKinds
_NTV2TCIndexKinds
Definition: ntv2democommon.h:258
PIXEL_FORMATS_ALL
@ PIXEL_FORMATS_ALL
Definition: ntv2democommon.h:252
NTV2FrameData::fTimecodes
NTV2TimeCodes fTimecodes
Map of TC indexes to NTV2_RP188 values.
Definition: ntv2democommon.h:87
CaptureConfig::fWithAudio
bool fWithAudio
If true, also capture Audio.
Definition: ntv2democommon.h:287
NTV2OutputDestinationToString
std::string NTV2OutputDestinationToString(const NTV2OutputDestination inValue, const bool inForRetailDisplay=false)
Definition: ntv2utils.cpp:7281