AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
ntv2llburn.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 #ifndef _NTV2LLBURN_H
9 #define _NTV2LLBURN_H
10 
11 #include "ntv2enums.h"
12 #include "ntv2devicefeatures.h"
13 #include "ntv2devicescanner.h"
14 #include "ntv2democommon.h"
15 #include "ntv2utils.h"
16 #include "ajabase/common/types.h"
20 #include "ajabase/system/thread.h"
21 #include "ajabase/system/process.h"
23 #include <set>
24 
25 
33 {
34  // Public Instance Methods
35  public:
41  NTV2LLBurn (const BurnConfig & inConfig);
42  virtual ~NTV2LLBurn ();
43 
47  virtual AJAStatus Init (void);
48 
53  virtual AJAStatus Run (void);
54 
58  virtual void Quit (void);
59 
65  virtual void GetStatus (ULWord & outFramesProcessed, ULWord & outFramesDropped);
66 
67 
68  // Protected Instance Methods
69  protected:
73  virtual AJAStatus SetupVideo (void);
74 
78  virtual AJAStatus SetupAudio (void);
79 
83  virtual void RouteInputSignal (void);
84 
88  virtual void RouteOutputSignal (void);
89 
93  virtual AJAStatus SetupHostBuffers (void);
94 
98  virtual void StartRunThread (void);
99 
103  virtual void ProcessFrames (void);
104 
108  virtual bool InputSignalHasTimecode (void);
109 
113  virtual bool AnalogLTCInputHasTimecode (void);
114 
115 
116  // Protected Class Methods
117  protected:
125  static void RunThreadStatic (AJAThread * pThread, void * pContext);
126 
127 
128  // Private Member Data
129  private:
130  BurnConfig mConfig;
131  AJAThread mRunThread;
132  CNTV2Card mDevice;
133  NTV2DeviceID mDeviceID;
134  NTV2VideoFormat mVideoFormat;
135  NTV2FormatDesc mFormatDesc;
136  NTV2TaskMode mSavedTaskMode;
137  NTV2OutputDest mOutputDest;
138  NTV2AudioSystem mAudioSystem;
139  AJATimeCodeBurn mTCBurner;
140 
141  bool mGlobalQuit;
142  NTV2ChannelSet mRP188Outputs;
143 
144  NTV2Buffer mpHostVideoBuffer;
145  NTV2Buffer mpHostAudioBuffer;
146  NTV2Buffer mpHostF1AncBuffer;
147  NTV2Buffer mpHostF2AncBuffer;
148 
149  uint32_t mAudioInLastAddress;
150  uint32_t mAudioOutLastAddress;
151 
152  uint32_t mFramesProcessed;
153  uint32_t mFramesDropped;
154 
155  uint32_t mInputStartFrame;
156  uint32_t mInputEndFrame;
157  uint32_t mOutputStartFrame;
158  uint32_t mOutputEndFrame;
159 
160 }; // NTV2LLBurn
161 
162 #endif // _NTV2LLBURN_H
NTV2TaskMode
enum NTV2EveryFrameTaskMode NTV2TaskMode
NTV2LLBurn::SetupVideo
virtual AJAStatus SetupVideo(void)
Sets up everything I need for capturing and playing video.
Definition: ntv2llburn.cpp:166
ntv2devicefeatures.h
Declares device capability functions.
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.
NTV2Buffer
A generic user-space buffer object that has an address and a length. Used most often to share an arbi...
Definition: ntv2publicinterface.h:5993
systemtime.h
Declares the AJATime class.
NTV2DeviceID
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
Definition: ntv2enums.h:20
timecode.h
Declares the AJATimeCode class.
NTV2LLBurn::ProcessFrames
virtual void ProcessFrames(void)
Repeatedly captures, burns, and plays frames without using AutoCirculate (until global quit flag set)...
Definition: ntv2llburn.cpp:544
NTV2OutputDest
enum NTV2OutputDestination NTV2OutputDest
NTV2LLBurn::StartRunThread
virtual void StartRunThread(void)
Starts my main worker thread.
Definition: ntv2llburn.cpp:516
AJAThread
Definition: thread.h:69
timecodeburn.h
Declares the AJATimeCodeBurn class.
AJAStatus
AJAStatus
Definition: types.h:378
NTV2LLBurn::RunThreadStatic
static void RunThreadStatic(AJAThread *pThread, void *pContext)
This is the worker thread's static callback function that gets called when the thread runs....
Definition: ntv2llburn.cpp:527
process.h
Declares the AJAProcess class.
ULWord
uint32_t ULWord
Definition: ajatypes.h:253
ntv2devicescanner.h
Declares the CNTV2DeviceScanner class.
NTV2LLBurn::SetupAudio
virtual AJAStatus SetupAudio(void)
Sets up everything I need for capturing and playing audio.
Definition: ntv2llburn.cpp:358
NTV2LLBurn::InputSignalHasTimecode
virtual bool InputSignalHasTimecode(void)
Returns true if the current input signal has timecode embedded in it; otherwise returns false.
Definition: ntv2llburn.cpp:923
ntv2enums.h
Enumerations for controlling NTV2 devices.
ntv2utils.h
Declares numerous NTV2 utility functions.
CNTV2Card
I interrogate and control an AJA video/audio capture/playout device.
Definition: ntv2card.h:28
NTV2LLBurn::Run
virtual AJAStatus Run(void)
Runs me.
Definition: ntv2llburn.cpp:503
NTV2LLBurn::Init
virtual AJAStatus Init(void)
Initializes me and prepares me to Run.
Definition: ntv2llburn.cpp:80
NTV2LLBurn::RouteInputSignal
virtual void RouteInputSignal(void)
Sets up board routing for capture.
Definition: ntv2llburn.cpp:427
NTV2ChannelSet
std::set< NTV2Channel > NTV2ChannelSet
A set of distinct NTV2Channel values.
Definition: ntv2publicinterface.h:3854
NTV2LLBurn::Quit
virtual void Quit(void)
Gracefully stops me from running.
Definition: ntv2llburn.cpp:69
NTV2LLBurn::~NTV2LLBurn
virtual ~NTV2LLBurn()
Definition: ntv2llburn.cpp:48
ntv2democommon.h
This file contains some structures, constants, classes and functions that are used in some of the dem...
videotypes.h
Declares the enumeration constants used in the ajabase library.
NTV2LLBurn
Captures video and audio from a signal provided to an input of an AJA device, burns timecode into the...
Definition: ntv2llburn.h:32
NTV2LLBurn::NTV2LLBurn
NTV2LLBurn(const BurnConfig &inConfig)
Constructs me using the given configuration settings.
Definition: ntv2llburn.cpp:31
NTV2VideoFormat
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
NTV2LLBurn::GetStatus
virtual void GetStatus(ULWord &outFramesProcessed, ULWord &outFramesDropped)
Provides status information about my input (capture) and output (playout) processes.
Definition: ntv2llburn.cpp:897
NTV2LLBurn::RouteOutputSignal
virtual void RouteOutputSignal(void)
Sets up board routing for playout.
Definition: ntv2llburn.cpp:449
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.
NTV2LLBurn::SetupHostBuffers
virtual AJAStatus SetupHostBuffers(void)
Sets up my circular buffers.
Definition: ntv2llburn.cpp:405
NTV2LLBurn::AnalogLTCInputHasTimecode
virtual bool AnalogLTCInputHasTimecode(void)
Returns true if there is a valid LTC signal on my device's primary analog LTC input port; otherwise r...
Definition: ntv2llburn.cpp:937