ax_vin_api.h 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  1. /**********************************************************************************
  2. *
  3. * Copyright (c) 2019-2020 Beijing AXera Technology Co., Ltd. All Rights Reserved.
  4. *
  5. * This source file is the property of Beijing AXera Technology Co., Ltd. and
  6. * may not be copied or distributed in any isomorphic form without the prior
  7. * written consent of Beijing AXera Technology Co., Ltd.
  8. *
  9. **********************************************************************************/
  10. #ifndef __AX_VIN_API_H__
  11. #define __AX_VIN_API_H__
  12. #include "ax_base_type.h"
  13. #include "ax_global_type.h"
  14. #include "ax_isp_common.h"
  15. #include "ax_sensor_struct.h"
  16. #ifdef __cplusplus
  17. extern "C"
  18. {
  19. #endif
  20. typedef enum {
  21. AX_PIPE_SOURCE_MIN = -1,
  22. AX_PIPE_SOURCE_DEV_ONLINE = 0, /* device mode, online, less than 2 pipes used for ife */
  23. AX_PIPE_SOURCE_DEV_OFFLINE = 1, /* device mode, offline, more than 2 pipes used used for ife */
  24. AX_PIPE_SOURCE_USER_OFFLINE = 2, /* user mode, offline */
  25. AX_PIPE_SOURCE_MAX,
  26. } AX_ISP_PIPE_SOURCE_E;
  27. typedef enum {
  28. AX_RAW_SOURCE_ID_MIN = -1,
  29. AX_RAW_SOURCE_ID_SIF_SOURCE = 0, /* write out from sif, for user mode */
  30. AX_RAW_SOURCE_ID_IFE_SOURCE = 1, /* write out from ife, for user mode */
  31. AX_RAW_SOURCE_ID_EXT_SIF_SOURCE = 2, /* write out from ext sif */
  32. AX_RAW_SOURCE_ID_EXT_IFE_SOURCE = 3, /* write out from ext ife */
  33. AX_RAW_SOURCE_ID_EXT_NPU_SOURCE = 4, /* write out from ext npu */
  34. AX_RAW_SOURCE_ID_MAX
  35. } AX_RAW_SOURCE_ID_E;
  36. typedef enum {
  37. AX_OUTPUT_ID_MIN = -1,
  38. AX_RAW_SINK_IFE = 1, /* write out to ife */
  39. AX_RAW_SINK_NPU = 2, /* write out to npu */
  40. AX_OUTPUT_ID_MAX
  41. } AX_RAW_SINK_ID_E;
  42. typedef enum {
  43. AX_PIPE_INPUT_SOURCE_ID_MIN = -1,
  44. AX_PIPE_INPUT_SOURCE_ID_SIF = 0,
  45. AX_PIPE_INPUT_SOURCE_ID_ITP_RAW = 1,
  46. AX_PIPE_INPUT_SOURCE_ID_ITP_RGB = 2,
  47. AX_PIPE_INPUT_SOURCE_ID_ITP_YUV = 3,
  48. AX_PIPE_INPUT_SOURCE_ID_MAX
  49. } AX_PIPI_INPUT_SOURCE_ID_E;
  50. typedef enum {
  51. AX_YUV_SOURCE_ID_INVALID = -1,
  52. AX_YUV_SOURCE_ID_MAIN = 0, /* main path */
  53. AX_YUV_SOURCE_ID_SUB1 = 1, /* sub path from downscaler0 */
  54. AX_YUV_SOURCE_ID_SUB2 = 2, /* sub path from downscaler1 */
  55. AX_YUV_SOURCE_ID_MAX
  56. } AX_YUV_SOURCE_ID_E;
  57. typedef enum {
  58. AX_PRE_OUTPUT_ID_INVALIED = -1,
  59. AX_PRE_OUTPUT_FULL_MAIN = 0, /* data output from ife full main path (ife_full drc)*/
  60. AX_PRE_OUTPUT_LITE_MAIN = 1, /* data output from ife lite main path (ife_lite drc) */
  61. AX_PRE_OUTPUT_ID_MAX
  62. } AX_PRE_OUTPUT_ID_E;
  63. typedef enum {
  64. AX_MIPI_OUTPUT_SOURCE_SNS0 = 0,
  65. AX_MIPI_OUTPUT_SOURCE_SNS1 = 1,
  66. AX_MIPI_OUTPUT_SOURCE_RLTM = 2,
  67. AX_MIPI_OUTPUT_SOURCE_SNS2 = 3,
  68. } AX_OUTPUT_SOURCE_E;
  69. typedef enum {
  70. AX_ISP_PIPELINE_NORMAL = 0,
  71. AX_ISP_PIPELINE_NONE_NPU,
  72. } AX_RUN_MODE_E;
  73. typedef enum {
  74. AX_ISP_FUSION_NONE = 0,
  75. AX_ISP_FUSION_DUAL_VISION,
  76. } AX_FUSION_MODE_E;
  77. typedef struct {
  78. AX_F32 fExpTime;
  79. AX_F32 fAGain;
  80. AX_F32 fDGain;
  81. AX_F32 fIspGain;
  82. AX_U32 nHcgLcgMode; /* 0:HCG 1:LCG 2: Not Support*/
  83. } AX_FRAME_EXP_INFO_T;
  84. typedef struct {
  85. AX_RAW_TYPE_E eRawType;
  86. AX_SNS_HDR_MODE_E eHdrMode;
  87. AX_SNS_HDR_FRAME_E nHdrFrame;
  88. AX_BAYER_PATTERN_E eBayerPattern;
  89. AX_FRAME_EXP_INFO_T tExpInfo;
  90. } AX_ISP_FRAME_T;
  91. typedef struct {
  92. AX_VIDEO_FRAME_INFO_S tFrameInfo;
  93. AX_ISP_FRAME_T tIspInfo;
  94. } AX_IMG_INFO_T;
  95. typedef struct _AX_TX_IMG_INFO_T_ {
  96. AX_BOOL bMipiTxEnable;
  97. AX_BOOL bIspBypass;
  98. AX_U32 nWidth;
  99. AX_U32 nHeight;
  100. AX_IMG_FORMAT_E eImgFormat;
  101. } AX_TX_IMG_INFO_T;
  102. typedef enum {
  103. AX_DATAFLOW_TYPE_INVALID = -1,
  104. AX_DATAFLOW_TYPE_NORMAL = 0,
  105. AX_DATAFLOW_TYPE_MULTIPLEX = 1,
  106. AX_DATAFLOW_TYPE_DISPATCH = 2,
  107. AX_DATAFLOW_TYPE_MAX
  108. } AX_DATAFLOW_TYPE_E;
  109. typedef enum {
  110. AX_PIPE_FRAME_SOURCE_TYPE_MIN = -1,
  111. AX_PIPE_FRAME_SOURCE_TYPE_DEV = 0,
  112. AX_PIPE_FRAME_SOURCE_TYPE_USER = 1,
  113. AX_PIPE_FRAME_SOURCE_TYPE_MAX
  114. } AX_ISP_PIPE_FRAME_SOURCE_TYPE_E;
  115. typedef enum {
  116. AX_PIPE_FRAME_SOURCE_ID_MIN = -1,
  117. AX_PIPE_FRAME_SOURCE_ID_IFE = 0,
  118. AX_PIPE_FRAME_SOURCE_ID_NPU = 1,
  119. AX_PIPE_FRAME_SOURCE_ID_YUV = 2,
  120. AX_PIPE_FRAME_SOURCE_ID_MAX
  121. } AX_ISP_PIPE_FRAME_SOURCE_ID_E;
  122. typedef union {
  123. struct {
  124. AX_U32 bitIFEBypass : 1 ; /* RW; [0] */
  125. AX_U32 bitNPUBypass : 1 ; /* RW; [1] */
  126. AX_U32 bitITPBypass : 1 ; /* RW; [2] */
  127. AX_U32 bitRsv29 : 29 ; /* H ; [3:31] */
  128. };
  129. AX_U32 u32Key;
  130. } AX_VIN_COMPONENT_CTRL_T;
  131. typedef enum {
  132. AX_DEV_WORK_MODE_MIN = -1,
  133. AX_DEV_WORK_MODE_NORMAL = 0, /* normal work mode */
  134. AX_DEV_WORK_MODE_MASTER = 1, /* master mode in cascade */
  135. AX_DEV_WORK_MODE_SLAVE = 2, /* slave mode in cascade */
  136. AX_DEV_WORK_MODE_MAX,
  137. } AX_ISP_DEV_WORK_MODE_E;
  138. /* Sequence of YUV data */
  139. typedef enum _AX_VIN_YUV_DATA_SEQ_E_ {
  140. AX_VIN_DATA_SEQ_VUVU = 0, /* The input sequence of the second component(only contains u and v) in BT.1120 mode is VUVU */
  141. AX_VIN_DATA_SEQ_UVUV, /* The input sequence of the second component(only contains u and v) in BT.1120 mode is UVUV */
  142. AX_VIN_DATA_SEQ_UYVY, /* The input sequence of YUV is UYVY */
  143. AX_VIN_DATA_SEQ_VYUY, /* The input sequence of YUV is VYUY */
  144. AX_VIN_DATA_SEQ_YUYV, /* The input sequence of YUV is YUYV */
  145. AX_VIN_DATA_SEQ_YVYU, /* The input sequence of YUV is YVYU */
  146. AX_VIN_DATA_SEQ_MAX
  147. } AX_VIN_YUV_DATA_SEQ_E;
  148. /* Clock edge mode */
  149. typedef enum _AX_VIN_CLK_EDGE_E_ {
  150. AX_VIN_CLK_EDGE_SINGLE_UP = 0, /* single-edge mode: rising edge */
  151. AX_VIN_CLK_EDGE_SINGLE_DOWN, /* single-edge mode: falling edge */
  152. AX_VIN_CLK_EDGE_MAX
  153. } AX_VIN_CLK_EDGE_E;
  154. typedef enum _AX_VIN_SCAN_MODE_E_ {
  155. AX_VIN_SCAN_INTERLACED = 0, /* interlaced mode */
  156. AX_VIN_SCAN_PROGRESSIVE, /* progressive mode */
  157. AX_VIN_SCAN_MAX
  158. } AX_VIN_SCAN_MODE_E;
  159. /* Polarity of the horizontal synchronization signal */
  160. typedef enum _AX_VIN_HSYNC_POLARITY_E_ {
  161. AX_VIN_SYNC_POLARITY_HIGH = 0, /* the valid horizontal/vertical synchronization signal is high-level */
  162. AX_VIN_SYNC_POLARITY_LOW, /* the valid horizontal/vertical synchronization signal is low-level */
  163. AX_VIN_SYNC_POLARITY_MAX
  164. } AX_VIN_SYNC_POLARITY_E;
  165. typedef enum _AX_VIN_LVDS_SYNC_MODE_E_ {
  166. AX_VIN_LVDS_SYNC_MODE_SOF = 0, /* sensor SOL, EOL, SOF, EOF */
  167. AX_VIN_LVDS_SYNC_MODE_SAV, /* SAV, EAV */
  168. AX_VIN_LVDS_SYNC_MODE_MAX
  169. } AX_VIN_LVDS_SYNC_MODE_E;
  170. typedef enum _AX_VIN_LVDS_BIT_ENDIAN_E_ {
  171. AX_VIN_LVDS_ENDIAN_LITTLE = 0,
  172. AX_VIN_LVDS_ENDIAN_BIG = 1,
  173. AX_VIN_LVDS_ENDIAN_MAX
  174. } AX_VIN_LVDS_BIT_ENDIAN_E;
  175. /* synchronization information about the BT or DVP timing */
  176. typedef struct _AX_VIN_SYNC_CFG_T_ {
  177. AX_VIN_SYNC_POLARITY_E eVsyncInv; /* the valid horizontal/vertical synchronization signal polarity */
  178. AX_VIN_SYNC_POLARITY_E eHsyncInv; /* the valid horizontal/vertical synchronization signal polarity */
  179. } AX_VIN_SYNC_CFG_T;
  180. typedef struct _AX_VIN_DEV_BT_ATTR_T_ {
  181. AX_VIN_SCAN_MODE_E eScanMode; /* Input scanning mode (progressive or interlaced) */
  182. AX_U32 nComponentMask[AX_VIN_COMPMASK_NUM]; /* Component mask */
  183. AX_VIN_SYNC_CFG_T tSyncCfg;
  184. } AX_VIN_DEV_BT_ATTR_T;
  185. typedef struct _AX_VIN_DEV_DVP_ATTR_T_ {
  186. AX_VIN_YUV_DATA_SEQ_E eDataSeq; /* Input data sequence (only the YUV format is supported) */
  187. AX_U32 nComponentMask[AX_VIN_COMPMASK_NUM]; /* Component mask */
  188. AX_VIN_SYNC_CFG_T tSyncCfg;
  189. } AX_VIN_DEV_DVP_ATTR_T;
  190. typedef struct _AX_VIN_DEV_LVDS_ATTR_T_ {
  191. AX_VIN_LVDS_SYNC_MODE_E eSyncMode; /* Input data sequence (only the YUV format is supported) */
  192. AX_VIN_LVDS_BIT_ENDIAN_E eDataEndian; /* data endian: little/big */
  193. AX_VIN_LVDS_BIT_ENDIAN_E eSyncCodeEndian; /* sync code endian: little/big */
  194. /* each vc has 4 params, sync code[i]:
  195. sync mode is SYNC_MODE_SOF: SOF, EOF, SOL, EOL
  196. sync mode is SYNC_MODE_SAV: invalid sav, invalid eav, valid sav, valid eav */
  197. AX_U8 szSyncCode[AX_VIN_LVDS_LANE_NUM][AX_HDR_CHN_NUM][AX_VIN_SYNC_CODE_NUM];
  198. } AX_VIN_DEV_LVDS_ATTR_T;
  199. typedef struct _AX_DEV_ATTR_T_ {
  200. AX_ISP_DEV_WORK_MODE_E eDevWorkMode;
  201. AX_BOOL bImgDataEnable; /* 1: image data enable, 0: disable */
  202. AX_SNS_TYPE_E eSnsType;
  203. AX_SNS_HDR_MODE_E eSnsMode;
  204. AX_SNS_GAIN_MODE_E eSnsGainMode;
  205. AX_BAYER_PATTERN_E eBayerPattern;
  206. AX_IMG_FORMAT_E ePixelFmt; /* Pixel format */
  207. AX_WIN_AREA_T tDevImgRgn; /* image region acquired by dev */
  208. AX_BOOL bHMirror; /* 0: No mirror, 1: horiontal direction mirror */
  209. AX_BOOL bDolSplit; /* 0: No split, 1: write the dol image in seprate frame */
  210. AX_SNS_SKIP_FRAME_E eSkipFrame;
  211. AX_SNS_OUTPUT_MODE_E eSnsOutputMode;
  212. union {
  213. AX_VIN_DEV_LVDS_ATTR_T tLvdsIntfAttr; /* input interface attr: LVDS */
  214. AX_VIN_DEV_DVP_ATTR_T tDvpIntfAttr; /* input interface attr: DVP */
  215. AX_VIN_DEV_BT_ATTR_T tBtIntfAttr; /* input interface attr: BT1120\BT656\BT601 */
  216. };
  217. AX_BOOL bNonImgEnable; /* 1: non image data enable, 0: disable */
  218. AX_U32 nNonImgWidth;
  219. AX_U32 nNonImgHeight;
  220. AX_IMG_FORMAT_E eNonPixelFmt;
  221. AX_U8 nNonImgDT;
  222. AX_U8 nNonImgVC;
  223. AX_U8 reserve[2];
  224. AX_BOOL bIspBypass;
  225. } AX_DEV_ATTR_T;
  226. typedef struct {
  227. AX_U32 nWidth;
  228. AX_U32 nHeight;
  229. AX_U32 nWidthStride;
  230. AX_BAYER_PATTERN_E eBayerPattern;
  231. AX_IMG_FORMAT_E ePixelFmt;
  232. AX_SNS_HDR_MODE_E eSnsMode;
  233. AX_FUSION_MODE_E eFusionMode;
  234. AX_ISP_PIPE_SOURCE_E ePipeDataSrc;
  235. AX_DATAFLOW_TYPE_E eDataFlowType;
  236. AX_DEV_SOURCE_E eDevSource; /* according to AX_DEV_SOURCE_E */
  237. AX_PRE_OUTPUT_ID_E ePreOutput; /* according to AX_PRE_OUTPUT_ID_E */
  238. AX_VIN_COMPONENT_CTRL_T tCompCtrl; /* according to AX_VIN_MODULE_CTRL_T */
  239. } AX_PIPE_ATTR_T;
  240. typedef struct {
  241. AX_U8 uPipeID; /* 255: none */
  242. AX_BOOL bOutEn; /* TX output enable */
  243. AX_OUTPUT_SOURCE_E eOutSource;
  244. } AX_VOUT_ATTR_T;
  245. typedef enum _AX_DEV_STATE_E_ {
  246. AX_VIN_STATE_UNITED = 0,
  247. AX_VIN_STATE_INIT = 1,
  248. AX_VIN_STATE_RUNNING = 2,
  249. } AX_DEV_STATE_E;
  250. typedef struct {
  251. AX_DEV_STATE_E eStatus;
  252. AX_U64 nFrameCnt;
  253. AX_U32 nFrameRate;
  254. AX_U32 nLostCount;
  255. AX_U32 nImgWidth;
  256. AX_U32 nImgHight;
  257. } AX_VIN_DEV_STATUS_T;
  258. typedef struct {
  259. AX_BOOL bEnable;
  260. AX_U32 nWidth;
  261. AX_U32 nHeight;
  262. AX_U32 nWidthStride;
  263. AX_IMG_FORMAT_E eImgFormat;
  264. AX_U32 nDepth;
  265. } AX_VIN_CHN_DEV_T;
  266. typedef struct {
  267. AX_VIN_CHN_DEV_T tChnAttr[AX_YUV_SOURCE_ID_MAX]; /* support 3chn dev output */
  268. } AX_VIN_CHN_ATTR_T;
  269. typedef enum _AX_VIN_DUMP_TYPE_E_ {
  270. VIN_DUMP_SOURCE_INVLAID = -1, /* Invlaid type */
  271. VIN_DUMP_SOURCE_IFE = 0, /* write data from ife to ddr */
  272. VIN_DUMP_SOURCE_NPU = 1, /* write data from npu */
  273. VIN_DUMP_SOURCE_YUV_MAIN = 2, /* write data from main chn */
  274. VIN_DUMP_SOURCE_YUV_SUB1 = 3, /* write data from sub1 chn */
  275. VIN_DUMP_SOURCE_YUV_SUB2 = 4, /* write data from sub2 chn */
  276. } AX_VIN_DUMP_TYPE_E;
  277. typedef struct _AX_VIN_SNS_DUMP_ATTR_T_ {
  278. AX_BOOL bEnable; /* RW; Whether dump is enable */
  279. AX_U32 nDepth; /* RW; frame buffer depth */
  280. } AX_VIN_SNS_DUMP_ATTR_T;
  281. typedef struct _AX_VIN_DUMP_ATTR_T_ {
  282. AX_BOOL bEnable; /* RW; Whether dump is enable */
  283. AX_U32 nDepth; /* RW; frame buffer depth */
  284. } AX_VIN_DUMP_ATTR_T;
  285. /* List of pipe bind to dev */
  286. typedef struct _AX_VIN_DEV_BIND_PIPE_T_ {
  287. AX_U32 nNum; /* RW; Range [1, DEF_VIN_PIPE_MAX_NUM] */
  288. AX_U32 nPipeId[DEF_VIN_PIPE_MAX_NUM]; /* RW; Array of pipe id */
  289. } AX_VIN_DEV_BIND_PIPE_T;
  290. typedef enum _AX_DAYNIGHT_MODE_E_ {
  291. AX_DAYNIGHT_MODE_DAY = 0,
  292. AX_DAYNIGHT_MODE_NIGHT,
  293. } AX_DAYNIGHT_MODE_E;
  294. typedef struct __AX_VIN_POOL_CONFIG_T{
  295. AX_U32 nWidth;
  296. AX_U32 nWidthStride;
  297. AX_U32 nHeight;
  298. AX_U32 nBlkCnt;
  299. AX_U32 nBlkSize;
  300. AX_U32 nPoolId;
  301. AX_IMG_FORMAT_E ePixelFmt;
  302. } AX_VIN_POOL_CONFIG_T;
  303. /************************************************************************************
  304. * VIN API
  305. ************************************************************************************/
  306. AX_S32 AX_VIN_Init();
  307. AX_S32 AX_VIN_Deinit();
  308. AX_S32 AX_VIN_RegisterSensor(AX_U8 pipe, AX_SENSOR_REGISTER_FUNC_T *ptSnsRegister);
  309. AX_S32 AX_VIN_UnRegisterSensor(AX_U8 pipe);
  310. AX_S32 AX_VIN_OpenSnsClk(AX_U8 pipe, AX_U8 clkIdx, AX_SNS_CLK_RATE_E eClkRate);
  311. AX_S32 AX_VIN_CloseSnsClk(AX_U8 clkIdx);
  312. AX_S32 AX_VIN_SetSnsAttr(AX_U8 pipe, AX_SNS_ATTR_T *pSnsAttr);
  313. AX_S32 AX_VIN_GetSnsAttr(AX_U8 pipe, AX_SNS_ATTR_T *pSnsAttr);
  314. AX_S32 AX_VIN_SetDevAttr(AX_U8 dev_id, AX_DEV_ATTR_T *pDevAttr);
  315. AX_S32 AX_VIN_GetDevAttr(AX_U8 dev_id, AX_DEV_ATTR_T *pDevAttr);
  316. AX_S32 AX_VIN_SetOutAttr(AX_U8 dev_id, AX_VOUT_ATTR_T *pOutAttr);
  317. AX_S32 AX_VIN_GetOutAttr(AX_U8 dev_id, AX_VOUT_ATTR_T *pOutAttr);
  318. AX_S32 AX_VIN_QueryDevState(AX_U8 dev_id, AX_VIN_DEV_STATUS_T *pDevStatus);
  319. AX_S32 AX_VIN_Create(AX_U8 pipe);
  320. AX_S32 AX_VIN_Destory(AX_U8 pipe);
  321. AX_S32 AX_VIN_Start(AX_U8 pipe);
  322. AX_S32 AX_VIN_Stop(AX_U8 pipe);
  323. AX_S32 AX_VIN_SetPipeAttr(AX_U8 pipe, AX_PIPE_ATTR_T *pPipeAttr);
  324. AX_S32 AX_VIN_GetPipeAttr(AX_U8 pipe, AX_PIPE_ATTR_T *pPipeAttr);
  325. AX_S32 AX_VIN_SetPipeDumpAttr(AX_U8 pipe, AX_VIN_DUMP_TYPE_E eDumpType, AX_VIN_DUMP_ATTR_T *ptDumpAttr);
  326. AX_S32 AX_VIN_GetPipeDumpAttr(AX_U8 pipe, AX_VIN_DUMP_TYPE_E eDumpType, AX_VIN_DUMP_ATTR_T *ptDumpAttr);
  327. AX_S32 AX_VIN_SetChnAttr(AX_U8 pipe, AX_VIN_CHN_ATTR_T *pChnAttr);
  328. AX_S32 AX_VIN_GetChnAttr(AX_U8 pipe, AX_VIN_CHN_ATTR_T *pChnAttr);
  329. AX_S32 AX_VIN_EnableDev(AX_U8 dev_id);
  330. AX_S32 AX_VIN_DisableDev(AX_U8 dev_id);
  331. AX_S32 AX_VIN_StreamOn(AX_U8 pipe);
  332. AX_S32 AX_VIN_StreamOff(AX_U8 pipe);
  333. AX_S32 AX_VIN_SetSnsDumpAttr(AX_U8 dev_id, AX_VIN_SNS_DUMP_ATTR_T *ptSnsDumpAttr);
  334. AX_S32 AX_VIN_GetSnsDumpAttr(AX_U8 dev_id, AX_VIN_SNS_DUMP_ATTR_T *ptSnsDumpAttr);
  335. AX_S32 AX_VIN_SetNonImageAttr(AX_U8 dev_id);
  336. AX_S32 AX_VIN_GetNonImageAttr(AX_U8 dev_id);
  337. AX_S32 AX_VIN_SendFrame(AX_U8 pipe, AX_PIPI_INPUT_SOURCE_ID_E srcChId, AX_IMG_INFO_T *pImgInfo, AX_S32 timeOutMs);
  338. AX_S32 AX_VIN_GetRawFrame(AX_U8 pipe, AX_RAW_SOURCE_ID_E rawChId, AX_SNS_HDR_FRAME_E eSnsFrame, AX_IMG_INFO_T *pImgInfo, AX_S32 timeOutMs);
  339. AX_S32 AX_VIN_ReleaseRawFrame(AX_U8 pipe, AX_RAW_SOURCE_ID_E rawChId, AX_SNS_HDR_FRAME_E eSnsFrame, AX_IMG_INFO_T *pImgInfo);
  340. AX_S32 AX_VIN_GetIfeRawFrame(AX_U8 pipe, AX_SNS_HDR_FRAME_E eSnsFrame, AX_IMG_INFO_T *pImgInfo, AX_S32 timeOutMs);
  341. AX_S32 AX_VIN_ReleaseIfeRawFrame(AX_U8 pipe, AX_SNS_HDR_FRAME_E eSnsFrame, AX_IMG_INFO_T *pImgInfo);
  342. AX_S32 AX_VIN_SendRawFrame(AX_U8 pipe, AX_RAW_SINK_ID_E rawChId, AX_S8 nFrameNum, AX_IMG_INFO_T *pImgInfo[], AX_S32 timeOutMs);
  343. AX_S32 AX_VIN_GetSnsFrame(AX_U8 devId, AX_SNS_HDR_FRAME_E eSnsFrame, AX_IMG_INFO_T *pImgInfo, AX_S32 timeOutMs);
  344. AX_S32 AX_VIN_ReleaseSnsFrame(AX_U8 devId, AX_SNS_HDR_FRAME_E eSnsFrame, AX_IMG_INFO_T *pImgInfo);
  345. AX_S32 AX_VIN_GetYuvFrame(AX_U8 pipe, AX_YUV_SOURCE_ID_E yuvChId, AX_IMG_INFO_T *pImgInfo, AX_S32 timeOutMs);
  346. AX_S32 AX_VIN_ReleaseYuvFrame(AX_U8 pipe, AX_YUV_SOURCE_ID_E yuvChId, AX_IMG_INFO_T *pImgInfo);
  347. AX_S32 AX_VIN_SetRunMode(AX_U8 pipe, AX_RUN_MODE_E run_mode);
  348. AX_RUN_MODE_E AX_VIN_GetRunMode(AX_U8 pipe);
  349. AX_S32 AX_VIN_SetPipeFrameSource(AX_U8 pipe, AX_ISP_PIPE_FRAME_SOURCE_ID_E eSrcId, AX_ISP_PIPE_FRAME_SOURCE_TYPE_E eSrcType);
  350. AX_S32 AX_VIN_GetPipeFrameSource(AX_U8 pipe, AX_ISP_PIPE_FRAME_SOURCE_ID_E eSrcId, AX_ISP_PIPE_FRAME_SOURCE_TYPE_E *eSrcType);
  351. AX_S32 AX_VIN_TxOpen(AX_U8 nMipiTxDev, AX_TX_IMG_INFO_T *pTxImgInfo);
  352. AX_S32 AX_VIN_TxClose(AX_U8 nMipiTxDev);
  353. AX_S32 AX_VIN_TxSendData(AX_U8 nMipiTxDev, AX_VIDEO_FRAME_S *pImgInfo, AX_S32 timeOutMs);
  354. AX_S32 AX_VIN_SetDevBindPipe(AX_U8 dev_id, const AX_VIN_DEV_BIND_PIPE_T *ptDevBindPipe);
  355. AX_S32 AX_VIN_GetDevBindPipe(AX_U8 dev_id, AX_VIN_DEV_BIND_PIPE_T *ptDevBindPipe);
  356. AX_S32 AX_VIN_SetDevBindTx(AX_U8 dev_id, AX_U8 nMipiTxDev);
  357. AX_S32 AX_VIN_GetDevBindTx(AX_U8 dev_id, AX_U8 *nMipiTxDev);
  358. AX_S32 AX_VIN_SendYuvFrame(AX_U8 pipe, AX_VIDEO_FRAME_S *pImgInfo, AX_S32 timeOutMs);
  359. AX_S32 AX_VIN_SetChnDayNightMode(AX_U8 pipe, AX_U8 chn, AX_DAYNIGHT_MODE_E eNightMode);
  360. AX_S32 AX_VIN_GetChnDayNightMode(AX_U8 pipe, AX_U8 chn, AX_DAYNIGHT_MODE_E *eNightMode);
  361. AX_S32 AX_VIN_SetPoolAttr(AX_U8 pipe, AX_VIN_POOL_CONFIG_T VinPoolConfig[], AX_U32 nPoolCnt);
  362. #ifdef __cplusplus
  363. }
  364. #endif
  365. #endif //__AX_VIN_API_H__