 |
libxcoder
5.2.0
|
Go to the documentation of this file.
29 #if __linux__ || __APPLE__
31 #include <sys/types.h>
49 static const char *ni_codec_format_str[] = {
"H.264",
"H.265",
"VP9",
"JPEG",
51 static const char *ni_dec_name_str[] = {
"h264_ni_quadra_dec",
"h265_ni_quadra_dec",
52 "vp9_ni_quadra_dec",
"jpeg_ni_quadra_dec"};
53 static const char *ni_enc_name_str[] = {
"h264_ni_quadra_enc",
"h265_ni_quadra_enc",
"empty",
54 "jpeg_ni_quadra_enc",
"av1_ni_quadra_enc"};
57 #define DYN_STR_BUF_CHUNK_SIZE 4096
80 char *tmp_char_ptr = NULL;
84 fprintf(stderr,
"ERROR: invalid param *dyn_str_buf\n");
98 formatted_len = vsnprintf(NULL, 0, fmt, tmp_vl);
103 add_buf_size = (formatted_len + 1) > avail_buf ?
117 fprintf(stderr,
"ERROR: strcat_dyn_buf() failed realloc()\n");
151 for (
int xcoder_index_1 = 0;
164 strcat_dyn_buf(&output_buf,
" Last ran firmware loader version: %.8s\n",
166 strcat_dyn_buf(&output_buf,
" NOR flash firmware loader version: %.8s\n",
170 strcat_dyn_buf(&output_buf,
" NOR flash firmware revision: %.8s\n",
174 "no, possible missing features" :
"yes");
185 strcat_dyn_buf(&output_buf,
" PixelFormats: yuv420p, yuv420p10le, nv12, p010le"
191 for (
int xcoder_index_2 = 0;
200 &(p_device->
xcoders[dev_type][xcoder_index_2]);
219 " Operations: Crop (ni_quadra_crop), Scale (ni_quadra_scale), Pad "
220 "(ni_quadra_pad), Overlay (ni_quadra_overlay)\n"
221 " Drawbox (ni_quadra_drawbox), Rotate (ni_quadra_rotate), XStack (ni_quadra_xstack)\n");
226 " Operations: ROI (ni_quadra_roi), Background Replace (ni_quadra_bg)\n");
236 ni_codec_format_str[p_device_info->
dev_cap[i]
241 ni_dec_name_str[p_device_info->
dev_cap[i]
243 ni_enc_name_str[p_device_info->
dev_cap[i]
273 printf(
"%s", output_buf.
str_buf);
287 for (
int xcoder_index_1 = 0;
299 strcat_dyn_buf(&output_buf,
" Last ran firmware loader version: %.8s\n",
301 strcat_dyn_buf(&output_buf,
" NOR flash firmware loader version: %.8s\n",
305 strcat_dyn_buf(&output_buf,
" NOR flash firmware revision: %.8s\n",
309 "no, possible missing features" :
"yes");
324 for (
int xcoder_index_2 = 0;
333 &(p_device->
xcoders[dev_type][xcoder_index_2]);
352 " Operations: Crop (ni_quadra_crop), Scale (ni_quadra_scale), Pad "
353 "(ni_quadra_pad), Overlay (ni_quadra_overlay)\n"
354 " Drawbox (ni_quadra_drawbox), Rotate (ni_quadra_rotate), XStack (ni_quadra_xstack)\n"
355 " Delogo (ni_quadra_delogo), Merge (ni_quadra_merge), Flip (ni_quadra_flip)\n"
356 " Drawtext (ni_quadra_drawtext)\n");
363 " Operations: ROI (ni_quadra_roi), Background Replace (ni_quadra_bg), Ai Pre-processing (ni_quadra_ai_pre)\n"
364 " Background Remove (ni_quadra_bgr), Hvsplus (ni_quadra_hvsplus)\n");
374 ni_codec_format_str[p_device_info->
dev_cap[i]
379 ni_dec_name_str[p_device_info->
dev_cap[i]
381 ni_enc_name_str[p_device_info->
dev_cap[i]
391 "yuv420p, yuv420p10le, nv12, p010le, ni_quad\n");
395 "yuvj420p, ni_quad\n");
410 "yuv420p, yuvj420p, yuv420p10le, nv12, p010le, ni_quad\n");
414 "yuvj420p, ni_quad\n");
449 printf(
"%s", output_buf.
str_buf);
464 for (
int xcoder_index_1 = 0;
469 strcat_dyn_buf(&output_buf,
" \"Device #%d\": [\n", xcoder_index_1);
471 "\t\t\"Serial number\": \"%.*s\",\n"
472 "\t\t\"Model number:\": \"%.*s\",\n"
473 "\t\t\"Last ran firmware loader version\": \"%.8s\",\n"
474 "\t\t\"NOR flash firmware loader version\": \"%.8s\",\n"
475 "\t\t\"Current firmware revision\": \"%.8s\",\n"
476 "\t\t\"NOR flash firmware revision\": \"%.8s\",\n"
477 "\t\t\"F/W & S/W compatibility\": \"%s\",\n"
478 "\t\t\"F/W branch\": \"%s\",\n"
479 "\t\t\"F/W commit time\": \"%s\",\n"
480 "\t\t\"F/W commit hash\": \"%s\",\n"
481 "\t\t\"F/W build time\": \"%s\",\n"
482 "\t\t\"F/W build id\": \"%s\",\n"
483 "\t\t\"DeviceID\": \"%s\",\n"
495 for (
int xcoder_index_2 = 0;
504 &(p_device->
xcoders[dev_type][xcoder_index_2]);
517 "\t\t\t\t\"MaxNumInstances\": %d,\n"
518 , p_device_info->
hw_id,
525 "\"Crop (ni_quadra_crop), Scale (ni_quadra_scale), Pad "
526 "(ni_quadra_pad), Overlay (ni_quadra_overlay), "
527 "Drawbox (ni_quadra_drawbox), Rotate (ni_quadra_rotate), "
528 "XStack (ni_quadra_xstack), Delogo (ni_quadra_delogo), "
529 "Merge (ni_quadra_merge), Flip (ni_quadra_flip), "
530 "Drawtext (ni_quadra_drawtext)\"\n");
538 "\t\t\t\t\t\t\"Computing Power\": \"int8 18 tops\",\n"
539 "\t\t\t\t\t\t\"Operations\": "
540 "\"ROI (ni_quadra_roi), Background Replace (ni_quadra_bg), "
541 "Ai Pre-processing (ni_quadra_ai_pre), "
542 "Background Remove (ni_quadra_bgr), Hvsplus (ni_quadra_hvsplus)\"\n");
554 strcat_dyn_buf(&output_buf,
"\t\t\t\t\"%s (%s) Capabilities\": [\n",
568 "\"yuv420p, yuv420p10le, nv12, p010le, ni_quad\",\n");
572 "\"yuvj420p, ni_quad\",\n");
587 "\"yuv420p, yuvj420p, yuv420p10le, nv12, p010le, ni_quad\",\n");
591 "\"yuvj420p, ni_quad\",\n");
598 strcat_dyn_buf(&output_buf,
"\t\t\t\t\t\t\"MaxResolution\": \"%dx%d\",\n"
599 "\t\t\t\t\t\t\"MinResolution\": \"%dx%d\""
608 strcat_dyn_buf(&output_buf,
",\n\t\t\t\t\t\t\"Profiles\": \"%s\"",
642 printf(
"%s", output_buf.
str_buf);
647 int32_t
main(
int argc,
char *argv[])
650 bool list_uninitialized =
false;
655 while ((opt =
getopt(argc, argv,
"ahvlo:")) != -1)
660 list_uninitialized =
true;
664 printf(
"-------- ni_rsrc_list v%s --------\n"
665 "Display information for NETINT hardware.\n"
667 "-a Print includes info for uninitialized cards.\n"
668 "-h Display this help and exit.\n"
669 "-v Print version info.\n"
670 "-o Output format. [text, full, json]\n"
672 "-l Set loglevel of libxcoder API.\n"
673 " [none, fatal, error, info, debug, trace]\n"
678 printf(
"Release ver: %s\n"
691 fprintf(stderr,
"FATAL: invalid log level selected: %s\n",
698 if (!strcmp(
optarg,
"text"))
702 else if (!strcmp(
optarg,
"full"))
706 else if (!strcmp(
optarg,
"json"))
712 fprintf(stderr,
"Error: unknown selection for outputFormat: %s\n",
optarg);
717 fprintf(stderr,
"FATAL: invalid arg '%c'\n", opt);
uint8_t serial_number[20]
ni_device_video_capability_t dev_cap[EN_CODEC_MAX]
ni_device_info_t xcoders[NI_DEVICE_TYPE_XCODER_MAX][NI_MAX_DEVICE_CNT]
struct dyn_str_buf dyn_str_buf_t
void print_json(ni_device_queue_t *p_device_queue, ni_session_context_t *p_session_context, int detail, ni_instance_mgr_detail_status_v1_t *detail_data_v1)
uint8_t fw_commit_hash[41]
void ni_log_set_level(ni_log_level_t level)
Set ni_log_level.
Public definitions for managing NETINT video processing devices.
int xcoder_cnt[NI_DEVICE_TYPE_XCODER_MAX]
#define NI_XCODER_REVISION
uint8_t fl_ver_nor_flash[8]
int strcat_dyn_buf(dyn_str_buf_t *dyn_str_buf, const char *fmt,...)
Accumulate string data in a dynamically sized buffer. This is useful to separate error messages from ...
void clear_dyn_str_buf(dyn_str_buf_t *dyn_str_buf)
int fw_ver_compat_warning
uint8_t fw_commit_time[26]
char dev_name[NI_MAX_DEVICE_NAME_LEN]
void print_text(ni_device_queue_t *coders, ni_session_context_t *sessionCtxt, int detail, ni_instance_mgr_detail_status_v1_t *detail_data_v1, ni_instance_mgr_detail_status_v1_t(*previous_detail_data_p)[NI_DEVICE_TYPE_XCODER_MAX], int checkInterval)
ni_log_level_t arg_to_ni_log_level(const char *arg_str)
Convert terminal arg string to ni_log_level_t.
uint8_t fw_rev_nor_flash[8]
char profiles_supported[NI_PROFILES_SUPP_STR_LEN]
uint8_t fl_ver_last_ran[8]
#define NI_SW_RELEASE_TIME
void ni_log(ni_log_level_t level, const char *fmt,...)
print log message using ni_log_callback
#define DYN_STR_BUF_CHUNK_SIZE
uint8_t fw_build_time[26]
int32_t main(int argc, char *argv[])
void print_full_text(ni_device_queue_t *p_device_queue, ni_session_context_t *p_session_context, int detail, ni_instance_mgr_detail_status_v1_t *detail_data_v1)
ni_retcode_t ni_rsrc_list_all_devices2(ni_device_t *p_device, bool list_uninitialized)
Grabs information for every initialized and uninitialized device.
int getopt(int argc, char *argv[], const char *optstring)
#define LIBXCODER_API_VERSION
@ NI_DEVICE_TYPE_XCODER_MAX
#define GET_XCODER_DEVICE_TYPE_STR(t)
ni_device_type_t device_type
Implementation of getopt() and getopt_long() for Windows environment.
uint8_t fw_branch_name[256]
char level[NI_LEVELS_SUPP_STR_LEN]