 |
libxcoder
5.4.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");
152 for (
int xcoder_index_1 = 0;
165 strcat_dyn_buf(&output_buf,
" Last ran firmware loader version: %.8s\n",
167 strcat_dyn_buf(&output_buf,
" NOR flash firmware loader version: %.8s\n",
171 strcat_dyn_buf(&output_buf,
" NOR flash firmware revision: %.8s\n",
175 "no, possible missing features" :
"yes");
186 strcat_dyn_buf(&output_buf,
" PixelFormats: yuv420p, yuv420p10le, nv12, p010le"
192 for (
int xcoder_index_2 = 0;
201 &(p_device->
xcoders[dev_type][xcoder_index_2]);
220 " Operations: Crop (ni_quadra_crop), Scale (ni_quadra_scale), Pad "
221 "(ni_quadra_pad), Overlay (ni_quadra_overlay)\n"
222 " Drawbox (ni_quadra_drawbox), Rotate (ni_quadra_rotate), XStack (ni_quadra_xstack)\n");
227 " Operations: ROI (ni_quadra_roi), Background Replace (ni_quadra_bg)\n");
237 ni_codec_format_str[p_device_info->
dev_cap[i]
242 ni_dec_name_str[p_device_info->
dev_cap[i]
244 ni_enc_name_str[p_device_info->
dev_cap[i]
274 printf(
"%s", output_buf.
str_buf);
288 int ddr_module_id = -1;
289 for (
int xcoder_index_1 = 0;
301 strcat_dyn_buf(&output_buf,
" Last ran firmware loader version: %.8s\n",
303 strcat_dyn_buf(&output_buf,
" NOR flash firmware loader version: %.8s\n",
307 strcat_dyn_buf(&output_buf,
" NOR flash firmware revision: %.8s\n",
311 "no, possible missing features" :
"yes");
326 for (
int xcoder_index_2 = 0;
335 &(p_device->
xcoders[dev_type][xcoder_index_2]);
343 ddr_module_id = p_device_info->
module_id;
355 " Operations: Crop (ni_quadra_crop), Scale (ni_quadra_scale), Pad "
356 "(ni_quadra_pad), Overlay (ni_quadra_overlay)\n"
357 " Drawbox (ni_quadra_drawbox), Rotate (ni_quadra_rotate), XStack (ni_quadra_xstack)\n"
358 " Delogo (ni_quadra_delogo), Merge (ni_quadra_merge), Flip (ni_quadra_flip)\n"
359 " Drawtext (ni_quadra_drawtext)\n");
366 " Operations: ROI (ni_quadra_roi), Background Replace (ni_quadra_bg), Ai Pre-processing (ni_quadra_ai_pre)\n"
367 " Background Remove (ni_quadra_bgr), Hvsplus (ni_quadra_hvsplus)\n");
377 ni_codec_format_str[p_device_info->
dev_cap[i]
382 ni_dec_name_str[p_device_info->
dev_cap[i]
384 ni_enc_name_str[p_device_info->
dev_cap[i]
394 "yuv420p, yuv420p10le, nv12, p010le, ni_quad\n");
398 "yuvj420p, ni_quad\n");
413 "yuv420p, yuvj420p, yuv420p10le, nv12, p010le, ni_quad\n");
417 "yuvj420p, ni_quad\n");
450 if (ddr_module_id >= 0)
459 printf(
"%s", output_buf.
str_buf);
473 int ddr_module_id = -1;
475 for (
int xcoder_index_1 = 0;
480 strcat_dyn_buf(&output_buf,
" \"Device #%d\": [\n", xcoder_index_1);
482 "\t\t\"Serial number\": \"%.*s\",\n"
483 "\t\t\"Model number:\": \"%.*s\",\n"
484 "\t\t\"Last ran firmware loader version\": \"%.8s\",\n"
485 "\t\t\"NOR flash firmware loader version\": \"%.8s\",\n"
486 "\t\t\"Current firmware revision\": \"%.8s\",\n"
487 "\t\t\"NOR flash firmware revision\": \"%.8s\",\n"
488 "\t\t\"F/W & S/W compatibility\": \"%s\",\n"
489 "\t\t\"F/W branch\": \"%s\",\n"
490 "\t\t\"F/W commit time\": \"%s\",\n"
491 "\t\t\"F/W commit hash\": \"%s\",\n"
492 "\t\t\"F/W build time\": \"%s\",\n"
493 "\t\t\"F/W build id\": \"%s\",\n"
494 "\t\t\"DeviceID\": \"%s\",\n"
506 for (
int xcoder_index_2 = 0;
515 &(p_device->
xcoders[dev_type][xcoder_index_2]);
523 ddr_module_id = p_device_info->
module_id;
529 "\t\t\t\t\"MaxNumInstances\": %d,\n"
530 , p_device_info->
hw_id,
537 "\"Crop (ni_quadra_crop), Scale (ni_quadra_scale), Pad "
538 "(ni_quadra_pad), Overlay (ni_quadra_overlay), "
539 "Drawbox (ni_quadra_drawbox), Rotate (ni_quadra_rotate), "
540 "XStack (ni_quadra_xstack), Delogo (ni_quadra_delogo), "
541 "Merge (ni_quadra_merge), Flip (ni_quadra_flip), "
542 "Drawtext (ni_quadra_drawtext)\"\n");
550 "\t\t\t\t\t\t\"Computing Power\": \"int8 18 tops\",\n"
551 "\t\t\t\t\t\t\"Operations\": "
552 "\"ROI (ni_quadra_roi), Background Replace (ni_quadra_bg), "
553 "Ai Pre-processing (ni_quadra_ai_pre), "
554 "Background Remove (ni_quadra_bgr), Hvsplus (ni_quadra_hvsplus)\"\n");
566 strcat_dyn_buf(&output_buf,
"\t\t\t\t\"%s (%s) Capabilities\": [\n",
580 "\"yuv420p, yuv420p10le, nv12, p010le, ni_quad\",\n");
584 "\"yuvj420p, ni_quad\",\n");
599 "\"yuv420p, yuvj420p, yuv420p10le, nv12, p010le, ni_quad\",\n");
603 "\"yuvj420p, ni_quad\",\n");
610 strcat_dyn_buf(&output_buf,
"\t\t\t\t\t\t\"MaxResolution\": \"%dx%d\",\n"
611 "\t\t\t\t\t\t\"MinResolution\": \"%dx%d\""
620 strcat_dyn_buf(&output_buf,
",\n\t\t\t\t\t\t\"Profiles\": \"%s\"",
647 if (ddr_module_id >= 0)
649 strcat_dyn_buf(&output_buf,
"\t\t\"Memory #%d\": [\n", ddr_module_id);
652 "\t\t\t\t\"Size\": \"8GB\"\n");
663 printf(
"%s", output_buf.
str_buf);
668 int32_t
main(
int argc,
char *argv[])
671 bool list_uninitialized =
false;
676 while ((opt =
getopt(argc, argv,
"ahvlo:")) != -1)
681 list_uninitialized =
true;
685 printf(
"-------- ni_rsrc_list v%s --------\n"
686 "Display information for NETINT hardware.\n"
688 "-a Print includes info for uninitialized cards.\n"
689 "-h Display this help and exit.\n"
690 "-v Print version info.\n"
691 "-o Output format. [text, full, json]\n"
693 "-l Set loglevel of libxcoder API.\n"
694 " [none, fatal, error, info, debug, trace]\n"
699 printf(
"Release ver: %s\n"
712 fprintf(stderr,
"FATAL: invalid log level selected: %s\n",
719 if (!strcmp(
optarg,
"text"))
723 else if (!strcmp(
optarg,
"full"))
727 else if (!strcmp(
optarg,
"json"))
733 fprintf(stderr,
"Error: unknown selection for outputFormat: %s\n",
optarg);
738 fprintf(stderr,
"FATAL: invalid arg '%c'\n", opt);
uint8_t serial_number[20]
ni_retcode_t ni_strerror(char *dest, size_t dmax, int errnum)
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)
int ni_vsprintf(char *dest, const size_t dmax, const char *fmt, va_list args)
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]