mirror of https://github.com/OpenIPC/firmware.git
99 lines
3.4 KiB
C
99 lines
3.4 KiB
C
/*
|
|
* Copyright (C) Hisilicon Technologies Co., Ltd. 2012-2018. All rights reserved.
|
|
* Description: hi_comm_snap.h
|
|
* Author:
|
|
* Create: 2017-06-19
|
|
*/
|
|
|
|
#ifndef __HI_COMM_SNAP_H__
|
|
#define __HI_COMM_SNAP_H__
|
|
|
|
#include "hi_common.h"
|
|
#include "hi_comm_video.h"
|
|
#include "hi_comm_isp.h"
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#endif /* __cplusplus */
|
|
|
|
typedef enum hiSNAP_TYPE_E {
|
|
SNAP_TYPE_NORMAL, /* ZSL and none-ZSL type */
|
|
SNAP_TYPE_PRO, /* Professional type support HDR, AEB, LongExposure */
|
|
SNAP_TYPE_BUTT
|
|
} SNAP_TYPE_E;
|
|
|
|
typedef struct hiSNAP_PRO_MANUAL_PARAM_S {
|
|
HI_U32 au32ManExpTime[PRO_MAX_FRAME_NUM]; /* RW; Range: [0x0, 0xFFFFFFFF];sensor exposure time (unit: us),
|
|
it's related to the specific sensor */
|
|
HI_U32 au32ManSysgain[PRO_MAX_FRAME_NUM]; /* RW; Range: [0x400, 0xFFFFFFFF];system gain (unit: times,
|
|
10bit precision), it's related to the specific
|
|
sensor and ISP Dgain range */
|
|
} SNAP_PRO_MANUAL_PARAM_S;
|
|
|
|
typedef struct hiSNAP_PRO_AUTO_PARAM_S {
|
|
HI_U16 au16ProExpStep[PRO_MAX_FRAME_NUM]; /* RW; Range:[0x0, 0xFFFF];Professional exposure step
|
|
(unit: times, 8bit precision) */
|
|
} SNAP_PRO_AUTO_PARAM_S;
|
|
|
|
typedef struct hiSNAP_PRO_PARAM_S {
|
|
OPERATION_MODE_E enOperationMode;
|
|
SNAP_PRO_AUTO_PARAM_S stAutoParam;
|
|
SNAP_PRO_MANUAL_PARAM_S stManualParam;
|
|
} SNAP_PRO_PARAM_S;
|
|
|
|
typedef struct hiSNAP_NORMAL_ATTR_S {
|
|
HI_U32 u32FrameCnt; /* RW;Set capture frame counts */
|
|
HI_U32 u32RepeatSendTimes; /* [0, 2]; When FE-BE is offline, the first raw frame that is triggered should be sent
|
|
repeatedly to the BE. */
|
|
|
|
/* ZSL struct */
|
|
HI_BOOL bZSL; /* RW;statical attrs */
|
|
HI_U32 u32FrameDepth; /* buffer depth: [1,8] */
|
|
HI_U32 u32RollbackMs; /* RW;Rollback time, unit(ms), invalid when bZSL is HI_FALSE */
|
|
HI_U32 u32Interval; /* RW;For continuous capture, select frame every u32Intercal frames */
|
|
} SNAP_NORMAL_ATTR_S;
|
|
|
|
typedef struct hiSNAP_PRO_ATTR_S {
|
|
HI_U32 u32FrameCnt; /* [1, PRO_MAX_FRAME_NUM] */
|
|
HI_U32 u32RepeatSendTimes; /* [0, 2];When FE-BE is offline, the first raw frame that is triggered should be sent
|
|
repeatedly to the BE. */
|
|
SNAP_PRO_PARAM_S stProParam;
|
|
} SNAP_PRO_ATTR_S;
|
|
|
|
typedef struct hiSNAP_USER_ATTR_S {
|
|
HI_U32 u32FrameDepth;
|
|
} SNAP_USER_ATTR_S;
|
|
|
|
typedef struct hiSNAP_ATTR_S {
|
|
SNAP_TYPE_E enSnapType;
|
|
HI_BOOL bLoadCCM; /* HI_TRUE:use CCM of SnapIspInfo, HI_FALSE: Algorithm calculate */
|
|
union {
|
|
SNAP_NORMAL_ATTR_S stNormalAttr;
|
|
SNAP_PRO_ATTR_S stProAttr;
|
|
};
|
|
} SNAP_ATTR_S;
|
|
|
|
typedef struct hiISP_PRO_BNR_PARAM_S {
|
|
HI_BOOL bEnable;
|
|
HI_U32 u32ParamNum;
|
|
ISP_NR_AUTO_ATTR_S *pastNrAttr;
|
|
} ISP_PRO_BNR_PARAM_S;
|
|
|
|
typedef struct hiISP_PRO_SHARPEN_PARAM_S {
|
|
HI_BOOL bEnable;
|
|
HI_U32 u32ParamNum;
|
|
ISP_SHARPEN_AUTO_ATTR_S *pastShpAttr;
|
|
} ISP_PRO_SHARPEN_PARAM_S;
|
|
|
|
#ifdef __cplusplus
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
#endif /* __cplusplus */
|
|
|
|
#endif
|
|
|
|
|