AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
ntv2fieldburn.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef _NTV2FIELDBURN_H
9 #define _NTV2FIELDBURN_H
10 
11 #include "ntv2card.h"
12 #include "ntv2formatdescriptor.h"
13 #include "ntv2democommon.h"
14 #include "ajabase/common/types.h"
16 #include "ajabase/system/thread.h"
18 
19 
33 {
34  // Public Instance Methods
35  public:
41  NTV2FieldBurn (const BurnConfig & inConfig);
42  virtual ~NTV2FieldBurn ();
43 
47  virtual AJAStatus Init (void);
48 
53  virtual AJAStatus Run (void);
54 
58  virtual void Quit (void);
59 
68  virtual void GetStatus (ULWord & outNumProcessed, ULWord & outCaptureDrops, ULWord & outPlayoutDrops,
69  ULWord & outCaptureLevel, ULWord & outPlayoutLevel);
70 
71 
72  // Protected Instance Methods
73  protected:
77  virtual AJAStatus SetupVideo (void);
78 
82  virtual AJAStatus SetupAudio (void);
83 
87  virtual void RouteInputSignal (void);
88 
92  virtual void RouteOutputSignal (void);
93 
97  virtual AJAStatus SetupHostBuffers (void);
98 
102  virtual void StartPlayThread (void);
103 
107  virtual void PlayFrames (void);
108 
112  virtual void StartCaptureThread (void);
113 
117  virtual void CaptureFrames (void);
118 
119 
123  virtual bool InputSignalHasTimecode (void);
124 
125 
126  // Protected Class Methods
127  protected:
135  static void PlayThreadStatic (AJAThread * pThread, void * pContext);
136 
144  static void CaptureThreadStatic (AJAThread * pThread, void * pContext);
145 
146  // Private Member Data
147  private:
149  BurnConfig mConfig;
150  AJAThread mPlayThread;
151  AJAThread mCaptureThread;
152  CNTV2Card mDevice;
153  NTV2DeviceID mDeviceID;
154  NTV2VideoFormat mVideoFormat;
155  NTV2FormatDesc mFormatDesc;
156  NTV2TaskMode mSavedTaskMode;
157  NTV2OutputDest mOutputDest;
158  NTV2AudioSystem mAudioSystem;
159  AJATimeCodeBurn mTCBurner;
160  NTV2ChannelList mTCOutputs;
161  NTV2FrameDataArray mHostBuffers;
162  CircularBuffer mFrameDataRing;
163  bool mGlobalQuit;
164 
165 }; // NTV2FieldBurn
166 
167 #endif // _NTV2FIELDBURN_H
NTV2TaskMode
enum NTV2EveryFrameTaskMode NTV2TaskMode
NTV2FieldBurn::StartCaptureThread
virtual void StartCaptureThread(void)
Starts my capture thread.
Definition: ntv2fieldburn.cpp:592
NTV2FieldBurn::InputSignalHasTimecode
virtual bool InputSignalHasTimecode(void)
Returns true if the current input signal has timecode embedded in it; otherwise returns false.
Definition: ntv2fieldburn.cpp:800
NTV2FieldBurn::SetupAudio
virtual AJAStatus SetupAudio(void)
Sets up everything I need for capturing and playing audio.
Definition: ntv2fieldburn.cpp:262
NTV2FormatDescriptor
Describes a video frame for a given video standard or format and pixel format, including the total nu...
Definition: ntv2formatdescriptor.h:41
types.h
Declares common types used in the ajabase library.
NTV2FieldBurn::StartPlayThread
virtual void StartPlayThread(void)
Starts my playout thread.
Definition: ntv2fieldburn.cpp:460
NTV2FieldBurn::GetStatus
virtual void GetStatus(ULWord &outNumProcessed, ULWord &outCaptureDrops, ULWord &outPlayoutDrops, ULWord &outCaptureLevel, ULWord &outPlayoutLevel)
Provides status information about my input (capture) and output (playout) processes.
Definition: ntv2fieldburn.cpp:765
NTV2DeviceID
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
Definition: ntv2enums.h:20
NTV2FieldBurn::NTV2FieldBurn
NTV2FieldBurn(const BurnConfig &inConfig)
Constructs me using the given configuration settings.
Definition: ntv2fieldburn.cpp:25
NTV2FieldBurn::RouteInputSignal
virtual void RouteInputSignal(void)
Sets up board routing for capture.
Definition: ntv2fieldburn.cpp:362
NTV2OutputDest
enum NTV2OutputDestination NTV2OutputDest
NTV2FieldBurn::RouteOutputSignal
virtual void RouteOutputSignal(void)
Sets up board routing for playout.
Definition: ntv2fieldburn.cpp:385
AJAThread
Definition: thread.h:69
timecodeburn.h
Declares the AJATimeCodeBurn class.
AJAStatus
AJAStatus
Definition: types.h:378
ULWord
uint32_t ULWord
Definition: ajatypes.h:253
NTV2FieldBurn::Init
virtual AJAStatus Init(void)
Initializes me and prepares me to Run.
Definition: ntv2fieldburn.cpp:66
ntv2card.h
Declares the CNTV2Card class.
NTV2FieldBurn::CaptureThreadStatic
static void CaptureThreadStatic(AJAThread *pThread, void *pContext)
This is the capture thread's static callback function that gets called when the capture thread runs....
Definition: ntv2fieldburn.cpp:605
NTV2FieldBurn::PlayFrames
virtual void PlayFrames(void)
Repeatedly plays out frames using AutoCirculate (until global quit flag set).
Definition: ntv2fieldburn.cpp:481
CNTV2Card
I interrogate and control an AJA video/audio capture/playout device.
Definition: ntv2card.h:28
NTV2FieldBurn::CaptureFrames
virtual void CaptureFrames(void)
Repeatedly captures frames using AutoCirculate (until global quit flag set).
Definition: ntv2fieldburn.cpp:617
NTV2FieldBurn
I capture individual fields from an interlaced video signal provided to an SDI input....
Definition: ntv2fieldburn.h:32
NTV2FrameDataArray
std::vector< NTV2FrameData > NTV2FrameDataArray
A vector of NTV2FrameData elements.
Definition: ntv2democommon.h:152
NTV2ChannelList
std::vector< NTV2Channel > NTV2ChannelList
An ordered sequence of NTV2Channel values.
Definition: ntv2publicinterface.h:3835
ntv2formatdescriptor.h
Declares the NTV2FormatDescriptor class.
NTV2FieldBurn::SetupHostBuffers
virtual AJAStatus SetupHostBuffers(void)
Sets up my circular buffers.
Definition: ntv2fieldburn.cpp:309
ntv2democommon.h
This file contains some structures, constants, classes and functions that are used in some of the dem...
NTV2FieldBurn::SetupVideo
virtual AJAStatus SetupVideo(void)
Sets up everything I need for capturing and playing video.
Definition: ntv2fieldburn.cpp:131
NTV2FieldBurn::Quit
virtual void Quit(void)
Gracefully stops me from running.
Definition: ntv2fieldburn.cpp:46
NTV2VideoFormat
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
NTV2FieldBurn::PlayThreadStatic
static void PlayThreadStatic(AJAThread *pThread, void *pContext)
This is the playout thread's static callback function that gets called when the playout thread runs....
Definition: ntv2fieldburn.cpp:471
circularbuffer.h
Declaration of AJACircularBuffer template class.
AJATimeCodeBurn
Definition: timecodeburn.h:19
NTV2AudioSystem
NTV2AudioSystem
Used to identify an Audio System on an NTV2 device. See Audio System Operation for more information.
Definition: ntv2enums.h:3814
BurnConfig
Configures an NTV2Burn or NTV2FieldBurn instance.
Definition: ntv2democommon.h:376
thread.h
Declares the AJAThread class.
NTV2FieldBurn::~NTV2FieldBurn
virtual ~NTV2FieldBurn()
Definition: ntv2fieldburn.cpp:39
NTV2FieldBurn::Run
virtual AJAStatus Run(void)
Runs me.
Definition: ntv2fieldburn.cpp:446
AJACircularBuffer< NTV2FrameData * >