libxcoder  5.2.0
ni_quadra_enc_api.h File Reference

NETINT encoder API header file. More...

#include "ni_quadra_filter_api.h"
#include <limits.h>

Go to the source code of this file.

Data Structures

struct  _ni_quadra_enc_context
 

Macros

#define NIALIGN(x, a)   (((x) + (a)-1) & ~((a)-1))
 
#define NIODD2EVEN(X)   ((X & 1) && (X > 31)) ? (X + 1) : (X)
 
#define NI_CODEC_FLAG_GLOBAL_HEADER   (1 << 22)
 
#define QUADRA_XCODER_TEST_RECONF_LONG_TERM_REF   4
 

Typedefs

typedef enum _ni_quadra_session_run_state ni_quadra_session_run_state_t
 Session running state type. More...
 
typedef struct _ni_quadra_enc_context ni_quadra_enc_context_t
 

Enumerations

enum  _ni_quadra_session_run_state {
  QUADRA_SESSION_RUN_STATE_NORMAL = 0, QUADRA_SESSION_RUN_STATE_SEQ_CHANGE_DRAINING = 1, QUADRA_SESSION_RUN_STATE_SEQ_CHANGE_OPENING = 2, QUADRA_SESSION_RUN_STATE_RESETTING = 3,
  QUADRA_SESSION_RUN_STATE_NORMAL = 0, QUADRA_SESSION_RUN_STATE_SEQ_CHANGE_DRAINING = 1, QUADRA_SESSION_RUN_STATE_SEQ_CHANGE_OPENING = 2, QUADRA_SESSION_RUN_STATE_RESETTING = 3
}
 Session running state type. More...
 

Functions

LIB_API int ni_quadra_encoder_xcoder_opts_params_set_value (ni_quadra_enc_context_t *p_enc_ctx, const char *name, const char *value)
 Set value referenced by name in encode parameters structure. More...
 
LIB_API int ni_quadra_encoder_xcoder_gop_params_set_value (ni_quadra_enc_context_t *p_enc_ctx, const char *name, const char *value)
 Set value referenced by name in encode parameters structure. More...
 
LIB_API int ni_quadra_setup_encoder (ni_quadra_enc_context_t *p_enc_ctx)
 Initialize init device session_context and init default params including ni_quadra_enc_context_t, ni_session_context_t, ni_xcoder_params_t. More...
 
LIB_API int ni_quadra_enc_init (ni_quadra_enc_context_t *p_enc_ctx)
 Initialize malloc device session_context and malloc params including ni_quadra_enc_context_t, ni_session_context_t, ni_xcoder_params_t. More...
 
LIB_API int ni_quadra_encode_close (ni_quadra_enc_context_t *p_enc_ctx)
 Close device session_context including ni_quadra_enc_context_t,. More...
 
LIB_API int ni_quadra_encode_sequence_change (ni_quadra_enc_context_t *p_enc_ctx, int width, int height, int bit_depth_factor)
 Set encode sequence change. More...
 
LIB_API int ni_quadra_encode_session_open (ni_quadra_enc_context_t *p_enc_ctx, int frame_width, int frame_height, const int *frame_linesize, niquadraFrameSurface1_t *p_surface, bool hw_frames_ctx, int frame_queqe, int avctx_flags)
 Set encode session open and set niframe default info. More...
 
LIB_API void ni_quadra_frame_new_aux_data (ni_quadra_enc_context_t *p_enc_ctx, void *side_data, int data_size, int type)
 Add a new auxiliary data to a frame. More...
 
LIB_API int ni_quadra_encode_send_prepare (ni_quadra_enc_context_t *p_enc_ctx, niquadraFrameSurface1_t *p_surface, int frame_width, int frame_height)
 Prepare a niframe which to send to encoder. More...
 
LIB_API int ni_quadra_enc_prep_aux_data (ni_quadra_enc_context_t *p_enc_ctx, void *side_data, int data_size)
 Prepare auxiliary data that should be sent together with this frame to encoder based on the auxiliary data of the decoded frame. More...
 
LIB_API int ni_quadra_enc_make_niframe (ni_quadra_enc_context_t *p_enc_ctx, uint8_t **data, uint8_t *nidata, int *linesize, int frame_width, int frame_height, NIFramesContext *nif_src_ctx)
 Copy avframe to niframe. More...
 
LIB_API int ni_quadra_enc_send_frame (ni_quadra_enc_context_t *p_enc_ctx)
 Send niframe to do encoder. More...
 
LIB_API int ni_quadra_enc_device_session_flush (ni_quadra_enc_context_t *p_enc_ctx)
 Flush encode session context. More...
 
LIB_API int ni_quadra_encode_reinit (ni_quadra_enc_context_t *p_enc_ctx, int frame_width, int frame_height, const int *linesize)
 Reinit encode context. More...
 
LIB_API int ni_quadra_encode_after_reinit (ni_quadra_enc_context_t *p_enc_ctx)
 Reinit after need to sync context. More...
 
LIB_API int ni_quadra_encoder_receive_packet (ni_quadra_enc_context_t *p_enc_ctx)
 Recive packet frome encode. More...
 
LIB_API int ni_quadra_enc_get_extra_data (ni_quadra_enc_context_t *p_enc_ctx, uint8_t *p_dst)
 Copy niframe to make avframe. More...
 
LIB_API int ni_quadra_encoder_prepare_avpkt (ni_quadra_enc_context_t *p_enc_ctx, int is_pkt, int64_t *pkt_pts, int64_t *pkt_dts, int *pkt_flag)
 Make avpkt from encode. More...
 
LIB_API void ni_quadra_set_session_wh (void *session_ctx, int width, int height)
 Set width and height to session context. More...
 
LIB_API int ni_quadra_packet_buffer_alloc (ni_quadra_enc_context_t *p_enc_ctx)
 Allocate memory for the packet buffer based on provided packet size. More...
 
LIB_API bool ni_quadra_enc_gop_params_check (ni_quadra_enc_context_t *p_enc_ctx)
 Check gop_params. More...
 
LIB_API void ni_quadra_enc_gop_params_set (ni_quadra_enc_context_t *p_enc_ctx, char *key)
 Set gop_params. More...
 
LIB_API int ni_quadra_get_pkt_info_size (void)
 Get struct ni_pkt_info size. More...
 
LIB_API void ni_quadra_get_pkt_info (void *session_ctx, void *data)
 Get ni_pkt_info psnr info. More...
 

Detailed Description

NETINT encoder API header file.


Definition in file ni_quadra_enc_api.h.

Macro Definition Documentation

◆ NI_CODEC_FLAG_GLOBAL_HEADER

#define NI_CODEC_FLAG_GLOBAL_HEADER   (1 << 22)

Place global headers in extradata instead of every keyframe.

Definition at line 59 of file ni_quadra_enc_api.h.

◆ NIALIGN

#define NIALIGN (   x,
 
)    (((x) + (a)-1) & ~((a)-1))

Definition at line 54 of file ni_quadra_enc_api.h.

◆ NIODD2EVEN

#define NIODD2EVEN (   X)    ((X & 1) && (X > 31)) ? (X + 1) : (X)

Definition at line 55 of file ni_quadra_enc_api.h.

◆ QUADRA_XCODER_TEST_RECONF_LONG_TERM_REF

#define QUADRA_XCODER_TEST_RECONF_LONG_TERM_REF   4

Definition at line 61 of file ni_quadra_enc_api.h.

Typedef Documentation

◆ ni_quadra_enc_context_t

◆ ni_quadra_session_run_state_t

Session running state type.

Enumeration Type Documentation

◆ _ni_quadra_session_run_state

Session running state type.

Enumerator
QUADRA_SESSION_RUN_STATE_NORMAL 
QUADRA_SESSION_RUN_STATE_SEQ_CHANGE_DRAINING 
QUADRA_SESSION_RUN_STATE_SEQ_CHANGE_OPENING 
QUADRA_SESSION_RUN_STATE_RESETTING 
QUADRA_SESSION_RUN_STATE_NORMAL 
QUADRA_SESSION_RUN_STATE_SEQ_CHANGE_DRAINING 
QUADRA_SESSION_RUN_STATE_SEQ_CHANGE_OPENING 
QUADRA_SESSION_RUN_STATE_RESETTING 

Definition at line 66 of file ni_quadra_enc_api.h.

Function Documentation

◆ ni_quadra_enc_device_session_flush()

LIB_API int ni_quadra_enc_device_session_flush ( ni_quadra_enc_context_t p_enc_ctx)

Flush encode session context.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 2045 of file ni_quadra_enc_api.c.

◆ ni_quadra_enc_get_extra_data()

LIB_API int ni_quadra_enc_get_extra_data ( ni_quadra_enc_context_t p_enc_ctx,
uint8_t *  p_dst 
)

Copy niframe to make avframe.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
[in]p_dstPointer to frame data
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 2427 of file ni_quadra_enc_api.c.

◆ ni_quadra_enc_gop_params_check()

LIB_API bool ni_quadra_enc_gop_params_check ( ni_quadra_enc_context_t p_enc_ctx)

Check gop_params.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
Returns
On success ture On failure false

Definition at line 42 of file ni_quadra_enc_api.c.

◆ ni_quadra_enc_gop_params_set()

LIB_API void ni_quadra_enc_gop_params_set ( ni_quadra_enc_context_t p_enc_ctx,
char *  key 
)

Set gop_params.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
[in/out]key Pointer params string
Returns
none

Definition at line 36 of file ni_quadra_enc_api.c.

◆ ni_quadra_enc_init()

LIB_API int ni_quadra_enc_init ( ni_quadra_enc_context_t p_enc_ctx)

Initialize malloc device session_context and malloc params including ni_quadra_enc_context_t, ni_session_context_t, ni_xcoder_params_t.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
Returns
On success NI_LOGAN_RETCODE_SUCCESS On failure NI_LOGAN_RETCODE_FAILURE NI_LOGAN_RETCODE_INVALID_PARAM, NI_LOGAN_RETCODE_ERROR_MEM_ALOC, etc

Definition at line 672 of file ni_quadra_enc_api.c.

◆ ni_quadra_enc_make_niframe()

LIB_API int ni_quadra_enc_make_niframe ( ni_quadra_enc_context_t p_enc_ctx,
uint8_t **  data,
uint8_t *  nidata,
int *  linesize,
int  frame_width,
int  frame_height,
NIFramesContext nif_src_ctx 
)

Copy avframe to niframe.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
[in]dataframe data
[in]nidataframe data[3]
[in]linesizeframe linesize
[in]frame_widthframe width
[in]frame_heightframe height
[in]nif_src_ctxpointer to niquadraFrameSurface1_t
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 1752 of file ni_quadra_enc_api.c.

◆ ni_quadra_enc_prep_aux_data()

LIB_API int ni_quadra_enc_prep_aux_data ( ni_quadra_enc_context_t p_enc_ctx,
void *  side_data,
int  data_size 
)

Prepare auxiliary data that should be sent together with this frame to encoder based on the auxiliary data of the decoded frame.


Parameters
[in/out]Pointer to ni_quadra_enc_context_t
[out]side_dataframe side data
[in]data_sizeframe side data size
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 1551 of file ni_quadra_enc_api.c.

◆ ni_quadra_enc_send_frame()

LIB_API int ni_quadra_enc_send_frame ( ni_quadra_enc_context_t p_enc_ctx)

Send niframe to do encoder.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 2013 of file ni_quadra_enc_api.c.

◆ ni_quadra_encode_after_reinit()

LIB_API int ni_quadra_encode_after_reinit ( ni_quadra_enc_context_t p_enc_ctx)

Reinit after need to sync context.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 2147 of file ni_quadra_enc_api.c.

◆ ni_quadra_encode_close()

LIB_API int ni_quadra_encode_close ( ni_quadra_enc_context_t p_enc_ctx)

Close device session_context including ni_quadra_enc_context_t,.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
Returns
0

Definition at line 856 of file ni_quadra_enc_api.c.

◆ ni_quadra_encode_reinit()

LIB_API int ni_quadra_encode_reinit ( ni_quadra_enc_context_t p_enc_ctx,
int  frame_width,
int  frame_height,
const int *  linesize 
)

Reinit encode context.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
[in]linesizeframe linesize
[in]frame_widthframe width
[in]frame_heightframe height
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 2050 of file ni_quadra_enc_api.c.

◆ ni_quadra_encode_send_prepare()

LIB_API int ni_quadra_encode_send_prepare ( ni_quadra_enc_context_t p_enc_ctx,
niquadraFrameSurface1_t p_surface,
int  frame_width,
int  frame_height 
)

Prepare a niframe which to send to encoder.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
[in]p_surfacepointer to niquadraFrameSurface1_t
[in]frame_widthframe width
[in]frame_heightframe height
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 1210 of file ni_quadra_enc_api.c.

◆ ni_quadra_encode_sequence_change()

LIB_API int ni_quadra_encode_sequence_change ( ni_quadra_enc_context_t p_enc_ctx,
int  width,
int  height,
int  bit_depth_factor 
)

Set encode sequence change.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
[in]widthframe width
[in]heightframe height
[in]bit_depth_factorframe bit_depth
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 926 of file ni_quadra_enc_api.c.

◆ ni_quadra_encode_session_open()

LIB_API int ni_quadra_encode_session_open ( ni_quadra_enc_context_t p_enc_ctx,
int  frame_width,
int  frame_height,
const int *  frame_linesize,
niquadraFrameSurface1_t p_surface,
bool  hw_frames_ctx,
int  frame_queqe,
int  avctx_flags 
)

Set encode session open and set niframe default info.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
[in]frame_widthframe width
[in]frame_heightframe height
[in]frame_linesizeframe linesize
[in]p_surfacepointer to niquadraFrameSurface1_t
[in]hw_frames_ctxframe hw_frames_ctx is exist
[in]frame_queqeframe opaque
[in]avctx_flagsavctx flags
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 993 of file ni_quadra_enc_api.c.

◆ ni_quadra_encoder_prepare_avpkt()

LIB_API int ni_quadra_encoder_prepare_avpkt ( ni_quadra_enc_context_t p_enc_ctx,
int  is_pkt,
int64_t *  pkt_pts,
int64_t *  pkt_dts,
int *  pkt_flag 
)

Make avpkt from encode.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
[in]is_pktPointer to frame data
[in]pkt_ptsPointer to frame data
[in]pkt_dtsPointer to frame data
[in]pkt_flagPointer to frame data
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 2477 of file ni_quadra_enc_api.c.

◆ ni_quadra_encoder_receive_packet()

LIB_API int ni_quadra_encoder_receive_packet ( ni_quadra_enc_context_t p_enc_ctx)

Recive packet frome encode.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 2162 of file ni_quadra_enc_api.c.

◆ ni_quadra_encoder_xcoder_gop_params_set_value()

LIB_API int ni_quadra_encoder_xcoder_gop_params_set_value ( ni_quadra_enc_context_t p_enc_ctx,
const char *  name,
const char *  value 
)

Set value referenced by name in encode parameters structure.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
[in]nameString represented parameter name to search
[in]valueParameter value to set
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE NI_QUADRA_PARAM_WARNING_DEPRECATED

Definition at line 94 of file ni_quadra_enc_api.c.

◆ ni_quadra_encoder_xcoder_opts_params_set_value()

LIB_API int ni_quadra_encoder_xcoder_opts_params_set_value ( ni_quadra_enc_context_t p_enc_ctx,
const char *  name,
const char *  value 
)

Set value referenced by name in encode parameters structure.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
[in]nameString represented parameter name to search
[in]valueParameter value to set
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE NI_QUADRA_PARAM_WARNING_DEPRECATED

Definition at line 48 of file ni_quadra_enc_api.c.

◆ ni_quadra_frame_new_aux_data()

LIB_API void ni_quadra_frame_new_aux_data ( ni_quadra_enc_context_t p_enc_ctx,
void *  side_data,
int  data_size,
int  type 
)

Add a new auxiliary data to a frame.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
[in/out]side_data a frame to which the auxiliary data should be added
[in]data_sizesize of the added auxiliary data
[in]typetype of the added auxiliary data
Returns
void

Definition at line 1497 of file ni_quadra_enc_api.c.

◆ ni_quadra_get_pkt_info()

LIB_API void ni_quadra_get_pkt_info ( void *  session_ctx,
void *  data 
)

Get ni_pkt_info psnr info.


Parameters
[in/out]session_ctx Pointer to ni_session_context_t
[in/out]data Pointer void* which has been malloced
Returns
none

Definition at line 2597 of file ni_quadra_enc_api.c.

◆ ni_quadra_get_pkt_info_size()

LIB_API int ni_quadra_get_pkt_info_size ( void  )

Get struct ni_pkt_info size.


Parameters
[in/out]void
Returns
int

Definition at line 2592 of file ni_quadra_enc_api.c.

◆ ni_quadra_packet_buffer_alloc()

LIB_API int ni_quadra_packet_buffer_alloc ( ni_quadra_enc_context_t p_enc_ctx)

Allocate memory for the packet buffer based on provided packet size.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_ERROR_MEM_ALOC

Definition at line 2576 of file ni_quadra_enc_api.c.

◆ ni_quadra_set_session_wh()

LIB_API void ni_quadra_set_session_wh ( void *  session_ctx,
int  width,
int  height 
)

Set width and height to session context.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
[in]widthframe width
[in]heightframe height
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE

Definition at line 2569 of file ni_quadra_enc_api.c.

◆ ni_quadra_setup_encoder()

LIB_API int ni_quadra_setup_encoder ( ni_quadra_enc_context_t p_enc_ctx)

Initialize init device session_context and init default params including ni_quadra_enc_context_t, ni_session_context_t, ni_xcoder_params_t.


Parameters
[in/out]p_enc_ctx Pointer to ni_quadra_enc_context_t
Returns
On success NI_LOGAN_RETCODE_SUCCESS On failure NI_LOGAN_RETCODE_FAILURE NI_LOGAN_RETCODE_INVALID_PARAM, NI_LOGAN_RETCODE_ERROR_MEM_ALOC, etc

Definition at line 395 of file ni_quadra_enc_api.c.