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