9 #ifndef _NTV2CCPLAYER_H 10 #define _NTV2CCPLAYER_H 21 #define SIG_AJA_STOP 31 // Our own user-defined "stop" signal 156 virtual void Quit (
const bool inQuitImmediately =
false);
170 virtual void GetStatus (
size_t & outMessagesQueued,
size_t & outBytesQueued,
171 size_t & outTotMsgsEnq,
size_t & outTotBytesEnq,
172 size_t & outTotMsgsDeq,
size_t & outTotBytesDeq,
173 size_t & outMaxQueDepth,
size_t & outDroppedFrames)
const;
234 bool mCaptionGeneratorQuit;
243 #endif // _NTV2CCPLAYER_H virtual AJAStatus Init(void)
Initializes me and prepares me to Run.
bool fSuppress608
If true, don't transmit CEA608 packets; otherwise include 608 packets.
static void PlayThreadStatic(AJAThread *pThread, void *pContext)
This is the playout thread's static callback function that gets called when the playout thread runs...
I am an object that can inject text captions into an SDI output of an AJA device in real time...
Declares the CNTV2CaptionEncoder708 class.
CaptionChanGenMap::const_iterator CaptionChanGenMapCIter
I interrogate and control an AJA video/audio capture/playout device.
_AtEndAction_
These are the actions that can be taken after the last file is "played".
NTV2TaskMode
Describes the task mode state. See also: Sharing AJA Devices With Other Applications.
enum _AtEndAction_ AtEndAction
These are the actions that can be taken after the last file is "played".
virtual void Quit(const bool inQuitImmediately=(0))
Stops me.
NTV2Line21Channel fCaptionChannel
The caption channel to use.
CCPlayerConfig CCPlayerConfig
Configures an NTV2CCPlayer instance.
std::vector< AJALabelValuePair > AJALabelValuePairs
An ordered sequence of label/value pairs.
Configures an NTV2CCPlayer instance.
bool fNewLinesAreNewRows
If true, newlines break caption rows; otherwise are treated as whitespace.
virtual void StartCaptionGeneratorThreads(void)
Starts my caption generator threads.
bool fSuppress708
If true, don't transmit CEA708 packets; otherwise include 708 packets.
virtual AJAStatus RouteOutputSignal(void)
Sets up signal routing for playout.
virtual AJAStatus SetUpOutputVideo(void)
Sets up everything I need to play video.
bool fSuppressLine21
SD output only: if true, do not encode Line 21 waveform; otherwise encode Line 21 waveform...
NTV2Line21Mode fCaptionMode
The CEA-608 caption mode to use.
std::ostream & operator<<(std::ostream &ioStrm, const CCPlayerConfig &inObj)
Repeat the file list (must Ctrl-C to terminate)
NTV2FrameRate
Identifies a particular video frame rate.
NTV2Standard
Identifies a particular video standard.
NTV2DeviceID
Identifies a specific AJA NTV2 device model number. The NTV2DeviceID is actually the PROM part number...
Declares the AJAThread class.
NTV2StringList fFilesToPlay
A list of zero or more strings containing paths to text files to be "played".
CEA-608 Character Attributes.
virtual AJAStatus Run(void)
Runs me.
TimecodeFormat NTV2FrameRate2TimecodeFormat(NTV2FrameRate inFrameRate)
virtual void GetStatus(size_t &outMessagesQueued, size_t &outBytesQueued, size_t &outTotMsgsEnq, size_t &outTotBytesEnq, size_t &outTotMsgsDeq, size_t &outTotBytesDeq, size_t &outMaxQueDepth, size_t &outDroppedFrames) const
Returns status information from my caption encoder.
std::vector< std::string > NTV2StringList
Caption channel 1, the primary caption channel.
CaptionChanGenMap fCapChanGenConfigs
Caption channel generator configs.
CaptionChanGenMap::iterator CaptionChanGenMapIter
virtual void StartPlayoutThread(void)
Starts my playout thread.
struct CCGenConfig CCGenConfig
This class is used to configure a caption generator for a single caption channel. ...
This class is used to configure a caption generator for a single caption channel. ...
NTV2Line21Attrs fAttributes
The character attributes to use.
Describes a user-space buffer on the host computer. I have an address and a length, plus some optional attributes (allocated by SDK?, page-aligned? etc.).
Declares the CNTV2CaptionEncoder608 class.
bool fEmitStats
If true, show stats while playing; otherwise echo caption text being played.
std::set< NTV2Channel > NTV2ChannelSet
A set of distinct NTV2Channel values.
static void CaptionGeneratorThreadStatic(AJAThread *pThread, void *pContext)
This is the caption generator thread's static callback function that gets called when the caption gen...
virtual bool DeviceAncExtractorIsAvailable(void)
Declares the AJASystemInfo class.
CCPlayerConfig(const std::string &inDeviceSpecifier="0")
Constructs a default CCPlayer configuration.
This is returned from the CNTV2Card::AutoCirculateGetStatus function.
double fCharsPerMinute
The rate at which caption characters get enqueued, in characters per minute.
4-row roll-up from bottom
AJAThreadList::const_iterator AJAThreadListConstIter
virtual void PlayoutFrames(void)
Repeatedly plays frames (until time to quit).
std::vector< AJAThread > AJAThreadList
virtual ~NTV2CCPlayer(void)
bool fSuppressTimecode
If true, suppress timecode; otherwise embed VITC/LTC.
std::string fTestPatternName
The test pattern to use.
This file contains some structures, constants, classes and functions that are used in some of the dem...
Configures an NTV2Player instance.
NTV2Line21Mode
The CEA-608 modes: pop-on, roll-up (2, 3 and 4-line), and paint-on.
AtEndAction fEndAction
The action to take after the file list has finished playing.
Continue to emit gray field on the device (must Ctrl-C to terminate)
std::map< NTV2InputXptID, NTV2OutputXptID > NTV2XptConnections
AJALabelValuePairs Get(void) const
virtual AJAStatus SetUpBackgroundPatternBuffer(void)
Sets up my gray background field.
virtual void GenerateCaptions(const NTV2Line21Channel inCCChannel)
This is the thread function that produces caption messages for a given caption channel.
std::map< NTV2Line21Channel, CCGenConfig > CaptionChanGenMap
NTV2Line21Channel
The CEA-608 caption channels: CC1 thru CC4, TX1 thru TX4, plus XDS.
uint16_t fForceRTP
BIT(0):0=normal,1=forceRTP BIT(1):0=uniPkt,1=multiPkt BIT(2):0=normal,1=patchDeviceID.
Declares several data types used with 608/SD captioning.
NTV2CCPlayer(const CCPlayerConfig &inConfigData)
Constructs me using the given configuration settings.
CCGenConfig()
Constructs a default generator configuration.
void SignalHandler(int inSignal)
AJALabelValuePairs Get(const bool inCompact=(0)) const