Files
Linux_Drivers/freertos/cvitek/common/include/cv1835/cvi_ae.h
carbon ca03037500 freertos: release the generic version source code
freertos runs on the second core (small one) of the CPU
2023-10-19 14:31:43 +08:00

102 lines
3.7 KiB
C

/*
* Copyright (C) Cvitek Co., Ltd. 2019-2020. All rights reserved.
*
* File Name: include/cvi_ae.h
* Description:
*/
#ifndef __CVI_AE_H__
#define __CVI_AE_H__
#include "cvi_comm_isp.h"
#include "cvi_comm_3a.h"
#include "cvi_ae_comm.h"
#ifdef __cplusplus
#if __cplusplus
extern "C" {
#endif
#endif /* End of #ifdef __cplusplus */
#define AE_BRACKETING_CAPTURE_NUM 11
#define AE_LOG_BUFF_SIZE (200*1024)
#define AE_SNAP_LOG_BUFF_SIZE (6*1024)
#define MAX_FACE_NUM (3)
typedef struct _CVI_ISP_FACE_DETECT_INFO {
CVI_U8 u8FDNum;
CVI_U16 u16FDPosX[MAX_FACE_NUM];
CVI_U16 u16FDPosY[MAX_FACE_NUM];
CVI_U16 u16FDWidth[MAX_FACE_NUM];
CVI_U16 u16FDHeight[MAX_FACE_NUM];
CVI_U16 u16FrameWidth;
CVI_U16 u16FrameHeight;
} CVI_ISP_FACE_DETECT_INFO;
/* The interface of ae lib register to isp. */
CVI_S32 CVI_AE_Register(VI_PIPE ViPipe, ALG_LIB_S *pstAeLib);
CVI_S32 CVI_AE_UnRegister(VI_PIPE ViPipe, ALG_LIB_S *pstAeLib);
/* The callback function of sensor register to ae lib. */
CVI_S32 CVI_AE_SensorRegCallBack(VI_PIPE ViPipe, ALG_LIB_S *pstAeLib, ISP_SNS_ATTR_INFO_S *pstSnsAttrInfo,
AE_SENSOR_REGISTER_S *pstRegister);
CVI_S32 CVI_AE_SensorUnRegCallBack(VI_PIPE ViPipe, ALG_LIB_S *pstAeLib, SENSOR_ID SensorId);
void CVI_ISP_ExposureAttr_Init(void);
CVI_S32 CVI_ISP_SetExposureAttr(VI_PIPE ViPipe, const ISP_EXPOSURE_ATTR_S *pstExpAttr);
CVI_S32 CVI_ISP_GetExposureAttr(VI_PIPE ViPipe, ISP_EXPOSURE_ATTR_S *pstExpAttr);
CVI_S32 CVI_ISP_QueryExposureInfo(VI_PIPE ViPipe, ISP_EXP_INFO_S *pstExpInfo);
CVI_S32 CVI_ISP_SetWDRExposureAttr(VI_PIPE ViPipe, const ISP_WDR_EXPOSURE_ATTR_S *pstWDRExpAttr);
CVI_S32 CVI_ISP_GetWDRExposureAttr(VI_PIPE ViPipe, ISP_WDR_EXPOSURE_ATTR_S *pstWDRExpAttr);
CVI_S32 CVI_ISP_SetAERouteAttr(VI_PIPE ViPipe, const ISP_AE_ROUTE_S *pstAERouteAttr);
CVI_S32 CVI_ISP_GetAERouteAttr(VI_PIPE ViPipe, ISP_AE_ROUTE_S *pstAERouteAttr);
CVI_S32 CVI_ISP_ConfigAEBracketingExpsoure(VI_PIPE ViPipe);
CVI_S32 CVI_ISP_SetAEBracketingExpsoure(VI_PIPE ViPipe, CVI_U8 Num);
CVI_S32 CVI_ISP_AEBracketingExpsoure_Reset(VI_PIPE ViPipe);
CVI_S32 CVI_ISP_GetAESnapLogBuf(VI_PIPE ViPipe, CVI_U8 *buf, CVI_U32 bufSize);
CVI_S32 CVI_ISP_SetAEWinStatictics(VI_PIPE ViPipe, const ISP_AE_WIN_STATISTICS_CFG_S *stAeWinCfg);
CVI_S32 CVI_ISP_GetAEWinStatictics(VI_PIPE ViPipe, ISP_AE_WIN_STATISTICS_CFG_S *stAeWinCfg);
CVI_S32 CVI_ISP_SetFaceAeInfo(VI_PIPE ViPipe, const CVI_ISP_FACE_DETECT_INFO *stFaceInfo);
CVI_S32 CVI_ISP_GetFaceAeInfo(VI_PIPE ViPipe, CVI_ISP_FACE_DETECT_INFO *stFaceInfo);
CVI_S32 CVI_ISP_SetAntiFlciker(VI_PIPE ViPipe, CVI_BOOL enable, CVI_U8 frequency);
CVI_S32 CVI_ISP_GetAntiFlciker(VI_PIPE ViPipe, CVI_BOOL *pEnable, CVI_U8 *pFrequency);
CVI_S32 CVI_ISP_SetAEFps(VI_PIPE ViPipe, CVI_U16 fps);
CVI_S32 CVI_ISP_GetAEFps(VI_PIPE ViPipe, CVI_U16 *pFps);
#if 0
CVI_S32 CVI_ISP_SetHDRExposureAttr(VI_PIPE ViPipe, const ISP_HDR_EXPOSURE_ATTR_S *pstHDRExpAttr);
CVI_S32 CVI_ISP_GetHDRExposureAttr(VI_PIPE ViPipe, ISP_HDR_EXPOSURE_ATTR_S *pstHDRExpAttr);
CVI_S32 CVI_ISP_SetIrisAttr(VI_PIPE ViPipe, const ISP_IRIS_ATTR_S *pstIrisAttr);
CVI_S32 CVI_ISP_GetIrisAttr(VI_PIPE ViPipe, ISP_IRIS_ATTR_S *pstIrisAttr);
CVI_S32 CVI_ISP_SetDcirisAttr(VI_PIPE ViPipe, const ISP_DCIRIS_ATTR_S *pstDcirisAttr);
CVI_S32 CVI_ISP_GetDcirisAttr(VI_PIPE ViPipe, ISP_DCIRIS_ATTR_S *pstDcirisAttr);
CVI_S32 CVI_ISP_SetPirisAttr(VI_PIPE ViPipe, const ISP_PIRIS_ATTR_S *pstPirisAttr);
CVI_S32 CVI_ISP_GetPirisAttr(VI_PIPE ViPipe, ISP_PIRIS_ATTR_S *pstPirisAttr);
CVI_S32 CVI_ISP_SetAERouteAttrEx(VI_PIPE ViPipe, const ISP_AE_ROUTE_EX_S *pstAERouteAttrEx);
CVI_S32 CVI_ISP_GetAERouteAttrEx(VI_PIPE ViPipe, ISP_AE_ROUTE_EX_S *pstAERouteAttrEx);
#endif
#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* End of #ifdef __cplusplus */
#endif /* __CVI_AE_H__ */