xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/include/uAPI2/rk_aiq_user_api2_imgproc.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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 #ifndef _RK_AIQ_UAPI2_IMGPROC_H_
19 #define _RK_AIQ_UAPI2_IMGPROC_H_
20 
21 #include "base/xcam_common.h"
22 #include "rk_aiq_user_api2_a3dlut.h"
23 #include "rk_aiq_user_api2_abayer2dnr_v2.h"
24 #include "rk_aiq_user_api2_abayer2dnr_v23.h"
25 #include "rk_aiq_user_api2_abayernr_v2.h"
26 #include "rk_aiq_user_api2_abayertnr_v2.h"
27 #include "rk_aiq_user_api2_abayertnr_v23.h"
28 #include "rk_aiq_user_api2_ablc.h"
29 #include "rk_aiq_user_api2_accm.h"
30 #include "rk_aiq_user_api2_acnr_v1.h"
31 #include "rk_aiq_user_api2_acnr_v2.h"
32 #include "rk_aiq_user_api2_acnr_v30.h"
33 #include "rk_aiq_user_api2_acp.h"
34 #include "rk_aiq_user_api2_adebayer.h"
35 #include "rk_aiq_user_api2_adegamma.h"
36 #include "rk_aiq_user_api2_adehaze.h"
37 #include "rk_aiq_user_api2_adpcc.h"
38 #include "rk_aiq_user_api2_adrc.h"
39 #include "rk_aiq_user_api2_ae.h"
40 #include "rk_aiq_user_api2_af.h"
41 #include "rk_aiq_user_api2_afec.h"
42 #include "rk_aiq_user_api2_agamma.h"
43 #include "rk_aiq_user_api2_aie.h"
44 #include "rk_aiq_user_api2_aldch.h"
45 #include "rk_aiq_user_api2_alsc.h"
46 #include "rk_aiq_user_api2_amerge.h"
47 #include "rk_aiq_user_api2_anr.h"
48 #include "rk_aiq_user_api2_asharp_v3.h"
49 #include "rk_aiq_user_api2_asharp_v33.h"
50 #include "rk_aiq_user_api2_asharp_v4.h"
51 #include "rk_aiq_user_api2_atmo.h"
52 #include "rk_aiq_user_api2_awb.h"
53 #include "rk_aiq_user_api2_aynr_v2.h"
54 #include "rk_aiq_user_api2_aynr_v22.h"
55 #include "rk_aiq_user_api2_aynr_v3.h"
56 #include "rk_aiq_user_api_common.h"
57 #include "rk_aiq_user_api2_again_v2.h"
58 #include "rk_aiq_user_api2_aldch_v21.h"
59 #include "rk_aiq_user_api2_ablc_v32.h"
60 #include "rk_aiq_user_api2_acsm.h"
61 #include "rk_aiq_user_api2_acgc.h"
62 
63 RKAIQ_BEGIN_DECLARE
64 /*
65 **********************************************************
66 *                        API of AEC module of V2
67 **********************************************************
68 */
69 /*
70 *****************************
71 *
72 * Desc: set ae lock
73 * Argument:
74 *       true, ae lock
75 *           false, ae unlock
76 *****************************
77 */
78 XCamReturn rk_aiq_uapi2_setAeLock(const rk_aiq_sys_ctx_t* ctx, bool on);
79 
80 /*
81 *****************************
82 *
83 * Desc: set ae mode
84 * Argument:
85 *   mode contains: auto & manual
86 *
87 *****************************
88 */
89 XCamReturn rk_aiq_uapi2_setExpMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);
90 XCamReturn rk_aiq_uapi2_getExpMode(const rk_aiq_sys_ctx_t* ctx, opMode_t *mode);
91 
92 /*
93 *****************************
94 *
95 * Desc: set exposure parameter
96 * Argument:
97 *    auto exposure mode:
98 *      exposure gain will be adjust between [gain->min, gain->max]
99 *    manual exposure mode:
100 *      gain->min == gain->max
101 *
102 *****************************
103 */
104 XCamReturn rk_aiq_uapi2_setExpGainRange(const rk_aiq_sys_ctx_t* ctx, paRange_t *gain);
105 XCamReturn rk_aiq_uapi2_getExpGainRange(const rk_aiq_sys_ctx_t* ctx, paRange_t *gain);
106 /*
107 *****************************
108 *
109 * Desc: set exposure parameter
110 * Argument:
111 *    auto exposure mode:
112 *       exposure time will be adjust between [time->min, time->max]
113 *    manual exposure mode:
114 *       exposure time will be set gain->min == gain->max;
115 *
116 *****************************
117 */
118 XCamReturn rk_aiq_uapi2_setExpTimeRange(const rk_aiq_sys_ctx_t* ctx, paRange_t *time);
119 XCamReturn rk_aiq_uapi2_getExpTimeRange(const rk_aiq_sys_ctx_t* ctx, paRange_t *time);
120 
121 /*
122 *****************************
123 *
124 * Desc: blacklight compensation
125 * Argument:
126 *      on:  1  on
127 *           0  off
128 *      areaType: blacklight compensation area
129 *
130 *****************************
131 */
132 XCamReturn rk_aiq_uapi2_setBLCMode(const rk_aiq_sys_ctx_t* ctx, bool on, aeMeasAreaType_t areaType);
133 
134 /*
135 *****************************
136 *
137 * Desc: backlight compensation strength,only available in normal mode
138 * Argument:
139 *      strength:  [1,100]
140 *****************************
141 */
142 XCamReturn rk_aiq_uapi2_setBLCStrength(const rk_aiq_sys_ctx_t* ctx, int strength);
143 
144 /*
145 *****************************
146 *
147 * Desc: highlight compensation
148 * Argument:
149 *      on:  1  on
150 *           0  off
151 *
152 *****************************
153 */
154 XCamReturn rk_aiq_uapi2_setHLCMode(const rk_aiq_sys_ctx_t* ctx, bool on);
155 
156 /*
157 *****************************
158 *
159 * Desc: highlight compensation strength,only available in normal mode
160 * Argument:
161 *      strength:  [1,100]
162 *****************************
163 */
164 XCamReturn rk_aiq_uapi2_setHLCStrength(const rk_aiq_sys_ctx_t* ctx, int strength);
165 
166 /*
167 *****************************
168 *
169 * Desc: set anti-flicker mode
170 * Argument:
171 *    mode
172 *
173 *****************************
174 */
175 XCamReturn rk_aiq_uapi2_setAntiFlickerEn(const rk_aiq_sys_ctx_t* ctx, bool on);
176 XCamReturn rk_aiq_uapi2_getAntiFlickerEn(const rk_aiq_sys_ctx_t* ctx, bool* on);
177 
178 /*
179 *****************************
180 *
181 * Desc: set anti-flicker mode
182 * Argument:
183 *    mode
184 *
185 *****************************
186 */
187 XCamReturn rk_aiq_uapi2_setAntiFlickerMode(const rk_aiq_sys_ctx_t* ctx, antiFlickerMode_t mode);
188 XCamReturn rk_aiq_uapi2_getAntiFlickerMode(const rk_aiq_sys_ctx_t* ctx, antiFlickerMode_t *mode);
189 
190 /*
191 **********************************************************
192 * White balance & Color
193 **********************************************************
194 */
195 
196 /*
197 *****************************
198 *
199 * Desc: set white balance mode
200 * Argument:
201 *   mode:  auto: auto white balance
202 *          manual: manual white balance
203 *****************************
204 */
205 XCamReturn rk_aiq_uapi2_setWBMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);
206 XCamReturn rk_aiq_uapi2_getWBMode(const rk_aiq_sys_ctx_t* ctx, opMode_t *mode);
207 
208 
209 /*
210 *****************************
211 *
212 * Desc: lock/unlock auto white balance
213 * Argument:
214 *
215 *
216 *****************************
217 */
218 XCamReturn rk_aiq_uapi2_lockAWB(const rk_aiq_sys_ctx_t* ctx);
219 XCamReturn rk_aiq_uapi2_unlockAWB(const rk_aiq_sys_ctx_t* ctx);
220 
221 /*
222 *****************************
223 *
224 * Desc: set manual white balance scene mode
225 * Argument:
226 *   ct_scene:
227 *
228 *****************************
229 */
230 XCamReturn rk_aiq_uapi2_setMWBScene(const rk_aiq_sys_ctx_t* ctx, rk_aiq_wb_scene_t scene);
231 XCamReturn rk_aiq_uapi2_getMWBScene(const rk_aiq_sys_ctx_t* ctx, rk_aiq_wb_scene_t *scene);
232 
233 
234 /*
235 *****************************
236 *
237 * Desc: set manual white balance r/b gain
238 * Argument:
239 *   ct_scene:
240 *
241 *****************************
242 */
243 XCamReturn rk_aiq_uapi2_setMWBGain(const rk_aiq_sys_ctx_t* ctx, rk_aiq_wb_gain_t *gain);
244 XCamReturn rk_aiq_uapi2_getWBGain(const rk_aiq_sys_ctx_t* ctx, rk_aiq_wb_gain_t *gain);
245 
246 /*
247 *****************************
248 *
249 * Desc: set manual white balance color temperature
250 * Argument:
251 *   ct: color temperature value [2800, 7500]K
252 *
253 *****************************
254 */
255 XCamReturn rk_aiq_uapi2_setMWBCT(const rk_aiq_sys_ctx_t* ctx, unsigned int ct);
256 XCamReturn rk_aiq_uapi2_getWBCT(const rk_aiq_sys_ctx_t* ctx, unsigned int *ct);
257 
258 /*
259 *****************************
260 *
261 * Desc: set wbgain offset for auto white balance
262 * Argument:
263 *   attr: wbgain offset  [-4, 4]
264 *
265 *****************************
266 */
267 XCamReturn rk_aiq_uapi2_setAwbGainOffsetAttrib(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapiV2_wb_awb_wbGainOffset_t attr);
268 XCamReturn rk_aiq_uapi2_getAwbGainOffsetAttrib(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapiV2_wb_awb_wbGainOffset_t *attr);
269 
270 /*
271 *****************************
272 *
273 * Desc: set hue adjustment para  for auto white balance
274 * Argument:
275 *   attr :  hue adjustment para
276 *
277 *****************************
278 */
279 XCamReturn rk_aiq_uapi2_setAwbGainAdjustAttrib(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapiV2_wb_awb_wbGainAdjust_t attr);
280 XCamReturn rk_aiq_uapi2_getAwbGainAdjustAttrib(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapiV2_wb_awb_wbGainAdjust_t *attr);
281 
282 /*
283 *****************************
284 *
285 * Desc: set multiwindow  para  for auto white balance; only for 1109 1126
286 * Argument:
287 *   attr :   set multiwindow  para
288 *
289 *****************************
290 */
291 XCamReturn rk_aiq_uapi2_setAwbMultiWindowAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_uapiV2_wb_awb_mulWindow_t attr);
292 XCamReturn rk_aiq_uapi2_getAwbMultiWindowAttrib(const rk_aiq_sys_ctx_t* sys_ctx, rk_aiq_uapiV2_wb_awb_mulWindow_t *attr);
293 
294 
295 /*
296 *****************************
297 *
298 * Desc: set all api  para  for auto white balance ; only for 3588
299 * Argument:
300 *   attr :   all paras for awb api
301 *
302 *****************************
303 */
304 XCamReturn rk_aiq_uapi2_setAwbV30AllAttrib(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapiV2_wbV30_attrib_t attr);
305 XCamReturn rk_aiq_uapi2_getAwbV30AllAttrib(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapiV2_wbV30_attrib_t *attr);
306 
307 
308 /*
309 *****************************
310 *
311 * Desc: set all api  para  for auto white balance ; only for 3566 3568
312 * Argument:
313 *   attr :   all paras for awb api
314 *
315 *****************************
316 */
317 XCamReturn rk_aiq_uapi2_setAwbV21AllAttrib(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapiV2_wbV21_attrib_t attr);
318 XCamReturn rk_aiq_uapi2_getAwbV21AllAttrib(const rk_aiq_sys_ctx_t* ctx, rk_aiq_uapiV2_wbV21_attrib_t *attr);
319 
320 
321 
322 /*
323 *****************************
324 *
325 * Desc: set power line frequence
326 * Argument:
327 *    freq
328 *
329 *****************************
330 */
331 XCamReturn rk_aiq_uapi2_setExpPwrLineFreqMode(const rk_aiq_sys_ctx_t* ctx, expPwrLineFreq_t freq);
332 XCamReturn rk_aiq_uapi2_getExpPwrLineFreqMode(const rk_aiq_sys_ctx_t* ctx, expPwrLineFreq_t *freq);
333 
334 /*
335 *****************************
336 *
337 * Desc: Adjust image gamma
338 *
339 * Argument:
340 *   GammaCoef: [0, 100]
341 *   SlopeAtZero: [-0.05, 0.05]
342 *****************************
343 */
344 XCamReturn rk_aiq_uapi2_setGammaCoef(const rk_aiq_sys_ctx_t* ctx, float GammaCoef, float SlopeAtZero);
345 
346 /*
347 *****************************
348 *
349 * Desc: set/get dark area boost strength
350 *    this function is active for normal mode
351 * Argument:
352 *   level: [1, 10]
353 *   only valid in RV1109/RV1126
354 *****************************
355 */
356 XCamReturn rk_aiq_uapi2_setDarkAreaBoostStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
357 XCamReturn rk_aiq_uapi2_getDarkAreaBoostStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
358 
359 /*
360 *****************************
361 *
362 * Desc: set manual hdr strength
363 *    this function is active for HDR is manual mode
364 * Argument:
365 *   level: [1, 100]
366 *
367 *****************************
368 */
369 XCamReturn rk_aiq_uapi2_setMHDRStrth(const rk_aiq_sys_ctx_t* ctx, bool on, unsigned int level);
370 XCamReturn rk_aiq_uapi2_getMHDRStrth(const rk_aiq_sys_ctx_t* ctx, bool *on, unsigned int *level);
371 
372 /*
373 *****************************
374 *
375 * Desc: set manual dehaze module enable
376 *     enable/disable dehaze module function, including dehaze, enhance and hist
377 *
378 *****************************
379 */
380 XCamReturn rk_aiq_uapi2_setDehazeModuleEnable(const rk_aiq_sys_ctx_t* ctx, bool on);
381 
382 /*
383 *****************************
384 *
385 * Desc: set manual dehaze enable
386 *     enable/disable dehaze function
387 *
388 *****************************
389 */
390 XCamReturn rk_aiq_uapi2_setDehazeEnable(const rk_aiq_sys_ctx_t* ctx, bool on);
391 
392 /*
393 *****************************
394 *
395 * Desc: set/get manual dehaze strength
396 *     this function is active for dehaze is manual mode
397 * Argument:
398 *   level: [0, 100]
399 *
400 *****************************
401 */
402 XCamReturn rk_aiq_uapi2_setMDehazeStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
403 XCamReturn rk_aiq_uapi2_getMDehazeStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
404 
405 /*
406 *****************************
407 *
408 * Desc: set manual enhance enable
409 *     enable/disable enhance function
410 *
411 *****************************
412 */
413 XCamReturn rk_aiq_uapi2_setEnhanceEnable(const rk_aiq_sys_ctx_t* ctx, bool on);
414 
415 /*
416 *****************************
417 *
418 * Desc: set/get manual enhance strength
419 *     this function is active for dehaze is manual mode
420 * Argument:
421 *   level: [0, 100]
422 *
423 *****************************
424 */
425 XCamReturn rk_aiq_uapi2_setMEnhanceStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
426 XCamReturn rk_aiq_uapi2_getMEnhanceStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
427 
428 /*
429 *****************************
430 *
431 * Desc: set/get manual enhance Chrome strength
432 *     this function is active for dehaze is manual mode
433 * Argument:
434 *   level: [0, 100]
435 *
436 *****************************
437 */
438 XCamReturn rk_aiq_uapi2_setMEnhanceChromeStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
439 XCamReturn rk_aiq_uapi2_getMEnhanceChromeStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int* level);
440 
441 /*
442 *****************************
443 *
444 * Desc: set/get manual drc Local TMO
445 *     this function is active for DRC is DRC Gain mode
446 *     use in RK356x
447 * Argument:
448 *   LocalWeit: [0, 1]
449 *   GlobalContrast: [0, 1]
450 *   LoLitContrast: [0, 1]
451 *   only valid in RK356x
452 *****************************
453 */
454 XCamReturn rk_aiq_uapi2_setDrcLocalTMO(const rk_aiq_sys_ctx_t* ctx, float LocalWeit, float GlobalContrast, float LoLitContrast);
455 XCamReturn rk_aiq_uapi2_getDrcLocalTMO(const rk_aiq_sys_ctx_t* ctx, float* LocalWeit, float* GlobalContrast, float* LoLitContrast);
456 
457 /*
458 *****************************
459 *
460 * Desc: set/get manual drc Local Data
461 *     this function is active for DRC is Auto mode
462 *     use in RK3588, RV1106
463 * Argument:
464 *   LocalWeit: [0, 1]
465 *   GlobalContrast: [0, 1]
466 *   LoLitContrast: [0, 1]
467 *   LocalAutoEnable: [0, 1]
468 *   LocalAutoWeit: [0, 1]
469 *
470 *****************************
471 */
472 XCamReturn rk_aiq_uapi2_setDrcLocalData(const rk_aiq_sys_ctx_t* ctx, float LocalWeit, float GlobalContrast, float LoLitContrast, int LocalAutoEnable, float LocalAutoWeit);
473 XCamReturn rk_aiq_uapi2_getDrcLocalData(const rk_aiq_sys_ctx_t* ctx, float* LocalWeit, float* GlobalContrast, float* LoLitContrast, int* LocalAutoEnable, float* LocalAutoWeit);
474 
475 /*
476 *****************************
477 *
478 * Desc: set/get manual drc HiLit
479 *     this function is active for DRC is Auto mode
480 *     use in RK3588, RV1106
481 * Argument:
482 *   Strength: [0, 1]
483 *
484 *****************************
485 */
486 XCamReturn rk_aiq_uapi2_setDrcHiLit(const rk_aiq_sys_ctx_t* ctx, float Strength);
487 XCamReturn rk_aiq_uapi2_getDrcHiLit(const rk_aiq_sys_ctx_t* ctx, float* Strength);
488 
489 /*
490 *****************************
491 *
492 * Desc: set/get manual drc Gain
493 *     this function is active for DRC is Auto mode
494 *     use in RK3588, RV1106
495 * Argument:
496 *   Gain: [1, 8]
497 *   Alpha: [0, 1]
498 *   Clip: [0, 64]
499 *
500 *****************************
501 */
502 XCamReturn rk_aiq_uapi2_setDrcGain(const rk_aiq_sys_ctx_t* ctx, float Gain, float Alpha, float Clip);
503 XCamReturn rk_aiq_uapi2_getDrcGain(const rk_aiq_sys_ctx_t* ctx, float* Gain, float* Alpha, float* Clip);
504 
505 /*
506 **********************************************************
507 * Noise reduction
508 **********************************************************
509 */
510 /*
511 *****************************
512 *
513 * Desc: set noise reduction mode
514 * Argument:
515 *   mode:
516 *     auto: auto noise reduction
517 *     manual:manual noise reduction
518 *
519 *****************************
520 */
521 XCamReturn rk_aiq_uapi2_setNRMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);
522 XCamReturn rk_aiq_uapi2_getNRMode(const rk_aiq_sys_ctx_t* ctx, opMode_t *mode);
523 
524 /*
525 *****************************
526 *
527 * Desc: set normal noise reduction strength
528 * Argument:
529 *   level: [0, 100]
530 * Normal mode
531 *****************************
532 */
533 XCamReturn rk_aiq_uapi2_setANRStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
534 XCamReturn rk_aiq_uapi2_getANRStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
535 
536 
537 /*
538 *****************************
539 *
540 * Desc: set manual spatial noise reduction strength
541 *    this function is active for NR is manual mode
542 * Argument:
543 *   level: [0, 100]
544 *
545 *****************************
546 */
547 XCamReturn rk_aiq_uapi2_setMSpaNRStrth(const rk_aiq_sys_ctx_t* ctx, bool on, unsigned int level);
548 XCamReturn rk_aiq_uapi2_getMSpaNRStrth(const rk_aiq_sys_ctx_t* ctx, bool *on, unsigned int *level);
549 
550 /*
551 *****************************
552 *
553 * Desc: set manual time noise reduction strength
554 *     this function is active for NR is manual mode
555 * Argument:
556 *   level: [0, 100]
557 *
558 *****************************
559 */
560 XCamReturn rk_aiq_uapi2_setMTNRStrth(const rk_aiq_sys_ctx_t* ctx, bool on, unsigned int level);
561 
562 XCamReturn rk_aiq_uapi2_getMTNRStrth(const rk_aiq_sys_ctx_t* ctx, bool *on, unsigned int *level);
563 
564 /*
565 *****************************
566 *
567 * Desc: Adjust image sharpness level
568 * Argument:
569 *    level: sharpness level, [0, 100]
570 *****************************
571 */
572 XCamReturn rk_aiq_uapi2_setSharpness(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
573 XCamReturn rk_aiq_uapi2_getSharpness(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
574 
575 /*
576 **********************************************************
577 * Focus & Zoom
578 **********************************************************
579 */
580 /*
581 *****************************
582 *
583 * Desc: set focus mode
584 * Argument:
585 *   mode:  auto: auto focus
586 *          manual: manual focus
587 *          semi-auto: semi-auto focus
588 *****************************
589 */
590 XCamReturn rk_aiq_uapi2_setFocusMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);
591 XCamReturn rk_aiq_uapi2_getFocusMode(const rk_aiq_sys_ctx_t* ctx, opMode_t *mode);
592 
593 /*
594 *****************************
595 *
596 * Desc: set fix mode code
597 * Argument:
598 *
599 *****************************
600 */
601 XCamReturn rk_aiq_uapi2_setFocusPosition(const rk_aiq_sys_ctx_t* ctx, short code);
602 XCamReturn rk_aiq_uapi2_getFocusPosition(const rk_aiq_sys_ctx_t* ctx, short *code);
603 
604 /*
605 *****************************
606 *
607 * Desc: set focus window
608 * Argument:
609 *
610 *****************************
611 */
612 XCamReturn rk_aiq_uapi2_setFocusWin(const rk_aiq_sys_ctx_t* ctx, paRect_t *rect);
613 XCamReturn rk_aiq_uapi2_getFocusWin(const rk_aiq_sys_ctx_t* ctx, paRect_t *rect);
614 
615 /*
616 *****************************
617 *
618 * Desc: lock/unlock auto focus
619 * Argument:
620 *
621 *
622 *****************************
623 */
624 XCamReturn rk_aiq_uapi2_lockFocus(const rk_aiq_sys_ctx_t* ctx);
625 XCamReturn rk_aiq_uapi2_unlockFocus(const rk_aiq_sys_ctx_t* ctx);
626 
627 /*
628 *****************************
629 *
630 * Desc: oneshot focus
631 * Argument:
632 *
633 *
634 *****************************
635 */
636 XCamReturn rk_aiq_uapi2_oneshotFocus(const rk_aiq_sys_ctx_t* ctx);
637 
638 /*
639 *****************************
640 *
641 * Desc: manual triger focus
642 * Argument:
643 *
644 *
645 *****************************
646 */
647 XCamReturn rk_aiq_uapi2_manualTrigerFocus(const rk_aiq_sys_ctx_t* ctx);
648 
649 /*
650 *****************************
651 *
652 * Desc: tracking focus
653 * Argument:
654 *
655 *
656 *****************************
657 */
658 XCamReturn rk_aiq_uapi2_trackingFocus(const rk_aiq_sys_ctx_t* ctx);
659 
660 /*
661 *****************************
662 *
663 * Desc: af serach path record
664 * Argument:
665 *
666 *
667 *****************************
668 */
669 XCamReturn rk_aiq_uapi2_getSearchPath(const rk_aiq_sys_ctx_t* ctx, rk_aiq_af_sec_path_t* path);
670 
671 /*
672 *****************************
673 *
674 * Desc: af serach path record
675 * Argument:
676 *
677 *
678 *****************************
679 */
680 XCamReturn rk_aiq_uapi2_getSearchResult(const rk_aiq_sys_ctx_t* ctx, rk_aiq_af_result_t* result);
681 
682 /*
683 *****************************
684 *
685 * Desc: set/get zoom position
686 * Argument:
687 *
688 *
689 *****************************
690 */
691 XCamReturn rk_aiq_uapi2_setOpZoomPosition(const rk_aiq_sys_ctx_t* ctx, int pos);
692 XCamReturn rk_aiq_uapi2_getOpZoomPosition(const rk_aiq_sys_ctx_t* ctx, int *pos);
693 XCamReturn rk_aiq_uapi2_endOpZoomChange(const rk_aiq_sys_ctx_t* ctx);
694 
695 /*
696 *****************************
697 *
698 * Desc: get zoom range
699 * Argument:
700 *
701 *
702 *****************************
703 */
704 XCamReturn rk_aiq_uapi2_getZoomRange(const rk_aiq_sys_ctx_t* ctx, rk_aiq_af_zoomrange* range);
705 XCamReturn rk_aiq_uapi2_getFocusRange(const rk_aiq_sys_ctx_t* ctx, rk_aiq_af_focusrange* range);
706 
707 /*
708 *****************************
709 *
710 * Desc: zoom calibration
711 * Argument:
712 *
713 *
714 *****************************
715 */
716 XCamReturn rk_aiq_uapi2_startZoomCalib(const rk_aiq_sys_ctx_t* ctx);
717 XCamReturn rk_aiq_uapi2_resetZoom(const rk_aiq_sys_ctx_t* ctx);
718 
719 /*
720 *****************************
721 *
722 * Desc: set AngleZ
723 * Argument:
724 *
725 *
726 *****************************
727 */
728 XCamReturn rk_aiq_uapi2_setAngleZ(const rk_aiq_sys_ctx_t* ctx, float angleZ);
729 
730 /*
731 **********************************************************
732 * Color Correction
733 **********************************************************
734 */
735 /*
736 *****************************
737 *
738 * Desc: set/get color correction mode
739 * Argument:
740 *   mode:
741 *     auto: auto color correction
742 *     manual: manual color correction
743 *
744 *****************************
745 */
746 XCamReturn rk_aiq_uapi2_setCCMMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);
747 XCamReturn rk_aiq_uapi2_getCCMMode(const rk_aiq_sys_ctx_t* ctx, opMode_t* mode);
748 
749 /*
750 *****************************
751 *
752 * Desc: set manual color correction matrix
753 *     this function is active for color correction is manual mode
754         get color correction matrix
755 * Argument:
756 * mccm:
757 *                   3x3 matrix
758 *                   1x3 offset
759 *
760 *****************************
761 */
762 XCamReturn rk_aiq_uapi2_setMCcCoef(const rk_aiq_sys_ctx_t* ctx, rk_aiq_ccm_matrix_t* mccm);
763 XCamReturn rk_aiq_uapi2_getMCcCoef(const rk_aiq_sys_ctx_t* ctx, rk_aiq_ccm_matrix_t* mccm);
764 
765 /*
766 *****************************
767 *
768 * Desc: set/get auto color correction saturation
769 *     this function is active for color correction is auto mode
770 * Argument:
771 *   finalsat : range in [0, 100]
772 *
773 *****************************
774 */
775 XCamReturn rk_aiq_uapi2_getACcmSat(const rk_aiq_sys_ctx_t* ctx, float* finalsat);
776 
777 /*
778 *****************************
779 *
780 * Desc: get auto color correction used ccm name
781 *     this function is active for color correction is auto mode
782 * Argument:
783 *    ccm_name[2]
784 *
785 *****************************
786 */
787 XCamReturn rk_aiq_uapi2_getACcmMatrixName(const rk_aiq_sys_ctx_t* ctx, char** ccm_name);
788 
789 /*
790 **********************************************************
791 * 3-Dimensional Look Up Table
792 **********************************************************
793 */
794 /*
795 *****************************
796 *
797 * Desc: set/get 3dlut mode
798 * Argument:
799 *   mode:
800 *     auto: auto 3dlut
801 *     manual: manual 3dlut
802 *
803 *****************************
804 */
805 XCamReturn rk_aiq_uapi2_setLut3dMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);
806 XCamReturn rk_aiq_uapi2_getLut3dMode(const rk_aiq_sys_ctx_t* ctx, opMode_t* mode);
807 
808 /*
809 *****************************
810 *
811 * Desc: set manual 3d Look-up-table
812 *     this function is active for 3dlut is manual mode
813         get 3d Look-up-table
814 * Argument:
815 *     mlut:
816 *           lut_r[729]
817 *           lut_g[729]
818 *           lut_b[729]
819 *
820 *****************************
821 */
822 XCamReturn rk_aiq_uapi2_setM3dLut(const rk_aiq_sys_ctx_t* ctx, rk_aiq_lut3d_table_t* mlut);
823 XCamReturn rk_aiq_uapi2_getM3dLut(const rk_aiq_sys_ctx_t* ctx, rk_aiq_lut3d_table_t* mlut);
824 
825 /*
826 *****************************
827 *
828 * Desc: set/get auto 3d Look-up-table strength
829 *     this function is active for 3d Look-up-table is auto mode
830 * Argument:
831 *   alpha : range in [0, 1]
832 *
833 *****************************
834 */
835 XCamReturn rk_aiq_uapi2_getA3dLutStrth(const rk_aiq_sys_ctx_t* ctx, float* alpha);
836 
837 /*
838 *****************************
839 *
840 * Desc: get auto 3d Look-up-table used lut name
841 *     this function is active for 3d Look-up-table is auto mode
842 * Argument:
843 *    name
844 *
845 *****************************
846 */
847 XCamReturn rk_aiq_uapi2_getA3dLutName(const rk_aiq_sys_ctx_t* ctx, char* name);
848 
849 /*
850 *****************************
851 *
852 * Desc:
853 * Argument:
854 *****************************
855 */
856 XCamReturn rk_aiq_uapi2_setLdchEn(const rk_aiq_sys_ctx_t* ctx, bool en);
857 /*
858 *****************************
859 *
860 * Desc: the adjustment range of distortion intensity is 0~255
861 * Argument:
862 *****************************
863 */
864 XCamReturn rk_aiq_uapi2_setLdchCorrectLevel(const rk_aiq_sys_ctx_t* ctx, int correctLevel);
865 
866 /*
867 *****************************
868 *
869 * Desc: fec dynamic switch, valid only if aiq hasn't executed the 'prepare' action
870 * Argument:
871 *****************************
872 */
873 XCamReturn rk_aiq_uapi2_setFecEn(const rk_aiq_sys_ctx_t* ctx, bool en);
874 
875 /*
876 *****************************
877 *
878 * Desc: set corrective direction of FEC, valid only if aiq hasn't executed the 'prepare' action
879 * Argument:
880 *****************************
881 */
882 XCamReturn rk_aiq_uapi2_setFecCorrectDirection(const rk_aiq_sys_ctx_t* ctx,
883         const fec_correct_direction_t direction);
884 /*
885 *****************************
886 *
887 * Desc: The FEC module is still working in bypass state
888 * Argument:
889 *****************************
890 */
891 XCamReturn rk_aiq_uapi2_setFecBypass(const rk_aiq_sys_ctx_t* ctx, bool en);
892 
893 /*
894 *****************************
895 *
896 * Desc: the adjustment range of distortion intensity is 0~255
897 * Argument:
898 *****************************
899 */
900 XCamReturn rk_aiq_uapi2_setFecCorrectLevel(const rk_aiq_sys_ctx_t* ctx, int correctLevel);
901 
902 /*
903 *****************************
904 *
905 * Desc:
906 * Argument:
907 *****************************
908 */
909 XCamReturn rk_aiq_uapi2_setFecCorrectMode(const rk_aiq_sys_ctx_t* ctx,
910         const fec_correct_mode_t mode);
911 
912 /*
913 *****************************
914 *
915 * Desc: Set Sensor output HFLIP and VFLIP
916 * Argument:
917 *****************************
918 */
919 XCamReturn rk_aiq_uapi2_setMirrorFlip(const rk_aiq_sys_ctx_t* ctx, bool mirror, bool flip,
920                                       int skip_frm_cnt);
921 
922 /*
923 *****************************
924 *
925 * Desc: Get Sensor output HFLIP and VFLIP
926 * Argument:
927 *****************************
928 */
929 XCamReturn rk_aiq_uapi2_getMirrorFlip(const rk_aiq_sys_ctx_t* ctx, bool* mirror, bool* flip);
930 
931 /*
932 **********************************************************
933 * Color Process
934 **********************************************************
935 */
936 
937 /*
938 *****************************
939 *
940 * Desc: Adjust image contrast level
941 * Argument:
942 *    level: contrast level, [0, 255]
943 *****************************
944 */
945 XCamReturn rk_aiq_uapi2_setContrast(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
946 
947 XCamReturn rk_aiq_uapi2_getContrast(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
948 
949 /*
950 *****************************
951 *
952 * Desc: Adjust image brightness level
953 * Argument:
954 *    level: brightness level, [0, 255]
955 *****************************
956 */
957 XCamReturn rk_aiq_uapi2_setBrightness(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
958 
959 XCamReturn rk_aiq_uapi2_getBrightness(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
960 
961 /*
962 *****************************
963 *
964 * Desc: Adjust image saturation level
965 * Argument:
966 *    level: saturation level, [0, 255]
967 *****************************
968 */
969 XCamReturn rk_aiq_uapi2_setSaturation(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
970 
971 XCamReturn rk_aiq_uapi2_getSaturation(const rk_aiq_sys_ctx_t* ctx, unsigned int* level);
972 
973 /*
974 *****************************
975 *
976 * Desc: Adjust image hue level
977 * Argument:
978 *    level: hue level, [0, 255]
979 *****************************
980 */
981 XCamReturn rk_aiq_uapi2_setHue(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
982 
983 XCamReturn rk_aiq_uapi2_getHue(const rk_aiq_sys_ctx_t* ctx, unsigned int* level);
984 
985 /*
986 **********************************************************
987 * Image Effect
988 **********************************************************
989 */
990 
991 /*
992 *****************************
993 *
994 * Desc: Set Color Mode
995 * Argument:
996 *    mode:
997 *        [0  NONE
998 *         1  BW
999 *         2  NEGATIVE
1000 *         3  SEPIA
1001 *         4  EMBOSS
1002 *         5  SKETCH
1003 *         6  SHARPEN]
1004 * Note: rv1106 only support {0,1}
1005 *****************************
1006 */
1007 XCamReturn rk_aiq_uapi2_setColorMode(const rk_aiq_sys_ctx_t* ctx, unsigned int mode);
1008 
1009 XCamReturn rk_aiq_uapi2_getColorMode(const rk_aiq_sys_ctx_t* ctx, unsigned int *mode);
1010 
1011 /*
1012 **********************************************************
1013 * Color Space
1014 **********************************************************
1015 */
1016 /*
1017 *****************************
1018 *
1019 * Desc: Set Color Space
1020 * Argument:
1021 *    Cspace:
1022 *        [0  BT.601 FULL
1023 *         1  BT.601 LIMIT
1024 *         2  BT.709 FULL
1025 *         3  BT.709 LIMIT
1026 *         255 OTHER]
1027 *****************************
1028 */
1029 XCamReturn rk_aiq_uapi2_setColorSpace(const rk_aiq_sys_ctx_t* ctx, int Cspace);
1030 XCamReturn rk_aiq_uapi2_getColorSpace(const rk_aiq_sys_ctx_t* ctx, int *Cspace);
1031 
1032 /*
1033 *****************************
1034 *
1035 * Desc:
1036 * Argument:
1037 *****************************
1038 */
1039 XCamReturn rk_aiq_uapi2_setGrayMode(const rk_aiq_sys_ctx_t* ctx, rk_aiq_gray_mode_t mode);
1040 /*
1041 *****************************
1042 *
1043 * Desc:
1044 * Argument:
1045 *****************************
1046 */
1047 rk_aiq_gray_mode_t rk_aiq_uapi2_getGrayMode(const rk_aiq_sys_ctx_t* ctx);
1048 RKAIQ_END_DECLARE
1049 #endif
1050