nt9856x/code/hdal/vendor/isp/drivers/include/aet_api.h
2023-03-28 15:07:53 +08:00

321 lines
9.1 KiB
C
Executable File

#ifndef _AET_API_H_
#define _AET_API_H_
#if defined(__KERNEL__) || defined(__FREERTOS)
#include "ae_alg.h"
#include "ae_ui.h"
#include "ae_nnsc.h"
#endif
#define AE_CFG_NAME_LENGTH 256
#define AE_DTSI_NAME_LENGTH 256
#define AET_ITEM_NNSC_OFFSET 100
/**
AE tuning item
*/
typedef enum _AET_ITEM {
AET_ITEM_VERSION = 0,///< data_type: [Get] UINT32
AET_ITEM_SIZE_TAB, ///< data_type: [Get] AET_INFO
AET_ITEM_RLD_CONFIG, ///< data_type: [Set] AET_CFG_INFO
AET_ITEM_RLD_DTSI, ///< data_type: [Set] AET_DTSI_INFO
AET_ITEM_RESERVE_04,
AET_ITEM_RESERVE_05,
AET_ITEM_RESERVE_06,
AET_ITEM_RESERVE_07,
AET_ITEM_RESERVE_08,
AET_ITEM_RESERVE_09,
AET_ITEM_RESERVE_10 = 10,
AET_ITEM_EXT_PARAM,
AET_ITEM_FREQUENCY, ///< data_type: [Set/Get] AET_FREQUENCY_MODE
AET_ITEM_METER, ///< data_type: [Set/Get] AET_METER_MODE
AET_ITEM_EV, ///< data_type: [Set/Get] AET_EV_OFFSET
AET_ITEM_ISO = 15,///< data_type: [Set/Get] AET_ISO_VALUE
AET_ITEM_SKIP_LA, ///< data_type: [Set/Get] AET_SKIP_LA
AET_ITEM_LONGEXP, ///< data_type: [Set/Get] AET_LONGEXP_MODE
AET_ITEM_LONGEXP_EXPT, ///< data_type: [Set/Get] AET_LONGEXP_EXPT_VALUE
AET_ITEM_LONGEXP_ISO, ///< data_type: [Set/Get] AET_LONGEXP_ISO_VALUE
AET_ITEM_OPERATION, ///< data_type: [Set/Get] AET_OPERATION
AET_ITEM_DCIRIS, ///< data_type: [Set/Get] AET_DCIRIS
AET_ITEM_SHDR_HBS, ///< data_type: [Set/Get] AET_SHDR_HBS
AET_ITEM_LA_ROI, ///< data_type: [Set/Get] AET_LA_ROI
AET_ITEM_AFD_PARAM, ///< data_type: [Set/Get] AET_AFD_PARAM
AET_ITEM_AFD_TRIGGER, ///< data_type: [Set/Get] AET_AFD_TRIGGER
AET_ITEM_AFD_DETECT_RESULT, ///< data_type: [Set/Get] AET_AFD_DETECT_RESULT
AET_ITEM_AFD_UNDERTERMINED_FREQ, ///< data_type: [Set/Get] AET_AFD_UNDETERMINED_FREQ
AET_ITEM_STITCH_ID, ///< data_type: [Set/Get] AET_STITCH_ID
AET_ITEM_APERTURE_BOUND, ///< data_type: [Set/Get] AET_APERTURE_BOUND
AET_ITEM_BASE_ISO = 30,///< data_type: [Set/Get] UINT32
AET_ITEM_BASE_GAIN_RATIO, ///< data_type: [Set/Get] UINT32
AET_ITEM_EXPECT_LUM, ///< data_type: [Set/Get] AET_EXPECT_LUM
AET_ITEM_LA_CLAMP, ///< data_type: [Set/Get] AET_LA_CLAMP
AET_ITEM_OVER_EXPOSURE, ///< data_type: [Set/Get] AET_OVER_EXPOSURE
AET_ITEM_CONVERGENCE = 35,///< data_type: [Set/Get] AET_CONVERGENCE
AET_ITEM_CURVE_GEN_MOVIE, ///< data_type: [Set/Get] AET_CURVE_GEN_MOVIE
AET_ITEM_METER_WIN, ///< data_type: [Set/Get] AET_METER_WINDOW
AET_ITEM_LUM_GAMMA, ///< data_type: [Set/Get] AET_LUM_GAMMA
AET_ITEM_SHDR, ///< data_type: [Set/Get] AET_SHDR
AET_ITEM_IRIS_CFG = 40,///< data_type: [Set/Get] AET_IRIS_CFG
AET_ITEM_CURVE_GEN_PHOTO, ///< data_type: [Set/Get] AET_CURVE_GEN_PHOTO
AET_ITEM_MANUAL, ///< data_type: [Set/Get] AET_MANUAL
AET_ITEM_STATUS, ///< data_type: [Get] AET_STATUS_INFO
AET_ITEM_PRIORITY, ///< data_type: [Set/Get] AET_PRIORITY
AET_ITEM_ROI_WIN = 45,///< data_type: [Set/Get] AET_ROI_WIN
AET_ITEM_SMART_IR, ///< data_type: [Set/Get] AET_SMART_IR
AET_ITEM_EXPT_BOUND, ///< data_type: [Set/Get] AET_EXPT_BOUND
AET_ITEM_GAIN_BOUND, ///< data_type: [Set/Get] AET_GAIN_BOUND
AET_ITEM_LA_WIN, ///< data_type: [Set/Get] AET_LA_WIN
AET_ITEM_RESERVE_50,
AET_ITEM_RESERVE_51,
AET_ITEM_RESERVE_52,
AET_ITEM_RESERVE_53,
AET_ITEM_RESERVE_54,
AET_ITEM_RESERVE_55,
AET_ITEM_RESERVE_56,
AET_ITEM_RESERVE_57,
AET_ITEM_RESERVE_58,
AET_ITEM_RESERVE_59,
AET_ITEM_MAX = 60,
AET_ITEM_NNSC_EXP_RATIO = AET_ITEM_NNSC_OFFSET,///< data_type: [Set/Get] AET_EXP_RATIO
AET_ITEM_NNSC_RESERVE_101,
AET_ITEM_NNSC_RESERVE_102,
AET_ITEM_NNSC_RESERVE_103,
AET_ITEM_NNSC_RESERVE_104,
AET_ITEM_NNSC_RESERVE_105,
AET_ITEM_NNSC_RESERVE_106,
AET_ITEM_NNSC_RESERVE_107,
AET_ITEM_NNSC_RESERVE_108,
AET_ITEM_NNSC_RESERVE_109,
AET_ITEM_NNSC_MAX = 110,
ENUM_DUMMY4WORD(AET_ITEM)
} AET_ITEM;
typedef struct AET_INFO {
UINT32 size_tab[AET_ITEM_MAX][2];
} AET_INFO;
typedef struct _AET_CFG_INFO {
AE_ID id;
CHAR path[AE_CFG_NAME_LENGTH];
} AET_CFG_INFO;
typedef struct _AET_DTSI_INFO {
AE_ID id;
CHAR node_path[AE_DTSI_NAME_LENGTH];
CHAR file_path[AE_DTSI_NAME_LENGTH];
UINT8 *buf_addr;
} AET_DTSI_INFO;
typedef struct _AET_FREQUENCY_MODE {
UINT32 id;
AE_FREQUENCY mode;
} AET_FREQUENCY_MODE;
typedef struct _AET_METER_MODE {
UINT32 id;
AE_METER mode;
} AET_METER_MODE;
typedef struct _AET_EV_OFFSET {
UINT32 id;
AE_EV offset;
} AET_EV_OFFSET;
typedef struct _AET_ISO_VALUE {
UINT32 id;
AE_ISO value;
} AET_ISO_VALUE;
typedef struct _AET_LONGEXP_MODE {
UINT32 id;
AE_CAP_LONGEXP mode;
} AET_LONGEXP_MODE;
typedef struct _AET_LONGEXP_EXPT_VALUE {
UINT32 id;
UINT32 value;
} AET_LONGEXP_EXPT_VALUE;
typedef struct _AET_LONGEXP_ISO_VALUE {
UINT32 id;
UINT32 value;
} AET_LONGEXP_ISO_VALUE;
typedef struct _AET_OPERATION {
UINT32 id;
AE_OPERATION operation;
} AET_OPERATION;
typedef struct _AET_BASE_ISO {
AE_ID id;
UINT32 base_iso;
} AET_BASE_ISO;
typedef struct _AET_BASE_GAIN_RATIO {
AE_ID id;
UINT32 base_gain_ratio;
} AET_BASE_GAIN_RATIO;
typedef struct _AET_EXPECT_LUM {
AE_ID id;
AE_EXPECT_LUM expect_lum;
} AET_EXPECT_LUM;
typedef struct _AET_LA_CLAMP {
AE_ID id;
AE_LA_CLAMP la_clamp;
} AET_LA_CLAMP;
typedef struct _AET_OVER_EXPOSURE {
AE_ID id;
AE_OVER_EXPOSURE over_exposure;
} AET_OVER_EXPOSURE;
typedef struct _AET_CONVERGENCE {
AE_ID id;
AE_CONVERGENCE convergence;
} AET_CONVERGENCE;
typedef struct _AET_CURVE_GEN_MOVIE {
AE_ID id;
AE_CURVE_GEN_MOVIE curve_gen_movie;
} AET_CURVE_GEN_MOVIE;
typedef struct _AET_EXTEND_PARAM {
AE_ID id;
AE_EXTEND_PARAM ext_param;
} AET_EXTEND_PARAM;
typedef struct _AET_METER_WINDOW {
AE_ID id;
AE_METER_WINDOW meter_window;
} AET_METER_WINDOW;
typedef struct _AET_LUM_GAMMA {
AE_ID id;
AE_LUM_GAMMA lum_gamma;
} AET_LUM_GAMMA;
typedef struct _AET_SHDR {
AE_ID id;
AE_SHDR shdr;
} AET_SHDR;
typedef struct _AET_IRIS_CFG {
AE_ID id;
AE_IRIS_CFG iris_cfg;
} AET_IRIS_CFG;
typedef struct _AET_CURVE_GEN_PHOTO {
AE_ID id;
AE_CURVE_GEN_PHOTO curve_gen_photo;
} AET_CURVE_GEN_PHOTO;
typedef struct _AET_MANUAL {
AE_ID id;
AE_MANUAL manual;
} AET_MANUAL;
typedef struct _AET_STATUS_INFO {
AE_ID id;
AE_STATUS_INFO status_info;
} AET_STATUS_INFO;
typedef struct _AET_PRIORITY {
AE_ID id;
UINT32 expt;
UINT32 iso;
UINT32 aperture;
} AET_PRIORITY;
typedef struct _AET_ROI_WIN {
AE_ID id;
AE_ROI_WIN roi_win;
} AET_ROI_WIN;
typedef struct _AET_SMART_IR {
AE_ID id;
AE_SMART_IR_WEIGHT weight;
} AET_SMART_IR;
typedef struct _AET_EXPT_BOUND {
AE_ID id;
AE_BOUNDARY bound;
} AET_EXPT_BOUND;
typedef struct _AET_GAIN_BOUND {
AE_ID id;
AE_BOUNDARY bound;
} AET_GAIN_BOUND;
typedef struct _AET_LA_WIN {
AE_ID id;
AE_LA_WIN la_win;
} AET_LA_WIN;
typedef struct _AET_APERTURE_BOUND {
AE_ID id;
AE_APERTURE_BOUND aperture_bound;
} AET_APERTURE_BOUND;
typedef struct _AET_STITCH_ID {
AE_ID id;
UINT32 stitch_id;
} AET_STITCH_ID;
typedef struct _AET_AFD_TRIGGER {
AE_ID id;
AE_AFD_TRIGGER afd_trigger_type;
} AET_AFD_TRIGGER;
typedef struct _AET_AFD_DETECT_RESULT {
AE_ID id;
UINT32 afd_detect_result;
} AET_AFD_DETECT_RESULT;
typedef struct _AET_AFD_UNDETERMINED_FREQ {
AE_ID id;
AE_FLICKER afd_undetermined_freq;
} AET_AFD_UNDETERMINED_FREQ;
typedef struct _AET_AFD_PARAM {
AE_ID id;
AE_AFD_PARAM afd_param;
} AET_AFD_PARAM;
typedef struct _AET_DCIRIS {
AE_ID id;
} AET_DCIRIS;
typedef struct _AET_SHDR_HBS {
AE_ID id;
AE_SHDR_HBS shdr_hbs;
} AET_SHDR_HBS;
// Struct of NNSC Parameter
typedef struct AET_NNSC_INFO {
UINT32 size_tab[AET_ITEM_NNSC_MAX - AET_ITEM_NNSC_OFFSET][2];
} AET_NNSC_INFO;
typedef struct _AET_EXP_RATIO {
AE_ID id;
AE_NNSC_EXP_RATIO ratio;
} AET_EXP_RATIO;
typedef struct _AET_LA_ROI {
AE_ID id;
URECT la_roi;
} AET_LA_ROI;
typedef struct _AET_SKIP_LA {
AE_ID id;
UINT32 skip_la;
} AET_SKIP_LA;
#endif