1 /*
2 * Copyright (c) 2019 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 #include "sample_comm.h"
19 #include "uAPI2/rk_aiq_user_api2_adrc.h"
20
sample_adrc_usage()21 static void sample_adrc_usage()
22 {
23 printf("Usage : \n");
24 printf("\t 0) ADRC: test rk_aiq_user_api2_adrc_v10_SetAttrib stManual Sync.\n");
25 printf("\t 1) ADRC: test rk_aiq_user_api2_adrc_v10_GetAttrib stManual Async.\n");
26 printf("\t 2) ADRC: test rk_aiq_user_api2_adrc_v10_GetAttrib.\n");
27 printf("\t 3) ADRC: test rk_aiq_user_api2_adrc_v11_SetAttrib stManual Sync.\n");
28 printf("\t 4) ADRC: test rk_aiq_user_api2_adrc_v11_GetAttrib stManual Async.\n");
29 printf("\t 5) ADRC: test rk_aiq_user_api2_adrc_v11_GetAttrib.\n");
30 printf("\t 6) ADRC: test rk_aiq_user_api2_adrc_v12_SetAttrib stManual Sync.\n");
31 printf("\t 7) ADRC: test rk_aiq_user_api2_adrc_v12_GetAttrib stManual Async.\n");
32 printf("\t 8) ADRC: test rk_aiq_user_api2_adrc_v12_GetAttrib.\n");
33 printf("\t 9) ADRC: test rk_aiq_user_api2_adrc_v12_lite_SetAttrib stManual Sync.\n");
34 printf("\t a) ADRC: test rk_aiq_user_api2_adrc_v12_lite_GetAttrib stManual Async.\n");
35 printf("\t b) ADRC: test rk_aiq_user_api2_adrc_v12_lite_GetAttrib.\n");
36 printf("\t c) ADRC: test rk_aiq_user_api2_adrc_SetAttrib stManual Sync.\n");
37 printf("\t d) ADRC: test rk_aiq_user_api2_adrc_SetAttrib stManual Async.\n");
38 printf("\t e) ADRC: test rk_aiq_user_api2_adrc_GetAttrib.\n");
39 printf("\t f) ADRC: test rk_aiq_uapi2_getDrcGain.\n");
40 printf("\t g) ADRC: test rk_aiq_uapi2_setDrcGain.\n");
41 printf("\t h) ADRC: test rk_aiq_uapi2_getDrcHiLit.\n");
42 printf("\t i) ADRC: test rk_aiq_uapi2_setDrcHiLit.\n");
43 printf("\t j) ADRC: test rk_aiq_uapi2_getDrcLocalData.\n");
44 printf("\t k) ADRC: test rk_aiq_uapi2_setDrcLocalData.\n");
45 printf("\t q) ADRC: return to main sample screen.\n");
46
47 printf("\n");
48 printf("\t please press the key: ");
49
50 return;
51 }
52
sample_print_adrc_info(const void * arg)53 void sample_print_adrc_info(const void *arg)
54 {
55 printf ("enter ADRC modult test!\n");
56 }
57
sample_adrc_module(const void * arg)58 XCamReturn sample_adrc_module(const void *arg)
59 {
60 int key = -1;
61 CLEAR();
62
63 drcAttrV10_t attr_v10;
64 drcAttrV11_t attr_v11;
65 drcAttrV12_t attr_v12;
66 drcAttrV12Lite_t attr_v12_lite;
67 drc_attrib_t attr_v2;
68 const demo_context_t *demo_ctx = (demo_context_t *)arg;
69 const rk_aiq_sys_ctx_t* ctx ;
70 if (demo_ctx->camGroup) {
71 ctx = (rk_aiq_sys_ctx_t*)(demo_ctx->camgroup_ctx);
72 } else {
73 ctx = (rk_aiq_sys_ctx_t*)(demo_ctx->aiq_ctx);
74 }
75
76 do {
77 sample_adrc_usage ();
78
79 key = getchar ();
80 while (key == '\n' || key == '\r')
81 key = getchar();
82 printf ("\n");
83
84 switch (key) {
85 case '0': {
86 printf("\t ADRC test rk_aiq_user_api2_adrc_v10_SetAttrib stManual Sync\n\n");
87 attr_v10.sync.sync_mode = RK_AIQ_UAPI_MODE_DEFAULT;
88 attr_v10.sync.done = false;
89 attr_v10.opMode = DRC_OPMODE_MANUAL;
90 attr_v10.stManual.Enable = true;
91 attr_v10.stManual.DrcGain.Alpha = 0.2;
92 attr_v10.stManual.DrcGain.DrcGain = 2;
93 attr_v10.stManual.DrcGain.Clip = 1;
94 attr_v10.stManual.HiLight.Strength = 0.5;
95 attr_v10.stManual.LocalTMOSetting.LocalTMOData.LocalWeit = 1;
96 attr_v10.stManual.LocalTMOSetting.LocalTMOData.GlobalContrast = 0.5;
97 attr_v10.stManual.LocalTMOSetting.LocalTMOData.LoLitContrast = 0.5;
98 attr_v10.stManual.LocalTMOSetting.curPixWeit = 0.376471;
99 attr_v10.stManual.LocalTMOSetting.preFrameWeit = 0.8;
100 attr_v10.stManual.LocalTMOSetting.Range_force_sgm = 0.0;
101 attr_v10.stManual.LocalTMOSetting.Range_sgm_cur = 0.2;
102 attr_v10.stManual.LocalTMOSetting.Range_sgm_pre = 0.2;
103 attr_v10.stManual.LocalTMOSetting.Space_sgm_cur = 4068;
104 attr_v10.stManual.LocalTMOSetting.Space_sgm_pre = 3068;
105 attr_v10.stManual.CompressSetting.Mode = COMPRESS_AUTO;
106 attr_v10.stManual.CompressSetting.Manual_curve[0] = 0;
107 attr_v10.stManual.CompressSetting.Manual_curve[1] = 558;
108 attr_v10.stManual.CompressSetting.Manual_curve[2] = 1087;
109 attr_v10.stManual.CompressSetting.Manual_curve[3] = 1588;
110 attr_v10.stManual.CompressSetting.Manual_curve[4] = 2063;
111 attr_v10.stManual.CompressSetting.Manual_curve[5] = 2515;
112 attr_v10.stManual.CompressSetting.Manual_curve[6] = 2944;
113 attr_v10.stManual.CompressSetting.Manual_curve[7] = 3353;
114 attr_v10.stManual.CompressSetting.Manual_curve[8] = 3744;
115 attr_v10.stManual.CompressSetting.Manual_curve[9] = 4473;
116 attr_v10.stManual.CompressSetting.Manual_curve[10] = 5139;
117 attr_v10.stManual.CompressSetting.Manual_curve[11] = 5751;
118 attr_v10.stManual.CompressSetting.Manual_curve[12] = 6316;
119 attr_v10.stManual.CompressSetting.Manual_curve[13] = 6838;
120 attr_v10.stManual.CompressSetting.Manual_curve[14] = 7322;
121 attr_v10.stManual.CompressSetting.Manual_curve[15] = 7772;
122 attr_v10.stManual.CompressSetting.Manual_curve[16] = 8192;
123 attr_v10.stManual.Scale_y[0] = 0;
124 attr_v10.stManual.Scale_y[1] = 2;
125 attr_v10.stManual.Scale_y[2] = 20;
126 attr_v10.stManual.Scale_y[3] = 76;
127 attr_v10.stManual.Scale_y[4] = 193;
128 attr_v10.stManual.Scale_y[5] = 381;
129 attr_v10.stManual.Scale_y[6] = 631;
130 attr_v10.stManual.Scale_y[7] = 772;
131 attr_v10.stManual.Scale_y[8] = 919;
132 attr_v10.stManual.Scale_y[9] = 1066;
133 attr_v10.stManual.Scale_y[10] = 1210;
134 attr_v10.stManual.Scale_y[11] = 1479;
135 attr_v10.stManual.Scale_y[12] = 1700;
136 attr_v10.stManual.Scale_y[13] = 1863;
137 attr_v10.stManual.Scale_y[14] = 1968;
138 attr_v10.stManual.Scale_y[15] = 2024;
139 attr_v10.stManual.Scale_y[16] = 2048;
140 attr_v10.stManual.Edge_Weit = 0.02;
141 attr_v10.stManual.OutPutLongFrame = false;
142 attr_v10.stManual.IIR_frame = 2;
143 rk_aiq_user_api2_adrc_v10_SetAttrib(ctx, &attr_v10);
144 break;
145 }
146 case '1': {
147 printf("\t ADRC test rk_aiq_user_api2_adrc_v10_SetAttrib stManual Async\n\n");
148 attr_v10.sync.sync_mode = RK_AIQ_UAPI_MODE_ASYNC;
149 attr_v10.sync.done = false;
150 attr_v10.opMode = DRC_OPMODE_MANUAL;
151 attr_v10.stManual.Enable = true;
152 attr_v10.stManual.DrcGain.Alpha = 0.1;
153 attr_v10.stManual.DrcGain.DrcGain = 2;
154 attr_v10.stManual.DrcGain.Clip = 1;
155 attr_v10.stManual.HiLight.Strength = 0.5;
156 attr_v10.stManual.LocalTMOSetting.LocalTMOData.LocalWeit = 1;
157 attr_v10.stManual.LocalTMOSetting.LocalTMOData.GlobalContrast = 0.5;
158 attr_v10.stManual.LocalTMOSetting.LocalTMOData.LoLitContrast = 0.5;
159 attr_v10.stManual.LocalTMOSetting.curPixWeit = 0.376471;
160 attr_v10.stManual.LocalTMOSetting.preFrameWeit = 0.8;
161 attr_v10.stManual.LocalTMOSetting.Range_force_sgm = 0.0;
162 attr_v10.stManual.LocalTMOSetting.Range_sgm_cur = 0.2;
163 attr_v10.stManual.LocalTMOSetting.Range_sgm_pre = 0.2;
164 attr_v10.stManual.LocalTMOSetting.Space_sgm_cur = 4068;
165 attr_v10.stManual.LocalTMOSetting.Space_sgm_pre = 3068;
166 attr_v10.stManual.CompressSetting.Mode = COMPRESS_AUTO;
167 attr_v10.stManual.CompressSetting.Manual_curve[0] = 0;
168 attr_v10.stManual.CompressSetting.Manual_curve[1] = 558;
169 attr_v10.stManual.CompressSetting.Manual_curve[2] = 1087;
170 attr_v10.stManual.CompressSetting.Manual_curve[3] = 1588;
171 attr_v10.stManual.CompressSetting.Manual_curve[4] = 2063;
172 attr_v10.stManual.CompressSetting.Manual_curve[5] = 2515;
173 attr_v10.stManual.CompressSetting.Manual_curve[6] = 2944;
174 attr_v10.stManual.CompressSetting.Manual_curve[7] = 3353;
175 attr_v10.stManual.CompressSetting.Manual_curve[8] = 3744;
176 attr_v10.stManual.CompressSetting.Manual_curve[9] = 4473;
177 attr_v10.stManual.CompressSetting.Manual_curve[10] = 5139;
178 attr_v10.stManual.CompressSetting.Manual_curve[11] = 5751;
179 attr_v10.stManual.CompressSetting.Manual_curve[12] = 6316;
180 attr_v10.stManual.CompressSetting.Manual_curve[13] = 6838;
181 attr_v10.stManual.CompressSetting.Manual_curve[14] = 7322;
182 attr_v10.stManual.CompressSetting.Manual_curve[15] = 7772;
183 attr_v10.stManual.CompressSetting.Manual_curve[16] = 8192;
184 attr_v10.stManual.Scale_y[0] = 0;
185 attr_v10.stManual.Scale_y[1] = 2;
186 attr_v10.stManual.Scale_y[2] = 20;
187 attr_v10.stManual.Scale_y[3] = 76;
188 attr_v10.stManual.Scale_y[4] = 193;
189 attr_v10.stManual.Scale_y[5] = 381;
190 attr_v10.stManual.Scale_y[6] = 631;
191 attr_v10.stManual.Scale_y[7] = 772;
192 attr_v10.stManual.Scale_y[8] = 919;
193 attr_v10.stManual.Scale_y[9] = 1066;
194 attr_v10.stManual.Scale_y[10] = 1210;
195 attr_v10.stManual.Scale_y[11] = 1479;
196 attr_v10.stManual.Scale_y[12] = 1700;
197 attr_v10.stManual.Scale_y[13] = 1863;
198 attr_v10.stManual.Scale_y[14] = 1968;
199 attr_v10.stManual.Scale_y[15] = 2024;
200 attr_v10.stManual.Scale_y[16] = 2048;
201 attr_v10.stManual.Edge_Weit = 0.02;
202 attr_v10.stManual.OutPutLongFrame = false;
203 attr_v10.stManual.IIR_frame = 2;
204 rk_aiq_user_api2_adrc_v10_SetAttrib(ctx, &attr_v10);
205 break;
206 }
207 case '2': {
208 printf("\t ADRC test rk_aiq_user_api2_adrc_GetAttrib\n\n");
209 rk_aiq_user_api2_adrc_v10_GetAttrib(ctx, &attr_v10);
210 printf("\t sync = %d, done = %d\n", attr_v10.sync.sync_mode, attr_v10.sync.done);
211 printf("\t opMode:%d EnvLv:%f ISO:%f\n\n", attr_v10.opMode,
212 attr_v10.Info.CtrlInfo.EnvLv, attr_v10.Info.CtrlInfo.ISO);
213 printf("\t stManual DrcGain:%f Alpha:%f Clip:%f\n\n",
214 attr_v10.stManual.DrcGain.DrcGain, attr_v10.stManual.DrcGain.Alpha,
215 attr_v10.stManual.DrcGain.Clip);
216 break;
217 }
218 case '3': {
219 printf("\t ADRC test rk_aiq_user_api2_adrc_v11_SetAttrib stManual Sync\n\n");
220 attr_v11.sync.sync_mode = RK_AIQ_UAPI_MODE_DEFAULT;
221 attr_v11.sync.done = false;
222 attr_v11.opMode = DRC_OPMODE_MANUAL;
223 attr_v11.stManual.Enable = true;
224 attr_v11.stManual.DrcGain.Alpha = 0.2;
225 attr_v11.stManual.DrcGain.DrcGain = 2;
226 attr_v11.stManual.DrcGain.Clip = 1;
227 attr_v11.stManual.HiLight.Strength = 0.5;
228 attr_v11.stManual.LocalSetting.LocalData.LocalWeit = 1;
229 attr_v11.stManual.LocalSetting.LocalData.LocalAutoEnable = 1;
230 attr_v11.stManual.LocalSetting.LocalData.LocalAutoWeit = 0.5;
231 attr_v11.stManual.LocalSetting.LocalData.GlobalContrast = 0.5;
232 attr_v11.stManual.LocalSetting.LocalData.LoLitContrast = 0.5;
233 attr_v11.stManual.LocalSetting.curPixWeit = 0.376471;
234 attr_v11.stManual.LocalSetting.preFrameWeit = 0.8;
235 attr_v11.stManual.LocalSetting.Range_force_sgm = 0.0;
236 attr_v11.stManual.LocalSetting.Range_sgm_cur = 0.2;
237 attr_v11.stManual.LocalSetting.Range_sgm_pre = 0.2;
238 attr_v11.stManual.LocalSetting.Space_sgm_cur = 4068;
239 attr_v11.stManual.LocalSetting.Space_sgm_pre = 3068;
240 attr_v11.stManual.CompressSetting.Mode = COMPRESS_AUTO;
241 attr_v11.stManual.CompressSetting.Manual_curve[0] = 0;
242 attr_v11.stManual.CompressSetting.Manual_curve[1] = 558;
243 attr_v11.stManual.CompressSetting.Manual_curve[2] = 1087;
244 attr_v11.stManual.CompressSetting.Manual_curve[3] = 1588;
245 attr_v11.stManual.CompressSetting.Manual_curve[4] = 2063;
246 attr_v11.stManual.CompressSetting.Manual_curve[5] = 2515;
247 attr_v11.stManual.CompressSetting.Manual_curve[6] = 2944;
248 attr_v11.stManual.CompressSetting.Manual_curve[7] = 3353;
249 attr_v11.stManual.CompressSetting.Manual_curve[8] = 3744;
250 attr_v11.stManual.CompressSetting.Manual_curve[9] = 4473;
251 attr_v11.stManual.CompressSetting.Manual_curve[10] = 5139;
252 attr_v11.stManual.CompressSetting.Manual_curve[11] = 5751;
253 attr_v11.stManual.CompressSetting.Manual_curve[12] = 6316;
254 attr_v11.stManual.CompressSetting.Manual_curve[13] = 6838;
255 attr_v11.stManual.CompressSetting.Manual_curve[14] = 7322;
256 attr_v11.stManual.CompressSetting.Manual_curve[15] = 7772;
257 attr_v11.stManual.CompressSetting.Manual_curve[16] = 8192;
258 attr_v11.stManual.Scale_y[0] = 0;
259 attr_v11.stManual.Scale_y[1] = 2;
260 attr_v11.stManual.Scale_y[2] = 20;
261 attr_v11.stManual.Scale_y[3] = 76;
262 attr_v11.stManual.Scale_y[4] = 193;
263 attr_v11.stManual.Scale_y[5] = 381;
264 attr_v11.stManual.Scale_y[6] = 631;
265 attr_v11.stManual.Scale_y[7] = 772;
266 attr_v11.stManual.Scale_y[8] = 919;
267 attr_v11.stManual.Scale_y[9] = 1066;
268 attr_v11.stManual.Scale_y[10] = 1211;
269 attr_v11.stManual.Scale_y[11] = 1479;
270 attr_v11.stManual.Scale_y[12] = 1700;
271 attr_v11.stManual.Scale_y[13] = 1863;
272 attr_v11.stManual.Scale_y[14] = 1968;
273 attr_v11.stManual.Scale_y[15] = 2024;
274 attr_v11.stManual.Scale_y[16] = 2048;
275 attr_v11.stManual.Edge_Weit = 0.02;
276 attr_v11.stManual.OutPutLongFrame = false;
277 attr_v11.stManual.IIR_frame = 2;
278 rk_aiq_user_api2_adrc_v11_SetAttrib(ctx, &attr_v11);
279 break;
280 }
281 case '4': {
282 printf("\t ADRC test rk_aiq_user_api2_adrc_v11_SetAttrib stManual Async\n\n");
283 attr_v11.sync.sync_mode = RK_AIQ_UAPI_MODE_ASYNC;
284 attr_v11.sync.done = false;
285 attr_v11.opMode = DRC_OPMODE_MANUAL;
286 attr_v11.stManual.Enable = true;
287 attr_v11.stManual.DrcGain.Alpha = 0.1;
288 attr_v11.stManual.DrcGain.DrcGain = 2;
289 attr_v11.stManual.DrcGain.Clip = 1;
290 attr_v11.stManual.HiLight.Strength = 0.5;
291 attr_v11.stManual.LocalSetting.LocalData.LocalWeit = 1;
292 attr_v11.stManual.LocalSetting.LocalData.LocalAutoEnable = 1;
293 attr_v11.stManual.LocalSetting.LocalData.LocalAutoWeit = 0.5;
294 attr_v11.stManual.LocalSetting.LocalData.GlobalContrast = 0.5;
295 attr_v11.stManual.LocalSetting.LocalData.LoLitContrast = 0.5;
296 attr_v11.stManual.LocalSetting.curPixWeit = 0.376471;
297 attr_v11.stManual.LocalSetting.preFrameWeit = 0.8;
298 attr_v11.stManual.LocalSetting.Range_force_sgm = 0.0;
299 attr_v11.stManual.LocalSetting.Range_sgm_cur = 0.2;
300 attr_v11.stManual.LocalSetting.Range_sgm_pre = 0.2;
301 attr_v11.stManual.LocalSetting.Space_sgm_cur = 4068;
302 attr_v11.stManual.LocalSetting.Space_sgm_pre = 3068;
303 attr_v11.stManual.CompressSetting.Mode = COMPRESS_AUTO;
304 attr_v11.stManual.CompressSetting.Manual_curve[0] = 0;
305 attr_v11.stManual.CompressSetting.Manual_curve[1] = 558;
306 attr_v11.stManual.CompressSetting.Manual_curve[2] = 1087;
307 attr_v11.stManual.CompressSetting.Manual_curve[3] = 1588;
308 attr_v11.stManual.CompressSetting.Manual_curve[4] = 2063;
309 attr_v11.stManual.CompressSetting.Manual_curve[5] = 2515;
310 attr_v11.stManual.CompressSetting.Manual_curve[6] = 2944;
311 attr_v11.stManual.CompressSetting.Manual_curve[7] = 3353;
312 attr_v11.stManual.CompressSetting.Manual_curve[8] = 3744;
313 attr_v11.stManual.CompressSetting.Manual_curve[9] = 4473;
314 attr_v11.stManual.CompressSetting.Manual_curve[10] = 5139;
315 attr_v11.stManual.CompressSetting.Manual_curve[11] = 5751;
316 attr_v11.stManual.CompressSetting.Manual_curve[12] = 6316;
317 attr_v11.stManual.CompressSetting.Manual_curve[13] = 6838;
318 attr_v11.stManual.CompressSetting.Manual_curve[14] = 7322;
319 attr_v11.stManual.CompressSetting.Manual_curve[15] = 7772;
320 attr_v11.stManual.CompressSetting.Manual_curve[16] = 8192;
321 attr_v11.stManual.Scale_y[0] = 0;
322 attr_v11.stManual.Scale_y[1] = 2;
323 attr_v11.stManual.Scale_y[2] = 20;
324 attr_v11.stManual.Scale_y[3] = 76;
325 attr_v11.stManual.Scale_y[4] = 193;
326 attr_v11.stManual.Scale_y[5] = 381;
327 attr_v11.stManual.Scale_y[6] = 631;
328 attr_v11.stManual.Scale_y[7] = 772;
329 attr_v11.stManual.Scale_y[8] = 919;
330 attr_v11.stManual.Scale_y[9] = 1066;
331 attr_v11.stManual.Scale_y[10] = 1211;
332 attr_v11.stManual.Scale_y[11] = 1479;
333 attr_v11.stManual.Scale_y[12] = 1700;
334 attr_v11.stManual.Scale_y[13] = 1863;
335 attr_v11.stManual.Scale_y[14] = 1968;
336 attr_v11.stManual.Scale_y[15] = 2024;
337 attr_v11.stManual.Scale_y[16] = 2048;
338 attr_v11.stManual.Edge_Weit = 0.02;
339 attr_v11.stManual.OutPutLongFrame = false;
340 attr_v11.stManual.IIR_frame = 2;
341 rk_aiq_user_api2_adrc_v11_SetAttrib(ctx, &attr_v11);
342 break;
343 }
344 case '5': {
345 printf("\t ADRC test rk_aiq_user_api2_adrc_GetAttrib\n\n");
346 rk_aiq_user_api2_adrc_v11_GetAttrib(ctx, &attr_v11);
347 printf("\t sync = %d, done = %d\n", attr_v11.sync.sync_mode, attr_v11.sync.done);
348 printf("\t opMode:%d EnvLv:%f ISO:%f\n\n", attr_v11.opMode,
349 attr_v11.Info.CtrlInfo.EnvLv, attr_v11.Info.CtrlInfo.ISO);
350 printf("\t stManual DrcGain:%f Alpha:%f Clip:%f\n\n",
351 attr_v11.stManual.DrcGain.DrcGain, attr_v11.stManual.DrcGain.Alpha,
352 attr_v11.stManual.DrcGain.Clip);
353 break;
354 }
355 case '6': {
356 printf("\t ADRC test rk_aiq_user_api2_adrc_v12_SetAttrib stManual Sync\n\n");
357 attr_v12.sync.sync_mode = RK_AIQ_UAPI_MODE_DEFAULT;
358 attr_v12.sync.done = false;
359 attr_v12.opMode = DRC_OPMODE_MANUAL;
360 attr_v12.stManual.Enable = true;
361 attr_v12.stManual.DrcGain.Alpha = 0.2;
362 attr_v12.stManual.DrcGain.DrcGain = 2;
363 attr_v12.stManual.DrcGain.Clip = 1;
364 attr_v12.stManual.HiLight.HiLightData.Strength = 0.5;
365 attr_v12.stManual.HiLight.HiLightData.gas_t = 0.5;
366 attr_v12.stManual.HiLight.gas_l0 = 24;
367 attr_v12.stManual.HiLight.gas_l1 = 10;
368 attr_v12.stManual.HiLight.gas_l2 = 10;
369 attr_v12.stManual.HiLight.gas_l3 = 5;
370 attr_v12.stManual.LocalSetting.LocalData.LocalWeit = 1;
371 attr_v12.stManual.LocalSetting.LocalData.LocalAutoEnable = 1;
372 attr_v12.stManual.LocalSetting.LocalData.LocalAutoWeit = 0.5;
373 attr_v12.stManual.LocalSetting.LocalData.GlobalContrast = 0.5;
374 attr_v12.stManual.LocalSetting.LocalData.LoLitContrast = 0.5;
375 attr_v12.stManual.LocalSetting.MotionData.MotionStr = 0.0;
376 attr_v12.stManual.LocalSetting.curPixWeit = 0.376471;
377 attr_v12.stManual.LocalSetting.preFrameWeit = 0.8;
378 attr_v12.stManual.LocalSetting.Range_force_sgm = 0.0;
379 attr_v12.stManual.LocalSetting.Range_sgm_cur = 0.2;
380 attr_v12.stManual.LocalSetting.Range_sgm_pre = 0.2;
381 attr_v12.stManual.LocalSetting.Space_sgm_cur = 4068;
382 attr_v12.stManual.LocalSetting.Space_sgm_pre = 3068;
383 attr_v12.stManual.CompressSetting.Mode = COMPRESS_AUTO;
384 attr_v12.stManual.CompressSetting.Manual_curve[0] = 0;
385 attr_v12.stManual.CompressSetting.Manual_curve[1] = 558;
386 attr_v12.stManual.CompressSetting.Manual_curve[2] = 1087;
387 attr_v12.stManual.CompressSetting.Manual_curve[3] = 1588;
388 attr_v12.stManual.CompressSetting.Manual_curve[4] = 2063;
389 attr_v12.stManual.CompressSetting.Manual_curve[5] = 2515;
390 attr_v12.stManual.CompressSetting.Manual_curve[6] = 2944;
391 attr_v12.stManual.CompressSetting.Manual_curve[7] = 3353;
392 attr_v12.stManual.CompressSetting.Manual_curve[8] = 3744;
393 attr_v12.stManual.CompressSetting.Manual_curve[9] = 4473;
394 attr_v12.stManual.CompressSetting.Manual_curve[10] = 5139;
395 attr_v12.stManual.CompressSetting.Manual_curve[11] = 5751;
396 attr_v12.stManual.CompressSetting.Manual_curve[12] = 6316;
397 attr_v12.stManual.CompressSetting.Manual_curve[13] = 6838;
398 attr_v12.stManual.CompressSetting.Manual_curve[14] = 7322;
399 attr_v12.stManual.CompressSetting.Manual_curve[15] = 7772;
400 attr_v12.stManual.CompressSetting.Manual_curve[16] = 8192;
401 attr_v12.stManual.Scale_y[0] = 0;
402 attr_v12.stManual.Scale_y[1] = 2;
403 attr_v12.stManual.Scale_y[2] = 20;
404 attr_v12.stManual.Scale_y[3] = 76;
405 attr_v12.stManual.Scale_y[4] = 193;
406 attr_v12.stManual.Scale_y[5] = 381;
407 attr_v12.stManual.Scale_y[6] = 631;
408 attr_v12.stManual.Scale_y[7] = 772;
409 attr_v12.stManual.Scale_y[8] = 919;
410 attr_v12.stManual.Scale_y[9] = 1066;
411 attr_v12.stManual.Scale_y[10] = 1212;
412 attr_v12.stManual.Scale_y[11] = 1479;
413 attr_v12.stManual.Scale_y[12] = 1700;
414 attr_v12.stManual.Scale_y[13] = 1863;
415 attr_v12.stManual.Scale_y[14] = 1968;
416 attr_v12.stManual.Scale_y[15] = 2024;
417 attr_v12.stManual.Scale_y[16] = 2048;
418 attr_v12.stManual.Edge_Weit = 0.02;
419 attr_v12.stManual.OutPutLongFrame = false;
420 attr_v12.stManual.IIR_frame = 2;
421 rk_aiq_user_api2_adrc_v12_SetAttrib(ctx, &attr_v12);
422 break;
423 }
424 case '7': {
425 printf("\t ADRC test rk_aiq_user_api2_adrc_v12_SetAttrib stManual Async\n\n");
426 attr_v12.sync.sync_mode = RK_AIQ_UAPI_MODE_ASYNC;
427 attr_v12.sync.done = false;
428 attr_v12.opMode = DRC_OPMODE_MANUAL;
429 attr_v12.stManual.Enable = true;
430 attr_v12.stManual.DrcGain.Alpha = 0.1;
431 attr_v12.stManual.DrcGain.DrcGain = 2;
432 attr_v12.stManual.DrcGain.Clip = 1;
433 attr_v12.stManual.HiLight.HiLightData.Strength = 0.5;
434 attr_v12.stManual.HiLight.HiLightData.gas_t = 0.5;
435 attr_v12.stManual.HiLight.gas_l0 = 24;
436 attr_v12.stManual.HiLight.gas_l1 = 10;
437 attr_v12.stManual.HiLight.gas_l2 = 10;
438 attr_v12.stManual.HiLight.gas_l3 = 5;
439 attr_v12.stManual.LocalSetting.LocalData.LocalWeit = 1;
440 attr_v12.stManual.LocalSetting.LocalData.LocalAutoEnable = 1;
441 attr_v12.stManual.LocalSetting.LocalData.LocalAutoWeit = 0.5;
442 attr_v12.stManual.LocalSetting.LocalData.GlobalContrast = 0.5;
443 attr_v12.stManual.LocalSetting.LocalData.LoLitContrast = 0.5;
444 attr_v12.stManual.LocalSetting.MotionData.MotionStr = 0.0;
445 attr_v12.stManual.LocalSetting.curPixWeit = 0.376471;
446 attr_v12.stManual.LocalSetting.preFrameWeit = 0.8;
447 attr_v12.stManual.LocalSetting.Range_force_sgm = 0.0;
448 attr_v12.stManual.LocalSetting.Range_sgm_cur = 0.2;
449 attr_v12.stManual.LocalSetting.Range_sgm_pre = 0.2;
450 attr_v12.stManual.LocalSetting.Space_sgm_cur = 4068;
451 attr_v12.stManual.LocalSetting.Space_sgm_pre = 3068;
452 attr_v12.stManual.CompressSetting.Mode = COMPRESS_AUTO;
453 attr_v12.stManual.CompressSetting.Manual_curve[0] = 0;
454 attr_v12.stManual.CompressSetting.Manual_curve[1] = 558;
455 attr_v12.stManual.CompressSetting.Manual_curve[2] = 1087;
456 attr_v12.stManual.CompressSetting.Manual_curve[3] = 1588;
457 attr_v12.stManual.CompressSetting.Manual_curve[4] = 2063;
458 attr_v12.stManual.CompressSetting.Manual_curve[5] = 2515;
459 attr_v12.stManual.CompressSetting.Manual_curve[6] = 2944;
460 attr_v12.stManual.CompressSetting.Manual_curve[7] = 3353;
461 attr_v12.stManual.CompressSetting.Manual_curve[8] = 3744;
462 attr_v12.stManual.CompressSetting.Manual_curve[9] = 4473;
463 attr_v12.stManual.CompressSetting.Manual_curve[10] = 5139;
464 attr_v12.stManual.CompressSetting.Manual_curve[11] = 5751;
465 attr_v12.stManual.CompressSetting.Manual_curve[12] = 6316;
466 attr_v12.stManual.CompressSetting.Manual_curve[13] = 6838;
467 attr_v12.stManual.CompressSetting.Manual_curve[14] = 7322;
468 attr_v12.stManual.CompressSetting.Manual_curve[15] = 7772;
469 attr_v12.stManual.CompressSetting.Manual_curve[16] = 8192;
470 attr_v12.stManual.Scale_y[0] = 0;
471 attr_v12.stManual.Scale_y[1] = 2;
472 attr_v12.stManual.Scale_y[2] = 20;
473 attr_v12.stManual.Scale_y[3] = 76;
474 attr_v12.stManual.Scale_y[4] = 193;
475 attr_v12.stManual.Scale_y[5] = 381;
476 attr_v12.stManual.Scale_y[6] = 631;
477 attr_v12.stManual.Scale_y[7] = 772;
478 attr_v12.stManual.Scale_y[8] = 919;
479 attr_v12.stManual.Scale_y[9] = 1066;
480 attr_v12.stManual.Scale_y[10] = 1212;
481 attr_v12.stManual.Scale_y[11] = 1479;
482 attr_v12.stManual.Scale_y[12] = 1700;
483 attr_v12.stManual.Scale_y[13] = 1863;
484 attr_v12.stManual.Scale_y[14] = 1968;
485 attr_v12.stManual.Scale_y[15] = 2024;
486 attr_v12.stManual.Scale_y[16] = 2048;
487 attr_v12.stManual.Edge_Weit = 0.02;
488 attr_v12.stManual.OutPutLongFrame = false;
489 attr_v12.stManual.IIR_frame = 2;
490 rk_aiq_user_api2_adrc_v12_SetAttrib(ctx, &attr_v12);
491 break;
492 }
493 case '8': {
494 printf("\t ADRC test rk_aiq_user_api2_adrc_GetAttrib\n\n");
495 rk_aiq_user_api2_adrc_v12_GetAttrib(ctx, &attr_v12);
496 printf("\t sync = %d, done = %d\n", attr_v12.sync.sync_mode, attr_v12.sync.done);
497 printf("\t opMode:%d EnvLv:%f ISO:%f\n\n", attr_v12.opMode,
498 attr_v12.Info.CtrlInfo.EnvLv, attr_v12.Info.CtrlInfo.ISO);
499 printf("\t stManual DrcGain:%f Alpha:%f Clip:%f\n\n",
500 attr_v12.stManual.DrcGain.DrcGain, attr_v12.stManual.DrcGain.Alpha,
501 attr_v12.stManual.DrcGain.Clip);
502 break;
503 }
504 case '9': {
505 printf("\t ADRC test rk_aiq_user_api2_adrc_v12_lite_SetAttrib stManual Sync\n\n");
506 attr_v12_lite.sync.sync_mode = RK_AIQ_UAPI_MODE_DEFAULT;
507 attr_v12_lite.sync.done = false;
508 attr_v12_lite.opMode = DRC_OPMODE_MANUAL;
509 attr_v12_lite.stManual.Enable = true;
510 attr_v12_lite.stManual.DrcGain.Alpha = 0.2;
511 attr_v12_lite.stManual.DrcGain.DrcGain = 2;
512 attr_v12_lite.stManual.DrcGain.Clip = 1;
513 attr_v12_lite.stManual.HiLight.HiLightData.Strength = 0.5;
514 attr_v12_lite.stManual.HiLight.HiLightData.gas_t = 0.5;
515 attr_v12_lite.stManual.HiLight.gas_l0 = 24;
516 attr_v12_lite.stManual.HiLight.gas_l1 = 10;
517 attr_v12_lite.stManual.HiLight.gas_l2 = 10;
518 attr_v12_lite.stManual.HiLight.gas_l3 = 5;
519 attr_v12_lite.stManual.LocalSetting.LocalData.LocalWeit = 1;
520 attr_v12_lite.stManual.LocalSetting.LocalData.LocalAutoEnable = 1;
521 attr_v12_lite.stManual.LocalSetting.LocalData.LocalAutoWeit = 0.5;
522 attr_v12_lite.stManual.LocalSetting.LocalData.GlobalContrast = 0.5;
523 attr_v12_lite.stManual.LocalSetting.LocalData.LoLitContrast = 0.5;
524 attr_v12_lite.stManual.LocalSetting.MotionData.MotionStr = 0.0;
525 attr_v12_lite.stManual.LocalSetting.curPixWeit = 0.376471;
526 attr_v12_lite.stManual.LocalSetting.Range_force_sgm = 0.0;
527 attr_v12_lite.stManual.LocalSetting.Range_sgm_cur = 0.2;
528 attr_v12_lite.stManual.LocalSetting.Space_sgm_cur = 4068;
529 attr_v12_lite.stManual.CompressSetting.Mode = COMPRESS_AUTO;
530 attr_v12_lite.stManual.CompressSetting.Manual_curve[0] = 0;
531 attr_v12_lite.stManual.CompressSetting.Manual_curve[1] = 558;
532 attr_v12_lite.stManual.CompressSetting.Manual_curve[2] = 1087;
533 attr_v12_lite.stManual.CompressSetting.Manual_curve[3] = 1588;
534 attr_v12_lite.stManual.CompressSetting.Manual_curve[4] = 2063;
535 attr_v12_lite.stManual.CompressSetting.Manual_curve[5] = 2515;
536 attr_v12_lite.stManual.CompressSetting.Manual_curve[6] = 2944;
537 attr_v12_lite.stManual.CompressSetting.Manual_curve[7] = 3353;
538 attr_v12_lite.stManual.CompressSetting.Manual_curve[8] = 3744;
539 attr_v12_lite.stManual.CompressSetting.Manual_curve[9] = 4473;
540 attr_v12_lite.stManual.CompressSetting.Manual_curve[10] = 5139;
541 attr_v12_lite.stManual.CompressSetting.Manual_curve[11] = 5751;
542 attr_v12_lite.stManual.CompressSetting.Manual_curve[12] = 6316;
543 attr_v12_lite.stManual.CompressSetting.Manual_curve[13] = 6838;
544 attr_v12_lite.stManual.CompressSetting.Manual_curve[14] = 7322;
545 attr_v12_lite.stManual.CompressSetting.Manual_curve[15] = 7772;
546 attr_v12_lite.stManual.CompressSetting.Manual_curve[16] = 8192;
547 attr_v12_lite.stManual.Scale_y[0] = 0;
548 attr_v12_lite.stManual.Scale_y[1] = 2;
549 attr_v12_lite.stManual.Scale_y[2] = 20;
550 attr_v12_lite.stManual.Scale_y[3] = 76;
551 attr_v12_lite.stManual.Scale_y[4] = 193;
552 attr_v12_lite.stManual.Scale_y[5] = 381;
553 attr_v12_lite.stManual.Scale_y[6] = 631;
554 attr_v12_lite.stManual.Scale_y[7] = 772;
555 attr_v12_lite.stManual.Scale_y[8] = 919;
556 attr_v12_lite.stManual.Scale_y[9] = 1066;
557 attr_v12_lite.stManual.Scale_y[10] = 1212;
558 attr_v12_lite.stManual.Scale_y[11] = 1479;
559 attr_v12_lite.stManual.Scale_y[12] = 1700;
560 attr_v12_lite.stManual.Scale_y[13] = 1863;
561 attr_v12_lite.stManual.Scale_y[14] = 1968;
562 attr_v12_lite.stManual.Scale_y[15] = 2024;
563 attr_v12_lite.stManual.Scale_y[16] = 2048;
564 attr_v12_lite.stManual.Edge_Weit = 0.02;
565 attr_v12_lite.stManual.OutPutLongFrame = false;
566 attr_v12_lite.stManual.IIR_frame = 2;
567 rk_aiq_user_api2_adrc_v12_lite_SetAttrib(ctx, &attr_v12_lite);
568 break;
569 }
570 case 'a': {
571 printf("\t ADRC test rk_aiq_user_api2_adrc_v12_lite_SetAttrib stManual Async\n\n");
572 attr_v12_lite.sync.sync_mode = RK_AIQ_UAPI_MODE_ASYNC;
573 attr_v12_lite.sync.done = false;
574 attr_v12_lite.opMode = DRC_OPMODE_MANUAL;
575 attr_v12_lite.stManual.Enable = true;
576 attr_v12_lite.stManual.DrcGain.Alpha = 0.1;
577 attr_v12_lite.stManual.DrcGain.DrcGain = 2;
578 attr_v12_lite.stManual.DrcGain.Clip = 1;
579 attr_v12_lite.stManual.HiLight.HiLightData.Strength = 0.5;
580 attr_v12_lite.stManual.HiLight.HiLightData.gas_t = 0.5;
581 attr_v12_lite.stManual.HiLight.gas_l0 = 24;
582 attr_v12_lite.stManual.HiLight.gas_l1 = 10;
583 attr_v12_lite.stManual.HiLight.gas_l2 = 10;
584 attr_v12_lite.stManual.HiLight.gas_l3 = 5;
585 attr_v12_lite.stManual.LocalSetting.LocalData.LocalWeit = 1;
586 attr_v12_lite.stManual.LocalSetting.LocalData.LocalAutoEnable = 1;
587 attr_v12_lite.stManual.LocalSetting.LocalData.LocalAutoWeit = 0.5;
588 attr_v12_lite.stManual.LocalSetting.LocalData.GlobalContrast = 0.5;
589 attr_v12_lite.stManual.LocalSetting.LocalData.LoLitContrast = 0.5;
590 attr_v12_lite.stManual.LocalSetting.MotionData.MotionStr = 0.0;
591 attr_v12_lite.stManual.LocalSetting.curPixWeit = 0.376471;
592 attr_v12_lite.stManual.LocalSetting.Range_force_sgm = 0.0;
593 attr_v12_lite.stManual.LocalSetting.Range_sgm_cur = 0.2;
594 attr_v12_lite.stManual.LocalSetting.Space_sgm_cur = 4068;
595 attr_v12_lite.stManual.CompressSetting.Mode = COMPRESS_AUTO;
596 attr_v12_lite.stManual.CompressSetting.Manual_curve[0] = 0;
597 attr_v12_lite.stManual.CompressSetting.Manual_curve[1] = 558;
598 attr_v12_lite.stManual.CompressSetting.Manual_curve[2] = 1087;
599 attr_v12_lite.stManual.CompressSetting.Manual_curve[3] = 1588;
600 attr_v12_lite.stManual.CompressSetting.Manual_curve[4] = 2063;
601 attr_v12_lite.stManual.CompressSetting.Manual_curve[5] = 2515;
602 attr_v12_lite.stManual.CompressSetting.Manual_curve[6] = 2944;
603 attr_v12_lite.stManual.CompressSetting.Manual_curve[7] = 3353;
604 attr_v12_lite.stManual.CompressSetting.Manual_curve[8] = 3744;
605 attr_v12_lite.stManual.CompressSetting.Manual_curve[9] = 4473;
606 attr_v12_lite.stManual.CompressSetting.Manual_curve[10] = 5139;
607 attr_v12_lite.stManual.CompressSetting.Manual_curve[11] = 5751;
608 attr_v12_lite.stManual.CompressSetting.Manual_curve[12] = 6316;
609 attr_v12_lite.stManual.CompressSetting.Manual_curve[13] = 6838;
610 attr_v12_lite.stManual.CompressSetting.Manual_curve[14] = 7322;
611 attr_v12_lite.stManual.CompressSetting.Manual_curve[15] = 7772;
612 attr_v12_lite.stManual.CompressSetting.Manual_curve[16] = 8192;
613 attr_v12_lite.stManual.Scale_y[0] = 0;
614 attr_v12_lite.stManual.Scale_y[1] = 2;
615 attr_v12_lite.stManual.Scale_y[2] = 20;
616 attr_v12_lite.stManual.Scale_y[3] = 76;
617 attr_v12_lite.stManual.Scale_y[4] = 193;
618 attr_v12_lite.stManual.Scale_y[5] = 381;
619 attr_v12_lite.stManual.Scale_y[6] = 631;
620 attr_v12_lite.stManual.Scale_y[7] = 772;
621 attr_v12_lite.stManual.Scale_y[8] = 919;
622 attr_v12_lite.stManual.Scale_y[9] = 1066;
623 attr_v12_lite.stManual.Scale_y[10] = 1212;
624 attr_v12_lite.stManual.Scale_y[11] = 1479;
625 attr_v12_lite.stManual.Scale_y[12] = 1700;
626 attr_v12_lite.stManual.Scale_y[13] = 1863;
627 attr_v12_lite.stManual.Scale_y[14] = 1968;
628 attr_v12_lite.stManual.Scale_y[15] = 2024;
629 attr_v12_lite.stManual.Scale_y[16] = 2048;
630 attr_v12_lite.stManual.Edge_Weit = 0.02;
631 attr_v12_lite.stManual.OutPutLongFrame = false;
632 attr_v12_lite.stManual.IIR_frame = 2;
633 rk_aiq_user_api2_adrc_v12_lite_SetAttrib(ctx, &attr_v12_lite);
634 break;
635 }
636 case 'b': {
637 printf("\t ADRC test rk_aiq_user_api2_lite_adrc_GetAttrib\n\n");
638 rk_aiq_user_api2_adrc_v12_lite_GetAttrib(ctx, &attr_v12_lite);
639 printf("\t sync = %d, done = %d\n", attr_v12_lite.sync.sync_mode,
640 attr_v12_lite.sync.done);
641 printf("\t opMode:%d EnvLv:%f ISO:%f\n\n", attr_v12_lite.opMode,
642 attr_v12_lite.Info.CtrlInfo.EnvLv, attr_v12_lite.Info.CtrlInfo.ISO);
643 printf("\t stManual DrcGain:%f Alpha:%f Clip:%f\n\n",
644 attr_v12_lite.stManual.DrcGain.DrcGain, attr_v12_lite.stManual.DrcGain.Alpha,
645 attr_v12_lite.stManual.DrcGain.Clip);
646 break;
647 }
648 case 'c': {
649 printf("\t ADRC test rk_aiq_user_api2_adrc_SetAttrib stManual Sync\n\n");
650 attr_v2.sync.sync_mode = RK_AIQ_UAPI_MODE_DEFAULT;
651 attr_v2.sync.done = false;
652 attr_v2.opMode = DRC_OPMODE_MANUAL;
653 attr_v2.stManualV30.Enable = true;
654 attr_v2.stManualV30.DrcGain.Alpha = 0.2;
655 attr_v2.stManualV30.DrcGain.DrcGain = 2;
656 attr_v2.stManualV30.DrcGain.Clip = 1;
657 attr_v2.stManualV30.HiLight.Strength = 0.5;
658 attr_v2.stManualV30.LocalSetting.LocalData.LocalWeit = 1;
659 attr_v2.stManualV30.LocalSetting.LocalData.LocalAutoEnable = 1;
660 attr_v2.stManualV30.LocalSetting.LocalData.LocalAutoWeit = 0.5;
661 attr_v2.stManualV30.LocalSetting.LocalData.GlobalContrast = 0.5;
662 attr_v2.stManualV30.LocalSetting.LocalData.LoLitContrast = 0.5;
663 attr_v2.stManualV30.LocalSetting.curPixWeit = 0.376471;
664 attr_v2.stManualV30.LocalSetting.preFrameWeit = 0.8;
665 attr_v2.stManualV30.LocalSetting.Range_force_sgm = 0.0;
666 attr_v2.stManualV30.LocalSetting.Range_sgm_cur = 0.2;
667 attr_v2.stManualV30.LocalSetting.Range_sgm_pre = 0.2;
668 attr_v2.stManualV30.LocalSetting.Space_sgm_cur = 4068;
669 attr_v2.stManualV30.LocalSetting.Space_sgm_pre = 3068;
670 attr_v2.stManualV30.LocalSetting.Space_sgm_pre = 3068;
671 attr_v2.stManualV30.CompressSetting.Mode = COMPRESS_AUTO;
672 attr_v2.stManualV30.CompressSetting.Manual_curve[0] = 0;
673 attr_v2.stManualV30.CompressSetting.Manual_curve[1] = 558;
674 attr_v2.stManualV30.CompressSetting.Manual_curve[2] = 1087;
675 attr_v2.stManualV30.CompressSetting.Manual_curve[3] = 1588;
676 attr_v2.stManualV30.CompressSetting.Manual_curve[4] = 2063;
677 attr_v2.stManualV30.CompressSetting.Manual_curve[5] = 2515;
678 attr_v2.stManualV30.CompressSetting.Manual_curve[6] = 2944;
679 attr_v2.stManualV30.CompressSetting.Manual_curve[7] = 3353;
680 attr_v2.stManualV30.CompressSetting.Manual_curve[8] = 3744;
681 attr_v2.stManualV30.CompressSetting.Manual_curve[9] = 4473;
682 attr_v2.stManualV30.CompressSetting.Manual_curve[10] = 5139;
683 attr_v2.stManualV30.CompressSetting.Manual_curve[11] = 5751;
684 attr_v2.stManualV30.CompressSetting.Manual_curve[12] = 6316;
685 attr_v2.stManualV30.CompressSetting.Manual_curve[13] = 6838;
686 attr_v2.stManualV30.CompressSetting.Manual_curve[14] = 7322;
687 attr_v2.stManualV30.CompressSetting.Manual_curve[15] = 7772;
688 attr_v2.stManualV30.CompressSetting.Manual_curve[16] = 8192;
689 attr_v2.stManualV30.Scale_y[0] = 0;
690 attr_v2.stManualV30.Scale_y[1] = 2;
691 attr_v2.stManualV30.Scale_y[2] = 20;
692 attr_v2.stManualV30.Scale_y[3] = 76;
693 attr_v2.stManualV30.Scale_y[4] = 193;
694 attr_v2.stManualV30.Scale_y[5] = 381;
695 attr_v2.stManualV30.Scale_y[6] = 631;
696 attr_v2.stManualV30.Scale_y[7] = 772;
697 attr_v2.stManualV30.Scale_y[8] = 919;
698 attr_v2.stManualV30.Scale_y[9] = 1066;
699 attr_v2.stManualV30.Scale_y[10] = 1212;
700 attr_v2.stManualV30.Scale_y[11] = 1479;
701 attr_v2.stManualV30.Scale_y[12] = 1700;
702 attr_v2.stManualV30.Scale_y[13] = 1863;
703 attr_v2.stManualV30.Scale_y[14] = 1968;
704 attr_v2.stManualV30.Scale_y[15] = 2024;
705 attr_v2.stManualV30.Scale_y[16] = 2048;
706 attr_v2.stManualV30.Edge_Weit = 0.02;
707 attr_v2.stManualV30.OutPutLongFrame = false;
708 attr_v2.stManualV30.IIR_frame = 2;
709 rk_aiq_user_api2_adrc_SetAttrib(ctx, attr_v2);
710 break;
711 }
712 case 'd': {
713 printf("\t ADRC test rk_aiq_user_api2_adrc_SetAttrib stManual Async\n\n");
714 attr_v2.sync.sync_mode = RK_AIQ_UAPI_MODE_ASYNC;
715 attr_v2.sync.done = false;
716 attr_v2.opMode = DRC_OPMODE_MANUAL;
717 attr_v2.stManualV30.Enable = true;
718 attr_v2.stManualV30.DrcGain.Alpha = 0.1;
719 attr_v2.stManualV30.DrcGain.DrcGain = 2;
720 attr_v2.stManualV30.DrcGain.Clip = 1;
721 attr_v2.stManualV30.HiLight.Strength = 0.5;
722 attr_v2.stManualV30.LocalSetting.LocalData.LocalWeit = 1;
723 attr_v2.stManualV30.LocalSetting.LocalData.LocalAutoEnable = 1;
724 attr_v2.stManualV30.LocalSetting.LocalData.LocalAutoWeit = 0.5;
725 attr_v2.stManualV30.LocalSetting.LocalData.GlobalContrast = 0.5;
726 attr_v2.stManualV30.LocalSetting.LocalData.LoLitContrast = 0.5;
727 attr_v2.stManualV30.LocalSetting.curPixWeit = 0.376471;
728 attr_v2.stManualV30.LocalSetting.preFrameWeit = 0.8;
729 attr_v2.stManualV30.LocalSetting.Range_force_sgm = 0.0;
730 attr_v2.stManualV30.LocalSetting.Range_sgm_cur = 0.2;
731 attr_v2.stManualV30.LocalSetting.Range_sgm_pre = 0.2;
732 attr_v2.stManualV30.LocalSetting.Space_sgm_cur = 4068;
733 attr_v2.stManualV30.LocalSetting.Space_sgm_pre = 3068;
734 attr_v2.stManualV30.LocalSetting.Space_sgm_pre = 3068;
735 attr_v2.stManualV30.CompressSetting.Mode = COMPRESS_AUTO;
736 attr_v2.stManualV30.CompressSetting.Manual_curve[0] = 0;
737 attr_v2.stManualV30.CompressSetting.Manual_curve[1] = 558;
738 attr_v2.stManualV30.CompressSetting.Manual_curve[2] = 1087;
739 attr_v2.stManualV30.CompressSetting.Manual_curve[3] = 1588;
740 attr_v2.stManualV30.CompressSetting.Manual_curve[4] = 2063;
741 attr_v2.stManualV30.CompressSetting.Manual_curve[5] = 2515;
742 attr_v2.stManualV30.CompressSetting.Manual_curve[6] = 2944;
743 attr_v2.stManualV30.CompressSetting.Manual_curve[7] = 3353;
744 attr_v2.stManualV30.CompressSetting.Manual_curve[8] = 3744;
745 attr_v2.stManualV30.CompressSetting.Manual_curve[9] = 4473;
746 attr_v2.stManualV30.CompressSetting.Manual_curve[10] = 5139;
747 attr_v2.stManualV30.CompressSetting.Manual_curve[11] = 5751;
748 attr_v2.stManualV30.CompressSetting.Manual_curve[12] = 6316;
749 attr_v2.stManualV30.CompressSetting.Manual_curve[13] = 6838;
750 attr_v2.stManualV30.CompressSetting.Manual_curve[14] = 7322;
751 attr_v2.stManualV30.CompressSetting.Manual_curve[15] = 7772;
752 attr_v2.stManualV30.CompressSetting.Manual_curve[16] = 8192;
753 attr_v2.stManualV30.Scale_y[0] = 0;
754 attr_v2.stManualV30.Scale_y[1] = 2;
755 attr_v2.stManualV30.Scale_y[2] = 20;
756 attr_v2.stManualV30.Scale_y[3] = 76;
757 attr_v2.stManualV30.Scale_y[4] = 193;
758 attr_v2.stManualV30.Scale_y[5] = 381;
759 attr_v2.stManualV30.Scale_y[6] = 631;
760 attr_v2.stManualV30.Scale_y[7] = 772;
761 attr_v2.stManualV30.Scale_y[8] = 919;
762 attr_v2.stManualV30.Scale_y[9] = 1066;
763 attr_v2.stManualV30.Scale_y[10] = 1212;
764 attr_v2.stManualV30.Scale_y[11] = 1479;
765 attr_v2.stManualV30.Scale_y[12] = 1700;
766 attr_v2.stManualV30.Scale_y[13] = 1863;
767 attr_v2.stManualV30.Scale_y[14] = 1968;
768 attr_v2.stManualV30.Scale_y[15] = 2024;
769 attr_v2.stManualV30.Scale_y[16] = 2048;
770 attr_v2.stManualV30.Edge_Weit = 0.02;
771 attr_v2.stManualV30.OutPutLongFrame = false;
772 attr_v2.stManualV30.IIR_frame = 2;
773 rk_aiq_user_api2_adrc_SetAttrib(ctx, attr_v2);
774 break;
775 }
776 case 'e': {
777 printf("\t ADRC test rk_aiq_user_api2_adrc_GetAttrib\n\n");
778 rk_aiq_user_api2_adrc_GetAttrib(ctx, &attr_v2);
779 printf("\t sync = %d, done = %d Version:%d\n", attr_v2.sync.sync_mode,
780 attr_v2.sync.done, attr_v2.Version);
781 printf("\t opMode:%d EnvLv:%f ISO:%f\n\n", attr_v2.opMode,
782 attr_v2.Info.CtrlInfo.EnvLv, attr_v2.Info.CtrlInfo.ISO);
783 printf("\t stManual DrcGain:%f Alpha:%f Clip:%f\n\n",
784 attr_v2.stManualV30.DrcGain.DrcGain, attr_v2.stManualV30.DrcGain.Alpha,
785 attr_v2.stManualV30.DrcGain.Clip);
786 break;
787 }
788 case 'f': {
789 printf("\t ADRC test rk_aiq_uapi2_getDrcGain\n\n");
790 float Gain = 0;
791 float Alpha = 0;
792 float Clip = 0;
793 rk_aiq_uapi2_getDrcGain(ctx, &Gain, &Alpha, &Clip);
794 printf("\t ADRC rk_aiq_uapi2_getDrcGain: Gain:%f Alpha:%f Clip:%f\n\n", Gain, Alpha,
795 Clip);
796 break;
797 }
798 case 'g': {
799 printf("\t ADRC test rk_aiq_uapi2_setDrcGain\n\n");
800 rk_aiq_uapi2_setDrcGain(ctx, 3.5, 0.4, 3);
801 break;
802 }
803 case 'h': {
804 printf("\t ADRC test rk_aiq_uapi2_getDrcHiLit\n\n");
805 float Strength = 0;
806 rk_aiq_uapi2_getDrcHiLit(ctx, &Strength);
807 printf("\t ADRC rk_aiq_uapi2_getDrcHiLit: Strength:%f\n\n", Strength);
808 break;
809 }
810 case 'i': {
811 printf("\t ADRC test rk_aiq_uapi2_setDrcHiLit\n\n");
812 rk_aiq_uapi2_setDrcHiLit(ctx, 0.8);
813 break;
814 }
815 case 'j': {
816 printf("\t ADRC test rk_aiq_uapi2_getDrcLocalData\n\n");
817 float LocalWeit = 0;
818 float GlobalContrast = 0;
819 float LoLitContrast = 0;
820 int LocalAutoEnable = 0;
821 float LocalAutoWeit = 0;
822 rk_aiq_uapi2_getDrcLocalData(ctx, &LocalWeit, &GlobalContrast, &LoLitContrast,
823 &LocalAutoEnable, &LocalAutoWeit);
824 printf(
825 "\t ADRC rk_aiq_uapi2_getDrcLocalData: LocalWeit:%f GlobalContrast:%f "
826 "LoLitContrast:%f LocalAutoEnable:%d LocalAutoWeit:%f\n\n",
827 LocalWeit, GlobalContrast, LoLitContrast, LocalAutoEnable, LocalAutoWeit);
828 break;
829 }
830 case 'k': {
831 printf("\t ADRC test rk_aiq_uapi2_setDrcLocalData\n\n");
832 rk_aiq_uapi2_setDrcLocalData(ctx, 1.0, 0.5, 0.5, 1, 0.9);
833 break;
834 }
835 default:
836 break;
837 }
838 } while (key != 'q' && key != 'Q');
839
840 return XCAM_RETURN_NO_ERROR;
841 }
842