libxcoder  5.2.0
ni_quadra_dec_api.c File Reference

Private definitions used by ni_quadra_dec_api.c for video processing tasks. More...

#include "ni_defs.h"
#include "ni_rsrc_api.h"
#include "ni_util.h"
#include "ni_device_api.h"
#include "ni_av_codec.h"
#include "ni_bitstream.h"
#include "ni_quadra_dec_api.h"

Go to the source code of this file.

Macros

#define USER_DATA_UNREGISTERED_SEI_PAYLOAD_TYPE   5
 
#define NI_DEC_PKT_BUF_NUM_MAX   300
 
#define H264_MAX_SPS_COUNT   32
 
#define H264_MAX_PPS_COUNT   256
 
#define HEVC_MAX_VPS_COUNT   16
 
#define HEVC_MAX_SPS_COUNT   16
 
#define HEVC_MAX_PPS_COUNT   64
 

Functions

void ni_quadra_align_free (void *opaque, uint8_t *data)
 buffer free, including void* More...
 
void ni_quadra_frame_free (void *opaque, uint8_t *data)
 frame free, including void* More...
 
void ni_quadra_dec_close (ni_quadra_dec_context_t *ni_dec_ctx)
 Decode close, including ni_quadra_dec_context_t,. More...
 
int ni_quadra_setup_decoder (ni_quadra_dec_context_t *ni_dec_ctx)
 Initialize init device session_context and init default params including ni_quadra_dec_context_t, ni_session_context_t, ni_decoder_params_t. More...
 
int ni_quadra_dec_init (ni_quadra_dec_context_t *ni_dec_ctx)
 Initialize decode parameters and open decoder device including ni_quadra_dec_context_t, ni_session_context_t, ni_xcoder_params_t. More...
 
int ni_quadra_dec_reset (ni_quadra_dec_context_t *ni_dec_ctx)
 
int ni_quadra_add_headers (ni_quadra_dec_context_t *ni_dec_ctx, int pkt_flag, const uint8_t *data, int size, uint8_t *extradata, int extradata_size)
 
int ni_quadra_dec_send (ni_quadra_dec_context_t *ni_dec_ctx, int pkt_flags, uint8_t *data, int pkt_size, uint8_t *lonedata, int lone_size, int64_t pkt_pts, int64_t pkt_dts, int pkt_pos, int width, int height, uint8_t *extradata, int extradata_size)
 Parse the packet and send the packet to decode device. More...
 
void ni_quadra_dec_aux_data (ni_quadra_dec_context_t *ni_dec_ctx)
 
void ni_quadra_dec_wipe_aux_data (ni_quadra_dec_context_t *ni_dec_ctx)
 Free and remove all auxiliary data from the ni_dec_ctx frame. More...
 
int ni_quadra_frame_get_aux_size (ni_quadra_dec_context_t *ni_dec_ctx, int type)
 get size from the frame auxiliary data of a given type if exists More...
 
void ni_quadra_frame_copy_aux_data (ni_quadra_dec_context_t *ni_dec_ctx, uint8_t *dst_data, int type, int size)
 Retrieve from the frame auxiliary data of a given type if exists. More...
 
void ni_quadra_frame_sync (ni_quadra_dec_context_t *ni_dec_ctx)
 
int ni_quadra_dec_receive (ni_quadra_dec_context_t *ni_dec_ctx, int avctx_width, int avctx_height, int frame_planar)
 Receive decoded data from decoder, including ni_quadra_dec_context_t,. More...
 
int ni_quadra_dec_flush (ni_quadra_dec_context_t *ni_dec_ctx)
 
int ni_quadra_dec_is_flushing (ni_quadra_dec_context_t *ni_dec_ctx)
 Decode is flushing or not, including ni_quadra_dec_context_t,. More...
 
int ni_quadra_dec_params_set_value (ni_quadra_dec_context_t *ni_dec_ctx, const char *name, char *value)
 Set value referenced by name in decoder parameters structure. More...
 
int ni_quadra_symbolic_decoder_param (ni_quadra_dec_context_t *ni_dec_ctx, int type)
 sync ni_decoder_input_params_t and ni_xcoder_params_t More...
 
uint8_t * ni_quadra_dec_frame_buffer_alloc (ni_quadra_dec_context_t *ni_dec_ctx, void *p_session_data)
 alloc session p_data More...
 

Detailed Description

Private definitions used by ni_quadra_dec_api.c for video processing tasks.


Definition in file ni_quadra_dec_api.c.

Macro Definition Documentation

◆ H264_MAX_PPS_COUNT

#define H264_MAX_PPS_COUNT   256

◆ H264_MAX_SPS_COUNT

#define H264_MAX_SPS_COUNT   32

◆ HEVC_MAX_PPS_COUNT

#define HEVC_MAX_PPS_COUNT   64

◆ HEVC_MAX_SPS_COUNT

#define HEVC_MAX_SPS_COUNT   16

◆ HEVC_MAX_VPS_COUNT

#define HEVC_MAX_VPS_COUNT   16

◆ NI_DEC_PKT_BUF_NUM_MAX

#define NI_DEC_PKT_BUF_NUM_MAX   300

Definition at line 38 of file ni_quadra_dec_api.c.

◆ USER_DATA_UNREGISTERED_SEI_PAYLOAD_TYPE

#define USER_DATA_UNREGISTERED_SEI_PAYLOAD_TYPE   5

Definition at line 37 of file ni_quadra_dec_api.c.

Function Documentation

◆ ni_quadra_add_headers()

int ni_quadra_add_headers ( ni_quadra_dec_context_t ni_dec_ctx,
int  pkt_flag,
const uint8_t *  data,
int  size,
uint8_t *  extradata,
int  extradata_size 
)

Definition at line 544 of file ni_quadra_dec_api.c.

◆ ni_quadra_align_free()

void ni_quadra_align_free ( void *  opaque,
uint8_t *  data 
)

buffer free, including void*


Parameters
[in]opaqueparameter to be got for processing or passed to free
[in]datadata array

Definition at line 51 of file ni_quadra_dec_api.c.

◆ ni_quadra_dec_aux_data()

void ni_quadra_dec_aux_data ( ni_quadra_dec_context_t ni_dec_ctx)

Definition at line 1026 of file ni_quadra_dec_api.c.

◆ ni_quadra_dec_close()

void ni_quadra_dec_close ( ni_quadra_dec_context_t ni_dec_ctx)

Decode close, including ni_quadra_dec_context_t,.


Parameters
[in/out]ni_dec_ctx Pointer to ni_quadra_dec_context_t

Definition at line 87 of file ni_quadra_dec_api.c.

◆ ni_quadra_dec_flush()

int ni_quadra_dec_flush ( ni_quadra_dec_context_t ni_dec_ctx)

Definition at line 1394 of file ni_quadra_dec_api.c.

◆ ni_quadra_dec_frame_buffer_alloc()

uint8_t* ni_quadra_dec_frame_buffer_alloc ( ni_quadra_dec_context_t ni_dec_ctx,
void *  p_session_data 
)

alloc session p_data


Parameters
[in/out]ni_dec_ctx Pointer to ni_quadra_dec_context_t
[in]p_session_dataPointer to void*
Returns
uint8_t *p_data

Definition at line 1532 of file ni_quadra_dec_api.c.

◆ ni_quadra_dec_init()

int ni_quadra_dec_init ( ni_quadra_dec_context_t ni_dec_ctx)

Initialize decode parameters and open decoder device including ni_quadra_dec_context_t, ni_session_context_t, ni_xcoder_params_t.


Parameters
[in/out]ni_dec_ctx Pointer to ni_quadra_dec_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 350 of file ni_quadra_dec_api.c.

◆ ni_quadra_dec_is_flushing()

int ni_quadra_dec_is_flushing ( ni_quadra_dec_context_t ni_dec_ctx)

Decode is flushing or not, including ni_quadra_dec_context_t,.


Parameters
[in/out]ni_dec_ctx Pointer to ni_quadra_dec_context_t
Returns
On 1 HW dosn't do decode flushing On 0 HW is doing decode flushing

Definition at line 1405 of file ni_quadra_dec_api.c.

◆ ni_quadra_dec_params_set_value()

int ni_quadra_dec_params_set_value ( ni_quadra_dec_context_t ni_dec_ctx,
const char *  name,
char *  value 
)

Set value referenced by name in decoder parameters structure.


Parameters
[in/out]ni_dec_ctx Pointer to ni_quadra_dec_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 1419 of file ni_quadra_dec_api.c.

◆ ni_quadra_dec_receive()

int ni_quadra_dec_receive ( ni_quadra_dec_context_t ni_dec_ctx,
int  avctx_width,
int  avctx_height,
int  frame_planar 
)

Receive decoded data from decoder, including ni_quadra_dec_context_t,.


Parameters
[in/out]ni_dec_ctx Pointer to ni_quadra_dec_context_t
[in/out]p_session_data Pointer to ni_session_data_io_t
[in]avctx_widthavctx width
[in]avctx_heightavctx height
Returns
On success NI_LOGAN_RETCODE_SUCCESS On failure NI_LOGAN_RETCODE_FAILURE

Definition at line 1117 of file ni_quadra_dec_api.c.

◆ ni_quadra_dec_reset()

int ni_quadra_dec_reset ( ni_quadra_dec_context_t ni_dec_ctx)

Definition at line 493 of file ni_quadra_dec_api.c.

◆ ni_quadra_dec_send()

int ni_quadra_dec_send ( ni_quadra_dec_context_t ni_dec_ctx,
int  pkt_flags,
uint8_t *  data,
int  pkt_size,
uint8_t *  lonedata,
int  lone_size,
int64_t  pkt_pts,
int64_t  pkt_dts,
int  pkt_pos,
int  width,
int  height,
uint8_t *  extradata,
int  extradata_size 
)

Parse the packet and send the packet to decode device.


Parameters
[in/out]ni_dec_ctx Pointer to ni_quadra_dec_context_t
[in/out]flag flag=0 or 1 to do something.
[in]pkt_dataPointer to input packet data
[in]pkt_sizepacket size
[in]pkt_flagspacket flags
[in]pkt_ptspacket pts
[in]pkt_dtspacket dts
[in]avctx_widthavctx width
[in]avctx_heightavctx height
[in]extradataPointer to uint8_t
[in]extradata_sizeextradata size
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 662 of file ni_quadra_dec_api.c.

◆ ni_quadra_dec_wipe_aux_data()

void ni_quadra_dec_wipe_aux_data ( ni_quadra_dec_context_t ni_dec_ctx)

Free and remove all auxiliary data from the ni_dec_ctx frame.


Parameters
[in/out]ni_dec_ctx Pointer to ni_quadra_dec_context_t
Returns
None

Definition at line 1033 of file ni_quadra_dec_api.c.

◆ ni_quadra_frame_copy_aux_data()

void ni_quadra_frame_copy_aux_data ( ni_quadra_dec_context_t ni_dec_ctx,
uint8_t *  dst_data,
int  type,
int  size 
)

Retrieve from the frame auxiliary data of a given type if exists.


Parameters
[in/out]ni_dec_ctx Pointer to ni_quadra_dec_context_t
[in/out]dst_data copy the auxiliary data
[in]typetype of the auxiliary data
[in]sizesize of the auxiliary data
Returns
a pointer to the aux data of a given type on success, NULL otherwise

Definition at line 1051 of file ni_quadra_dec_api.c.

◆ ni_quadra_frame_free()

void ni_quadra_frame_free ( void *  opaque,
uint8_t *  data 
)

frame free, including void*


Parameters
[in]opaqueparameter to be got for processing or passed to free
[in]datadata array

Definition at line 61 of file ni_quadra_dec_api.c.

◆ ni_quadra_frame_get_aux_size()

int ni_quadra_frame_get_aux_size ( ni_quadra_dec_context_t ni_dec_ctx,
int  type 
)

get size from the frame auxiliary data of a given type if exists


Parameters
[in/out]ni_dec_ctx Pointer to ni_quadra_dec_context_t
[in]typetype of the auxiliary data to be retrieved
Returns
aux data size

Definition at line 1040 of file ni_quadra_dec_api.c.

◆ ni_quadra_frame_sync()

void ni_quadra_frame_sync ( ni_quadra_dec_context_t ni_dec_ctx)

Definition at line 1061 of file ni_quadra_dec_api.c.

◆ ni_quadra_setup_decoder()

int ni_quadra_setup_decoder ( ni_quadra_dec_context_t ni_dec_ctx)

Initialize init device session_context and init default params including ni_quadra_dec_context_t, ni_session_context_t, ni_decoder_params_t.


Parameters
[in/out]ni_dec_ctx Pointer to ni_quadra_dec_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 185 of file ni_quadra_dec_api.c.

◆ ni_quadra_symbolic_decoder_param()

int ni_quadra_symbolic_decoder_param ( ni_quadra_dec_context_t ni_dec_ctx,
int  type 
)

sync ni_decoder_input_params_t and ni_xcoder_params_t


Parameters
[in/out]ni_dec_ctx Pointer to ni_quadra_dec_context_t
[in]type0:sync ni_dec_input_params_t to ni_decoder_input_params_t 1:sync ni_decoder_input_params_t to ni_xcoder_params_t 2:copy semi_planar force_8_bit to ni_dec_input_params_t
Returns
On success NI_RETCODE_SUCCESS On failure NI_RETCODE_FAILURE NI_QUADRA_PARAM_WARNING_DEPRECATED

Definition at line 1461 of file ni_quadra_dec_api.c.