AJA NTV2 SDK  17.1.1.1245
NTV2 SDK 17.1.1.1245
main.cpp
Go to the documentation of this file.
1 /* SPDX-License-Identifier: MIT */
8 // Includes
9 #include "ntv2utils.h"
10 #include "ajatypes.h"
11 #include "ntv2m31publicinterface.h"
14 #include "ntv2encodehevc.h"
15 #include <signal.h>
16 #include <iostream>
17 #include <iomanip>
18 
19 using namespace std;
20 
21 
22 // Globals
23 static const M31VideoPreset kCodecPreset[] = {
27 
31 
42 
53 
62 
71 
80 
84 
93 
102 
108 
112 
116 
120 
123 
127 
131 
135 };
136 
142 };
143 
144 static const size_t gNumCodecPresets (sizeof(kCodecPreset)/sizeof(M31VideoPreset));
145 static const size_t gNumCodecFormats (sizeof(kCodecFormat)/sizeof(NTV2FrameBufferFormat));
146 static const size_t kNoSelection (1000000000);
147 static bool gGlobalQuit (false); // Set this "true" to exit gracefully
148 
149 
150 static void SignalHandler (int inSignal)
151 {
152  (void) inSignal;
153  gGlobalQuit = true;
154 }
155 
156 static int printPresets (void)
157 {
158  cout << "M31 Presets" << endl;
159  for (size_t ndx(0); ndx < gNumCodecPresets; ndx++)
160  {
161  const string presetStr (::NTV2M31VideoPresetToString (kCodecPreset[ndx], true));
162  if (!presetStr.empty())
163  cout << ndx << ": " << presetStr << endl;
164  }
165  return 0;
166 }
167 
168 static int printFormats (void)
169 {
170  cout << "M31 Formats" << endl;
171  for (size_t ndx(0); ndx < gNumCodecFormats; ndx++)
172  {
173  const string pixFormatStr (::NTV2FrameBufferFormatToString (kCodecFormat[ndx], true));
174  if (!pixFormatStr.empty())
175  cout << ndx << ": " << pixFormatStr << endl;
176  }
177  return 0;
178 }
179 
180 
181 int main (int argc, const char ** argv)
182 {
183  M31VideoPreset m31Preset (M31_NUMVIDEOPRESETS); // Codec preset
184  NTV2FrameBufferFormat pixelFormat (NTV2_FBF_NUMFRAMEBUFFERFORMATS); // Codec frame format
185  char * pWhatToList (AJA_NULL); // Value of --list argument
186  char * pDeviceSpec (AJA_NULL); // Device specifier string, if any
187  size_t codecFormat (kNoSelection); // Codec format index
188  size_t codecPreset (kNoSelection); // Codec preset index
189  ULWord channelNumber (1); // Number of the input channel to use
190  int codecQuad (0); // Codec quad mode
191  int timeCode (0); // Timecode burn mode
192  int tsiData (0); // Two sample interleave mode
193  int infoData (0); // Picture and encoded information
194  size_t maxFrames (kNoSelection); // Maximum number of catpured frames
195  UWord audioChannels (0); // Number of audio channels
196  poptContext optionsContext; // Context for parsing command line arguments
197 
198  AJADebug::Open();
199 
200  // Command line option descriptions:
201  const struct poptOption userOptionsTable [] =
202  {
203  {"audio", 'a', POPT_ARG_SHORT, &audioChannels, 0, "number of audio channels", "1-16"},
204  {"device", 'd', POPT_ARG_STRING, &pDeviceSpec, 0, "device to use", "index#, serial#, or model"},
205  {"channel", 'c', POPT_ARG_INT, &channelNumber, 0, "channel to use", "1-4"},
206  {"format", 'f', POPT_ARG_INT, &codecFormat, 0, "format to use", "use '-lf' for list"},
207  {"preset", 'p', POPT_ARG_INT, &codecPreset, 0, "codec preset to use", "use '-lp' for list"},
208  {"quad", 'q', POPT_ARG_NONE, &codecQuad, 0, "interpret 4 inputs as UHD", ""},
209  {"list", 'l', POPT_ARG_STRING, &pWhatToList, 0, "list options", "p or f (presets or formats)"},
210  {"tcb", 'b', POPT_ARG_NONE, &timeCode, 0, "add timecode burn to video", ""},
211  {"tsi", 't', POPT_ARG_NONE, &tsiData, 0, "two sample interleave mode", ""},
212  {"info", 'i', POPT_ARG_NONE, &infoData, 0, "write encoded info file", ""},
213  {"maxframes", 'x', POPT_ARG_INT |
214  POPT_ARGFLAG_OPTIONAL, &maxFrames, 0, "limit output file frames", ""},
217  };
218 
219  // Read command line arguments...
220  optionsContext = ::poptGetContext (AJA_NULL, argc, argv, userOptionsTable, 0);
221  ::poptGetNextOpt (optionsContext);
222  optionsContext = ::poptFreeContext (optionsContext);
223 
224  if (pWhatToList && string(pWhatToList) == "p")
225  return printPresets ();
226  else if (pWhatToList && string(pWhatToList) == "f")
227  return printFormats ();
228  else if (pWhatToList)
229  {cerr << "## ERROR: Invalid argument to --list option, expected 'p' or 'f'" << endl; return 2;}
230 
231  if ((codecFormat != kNoSelection) && (codecFormat >= int(gNumCodecFormats)))
232  {cerr << "## ERROR: Invalid M31 format " << codecFormat << " -- expected 0 thru " << (gNumCodecFormats) << endl; return 2;}
233 
234  if (codecFormat < int(gNumCodecFormats))
235  pixelFormat = kCodecFormat[codecFormat];
236 
237  if ((codecPreset != kNoSelection) && (codecPreset >= int(gNumCodecPresets)))
238  {cerr << "## ERROR: Invalid M31 preset " << codecPreset << " -- expected 0 thru " << (gNumCodecPresets) << endl; return 2;}
239 
240  if (codecPreset < int(gNumCodecPresets))
241  m31Preset = kCodecPreset[codecPreset];
242 
243  const NTV2Channel inputChannel (::GetNTV2ChannelForIndex(channelNumber - 1));
244  if (!NTV2_IS_VALID_CHANNEL(inputChannel) || inputChannel > NTV2_CHANNEL4)
245  {cerr << "## ERROR: Invalid channel number " << channelNumber << " -- expected 1 thru 4" << endl; return 2;}
246 
247  ::signal (SIGINT, SignalHandler);
248  #if defined (AJAMac)
249  ::signal (SIGHUP, SignalHandler);
250  ::signal (SIGQUIT, SignalHandler);
251  #endif
252 
253  // Instantiate the NTV2Capture object, using the specified AJA device...
254  const uint32_t hevcMaxFrames (maxFrames >= kNoSelection ? 0xffffffff : uint32_t(maxFrames));
255  NTV2EncodeHEVC hevcEncoder (pDeviceSpec ? string (pDeviceSpec) : "0", inputChannel,
256  m31Preset, pixelFormat, codecQuad ? true : false,
257  audioChannels, timeCode ? true : false,
258  infoData ? true : false, tsiData ? true : false, hevcMaxFrames);
259 
260  // Initialize the NTV2Capture instance...
261  if (AJA_FAILURE(hevcEncoder.Init()))
262  {cerr << "## ERROR: Initialization failed" << endl; return 1;}
263 
264  cout << endl
265  << "Capture: " << ::NTV2M31VideoPresetToString (hevcEncoder.GetCodecPreset(), false) << endl
266  << endl;
267 
268  // Run the capturer...
269  hevcEncoder.Run();
270 
271  cout << " Capture Capture" << endl
272  << " Frames Frames Buffer" << endl
273  << "Processed Dropped Level" << endl;
274 
275  // Loop til time to stop...
276  do
277  {
278  AVHevcStatus inputStatus;
279  hevcEncoder.GetStatus(inputStatus);
280  cout << setw(9) << inputStatus.framesProcessed
281  << setw(9) << inputStatus.framesDropped
282  << setw(9) << inputStatus.bufferLevel
283  << "\r" << flush;
284  AJATime::Sleep(1000);
285  } while (!gGlobalQuit);
286  cout << endl;
287 
288  // Quit the capturer...
289  hevcEncoder.Quit();
290 
291  return 0;
292 
293 } // main
gNumCodecFormats
static const size_t gNumCodecFormats(sizeof(kCodecFormat)/sizeof(NTV2FrameBufferFormat))
M31_FILE_3840X2160_420_8_5994p
@ M31_FILE_3840X2160_420_8_5994p
Definition: ntv2m31enums.h:95
M31_FILE_1280X720_420_8_60p
@ M31_FILE_1280X720_420_8_60p
Definition: ntv2m31enums.h:36
M31_FILE_1920X1080_422_10_24p
@ M31_FILE_1920X1080_422_10_24p
Definition: ntv2m31enums.h:60
M31_FILE_1920X1080_420_8_50i
@ M31_FILE_1920X1080_420_8_50i
Definition: ntv2m31enums.h:52
NTV2_FBF_NUMFRAMEBUFFERFORMATS
@ NTV2_FBF_NUMFRAMEBUFFERFORMATS
Definition: ntv2enums.h:244
M31_FILE_2048X1080_422_10_50p
@ M31_FILE_2048X1080_422_10_50p
Definition: ntv2m31enums.h:85
GetNTV2ChannelForIndex
NTV2Channel GetNTV2ChannelForIndex(const ULWord inIndex0)
Definition: ntv2utils.cpp:4755
NTV2_FBF_10BIT_YCBCR_420PL2
@ NTV2_FBF_10BIT_YCBCR_420PL2
10-Bit 4:2:0 2-Plane YCbCr
Definition: ntv2enums.h:239
POPT_ARG_SHORT
#define POPT_ARG_SHORT
Definition: options_popt.h:76
M31_VIF_3840X2160_422_10_50p
@ M31_VIF_3840X2160_422_10_50p
Definition: ntv2m31enums.h:174
M31_FILE_3840X2160_420_8_60p
@ M31_FILE_3840X2160_420_8_60p
Definition: ntv2m31enums.h:96
M31_FILE_3840X2160_420_8_50p
@ M31_FILE_3840X2160_420_8_50p
Definition: ntv2m31enums.h:94
poptOption
Definition: options_popt.h:148
M31_VIF_3840X2160_420_10_50p
@ M31_VIF_3840X2160_420_10_50p
Definition: ntv2m31enums.h:169
M31_FILE_3840X2160_422_8_2997p
@ M31_FILE_3840X2160_422_8_2997p
Definition: ntv2m31enums.h:105
NTV2Channel
NTV2Channel
These enum values are mostly used to identify a specific widget_framestore. They're also commonly use...
Definition: ntv2enums.h:1305
gNumCodecPresets
static const size_t gNumCodecPresets(sizeof(kCodecPreset)/sizeof(M31VideoPreset))
M31_FILE_3840X2160_420_8_2997p
@ M31_FILE_3840X2160_420_8_2997p
Definition: ntv2m31enums.h:92
M31_FILE_4096X2160_422_10_50p
@ M31_FILE_4096X2160_422_10_50p
Definition: ntv2m31enums.h:122
M31_FILE_1920X1080_422_10_2398p
@ M31_FILE_1920X1080_422_10_2398p
Definition: ntv2m31enums.h:59
M31_FILE_1920X1080_422_10_60p
@ M31_FILE_1920X1080_422_10_60p
Definition: ntv2m31enums.h:69
M31_FILE_3840X2160_422_8_5994p
@ M31_FILE_3840X2160_422_8_5994p
Definition: ntv2m31enums.h:108
M31_FILE_3840X2160_422_10_5994p
@ M31_FILE_3840X2160_422_10_5994p
Definition: ntv2m31enums.h:117
M31_FILE_4096X2160_420_10_5994p
@ M31_FILE_4096X2160_420_10_5994p
Definition: ntv2m31enums.h:120
M31_FILE_2048X1080_422_10_5994p
@ M31_FILE_2048X1080_422_10_5994p
Definition: ntv2m31enums.h:86
systemtime.h
Declares the AJATime class.
M31_FILE_3840X2160_422_8_25p
@ M31_FILE_3840X2160_422_8_25p
Definition: ntv2m31enums.h:104
SignalHandler
void SignalHandler(int inSignal)
Definition: main.cpp:26
printFormats
static int printFormats(void)
Definition: main.cpp:168
M31_VIF_3840X2160_422_10_5994p
@ M31_VIF_3840X2160_422_10_5994p
Definition: ntv2m31enums.h:175
M31_FILE_3840X2160_420_8_30p
@ M31_FILE_3840X2160_420_8_30p
Definition: ntv2m31enums.h:93
M31_FILE_1920X1080_420_8_25p
@ M31_FILE_1920X1080_420_8_25p
Definition: ntv2m31enums.h:49
NTV2FrameBufferFormat
NTV2FrameBufferFormat
Identifies a particular video frame buffer format. See Device Frame Buffer Formats for details.
Definition: ntv2enums.h:207
M31_VIF_3840X2160_420_8_50p
@ M31_VIF_3840X2160_420_8_50p
Definition: ntv2m31enums.h:166
M31_VIF_1280X720_420_8_5994p
@ M31_VIF_1280X720_420_8_5994p
Definition: ntv2m31enums.h:142
main
int main(int argc, const char **argv)
Definition: main.cpp:30
M31_VIF_3840X2160_420_10_5994p
@ M31_VIF_3840X2160_420_10_5994p
Definition: ntv2m31enums.h:170
M31_FILE_2048X1080_420_8_60p
@ M31_FILE_2048X1080_420_8_60p
Definition: ntv2m31enums.h:78
NTV2EncodeHEVC
Instances of me capture frames in real time from a video signal provided to an input of an AJA device...
Definition: ntv2encodehevc.h:37
AVHevcStatus::framesDropped
ULWord framesDropped
Definition: ntv2demohevccommon.h:51
nlohmann::json_abiNLOHMANN_JSON_ABI_TAG_LEGACY_DISCARDED_VALUE_COMPARISON_v3_11_NLOHMANN_JSON_VERSION_PATCH::detail::void
j template void())
Definition: json.hpp:4893
POPT_ARG_INT
#define POPT_ARG_INT
Definition: options_popt.h:58
M31_VIF_3840X2160_420_8_5994p
@ M31_VIF_3840X2160_420_8_5994p
Definition: ntv2m31enums.h:167
poptContext_s
Definition: options_popt.cpp:289
ajatypes.h
Declares the most fundamental data types used by NTV2. Since Windows NT was the first principal devel...
M31_FILE_1920X1080_420_8_2398p
@ M31_FILE_1920X1080_420_8_2398p
Definition: ntv2m31enums.h:47
M31_FILE_3840X2160_420_10_60p
@ M31_FILE_3840X2160_420_10_60p
Definition: ntv2m31enums.h:100
gGlobalQuit
static bool gGlobalQuit((0))
M31_FILE_2048X1080_420_8_25p
@ M31_FILE_2048X1080_420_8_25p
Definition: ntv2m31enums.h:73
M31_FILE_1920X1080_422_10_50i
@ M31_FILE_1920X1080_422_10_50i
Definition: ntv2m31enums.h:64
NTV2_CHANNEL4
@ NTV2_CHANNEL4
Specifies channel or Frame Store 4 (or the 4th item).
Definition: ntv2enums.h:1310
M31_FILE_3840X2160_422_10_25p
@ M31_FILE_3840X2160_422_10_25p
Definition: ntv2m31enums.h:113
M31_FILE_3840X2160_422_10_30p
@ M31_FILE_3840X2160_422_10_30p
Definition: ntv2m31enums.h:115
M31_NUMVIDEOPRESETS
@ M31_NUMVIDEOPRESETS
Definition: ntv2m31enums.h:178
NTV2_FBF_8BIT_YCBCR_420PL2
@ NTV2_FBF_8BIT_YCBCR_420PL2
8-Bit 4:2:0 2-Plane YCbCr
Definition: ntv2enums.h:241
POPT_AUTOHELP
#define POPT_AUTOHELP
Definition: options_popt.h:220
M31_FILE_3840X2160_420_8_24p
@ M31_FILE_3840X2160_420_8_24p
Definition: ntv2m31enums.h:90
M31_VIF_1920X1080_420_8_50p
@ M31_VIF_1920X1080_420_8_50p
Definition: ntv2m31enums.h:149
printPresets
static int printPresets(void)
Definition: main.cpp:156
M31_FILE_3840X2160_422_10_2398p
@ M31_FILE_3840X2160_422_10_2398p
Definition: ntv2m31enums.h:111
M31_FILE_1920X1080_420_8_60p
@ M31_FILE_1920X1080_420_8_60p
Definition: ntv2m31enums.h:57
M31_VIF_1280X720_422_10_60p
@ M31_VIF_1280X720_422_10_60p
Definition: ntv2m31enums.h:146
AJATime::Sleep
static void Sleep(const int32_t inMilliseconds)
Suspends execution of the current thread for a given number of milliseconds.
Definition: systemtime.cpp:284
M31_FILE_2048X1080_422_10_60p
@ M31_FILE_2048X1080_422_10_60p
Definition: ntv2m31enums.h:87
M31_VIF_3840X2160_420_10_60p
@ M31_VIF_3840X2160_420_10_60p
Definition: ntv2m31enums.h:171
ULWord
uint32_t ULWord
Definition: ajatypes.h:253
M31_FILE_1280X720_422_10_5994p
@ M31_FILE_1280X720_422_10_5994p
Definition: ntv2m31enums.h:44
M31_VIF_1280X720_420_8_60p
@ M31_VIF_1280X720_420_8_60p
Definition: ntv2m31enums.h:143
M31_FILE_1920X1080_420_8_5994p
@ M31_FILE_1920X1080_420_8_5994p
Definition: ntv2m31enums.h:55
M31_FILE_1920X1080_422_10_30p
@ M31_FILE_1920X1080_422_10_30p
Definition: ntv2m31enums.h:63
NTV2M31VideoPresetToString
std::string NTV2M31VideoPresetToString(const M31VideoPreset inValue, const bool inForRetailDisplay=false)
Definition: ntv2utils.cpp:6982
M31_FILE_1920X1080_420_8_30p
@ M31_FILE_1920X1080_420_8_30p
Definition: ntv2m31enums.h:51
M31_VIF_1920X1080_420_10_60p
@ M31_VIF_1920X1080_420_10_60p
Definition: ntv2m31enums.h:159
M31_FILE_3840X2160_420_10_50p
@ M31_FILE_3840X2160_420_10_50p
Definition: ntv2m31enums.h:98
AVHevcStatus::bufferLevel
ULWord bufferLevel
Definition: ntv2demohevccommon.h:52
M31_VIF_1280X720_420_8_50p
@ M31_VIF_1280X720_420_8_50p
Definition: ntv2m31enums.h:141
ntv2m31publicinterface.h
Declares structs used for the Corvid HEVC.
UWord
uint16_t UWord
Definition: ajatypes.h:251
options_popt.h
ntv2utils.h
Declares numerous NTV2 utility functions.
NTV2EncodeHEVC::Run
virtual AJAStatus Run(void)
Runs me.
Definition: ntv2encodehevc.cpp:772
poptFreeContext
poptContext poptFreeContext(poptContext con)
Definition: options_popt.cpp:3539
M31_FILE_3840X2160_422_8_2398p
@ M31_FILE_3840X2160_422_8_2398p
Definition: ntv2m31enums.h:102
M31_FILE_1920X1080_422_10_25p
@ M31_FILE_1920X1080_422_10_25p
Definition: ntv2m31enums.h:61
M31_VIF_3840X2160_422_10_60p
@ M31_VIF_3840X2160_422_10_60p
Definition: ntv2m31enums.h:176
M31_FILE_3840X2160_422_10_50p
@ M31_FILE_3840X2160_422_10_50p
Definition: ntv2m31enums.h:116
M31_FILE_3840X2160_420_8_2398p
@ M31_FILE_3840X2160_420_8_2398p
Definition: ntv2m31enums.h:89
M31_FILE_3840X2160_422_8_60p
@ M31_FILE_3840X2160_422_8_60p
Definition: ntv2m31enums.h:109
M31_FILE_4096X2160_422_10_60p_IF
@ M31_FILE_4096X2160_422_10_60p_IF
Definition: ntv2m31enums.h:124
M31_FILE_1280X720_420_8_5994p
@ M31_FILE_1280X720_420_8_5994p
Definition: ntv2m31enums.h:35
NTV2_FBF_10BIT_YCBCR_422PL2
@ NTV2_FBF_10BIT_YCBCR_422PL2
10-Bit 4:2:2 2-Plane YCbCr
Definition: ntv2enums.h:240
M31_FILE_1920X1080_420_8_2997p
@ M31_FILE_1920X1080_420_8_2997p
Definition: ntv2m31enums.h:50
M31_FILE_2048X1080_420_8_50p
@ M31_FILE_2048X1080_420_8_50p
Definition: ntv2m31enums.h:76
M31VideoPreset
M31VideoPreset
Definition: ntv2m31enums.h:12
M31_FILE_3840X2160_422_8_50p
@ M31_FILE_3840X2160_422_8_50p
Definition: ntv2m31enums.h:107
POPT_ARGFLAG_OPTIONAL
#define POPT_ARGFLAG_OPTIONAL
Definition: options_popt.h:88
M31_FILE_2048X1080_420_8_2398p
@ M31_FILE_2048X1080_420_8_2398p
Definition: ntv2m31enums.h:71
M31_VIF_1280X720_422_10_50p
@ M31_VIF_1280X720_422_10_50p
Definition: ntv2m31enums.h:144
AJADebug::Open
static AJAStatus Open(bool incrementRefCount=false)
Definition: debug.cpp:44
AJA_NULL
#define AJA_NULL
Definition: ajatypes.h:197
NTV2_IS_VALID_CHANNEL
#define NTV2_IS_VALID_CHANNEL(__x__)
Definition: ntv2enums.h:1319
M31_FILE_1920X1080_420_8_24p
@ M31_FILE_1920X1080_420_8_24p
Definition: ntv2m31enums.h:48
M31_FILE_1920X1080_420_8_50p
@ M31_FILE_1920X1080_420_8_50p
Definition: ntv2m31enums.h:53
M31_FILE_3840X2160_422_10_24p
@ M31_FILE_3840X2160_422_10_24p
Definition: ntv2m31enums.h:112
M31_VIF_1920X1080_422_10_5994p
@ M31_VIF_1920X1080_422_10_5994p
Definition: ntv2m31enums.h:161
M31_FILE_4096X2160_420_10_60p
@ M31_FILE_4096X2160_420_10_60p
Definition: ntv2m31enums.h:121
poptGetContext
poptContext poptGetContext(const char *name, int argc, const char **argv, const struct poptOption *options, unsigned int flags)
Definition: options_popt.cpp:2264
M31_FILE_1280X720_422_10_50p
@ M31_FILE_1280X720_422_10_50p
Definition: ntv2m31enums.h:43
M31_FILE_3840X2160_422_8_30p
@ M31_FILE_3840X2160_422_8_30p
Definition: ntv2m31enums.h:106
M31_FILE_1920X1080_422_10_50p
@ M31_FILE_1920X1080_422_10_50p
Definition: ntv2m31enums.h:65
poptGetNextOpt
int poptGetNextOpt(poptContext con)
Definition: options_popt.cpp:3236
kNoSelection
static const size_t kNoSelection(1000000000)
M31_FILE_2048X1080_420_8_30p
@ M31_FILE_2048X1080_420_8_30p
Definition: ntv2m31enums.h:75
NTV2FrameBufferFormatToString
std::string NTV2FrameBufferFormatToString(const NTV2FrameBufferFormat inValue, const bool inForRetailDisplay=false)
Definition: ntv2utils.cpp:6940
M31_FILE_4096X2160_422_10_5994p_IF
@ M31_FILE_4096X2160_422_10_5994p_IF
Definition: ntv2m31enums.h:123
kCodecFormat
static const NTV2FrameBufferFormat kCodecFormat[]
Definition: main.cpp:137
std
Definition: json.hpp:5362
M31_FILE_2048X1080_420_8_2997p
@ M31_FILE_2048X1080_420_8_2997p
Definition: ntv2m31enums.h:74
POPT_TABLEEND
#define POPT_TABLEEND
Definition: options_popt.h:215
M31_FILE_2048X1080_422_10_30p
@ M31_FILE_2048X1080_422_10_30p
Definition: ntv2m31enums.h:84
NTV2EncodeHEVC::Init
virtual AJAStatus Init(void)
Initializes me and prepares me to Run.
Definition: ntv2encodehevc.cpp:259
AVHevcStatus
Definition: ntv2demohevccommon.h:48
NTV2EncodeHEVC::Quit
virtual void Quit(void)
Gracefully stops me from running.
Definition: ntv2encodehevc.cpp:181
M31_FILE_1280X720_422_10_60p
@ M31_FILE_1280X720_422_10_60p
Definition: ntv2m31enums.h:45
NTV2EncodeHEVC::GetStatus
virtual void GetStatus(AVHevcStatus &outStatus)
Provides status information about my input (capture) process.
Definition: ntv2encodehevc.cpp:1390
NTV2EncodeHEVC::GetCodecPreset
virtual M31VideoPreset GetCodecPreset(void)
Get the codec preset.
Definition: ntv2encodehevc.cpp:408
NTV2_FBF_8BIT_YCBCR_422PL2
@ NTV2_FBF_8BIT_YCBCR_422PL2
8-Bit 4:2:2 2-Plane YCbCr
Definition: ntv2enums.h:242
M31_FILE_1920X1080_422_10_2997p
@ M31_FILE_1920X1080_422_10_2997p
Definition: ntv2m31enums.h:62
M31_VIF_1280X720_422_10_5994p
@ M31_VIF_1280X720_422_10_5994p
Definition: ntv2m31enums.h:145
M31_FILE_3840X2160_422_10_2997p
@ M31_FILE_3840X2160_422_10_2997p
Definition: ntv2m31enums.h:114
M31_FILE_1920X1080_422_10_5994i
@ M31_FILE_1920X1080_422_10_5994i
Definition: ntv2m31enums.h:66
M31_FILE_3840X2160_422_10_60p
@ M31_FILE_3840X2160_422_10_60p
Definition: ntv2m31enums.h:118
M31_FILE_2048X1080_422_10_2398p
@ M31_FILE_2048X1080_422_10_2398p
Definition: ntv2m31enums.h:80
M31_FILE_3840X2160_422_8_24p
@ M31_FILE_3840X2160_422_8_24p
Definition: ntv2m31enums.h:103
M31_FILE_2048X1080_422_10_2997p
@ M31_FILE_2048X1080_422_10_2997p
Definition: ntv2m31enums.h:83
M31_VIF_1920X1080_420_8_5994p
@ M31_VIF_1920X1080_420_8_5994p
Definition: ntv2m31enums.h:151
M31_FILE_2048X1080_422_10_25p
@ M31_FILE_2048X1080_422_10_25p
Definition: ntv2m31enums.h:82
kCodecPreset
static const M31VideoPreset kCodecPreset[]
Definition: main.cpp:23
M31_FILE_1280X720_420_8_50p
@ M31_FILE_1280X720_420_8_50p
Definition: ntv2m31enums.h:34
AJA_FAILURE
#define AJA_FAILURE(_status_)
Definition: types.h:371
M31_FILE_1920X1080_422_10_5994p
@ M31_FILE_1920X1080_422_10_5994p
Definition: ntv2m31enums.h:67
M31_FILE_2048X1080_422_10_24p
@ M31_FILE_2048X1080_422_10_24p
Definition: ntv2m31enums.h:81
M31_FILE_1920X1080_420_8_5994i
@ M31_FILE_1920X1080_420_8_5994i
Definition: ntv2m31enums.h:54
AVHevcStatus::framesProcessed
ULWord framesProcessed
Definition: ntv2demohevccommon.h:50
M31_FILE_3840X2160_420_8_25p
@ M31_FILE_3840X2160_420_8_25p
Definition: ntv2m31enums.h:91
POPT_ARG_STRING
#define POPT_ARG_STRING
Definition: options_popt.h:57
ntv2encodehevc.h
Declares the NTV2EncodeHEVC class.
M31_VIF_1920X1080_422_10_60p
@ M31_VIF_1920X1080_422_10_60p
Definition: ntv2m31enums.h:163
M31_FILE_2048X1080_420_8_24p
@ M31_FILE_2048X1080_420_8_24p
Definition: ntv2m31enums.h:72
POPT_ARG_NONE
#define POPT_ARG_NONE
Definition: options_popt.h:56
M31_FILE_3840X2160_420_10_5994p
@ M31_FILE_3840X2160_420_10_5994p
Definition: ntv2m31enums.h:99
M31_VIF_3840X2160_420_8_60p
@ M31_VIF_3840X2160_420_8_60p
Definition: ntv2m31enums.h:168
M31_FILE_2048X1080_420_8_5994p
@ M31_FILE_2048X1080_420_8_5994p
Definition: ntv2m31enums.h:77