8 #ifndef _NTV2FIELDBURN_H 9 #define _NTV2FIELDBURN_H 58 virtual void Quit (
void);
167 #endif // _NTV2FIELDBURN_H virtual AJAStatus SetupAudio(void)
Sets up everything I need for capturing and playing audio.
NTV2AudioSystem
Used to identify an Audio System on an NTV2 device. See Audio System Operation for more information...
Declares common types used in the ajabase library.
I interrogate and control an AJA video/audio capture/playout device.
NTV2TaskMode
Describes the task mode state. See also: Sharing AJA Devices With Other Applications.
virtual AJAStatus Run(void)
Runs me.
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
virtual void StartCaptureThread(void)
Starts my capture thread.
virtual void RouteOutputSignal(void)
Sets up board routing for playout.
Declares the AJATimeCodeBurn class.
virtual AJAStatus SetupHostBuffers(void)
Sets up my circular buffers.
virtual void RouteInputSignal(void)
Sets up board routing for capture.
static void PlayThreadStatic(AJAThread *pThread, void *pContext)
This is the playout thread's static callback function that gets called when the playout thread runs...
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
Declares the AJAThread class.
virtual void CaptureFrames(void)
Repeatedly captures frames using AutoCirculate (until global quit flag set).
virtual AJAStatus Init(void)
Initializes me and prepares me to Run.
NTV2FieldBurn(const BurnConfig &inConfig)
Constructs me using the given configuration settings.
I capture individual fields from an interlaced video signal provided to an SDI input. Each frame is captured as two fields in separate host buffers. I burn F1 timecode into the top of F1, and F2 timecode into the bottom half of F2. Then I reassemble both fields and play them through an output of the same device, with a 7-frame latency (by default). I make use of the AJACircularBuffer, which simplifies implementing a producer/consumer model, in which a "consumer" thread delivers burned-in frames to the AJA device output, and a "producer" thread captures raw frames from the AJA device input. I also demonstrate how to detect if an SDI input has embedded timecode, and if so, how AutoCirculate makes it available. I also show how to embed timecode into an SDI output signal using AutoCirculate during playout.
Configures an NTV2Burn or NTV2FieldBurn instance.
std::vector< NTV2FrameData > NTV2FrameDataArray
A vector of NTV2FrameData elements.
Declaration of AJACircularBuffer template class.
virtual AJAStatus SetupVideo(void)
Sets up everything I need for capturing and playing video.
virtual void GetStatus(ULWord &outNumProcessed, ULWord &outCaptureDrops, ULWord &outPlayoutDrops, ULWord &outCaptureLevel, ULWord &outPlayoutLevel)
Provides status information about my input (capture) and output (playout) processes.
Declares the CNTV2Card class.
virtual void Quit(void)
Gracefully stops me from running.
enum NTV2OutputDestination NTV2OutputDest
This file contains some structures, constants, classes and functions that are used in some of the dem...
std::vector< NTV2Channel > NTV2ChannelList
An ordered sequence of NTV2Channel values.
virtual void PlayFrames(void)
Repeatedly plays out frames using AutoCirculate (until global quit flag set).
static void CaptureThreadStatic(AJAThread *pThread, void *pContext)
This is the capture thread's static callback function that gets called when the capture thread runs...
virtual bool InputSignalHasTimecode(void)
Returns true if the current input signal has timecode embedded in it; otherwise returns false...
virtual void StartPlayThread(void)
Starts my playout thread.