mavcap_if.h
2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#ifndef _MAVCAP_IF_H_
#define _MAVCAP_IF_H_
#include "pp_comm_def.h"
#include "mm_comm_def.h"
#include "mavcap_comm_def.h"
#include "pp_if.h"
typedef enum
{
MAVCAP_IDLE_STATE=0,
MAVCAP_CONFIG_STATE,
MAVCAP_READY_STATE,
MAVCAP_MEM_PROCESS_STATE,
MAVCAP_PROCESS_STATE
} MAVCAP_STATE_ENUM;
/*****************************************************************************
Feature Control Enum and Structure
******************************************************************************/
typedef enum
{
MAVCAP_FEATURE_BEGIN,
MAVCAP_FEATURE_GET_ENV_INFO,
MAVCAP_FEATURE_SET_ENV_INFO,
MAVCAP_FEATURE_SET_PROC_INFO,
MAVCAP_FEATURE_GET_STATE,
MAVCAP_FEATURE_GET_RESULT,
MAVCAP_FEATURE_SET_LOG_INFO,
MAVCAP_FEATURE_MAX
} MAVCAP_FEATURE_ENUM;
typedef struct
{
kal_uint16 ImageWidth; // processing image width
kal_uint16 ImageHeight; // processing image height
kal_uint32 WorkingBufSize; // required working buffer size
MM_IMAGE_FORMAT_ENUM SrcImgFormat; // supported input image format, currently only RGB565 is supported.
} MAVCAP_GET_ENV_INFO_STRUCT, *P_MAVCAP_GET_ENV_INFO_STRUCT;
typedef struct
{
kal_uint16 target_width; // lcd width
kal_uint16 target_height; // lcd height
kal_bool dir_decided; // if true, this is not the first autocap image and driver only refreshs mv, and keeps direction
P_MAVCAP_TUNING_PARA_STRUCT p_tuning_data;
} MAVCAP_SET_ENV_INFO_STRUCT, *P_MAVCAP_SET_ENV_INFO_STRUCT;
typedef struct
{
kal_uint32 PpSrcBufAddr; // source image address
kal_uint32 PpSrcBufSize; // source image size
PP_MEM_OP_TYPE_ENUM PpMemOpType; // check if the source image needs bilinear resize or just memory copy
kal_uint32 PpProcBufAddr; // working buffer address
kal_uint32 PpProcBufSize; // working buffer size
MM_IMAGE_FORMAT_ENUM PpProcFmt; // source image format, currently only RGB565 is supported
float MotionValueXY[MOTION_TOTAL_BN*2]; //From EIS
float TrustValueXY[MOTION_TOTAL_BN*2]; //From EIS
kal_bool PpForceToShot;
} MAVCAP_SET_MEM_INFO_STRUCT, *P_MAVCAP_SET_MEM_INFO_STRUCT;
typedef struct
{
MM_ERROR_CODE_ENUM (* MavCapOpen)(void);
MM_ERROR_CODE_ENUM (* MavCapFeatureCtrl) (MAVCAP_FEATURE_ENUM FeatureId, void* pFeatureParaIn, void* pFeatureParaOut, kal_uint16 FeatureParaOutLen);
MM_ERROR_CODE_ENUM (* MavCapCtrl) (PP_SCENARIO_ENUM ScenarioId, PP_SCENARIO_CTRL_ENUM CtrlCode, void *pParaIn, void *pParaOut, kal_uint16 ParaOutLen);
MM_ERROR_CODE_ENUM (* MavCapClose)(void);
} MAVCAP_FUNCTION_STRUCT, *P_MAVCAP_FUNCTION_STRUCT;
MM_ERROR_CODE_ENUM MavCapInit(MM_ERROR_CODE_ENUM (* pfMavCapCallback) (PP_CALLBACK_ID_ENUM CbId,
void *pCallbackPara, kal_uint16 CallbackParaLen),
P_MAVCAP_FUNCTION_STRUCT *pfMavCapFunc);
#endif // _MAVCAP_IF_H_