xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/algos/afd/rk_aiq_types_afd_algo_int.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1 /*
2 * rk_aiq_types_afd_algo_int.h
3 
4 * for rockchip v2.0.0
5 *
6 *  Copyright (c) 2019 Rockchip Corporation
7 *
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 *      http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 *
20 */
21 /* for rockchip v2.0.0*/
22 
23 #ifndef __RK_AIQ_TYPES_AFD_ALGO_INT_H__
24 #define __RK_AIQ_TYPES_AFD_ALGO_INT_H__
25 
26 /**
27  * @file rk_aiq_types_afd_algo_int.h
28  *
29  * @brief
30  *
31  *****************************************************************************/
32 /**
33  * @page module_name_page Module Name
34  * Describe here what this module does.
35  *
36  * For a detailed list of functions and implementation detail refer to:
37  * - @ref module_name
38  *
39  * @defgroup AFD Auto flicker detection Module
40  * @{
41  *
42  */
43 #include <list>
44 #include "RkAiqCalibDbV2Helper.h"
45 #include "RkAiqCalibDbV2.h"
46 #include "rk_aiq_types_afd_algo.h"
47 #include "ae/rk_aiq_types_ae_algo_int.h"
48 
49 
50 /*****************************************************************************/
51 /**
52  * @brief   log level of afd
53  */
54 /*****************************************************************************/
55 typedef struct AfdConfig_s {
56 
57     int                           Workingmode;
58 
59     /*params related to driver setting*/
60     float                         LinePeriodsPerField;
61     float                         PixelClockFreqMHZ;
62     float                         PixelPeriodsPerLine;
63 
64     int                           RawWidth;
65     int                           RawHeight;
66 
67     int                           ScaleH;
68     int                           ScaleW;
69 
70     bool                          enable;
71 
72 } AfdConfig_t;
73 
74 /*****************************************************************************/
75 /**
76  *          AfdInstanceConfig_t
77  *
78  * @brief   AFD Module instance configuration structure
79  *
80  *****************************************************************************/
81 typedef struct AfdContext_s* AfdHandle_t;    /**< handle to AEC context */
82 
83 #define THUMBDATA_MAXNUM (4)
84 typedef struct ThumbData_s {
85     uint8_t* baseaddr;
86     uint32_t  frameid;
87     RKAiqAecExpInfo_t expinfo;
88 } ThumbData_t;
89 
90 typedef struct AfdInstanceConfig_s {
91     AfdHandle_t              hAfd;            /**< handle returned by AfdInit() */
92     AfdConfig_t*             afdCfg;
93     std::list<ThumbData_t*> _thumbQueue;
94 } AfdInstanceConfig_t;
95 
96 /*****************************************************************************/
97 /**
98  * @brief   ISP2.0 AFD Algo Result Params
99  */
100 /*****************************************************************************/
101 typedef struct AfdPreResult_s {
102 
103 } AfdPreResult_t;
104 
105 /*****************************************************************************/
106 /**
107 *     AfdcProcResult_t
108 * @brief   Afd_Result.
109 *
110 */
111 /*****************************************************************************/
112 typedef struct AfdProcResult_s {
113     bool                    Enable;
114     AfdPeakRes_t            PeakRes;
115 } AfdProcResult_t;
116 
117 typedef struct AfdPostResult_s {
118 
119 } AfdPostResult_t;
120 
121 /* @} AFD */
122 
123 #endif /* __RK_AIQ_TYPES_AFD_ALGO_INT_H__*/
124