xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/uAPI/include/rk_aiq_user_api_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_UAPI_IMGPROC_H_
19 #define _RK_AIQ_UAPI_IMGPROC_H_
20 
21 #include "base/xcam_common.h"
22 #include "rk_aiq_user_api_common.h"
23 #include "rk_aiq_user_api_sysctl.h"
24 #include "rk_aiq_user_api_awb.h"
25 #include "rk_aiq_user_api_ae.h"
26 #include "rk_aiq_user_api_af.h"
27 #include "rk_aiq_user_api_anr.h"
28 #include "rk_aiq_user_api_ahdr.h"
29 #include "rk_aiq_user_api_adehaze.h"
30 #include "rk_aiq_user_api_alsc.h"
31 #include "rk_aiq_user_api_accm.h"
32 #include "rk_aiq_user_api_a3dlut.h"
33 #include "rk_aiq_user_api_asharp.h"
34 #include "rk_aiq_user_api_agamma.h"
35 #include "rk_aiq_user_api_afec.h"
36 #include "rk_aiq_user_api_aldch.h"
37 #include "rk_aiq_user_api_acp.h"
38 #include "rk_aiq_user_api_abayernr_v2.h"
39 #include "rk_aiq_user_api_acnr_v1.h"
40 #include "rk_aiq_user_api_aynr_v2.h"
41 #include "rk_aiq_user_api_asharp_v3.h"
42 
43 #include "rk_aiq_user_api_aynr_v3.h"
44 #include "rk_aiq_user_api_acnr_v2.h"
45 #include "rk_aiq_user_api_asharp_v4.h"
46 #include "rk_aiq_user_api_abayer2dnr_v2.h"
47 #include "rk_aiq_user_api_abayertnr_v2.h"
48 #include "rk_aiq_user_api_again_v2.h"
49 
50 #include "rk_aiq_user_api_aynr_v22.h"
51 #include "rk_aiq_user_api_acnr_v30.h"
52 #include "rk_aiq_user_api_asharp_v33.h"
53 #include "rk_aiq_user_api_abayer2dnr_v23.h"
54 #include "rk_aiq_user_api_abayertnr_v23.h"
55 
56 
57 
58 RKAIQ_BEGIN_DECLARE
59 
60 /*
61 **********************************************************
62 *                        API of AEC module of V1
63 **********************************************************
64 */
65 
66 /*
67 *****************************
68 *
69 * Desc: set exposure control mode
70 * Argument:
71 *   mode:  auto: auto exposure
72 *          manual: manual exposure
73 *****************************
74 */
75 XCamReturn rk_aiq_uapi_setExpMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);
76 XCamReturn rk_aiq_uapi_getExpMode(const rk_aiq_sys_ctx_t* ctx, opMode_t *mode);
77 
78 /*
79 *****************************
80 *
81 * Desc: set manual exposure
82 * Argument:
83 *   gain:
84 *   time:
85 *
86 *****************************
87 */
88 XCamReturn rk_aiq_uapi_setManualExp(const rk_aiq_sys_ctx_t* ctx, float gain, float time);
89 /*
90 *****************************
91 *
92 * Desc: set exposure parameter
93 * Argument:
94 *    auto exposure mode:
95 *      exposure gain will be adjust between [gain->min, gain->max];
96 *    manual exposure mode:
97 *      gain->min == gain->max
98 *
99 *****************************
100 */
101 XCamReturn rk_aiq_uapi_setExpGainRange(const rk_aiq_sys_ctx_t* ctx, paRange_t *gain);
102 XCamReturn rk_aiq_uapi_getExpGainRange(const rk_aiq_sys_ctx_t* ctx, paRange_t *gain);
103 /*
104 *****************************
105 *
106 * Desc: set exposure parameter
107 * Argument:
108 *    auto exposure mode:
109 *       exposure time will be adjust between [time->min, time->max];
110 *    manual exposure mode:
111 *       exposure time will be set gain->min == gain->max;
112 *
113 *****************************
114 */
115 XCamReturn rk_aiq_uapi_setExpTimeRange(const rk_aiq_sys_ctx_t* ctx, paRange_t *time);
116 XCamReturn rk_aiq_uapi_getExpTimeRange(const rk_aiq_sys_ctx_t* ctx, paRange_t *time);
117 
118 /*
119 *****************************
120 *
121 * Desc: blacklight compensation
122 * Argument:
123 *      on:  1  on
124 *           0  off
125 *      areaType: blacklight compensation area
126 *
127 *****************************
128 */
129 XCamReturn rk_aiq_uapi_setBLCMode(const rk_aiq_sys_ctx_t* ctx, bool on, aeMeasAreaType_t areaType);
130 
131 /*
132 *****************************
133 *
134 * Desc: backlight compensation strength,only available in normal mode
135 * Argument:
136 *      strength:  [1,100]
137 *****************************
138 */
139 XCamReturn rk_aiq_uapi_setBLCStrength(const rk_aiq_sys_ctx_t* ctx, int strength);
140 
141 /*
142 *****************************
143 *
144 * Desc: highlight compensation
145 * Argument:
146 *      on:  1  on
147 *           0  off
148 *
149 *****************************
150 */
151 XCamReturn rk_aiq_uapi_setHLCMode(const rk_aiq_sys_ctx_t* ctx, bool on);
152 
153 /*
154 *****************************
155 *
156 * Desc: highlight compensation strength,only available in normal mode
157 * Argument:
158 *      strength:  [1,100]
159 *****************************
160 */
161 XCamReturn rk_aiq_uapi_setHLCStrength(const rk_aiq_sys_ctx_t* ctx, int strength);
162 
163 /*
164 *****************************
165 *
166 * Desc: set anti-flicker mode
167 * Argument:
168 *    mode
169 *
170 *****************************
171 */
172 XCamReturn rk_aiq_uapi_setAntiFlickerMode(const rk_aiq_sys_ctx_t* ctx, antiFlickerMode_t mode);
173 XCamReturn rk_aiq_uapi_getAntiFlickerMode(const rk_aiq_sys_ctx_t* ctx, antiFlickerMode_t *mode);
174 
175 /*
176 *****************************
177 *
178 * Desc: set power line frequence
179 * Argument:
180 *    freq
181 *
182 *****************************
183 */
184 XCamReturn rk_aiq_uapi_setExpPwrLineFreqMode(const rk_aiq_sys_ctx_t* ctx, expPwrLineFreq_t freq);
185 XCamReturn rk_aiq_uapi_getExpPwrLineFreqMode(const rk_aiq_sys_ctx_t* ctx, expPwrLineFreq_t *freq);
186 
187 /*
188 **********************************************************
189 * White balance & Color
190 **********************************************************
191 */
192 
193 /*
194 *****************************
195 *
196 * Desc: set white balance mode
197 * Argument:
198 *   mode:  auto: auto white balance
199 *          manual: manual white balance
200 *****************************
201 */
202 XCamReturn rk_aiq_uapi_setWBMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);
203 XCamReturn rk_aiq_uapi_getWBMode(const rk_aiq_sys_ctx_t* ctx, opMode_t *mode);
204 
205 
206 /*
207 *****************************
208 *
209 * Desc: lock/unlock auto white balance
210 * Argument:
211 *
212 *
213 *****************************
214 */
215 XCamReturn rk_aiq_uapi_lockAWB(const rk_aiq_sys_ctx_t* ctx);
216 XCamReturn rk_aiq_uapi_unlockAWB(const rk_aiq_sys_ctx_t* ctx);
217 
218 /*
219 *****************************
220 *
221 * Desc: set manual white balance scene mode
222 * Argument:
223 *   ct_scene:
224 *
225 *****************************
226 */
227 XCamReturn rk_aiq_uapi_setMWBScene(const rk_aiq_sys_ctx_t* ctx, rk_aiq_wb_scene_t scene);
228 XCamReturn rk_aiq_uapi_getMWBScene(const rk_aiq_sys_ctx_t* ctx, rk_aiq_wb_scene_t *scene);
229 
230 
231 /*
232 *****************************
233 *
234 * Desc: set manual white balance r/b gain
235 * Argument:
236 *   ct_scene:
237 *
238 *****************************
239 */
240 XCamReturn rk_aiq_uapi_setMWBGain(const rk_aiq_sys_ctx_t* ctx, rk_aiq_wb_gain_t *gain);
241 XCamReturn rk_aiq_uapi_getMWBGain(const rk_aiq_sys_ctx_t* ctx, rk_aiq_wb_gain_t *gain);
242 
243 /*
244 *****************************
245 *
246 * Desc: set manual white balance color temperature
247 * Argument:
248 *   ct: color temperature value [2800, 7500]K
249 *
250 *****************************
251 */
252 XCamReturn rk_aiq_uapi_setMWBCT(const rk_aiq_sys_ctx_t* ctx, unsigned int ct);
253 XCamReturn rk_aiq_uapi_getMWBCT(const rk_aiq_sys_ctx_t* ctx, unsigned int *ct);
254 
255 
256 /*
257 *****************************
258 *
259 * Desc: set color supperssion level
260 * Argument:
261 *   level: [0, 100]
262 *
263 *****************************
264 */
265 XCamReturn rk_aiq_uapi_setCrSuppsn(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
266 XCamReturn rk_aiq_uapi_getCrSuppsn(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
267 
268 /*
269 **********************************************************
270 * Focus & Zoom
271 **********************************************************
272 */
273 /*
274 *****************************
275 *
276 * Desc: set focus mode
277 * Argument:
278 *   mode:  auto: auto focus
279 *          manual: manual focus
280 *          semi-auto: semi-auto focus
281 *****************************
282 */
283 XCamReturn rk_aiq_uapi_setFocusMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);
284 XCamReturn rk_aiq_uapi_getFocusMode(const rk_aiq_sys_ctx_t* ctx, opMode_t *mode);
285 
286 /*
287 *****************************
288 *
289 * Desc: set focus window
290 * Argument:
291 *
292 *****************************
293 */
294 XCamReturn rk_aiq_uapi_setFocusWin(const rk_aiq_sys_ctx_t* ctx, paRect_t *rect);
295 XCamReturn rk_aiq_uapi_getFocusWin(const rk_aiq_sys_ctx_t* ctx, paRect_t *rect);
296 
297 /*
298 *****************************
299 *
300 * Desc: set focus meas config
301 * Argument:
302 *
303 *****************************
304 */
305 XCamReturn rk_aiq_uapi_setFocusMeasCfg(const rk_aiq_sys_ctx_t* ctx, rk_aiq_af_algo_meas_t* meascfg);
306 XCamReturn rk_aiq_uapi_getFocusMeasCfg(const rk_aiq_sys_ctx_t* ctx, rk_aiq_af_algo_meas_t* meascfg);
307 
308 /*
309 *****************************
310 *
311 * Desc: set fix mode code
312 * Argument:
313 *
314 *****************************
315 */
316 XCamReturn rk_aiq_uapi_setFixedModeCode(const rk_aiq_sys_ctx_t* ctx, short code);
317 XCamReturn rk_aiq_uapi_getFixedModeCode(const rk_aiq_sys_ctx_t* ctx, short *code);
318 
319 /*
320 *****************************
321 *
322 * Desc: lock/unlock auto focus
323 * Argument:
324 *
325 *
326 *****************************
327 */
328 XCamReturn rk_aiq_uapi_lockFocus(const rk_aiq_sys_ctx_t* ctx);
329 XCamReturn rk_aiq_uapi_unlockFocus(const rk_aiq_sys_ctx_t* ctx);
330 
331 /*
332 *****************************
333 *
334 * Desc: oneshot focus
335 * Argument:
336 *
337 *
338 *****************************
339 */
340 XCamReturn rk_aiq_uapi_oneshotFocus(const rk_aiq_sys_ctx_t* ctx);
341 XCamReturn rk_aiq_uapi_trackingFocus(const rk_aiq_sys_ctx_t* ctx);
342 
343 /*
344 *****************************
345 *
346 * Desc: ManualTriger focus
347 * Argument:
348 *
349 *
350 *****************************
351 */
352 XCamReturn rk_aiq_uapi_manualTrigerFocus(const rk_aiq_sys_ctx_t* ctx);
353 
354 /*
355 *****************************
356 *
357 * Desc: vcm config
358 * Argument:
359 *
360 *
361 *****************************
362 */
363 XCamReturn rk_aiq_uapi_setVcmCfg(const rk_aiq_sys_ctx_t* ctx, rk_aiq_lens_vcmcfg* cfg);
364 XCamReturn rk_aiq_uapi_getVcmCfg(const rk_aiq_sys_ctx_t* ctx, rk_aiq_lens_vcmcfg* cfg);
365 
366 /*
367 *****************************
368 *
369 * Desc: af serach path record
370 * Argument:
371 *
372 *
373 *****************************
374 */
375 XCamReturn rk_aiq_uapi_getSearchPath(const rk_aiq_sys_ctx_t* ctx, rk_aiq_af_sec_path_t* path);
376 
377 /*
378 *****************************
379 *
380 * Desc: af serach path record
381 * Argument:
382 *
383 *
384 *****************************
385 */
386 XCamReturn rk_aiq_uapi_getSearchResult(const rk_aiq_sys_ctx_t* ctx, rk_aiq_af_result_t* result);
387 
388 /*
389 *****************************
390 *
391 * Desc: set/get zoom position
392 * Argument:
393 *
394 *
395 *****************************
396 */
397 XCamReturn rk_aiq_uapi_setOpZoomPosition(const rk_aiq_sys_ctx_t* ctx, int pos);
398 XCamReturn rk_aiq_uapi_getOpZoomPosition(const rk_aiq_sys_ctx_t* ctx, int *pos);
399 XCamReturn rk_aiq_uapi_endOpZoomChange(const rk_aiq_sys_ctx_t* ctx);
400 
401 /*
402 *****************************
403 *
404 * Desc: get zoom range
405 * Argument:
406 *
407 *
408 *****************************
409 */
410 XCamReturn rk_aiq_uapi_getZoomRange(const rk_aiq_sys_ctx_t* ctx, rk_aiq_af_zoomrange* range);
411 XCamReturn rk_aiq_uapi_getFocusRange(const rk_aiq_sys_ctx_t* ctx, rk_aiq_af_focusrange* range);
412 
413 /*
414 *****************************
415 *
416 * Desc: zoom calibration
417 * Argument:
418 *
419 *
420 *****************************
421 */
422 XCamReturn rk_aiq_uapi_startZoomCalib(const rk_aiq_sys_ctx_t* ctx);
423 XCamReturn rk_aiq_uapi_resetZoom(const rk_aiq_sys_ctx_t* ctx);
424 
425 /*
426 *****************************
427 *
428 * Desc: set AngleZ
429 * Argument:
430 *
431 *
432 *****************************
433 */
434 XCamReturn rk_aiq_uapi_setAngleZ(const rk_aiq_sys_ctx_t* ctx, float angleZ);
435 
436 /*
437 *****************************
438 *
439 * Desc: Zoom
440 * Argument:
441 *
442 *
443 *****************************
444 */
445 XCamReturn rk_aiq_uapi_getZoomRange(const rk_aiq_sys_ctx_t* ctx, rk_aiq_af_zoomrange* range);
446 XCamReturn rk_aiq_uapi_setOpZoomPosition(const rk_aiq_sys_ctx_t* ctx, int pos);
447 XCamReturn rk_aiq_uapi_getOpZoomPosition(const rk_aiq_sys_ctx_t* ctx, int *pos);
448 XCamReturn rk_aiq_uapi_setZoomZeroPos(const rk_aiq_sys_ctx_t* ctx, int zero_pos);
449 
450 /*
451 *****************************
452 *
453 * Desc: Zoom Correstion
454 * Argument:
455 *
456 *
457 *****************************
458 */
459 XCamReturn rk_aiq_uapi_ZoomCorrestion(const rk_aiq_sys_ctx_t* ctx);
460 
461 /*
462 **********************************************************
463 * Noise reduction
464 **********************************************************
465 */
466 /*
467 *****************************
468 *
469 * Desc: set/get noise reduction mode
470 * Argument:
471 *   mode:
472 *     auto: auto noise reduction
473 *     manual:manual noise reduction
474 *
475 *****************************
476 */
477 XCamReturn rk_aiq_uapi_setNRMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);
478 XCamReturn rk_aiq_uapi_getNRMode(const rk_aiq_sys_ctx_t* ctx, opMode_t *mode);
479 
480 /*
481 *****************************
482 *
483 * Desc: set/get normal noise reduction strength
484 * Argument:
485 *   level: [0, 100]
486 *
487 *****************************
488 */
489 XCamReturn rk_aiq_uapi_setANRStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
490 XCamReturn rk_aiq_uapi_getANRStrth(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
491 
492 /*
493 *****************************
494 *
495 * Desc: set manual spatial noise reduction strength
496 *    this function is active for NR is manual mode
497 * Argument:
498 *   level: [0, 100]
499 *
500 *****************************
501 */
502 XCamReturn rk_aiq_uapi_setMSpaNRStrth(const rk_aiq_sys_ctx_t* ctx, bool on, unsigned int level);
503 XCamReturn rk_aiq_uapi_getMSpaNRStrth(const rk_aiq_sys_ctx_t* ctx, bool *on, unsigned int *level);
504 
505 /*
506 *****************************
507 *
508 * Desc: set/get manual time noise reduction strength
509 *     this function is active for NR is manual mode
510 * Argument:
511 *   level: [0, 100]
512 *
513 *****************************
514 */
515 XCamReturn rk_aiq_uapi_setMTNRStrth(const rk_aiq_sys_ctx_t* ctx, bool on, unsigned int level);
516 XCamReturn rk_aiq_uapi_getMTNRStrth(const rk_aiq_sys_ctx_t* ctx, bool *on, unsigned int *level);
517 
518 /*
519 **********************************************************
520 * Dehaze
521 **********************************************************
522 */
523 /*
524 *****************************
525 *
526 * Desc: set/get dehaze mode
527 * Argument:
528 *   mode:
529 *     auto: auto dehaze, when use auto, equal use rk_aiq_uapi_enableDhz
530 *     manual: Manual dehaze, when needs to use manual, please use rk_aiq_uapi_setMDhzStrth
531 *
532 *****************************
533 */
534 //XCamReturn rk_aiq_uapi_setDhzMode(const rk_aiq_sys_ctx_t* ctx, opMode_t mode);
535 //XCamReturn rk_aiq_uapi_getDhzMode(const rk_aiq_sys_ctx_t* ctx, opMode_t *mode);
536 
537 /*
538 *****************************
539 *
540 * Desc: set/get manual dehaze strength
541 *     this function is active for dehaze is manual mode
542 * Argument:
543 *   level: [0, 10]
544 *   Do not need to use rk_aiq_uapi_enableDhz and rk_aiq_uapi_setDhzMode before use this
545 *
546 *****************************
547 */
548 //XCamReturn rk_aiq_uapi_setMDhzStrth(const rk_aiq_sys_ctx_t* ctx, bool on, unsigned int level);
549 //XCamReturn rk_aiq_uapi_getMDhzStrth(const rk_aiq_sys_ctx_t* ctx, bool* on, unsigned int* level);
550 
551 /*
552 *****************************
553 *
554 * Desc: enable dehaze
555 * Argument:
556 *   When dehaze enable, dehaze on and para use use IQ xml
557 *   When dehaze disable, dehaze off and enhance para use use IQ xml
558 *
559 *****************************
560 */
561 //XCamReturn rk_aiq_uapi_enableDhz(const rk_aiq_sys_ctx_t* ctx);
562 //XCamReturn rk_aiq_uapi_disableDhz(const rk_aiq_sys_ctx_t* ctx);
563 
564 /*
565 **********************************************************
566 * Image adjust
567 **********************************************************
568 */
569 
570 /*
571 *****************************
572 *
573 * Desc: Adjust image contrast level
574 * Argument:
575 *    level: contrast level, [0, 255]
576 *****************************
577 */
578 XCamReturn rk_aiq_uapi_setContrast(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
579 XCamReturn rk_aiq_uapi_getContrast(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
580 
581 /*
582 *****************************
583 *
584 * Desc: Adjust image brightness level
585 * Argument:
586 *    level: brightness level, [0, 255]
587 *****************************
588 */
589 XCamReturn rk_aiq_uapi_setBrightness(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
590 XCamReturn rk_aiq_uapi_getBrightness(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
591 /*
592 *****************************
593 *
594 * Desc: Adjust image saturation level
595 * Argument:
596 *    level: saturation level, [0, 255]
597 *****************************
598 */
599 XCamReturn rk_aiq_uapi_setSaturation(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
600 XCamReturn rk_aiq_uapi_getSaturation(const rk_aiq_sys_ctx_t* ctx, unsigned int* level);
601 /*
602 *****************************
603 *
604 * Desc: Adjust image hue level
605 * Argument:
606 *    level: hue level, [0, 255]
607 *****************************
608 */
609 XCamReturn rk_aiq_uapi_setHue(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
610 XCamReturn rk_aiq_uapi_getHue(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
611 /*
612 *****************************
613 *
614 * Desc: Adjust image sharpness level
615 * Argument:
616 *    level: sharpness level, [0, 100]
617 *****************************
618 */
619 XCamReturn rk_aiq_uapi_setSharpness(const rk_aiq_sys_ctx_t* ctx, unsigned int level);
620 XCamReturn rk_aiq_uapi_getSharpness(const rk_aiq_sys_ctx_t* ctx, unsigned int *level);
621 
622 /*
623 *****************************
624 *
625 * Desc: Adjust image gamma
626 
627 *****************************
628 */
629 XCamReturn rk_aiq_uapi_setGammaCoef(const rk_aiq_sys_ctx_t* ctx, rk_aiq_gamma_attrib_t gammaAttr);
630 
631 /*
632 *****************************
633 *
634 * Desc: set gray mode
635 * Argument:
636 *    mode : RK_AIQ_GRAY_MODE_CPSL
637 *           RK_AIQ_GRAY_MODE_OFF
638 *           RK_AIQ_GRAY_MODE_ON
639 * related: rk_aiq_uapi_sysctl_setCpsLtCfg
640 *****************************
641 */
642 XCamReturn rk_aiq_uapi_setGrayMode(const rk_aiq_sys_ctx_t* ctx, rk_aiq_gray_mode_t mode);
643 rk_aiq_gray_mode_t rk_aiq_uapi_getGrayMode(const rk_aiq_sys_ctx_t* ctx);
644 
645 /*
646 *****************************
647 *
648 * Desc: set frame rate
649 * Argument:
650 *    frameRateInfo_t :
651 *           auto mode: vary fps
652 *         manual mode: fixed fps
653 *****************************
654 */
655 XCamReturn rk_aiq_uapi_setFrameRate(const rk_aiq_sys_ctx_t* ctx, frameRateInfo_t info);
656 XCamReturn rk_aiq_uapi_getFrameRate(const rk_aiq_sys_ctx_t* ctx, frameRateInfo_t *info);
657 
658 /*
659 *****************************
660 *
661 * Desc: set mirro & flip
662 * Argument:
663 *****************************
664 */
665 XCamReturn rk_aiq_uapi_setMirroFlip(const rk_aiq_sys_ctx_t* ctx,
666                                     bool mirror,
667                                     bool flip,
668                                     int skip_frm_cnt);
669 
670 /*
671 *****************************
672 *
673 * Desc: get mirro & flip
674 * Argument:
675 *****************************
676 */
677 XCamReturn rk_aiq_uapi_getMirrorFlip(const rk_aiq_sys_ctx_t* ctx, bool* mirror, bool* flip);
678 
679 /*
680 *****************************
681 *
682 * Desc: fec dynamic switch, valid only if aiq hasn't executed the 'prepare' action
683 * Argument:
684 *****************************
685 */
686 XCamReturn rk_aiq_uapi_setFecEn(const rk_aiq_sys_ctx_t* ctx, bool en);
687 
688 /*
689 *****************************
690 *
691 * Desc: set corrective direction of FEC, valid only if aiq hasn't executed the 'prepare' action
692 * Argument:
693 *****************************
694 */
695 XCamReturn rk_aiq_uapi_setFecCorrectDirection(const rk_aiq_sys_ctx_t* ctx,
696         const fec_correct_direction_t direction);
697 /*
698 *****************************
699 *
700 * Desc: The FEC module is still working in bypass state
701 * Argument:
702 *****************************
703 */
704 XCamReturn rk_aiq_uapi_setFecBypass(const rk_aiq_sys_ctx_t* ctx, bool en);
705 
706 /*
707 *****************************
708 *
709 * Desc: the adjustment range of distortion intensity is 0~255
710 * Argument:
711 *****************************
712 */
713 XCamReturn rk_aiq_uapi_setFecCorrectLevel(const rk_aiq_sys_ctx_t* ctx, int correctLevel);
714 
715 /*
716 *****************************
717 *
718 * Desc:
719 * Argument:
720 *****************************
721 */
722 XCamReturn rk_aiq_uapi_setFecCorrectMode(const rk_aiq_sys_ctx_t* ctx,
723         const fec_correct_mode_t mode);
724 
725 /*
726 *****************************
727 *
728 * Desc:
729 * Argument:
730 *****************************
731 */
732 XCamReturn rk_aiq_uapi_setLdchEn(const rk_aiq_sys_ctx_t* ctx, bool en);
733 /*
734 *****************************
735 *
736 * Desc: the adjustment range of distortion intensity is 0~255
737 * Argument:
738 *****************************
739 */
740 XCamReturn rk_aiq_uapi_setLdchCorrectLevel(const rk_aiq_sys_ctx_t* ctx, int correctLevel);
741 
742 RKAIQ_END_DECLARE
743 
744 #endif
745