1 /* 2 * Copyright (c) 2021 Rockchip Corporation 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 * 16 */ 17 18 #ifndef __ADRC_UAPI_HEAD_H__ 19 #define __ADRC_UAPI_HEAD_H__ 20 21 #include "adrc_head.h" 22 23 // drc v10 24 typedef struct mDrcGain_t { 25 // M4_NUMBER_DESC("DrcGain", "f32", M4_RANGE(1,8), "1.00", M4_DIGIT(2)) 26 float DrcGain; 27 // M4_NUMBER_DESC("Alpha", "f32", M4_RANGE(0,1), "0.20", M4_DIGIT(2)) 28 float Alpha; 29 // M4_NUMBER_DESC("Clip", "f32", M4_RANGE(0,64), "16.00", M4_DIGIT(2)) 30 float Clip; 31 } mDrcGain_t; 32 33 typedef struct mDrcHiLit_s { 34 // M4_NUMBER_DESC("Strength", "f32", M4_RANGE(0,1), "1.00", M4_DIGIT(2)) 35 float Strength; 36 } mDrcHiLit_t; 37 38 typedef struct mLocalDataV10_s { 39 // M4_NUMBER_DESC("LocalWeit", "f32", M4_RANGE(0,1), "1.00", M4_DIGIT(2)) 40 float LocalWeit; 41 // M4_NUMBER_DESC("GlobalContrast", "f32", M4_RANGE(0,1), "0.00", M4_DIGIT(3)) 42 float GlobalContrast; 43 // M4_NUMBER_DESC("LoLitContrast", "f32", M4_RANGE(0,1), "0.00", M4_DIGIT(3)) 44 float LoLitContrast; 45 } mLocalDataV10_t; 46 47 typedef struct mDrcLocalV10_s { 48 // M4_STRUCT_DESC("LocalTMOData", "normal_ui_style") 49 mLocalDataV10_t LocalTMOData; 50 // M4_NUMBER_DESC("curPixWeit", "f32", M4_RANGE(0,1), "0.37", M4_DIGIT(3)) 51 float curPixWeit; 52 // M4_NUMBER_DESC("preFrameWeit", "f32", M4_RANGE(0,1), "1.0", M4_DIGIT(3)) 53 float preFrameWeit; 54 // M4_NUMBER_DESC("Range_force_sgm", "f32", M4_RANGE(0,1), "0.0", M4_DIGIT(4)) 55 float Range_force_sgm; 56 // M4_NUMBER_DESC("Range_sgm_cur", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4)) 57 float Range_sgm_cur; 58 // M4_NUMBER_DESC("Range_sgm_pre", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4)) 59 float Range_sgm_pre; 60 // M4_NUMBER_DESC("Space_sgm_cur", "u16", M4_RANGE(0,4095), "4068", M4_DIGIT(0)) 61 int Space_sgm_cur; 62 // M4_NUMBER_DESC("Space_sgm_pre", "u16", M4_RANGE(0,4095), "3968", M4_DIGIT(0)) 63 int Space_sgm_pre; 64 } mDrcLocalV10_t; 65 66 typedef struct mDrcCompress_s { 67 // M4_ENUM_DESC("Mode", "CompressMode_t", "COMPRESS_AUTO") 68 CompressMode_t Mode; 69 // M4_ARRAY_MARK_DESC("Manual_curve", "u32", M4_SIZE(1,17), M4_RANGE(0, 8192), "[0, 558, 1087, 1588, 2063, 2515, 2944, 3353, 3744, 4473, 5139, 5751, 6316, 6838, 7322, 7772, 8192]", M4_DIGIT(0), M4_DYNAMIC(0), "drc_compress_curve") 70 uint16_t Manual_curve[ADRC_Y_NUM]; 71 } mDrcCompress_t; 72 73 typedef struct mdrcAttr_V10_s { 74 // M4_BOOL_DESC("Enable", "1") 75 bool Enable; 76 // M4_STRUCT_DESC("DrcGain", "normal_ui_style") 77 mDrcGain_t DrcGain; 78 // M4_STRUCT_DESC("HiLight", "normal_ui_style") 79 mDrcHiLit_t HiLight; 80 // M4_STRUCT_DESC("LocalTMOSetting", "normal_ui_style") 81 mDrcLocalV10_t LocalTMOSetting; 82 // M4_STRUCT_DESC("CompressSetting", "normal_ui_style") 83 mDrcCompress_t CompressSetting; 84 // M4_ARRAY_DESC("Scale_y", "u16", M4_SIZE(1,17), M4_RANGE(0, 2048), "[0,2,20,76,193,381,631,772,919,1066,1211,1479,1700,1863,1968,2024,2048]", M4_DIGIT(0), M4_DYNAMIC(0)) 85 int Scale_y[ADRC_Y_NUM]; 86 // M4_NUMBER_DESC("Edge_Weit", "f32", M4_RANGE(0,1), "1",M4_DIGIT(3)) 87 float Edge_Weit; 88 // M4_BOOL_DESC("OutPutLongFrame", "0") 89 bool OutPutLongFrame; 90 // M4_NUMBER_DESC("IIR_frame", "u8", M4_RANGE(1,1000), "2", M4_DIGIT(0)) 91 int IIR_frame; 92 } mdrcAttr_V10_t; 93 94 typedef struct DrcInfo_s { 95 // M4_NUMBER_DESC("EnvLv", "f32", M4_RANGE(0,1), "0", M4_DIGIT(6)) 96 float EnvLv; 97 // M4_NUMBER_DESC("ISO", "f32", M4_RANGE(50,1000000000), "0", M4_DIGIT(4)) 98 float ISO; 99 } DrcInfo_t; 100 101 typedef struct DrcInfoV10_s { 102 // M4_STRUCT_DESC("CtrlInfo", "normal_ui_style") 103 DrcInfo_t CtrlInfo; 104 // M4_STRUCT_DESC("ValidParams", "normal_ui_style") 105 mdrcAttr_V10_t ValidParams; 106 } DrcInfoV10_t; 107 108 // drc v11 109 typedef struct mLocalDataV11_s { 110 // M4_NUMBER_DESC("LocalWeit", "f32", M4_RANGE(0,1), "1.00", M4_DIGIT(2)) 111 float LocalWeit; 112 // M4_NUMBER_DESC("LocalAutoEnable", "u8", M4_RANGE(0,1), "1", M4_DIGIT(0)) 113 int LocalAutoEnable; 114 // M4_NUMBER_DESC("LocalAutoWeit", "f32", M4_RANGE(0,1), "0.037477", M4_DIGIT(5)) 115 float LocalAutoWeit; 116 // M4_NUMBER_DESC("GlobalContrast", "f32", M4_RANGE(0,1), "0.00", M4_DIGIT(3)) 117 float GlobalContrast; 118 // M4_NUMBER_DESC("LoLitContrast", "f32", M4_RANGE(0,1), "0.00", M4_DIGIT(3)) 119 float LoLitContrast; 120 } mLocalDataV11_t; 121 122 typedef struct mDrcLocalV11_s { 123 // M4_STRUCT_DESC("LocalData", "normal_ui_style") 124 mLocalDataV11_t LocalData; 125 // M4_NUMBER_DESC("curPixWeit", "f32", M4_RANGE(0,1), "0.37", M4_DIGIT(3)) 126 float curPixWeit; 127 // M4_NUMBER_DESC("preFrameWeit", "f32", M4_RANGE(0,1), "1.0", M4_DIGIT(3)) 128 float preFrameWeit; 129 // M4_NUMBER_DESC("Range_force_sgm", "f32", M4_RANGE(0,1), "0.0", M4_DIGIT(4)) 130 float Range_force_sgm; 131 // M4_NUMBER_DESC("Range_sgm_cur", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4)) 132 float Range_sgm_cur; 133 // M4_NUMBER_DESC("Range_sgm_pre", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4)) 134 float Range_sgm_pre; 135 // M4_NUMBER_DESC("Space_sgm_cur", "u16", M4_RANGE(0,4095), "4068", M4_DIGIT(0)) 136 int Space_sgm_cur; 137 // M4_NUMBER_DESC("Space_sgm_pre", "u16", M4_RANGE(0,4095), "3968", M4_DIGIT(0)) 138 int Space_sgm_pre; 139 } mDrcLocalV11_t; 140 141 typedef struct mdrcAttr_V11_s { 142 // M4_BOOL_DESC("Enable", "1") 143 bool Enable; 144 // M4_STRUCT_DESC("DrcGain", "normal_ui_style") 145 mDrcGain_t DrcGain; 146 // M4_STRUCT_DESC("HiLight", "normal_ui_style") 147 mDrcHiLit_t HiLight; 148 // M4_STRUCT_DESC("LocalSetting", "normal_ui_style") 149 mDrcLocalV11_t LocalSetting; 150 // M4_STRUCT_DESC("CompressSetting", "normal_ui_style") 151 mDrcCompress_t CompressSetting; 152 // M4_ARRAY_DESC("Scale_y", "u16", M4_SIZE(1,17), M4_RANGE(0, 2048), "[0,2,20,76,193,381,631,772,919,1066,1211,1479,1700,1863,1968,2024,2048]", M4_DIGIT(0), M4_DYNAMIC(0)) 153 int Scale_y[ADRC_Y_NUM]; 154 // M4_NUMBER_DESC("Edge_Weit", "f32", M4_RANGE(0,1), "1",M4_DIGIT(3)) 155 float Edge_Weit; 156 // M4_BOOL_DESC("OutPutLongFrame", "0") 157 bool OutPutLongFrame; 158 // M4_NUMBER_DESC("IIR_frame", "u8", M4_RANGE(1,1000), "2", M4_DIGIT(0)) 159 int IIR_frame; 160 } mdrcAttr_V11_t; 161 162 typedef struct DrcInfoV11_s { 163 // M4_STRUCT_DESC("CtrlInfo", "normal_ui_style") 164 DrcInfo_t CtrlInfo; 165 // M4_STRUCT_DESC("ValidParams", "normal_ui_style") 166 mdrcAttr_V11_t ValidParams; 167 } DrcInfoV11_t; 168 169 // drc attr V12 170 typedef struct mHighLightDataV12_s { 171 // M4_NUMBER_DESC("Strength", "f32", M4_RANGE(0,1), "0",M4_DIGIT(2)) 172 float Strength; 173 // M4_NUMBER_DESC("gas_t", "f32", M4_RANGE(0,2), "0",M4_DIGIT(3)) 174 float gas_t; 175 } mHighLightDataV12_t; 176 177 typedef struct mHighLightV12_s { 178 // M4_STRUCT_DESC("HiLightData", "normal_ui_style") 179 mHighLightDataV12_t HiLightData; 180 // M4_NUMBER_DESC("gas_l0", "u8", M4_RANGE(0,64), "24", M4_DIGIT(0)) 181 int gas_l0; 182 // M4_NUMBER_DESC("gas_l1", "u8", M4_RANGE(0,64), "10", M4_DIGIT(0)) 183 int gas_l1; 184 // M4_NUMBER_DESC("gas_l2", "u8", M4_RANGE(0,64), "10", M4_DIGIT(0)) 185 int gas_l2; 186 // M4_NUMBER_DESC("gas_l3", "u8", M4_RANGE(0,64), "5", M4_DIGIT(0)) 187 int gas_l3; 188 } mHighLightV12_t; 189 190 typedef struct mMotionData_s { 191 // M4_NUMBER_DESC("Strength", "f32", M4_RANGE(0,1), "0",M4_DIGIT(3)) 192 float MotionStr; 193 } mMotionData_t; 194 195 typedef struct mDrcLocalV12_s { 196 // M4_STRUCT_DESC("LocalData", "normal_ui_style") 197 mLocalDataV11_t LocalData; 198 // M4_STRUCT_DESC("MotionData", "normal_ui_style") 199 mMotionData_t MotionData; 200 // M4_NUMBER_DESC("curPixWeit", "f32", M4_RANGE(0,1), "0.37", M4_DIGIT(3)) 201 float curPixWeit; 202 // M4_NUMBER_DESC("preFrameWeit", "f32", M4_RANGE(0,1), "1.0", M4_DIGIT(3)) 203 float preFrameWeit; 204 // M4_NUMBER_DESC("Range_force_sgm", "f32", M4_RANGE(0,1), "0.0", M4_DIGIT(4)) 205 float Range_force_sgm; 206 // M4_NUMBER_DESC("Range_sgm_cur", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4)) 207 float Range_sgm_cur; 208 // M4_NUMBER_DESC("Range_sgm_pre", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4)) 209 float Range_sgm_pre; 210 // M4_NUMBER_DESC("Space_sgm_cur", "u16", M4_RANGE(0,4095), "4068", M4_DIGIT(0)) 211 int Space_sgm_cur; 212 // M4_NUMBER_DESC("Space_sgm_pre", "u16", M4_RANGE(0,4095), "3968", M4_DIGIT(0)) 213 int Space_sgm_pre; 214 } mDrcLocalV12_t; 215 216 typedef struct mdrcAttr_V12_s { 217 // M4_BOOL_DESC("Enable", "1") 218 bool Enable; 219 // M4_STRUCT_DESC("DrcGain", "normal_ui_style") 220 mDrcGain_t DrcGain; 221 // M4_STRUCT_DESC("HiLight", "normal_ui_style") 222 mHighLightV12_t HiLight; 223 // M4_STRUCT_DESC("LocalSetting", "normal_ui_style") 224 mDrcLocalV12_t LocalSetting; 225 // M4_STRUCT_DESC("CompressSetting", "normal_ui_style") 226 mDrcCompress_t CompressSetting; 227 // M4_ARRAY_DESC("Scale_y", "u16", M4_SIZE(1,17), M4_RANGE(0, 2048), "[0,2,20,76,193,381,631,772,919,1066,1211,1479,1700,1863,1968,2024,2048]", M4_DIGIT(0), M4_DYNAMIC(0)) 228 int Scale_y[ADRC_Y_NUM]; 229 // M4_NUMBER_DESC("Edge_Weit", "f32", M4_RANGE(0,1), "1",M4_DIGIT(3)) 230 float Edge_Weit; 231 // M4_BOOL_DESC("OutPutLongFrame", "0") 232 bool OutPutLongFrame; 233 // M4_NUMBER_DESC("IIR_frame", "u8", M4_RANGE(1,1000), "2", M4_DIGIT(0)) 234 int IIR_frame; 235 } mdrcAttr_V12_t; 236 237 typedef struct DrcInfoV12_s { 238 // M4_STRUCT_DESC("CtrlInfo", "normal_ui_style") 239 DrcInfo_t CtrlInfo; 240 // M4_STRUCT_DESC("ValidParams", "normal_ui_style") 241 mdrcAttr_V12_t ValidParams; 242 } DrcInfoV12_t; 243 244 // drc attr V12 lite 245 typedef struct mDrcLocalV12Lite_s { 246 // M4_STRUCT_DESC("LocalData", "normal_ui_style") 247 mLocalDataV11_t LocalData; 248 // M4_STRUCT_DESC("MotionData", "normal_ui_style") 249 mMotionData_t MotionData; 250 // M4_NUMBER_DESC("curPixWeit", "f32", M4_RANGE(0,1), "0.37", M4_DIGIT(3)) 251 float curPixWeit; 252 // M4_NUMBER_DESC("Range_force_sgm", "f32", M4_RANGE(0,1), "0.0", M4_DIGIT(4)) 253 float Range_force_sgm; 254 // M4_NUMBER_DESC("Range_sgm_cur", "f32", M4_RANGE(0,1), "0.125", M4_DIGIT(4)) 255 float Range_sgm_cur; 256 // M4_NUMBER_DESC("Space_sgm_cur", "u16", M4_RANGE(0,4095), "4068", M4_DIGIT(0)) 257 int Space_sgm_cur; 258 } mDrcLocalV12Lite_t; 259 260 typedef struct mdrcAttr_v12_lite_s { 261 // M4_BOOL_DESC("Enable", "1") 262 bool Enable; 263 // M4_STRUCT_DESC("DrcGain", "normal_ui_style") 264 mDrcGain_t DrcGain; 265 // M4_STRUCT_DESC("HiLight", "normal_ui_style") 266 mHighLightV12_t HiLight; 267 // M4_STRUCT_DESC("LocalSetting", "normal_ui_style") 268 mDrcLocalV12Lite_t LocalSetting; 269 // M4_STRUCT_DESC("CompressSetting", "normal_ui_style") 270 mDrcCompress_t CompressSetting; 271 // M4_ARRAY_DESC("Scale_y", "u16", M4_SIZE(1,17), M4_RANGE(0, 2048), "[0,2,20,76,193,381,631,772,919,1066,1211,1479,1700,1863,1968,2024,2048]", M4_DIGIT(0), M4_DYNAMIC(0)) 272 int Scale_y[ADRC_Y_NUM]; 273 // M4_NUMBER_DESC("Edge_Weit", "f32", M4_RANGE(0,1), "1",M4_DIGIT(3)) 274 float Edge_Weit; 275 // M4_BOOL_DESC("OutPutLongFrame", "0") 276 bool OutPutLongFrame; 277 // M4_NUMBER_DESC("IIR_frame", "u8", M4_RANGE(1,1000), "2", M4_DIGIT(0)) 278 int IIR_frame; 279 } mdrcAttr_v12_lite_t; 280 281 typedef struct DrcInfoV12Lite_s { 282 // M4_STRUCT_DESC("CtrlInfo", "normal_ui_style") 283 DrcInfo_t CtrlInfo; 284 // M4_STRUCT_DESC("ValidParams", "normal_ui_style") 285 mdrcAttr_v12_lite_t ValidParams; 286 } DrcInfoV12Lite_t; 287 288 #endif /*__ADRC_UAPI_HEAD_H__*/ 289