|
AJA NTV2 SDK
17.1.3.1410
NTV2 SDK 17.1.3.1410
|
Go to the documentation of this file.
26 int main (
int argc,
const char ** argv)
33 int channelNumber (2);
34 int doMultiFormat (0);
47 {
"device",
'd',
POPT_ARG_STRING, &pDeviceSpec, 0,
"device to use",
"index#, serial#, or model" },
48 {
"channel",
'c',
POPT_ARG_INT, &channelNumber, 0,
"channel to use",
"2-4" },
50 {
"pixelFormat",
'p',
POPT_ARG_STRING, &pPixelFormat, 0,
"pixel format to use",
"'?' or 'list' to list" },
51 {
"frames", 0,
POPT_ARG_STRING, &pFramesSpec, 0,
"frames to AutoCirculate",
"num[@min] or min-max" },
52 {
"videoFormat",
'v',
POPT_ARG_STRING, &pVideoFormat, 0,
"video format to produce",
"'?' or 'list' to list" },
53 {
"dolby", 0,
POPT_ARG_STRING, &pDolbyFile, 0,
"dolby audio to play",
"path to binary file" },
64 {cerr <<
"## ERROR: " << popt.
errorStr() << endl;
return 2;}
66 {cout << argv[0] <<
", NTV2 SDK " <<
::NTV2Version() << endl;
return 0;}
68 const string deviceSpec (pDeviceSpec ? pDeviceSpec :
"0");
75 if ((channelNumber < 2) || (channelNumber > 4))
76 {cerr <<
"## ERROR: Invalid channel number " << channelNumber <<
" -- expected 2 thru 4" << endl;
return 1;}
80 const string videoFormatStr (pVideoFormat ? pVideoFormat :
"");
85 if (videoFormatStr ==
"?" || videoFormatStr ==
"list")
90 cerr <<
"## ERROR: Invalid '--videoFormat' value '" << videoFormatStr <<
"' -- expected values:" << endl
97 const string pixelFormatStr (pPixelFormat ? pPixelFormat :
"");
99 if (pixelFormatStr ==
"?" || pixelFormatStr ==
"list")
103 cerr <<
"## ERROR: Invalid '--pixelFormat' value '" << pixelFormatStr <<
"' -- expected values:" << endl
109 static const string legalFramesSpec (
"{frameCount}[@{firstFrameNum}] or {firstFrameNum}-{lastFrameNum}");
110 const string framesSpec (pFramesSpec ? pFramesSpec :
"");
111 if (!framesSpec.empty())
114 if (!parseResult.empty())
115 {cerr <<
"## ERROR: Bad 'frames' spec '" << framesSpec <<
"'\n## " << parseResult << endl;
return 1;}
118 {cerr <<
"## ERROR: Bad 'frames' spec '" << framesSpec <<
"'\n## Expected " << legalFramesSpec << endl;
return 1;}
120 if (noVideo && noAudio)
121 {cerr <<
"## ERROR: conflicting options '--novideo' and '--noaudio'" << endl;
return 1;}
123 if (noAudio && doRamp)
124 {cerr <<
"## ERROR: conflicting options '--noaudio' and '--ramp'" << endl;
return 1;}
126 if (noAudio && pDolbyFile)
127 {cerr <<
"## ERROR: conflicting options '--noaudio' and '--dolby'" << endl;
return 1;}
129 if (doRamp && pDolbyFile)
130 {cerr <<
"## ERROR: conflicting options '--ramp' and '--dolby'" << endl;
return 1;}
141 status = player.
Init();
143 {cout <<
"## ERROR: Initialization failed: " <<
::AJAStatusToString(status) << endl;
return 1;}
154 cout <<
" Playout Playout Frames" << endl
155 <<
" Frames Buffer Dropped" << endl;
static std::string GetVideoFormatStrings(const NTV2VideoFormatKinds inKinds=VIDEO_FORMATS_NON_4KUHD, const std::string inDeviceSpecifier=std::string())
bool fDoHDMIOutput
If true, enable HDMI output; otherwise, disable HDMI output.
std::string fDolbyFilePath
Optional path to Dolby audio source file.
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
void SignalHandler(int inSignal)
ULWord GetProcessedFrameCount(void) const
ULWord GetBufferLevel(void) const
int main(int argc, const char **argv)
virtual AJAStatus Run(void)
Runs me.
bool fDoMultiFormat
If true, enable device-sharing; otherwise take exclusive control of device.
Header file for NTV2DolbyPlayer demonstration class.
std::string setFromString(const std::string &inStr)
static NTV2VideoFormat GetVideoFormatFromString(const std::string &inStr, const NTV2VideoFormatKinds inKinds=VIDEO_FORMATS_NON_4KUHD)
Returns the NTV2VideoFormat that matches the given string.
static bool IsValidDevice(const std::string &inDeviceSpec)
I am similar to NTV2Player, but I demonstrate how to play/output 8 channels of audio tone (or ramp da...
NTV2ACFrameRange fFrames
AutoCirculate frame count or range.
static void Sleep(const int32_t inMilliseconds)
Suspends execution of the current thread for a given number of milliseconds.
This is returned from the CNTV2Card::AutoCirculateGetStatus function.
bool fSuppressAudio
If true, suppress audio; otherwise generate audio tone.
static NTV2FrameBufferFormat GetPixelFormatFromString(const std::string &inStr)
Returns the NTV2FrameBufferFormat that matches the given string.
bool fSuppressVideo
If true, suppress video; otherwise generate test patterns.
NTV2VideoFormat fVideoFormat
The video format to use.
NTV2Channel fOutputChannel
The device channel to use.
virtual const std::string & errorStr(void) const
Configures an NTV2DolbyPlayer instance.
std::string NTV2Version(const bool inDetailed=false)
static AJAStatus Open(bool incrementRefCount=false)
@ NTV2_FBF_10BIT_YCBCR
See 10-Bit YCbCr Format.
@ VIDEO_FORMATS_NON_4KUHD
static bool gGlobalQuit((0))
std::string AJAStatusToString(const AJAStatus inStatus, const bool inDetailed)
ULWord GetDroppedFrameCount(void) const
static std::string GetPixelFormatStrings(const NTV2PixelFormatKinds inKinds=PIXEL_FORMATS_ALL, const std::string inDeviceSpecifier=std::string())
virtual AJAStatus Init(void)
Initializes me and prepares me to Run.
NTV2PixelFormat fPixelFormat
The pixel format to use.
#define NTV2_IS_VALID_FRAME_BUFFER_FORMAT(__s__)
#define AJA_FAILURE(_status_)
virtual void GetACStatus(AUTOCIRCULATE_STATUS &outStatus)
Provides status information about my output (playout) process.
bool fDoRamp
If true, use audio ramp pattern instead of tone.