123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446 |
- /**********************************************************************************
- *
- * Copyright (c) 2019-2020 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_VIN_API_H__
- #define __AX_VIN_API_H__
- #include "ax_base_type.h"
- #include "ax_global_type.h"
- #include "ax_isp_common.h"
- #include "ax_sensor_struct.h"
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- typedef enum {
- AX_PIPE_SOURCE_MIN = -1,
- AX_PIPE_SOURCE_DEV_ONLINE = 0, /* device mode, online, less than 2 pipes used for ife */
- AX_PIPE_SOURCE_DEV_OFFLINE = 1, /* device mode, offline, more than 2 pipes used used for ife */
- AX_PIPE_SOURCE_USER_OFFLINE = 2, /* user mode, offline */
- AX_PIPE_SOURCE_MAX,
- } AX_ISP_PIPE_SOURCE_E;
- typedef enum {
- AX_RAW_SOURCE_ID_MIN = -1,
- AX_RAW_SOURCE_ID_SIF_SOURCE = 0, /* write out from sif, for user mode */
- AX_RAW_SOURCE_ID_IFE_SOURCE = 1, /* write out from ife, for user mode */
- AX_RAW_SOURCE_ID_EXT_SIF_SOURCE = 2, /* write out from ext sif */
- AX_RAW_SOURCE_ID_EXT_IFE_SOURCE = 3, /* write out from ext ife */
- AX_RAW_SOURCE_ID_EXT_NPU_SOURCE = 4, /* write out from ext npu */
- AX_RAW_SOURCE_ID_MAX
- } AX_RAW_SOURCE_ID_E;
- typedef enum {
- AX_OUTPUT_ID_MIN = -1,
- AX_RAW_SINK_IFE = 1, /* write out to ife */
- AX_RAW_SINK_NPU = 2, /* write out to npu */
- AX_OUTPUT_ID_MAX
- } AX_RAW_SINK_ID_E;
- typedef enum {
- AX_PIPE_INPUT_SOURCE_ID_MIN = -1,
- AX_PIPE_INPUT_SOURCE_ID_SIF = 0,
- AX_PIPE_INPUT_SOURCE_ID_ITP_RAW = 1,
- AX_PIPE_INPUT_SOURCE_ID_ITP_RGB = 2,
- AX_PIPE_INPUT_SOURCE_ID_ITP_YUV = 3,
- AX_PIPE_INPUT_SOURCE_ID_MAX
- } AX_PIPI_INPUT_SOURCE_ID_E;
- typedef enum {
- AX_YUV_SOURCE_ID_INVALID = -1,
- AX_YUV_SOURCE_ID_MAIN = 0, /* main path */
- AX_YUV_SOURCE_ID_SUB1 = 1, /* sub path from downscaler0 */
- AX_YUV_SOURCE_ID_SUB2 = 2, /* sub path from downscaler1 */
- AX_YUV_SOURCE_ID_MAX
- } AX_YUV_SOURCE_ID_E;
- typedef enum {
- AX_PRE_OUTPUT_ID_INVALIED = -1,
- AX_PRE_OUTPUT_FULL_MAIN = 0, /* data output from ife full main path (ife_full drc)*/
- AX_PRE_OUTPUT_LITE_MAIN = 1, /* data output from ife lite main path (ife_lite drc) */
- AX_PRE_OUTPUT_ID_MAX
- } AX_PRE_OUTPUT_ID_E;
- typedef enum {
- AX_MIPI_OUTPUT_SOURCE_SNS0 = 0,
- AX_MIPI_OUTPUT_SOURCE_SNS1 = 1,
- AX_MIPI_OUTPUT_SOURCE_RLTM = 2,
- AX_MIPI_OUTPUT_SOURCE_SNS2 = 3,
- } AX_OUTPUT_SOURCE_E;
- typedef enum {
- AX_ISP_PIPELINE_NORMAL = 0,
- AX_ISP_PIPELINE_NONE_NPU,
- } AX_RUN_MODE_E;
- typedef enum {
- AX_ISP_FUSION_NONE = 0,
- AX_ISP_FUSION_DUAL_VISION,
- } AX_FUSION_MODE_E;
- typedef struct {
- AX_F32 fExpTime;
- AX_F32 fAGain;
- AX_F32 fDGain;
- AX_F32 fIspGain;
- AX_U32 nHcgLcgMode; /* 0:HCG 1:LCG 2: Not Support*/
- } AX_FRAME_EXP_INFO_T;
- typedef struct {
- AX_RAW_TYPE_E eRawType;
- AX_SNS_HDR_MODE_E eHdrMode;
- AX_SNS_HDR_FRAME_E nHdrFrame;
- AX_BAYER_PATTERN_E eBayerPattern;
- AX_FRAME_EXP_INFO_T tExpInfo;
- } AX_ISP_FRAME_T;
- typedef struct {
- AX_VIDEO_FRAME_INFO_S tFrameInfo;
- AX_ISP_FRAME_T tIspInfo;
- } AX_IMG_INFO_T;
- typedef struct _AX_TX_IMG_INFO_T_ {
- AX_BOOL bMipiTxEnable;
- AX_BOOL bIspBypass;
- AX_U32 nWidth;
- AX_U32 nHeight;
- AX_IMG_FORMAT_E eImgFormat;
- } AX_TX_IMG_INFO_T;
- typedef enum {
- AX_DATAFLOW_TYPE_INVALID = -1,
- AX_DATAFLOW_TYPE_NORMAL = 0,
- AX_DATAFLOW_TYPE_MULTIPLEX = 1,
- AX_DATAFLOW_TYPE_DISPATCH = 2,
- AX_DATAFLOW_TYPE_MAX
- } AX_DATAFLOW_TYPE_E;
- typedef enum {
- AX_PIPE_FRAME_SOURCE_TYPE_MIN = -1,
- AX_PIPE_FRAME_SOURCE_TYPE_DEV = 0,
- AX_PIPE_FRAME_SOURCE_TYPE_USER = 1,
- AX_PIPE_FRAME_SOURCE_TYPE_MAX
- } AX_ISP_PIPE_FRAME_SOURCE_TYPE_E;
- typedef enum {
- AX_PIPE_FRAME_SOURCE_ID_MIN = -1,
- AX_PIPE_FRAME_SOURCE_ID_IFE = 0,
- AX_PIPE_FRAME_SOURCE_ID_NPU = 1,
- AX_PIPE_FRAME_SOURCE_ID_YUV = 2,
- AX_PIPE_FRAME_SOURCE_ID_MAX
- } AX_ISP_PIPE_FRAME_SOURCE_ID_E;
- typedef union {
- struct {
- AX_U32 bitIFEBypass : 1 ; /* RW; [0] */
- AX_U32 bitNPUBypass : 1 ; /* RW; [1] */
- AX_U32 bitITPBypass : 1 ; /* RW; [2] */
- AX_U32 bitRsv29 : 29 ; /* H ; [3:31] */
- };
- AX_U32 u32Key;
- } AX_VIN_COMPONENT_CTRL_T;
- typedef enum {
- AX_DEV_WORK_MODE_MIN = -1,
- AX_DEV_WORK_MODE_NORMAL = 0, /* normal work mode */
- AX_DEV_WORK_MODE_MASTER = 1, /* master mode in cascade */
- AX_DEV_WORK_MODE_SLAVE = 2, /* slave mode in cascade */
- AX_DEV_WORK_MODE_MAX,
- } AX_ISP_DEV_WORK_MODE_E;
- /* Sequence of YUV data */
- typedef enum _AX_VIN_YUV_DATA_SEQ_E_ {
- AX_VIN_DATA_SEQ_VUVU = 0, /* The input sequence of the second component(only contains u and v) in BT.1120 mode is VUVU */
- AX_VIN_DATA_SEQ_UVUV, /* The input sequence of the second component(only contains u and v) in BT.1120 mode is UVUV */
- AX_VIN_DATA_SEQ_UYVY, /* The input sequence of YUV is UYVY */
- AX_VIN_DATA_SEQ_VYUY, /* The input sequence of YUV is VYUY */
- AX_VIN_DATA_SEQ_YUYV, /* The input sequence of YUV is YUYV */
- AX_VIN_DATA_SEQ_YVYU, /* The input sequence of YUV is YVYU */
- AX_VIN_DATA_SEQ_MAX
- } AX_VIN_YUV_DATA_SEQ_E;
- /* Clock edge mode */
- typedef enum _AX_VIN_CLK_EDGE_E_ {
- AX_VIN_CLK_EDGE_SINGLE_UP = 0, /* single-edge mode: rising edge */
- AX_VIN_CLK_EDGE_SINGLE_DOWN, /* single-edge mode: falling edge */
- AX_VIN_CLK_EDGE_MAX
- } AX_VIN_CLK_EDGE_E;
- typedef enum _AX_VIN_SCAN_MODE_E_ {
- AX_VIN_SCAN_INTERLACED = 0, /* interlaced mode */
- AX_VIN_SCAN_PROGRESSIVE, /* progressive mode */
- AX_VIN_SCAN_MAX
- } AX_VIN_SCAN_MODE_E;
- /* Polarity of the horizontal synchronization signal */
- typedef enum _AX_VIN_HSYNC_POLARITY_E_ {
- AX_VIN_SYNC_POLARITY_HIGH = 0, /* the valid horizontal/vertical synchronization signal is high-level */
- AX_VIN_SYNC_POLARITY_LOW, /* the valid horizontal/vertical synchronization signal is low-level */
- AX_VIN_SYNC_POLARITY_MAX
- } AX_VIN_SYNC_POLARITY_E;
- typedef enum _AX_VIN_LVDS_SYNC_MODE_E_ {
- AX_VIN_LVDS_SYNC_MODE_SOF = 0, /* sensor SOL, EOL, SOF, EOF */
- AX_VIN_LVDS_SYNC_MODE_SAV, /* SAV, EAV */
- AX_VIN_LVDS_SYNC_MODE_MAX
- } AX_VIN_LVDS_SYNC_MODE_E;
- typedef enum _AX_VIN_LVDS_BIT_ENDIAN_E_ {
- AX_VIN_LVDS_ENDIAN_LITTLE = 0,
- AX_VIN_LVDS_ENDIAN_BIG = 1,
- AX_VIN_LVDS_ENDIAN_MAX
- } AX_VIN_LVDS_BIT_ENDIAN_E;
- /* synchronization information about the BT or DVP timing */
- typedef struct _AX_VIN_SYNC_CFG_T_ {
- AX_VIN_SYNC_POLARITY_E eVsyncInv; /* the valid horizontal/vertical synchronization signal polarity */
- AX_VIN_SYNC_POLARITY_E eHsyncInv; /* the valid horizontal/vertical synchronization signal polarity */
- } AX_VIN_SYNC_CFG_T;
- typedef struct _AX_VIN_DEV_BT_ATTR_T_ {
- AX_VIN_SCAN_MODE_E eScanMode; /* Input scanning mode (progressive or interlaced) */
- AX_U32 nComponentMask[AX_VIN_COMPMASK_NUM]; /* Component mask */
- AX_VIN_SYNC_CFG_T tSyncCfg;
- } AX_VIN_DEV_BT_ATTR_T;
- typedef struct _AX_VIN_DEV_DVP_ATTR_T_ {
- AX_VIN_YUV_DATA_SEQ_E eDataSeq; /* Input data sequence (only the YUV format is supported) */
- AX_U32 nComponentMask[AX_VIN_COMPMASK_NUM]; /* Component mask */
- AX_VIN_SYNC_CFG_T tSyncCfg;
- } AX_VIN_DEV_DVP_ATTR_T;
- typedef struct _AX_VIN_DEV_LVDS_ATTR_T_ {
- AX_VIN_LVDS_SYNC_MODE_E eSyncMode; /* Input data sequence (only the YUV format is supported) */
- AX_VIN_LVDS_BIT_ENDIAN_E eDataEndian; /* data endian: little/big */
- AX_VIN_LVDS_BIT_ENDIAN_E eSyncCodeEndian; /* sync code endian: little/big */
- /* each vc has 4 params, sync code[i]:
- sync mode is SYNC_MODE_SOF: SOF, EOF, SOL, EOL
- sync mode is SYNC_MODE_SAV: invalid sav, invalid eav, valid sav, valid eav */
- AX_U8 szSyncCode[AX_VIN_LVDS_LANE_NUM][AX_HDR_CHN_NUM][AX_VIN_SYNC_CODE_NUM];
- } AX_VIN_DEV_LVDS_ATTR_T;
- typedef struct _AX_DEV_ATTR_T_ {
- AX_ISP_DEV_WORK_MODE_E eDevWorkMode;
- AX_BOOL bImgDataEnable; /* 1: image data enable, 0: disable */
- AX_SNS_TYPE_E eSnsType;
- AX_SNS_HDR_MODE_E eSnsMode;
- AX_SNS_GAIN_MODE_E eSnsGainMode;
- AX_BAYER_PATTERN_E eBayerPattern;
- AX_IMG_FORMAT_E ePixelFmt; /* Pixel format */
- AX_WIN_AREA_T tDevImgRgn; /* image region acquired by dev */
- AX_BOOL bHMirror; /* 0: No mirror, 1: horiontal direction mirror */
- AX_BOOL bDolSplit; /* 0: No split, 1: write the dol image in seprate frame */
- AX_SNS_SKIP_FRAME_E eSkipFrame;
- AX_SNS_OUTPUT_MODE_E eSnsOutputMode;
- union {
- AX_VIN_DEV_LVDS_ATTR_T tLvdsIntfAttr; /* input interface attr: LVDS */
- AX_VIN_DEV_DVP_ATTR_T tDvpIntfAttr; /* input interface attr: DVP */
- AX_VIN_DEV_BT_ATTR_T tBtIntfAttr; /* input interface attr: BT1120\BT656\BT601 */
- };
- AX_BOOL bNonImgEnable; /* 1: non image data enable, 0: disable */
- AX_U32 nNonImgWidth;
- AX_U32 nNonImgHeight;
- AX_IMG_FORMAT_E eNonPixelFmt;
- AX_U8 nNonImgDT;
- AX_U8 nNonImgVC;
- AX_U8 reserve[2];
- AX_BOOL bIspBypass;
- } AX_DEV_ATTR_T;
- typedef struct {
- AX_U32 nWidth;
- AX_U32 nHeight;
- AX_U32 nWidthStride;
- AX_BAYER_PATTERN_E eBayerPattern;
- AX_IMG_FORMAT_E ePixelFmt;
- AX_SNS_HDR_MODE_E eSnsMode;
- AX_FUSION_MODE_E eFusionMode;
- AX_ISP_PIPE_SOURCE_E ePipeDataSrc;
- AX_DATAFLOW_TYPE_E eDataFlowType;
- AX_DEV_SOURCE_E eDevSource; /* according to AX_DEV_SOURCE_E */
- AX_PRE_OUTPUT_ID_E ePreOutput; /* according to AX_PRE_OUTPUT_ID_E */
- AX_VIN_COMPONENT_CTRL_T tCompCtrl; /* according to AX_VIN_MODULE_CTRL_T */
- } AX_PIPE_ATTR_T;
- typedef struct {
- AX_U8 uPipeID; /* 255: none */
- AX_BOOL bOutEn; /* TX output enable */
- AX_OUTPUT_SOURCE_E eOutSource;
- } AX_VOUT_ATTR_T;
- typedef enum _AX_DEV_STATE_E_ {
- AX_VIN_STATE_UNITED = 0,
- AX_VIN_STATE_INIT = 1,
- AX_VIN_STATE_RUNNING = 2,
- } AX_DEV_STATE_E;
- typedef struct {
- AX_DEV_STATE_E eStatus;
- AX_U64 nFrameCnt;
- AX_U32 nFrameRate;
- AX_U32 nLostCount;
- AX_U32 nImgWidth;
- AX_U32 nImgHight;
- } AX_VIN_DEV_STATUS_T;
- typedef struct {
- AX_BOOL bEnable;
- AX_U32 nWidth;
- AX_U32 nHeight;
- AX_U32 nWidthStride;
- AX_IMG_FORMAT_E eImgFormat;
- AX_U32 nDepth;
- } AX_VIN_CHN_DEV_T;
- typedef struct {
- AX_VIN_CHN_DEV_T tChnAttr[AX_YUV_SOURCE_ID_MAX]; /* support 3chn dev output */
- } AX_VIN_CHN_ATTR_T;
- typedef enum _AX_VIN_DUMP_TYPE_E_ {
- VIN_DUMP_SOURCE_INVLAID = -1, /* Invlaid type */
- VIN_DUMP_SOURCE_IFE = 0, /* write data from ife to ddr */
- VIN_DUMP_SOURCE_NPU = 1, /* write data from npu */
- VIN_DUMP_SOURCE_YUV_MAIN = 2, /* write data from main chn */
- VIN_DUMP_SOURCE_YUV_SUB1 = 3, /* write data from sub1 chn */
- VIN_DUMP_SOURCE_YUV_SUB2 = 4, /* write data from sub2 chn */
- } AX_VIN_DUMP_TYPE_E;
- typedef struct _AX_VIN_SNS_DUMP_ATTR_T_ {
- AX_BOOL bEnable; /* RW; Whether dump is enable */
- AX_U32 nDepth; /* RW; frame buffer depth */
- } AX_VIN_SNS_DUMP_ATTR_T;
- typedef struct _AX_VIN_DUMP_ATTR_T_ {
- AX_BOOL bEnable; /* RW; Whether dump is enable */
- AX_U32 nDepth; /* RW; frame buffer depth */
- } AX_VIN_DUMP_ATTR_T;
- /* List of pipe bind to dev */
- typedef struct _AX_VIN_DEV_BIND_PIPE_T_ {
- AX_U32 nNum; /* RW; Range [1, DEF_VIN_PIPE_MAX_NUM] */
- AX_U32 nPipeId[DEF_VIN_PIPE_MAX_NUM]; /* RW; Array of pipe id */
- } AX_VIN_DEV_BIND_PIPE_T;
- typedef enum _AX_DAYNIGHT_MODE_E_ {
- AX_DAYNIGHT_MODE_DAY = 0,
- AX_DAYNIGHT_MODE_NIGHT,
- } AX_DAYNIGHT_MODE_E;
- typedef struct __AX_VIN_POOL_CONFIG_T{
- AX_U32 nWidth;
- AX_U32 nWidthStride;
- AX_U32 nHeight;
- AX_U32 nBlkCnt;
- AX_U32 nBlkSize;
- AX_U32 nPoolId;
- AX_IMG_FORMAT_E ePixelFmt;
- } AX_VIN_POOL_CONFIG_T;
- /************************************************************************************
- * VIN API
- ************************************************************************************/
- AX_S32 AX_VIN_Init();
- AX_S32 AX_VIN_Deinit();
- AX_S32 AX_VIN_RegisterSensor(AX_U8 pipe, AX_SENSOR_REGISTER_FUNC_T *ptSnsRegister);
- AX_S32 AX_VIN_UnRegisterSensor(AX_U8 pipe);
- AX_S32 AX_VIN_OpenSnsClk(AX_U8 pipe, AX_U8 clkIdx, AX_SNS_CLK_RATE_E eClkRate);
- AX_S32 AX_VIN_CloseSnsClk(AX_U8 clkIdx);
- AX_S32 AX_VIN_SetSnsAttr(AX_U8 pipe, AX_SNS_ATTR_T *pSnsAttr);
- AX_S32 AX_VIN_GetSnsAttr(AX_U8 pipe, AX_SNS_ATTR_T *pSnsAttr);
- AX_S32 AX_VIN_SetDevAttr(AX_U8 dev_id, AX_DEV_ATTR_T *pDevAttr);
- AX_S32 AX_VIN_GetDevAttr(AX_U8 dev_id, AX_DEV_ATTR_T *pDevAttr);
- AX_S32 AX_VIN_SetOutAttr(AX_U8 dev_id, AX_VOUT_ATTR_T *pOutAttr);
- AX_S32 AX_VIN_GetOutAttr(AX_U8 dev_id, AX_VOUT_ATTR_T *pOutAttr);
- AX_S32 AX_VIN_QueryDevState(AX_U8 dev_id, AX_VIN_DEV_STATUS_T *pDevStatus);
- AX_S32 AX_VIN_Create(AX_U8 pipe);
- AX_S32 AX_VIN_Destory(AX_U8 pipe);
- AX_S32 AX_VIN_Start(AX_U8 pipe);
- AX_S32 AX_VIN_Stop(AX_U8 pipe);
- AX_S32 AX_VIN_SetPipeAttr(AX_U8 pipe, AX_PIPE_ATTR_T *pPipeAttr);
- AX_S32 AX_VIN_GetPipeAttr(AX_U8 pipe, AX_PIPE_ATTR_T *pPipeAttr);
- AX_S32 AX_VIN_SetPipeDumpAttr(AX_U8 pipe, AX_VIN_DUMP_TYPE_E eDumpType, AX_VIN_DUMP_ATTR_T *ptDumpAttr);
- AX_S32 AX_VIN_GetPipeDumpAttr(AX_U8 pipe, AX_VIN_DUMP_TYPE_E eDumpType, AX_VIN_DUMP_ATTR_T *ptDumpAttr);
- AX_S32 AX_VIN_SetChnAttr(AX_U8 pipe, AX_VIN_CHN_ATTR_T *pChnAttr);
- AX_S32 AX_VIN_GetChnAttr(AX_U8 pipe, AX_VIN_CHN_ATTR_T *pChnAttr);
- AX_S32 AX_VIN_EnableDev(AX_U8 dev_id);
- AX_S32 AX_VIN_DisableDev(AX_U8 dev_id);
- AX_S32 AX_VIN_StreamOn(AX_U8 pipe);
- AX_S32 AX_VIN_StreamOff(AX_U8 pipe);
- AX_S32 AX_VIN_SetSnsDumpAttr(AX_U8 dev_id, AX_VIN_SNS_DUMP_ATTR_T *ptSnsDumpAttr);
- AX_S32 AX_VIN_GetSnsDumpAttr(AX_U8 dev_id, AX_VIN_SNS_DUMP_ATTR_T *ptSnsDumpAttr);
- AX_S32 AX_VIN_SetNonImageAttr(AX_U8 dev_id);
- AX_S32 AX_VIN_GetNonImageAttr(AX_U8 dev_id);
- AX_S32 AX_VIN_SendFrame(AX_U8 pipe, AX_PIPI_INPUT_SOURCE_ID_E srcChId, AX_IMG_INFO_T *pImgInfo, AX_S32 timeOutMs);
- 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);
- 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);
- AX_S32 AX_VIN_GetIfeRawFrame(AX_U8 pipe, AX_SNS_HDR_FRAME_E eSnsFrame, AX_IMG_INFO_T *pImgInfo, AX_S32 timeOutMs);
- AX_S32 AX_VIN_ReleaseIfeRawFrame(AX_U8 pipe, AX_SNS_HDR_FRAME_E eSnsFrame, AX_IMG_INFO_T *pImgInfo);
- 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);
- AX_S32 AX_VIN_GetSnsFrame(AX_U8 devId, AX_SNS_HDR_FRAME_E eSnsFrame, AX_IMG_INFO_T *pImgInfo, AX_S32 timeOutMs);
- AX_S32 AX_VIN_ReleaseSnsFrame(AX_U8 devId, AX_SNS_HDR_FRAME_E eSnsFrame, AX_IMG_INFO_T *pImgInfo);
- AX_S32 AX_VIN_GetYuvFrame(AX_U8 pipe, AX_YUV_SOURCE_ID_E yuvChId, AX_IMG_INFO_T *pImgInfo, AX_S32 timeOutMs);
- AX_S32 AX_VIN_ReleaseYuvFrame(AX_U8 pipe, AX_YUV_SOURCE_ID_E yuvChId, AX_IMG_INFO_T *pImgInfo);
- AX_S32 AX_VIN_SetRunMode(AX_U8 pipe, AX_RUN_MODE_E run_mode);
- AX_RUN_MODE_E AX_VIN_GetRunMode(AX_U8 pipe);
- AX_S32 AX_VIN_SetPipeFrameSource(AX_U8 pipe, AX_ISP_PIPE_FRAME_SOURCE_ID_E eSrcId, AX_ISP_PIPE_FRAME_SOURCE_TYPE_E eSrcType);
- AX_S32 AX_VIN_GetPipeFrameSource(AX_U8 pipe, AX_ISP_PIPE_FRAME_SOURCE_ID_E eSrcId, AX_ISP_PIPE_FRAME_SOURCE_TYPE_E *eSrcType);
- AX_S32 AX_VIN_TxOpen(AX_U8 nMipiTxDev, AX_TX_IMG_INFO_T *pTxImgInfo);
- AX_S32 AX_VIN_TxClose(AX_U8 nMipiTxDev);
- AX_S32 AX_VIN_TxSendData(AX_U8 nMipiTxDev, AX_VIDEO_FRAME_S *pImgInfo, AX_S32 timeOutMs);
- AX_S32 AX_VIN_SetDevBindPipe(AX_U8 dev_id, const AX_VIN_DEV_BIND_PIPE_T *ptDevBindPipe);
- AX_S32 AX_VIN_GetDevBindPipe(AX_U8 dev_id, AX_VIN_DEV_BIND_PIPE_T *ptDevBindPipe);
- AX_S32 AX_VIN_SetDevBindTx(AX_U8 dev_id, AX_U8 nMipiTxDev);
- AX_S32 AX_VIN_GetDevBindTx(AX_U8 dev_id, AX_U8 *nMipiTxDev);
- AX_S32 AX_VIN_SendYuvFrame(AX_U8 pipe, AX_VIDEO_FRAME_S *pImgInfo, AX_S32 timeOutMs);
- AX_S32 AX_VIN_SetChnDayNightMode(AX_U8 pipe, AX_U8 chn, AX_DAYNIGHT_MODE_E eNightMode);
- AX_S32 AX_VIN_GetChnDayNightMode(AX_U8 pipe, AX_U8 chn, AX_DAYNIGHT_MODE_E *eNightMode);
- AX_S32 AX_VIN_SetPoolAttr(AX_U8 pipe, AX_VIN_POOL_CONFIG_T VinPoolConfig[], AX_U32 nPoolCnt);
- #ifdef __cplusplus
- }
- #endif
- #endif //__AX_VIN_API_H__
|