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