 |
libxcoder
5.2.0
|
Go to the documentation of this file.
45 #elif __linux__ || __APPLE__
47 #include <linux/types.h>
52 #include <semaphore.h>
72 #define NI_QUADRA_BEST_MODEL_LOAD_STR "bestmodelload"
73 #define NI_QUADRA_BEST_REAL_LOAD_STR "bestload"
77 #define NI_QUADRA_MAX_KEEP_ALIVE_TIMEOUT 100
78 #define NI_QUADRA_MIN_KEEP_ALIVE_TIMEOUT 1
79 #define NI_QUADRA_DEFAULT_KEEP_ALIVE_TIMEOUT 3
82 #define MAX_QUADRA_NUM_FRAMEPOOL_HWAVFRAME 128
86 #define NI_QUADRA_MAX_NUM_DATA_POINTERS 4
89 #define NI_QUADRA_MAX_NUM_AUX_DATA_PER_FRAME 16
92 #define NI_QUADRA_MAX_NUM_OF_DECODER_OUTPUTS 3
95 #define NI_QUADRA_MAX_PPU_PARAM_EXPR_CHAR 20
98 #define NI_QUADRA_MAX_FIFO_CAPACITY 120
101 #define NI_QUADRA_NOPTS_VALUE ((int64_t)UINT64_C(0x8000000000000000))
106 #define NI_QUADRA_MAX_WIDTH 8192
107 #define NI_QUADRA_MIN_WIDTH 144
108 #define NI_QUADRA_MAX_HEIGHT 8192
109 #define NI_QUADRA_MIN_HEIGHT 128
111 #define NIALIGN(x, a) (((x) + (a)-1) & ~((a)-1))
112 #define NIMAX(a, b) ((a) > (b) ? (a) : (b))
113 #define NIMIN(a, b) ((a) > (b) ? (b) : (a))
116 #define NI_QUADRA_SCALER_FLAG_IO \
118 #define NI_QUADRA_SCALER_FLAG_PC \
120 #define NI_QUADRA_SCALER_FLAG_PA \
122 #define NI_QUADRA_SCALER_FLAG_P2 \
124 #define NI_QUADRA_SCALER_FLAG_FCE \
126 #define NI_QUADRA_SCALER_FLAG_CS \
128 #define NI_QUADRA_SCALER_FLAG_CMP \
131 #define NI_QUADRA_AI_FLAG_IO 0x0001
132 #define NI_QUADRA_AI_FLAG_PC 0x0002
136 #define NI_QUADRA_MAX_RESOLUTION_WIDTH 8192
137 #define NI_QUADRA_MAX_RESOLUTION_HEIGHT 8192
139 #define NI_QUADRA_MIN_RESOLUTION_WIDTH_SCALER 32
140 #define NI_QUADRA_MIN_RESOLUTION_HEIGHT_SCALER 32
143 #define NI_QUADRA_MAX_SUPPORT_DRAWBOX_NUM 5
144 #define NI_QUADRA_MAX_SUPPORT_WATERMARK_NUM 6
146 #define NI_QUADRA_MAX_DEVICE_CNT 128
572 int height,
int out_format,
593 int video_width,
int video_height,
624 int options,
int rectangle_width,
int rectangle_height,
int rectangle_x,
625 int rectangle_y,
int rgba_color,
int frame_index,
int type);
752 uint8_t *data,
int width,
908 void *p_data,
float *dst, uint32_t num,
929 int video_width,
int video_height,
930 int linesize[],
int alignment,
996 int *height,
int ni_fmat,
997 int keep_alive_time);
1072 const char *device);
1092 uint8_t **dstbuf, uint8_t **dstdata,
1093 uint32_t *buf_size,
int width,
1094 int height,
int is_planar);
1126 int width,
int height,
int ni_fmat,
1127 int nb_planes,
const int *linesize,
1128 uint8_t **src_data);
1150 int width,
int height,
int ni_fmat,
1151 int nb_planes,
const int *linesize,
1152 uint8_t **dst_data);
1170 int num_extra_outputs);
1414 int32_t device_handle);
1434 int plane_stride[4],
1435 int plane_height[4]);
1641 int preferential_device_type,
1778 int video_width,
int video_height,
LIB_API int ni_quadra_filter_device_clone_hwframe(ni_quadra_filter_t *nifilter, ni_quadra_frameclone_desc_t *p_frameclone_desc)
Copy the data of src hwframe to dst hwframe.
@ NI_QUADRA_DEVICE_TYPE_MIN
LIB_API uint8_t ** ni_quadra_get_frame_data(void *niframe)
Get niframe data address.
enum _ni_quadra_codec_format ni_quadra_codec_format_t
@ NI_QUADRA_SCALER_OPCODE_STACK
LIB_API int ni_quadra_get_session_packet_num(void *session_ctx)
Get session_ctx send/recive packet number.
LIB_API int ni_quadra_init_internal_session(NIFramesContext *ni_ctx)
Init filter session context only malloc session.
@ NI_QUADRA_ERROR_VPU_RECOVERY
struct _ni_quadra_scaler_multi_drawbox_params_t ni_quadra_scaler_multi_drawbox_params_t
@ NI_QUADRA_SCALER_OPCODE_MERGE
struct _ni_quadra_card_info ni_quadra_card_info_t
LIB_API int ni_quadra_get_seiset_size()
Recycle a frame buffer on card.
@ NI_QUADRA_PIX_FMT_8_TILED4X4
LIB_API ni_quadra_log_level_t ni_quadra_ff_to_ni_log_level(int fflog_level)
Convert ffmpeg log level integer to appropriate ni_quadra_log_level_t.
@ NI_QUADRA_CODEC_HW_PAYLOAD_OFFSET
@ NI_QUADRA_CODEC_HW_DOWNLOAD
struct _ni_quadra_hw_device_info_coder_param ni_quadra_hw_device_info_coder_param_t
int32_t xcoders[NI_QUADRA_DEVICE_TYPE_XCODER_MAX][NI_QUADRA_MAX_DEVICE_CNT]
int ni_quadra_frame_buffer_alloc_pixfmt(void *p_frame, int pixel_format, int video_width, int video_height, int linesize[], int alignment, int extra_len)
Allocate memory for the frame buffer based on provided parameters taking into account the pixel forma...
LIB_API uint8_t * ni_quadra_get_niframe(void *niframe)
Get niframe address.
ni_quadra_hw_device_info_decoder_param_t * decoder_param
@ NI_QUADRA_PIXEL_PLANAR_MAX
struct _ni_quadra_hw_device_info_decoder_param ni_quadra_hw_device_info_decoder_param_t
LIB_API int32_t ni_quadra_get_device_handle(void *session_ctx)
Get session device handle id.
LIB_API void ni_quadra_set_device_handle(void *session_ctx, int32_t handle)
Set session device handle.
union _ni_quadra_network_layer_params_t::@31 quant_data
LIB_API ni_fifo_buffer_t * ni_fifo_initialize(uint32_t number_of_buffers, uint32_t size)
Initialize a fifo buffer.
struct _ni_quadra_network_layer_info ni_quadra_network_layer_info_t
LIB_API void ni_quadra_destory_hw_device_info_coder_param(ni_quadra_hw_device_info_coder_param_t *p_quadra_hw_device_info_coder_param)
Release a pointer to hw_device_info_coder_param_t instance created by create_hw_device_info_coder_par...
uint32_t scaler_operation
LIB_API int ni_quadra_get_session_status(void *session_ctx)
Get session context status.
LIB_API int ni_quadra_frame_buffer_alloc_hwenc(void *niframe, int video_width, int video_height, int extra_len)
LIB_API uint32_t ni_quadra_get_packet_data_len(void *nipacket)
Get nipacket data len.
@ NI_QUADRA_PIX_FMT_YUYV422
@ NI_QUADRA_SCALER_OPCODE_PAD
ni_quadra_card_info_t ** card_info
LIB_API int ni_quadra_device_session_write(void *p_ctx, void *p_data, ni_quadra_device_type_t device_type)
Sends data to the device If device_type is NI_DEVICE_TYPE_DECODER sends data packet to decoder If dev...
LIB_API void ni_quadra_set_session_runstatus(void *session_ctx, int status)
Set session context run status.
ni_quadra_scaler_drawbox_params_t multi_drawbox_params[NI_QUADRA_MAX_SUPPORT_DRAWBOX_NUM]
LIB_API int ni_quadra_get_device_id(void *session_ctx)
Get session device id.
LIB_API void ni_quadra_filter_close(ni_quadra_filter_t *nifilter)
Close filter.
LIB_API int ni_quadra_device_session_read(void *p_ctx, void *p_data, int device_type)
Read data from the device If device_type is NI_DEVICE_TYPE_DECODER reads data packet from decoder If ...
LIB_API int ni_quadra_filter_get_output_data(ni_quadra_filter_t *nifilter, uint8_t *data, int width, int height)
Get data from device.
LIB_API int ni_quadra_device_session_open(void *p_ctx, ni_quadra_device_type_t device_type)
Open a new device session depending on the device_type parameter If device_type is NI_DEVICE_TYPE_DEC...
@ NI_QUADRA_PIXEL_PLANAR_FORMAT_TILED4X4
LIB_API int ni_quadra_filter_hwframe_recycle(void *session_ctx, void *niframe)
Recycle a frame buffer on card.
LIB_API int ni_quadra_hwframe_buffer_recycle(niquadraFrameSurface1_t *surface, int32_t device_handle)
Recycle a frame buffer on card.
ni_quadra_network_layer_params_t * in_param
enum _ni_quadra_pixel_planar_format ni_quadra_pixel_planar_format
LIB_API uint8_t * ni_quadra_get_packet_data(void *nipacket)
Get nipacket data address.
@ NI_QUADRA_DEVICE_TYPE_MAX
uint32_t ui8enableRdoQuant
LIB_API uint32_t ni_quadra_get_frame_buffer_size(void *niframe)
Get niframe buffer size.
#define NI_QUADRA_MAX_DEVICE_CNT
@ NI_QUADRA_SCALER_OPCODE_CROP
@ NI_QUADRA_PIX_FMT_P010LE
struct _ni_quadra_frame_config ni_quadra_frame_config_t
LIB_API void ni_quadra_hw_device_info_free(ni_quadra_hw_device_info_t *p_hw_device_info)
Release a pointer to ni_hw_device_info_quadra_t instance created by create_hw_device_info_coder_param...
struct _ni_quadra_scaler_multi_watermark_params_t ni_quadra_scaler_multi_watermark_params_t
@ NI_QUADRA_PIX_FMT_10_TILED4X4
@ NI_QUADRA_PIX_FMT_YUV420P
@ NI_QUADRA_DEVICE_TYPE_UPLOAD
@ NI_QUADRA_CODEC_HW_ENABLE
LIB_API int ni_quadra_ai_config_network_binary(ni_quadra_filter_t *nifilter, ni_quadra_network_data_t *p_network, const char *file)
configure a network context based with the network binary
ni_quadra_codec_hw_actions
This is an enumeration for hw actions.
uint32_t number_of_buffers_used
@ NI_QUADRA_CODEC_FORMAT_VP9
LIB_API int ni_quadra_scaler_set_watermark_params(ni_quadra_filter_t *nifilter, ni_quadra_scaler_watermark_params_t *p_params)
Send a p_config command to configure watermark parameters.
LIB_API ni_quadra_hw_device_info_t * ni_quadra_hw_device_info_alloc(int device_type_num, int avaliable_card_num)
Create a pointer to ni_hw_device_info_quadra_t instance .
LIB_API int ni_quadra_scaler_set_drawbox_params(ni_quadra_filter_t *nifilter, ni_quadra_scaler_drawbox_params_t *p_params)
Send a p_config command to configure scaling drawbox parameters.
@ NI_QUADRA_SCALER_OPCODE_OVERLAY
@ NI_QUADRA_SCALER_OPCODE_IPOVLY
struct _ni_quadra_filter_t ni_quadra_filter_t
@ NI_QUADRA_DEVICE_TYPE_AI
LIB_API int ni_fifo_is_empty(ni_fifo_buffer_t *p_fifo)
Check if a fifo is empty.
@ NI_QUADRA_DEVICE_TYPE_ENCODER
@ NI_QUADRA_PIX_FMT_YUV420P10LE
@ NI_QUADRA_PIXEL_PLANAR_FORMAT_SEMIPLANAR
struct _ni_quadra_hw_device_info_threshold_param ni_quadra_hw_device_info_threshold_param_t
struct _niquadraFrameSurface1 niquadraFrameSurface1_t
LIB_API ni_quadra_hw_device_info_coder_param_t * ni_quadra_create_hw_device_info_coder_param(int mode)
Create a pointer to hw_device_info_coder_param_t instance. This instance will be created and set to d...
niquadraFrameSurface1_t ** surface_ptrs
LIB_API uint32_t ni_fifo_number_of_buffers(ni_fifo_buffer_t *p_fifo)
Get number of buffers used in fifo.
struct _ni_quadra_frameclone_desc ni_quadra_frameclone_desc_t
struct _ni_quadra_network_data ni_quadra_network_data_t
LIB_API int ni_quadra_device_session_close(void *p_ctx, int eos_recieved, ni_quadra_device_type_t device_type)
Close device session that was previously opened by calling ni_device_session_open() If device_type is...
LIB_API int ni_quadra_filter_get_buffer(NIFramesContext *ni_ctx, uint8_t **dstbuf, uint8_t **dstdata, uint32_t *buf_size, int width, int height, int is_planar)
Sends frame pool setup info to device.
ni_quadra_network_layer_info_t linfo
LIB_API uint16_t ni_quadra_get_frame_idx(void *niframe)
Get niframui16FrameIdxe.
LIB_API void ni_quadra_log_set_callback(void(*log_callback)(int, const char *, va_list))
Set ni_log() callback.
LIB_API void ni_quadra_filter_device_close(AVNIDeviceContext *ni_hw_ctx)
Close device.
ni_quadra_device_queue_t * p_device_queue
struct _ni_quadra_network_layer_params_t::@31::@33 affine
LIB_API void ni_quadra_log_set_level(int level)
Set ni_log_level.
LIB_API void ni_quadra_device_session_context_clear(void *p_ctx)
Clear already allocated session context.
void * src_session_io_data
LIB_API void ni_quadra_get_hw_yuv420p_dim(int width, int height, int factor, int is_semiplanar, int plane_stride[4], int plane_height[4])
Get dimension information of Netint HW YUV420p frame to be sent to encoder for encoding....
@ NI_QUADRA_SCALER_OPCODE_DELOGO
@ NI_QUADRA_CODEC_FORMAT_AV1
LIB_API void ni_quadra_filter_session_dl_set(void *session_ctx, bool value)
Set download filter session context.
@ NI_QUADRA_SCALER_OPCODE_WATERMARK
LIB_API int ni_quadra_init_split_rsrc(NIFramesContext *ni_ctx, int w, int h)
Init filter split context malloc session and set it default.
#define NI_QUADRA_MAX_SUPPORT_WATERMARK_NUM
LIB_API uint8_t * ni_quadra_get_frame_buffer(void *niframe)
Get niframe buffer address.
@ NI_QUADRA_SCALER_OPCODE_FLIP
LIB_API int ni_quadra_device_session_read_hwdesc(void *p_ctx, void *p_data, int device_type)
Read data from the device If device_type is NI_DEVICE_TYPE_DECODER reads data hwdesc from decoder If ...
LIB_API int ni_quadra_get_session_frame_num(void *session_ctx)
Get session_ctx send/recieve frame number.
LIB_API int ni_quadra_init_filters(ni_quadra_filter_t *nifilter)
Init filter.
LIB_API int ni_quadra_build_frame_pool(ni_quadra_filter_t *nifilter, int width, int height, int out_format, int pool_size)
Alloc frame pool for filter.
LIB_API int ni_quadra_check_hw_info(ni_quadra_hw_device_info_t **pointer_to_p_hw_device_info, int task_mode, ni_quadra_hw_device_info_threshold_param_t *hw_info_threshold_param, int preferential_device_type, ni_quadra_hw_device_info_coder_param_t *coder_param, int hw_mode, int consider_mem)
check hw info, return the appropriate card number to use depends on the load&task_num&used resource
LIB_API int ni_quadra_upload_device_session_open(NIFramesContext *ni_ctx)
Open hwupload filter.
int32_t suspended_device_handle
LIB_API int ni_quadra_ai_frame_buffer_alloc(void *p_frame, ni_quadra_network_data_t *p_network)
Allocate input layers memory for AI frame buffer based on provided parameters taking into account wid...
LIB_API int ni_quadra_filter_frames_init(NIFramesContext *ni_ctx, int *width, int *height, int ni_fmat, int keep_alive_time)
Init filter frame context and set value to session context.
@ NI_QUADRA_SEQ_CHANGE_DRAINING
LIB_API int ni_quadra_filter_hwup_frame(NIFramesContext *ni_ctx, niquadraFrameSurface1_t *dst_surf, int width, int height, int ni_fmat, int nb_planes, const int *linesize, uint8_t **src_data)
Upload frame.
ni_quadra_network_layer_offset_t * outset
@ NI_QUADRA_CODEC_HW_RSVD
LIB_API int ni_quadra_filter_device_config_frame(void *p_ctx, ni_quadra_frame_config_t *p_cfg)
Configure the 2D engine to work based on provided parameters.
struct _ni_quadra_scaler_watermark_params_t ni_quadra_scaler_watermark_params_t
struct AVNIDeviceContext AVNIDeviceContext
LIB_API void ni_quadra_session_timestamp_copy(void *src_ctx, void *dst_ctx)
Copy filter session context.
LIB_API int ni_quadra_filter_drawtext_prep_frames(void **niframe)
prepare frames for ni_drawtext filter
struct _ni_quadra_hw_device_info_ai_param ni_quadra_hw_device_info_ai_param_t
LIB_API int ni_quadra_filter_device_create(AVNIDeviceContext *ni_hw_ctx, const char *device)
Sends frame pool setup info to device.
LIB_API uint32_t ni_quadra_ai_network_layer_dims(ni_quadra_network_layer_params_t *p_param)
Get dims from ni_quadra_network_layer_params_t.
LIB_API void ni_fifo_free(ni_fifo_buffer_t *p_fifo)
Free a fifo.
LIB_API int ni_quadra_get_session_runstatus(void *session_ctx)
Get session context run status.
LIB_API void ni_quadra_filter_frame_free(void *opaque, uint8_t *data)
Free filter frame.
struct _ni_quadra_scaler_drawbox_params_t ni_quadra_scaler_drawbox_params_t
@ NI_QUADRA_SCALER_OPCODE_SCALE
LIB_API int ni_quadra_filter_frame_buffer_alloc_dl(void *niframe, int video_width, int video_height, int pixel_format)
Allocate preliminary memory for the frame buffer based on provided parameters.
ni_quadra_hw_device_info_scaler_param_t * scaler_param
@ NI_QUADRA_PIX_FMT_YUVJ420P
ni_quadra_hw_device_info_ai_param_t * ai_param
uint8_t * ni_quadra_filter_get_data3(void *p_frame)
Get niframe data3 from device.
struct _ni_quadra_device_queue ni_quadra_device_queue_t
@ NI_QUADRA_ERROR_INVALID_SESSION
LIB_API int ni_fifo_return_read(ni_fifo_buffer_t *p_fifo)
Push back the last read buffer to the fifo.
struct _ni_quadra_network_layer_offset ni_quadra_network_layer_offset_t
LIB_API int ni_quadra_device_session_copy(void *src_ctx, void *dst_ctx)
Copy filter session context.
enum _ni_quadra_scaler_opcode ni_quadra_scaler_opcode_t
LIB_API int ni_quadra_filter_device_session_init_framepool(NIFramesContext *ni_ctx, uint32_t pool_size, uint32_t pool)
Sends frame pool setup info to device.
LIB_API void ni_quadra_set_framerate(void *p_ctx, int num, int den)
struct _ni_quadra_hw_device_info ni_quadra_hw_device_info_t
LIB_API ni_quadra_device_pool_t * ni_quadra_rsrc_get_device_pool(void)
Create and return the allocated ni_device_pool_t struct.
#define NI_QUADRA_MAX_SUPPORT_DRAWBOX_NUM
LIB_API int ni_quadra_filter_frame_buffer_alloc_hwenc(ni_quadra_filter_t *nifilter, int video_width, int video_height, int extra_len)
Allocate memory for the hwDescriptor buffer based on provided parameters taking into account pic size...
LIB_API void ni_quadra_get_frame_data_len(void *niframe, uint32_t *dst_datalen)
Get niframe data datalen.
ni_quadra_network_layer_params_t * out_param
LIB_API int ni_quadra_rsrc_get_device_by_block_name(const char *blk_name, ni_quadra_device_type_t device_type)
Get GUID of the device by block device name and type.
LIB_API int ni_quadra_filter_hwdl_frame(NIFramesContext *ni_ctx, niquadraFrameSurface1_t *src_surf, int width, int height, int ni_fmat, int nb_planes, const int *linesize, uint8_t **dst_data)
Download frame.
@ NI_QUADRA_PIX_FMT_YUV420P10BE
@ NI_QUADRA_SCALER_OPCODE_DRAWBOX
@ NI_QUADRA_PARAM_WARNING_DEPRECATED
@ NI_QUADRA_PIXEL_PLANAR_FORMAT_PLANAR
LIB_API int ni_quadra_frame_buffer_free(void *p_data)
Free frame buffer that was previously allocated with either ni_frame_buffer_alloc or ni_encoder_frame...
LIB_API void ni_quadra_device_close(int32_t handle)
Close device handle.
@ NI_QUADRA_CODEC_FORMAT_H265
ni_quadra_hw_device_info_encoder_param_t * encoder_param
@ NI_QUADRA_DEVICE_TYPE_DECODER
@ NI_QUADRA_PIX_FMT_UYVY422
struct _ni_quadra_network_layer_params_t ni_quadra_network_layer_params_t
LIB_API int ni_quadra_get_session_blkiohandle(void *session_ctx)
Get session context blk_io_handle.
struct _ni_quadra_split_context_t ni_quadra_split_context_t
struct _ni_quadra_hw_device_info_encoder_param ni_quadra_hw_device_info_encoder_param_t
LIB_API uint32_t ni_quadra_get_session_id(void *session_ctx)
Get session device session id.
int ni_quadra_device_session_hwdl(void *p_ctx, void *p_data, niquadraFrameSurface1_t *hwdesc)
Reads YUV data from hw descriptor stored location on device.
struct _ni_quadra_hw_device_info_scaler_param ni_quadra_hw_device_info_scaler_param_t
LIB_API int ni_quadra_packet_buffer_free(void *p_data)
Free packet buffer that was previously allocated with ni_packet_buffer_alloc.
uint32_t number_of_buffers
LIB_API uint8_t * ni_fifo_generic_write(ni_fifo_buffer_t *p_fifo)
Get free buffer to write in the fifo.
LIB_API int ni_quadra_ai_packet_buffer_alloc(void *p_pkt, ni_quadra_network_data_t *p_network)
Allocate output layers memory for the packet buffer based on provided network.
uint16_t rectangle_height
@ NI_QUADRA_CODEC_FORMAT_H264
@ NI_QUADRA_CODEC_HW_NONE
enum ni_quadra_codec_hw_actions ni_quadra_codec_hw_actions_t
This is an enumeration for hw actions.
@ NI_QUADRA_SCALER_OPCODE_ROTATE
LIB_API uint8_t * ni_fifo_generic_read(ni_fifo_buffer_t *p_fifo)
Get first filled buffer to read in the fifo.
@ NI_QUADRA_DEVICE_TYPE_SCALER
_ni_quadra_pixel_planar_format
LIB_API int ni_quadra_filter_device_alloc_frame(ni_quadra_filter_t *nifilter, int width, int height, int format, int options, int rectangle_width, int rectangle_height, int rectangle_x, int rectangle_y, int rgba_color, int frame_index, int type)
Allocate a frame on the device for 2D engine or AI engine to work on based on provided parameters.
ni_quadra_scaler_watermark_params_t multi_watermark_params[NI_QUADRA_MAX_SUPPORT_WATERMARK_NUM]
uint32_t xcoder_cnt[NI_QUADRA_DEVICE_TYPE_XCODER_MAX]
const LIB_API uint8_t * ni_find_start_code(const uint8_t *p, const uint8_t *end, uint32_t *state)
Find the next start code.
niquadraFrameSurface1_t * surfaces_internal
struct _ni_quadra_network_layer_params_t::@31::@32 dfp
struct NIFramesContext NIFramesContext
LIB_API int ni_fifo_is_full(ni_fifo_buffer_t *p_fifo)
Check if a fifo is full.
LIB_API void ni_quadra_split_ctx_set(NIFramesContext *ni_ctx, niquadraFrameSurface1_t *ni_surf, niquadraFrameSurface1_t *ni_surf_1, niquadraFrameSurface1_t *ni_surf_2, int num_extra_outputs)
Split context set.
@ NI_QUADRA_CODEC_HW_UPLOAD
LIB_API int ni_quadra_filter_device_alloc_dst_frame(ni_quadra_filter_t *nifilter, niquadraFrameSurface1_t *p_hwdesc, int type)
Allocate a frame on the device and return the frame index.
ni_quadra_split_context_t split_ctx
@ NI_QUADRA_CODEC_FORMAT_JPEG
LIB_API int ni_quadra_ai_config_hvsplus(ni_quadra_filter_t *nifilter, ni_quadra_network_data_t *p_network, int nb_width, int nb_height, int level, int format)
configure a hvsplus context based with the network binary
struct _ni_quadra_device_pool ni_quadra_device_pool_t
@ NI_QUADRA_DEVICE_TYPE_XCODER_MAX
ni_quadra_network_layer_offset_t * inset
struct _ni_fifo_buffer_t ni_fifo_buffer_t
LIB_API int ni_quadra_filter_frames_close(NIFramesContext *ni_ctx, int pool_size)
Close filter context and frame.
LIB_API int ni_quadra_network_layer_convert_output(void *p_data, float *dst, uint32_t num, ni_quadra_network_data_t *p_network, uint32_t layer)
Convert data from nipacket to dst data.