libxcoder  5.2.0
ni_encode_utils.c File Reference
#include "ni_generic_utils.h"
#include "ni_encode_utils.h"
#include "ni_log.h"
#include "ni_av_codec.h"
#include "ni_util.h"

Go to the source code of this file.

Functions

void set_demo_roi_map (ni_session_context_t *p_enc_ctx)
 Set up hard coded demo ROI map. More...
 
void prep_reconf_demo_data (ni_demo_context_t *p_ctx, ni_session_context_t *p_enc_ctx, ni_frame_t *frame)
 
int encoder_send_data (ni_demo_context_t *p_ctx, ni_session_context_t *p_enc_ctx, ni_session_data_io_t *p_in_data, void *yuv_buf, int input_video_width, int input_video_height, int is_last_input)
 Send encoder input data, read from input file. More...
 
int encoder_send_data2 (ni_demo_context_t *p_ctx, ni_session_context_t *p_enc_ctx, ni_session_data_io_t *p_dec_out_data, ni_session_data_io_t *p_enc_in_data, int input_video_width, int input_video_height)
 
int encoder_send_data3 (ni_demo_context_t *p_ctx, ni_session_context_t *p_enc_ctx, ni_session_data_io_t *p_in_data, int input_video_width, int input_video_height, int eos)
 Send encoder input data, read from uploader instance hwframe. More...
 
int encoder_open_session (ni_session_context_t *p_enc_ctx, int dst_codec_format, int iXcoderGUID, ni_xcoder_params_t *p_enc_params, int width, int height, ni_pix_fmt_t pix_fmt, bool check_zerocopy)
 Encoder session open. More...
 
int encoder_reinit_session (ni_session_context_t *p_enc_ctx, ni_session_data_io_t *p_in_data, ni_session_data_io_t *p_out_data)
 Reopen or reconfig encoder upon sequence change. More...
 
void write_av1_ivf_header (ni_demo_context_t *p_ctx, uint32_t width, uint32_t height, uint32_t frame_num, uint32_t frame_denom, FILE *p_file)
 
void write_av1_ivf_packet (ni_demo_context_t *p_ctx, ni_packet_t *p_out_pkt, uint32_t meta_size, FILE *p_file)
 
int write_av1_ivf_trailer (ni_demo_context_t *p_ctx, ni_packet_t *p_out_pkt, uint32_t meta_size, FILE *p_file)
 
int encoder_receive_data (ni_demo_context_t *p_ctx, ni_session_context_t *p_enc_ctx, ni_session_data_io_t *p_out_data, int output_video_width, int output_video_height, FILE *p_file, ni_session_data_io_t *p_in_data)
 Receive output data from encoder. More...
 
int encoder_close_session (ni_session_context_t *p_enc_ctx, ni_session_data_io_t *p_in_data, ni_session_data_io_t *p_out_data)
 encoder session close More...
 
int encoder_sequence_change (ni_session_context_t *p_enc_ctx, ni_session_data_io_t *p_in_data, ni_session_data_io_t *p_out_data, int width, int height, ni_pix_fmt_t pix_fmt)
 
int encoder_open (ni_session_context_t *enc_ctx_list, ni_xcoder_params_t *p_api_param_list, int output_total, char p_enc_conf_params[][2048], char p_enc_conf_gop[][2048], ni_frame_t *p_ni_frame, int width, int height, int fps_num, int fps_den, int bitrate, int codec_format, ni_pix_fmt_t pix_fmt, int aspect_ratio_idc, int xcoder_guid, niFrameSurface1_t *p_surface, int multi_thread, bool check_zerocopy)
 
int encoder_receive (ni_demo_context_t *p_ctx, ni_session_context_t *enc_ctx_list, ni_session_data_io_t *in_frame, ni_session_data_io_t *pkt, int width, int height, int output_total, FILE **pfs_list)
 
void encoder_stat_report_and_close (ni_demo_context_t *p_ctx, ni_session_context_t *p_enc_ctx_list, int output_total)
 
void * encoder_send_thread (void *args)
 
void * encoder_receive_thread (void *args)
 

Function Documentation

◆ encoder_close_session()

int encoder_close_session ( ni_session_context_t p_enc_ctx,
ni_session_data_io_t p_in_data,
ni_session_data_io_t p_out_data 
)

encoder session close


Parameters
<br>
Returns
0 if successful, < 0 otherwise

Definition at line 1924 of file ni_encode_utils.c.

◆ encoder_open()

int encoder_open ( ni_session_context_t enc_ctx_list,
ni_xcoder_params_t p_api_param_list,
int  output_total,
char  p_enc_conf_params[][2048],
char  p_enc_conf_gop[][2048],
ni_frame_t p_ni_frame,
int  width,
int  height,
int  fps_num,
int  fps_den,
int  bitrate,
int  codec_format,
ni_pix_fmt_t  pix_fmt,
int  aspect_ratio_idc,
int  xcoder_guid,
niFrameSurface1_t p_surface,
int  multi_thread,
bool  check_zerocopy 
)

Definition at line 1999 of file ni_encode_utils.c.

◆ encoder_open_session()

int encoder_open_session ( ni_session_context_t p_enc_ctx,
int  dst_codec_format,
int  iXcoderGUID,
ni_xcoder_params_t p_enc_params,
int  width,
int  height,
ni_pix_fmt_t  pix_fmt,
bool  check_zerocopy 
)

Encoder session open.


Parameters
<br>
Returns
0 if successful, < 0 otherwise

Definition at line 1258 of file ni_encode_utils.c.

◆ encoder_receive()

int encoder_receive ( ni_demo_context_t p_ctx,
ni_session_context_t enc_ctx_list,
ni_session_data_io_t in_frame,
ni_session_data_io_t pkt,
int  width,
int  height,
int  output_total,
FILE **  pfs_list 
)

Definition at line 2181 of file ni_encode_utils.c.

◆ encoder_receive_data()

int encoder_receive_data ( ni_demo_context_t p_ctx,
ni_session_context_t p_enc_ctx,
ni_session_data_io_t p_out_data,
int  output_video_width,
int  output_video_height,
FILE *  p_file,
ni_session_data_io_t p_in_data 
)

Receive output data from encoder.


Parameters
p_in_datais passed in to specify new frame resolution upon sequence change
Returns
0 - success got packet 1 - received eos 2 - got nothing, need retry -1 - failure

Definition at line 1721 of file ni_encode_utils.c.

◆ encoder_receive_thread()

void* encoder_receive_thread ( void *  args)

Definition at line 2368 of file ni_encode_utils.c.

◆ encoder_reinit_session()

int encoder_reinit_session ( ni_session_context_t p_enc_ctx,
ni_session_data_io_t p_in_data,
ni_session_data_io_t p_out_data 
)

Reopen or reconfig encoder upon sequence change.


Parameters
<br>
Returns
0 - success got packet 1 - received eos 2 - got nothing, need retry -1 - failure

Definition at line 1405 of file ni_encode_utils.c.

◆ encoder_send_data()

int encoder_send_data ( ni_demo_context_t p_ctx,
ni_session_context_t p_enc_ctx,
ni_session_data_io_t p_in_data,
void *  yuv_buf,
int  input_video_width,
int  input_video_height,
int  is_last_input 
)

Send encoder input data, read from input file.


Note: For optimal performance, yuv_buf should be 4k aligned

Parameters

Definition at line 735 of file ni_encode_utils.c.

◆ encoder_send_data2()

int encoder_send_data2 ( ni_demo_context_t p_ctx,
ni_session_context_t p_enc_ctx,
ni_session_data_io_t p_dec_out_data,
ni_session_data_io_t p_enc_in_data,
int  input_video_width,
int  input_video_height 
)

Definition at line 876 of file ni_encode_utils.c.

◆ encoder_send_data3()

int encoder_send_data3 ( ni_demo_context_t p_ctx,
ni_session_context_t p_enc_ctx,
ni_session_data_io_t p_in_data,
int  input_video_width,
int  input_video_height,
int  eos 
)

Send encoder input data, read from uploader instance hwframe.


Parameters
<br>
Returns

Definition at line 1179 of file ni_encode_utils.c.

◆ encoder_send_thread()

void* encoder_send_thread ( void *  args)

Definition at line 2276 of file ni_encode_utils.c.

◆ encoder_sequence_change()

int encoder_sequence_change ( ni_session_context_t p_enc_ctx,
ni_session_data_io_t p_in_data,
ni_session_data_io_t p_out_data,
int  width,
int  height,
ni_pix_fmt_t  pix_fmt 
)

Definition at line 1949 of file ni_encode_utils.c.

◆ encoder_stat_report_and_close()

void encoder_stat_report_and_close ( ni_demo_context_t p_ctx,
ni_session_context_t p_enc_ctx_list,
int  output_total 
)

Definition at line 2252 of file ni_encode_utils.c.

◆ prep_reconf_demo_data()

void prep_reconf_demo_data ( ni_demo_context_t p_ctx,
ni_session_context_t p_enc_ctx,
ni_frame_t frame 
)

Definition at line 124 of file ni_encode_utils.c.

◆ set_demo_roi_map()

void set_demo_roi_map ( ni_session_context_t p_enc_ctx)

Set up hard coded demo ROI map.


Parameters
<br>
Returns
none

Definition at line 41 of file ni_encode_utils.c.

◆ write_av1_ivf_header()

void write_av1_ivf_header ( ni_demo_context_t p_ctx,
uint32_t  width,
uint32_t  height,
uint32_t  frame_num,
uint32_t  frame_denom,
FILE *  p_file 
)

Definition at line 1549 of file ni_encode_utils.c.

◆ write_av1_ivf_packet()

void write_av1_ivf_packet ( ni_demo_context_t p_ctx,
ni_packet_t p_out_pkt,
uint32_t  meta_size,
FILE *  p_file 
)

Definition at line 1598 of file ni_encode_utils.c.

◆ write_av1_ivf_trailer()

int write_av1_ivf_trailer ( ni_demo_context_t p_ctx,
ni_packet_t p_out_pkt,
uint32_t  meta_size,
FILE *  p_file 
)

Definition at line 1677 of file ni_encode_utils.c.