libxcoder  5.4.0
ni_defs.h
Go to the documentation of this file.
1 /*******************************************************************************
2  *
3  * Copyright (C) 2022 NETINT Technologies
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a copy
6  * of this software and associated documentation files (the "Software"), to deal
7  * in the Software without restriction, including without limitation the rights
8  * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9  * copies of the Software, and to permit persons to whom the Software is
10  * furnished to do so, subject to the following conditions:
11  *
12  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
13  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
14  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
15  * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
16  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
17  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
18  * SOFTWARE.
19  *
20  ******************************************************************************/
21 
22 /*!*****************************************************************************
23 * \file ni_defs.h
24 *
25 * \brief Common NETINT definitions used by all modules
26 *******************************************************************************/
27 
28 #pragma once
29 
30 #ifdef _WIN32
31 #include <windows.h>
32 #include <process.h>
33 #include <malloc.h>
34 #elif __linux__ || __APPLE__
35 #if __linux__
36 #include <linux/types.h>
37 #include <unistd.h>
38 #include <sys/syscall.h>
39 #include <linux/aio_abi.h>
40 #endif
41 #include <sys/time.h>
42 #include <pthread.h>
43 #include <errno.h>
44 #include <semaphore.h>
45 #endif
46 
47 #include <assert.h>
48 #include <ctype.h>
49 #include <inttypes.h>
50 #include <signal.h>
51 #include <stdbool.h>
52 #include <stdint.h>
53 #include <stdio.h>
54 #include <stdlib.h>
55 #include <string.h>
56 #include <time.h>
57 #include "ni_release_info.h"
58 
59 #ifdef __cplusplus
60 extern "C"
61 {
62 #endif
63 
64 #if defined(__GNUC__) || defined(__clang__)
65 # define NI_UNUSED __attribute__((unused))
66 #else
67 # define NI_UNUSED
68 #endif
69 
70 #if !defined(NI_WARN_AS_ERROR) && !defined(__clang__) && defined(__GNUC__)
71  #define NI_DEPRECATED __attribute__((deprecated))
72  #define NI_DEPRECATED_MACRO \
73  _Pragma("GCC warning \"A Netint macro on this line is deprecated\"")
74  #define NI_DEPRECATE_MACRO(X)
75 #elif !defined(NI_WARN_AS_ERROR) && !defined(__clang__) && defined(_MSC_VER)
76  #define NI_DEPRECATED __declspec(deprecated)
77  #define NI_DEPRECATED_MACRO
78  #define NI_DEPRECATE_MACRO(X) __pragma(deprecated(X))
79 #else
80  #define NI_DEPRECATED
81  #define NI_DEPRECATED_MACRO
82  #define NI_DEPRECATE_MACRO(X)
83 #endif
84 
85 // NI_XCODER_REVISION can be read to determine release package version and FW to
86 // SW compatibility. Recommend using ni_get_*_ver() functions in ni_util.h to
87 // read correct version numbers if updating libxcoder but not linked apps.
88 // NI_XCODER_REVISION[0:2] = SW release version
89 // NI_XCODER_REVISION[3] = compatible FW API semantic major version
90 // NI_XCODER_REVISION[4:5] = compatible FW API semantic minor version
91 // NI_XCODER_REVISION[6:7] = optional
92 // reference: https://netint.atlassian.net/l/c/woqFMHES
93 // You must change the name in the comment of REVISION line to your name when
94 // you change the version number. If a merge conflict arises on a REVISION line,
95 // you may need to increment the version number again for your change/commit.
96 // Changes here should also be synchronized to NI_QUADRA_XCODER_REVISION in
97 // libxcoder_FFmpeg3.1.1only/source/ni_macro_defs_quadra.h
98 #define NI_XCODER_REVISION "5406sJr2" // william.chen
99 #define NI_XCODER_REVISION_API_MAJOR_VER_IDX 3
100 #define NI_XCODER_REVISION_API_MINOR_VER_IDX 4
101 
102 // LIBXCODER_API_VERSION can be read to determine libxcoder to linked apps/APIs
103 // compatibility. Recommend using ni_get_*_ver() functions in ni_util.h to
104 // read version numbers.
105 // reference: https://netint.atlassian.net/l/c/fVEGmYEZ
106 // You must change the name in the comment of VERSION line to your name when
107 // you change the version number. If a merge conflict arises on a VERSION line,
108 // you may need to increment the version number again for your change/commit.
109 // If make changes in FFmpeg/Libav that require changes in Libxcoder, update
110 // minimum LIBXCODER_API_VERSION_MINOR in FFmpeg*/configure
111 #define MACRO_TO_STR(s) #s
112 #define MACROS_TO_VER_STR(a, b) MACRO_TO_STR(a.b)
113 #define LIBXCODER_API_VERSION_MAJOR 2 // steven.zhou
114 #define LIBXCODER_API_VERSION_MINOR 79 // minglong.zhang
115 #define LIBXCODER_API_VERSION MACROS_TO_VER_STR(LIBXCODER_API_VERSION_MAJOR, \
116  LIBXCODER_API_VERSION_MINOR)
117 
118 #define NI_LITTLE_ENDIAN_PLATFORM 0
119 #define NI_BIG_ENDIAN_PLATFORM 1
121 #define NI_MAX_P2P_SGL_ENTRY 128
122 
123 #define QUADRA 1
124 
125 #ifndef PLATFORM_ENDIANESS
126 #define PLATFORM_ENDIANESS NI_LITTLE_ENDIAN_PLATFORM
127 #endif
128 
129 #define NETINT_PCI_VENDOR_ID 0x1D82
131 #ifdef _WIN32
132 #else
133 #endif
134 
135 #ifdef _WIN32
136 typedef struct _ni_pthread_t
137 {
138  void *handle;
139  void *(*start_routine)(void *arg);
140  void *arg;
141  void *rc;
142 } ni_pthread_t;
143 typedef CRITICAL_SECTION ni_pthread_mutex_t;
144 typedef CONDITION_VARIABLE ni_pthread_cond_t;
145 typedef void ni_pthread_attr_t;
146 typedef void ni_pthread_condattr_t;
147 typedef void ni_pthread_mutexattr_t;
148 typedef void ni_sigset_t;
149 typedef HANDLE ni_device_handle_t;
150 typedef HANDLE ni_event_handle_t;
151 typedef HANDLE ni_lock_handle_t;
152 typedef unsigned ni_aio_context_t;
153 typedef unsigned ni_iocb_t;
154 typedef unsigned ni_io_event_t;
155 #define NI_INVALID_DEVICE_HANDLE (INVALID_HANDLE_VALUE)
156 #define NI_INVALID_EVENT_HANDLE (NULL)
157 #define NI_INVALID_LOCK_HANDLE (NULL)
158 #ifdef XCODER_DLL
159 #ifdef LIB_EXPORTS
160 #define LIB_API __declspec(dllexport)
161 #else
162 #define LIB_API __declspec(dllimport)
163 #endif
164 #else
165 #define LIB_API
166 #endif
167 
168 #define NI_MAX_FRAME_CHUNK_SZ 0x80000 //0x10000
169 #define NI_MAX_PACKET_SZ 0x20000 //0x10000
170 #define NI_MAX_ENC_PACKET_SZ 3133440
171 
172 #elif __linux__
173 typedef pthread_t ni_pthread_t;
174 typedef pthread_mutex_t ni_pthread_mutex_t;
175 typedef pthread_cond_t ni_pthread_cond_t;
176 typedef pthread_attr_t ni_pthread_attr_t;
177 typedef pthread_condattr_t ni_pthread_condattr_t;
178 typedef pthread_mutexattr_t ni_pthread_mutexattr_t;
179 typedef sigset_t ni_sigset_t;
180 typedef int32_t ni_device_handle_t;
181 typedef int32_t ni_event_handle_t;
182 typedef int32_t ni_lock_handle_t;
183 typedef unsigned long ni_aio_context_t;
184 typedef struct iocb ni_iocb_t;
185 typedef struct io_event ni_io_event_t;
186 #define NI_INVALID_DEVICE_HANDLE (-1)
187 #define NI_INVALID_EVENT_HANDLE (-1)
188 #define NI_INVALID_LOCK_HANDLE (-1)
189 #define LIB_API
190 
191 #define SYS_PARAMS_PREFIX_PATH "/sys/block/"
192 #define SYS_PREFIX_SZ strlen(SYS_PARAMS_PREFIX_PATH)
193 #define KERNEL_NVME_MAX_SEG_PATH "/queue/max_segments"
194 #define KERNEL_NVME_MAX_SEG_SZ_PATH "/queue/max_segment_size"
195 #define KERNEL_NVME_MIN_IO_SZ_PATH "/queue/minimum_io_size"
196 #define KERNEL_NVME_MAX_HW_SEC_KB_PATH "/queue/max_hw_sectors_kb"
197 #define MIN_NVME_DEV_NAME_LEN 7 //has to be at least nvmeXnY
198 #define KERNEL_NVME_FILE_NAME_MAX_SZ \
199  (SYS_PREFIX_SZ + strlen(KERNEL_NVME_MAX_SEG_SZ_PATH) + \
200  MIN_NVME_DEV_NAME_LEN + 10)
201 #define DEFAULT_IO_TRANSFER_SIZE 520192
202 #define MAX_IO_TRANSFER_SIZE 3133440
203 
204 #elif __APPLE__
205 typedef pthread_t ni_pthread_t;
206 typedef pthread_mutex_t ni_pthread_mutex_t;
207 typedef pthread_cond_t ni_pthread_cond_t;
208 typedef pthread_attr_t ni_pthread_attr_t;
209 typedef pthread_condattr_t ni_pthread_condattr_t;
210 typedef pthread_mutexattr_t ni_pthread_mutexattr_t;
211 typedef sigset_t ni_sigset_t;
212 typedef int32_t ni_device_handle_t;
213 typedef int32_t ni_event_handle_t;
214 typedef int32_t ni_lock_handle_t;
215 typedef unsigned ni_aio_context_t;
216 typedef unsigned ni_iocb_t;
217 typedef unsigned ni_io_event_t;
218 #define NI_INVALID_DEVICE_HANDLE (-1)
219 #define NI_INVALID_EVENT_HANDLE (-1)
220 #define NI_INVALID_LOCK_HANDLE (-1)
221 #define LIB_API
222 #define MAX_IO_TRANSFER_SIZE 3133440
223 #endif /* _WIN32 */
224 
225 // number of system last error
226 #ifdef _WIN32
227 #define NI_ERRNO (GetLastError())
228 #else
229 #define NI_ERRNO (errno)
230 #endif
231 
232 #define NI_INVALID_HWID (-1)
233 #define NI_INVALID_IO_SIZE (0)
234 
235 #define NI_MAX_DEVICE_CNT 128
236 #define NI_MAX_DEVICE_NAME_LEN 32
237 
238 #define NI_NVME_PREFIX "nvme"
239 #define NI_MAX_PACKET_SZ 0x20000
240 #define NI_POLL_INTERVAL (2 * 1000)
241 
242 // The macro definition in ni_quadra_filter_api.h need to be synchronized with libxcoder
243 // If you change this,you should also change NI_QUADRA_MAX_NUM_DATA_POINTERS in ni_quadra_filter_api.h
244 #define NI_MAX_NUM_DATA_POINTERS 4
245 
246 #define NI_MAX_NUM_SW_FRAME_DATA_POINTERS 3
247 
248 #define NI_MAX_CONTEXTS_PER_HW_INSTANCE 128
249 #define NI_MAX_4K_FPS_QUADRA 240
250 
251 #define NI_MAX_DEVICES_PER_HW_INSTANCE 4
252 
253 // The macro definition in ni_quadra_filter_api.h need to be synchronized with libxcoder
254 // If you change this,you should also change NI_QUADRA_MAX_NUM_OF_DECODER_OUTPUTS in ni_quadra_filter_api.h
255 #define NI_MAX_NUM_OF_DECODER_OUTPUTS 3
256 
257 // The macro definition in ni_quadra_filter_api.h need to be synchronized with libxcoder
258 // If you change this,you should also change NI_QUADRA_MAX_PPU_PARAM_EXPR_CHAR in ni_quadra_filter_api.h
259 #define NI_MAX_PPU_PARAM_EXPR_CHAR 20
260 
261 #define NI_MAX_TX_SZ 0xA00000
262 
263 #define NI_MEM_PAGE_ALIGNMENT 0x1000
264 
265 #define NI_MAX_DR_HWDESC_FRAME_INDEX 5363
266 #define NI_MAX_DR_HWDESC_FRAME_INDEX_2 4993
267  // If P2P area changes in firmware these constants must be updated
268 #define NI_MIN_HWDESC_P2P_BUF_ID 5364
269 #define NI_MAX_HWDESC_P2P_BUF_ID 5525
270 
271 #define NI_MAX_SR_HWDESC_FRAME_INDEX 2457
272 #define NI_MAX_SR_HWDESC_FRAME_INDEX_2 2287
273 #define NI_MAX_SR_HWDESC_FRAME_INDEX_3_REMOVE_P2P 2439
274 #define NI_MAX_SR_HWDESC_FRAME_INDEX_4_4G 1248
275 
276  // If P2P area changes in firmware these constants must be updated
277 #define NI_MIN_SR_HWDESC_P2P_BUF_ID 2458
278 #define NI_MAX_SR_HWDESC_P2P_BUF_ID 2619
279 #define NI_MAX_SR_HWDESC_P2P_BUF_ID_4G 2458
280 
281  //Feed this ni_session_context_t->ddr_config
282 #define NI_GET_MIN_HWDESC_P2P_BUF_ID(x) ((x==1 || x==3 || x==6)?NI_MIN_SR_HWDESC_P2P_BUF_ID:NI_MIN_HWDESC_P2P_BUF_ID)
283 #define NI_GET_MAX_HWDESC_P2P_BUF_ID(x) ((x==1 || x==3 || x==6)?((x==6)?NI_MAX_SR_HWDESC_P2P_BUF_ID_4G:NI_MAX_SR_HWDESC_P2P_BUF_ID):NI_MAX_HWDESC_P2P_BUF_ID)
284 
285 #ifndef DEPRECATION_AS_ERROR
286 //use NI_MAX_DR_HWDESC_FRAME_INDEX or NI_GET_MAX_HWDESC_FRAME_INDEX
288 #define NI_MAX_HWDESC_FRAME_INDEX NI_DEPRECATED_MACRO NI_MAX_DR_HWDESC_FRAME_INDEX
289 #endif
290 
291 //input param is DDR config of target device
292 #define NI_GET_MAX_HWDESC_FRAME_INDEX(x) \
293  (x == 1 ? NI_MAX_SR_HWDESC_FRAME_INDEX: \
294  (x == 2 ? NI_MAX_DR_HWDESC_FRAME_INDEX: \
295  (x == 3 ? NI_MAX_SR_HWDESC_FRAME_INDEX_2: \
296  (x == 4 ? NI_MAX_DR_HWDESC_FRAME_INDEX_2: \
297  (x == 5 ? NI_MAX_SR_HWDESC_FRAME_INDEX_3_REMOVE_P2P: \
298  NI_MAX_SR_HWDESC_FRAME_INDEX_4_4G)))))
299 
300 #define NI_MAX_UPLOAD_INSTANCE_FRAMEPOOL 100
301 
302  // for pts values storage
303 #define NI_MAX_DEC_REJECT 1024
304  //DTS PTS FIFO size
305 #define NI_FIFO_SZ 1024
306 
307 //PTS gap to signal to signal pts jump
308 #define NI_MAX_PTS_GAP 32
309 
310 //PTS gap to signal to signal pts jump
311 #define NI_MAX_I_P_DIST 8
312 
313 // invalid sei type
314 #define NI_INVALID_SEI_TYPE (-1)
315 
316 // max count of custom sei per packet
317 #define NI_MAX_CUSTOM_SEI_CNT 20
318 
319 //bytes size of meta data sent together with YUV: from f/w decoder to app
320 #define NI_FW_META_DATA_SZ 104 //metadataDecFrame on dec FW (including hwdesc x3)
321 // size of meta data sent together with YUV data: from app to f/w encoder
322 #define NI_APP_ENC_FRAME_META_DATA_SIZE 72
323 
324 #define NI_APP_ENC_FRAME_META_DATA_SIZE_UNDER_MAJOR_6_MINOR_Q 56
325 #define NI_APP_ENC_FRAME_META_DATA_SIZE_UNDER_MAJOR_6_MINOR_rc 64
326 
327 #define MAX_AV1_ENCODER_GOP_NUM 8
328 
329 #define NI_MAX_FILTER_POOL_SIZE 4
330 
331 #if defined(LRETURN)
332 #undef LRETURN
333 #define LRETURN goto end
334 #undef END
335 #define END end
336 #else
337 #define LRETURN goto end
338 #define END end
339 #endif
340 
341 #define ni_assert(expression) assert(expression)
342 
344 {
349 
350 static inline int is_supported_xcoder(int x)
351 {
352  return (NI_XCODER_QUADRA == x);
353 }
354 
355  typedef enum
356  {
358 
359  // xcoder instance types
365 
366  // pseudo types
367  NI_DEVICE_TYPE_UPLOAD = 4, // share instance with NI_DEVICE_TYPE_ENCODER
368 
371 
372 // CPU Log definitions
373 #define CPU_LOG_BUFFER_SIZE (1 * 1024 * 1024)
374 #define TOTAL_CPU_LOG_BUFFER_SIZE \
375  (CPU_LOG_BUFFER_SIZE * 5) // g_np/tp/fp/ep/dp_cpu_log_buffer
376 #define CPU_LOG_CYCLES_PER_CHECK (10000)
377 typedef enum
378 {
379  ALL_CORE = 0x00,
380  NVME_CORE = 0x01,
381  EP_CORE = 0x02,
382  DP_CORE = 0x03,
383  TP_CORE = 0x04,
384  FP_CORE = 0x05,
385  NUM_OF_CORES = 0x06,
387 
389 {
390  uint32_t ui32WrBufAvailSize; // instance write buffer size available
391  uint32_t ui32RdBufAvailSize; // instance read buffer size available
392 
393  uint32_t ui32FramesInput;
398  uint32_t ui32InstErrors;
399 
400  uint16_t ui16SessionId;
401  uint16_t ui16ErrorCount;
408  uint32_t reserved;
409 
411  uint8_t ui8Reserved[3];
414  uint32_t ui32Reserved[5];
416 
417 typedef struct _ni_p2p_sgl_t
418 {
419  uint32_t ui32NumEntries;
422 } ni_p2p_sgl_t;
423 
424 #define IS_XCODER_DEVICE_TYPE(t) \
425  ((ni_device_type_t)t > NI_DEVICE_TYPE_MIN && \
426  (ni_device_type_t)t < NI_DEVICE_TYPE_XCODER_MAX)
427 #define GET_XCODER_DEVICE_TYPE(t) \
428  ((ni_device_type_t)t == NI_DEVICE_TYPE_UPLOAD ? \
429  NI_DEVICE_TYPE_ENCODER : \
430  (ni_device_type_t)t)
431 #define GET_XCODER_DEVICE_TYPE_STR(t) \
432  (IS_XCODER_DEVICE_TYPE(GET_XCODER_DEVICE_TYPE(t)) ? \
433  g_device_type_str[GET_XCODER_DEVICE_TYPE(t)] : \
434  "Invalid device type")
435 
436 NI_UNUSED static const char *g_device_type_str[] = {"decoder", "encoder", "scaler", "AI", "uploader"};
437 NI_UNUSED static const char g_device_type_chr[] = {'d', 'e', 's', 'a'};
438 
439 typedef enum
440 {
444  -2,
449  -6,
453  -9,
455  -10,
457  -11,
460  -13,
463  -15,
470  -21,
474  -24,
476  -25,
478  -26,
480  -27,
482  -28,
484  -29,
486  -30,
488  -31,
493  -35,
495  -36,
497  -37,
499  -38,
505  -43,
509  -46,
511  -47,
513  -48,
515  -49,
517  -50,
519  -51,
522  -53,
526  -56,
528  -57,
532  -60,
539 
541  0x100,
544  0x101,
552  0x302,
554  0x303,
557  0x305,
563  0x3FE,
565  0x3FF,
566 } ni_retcode_t;
567 
568 typedef enum _ni_nvme_opcode
569 {
576  nvme_cmd_dsm = 0x09,
584 
585 typedef enum _ni_scaler_opcode
586 {
601 
602 typedef enum _ni_ai_status
603 {
628 #ifdef __cplusplus
629 }
630 #endif
NI_RETCODE_PARAM_ERROR_CONF_WIN_BOT
@ NI_RETCODE_PARAM_ERROR_CONF_WIN_BOT
Definition: ni_defs.h:481
NI_RETCODE_ERROR_VPU_RECOVERY
@ NI_RETCODE_ERROR_VPU_RECOVERY
Definition: ni_defs.h:529
NI_AI_STATUS_MODEL_NOT_FOUND
@ NI_AI_STATUS_MODEL_NOT_FOUND
Definition: ni_defs.h:619
ni_release_info.h
Release identification data generated at release time.
_ni_session_statistic_t::ui32InstErrors
uint32_t ui32InstErrors
Definition: ni_defs.h:398
NI_UNUSED
#define NI_UNUSED
Definition: ni_defs.h:67
NI_AI_STATUS_ALREADY_INITIALIZED
@ NI_AI_STATUS_ALREADY_INITIALIZED
Definition: ni_defs.h:607
NI_DEVICE_TYPE_ENCODER
@ NI_DEVICE_TYPE_ENCODER
Definition: ni_defs.h:361
_ni_session_statistic_t::ui32FramesErrorRatio
uint32_t ui32FramesErrorRatio
Definition: ni_defs.h:413
_ni_p2p_sgl_t
Definition: ni_defs.h:417
_ni_xcoder_prod_line
_ni_xcoder_prod_line
Definition: ni_defs.h:343
_ni_session_statistic_t::ui16ErrorCount
uint16_t ui16ErrorCount
Definition: ni_defs.h:401
NI_RETCODE_NVME_SC_VPU_GENERAL_ERROR
@ NI_RETCODE_NVME_SC_VPU_GENERAL_ERROR
Definition: ni_defs.h:564
NI_AI_STATUS_OUTPUT_BUFFER_EMPTY
@ NI_AI_STATUS_OUTPUT_BUFFER_EMPTY
Definition: ni_defs.h:612
ni_nvme_opcode_t
enum _ni_nvme_opcode ni_nvme_opcode_t
NI_RETCODE_NVME_SC_RESOURCE_IS_EMPTY
@ NI_RETCODE_NVME_SC_RESOURCE_IS_EMPTY
Definition: ni_defs.h:551
NI_RETCODE_PARAM_ERROR_RCENABLE
@ NI_RETCODE_PARAM_ERROR_RCENABLE
Definition: ni_defs.h:490
NI_RETCODE_NVME_SC_RESOURCE_UNAVAILABLE
@ NI_RETCODE_NVME_SC_RESOURCE_UNAVAILABLE
Definition: ni_defs.h:550
_ni_session_statistic_t
Definition: ni_defs.h:388
NI_AI_STATUS_NOT_INITIALIZED
@ NI_AI_STATUS_NOT_INITIALIZED
Definition: ni_defs.h:606
NI_DEVICE_TYPE_DECODER
@ NI_DEVICE_TYPE_DECODER
Definition: ni_defs.h:360
NI_XCODER_NONE
@ NI_XCODER_NONE
Definition: ni_defs.h:345
NI_RETCODE_ERROR_GET_DEVICE_POOL
@ NI_RETCODE_ERROR_GET_DEVICE_POOL
Definition: ni_defs.h:520
NI_SCALER_OPCODE_WATERMARK
@ NI_SCALER_OPCODE_WATERMARK
Definition: ni_defs.h:596
NI_AI_STATUS_INPUT_BUFFER_FULL
@ NI_AI_STATUS_INPUT_BUFFER_FULL
Definition: ni_defs.h:611
ni_device_type_t
ni_device_type_t
Definition: ni_defs.h:355
NI_RETCODE_SUCCESS
@ NI_RETCODE_SUCCESS
Definition: ni_defs.h:441
ni_p2p_sgl_t
struct _ni_p2p_sgl_t ni_p2p_sgl_t
NI_RETCODE_PARAM_ERROR_PIC_WIDTH
@ NI_RETCODE_PARAM_ERROR_PIC_WIDTH
Definition: ni_defs.h:494
NI_DEVICE_TYPE_UPLOAD
@ NI_DEVICE_TYPE_UPLOAD
Definition: ni_defs.h:367
NI_XCODER_QUADRA
@ NI_XCODER_QUADRA
Definition: ni_defs.h:347
NI_RETCODE_PARAM_ERROR_AREA_TOO_BIG
@ NI_RETCODE_PARAM_ERROR_AREA_TOO_BIG
Definition: ni_defs.h:516
NI_RETCODE_PARAM_ERROR_CUSIZE_MODE_32X32_EN
@ NI_RETCODE_PARAM_ERROR_CUSIZE_MODE_32X32_EN
Definition: ni_defs.h:502
NI_AI_STATUS_IO_BUSY
@ NI_AI_STATUS_IO_BUSY
Definition: ni_defs.h:608
NI_RETCODE_PARAM_ERROR_DY_MERGE_8X8_EN
@ NI_RETCODE_PARAM_ERROR_DY_MERGE_8X8_EN
Definition: ni_defs.h:466
NI_SCALER_OPCODE_AI_ALIGN
@ NI_SCALER_OPCODE_AI_ALIGN
Definition: ni_defs.h:599
_ni_session_statistic_t::ui8Reserved
uint8_t ui8Reserved[3]
Definition: ni_defs.h:411
NI_RETCODE_ERROR_STREAM_ERROR
@ NI_RETCODE_ERROR_STREAM_ERROR
Definition: ni_defs.h:538
_ni_session_statistic_t::ui32FramesCorrupted
uint32_t ui32FramesCorrupted
Definition: ni_defs.h:412
NI_SCALER_OPCODE_IPOVLY
@ NI_SCALER_OPCODE_IPOVLY
Definition: ni_defs.h:595
NI_SCALER_OPCODE_FLIP
@ NI_SCALER_OPCODE_FLIP
Definition: ni_defs.h:589
_ni_session_statistic_t::ui32WrBufAvailSize
uint32_t ui32WrBufAvailSize
Definition: ni_defs.h:390
NI_SCALER_OPCODE_CROP
@ NI_SCALER_OPCODE_CROP
Definition: ni_defs.h:588
_ni_nvme_opcode
_ni_nvme_opcode
Definition: ni_defs.h:568
nvme_cmd_write
@ nvme_cmd_write
Definition: ni_defs.h:571
NI_RETCODE_PARAM_ERROR_CONF_WIN_TOP
@ NI_RETCODE_PARAM_ERROR_CONF_WIN_TOP
Definition: ni_defs.h:479
NI_AI_STATUS_INVALID_INSTANCE
@ NI_AI_STATUS_INVALID_INSTANCE
Definition: ni_defs.h:624
NUM_OF_CORES
@ NUM_OF_CORES
Definition: ni_defs.h:385
NI_SCALER_OPCODE_DELOGO
@ NI_SCALER_OPCODE_DELOGO
Definition: ni_defs.h:597
_ni_session_statistic_t::ui32FramesCompleted
uint32_t ui32FramesCompleted
Definition: ni_defs.h:395
NI_RETCODE_PARAM_ERROR_CONF_WIN_L
@ NI_RETCODE_PARAM_ERROR_CONF_WIN_L
Definition: ni_defs.h:483
NI_RETCODE_INVALID_PARAM
@ NI_RETCODE_INVALID_PARAM
Definition: ni_defs.h:443
_ni_session_statistic_t::ui32FramesBuffered
uint32_t ui32FramesBuffered
Definition: ni_defs.h:394
NI_RETCODE_PARAM_ERROR_MX_NUM_MERGE
@ NI_RETCODE_PARAM_ERROR_MX_NUM_MERGE
Definition: ni_defs.h:465
NVME_CORE
@ NVME_CORE
Definition: ni_defs.h:380
NI_SCALER_OPCODE_PAD
@ NI_SCALER_OPCODE_PAD
Definition: ni_defs.h:590
NI_RETCODE_PARAM_ERROR_CU_LVL_RC_EN
@ NI_RETCODE_PARAM_ERROR_CU_LVL_RC_EN
Definition: ni_defs.h:469
_ni_p2p_sgl_t::ui64DMAAddr
uint64_t ui64DMAAddr[NI_MAX_P2P_SGL_ENTRY]
Definition: ni_defs.h:421
NI_RETCODE_PARAM_ERROR_HEIGHT_TOO_BIG
@ NI_RETCODE_PARAM_ERROR_HEIGHT_TOO_BIG
Definition: ni_defs.h:512
NI_RETCODE_PARAM_ERROR_MX_QP
@ NI_RETCODE_PARAM_ERROR_MX_QP
Definition: ni_defs.h:475
NI_RETCODE_ERROR_MEM_ALOC
@ NI_RETCODE_ERROR_MEM_ALOC
Definition: ni_defs.h:445
ni_retcode_t
ni_retcode_t
Definition: ni_defs.h:439
NI_RETCODE_PARAM_ERROR_DY_MERGE_32X32_EN
@ NI_RETCODE_PARAM_ERROR_DY_MERGE_32X32_EN
Definition: ni_defs.h:468
nvme_cmd_resv_release
@ nvme_cmd_resv_release
Definition: ni_defs.h:580
nvme_cmd_xcoder_read
@ nvme_cmd_xcoder_read
Definition: ni_defs.h:582
nvme_cmd_compare
@ nvme_cmd_compare
Definition: ni_defs.h:574
nvme_cmd_xcoder_write
@ nvme_cmd_xcoder_write
Definition: ni_defs.h:581
NI_RETCODE_PARAM_INVALID_VALUE
@ NI_RETCODE_PARAM_INVALID_VALUE
Definition: ni_defs.h:451
_ni_p2p_sgl_t::ui32NumEntries
uint32_t ui32NumEntries
Definition: ni_defs.h:419
NI_RETCODE_PARAM_ERROR_VBV_BUFFER_SIZE
@ NI_RETCODE_PARAM_ERROR_VBV_BUFFER_SIZE
Definition: ni_defs.h:458
_ni_session_statistic_t::ui32FramesInput
uint32_t ui32FramesInput
Definition: ni_defs.h:393
_ni_session_statistic_t::ui32LastTransactionCompletionStatus
uint32_t ui32LastTransactionCompletionStatus
Definition: ni_defs.h:403
_ni_session_statistic_t::ui32LastErrorStatus
uint32_t ui32LastErrorStatus
Definition: ni_defs.h:405
ni_xcoder_prod_line_t
enum _ni_xcoder_prod_line ni_xcoder_prod_line_t
DP_CORE
@ DP_CORE
Definition: ni_defs.h:382
NI_SCALER_OPCODE_OVERLAY
@ NI_SCALER_OPCODE_OVERLAY
Definition: ni_defs.h:591
NI_RETCODE_ERROR_UNSUPPORTED_FW_VERSION
@ NI_RETCODE_ERROR_UNSUPPORTED_FW_VERSION
Definition: ni_defs.h:535
NI_XCODER_LOGAN
@ NI_XCODER_LOGAN
Definition: ni_defs.h:346
NI_RETCODE_ERROR_UNLOCK_DEVICE
@ NI_RETCODE_ERROR_UNLOCK_DEVICE
Definition: ni_defs.h:523
NI_DEVICE_TYPE_AI
@ NI_DEVICE_TYPE_AI
Definition: ni_defs.h:363
NI_RETCODE_PARAM_ERROR_DECODING_REFRESH_TYPE
@ NI_RETCODE_PARAM_ERROR_DECODING_REFRESH_TYPE
Definition: ni_defs.h:498
NI_AI_STATUS_RESOURCE_NOT_AVAILABLE
@ NI_AI_STATUS_RESOURCE_NOT_AVAILABLE
Definition: ni_defs.h:609
NI_RETCODE_PARAM_ERROR_CUSIZE_MODE_16X16_EN
@ NI_RETCODE_PARAM_ERROR_CUSIZE_MODE_16X16_EN
Definition: ni_defs.h:501
FP_CORE
@ FP_CORE
Definition: ni_defs.h:384
NI_DEVICE_TYPE_MAX
@ NI_DEVICE_TYPE_MAX
Definition: ni_defs.h:369
NI_RETCODE_ERROR_NVME_CMD_FAILED
@ NI_RETCODE_ERROR_NVME_CMD_FAILED
Definition: ni_defs.h:446
NI_RETCODE_PARAM_ERROR_FILLER
@ NI_RETCODE_PARAM_ERROR_FILLER
Definition: ni_defs.h:533
NI_RETCODE_ERROR_INVALID_ALLOCATION_METHOD
@ NI_RETCODE_ERROR_INVALID_ALLOCATION_METHOD
Definition: ni_defs.h:527
NI_AI_STATUS_CREATE_NETWORK_FAILED
@ NI_AI_STATUS_CREATE_NETWORK_FAILED
Definition: ni_defs.h:610
NI_SCALER_OPCODE_SCALE
@ NI_SCALER_OPCODE_SCALE
Definition: ni_defs.h:587
NI_RETCODE_NVME_SC_VPU_RECOVERY
@ NI_RETCODE_NVME_SC_VPU_RECOVERY
Definition: ni_defs.h:561
TP_CORE
@ TP_CORE
Definition: ni_defs.h:383
_ni_session_statistic_t::ui32FramesOutput
uint32_t ui32FramesOutput
Definition: ni_defs.h:396
NI_AI_STATUS_INVALID_ADDRESS
@ NI_AI_STATUS_INVALID_ADDRESS
Definition: ni_defs.h:621
_ni_session_statistic_t::ui8AdditionalFramesDelay
uint8_t ui8AdditionalFramesDelay
Definition: ni_defs.h:410
NI_RETCODE_PARAM_ERROR_CUSIZE_MODE_8X8_EN
@ NI_RETCODE_PARAM_ERROR_CUSIZE_MODE_8X8_EN
Definition: ni_defs.h:500
NI_SCALER_OPCODE_STACK
@ NI_SCALER_OPCODE_STACK
Definition: ni_defs.h:592
NI_RETCODE_PARAM_ERROR_BRATE_LT_TRATE
@ NI_RETCODE_PARAM_ERROR_BRATE_LT_TRATE
Definition: ni_defs.h:489
NI_RETCODE_PARAM_WARN
@ NI_RETCODE_PARAM_WARN
Definition: ni_defs.h:540
NI_RETCODE_ERROR_PERMISSION_DENIED
@ NI_RETCODE_ERROR_PERMISSION_DENIED
Definition: ni_defs.h:537
NI_RETCODE_PARAM_ERROR_MX_DELTA_QP
@ NI_RETCODE_PARAM_ERROR_MX_DELTA_QP
Definition: ni_defs.h:477
nvme_cmd_flush
@ nvme_cmd_flush
Definition: ni_defs.h:570
NI_RETCODE_PARAM_WARNING_DEPRECATED
@ NI_RETCODE_PARAM_WARNING_DEPRECATED
Definition: ni_defs.h:530
NI_RETCODE_PARAM_ERROR_HVS_QP_EN
@ NI_RETCODE_PARAM_ERROR_HVS_QP_EN
Definition: ni_defs.h:471
NI_SCALER_OPCODE_DRAWBOX
@ NI_SCALER_OPCODE_DRAWBOX
Definition: ni_defs.h:594
_ni_session_statistic_t::ui32RdBufAvailSize
uint32_t ui32RdBufAvailSize
Definition: ni_defs.h:391
NI_AI_STATUS_IO_NOT_ALLOWED
@ NI_AI_STATUS_IO_NOT_ALLOWED
Definition: ni_defs.h:625
NI_RETCODE_NVME_SC_INTERLACED_NOT_SUPPORTED
@ NI_RETCODE_NVME_SC_INTERLACED_NOT_SUPPORTED
Definition: ni_defs.h:560
NI_RETCODE_PARAM_ERROR_TOO_BIG
@ NI_RETCODE_PARAM_ERROR_TOO_BIG
Definition: ni_defs.h:503
NI_RETCODE_PARAM_ERROR_MAXNUMMERGE
@ NI_RETCODE_PARAM_ERROR_MAXNUMMERGE
Definition: ni_defs.h:491
nvme_cmd_resv_register
@ nvme_cmd_resv_register
Definition: ni_defs.h:577
ni_core_type_t
ni_core_type_t
Definition: ni_defs.h:377
NI_DEVICE_TYPE_SCALER
@ NI_DEVICE_TYPE_SCALER
Definition: ni_defs.h:362
_ni_session_statistic_t::ui32LastErrorTransactionId
uint32_t ui32LastErrorTransactionId
Definition: ni_defs.h:404
NI_RETCODE_PARAM_ERROR_CONF_WIN_R
@ NI_RETCODE_PARAM_ERROR_CONF_WIN_R
Definition: ni_defs.h:485
NI_RETCODE_PARAM_ERROR_WIDTH_TOO_BIG
@ NI_RETCODE_PARAM_ERROR_WIDTH_TOO_BIG
Definition: ni_defs.h:508
NI_RETCODE_PARAM_ERROR_HVS_QP_SCL
@ NI_RETCODE_PARAM_ERROR_HVS_QP_SCL
Definition: ni_defs.h:472
NI_RETCODE_PARAM_ERROR_LOOK_AHEAD_DEPTH
@ NI_RETCODE_PARAM_ERROR_LOOK_AHEAD_DEPTH
Definition: ni_defs.h:531
NI_RETCODE_NVME_SC_STREAM_ERROR
@ NI_RETCODE_NVME_SC_STREAM_ERROR
Definition: ni_defs.h:559
_ni_ai_status
_ni_ai_status
Definition: ni_defs.h:602
nvme_cmd_resv_acquire
@ nvme_cmd_resv_acquire
Definition: ni_defs.h:579
NI_AI_STATUS_ERROR_START_NETWORK
@ NI_AI_STATUS_ERROR_START_NETWORK
Definition: ni_defs.h:614
NI_AI_STATUS_MAP_ERROR
@ NI_AI_STATUS_MAP_ERROR
Definition: ni_defs.h:617
NI_SCALER_OPCODE_MERGE
@ NI_SCALER_OPCODE_MERGE
Definition: ni_defs.h:598
NI_RETCODE_PARAM_ERROR_USR_RMD_ENC_PARAM
@ NI_RETCODE_PARAM_ERROR_USR_RMD_ENC_PARAM
Definition: ni_defs.h:487
NI_RETCODE_NVME_SC_INVALID_PARAMETER
@ NI_RETCODE_NVME_SC_INVALID_PARAMETER
Definition: ni_defs.h:558
NI_RETCODE_ERROR_INVALID_SESSION
@ NI_RETCODE_ERROR_INVALID_SESSION
Definition: ni_defs.h:447
ni_session_statistic_t
struct _ni_session_statistic_t ni_session_statistic_t
EP_CORE
@ EP_CORE
Definition: ni_defs.h:381
NI_RETCODE_PARAM_ERROR_WIDTH_TOO_SMALL
@ NI_RETCODE_PARAM_ERROR_WIDTH_TOO_SMALL
Definition: ni_defs.h:510
ni_ai_status_t
enum _ni_ai_status ni_ai_status_t
NI_AI_STATUS_INVALID_PARAMS
@ NI_AI_STATUS_INVALID_PARAMS
Definition: ni_defs.h:613
NI_MAX_P2P_SGL_ENTRY
#define NI_MAX_P2P_SGL_ENTRY
Definition: ni_defs.h:121
ni_scaler_opcode_t
enum _ni_scaler_opcode ni_scaler_opcode_t
_ni_session_statistic_t::ui32LastTransactionId
uint32_t ui32LastTransactionId
Definition: ni_defs.h:402
NI_RETCODE_NVME_SC_VPU_RSRC_INSUFFICIENT
@ NI_RETCODE_NVME_SC_VPU_RSRC_INSUFFICIENT
Definition: ni_defs.h:562
NI_AI_STATUS_BAD_OPTION
@ NI_AI_STATUS_BAD_OPTION
Definition: ni_defs.h:616
ALL_CORE
@ ALL_CORE
Definition: ni_defs.h:379
NI_RETCODE_ERROR_UNSUPPORTED_FEATURE
@ NI_RETCODE_ERROR_UNSUPPORTED_FEATURE
Definition: ni_defs.h:536
NI_RETCODE_PARAM_ERROR_PIC_HEIGHT
@ NI_RETCODE_PARAM_ERROR_PIC_HEIGHT
Definition: ni_defs.h:496
NI_RETCODE_PARAM_ERROR_BRATE
@ NI_RETCODE_PARAM_ERROR_BRATE
Definition: ni_defs.h:454
NI_RETCODE_NVME_SC_RESOURCE_NOT_FOUND
@ NI_RETCODE_NVME_SC_RESOURCE_NOT_FOUND
Definition: ni_defs.h:553
_ni_session_statistic_t::ui32FramesDropped
uint32_t ui32FramesDropped
Definition: ni_defs.h:397
NI_AI_STATUS_GENERIC_ERROR
@ NI_AI_STATUS_GENERIC_ERROR
Definition: ni_defs.h:605
NI_RETCODE_PARAM_ERROR_CUSTOM_GOP
@ NI_RETCODE_PARAM_ERROR_CUSTOM_GOP
Definition: ni_defs.h:492
_ni_session_statistic_t::reserved
uint32_t reserved
Definition: ni_defs.h:408
_ni_session_statistic_t::ui32Reserved
uint32_t ui32Reserved[5]
Definition: ni_defs.h:414
NI_RETCODE_PARAM_INVALID_NAME
@ NI_RETCODE_PARAM_INVALID_NAME
Definition: ni_defs.h:450
NI_AI_STATUS_BAD_INOUT
@ NI_AI_STATUS_BAD_INOUT
Definition: ni_defs.h:623
NI_DEPRECATE_MACRO
#define NI_DEPRECATE_MACRO(X)
Definition: ni_defs.h:82
_ni_session_statistic_t::ui32Session_timestamp_high
uint32_t ui32Session_timestamp_high
Definition: ni_defs.h:406
nvme_cmd_write_uncor
@ nvme_cmd_write_uncor
Definition: ni_defs.h:573
_ni_p2p_sgl_t::ui32DMALen
uint32_t ui32DMALen[NI_MAX_P2P_SGL_ENTRY]
Definition: ni_defs.h:420
NI_DEVICE_TYPE_MIN
@ NI_DEVICE_TYPE_MIN
Definition: ni_defs.h:357
_ni_session_statistic_t::ui32Session_timestamp_low
uint32_t ui32Session_timestamp_low
Definition: ni_defs.h:407
NI_DEVICE_TYPE_XCODER_MAX
@ NI_DEVICE_TYPE_XCODER_MAX
Definition: ni_defs.h:364
NI_RETCODE_ERROR_EXCEED_MAX_NUM_SESSIONS
@ NI_RETCODE_ERROR_EXCEED_MAX_NUM_SESSIONS
Definition: ni_defs.h:518
NI_RETCODE_EAGAIN
@ NI_RETCODE_EAGAIN
Definition: ni_defs.h:543
_ni_session_statistic_t::ui16SessionId
uint16_t ui16SessionId
Definition: ni_defs.h:400
NI_RETCODE_FAILURE
@ NI_RETCODE_FAILURE
Definition: ni_defs.h:442
nvme_cmd_resv_report
@ nvme_cmd_resv_report
Definition: ni_defs.h:578
NI_RETCODE_PARAM_ERROR_GOP_PRESET
@ NI_RETCODE_PARAM_ERROR_GOP_PRESET
Definition: ni_defs.h:462
NI_RETCODE_PARAM_ERROR_HEIGHT_TOO_SMALL
@ NI_RETCODE_PARAM_ERROR_HEIGHT_TOO_SMALL
Definition: ni_defs.h:514
NI_RETCODE_PARAM_ERROR_FRATE
@ NI_RETCODE_PARAM_ERROR_FRATE
Definition: ni_defs.h:452
NI_RETCODE_PARAM_ERROR_CU_SIZE_MODE
@ NI_RETCODE_PARAM_ERROR_CU_SIZE_MODE
Definition: ni_defs.h:464
NI_RETCODE_PARAM_ERROR_TOO_SMALL
@ NI_RETCODE_PARAM_ERROR_TOO_SMALL
Definition: ni_defs.h:504
NI_AI_STATUS_IO_ERROR
@ NI_AI_STATUS_IO_ERROR
Definition: ni_defs.h:620
nvme_cmd_dsm
@ nvme_cmd_dsm
Definition: ni_defs.h:576
NI_RETCODE_PARAM_ERROR_DY_MERGE_16X16_EN
@ NI_RETCODE_PARAM_ERROR_DY_MERGE_16X16_EN
Definition: ni_defs.h:467
nvme_cmd_write_zeroes
@ nvme_cmd_write_zeroes
Definition: ni_defs.h:575
NI_RETCODE_ERROR_INVALID_HANDLE
@ NI_RETCODE_ERROR_INVALID_HANDLE
Definition: ni_defs.h:525
NI_RETCODE_PARAM_ERROR_INTRA_QP
@ NI_RETCODE_PARAM_ERROR_INTRA_QP
Definition: ni_defs.h:461
NI_AI_STATUS_NETWORK_NOT_READY
@ NI_AI_STATUS_NETWORK_NOT_READY
Definition: ni_defs.h:626
NI_RETCODE_NVME_SC_WRITE_BUFFER_FULL
@ NI_RETCODE_NVME_SC_WRITE_BUFFER_FULL
Definition: ni_defs.h:548
NI_AI_STATUS_SUCCESS
@ NI_AI_STATUS_SUCCESS
Definition: ni_defs.h:604
_ni_scaler_opcode
_ni_scaler_opcode
Definition: ni_defs.h:585
NI_RETCODE_PARAM_ERROR_ZERO
@ NI_RETCODE_PARAM_ERROR_ZERO
Definition: ni_defs.h:506
NI_AI_STATUS_ERROR_SET_INOUT
@ NI_AI_STATUS_ERROR_SET_INOUT
Definition: ni_defs.h:615
NI_AI_STATUS_CONTEXT_NOT_AVAILABLE
@ NI_AI_STATUS_CONTEXT_NOT_AVAILABLE
Definition: ni_defs.h:618
NI_SCALER_OPCODE_ROTATE
@ NI_SCALER_OPCODE_ROTATE
Definition: ni_defs.h:593
nvme_cmd_read
@ nvme_cmd_read
Definition: ni_defs.h:572
NI_RETCODE_PARAM_ERROR_OOR
@ NI_RETCODE_PARAM_ERROR_OOR
Definition: ni_defs.h:507
NI_RETCODE_NVME_SC_REQUEST_NOT_COMPLETED
@ NI_RETCODE_NVME_SC_REQUEST_NOT_COMPLETED
Definition: ni_defs.h:555
NI_RETCODE_NVME_SC_REQUEST_IN_PROGRESS
@ NI_RETCODE_NVME_SC_REQUEST_IN_PROGRESS
Definition: ni_defs.h:556
NI_RETCODE_PARAM_ERROR_PICSKIP
@ NI_RETCODE_PARAM_ERROR_PICSKIP
Definition: ni_defs.h:534
NI_RETCODE_PARAM_ERROR_TRATE
@ NI_RETCODE_PARAM_ERROR_TRATE
Definition: ni_defs.h:456
NI_RETCODE_ERROR_RESOURCE_UNAVAILABLE
@ NI_RETCODE_ERROR_RESOURCE_UNAVAILABLE
Definition: ni_defs.h:448
NI_RETCODE_PARAM_ERROR_MN_QP
@ NI_RETCODE_PARAM_ERROR_MN_QP
Definition: ni_defs.h:473
NI_AI_STATUS_OUT_OF_MEMORY
@ NI_AI_STATUS_OUT_OF_MEMORY
Definition: ni_defs.h:622
NI_RETCODE_ERROR_LOCK_DOWN_DEVICE
@ NI_RETCODE_ERROR_LOCK_DOWN_DEVICE
Definition: ni_defs.h:521
NI_MAX_HWDESC_FRAME_INDEX
#define NI_MAX_HWDESC_FRAME_INDEX
Definition: ni_defs.h:288
NI_RETCODE_ERROR_OPEN_DEVICE
@ NI_RETCODE_ERROR_OPEN_DEVICE
Definition: ni_defs.h:524
NI_RETCODE_PARAM_ERROR_INTRA_PERIOD
@ NI_RETCODE_PARAM_ERROR_INTRA_PERIOD
Definition: ni_defs.h:459