123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- /**********************************************************************************
- *
- * Copyright (c) 2019-2022 Beijing AXera Technology Co., Ltd. All Rights Reserved.
- *
- * This source file is the property of Beijing AXera Technology Co., Ltd. and
- * may not be copied or distributed in any isomorphic form without the prior
- * written consent of Beijing AXera Technology Co., Ltd.
- *
- **********************************************************************************/
- #ifndef _AX_SKEL_API_H_
- #define _AX_SKEL_API_H_
- #include "ax_global_type.h"
- #include "ax_skel_struct.h"
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* error code */
- #define AX_SKEL_SUCC (0)
- #define AX_ERR_SKEL_NULL_PTR AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_NULL_PTR)
- #define AX_ERR_SKEL_ILLEGAL_PARAM AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_ILLEGAL_PARAM)
- #define AX_ERR_SKEL_NOT_INIT AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_NOT_INIT)
- #define AX_ERR_SKEL_QUEUE_EMPTY AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_QUEUE_EMPTY)
- #define AX_ERR_SKEL_QUEUE_FULL AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_QUEUE_FULL)
- #define AX_ERR_SKEL_UNEXIST AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_UNEXIST)
- #define AX_ERR_SKEL_TIMEOUT AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_TIMED_OUT)
- #define AX_ERR_SKEL_SYS_NOTREADY AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_SYS_NOTREADY)
- #define AX_ERR_SKEL_INVALID_HANDLE AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_INVALID_CHNID)
- #define AX_ERR_SKEL_NOMEM AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_NOMEM)
- #define AX_ERR_SKEL_UNKNOWN AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_UNKNOWN)
- #define AX_ERR_SKEL_NOT_SUPPORT AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_NOT_SUPPORT)
- #define AX_ERR_SKEL_INITED AX_DEF_ERR(AX_ID_SKEL, 1, AX_ERR_EXIST)
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief Initialize skel sdk
- ///
- /// @param pstParam [I]: initialize parameter
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_Init(const AX_SKEL_INIT_PARAM_S *pstParam);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief uninitialize skel sdk
- ///
- /// @param NA
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_DeInit(AX_VOID);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief create handle
- ///
- /// @param pstParam [I]: handle parameter
- /// @param handle [O]: handle
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_Create(const AX_SKEL_HANDLE_PARAM_S *pstParam, AX_SKEL_HANDLE *pHandle);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief destroy handle
- ///
- /// @param pHandle [I]: handle
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_Destroy(AX_SKEL_HANDLE handle);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief register get algorithm result callback
- ///
- /// @param pHandle [I]: handle
- /// @param callback [I]: callback function
- /// @param pUserData [I]: private user data
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_RegisterResultCallback(AX_SKEL_HANDLE handle, AX_SKEL_RESULT_CALLBACK_FUNC callback, AX_VOID *pUserData);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief send frame
- ///
- /// @param pHandle [I]: handle
- /// @param pstImage [I]: image
- /// @param ppstResult [O]: algorithm result
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_SendFrame(AX_SKEL_HANDLE handle, const AX_SKEL_FRAME_S *pstFrame, AX_S32 nTimeout);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief process image
- ///
- /// @param pHandle [I]: handle
- /// @param ppstResult [O]: algorithm result
- /// @param nTimeout [I]: timeout
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_GetResult(AX_SKEL_HANDLE handle, AX_SKEL_RESULT_S **ppstResult, AX_S32 nTimeout);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief free memory
- ///
- /// @param p [I]: memory address
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_Release(AX_VOID *p);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief get capability
- ///
- /// @param ppstCapability [O]: Capability
- ///
- /// @return version info
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_GetCapability(const AX_SKEL_CAPABILITY_S **ppstCapability);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief get version
- ///
- /// @param NA
- ///
- /// @return version info
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_GetVersion(const AX_SKEL_VERSION_INFO_S **ppstVersion);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief get config
- ///
- /// @param pstConfig [I/O]: config
- ///
- /// @return version info
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_GetConfig(AX_SKEL_HANDLE handle, const AX_SKEL_CONFIG_S **ppstConfig);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief set config
- ///
- /// @param pstConfig [I]: config
- ///
- /// @return version info
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_SetConfig(AX_SKEL_HANDLE handle, const AX_SKEL_CONFIG_S *pstConfig);
- //API for SKEL search
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief initialize search
- ///
- /// @param NA
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_Search_Init(AX_VOID);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief uninitialize search
- ///
- /// @param NA
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_Search_DeInit(AX_VOID);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief create group for search
- ///
- /// @param nGroupId [I]: group id
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_Search_Create(AX_U64 nGroupId);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief destroy group for search
- ///
- /// @param nGroupId [I]: group id
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_Search_Destroy(AX_U64 nGroupId);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief Insert feature for search
- ///
- /// @param nGroupId [I]: group id
- /// @param pParam [I]: feature param
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_Search_InsertFeature(AX_U64 nGroupId, AX_SKEL_SEARCH_FEATURE_PARAM_S *pstParam);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief Delete feature for search
- ///
- /// @param nGroupId [I]: group id
- /// @param nObjectId [I]: object id
- /// @param ppInfo [O]: info
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_Search_DeleteFeature(AX_U64 nGroupId, AX_U64 nObjectId, AX_VOID **ppInfo);
- //////////////////////////////////////////////////////////////////////////////////////
- /// @brief search
- ///
- /// @param nGroupId [I]: group id
- /// @param pstParam [I]: param
- /// @param ppstResult [O]: result
- ///
- /// @return 0 if success, otherwise failure
- //////////////////////////////////////////////////////////////////////////////////////
- AX_S32 AX_SKEL_Search(AX_U64 nGroupId, AX_SKEL_SEARCH_PARAM_S *pstParam, AX_SKEL_SEARCH_RESULT_S **ppstResult);
- #ifdef __cplusplus
- }
- #endif
- #endif /* _AX_SKEL_API_H_ */
|