33 0x00, 0x00, 0x00, 0x01,
52 0x00, 0x00, 0x00, 0x01,
69 0x00, 0x00, 0x00, 0x01,
86 0x00, 0x00, 0x00, 0x01,
117 __FUNCTION__, __LINE__);
181 __FUNCTION__, __LINE__);
193 "their load, and exit ...\n");
199 ni_logan_enc_context_init(p_enc_ctx);
232 if (!p_encoder_params)
283 __FUNCTION__, __LINE__);
294 free(p_encoder_params);
322 __FUNCTION__, __LINE__);
329 if (!p_session_ctx || !p_encoder_params)
332 __FUNCTION__, __LINE__, p_session_ctx, p_encoder_params);
358 if(xcoder_high_priority != 0)
552 __FUNCTION__, __LINE__, ret);
618 return (recv < 0 ? recv : ret);
641 int linesize_aligned = 0;
642 int height_aligned = 0;
643 int video_full_range_flag = 0;
699 linesize_aligned = ((frame_width + 7) / 8) * 8;
702 linesize_aligned = ((frame_width + 15) / 16) * 16;
713 else if (linesize_aligned > frame_width)
719 height_aligned = ((frame_height + 7) / 8) * 8;
721 height_aligned = ((frame_height + 15) / 16) * 16;
730 else if (height_aligned > frame_height)
740 color_primaries = color_trc = color_space = 2;
741 video_full_range_flag = 1;
749 video_full_range_flag = 1;
767 color_primaries, color_trc, color_space,
768 video_full_range_flag, p_enc_ctx->
sar_num,
771 "color_trc: %d color_space %d sar %d/%d\n",
772 color_primaries, color_trc, color_space,
779 color_primaries, color_trc, color_space,
780 video_full_range_flag, p_enc_ctx->
sar_num,
792 __FUNCTION__, __LINE__, ret);
826 __FUNCTION__, __LINE__, p_enc_ctx, p_enc_ctx->
p_session_ctx);
838 __FUNCTION__, __LINE__, ret);
883 ni_log(
NI_LOG_TRACE,
"%s(): encoder reset flow or sequence change flow.\n", __FUNCTION__);
922 ni_logan_enc_context_init(p_enc_ctx);
947 "when encode reinit\n", __FUNCTION__);
1006 "resolution changes again, left cnt=%d\n",
1013 "buffer full, left cnt=%d\n",
1046 __FUNCTION__, __LINE__, p_enc_ctx, p_enc_ctx->
p_session_ctx,
1068 else if (p_session_ctx->
frame_num >= 200)
1125 int send_sei_with_idr = 0;
1131 __FUNCTION__, __LINE__, p_enc_ctx, p_enc_ctx->
p_session_ctx,
1163 mdcv_data, cll_data, cc_data, udu_data, hdrp_data);
1184 src_height[1] = src_height[2] = src_height[0] / 2;
1190 dst_stride, dst_height_aligned);
1200 if (!p_ni_frame->
p_data[0])
1208 "buffered_fme.linesize=%d/%d/%d, dst alloc linesize = %d/%d/%d, "
1209 "src height = %d/%d%d, dst height aligned = %d/%d/%d, "
1210 "ctx->api_fme.force_key_frame=%d, extra_data_len=%d sei_size=%u "
1211 "(hdr_content_light_level %u hdr_mastering_display_color_vol %u "
1212 "hdr10+ %u cc %u udu %u prefC %u) "
1213 "reconf_size=%u roi_size=%u force_pic_qp=%u "
1214 "use_cur_src_as_long_term_pic %u use_long_term_ref %u\n",
1215 __FUNCTION__, p_ni_frame->
data_len[0], linesize[0], linesize[1],
1216 linesize[2], dst_stride[0], dst_stride[1], dst_stride[2],
1217 src_height[0], src_height[1], src_height[2],
1218 dst_height_aligned[0], dst_height_aligned[1], dst_height_aligned[2],
1239 dst_stride, dst_height_aligned,
1240 linesize, src_height);
1243 "len:0:%d 1:%d 2:%d\n",
1254 cc_data, udu_data, hdrp_data);
1280 __FUNCTION__, __LINE__, p_enc_ctx, p_enc_ctx->
p_session_ctx,
1329 "when sequence changed\n", __FUNCTION__);
1334 "%dx%d to %dx%d\n", __FUNCTION__, p_session_ctx->
frame_num,
1342 "orig WxH=%dx%d, crop=%d,%d,%d,%d, pict_type=%d, key_frame=%d, "
1343 "buffer_size=%d, data_len=%d,%d,%d,%d\n", __FUNCTION__,
1363 "sei_hdr_mastering_display_color_vol=%d-%d, sei_hdr_plus=%d-%d, "
1364 "sei_hdr_content_light_level_info=%d-%d, sei_user_data_unreg=%d-%d, "
1365 "sei_alt_transfer_characteristics=%d-%d, vui=%d-%d, roi_len=%d, "
1366 "reconf_len=%d, extra_data_len=%d\n", __FUNCTION__,
1409 __FUNCTION__, p_session_ctx->
frame_num);
1415 "when vpu recovery happened\n", __FUNCTION__);
1417 ret = ni_logan_encode_reinit(p_enc_ctx);
1421 "EIO\n", __FUNCTION__, sent);
1429 __FUNCTION__, sent);
1443 " returning EAGAIN\n", __FUNCTION__);
1449 __FUNCTION__, p_session_ctx->
frame_num);
1454 "when wirte buffer full\n", __FUNCTION__);
1500 __FUNCTION__, __LINE__, p_enc_ctx, p_enc_ctx->
p_session_ctx,
1512 const uint8_t *p_start_code;
1514 uint32_t copy_len = 0;
1515 uint8_t *p_src = (uint8_t*)p_output_pkt->
p_data + meta_size;
1516 uint8_t *p_end = p_src + (p_output_pkt->
data_len - meta_size);
1517 int64_t local_pts = p_output_pkt->
pts;
1518 int custom_sei_cnt = 0;
1532 p_start_code = p_src;
1539 nalu_type = (stc >> 1) & 0x3F;
1540 }
while (nalu_type > 21);
1543 copy_len = p_start_code - 5 - p_src;
1551 nalu_type = stc & 0x1F;
1552 }
while (nalu_type > 5);
1555 copy_len = p_start_code - 5 - p_src;
1564 uint8_t *p_dst = p_data;
1573 memcpy(p_dst, p_src, copy_len);
1578 while (sei_idx < custom_sei_cnt)
1580 ni_logan_custom_sei = &ni_logan_all_custom_sei->
ni_custom_sei[sei_idx];
1591 memcpy(p_dst, p_src + copy_len,
1592 p_output_pkt->
data_len - meta_size - copy_len);
1593 p_dst += (p_output_pkt->
data_len - meta_size - copy_len);
1596 while (sei_idx < custom_sei_cnt)
1598 ni_logan_custom_sei = &ni_logan_all_custom_sei->
ni_custom_sei[sei_idx];
1606 memcpy(p_dst, (uint8_t*)p_output_pkt->
p_data + meta_size,
1607 p_output_pkt->
data_len - meta_size);
1618 pts = p_output_pkt->
pts;
1639 if (dts < p_enc_ctx->latest_dts)
1655 p_output_pkt->
pts = pts;
1656 p_output_pkt->
dts = dts;
1658 "dts %" PRId64
" \n", __FUNCTION__,
1659 p_session_ctx->
pkt_num - 1, pts, dts);
1668 "and will reopen codec !\n", __FUNCTION__);
1669 ret = ni_logan_encode_reinit(p_enc_ctx);
1714 __FUNCTION__, __LINE__, p_enc_ctx, p_enc_ctx->
p_session_ctx,
1731 "recv=%d, encoder_flushing=%d, encoder_eof=%d\n",
1746 "AVERROR(EAGAIN) and will reopen codec!\n", __FUNCTION__);
1747 ret = ni_logan_encode_reinit(p_enc_ctx);
1769 ret = ni_logan_encode_reinit(p_enc_ctx);
1773 "returning EIO\n", __FUNCTION__, ret);
1784 "invalid session id\n", __FUNCTION__);
1790 "returning EIO,ret=%d\n", __FUNCTION__, recv);
1800 "pkt arrives\n", __FUNCTION__);
1809 ni_log(
NI_LOG_TRACE,
"%s: low delay mode 2, keep reading send frame %d receive pkt %d gop %d\n",
1842 "AVERROR(EAGAIN)\n", __FUNCTION__);
1864 p_output_pkt->
data_len - meta_size);
1872 "1ast pkt arrives\n", __FUNCTION__);
1882 const uint8_t *p_start_code;
1884 uint32_t copy_len = 0;
1885 uint8_t *p_src = (uint8_t*)p_output_pkt->
p_data + meta_size;
1886 uint8_t *p_end = p_src + (p_output_pkt->
data_len - meta_size);
1887 int64_t local_pts = p_output_pkt->
pts;
1888 int custom_sei_cnt = 0;
1889 int total_custom_sei_len = 0;
1896 for (sei_idx = 0; sei_idx < custom_sei_cnt; sei_idx ++)
1950 "intraRefreshMinPeriod %u\n", __FUNCTION__,
1956 ret = p_output_pkt->
data_len - meta_size + total_custom_sei_len;
void ni_logan_enc_reconfig_vfr(ni_logan_session_context_t *p_session_ctx, ni_logan_encoder_params_t *p_encoder_params, ni_logan_frame_t *ni_frame, int64_t pts, uint32_t timebase)
Fill reconfig vfr.
void ni_logan_enc_init_aux_params(ni_logan_session_data_io_t *p_api_fme)
Initialize auxiliary data that should be sent together with this frame to encoder based on the auxili...
const uint8_t * ni_logan_find_start_code(const uint8_t *p, const uint8_t *end, uint32_t *state)
Find the next start code.
void ni_logan_enc_copy_aux_data(ni_logan_session_context_t *p_enc_ctx, ni_logan_frame_t *p_enc_frame, ni_logan_frame_t *p_dec_frame, ni_logan_codec_format_t codec_format, const uint8_t *mdcv_data, const uint8_t *cll_data, const uint8_t *cc_data, const uint8_t *udu_data, const uint8_t *hdrp_data)
Copy auxiliary data that should be sent together with this frame to encoder.
void ni_logan_set_vui(ni_logan_encoder_params_t *p_param, ni_logan_session_context_t *p_ctx, ni_color_primaries_t color_primaries, ni_color_transfer_characteristic_t color_trc, ni_color_space_t color_space, int video_full_range_flag, int sar_num, int sar_den, ni_logan_codec_format_t codec_format)
Set SPS VUI part of encoded stream header.
int ni_logan_should_send_sei_with_frame(ni_logan_session_context_t *p_enc_ctx, ni_logan_pic_type_t pic_type, ni_logan_encoder_params_t *p_param)
Whether SEI (HDR) should be sent together with this frame to encoder.
void ni_logan_enc_prep_aux_data(ni_logan_session_context_t *p_enc_ctx, ni_logan_frame_t *p_enc_frame, ni_logan_frame_t *p_dec_frame, ni_logan_codec_format_t codec_format, int should_send_sei_with_frame, uint8_t *mdcv_data, uint8_t *cll_data, uint8_t *cc_data, uint8_t *udu_data, uint8_t *hdrp_data)
Prepare auxiliary data that should be sent together with this frame to encoder based on the auxiliary...
@ NI_COL_TRC_ARIB_STD_B67
enum _ni_color_primaries ni_color_primaries_t
enum _ni_color_transfer_characteristic ni_color_transfer_characteristic_t
enum _ni_color_space ni_color_space_t
@ NI_COL_RANGE_JPEG
the normal 2^n-1 "JPEG" YUV ranges
@ NI_LOGAN_RETCODE_PARAM_ERROR_HEIGHT_TOO_SMALL
@ NI_LOGAN_RETCODE_ERROR_INVALID_SESSION
@ NI_LOGAN_RETCODE_PARAM_ERROR_AREA_TOO_BIG
@ NI_LOGAN_RETCODE_PARAM_ERROR_WIDTH_TOO_SMALL
@ NI_LOGAN_RETCODE_INVALID_PARAM
@ NI_LOGAN_RETCODE_ERROR_MEM_ALOC
@ NI_LOGAN_RETCODE_ERROR_VPU_RECOVERY
@ NI_LOGAN_RETCODE_PARAM_ERROR_HEIGHT_TOO_BIG
@ NI_LOGAN_RETCODE_SUCCESS
@ NI_LOGAN_RETCODE_NVME_SC_WRITE_BUFFER_FULL
@ NI_LOGAN_RETCODE_FAILURE
@ NI_LOGAN_RETCODE_PARAM_ERROR_WIDTH_TOO_BIG
#define NI_LOGAN_FW_ENC_BITSTREAM_META_DATA_SIZE
#define NI_LOGAN_MAX_NUM_DATA_POINTERS
#define NI_LOGAN_MAX_FORCE_FRAME_TABLE_SIZE
@ NI_LOGAN_DEVICE_TYPE_ENCODER
#define NI_LOGAN_MAX_TX_SZ
ni_logan_retcode_t ni_logan_packet_buffer_alloc(ni_logan_packet_t *p_packet, int packet_size)
Allocate memory for the packet buffer based on provided packet size.
ni_logan_retcode_t ni_logan_encoder_params_check(ni_logan_encoder_params_t *p_params, ni_logan_codec_format_t codec)
Validate relationship of some params in encoder parameters structure.
ni_logan_retcode_t ni_logan_device_session_flush(ni_logan_session_context_t *p_ctx, ni_logan_device_type_t device_type)
Sends a flush command to the device ni_logan_device_session_open() If device_type is NI_LOGAN_DEVICE_...
ni_logan_retcode_t ni_logan_device_session_close(ni_logan_session_context_t *p_ctx, int eos_recieved, ni_logan_device_type_t device_type)
Closes device session that was previously opened by calling ni_logan_device_session_open() If device_...
ni_logan_retcode_t ni_logan_packet_buffer_free(ni_logan_packet_t *p_packet)
Free packet buffer that was previously allocated with either ni_logan_packet_buffer_alloc.
void ni_logan_device_session_context_init(ni_logan_session_context_t *p_ctx)
Initialize already allocated session context to a known state.
ni_logan_retcode_t ni_logan_frame_buffer_free(ni_logan_frame_t *p_frame)
Free frame buffer that was previously allocated with either ni_logan_frame_buffer_alloc or ni_logan_e...
ni_logan_retcode_t ni_logan_encoder_frame_buffer_alloc(ni_logan_frame_t *p_frame, int video_width, int video_height, int linesize[], int alignment, int extra_len, int factor)
Allocate memory for the frame buffer for encoding based on given parameters, taking into account pic ...
int ni_logan_device_session_read(ni_logan_session_context_t *p_ctx, ni_logan_session_data_io_t *p_data, ni_logan_device_type_t device_type)
Reads data the device If device_type is NI_LOGAN_DEVICE_TYPE_DECODER reads data packet from decoder I...
void ni_logan_device_session_context_clear(ni_logan_session_context_t *p_ctx)
Clear already allocated session context to all zeros.
const char * ni_logan_err2str(int err)
Convert error numver into error messages.
ni_logan_retcode_t ni_logan_encoder_init_default_params(ni_logan_encoder_params_t *p_param, int fps_num, int fps_denom, long bit_rate, int width, int height)
Initialize default encoder parameters.
ni_logan_retcode_t ni_logan_device_session_open(ni_logan_session_context_t *p_ctx, ni_logan_device_type_t device_type)
Opens a new device session depending on the device_type parameter If device_type is NI_LOGAN_DEVICE_T...
int ni_logan_device_session_write(ni_logan_session_context_t *p_ctx, ni_logan_session_data_io_t *p_data, ni_logan_device_type_t device_type)
Sends data the device If device_type is NI_LOGAN_DEVICE_TYPE_DECODER sends data packet to decoder If ...
void ni_logan_device_close(ni_device_handle_t device_handle)
Closes device and releases resources.
enum _ni_logan_session_run_state ni_logan_session_run_state_t
Session running state type.
struct _ni_logan_encoder_change_params_t ni_logan_encoder_change_params_t
This is a data structure for encoding parameters that have changed.
#define NI_CC_SEI_TRAILER_LEN
#define NI_LOGAN_PARAM_MAX_HEIGHT
#define NI_CC_SEI_HDR_H264_LEN
#define NI_LOGAN_PARAM_MAX_WIDTH
@ NI_LOGAN_CUSTOM_SEI_LOC_AFTER_VCL
#define NI_LOGAN_MIN_WIDTH
#define NI_HDR10P_SEI_HDR_H264_LEN
#define NI_LOGAN_ENC_REPEAT_HEADERS_ALL_I_FRAMES
#define NI_LOGAN_PARAM_MIN_WIDTH
#define NI_LOGAN_MAX_SEI_DATA
#define NI_LOGAN_MIN_HEIGHT
#define NI_LOGAN_DEFAULT_KEEP_ALIVE_TIMEOUT
#define NI_HDR10P_SEI_HDR_HEVC_LEN
#define NI_LOGAN_ENC_MAX_SEI_BUF_SIZE
@ LOGAN_SESSION_RUN_STATE_RESETTING
@ LOGAN_SESSION_RUN_STATE_QUEUED_FRAME_DRAINING
@ LOGAN_SESSION_RUN_STATE_SEQ_CHANGE_DRAINING
@ LOGAN_SESSION_RUN_STATE_NORMAL
#define NI_LOGAN_FRAME_LITTLE_ENDIAN
#define NI_LOGAN_ENC_REPEAT_HEADERS_ALL_KEY_FRAMES
@ NI_LOGAN_CODEC_FORMAT_H265
@ NI_LOGAN_CODEC_FORMAT_H264
#define NI_LOGAN_MAX_RESOLUTION_AREA
@ NI_LOGAN_PIX_FMT_YUV420P10BE
@ NI_LOGAN_PIX_FMT_YUV420P10LE
@ NI_LOGAN_PIX_FMT_YUVJ420P
#define NI_LOGAN_PARAM_MIN_HEIGHT
#define NI_CC_SEI_HDR_HEVC_LEN
#define NI_LOGAN_FRAME_BIG_ENDIAN
int ni_logan_encode_params_parse(ni_logan_enc_context_t *p_enc_ctx)
Parse encoder parameters Check whether the parameters are reasonable.
int ni_logan_encode_send(ni_logan_enc_context_t *p_enc_ctx)
Send encode data to NI device.
int ni_logan_encode_header(ni_logan_enc_context_t *p_enc_ctx)
Get encoder headers from the hardware.
int ni_logan_encode_copy_frame_data(ni_logan_enc_context_t *p_enc_ctx, ni_logan_frame_t *p_dec_frame, uint8_t *p_data[NI_LOGAN_MAX_NUM_DATA_POINTERS], int linesize[NI_LOGAN_MAX_NUM_DATA_POINTERS])
Copy frame data to NI frame.
int ni_logan_encode_receive(ni_logan_enc_context_t *p_enc_ctx)
Receive encoded data from NI device.
int ni_logan_encode_init(ni_logan_enc_context_t *p_enc_ctx)
Initialize encode parameters, including ni_logan_enc_context_t, ni_logan_session_context_t and ni_log...
int ni_logan_encode_get_frame(ni_logan_enc_context_t *p_enc_ctx)
Get allocated ni_frame from fifo pool.
void ni_logan_encode_reconfig_vfr(ni_logan_enc_context_t *p_enc_ctx, ni_logan_frame_t *ni_frame, int64_t pts)
Fill reconfig vfr.
int ni_logan_encode_open(ni_logan_enc_context_t *p_enc_ctx)
Open encoder.
int ni_logan_encode_close(ni_logan_enc_context_t *p_enc_ctx)
Close encoder.
int ni_logan_encode_copy_packet_data(ni_logan_enc_context_t *p_enc_ctx, uint8_t *p_data, int first_packet, int sps_pps_attach)
Copy NI packet to packet data buffer.
NETINT encoder API header file.
ni_log_level_t ff_to_ni_log_level(int fflog_level)
Convert ffmpeg log level integer to appropriate ni_log_level_t.
void ni_log_set_level(ni_log_level_t level)
Set ni_log_level.
void ni_log(ni_log_level_t level, const char *fmt,...)
print log message using ni_log_callback
LIB_API void ni_logan_rsrc_print_all_devices_capability(void)
Print detailed capability information of all devices on the system.
uint8_t * ni_logan_fifo_generic_read(ni_logan_fifo_buffer_t *p_fifo)
Get first filled buffer to read in the fifo.
uint8_t * ni_logan_fifo_generic_write(ni_logan_fifo_buffer_t *p_fifo)
Get free buffer to write in the fifo.
void ni_logan_copy_hw_yuv420p(uint8_t *p_dst[NI_LOGAN_MAX_NUM_DATA_POINTERS], uint8_t *p_src[NI_LOGAN_MAX_NUM_DATA_POINTERS], int frame_width, int frame_height, int bit_depth_factor, int dst_stride[NI_LOGAN_MAX_NUM_DATA_POINTERS], int dst_height[NI_LOGAN_MAX_NUM_DATA_POINTERS], int src_stride[NI_LOGAN_MAX_NUM_DATA_POINTERS], int src_height[NI_LOGAN_MAX_NUM_DATA_POINTERS])
Copy YUV data to Netint HW YUV420p frame layout to be sent to encoder for encoding....
int ni_logan_fifo_return_read(ni_logan_fifo_buffer_t *p_fifo)
Push back the last read buffer to the fifo.
int ni_logan_fifo_is_empty(ni_logan_fifo_buffer_t *p_fifo)
Check if a fifo is empty.
void ni_logan_get_hw_yuv420p_dim(int width, int height, int bit_depth_factor, int is_h264, int plane_stride[NI_LOGAN_MAX_NUM_DATA_POINTERS], int plane_height[NI_LOGAN_MAX_NUM_DATA_POINTERS])
Get dimension information of Netint HW YUV420p frame to be sent to encoder for encoding....
ni_logan_fifo_buffer_t * ni_logan_fifo_initialize(uint32_t number_of_buffers, uint32_t size)
Initialize a fifo buffer.
void ni_logan_fifo_free(ni_logan_fifo_buffer_t *p_fifo)
Free a fifo.
#define NI_LOGAN_ODD2EVEN(X)
#define NI_LOGAN_INPUT_DATA_BUF_CNT_INIT
uint32_t au_cpb_removal_delay_minus1
ni_logan_custom_sei_t ni_custom_sei[NI_LOGAN_MAX_CUSTOM_SEI_CNT]
custom sei payload passthrough
ni_logan_custom_sei_location_t custom_sei_loc
uint8_t custom_sei_data[NI_LOGAN_MAX_CUSTOM_SEI_SZ]
ni_logan_fifo_buffer_t * input_data_fifo
ni_logan_session_data_io_t * p_input_fme
ni_logan_session_data_io_t output_pkt
uint64_t total_frames_received
int force_pic_qp_demo_mode
ni_logan_encoder_input_params_t enc_input_params
uint32_t ui32minIntraRefreshCycle
int enable_vui_info_passthru
uint32_t number_of_buffers_used
unsigned int sei_hdr_mastering_display_color_vol_offset
uint32_t video_orig_height
unsigned int sei_hdr_content_light_level_info_offset
uint8_t preferred_characteristics_data_len
unsigned int sei_hdr_plus_len
uint32_t data_len[NI_LOGAN_MAX_NUM_DATA_POINTERS]
unsigned int sei_hdr_plus_offset
unsigned int extra_data_len
uint32_t video_orig_width
unsigned int sei_total_len
unsigned int sei_cc_offset
unsigned int sei_user_data_unreg_len
ni_logan_pic_type_t ni_logan_pict_type
uint8_t use_cur_src_as_long_term_pic
unsigned int sei_hdr_content_light_level_info_len
void * p_data[NI_LOGAN_MAX_NUM_DATA_POINTERS]
unsigned int sei_hdr_mastering_display_color_vol_len
unsigned int sei_user_data_unreg_offset
uint8_t use_long_term_ref
unsigned int sei_alt_transfer_characteristics_len
unsigned int sei_alt_transfer_characteristics_offset
uint8_t itu_t_t35_hdr10p_sei_hdr_hevc[NI_HDR10P_SEI_HDR_HEVC_LEN]
uint32_t set_high_priority
uint32_t keep_alive_timeout
int mdcv_max_min_lum_data_len
uint32_t ui32timing_scale
ni_device_handle_t device_handle
int sei_hdr_content_light_level_info_len
uint32_t fps_change_detect_count
int sei_hdr_mastering_display_color_vol_len
uint8_t sei_trailer[NI_CC_SEI_TRAILER_LEN]
int64_t enc_pts_list[NI_LOGAN_FIFO_SZ]
uint8_t itu_t_t35_cc_sei_hdr_hevc[NI_CC_SEI_HDR_HEVC_LEN]
ni_logan_session_run_state_t session_run_state
void * p_master_display_meta_data
uint8_t itu_t_t35_cc_sei_hdr_h264[NI_CC_SEI_HDR_H264_LEN]
ni_device_handle_t blk_io_handle
uint64_t force_frame_pkt_num
uint32_t ui32num_unit_in_tick
uint32_t last_change_framenum
int64_t force_frame_pts_table[NI_LOGAN_MAX_FORCE_FRAME_TABLE_SIZE]
uint8_t itu_t_t35_hdr10p_sei_hdr_h264[NI_HDR10P_SEI_HDR_H264_LEN]
char dev_xcoder[LOGAN_MAX_CHAR_IN_DEVICE_NAME]
ni_logan_all_custom_sei_t * pkt_custom_sei[NI_LOGAN_FIFO_SZ]
char dev_xcoder_name[LOGAN_MAX_CHAR_IN_DEVICE_NAME]
ni_hrd_params_t hrd_params
union _ni_logan_session_data_io::@4 data