AJA NTV2 SDK  17.0.1.1246
NTV2 SDK 17.0.1.1246
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 }; // NTV2LLBurn
156 
157 #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:165
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:5967
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:503
NTV2OutputDest
enum NTV2OutputDestination NTV2OutputDest
NTV2LLBurn::StartRunThread
virtual void StartRunThread(void)
Starts my main worker thread.
Definition: ntv2llburn.cpp:475
AJAThread
Definition: thread.h:69
timecodeburn.h
Declares the AJATimeCodeBurn class.
AJAStatus
AJAStatus
Definition: types.h:365
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:486
process.h
Declares the AJAProcess class.
ULWord
uint32_t ULWord
Definition: ajatypes.h:246
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:317
NTV2LLBurn::InputSignalHasTimecode
virtual bool InputSignalHasTimecode(void)
Returns true if the current input signal has timecode embedded in it; otherwise returns false.
Definition: ntv2llburn.cpp:882
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:262
NTV2LLBurn::Run
virtual AJAStatus Run(void)
Runs me.
Definition: ntv2llburn.cpp:462
NTV2LLBurn::Init
virtual AJAStatus Init(void)
Initializes me and prepares me to Run.
Definition: ntv2llburn.cpp:79
NTV2LLBurn::RouteInputSignal
virtual void RouteInputSignal(void)
Sets up board routing for capture.
Definition: ntv2llburn.cpp:386
NTV2ChannelSet
std::set< NTV2Channel > NTV2ChannelSet
A set of distinct NTV2Channel values.
Definition: ntv2publicinterface.h:3823
NTV2LLBurn::Quit
virtual void Quit(void)
Gracefully stops me from running.
Definition: ntv2llburn.cpp:68
NTV2LLBurn::~NTV2LLBurn
virtual ~NTV2LLBurn()
Definition: ntv2llburn.cpp:47
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:30
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:856
NTV2LLBurn::RouteOutputSignal
virtual void RouteOutputSignal(void)
Sets up board routing for playout.
Definition: ntv2llburn.cpp:408
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:3809
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:364
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:896