9 #ifndef _NTV2ENCODEHEVCVIFAC_H 10 #define _NTV2ENCODEHEVCVIFAC_H 28 #define VIDEO_RING_SIZE 60 29 #define AUDIO_RING_SIZE (3*VIDEO_RING_SIZE) 67 const bool inQuadMode =
false,
68 const uint32_t inAudioChannels = 0,
69 const bool inTimeCodeBurn =
false,
70 const bool inInfoData =
false,
71 const uint32_t inMaxFrames = 0xffffffff);
89 virtual void Quit (
void);
263 const std::string mDeviceSpecifier;
279 uint32_t mNumAudioChannels;
280 uint32_t mFileAudioChannels;
284 bool mLastFrameInput;
287 bool mLastFrameVideo;
288 bool mLastFrameAudio;
291 uint32_t mVideoBufferSize;
292 uint32_t mPicInfoBufferSize;
293 uint32_t mEncInfoBufferSize;
294 uint32_t mAudioBufferSize;
308 uint32_t mVideoInputFrameCount;
309 uint32_t mVideoProcessFrameCount;
310 uint32_t mCodecRawFrameCount;
311 uint32_t mCodecHevcFrameCount;
312 uint32_t mVideoFileFrameCount;
313 uint32_t mAudioFileFrameCount;
321 #endif // _NTV2ENCODEHEVCVIFAC_H NTV2AudioSystem
Used to identify an Audio System on an NTV2 device. See Audio System Operation for more information...
virtual AJAStatus Run(void)
Runs me.
virtual void StartVideoProcessThread(void)
Start the video process thread.
I interrogate and control an AJA video/audio capture/playout device.
NTV2FrameBufferFormat
Identifies a particular video frame buffer pixel format. See Device Frame Buffer Formats for details...
NTV2TaskMode
Describes the task mode state. See also: Sharing AJA Devices With Other Applications.
virtual void VideoInputWorker(void)
Repeatedly captures video frames using AutoCirculate and add them to the video input ring...
enum _NTV2VideoFormat NTV2VideoFormat
Identifies a particular video format.
virtual void StartVideoFileThread(void)
Start the video file writer thread.
virtual void AudioFileWorker(void)
Repeatedly removes audio samples from the audio input ring and writes them to the audio output file...
static void CodecRawThreadStatic(AJAThread *pThread, void *pContext)
This is the codec raw thread's static callback function that gets called when the thread starts...
Declares the AJATimeCodeBurn class.
virtual AJAStatus ProcessVideoFrame(AVHevcDataBuffer *pSrcFrame, AVHevcDataBuffer *pDstFrame, uint32_t frameNumber)
Default do-nothing function for processing the captured frames.
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
virtual void SetupAutoCirculate(void)
Initializes AutoCirculate.
virtual void VideoProcessWorker(void)
Repeatedly removes video frames from the video input ring, calls a custom video process method and ad...
virtual void VideoFileWorker(void)
Repeatedly removes hevc frame from the hevc ring and writes them to the hevc output file...
Declares the AJATimeBase class.
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
Enumerations for controlling NTV2 devices.
Declares the AJAThread class.
Instances of me capture frames in real time from a video signal provided to an input of an AJA device...
Utility class for timecodes.
static void VideoFileThreadStatic(AJAThread *pThread, void *pContext)
This is the video file writer thread's static callback function that gets called when the thread star...
virtual void SetupHostBuffers(void)
Sets up my circular buffers.
virtual void CodecRawWorker(void)
Repeatedly removes video frames from the raw video ring and transfers them to the codec...
virtual ~NTV2EncodeHEVCVifAc()
virtual void StartCodecHevcThread(void)
Start the codec hevc thread.
virtual AJAStatus Init(void)
Initializes me and prepares me to Run.
virtual void CodecHevcWorker(void)
Repeatedly transfers hevc frames from the codec and adds them to the hevc ring.
Declares the CNTV2DeviceScanner class.
virtual void Quit(void)
Gracefully stops me from running.
10-Bit 4:2:0 2-Plane YCbCr
NTV2InputSource
Identifies a specific video input source.
Declaration of AJACircularBuffer template class.
Declares the AJATimeCode class.
virtual void StartAudioFileThread(void)
Start the audio file writer thread.
static void CodecHevcThreadStatic(AJAThread *pThread, void *pContext)
This is the codec hevc thread's static callback function that gets called when the thread starts...
virtual void GetStatus(AVHevcStatus *outInputStatus)
Provides status information about my input (capture) process.
Specifies channel or FrameStore 1 (or the first item).
virtual AJAStatus SetupVideo(void)
Sets up everything I need for capturing video.
This structure encapsulates the video and audio buffers used by the HEVC demo applications. The demo programs that employ producer/consumer threads use a fixed number of these buffers.
virtual void RouteInputSignal(void)
Sets up device routing for capture.
NTV2EncodeHEVCVifAc(const std::string inDeviceSpecifier="0", const NTV2Channel inChannel=NTV2_CHANNEL1, const M31VideoPreset inM31Preset=M31_FILE_1280X720_420_8_5994p, const NTV2FrameBufferFormat inPixelFormat=NTV2_FBF_10BIT_YCBCR_420PL2, const bool inQuadMode=(0), const uint32_t inAudioChannels=0, const bool inTimeCodeBurn=(0), const bool inInfoData=(0), const uint32_t inMaxFrames=0xffffffff)
Constructs me using the given settings.
virtual void StartCodecRawThread(void)
Start the codec raw thread.
virtual void StartVideoInputThread(void)
Start the video input thread.
static void VideoProcessThreadStatic(AJAThread *pThread, void *pContext)
This is the video process thread's static callback function that gets called when the thread starts...
virtual AJAStatus SetupAudio(void)
Sets up everything I need for capturing audio.
This file contains some structures, constants, classes and functions that are used in some of the hev...
Declares the enumeration constants used in the ajabase library.
I am a circular frame buffer that simplifies implementing a type-safe producer/consumer model for pro...
static void AudioFileThreadStatic(AJAThread *pThread, void *pContext)
This is the audio file writer thread's static callback function that gets called when the thread star...
virtual M31VideoPreset GetCodecPreset(void)
Get the codec preset.
Declares device capability functions.
static void VideoInputThreadStatic(AJAThread *pThread, void *pContext)
This is the video input thread's static callback function that gets called when the thread starts...