isp_comm_def.h
19.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
/*******************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2010
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*******************************************************************************/
/*******************************************************************************
* Filename:
* ---------
* isp_comm_def.h
*
* Project:
* --------
* All
*
* Description:
* ------------
* This file is intends for ISP .
*
* Author:
* -------
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
#ifndef __ISP_COMM_H__
#define __ISP_COMM_H__
#include "cal_api.h"
#include "cal_comm_def.h"
typedef enum
{
ISP_IDLE_STATE=0,
ISP_STANDBY_STATE,
ISP_PREVIEW_STATE,
ISP_CAPTURE_RAW_STATE,
ISP_CAPTURE_JPEG_STATE,
ISP_PREVIEW_WEBCAM_STATE,
ISP_CAPTURE_WEBCAM_STATE,
ISP_MPEG4_ENCODE_STATE,
ISP_MJPEG_ENCODE_STATE,
ISP_MPEG4_DECODE_STATE
} ISP_OPERATION_STATE_ENUM;
typedef enum
{
ISP_DRIVING_2MA=0,
ISP_DRIVING_4MA,
ISP_DRIVING_6MA,
ISP_DRIVING_8MA,
ISP_DRIVING_0MA,
ISP_DRIVING_NO
} ISP_DRIVING_CURRENT_ENUM;
typedef enum
{
ISP_FEATURE_BEGIN=CAL_ISP_FEATURE_BEGIN,
ISP_FEATURE_INIT_HW, // In : IMAGE_SENSOR_GET_SENSOR_INFO_STRUCT (defined in sensor comm header file), Out : NULL
ISP_FEATURE_DEINIT_HW, // In : IMAGE_SENSOR_GET_SENSOR_INFO_STRUCT (defined in sensor comm header file), Out : NULL
ISP_FEATURE_SET_TG, // In : ISP_FEATURE_SET_TG_STRUCT, Out : NULL
ISP_FEATURE_SET_CUSTOM_DRIVER_FEATURE_CTRL_FUNC, // In : ISP_FEATURE_CUSTOM_DRIVER_FEATURE_CTRL_FUN_STRUCT, Out : NULL
ISP_FEATURE_GET_NVRAM_INFO, // In : CAL_SENSOR_SUPPORT_STRUCT, Out : ISP_FEATURE_NVRAM_INFO_STRUCT
ISP_FEATURE_SET_NVRAM_DATA, // In : ISP_FEATURE_NVRAM_DATA_STRUCT, Out : NULL
ISP_FEATURE_GET_NVRAM_DATA, // In : ISP_FEATURE_NVRAM_DATA_STRUCT, Out : ISP_FEATURE_NVRAM_DATA_STRUCT
ISP_FEATURE_GET_OUTPUT_RESOLUTION, // In : ISP_FEATURE_GET_OUTPUT_RESOLUTION_IN_STRUCT, Out : ISP_FEATURE_GET_OUTPUT_RESOLUTION_OUT_STRUCT, calculat the ISP output resolution according to sensor input resolution, digital zoom facotr and target resolution
ISP_FEATURE_GET_CURRENT_ZOOM_INFO, // In : NULL, Out : ISP_FEATURE_CURRENT_ZOOM_INFO_STRUCT
ISP_FEATURE_GET_DIGITAL_ZOOM_RESOLUTION,// In : ISP_FEATURE_GET_DIGITAL_ZOOM_RESOLUTION_IN_STRUCT, Out : ISP_FEATURE_GET_DIGITAL_ZOOM_RESOLUTION_IN_STRUCT
ISP_FEATURE_SET_FACE_INFO, // In : AAA_FACE_INFO_STRUCT, Out : NULL
ISP_FEATURE_SET_AE_BYPASS, // In: , Out: NULL
ISP_FEATURE_SET_AWB_BYPASS, //In: , Out: NULL
ISP_FEATURE_SET_AE_LIMIT_ENABLE, //In: , Out: NULL
ISP_FEATURE_GET_CAPTURE_EV_IDX, //In: , Out:
ISP_FEATURE_SET_AF_BYPASS, //In: , Out: NULL
ISP_FEATURE_RESET_AF, //In: , Out: NULL
ISP_FEATURE_SET_CAPTURE_FORMAT,
ISP_FEATURE_CONFIG_3A_BEFORE_SENSOR_SWITCH_CAPTURE, //In:ISP_FEATURE_CONFIG_3A_BEFORE_CAPTURE_STRUCT, Out: NULL
ISP_FEATURE_STOP_FLASHLIGHT_PROCESS_AFTER_CAPTURE_DONE, // In: , Out: NULL
ISP_FEATURE_DISABLE_VIEWFINDER, //In: , Out: NULL
ISP_FEATURE_UPDATE_EXIF_INFO , //In:ISP_CAMERA_UPDATE_EXIF_INFO_STRUCT , Out: NULL
ISP_FEATURE_SET_3A_REF, // In: SENSOR_AE_AWB_REF_STRUCT, Out: NULL //__AUTO_SCENE_DETECT_SUPPORT__
ISP_FEATURE_GET_3A_REF,// In: NULL, Out: ISP_CAMERA_AWB_AF_REF_STRUCT //__AUTO_SCENE_DETECT_SUPPORT__
ISP_FEATURE_GET_3A_INFO,// In: NULL, Out:ISP_CAMERA_INFO_3A_STRUCT //__AUTO_SCENE_DETECT_SUPPORT__
ISP_FEATURE_SET_SCENE_COMPENSATION, // In: ISP_CAMERA_SCENE_COMPENSATION_STRUCT, Out: NULL //__AUTO_SCENE_DETECT_SUPPORT__
ISP_FEASTURE_MAX,
} ISP_FEATURE_ENUM;
typedef enum
{
ISP_RAW_SUPPORT=0,
ISP_YUV_SUPPORT,
ISP_SUPPORT_END
} ISP_DATA_FORMAT_ENUM;
typedef enum
{
ISP_PROCESS_DATA_8_BIT=0,
ISP_PROCESS_DATA_10_BIT
}ISP_BIT_DEPTH_ENUM;
#if defined (__AUTO_SCENE_DETECT_SUPPORT__)
typedef enum
{
ISP_ASD_COMP_NIGHT_MODE_ON=0,
ISP_ASD_COMP_NIGHT_MODE_OFF,
ISP_ASD_COMP_SKIN_COLOR_ENHANCE,
ISP_ASD_COMP_FACE_EV_BIOS,
ISP_ASD_COMP_SCENE_ENHANCE,
ISP_ASD_COMP_MAX,
}ISP_ASD_COMPENSATION_ENUM;
#endif
typedef struct
{
ISP_BIT_DEPTH_ENUM CameraPreviewBitDepth;
ISP_BIT_DEPTH_ENUM CameraCaptureBitDepth;
}ISP_PROCESS_DATA_BIT_DEPTH_STRUCT, *P_ISP_PROCESS_DATA_BIT_DEPTH_STRUCT;
typedef struct
{
kal_uint16 ImageWidth;
kal_uint16 ImageHeight;
} ISP_CAMERA_PREVIEW_PARA_OUT_STRUCT, *P_ISP_CAMERA_PREVIEW_PARA_OUT_STRUCT;
typedef struct
{
kal_uint32 ScenarioCtrlCode;
kal_uint32 ScenarioCtrlParaLen;
void *pScenarioCtrlPara;
} ISP_SCENARIO_CTRL_STRUCT, *P_ISP_SCENARIO_CTRL_STRUCT;
// for ISP_FEATURE_GET_NVRAM_INFO
typedef struct
{
kal_bool SensorSupport[4]; // notify ISP which sensor will be supported,
// IMAGE_SENSOR_MAIN/IMAGE_SENSOR_SUB/IMAGE_SENSOR_BAK1/IMAGE_SENSOR_SUB/BAK1
} CAL_SENSOR_SUPPORT_STRUCT, *P_CAL_SENSOR_SUPPORT_STRUCT;
typedef struct
{
kal_uint32 CameraNvramStartFileLid[4]; // the
kal_uint32 CameraNvramEndFileLid[4]; // query result
} ISP_FEATURE_NVRAM_INFO_STRUCT, *P_ISP_FEATURE_NVRAM_INFO_STRUCT;
// for ISP_FEATURE_SET_NVRAM_DATA
// ISP_FEATURE_GET_NVRAM_DATA
typedef struct
{
kal_uint32 CameraNvramFileLid; // set para
void *pCameraNvramFileData; // set para
kal_uint32 CameraNvramDataSize;
} ISP_FEATURE_NVRAM_DATA_STRUCT, *P_ISP_FEATURE_NVRAM_DATA_STRUCT;
// for ISP_FEATURE_GET_OUTPUT_RESOLUTION
typedef struct
{
ISP_OPERATION_STATE_ENUM IspState;
kal_bool MetaModeFlag;
kal_bool BinningMode; // for capture mode only
kal_bool RawCaptureEnable;
kal_uint8 ZoomStep;
kal_uint8 TotalZoomStep;
kal_uint16 MaxZoomFactor;
kal_uint16 SensorImageGrabStartX;
kal_uint16 SensorImageGrabStartY;
kal_uint16 SensorImageWidth;
kal_uint16 SensorImageHeight;
kal_uint16 TargetWidth;
kal_uint16 TargetHeight;
kal_uint8 WaitStableFrameNum;
CAL_CAMERA_DIGITAL_ZOOM_TYPE_ENUM DzType;
const kal_uint16 *pZoomFactorListTable;
} ISP_FEATURE_GET_OUTPUT_RESOLUTION_IN_STRUCT, *P_ISP_FEATURE_GET_OUTPUT_RESOLUTION_IN_STRUCT;
typedef struct
{
kal_uint16 IspOutWidth;
kal_uint16 IspOutHeight;
} ISP_FEATURE_GET_OUTPUT_RESOLUTION_OUT_STRUCT, *P_ISP_FEATURE_GET_OUTPUT_RESOLUTION_OUT_STRUCT;
// for ISP_FEATURE_GET_CURRENT_ZOOM_INFO
typedef struct
{
kal_uint8 CurrentZoomStep;
kal_uint8 TotalZoomStep;
kal_uint16 MaxZoomFactor;
kal_uint16 CurrentZoomFactor;
} ISP_FEATURE_CURRENT_ZOOM_INFO_STRUCT, *P_ISP_FEATURE_CURRENT_ZOOM_INFO_STRUCT;
// ISP_FEATURE_GET_DIGITAL_ZOOM_RESOLUTION
typedef struct
{
kal_uint8 ZoomStep;
CAL_CAMERA_DIGITAL_ZOOM_TYPE_ENUM DzType;
const kal_uint16 *pZoomFactorListTable;
} ISP_FEATURE_GET_DIGITAL_ZOOM_RESOLUTION_IN_STRUCT, *P_ISP_FEATURE_GET_DIGITAL_ZOOM_RESOLUTION_IN_STRUCT;
typedef struct
{
kal_bool MdpCropEnable; // Digital zoom is cropped by MDP or not.
kal_uint16 IspOutWidth; // ISP Output Image width
kal_uint16 IspOutHeight; // ISP output image height
kal_uint16 DigitalZoomWidth; // Image width after digital zoom
kal_uint16 DigitalZoomHeight; // Image height after digital zoom
} ISP_FEATURE_GET_DIGITAL_ZOOM_RESOLUTION_OUT_STRUCT, *P_ISP_FEATURE_GET_DIGITAL_ZOOM_RESOLUTION_OUT_STRUCT;
// for ISP_FEATURE_TG_STRUCT
typedef struct
{
CAL_SCENARIO_ENUM ScenarioId;
void *pSensorInfo; // IMAGE_SENSOR_GET_SENSOR_INFO_STRUCT
} ISP_FEATURE_SET_TG_STRUCT, *P_ISP_FEATURE_SET_TG_STRUCT;
typedef struct
{
kal_bool BinningMode; // enable/disable binning mode
kal_uint8 ExpoBracketLevel;
kal_bool RawCaptureEnable;
MULTISHOT_INFO_ENUM MultishotInfo;
CAL_CAMERA_STILL_CAPTURE_ENUM StillCaptureMode;
}ISP_FEATURE_CONFIG_3A_BEFORE_CAPTURE_STRUCT, *P_ISP_FEATURE_CONFIG_3A_BEFORE_CAPTURE_STRUCT;
// for ISP_FEATURE_SET_CUSTOM_DRIVER_FEATURE_CTRL_FUNC
// because isp_comm_def.h does not include sensor_comm_def.h such that we use kal_uint32 to
// replace IMAGE_SENSOR_FEATURE_ENUM for the parameter of SensorFeatureCtrl
typedef struct
{
CAL_CAMERA_SOURCE_ENUM CameraId;
kal_uint32 SensorIdx; // IMAGE_SENSOR_INDEX_ENUM
void *pSensorInfo; // IMAGE_SENSOR_GET_SENSOR_INFO_STRUCT
MM_ERROR_CODE_ENUM (* SensorFeatureCtrl) (kal_uint32 FeatureId, void *pFeatureParaIn, void *pFeatureParaOut,
kal_uint32 FeatureParaOutLen, kal_uint32 *pRealFeatureParaOutLen);
MM_ERROR_CODE_ENUM (* LensFeatureControl) (kal_uint32 FeatureId, void *pFeatureParaIn, void *pFeatureParaOut,
kal_uint32 FeatureParaOutLen, kal_uint32 *pRealFeatureParaOutLen);
// kal_uint32 (* FlashLightFeatureControl) (FLASH_LIGHT_FEATURE_ENUM FeatureId, void *pFeatureParaIn, void *pFeatureParaOut, kal_uint32 FeatureParaOutLen);
} ISP_FEATURE_CUSTOM_DRIVER_FEATURE_CTRL_FUN_STRUCT, *P_ISP_FEATURE_CUSTOM_DRIVER_FEATURE_CTRL_FUN_STRUCT;
typedef struct
{
kal_uint8 FaceNo;
kal_uint8 FaceLum;
kal_bool FdEnable;
kal_bool SdEnable;
kal_uint8 ResultCounter;
kal_uint16 FaceX0;
kal_uint16 FaceY0;
kal_uint16 FaceX1;
kal_uint16 FaceY1;
kal_uint16 ImgSrcWidth;
kal_uint16 ImgSrcHeight;
} AAA_FACE_INFO_STRUCT, *P_AAA_FACE_INFO_STRUCT;
// for IMAGE_SENSOR_FEATURE_GET_AE_LUT
typedef struct
{
kal_uint8 Band;
kal_bool VideoMode;
kal_uint8 DscMode;
kal_uint16 VideoFrameRate;
} ae_lut_info_struct, AE_LUT_INFO_STRUCT, *P_AE_LUT_INFO_STRUCT;
typedef struct
{
kal_uint16 shutter;
kal_uint16 sensorgain;
kal_uint8 ispgain;
} exposure_lut_struct, AE_EXPOSURE_LUT_STRUCT, *P_AE_EXPOSURE_LUT_STRUCT;
// for IMAGE_SENSOR_FEATURE_GET_DSC_SUPPORT_INFO
typedef struct
{
kal_bool autodsc;
kal_bool portrait;
kal_bool landscape;
kal_bool sport;
kal_bool flower;
kal_bool nightscene;
kal_bool tvmode;
kal_bool avmode;
kal_bool isomode;
kal_bool document_mode;
kal_bool iso_anti_hand_shake_mode;
kal_bool iso_100_mode;
kal_bool iso_200_mode;
kal_bool iso_400_mode;
kal_bool iso_800_mode;
kal_bool iso_1600_mode;
kal_bool video_auto_mode;
kal_bool video_night_mode;
}camcorder_mode_info_struct;
typedef struct
{
kal_bool flashlight;
kal_bool autofocus;
}dsc_comp_info_struct;
typedef struct
{
kal_bool autoflash;
kal_bool forceon;
kal_bool forceoff;
kal_bool antiredeye;
}flash_mode_info_struct;
typedef struct
{
kal_bool af_support;
kal_bool single;
kal_bool multizone;
kal_bool continuous;
kal_bool range_auto;
kal_bool range_macro;
kal_bool range_landscape;
}af_preview_mode_info_struct;
typedef struct
{
kal_bool af_support;
kal_bool automode;
kal_bool multizone;
kal_bool continuous;
kal_bool range_auto;
kal_bool range_macro;
kal_bool range_landscape;
}af_video_mode_info_struct;
typedef struct
{
af_preview_mode_info_struct preview_mode;
af_video_mode_info_struct video_mode;
}af_info_struct;
/************* AAA Engineer mode ******************/
typedef enum
{
AF_EM_FULL_SCAN_FORW1=0, // 0
AF_EM_FULL_SCAN_FORW4, // 1
AF_EM_FULL_SCAN_BACK1, // 2
AF_EM_FULL_SCAN_BACK4, // 3
AF_EM_CONT_FOCUS_SHOT, // 4
AF_EM_BEST_BRACKET_SHOT, // 5
AF_EM_CONT_FORWARD_LOG, // 6
AF_EM_CONT_BACKWARD_LOG, // 7
AF_EM_SINGLE_FORWARD_LOG, // 8
AE_EM_FULL_SCAN,
AE_EM_BEST_BRACKET_SCAN,
AWB_EM_SEQ_PREVIEW_LOG_SAVE,
AAA_EM_OFF,
AAA_EM_NO
} AAA_EM_MODE_ENUM;
typedef enum
{
AAA_EM_CAP_PV_SIZE,
AAA_EM_CAP_FULL_SIZE,
AAA_EM_CAP_NO
} AAA_EM_CAP_SIZE_ENUM;
typedef struct
{
AAA_EM_MODE_ENUM AaaEmMode;
} AAA_EM_IN_PARA_STRUCT, *P_AAA_EM_IN_PARA_STRUCT;
typedef struct
{
kal_uint32 SnapshotNum; // delay time (ms) if pre_log_enable
//AAA_EM_CAP_SIZE cap_size;
kal_bool AfEnable;
kal_bool PreLogEnable;
} AAA_EM_OUT_PARA_STRUCT, *P_AAA_EM_OUT_PARA_STRUCT;
kal_bool AaaSetEm(P_AAA_EM_IN_PARA_STRUCT pInPara, P_AAA_EM_OUT_PARA_STRUCT pOutPara);
void AaaSaveLog(char *pFileNameBuf);
/**********************************************/
// data structure for ISP
// for ISP preview scenario
typedef struct
{
IMAGE_SENSOR_MIRROR_ENUM ImageMirror;
kal_uint16 ImageTargetWidth;
kal_uint16 ImageTargetHeight;
P_CAL_ISP_PREVIEW_STRUCT pCalIspPreviewPara;
} ISP_CAMERA_PREVIEW_STRUCT, *P_ISP_CAMERA_PREVIEW_STRUCT;
// for ISP still capture scenario
typedef struct
{
IMAGE_SENSOR_MIRROR_ENUM ImageMirror;
CAL_RAW_CAPTURE_MODE_ENUM CaptureScenario; // for Raw sensor only
MM_IMAGE_ROTATE_ENUM StillImageExifOrientation;
kal_uint16 ImageTargetWidth;
kal_uint16 ImageTargetHeight;
P_CAL_ISP_STILL_CAPTURE_STRUCT pCalIspCapturePara;
} ISP_CAMERA_STILL_CAPTURE_STRUCT, *P_ISP_CAMERA_STILL_CAPTURE_STRUCT;
// for Video preview/record scenario
typedef struct
{
IMAGE_SENSOR_MIRROR_ENUM ImageMirror;
kal_uint16 ImageTargetWidth;
kal_uint16 ImageTargetHeight;
P_CAL_ISP_VIDEO_STRUCT pCalIspVideoPara;
} ISP_CAMERA_VIDEO_STRUCT, *P_ISP_CAMERA_VIDEO_STRUCT;
typedef struct
{
kal_uint16 ImageTargetWidth;
kal_uint16 ImageTargetHeight;
kal_uint8 StillImageExifOrientation;
//... may add for future usage
} ISP_CAMERA_UPDATE_EXIF_INFO_STRUCT, *P_ISP_CAMERA_UPDATE_EXIF_INFO_STRUCT;
#if defined (__AUTO_SCENE_DETECT_SUPPORT__)
typedef struct
{
kal_bool AeIsBacklit; /* AE Backlit Condition from AE algorithm */
kal_bool AeIsStable; /* AE converge to stable situation */
kal_bool AwbIsStable; /* AWB converge to stable situation */
kal_bool AfIsStable; /* Af converge to stable situation */
kal_uint16 AwbCurRgain; /* Current AWB R channel gain */
kal_uint16 AwbCurBgain; /* Current AWB B channel gain */
kal_uint16 AfPosition; /* Current lens position */
kal_uint8 AeEv; /* information version control, 0,1,2 for YUV,WCP1-RAW, WCP2-RAW*/
kal_int16 AeFaceEnhanceEv; /* AE face Ev adjustment value */
} ISP_CAMERA_INFO_3A_STRUCT, *P_ISP_CAMERA_INFO_3A_STRUCT;
typedef struct
{
kal_bool AaaInfoFromRaw; /* Raw or Yuv 3A */
kal_uint16 AwbRefD65Rgain; /* D65 R channel gain */
kal_uint16 AwbRefD65Bgain; /* D65 B channel gain */
kal_uint16 AwbRefCwfRgain; /* CWF R channel gain */
kal_uint16 AwbRefCwfBgain; /* CWF B channel gain */
void *AfTblParam; /* the whole AF table including macro index & total number of the table */
} ISP_CAMERA_AWB_AF_REF_STRUCT, *P_ISP_CAMERA_AWB_AF_REF_STRUCT;
typedef struct
{
kal_bool NightModeEnable; /* Night mode enable */
kal_bool SkinColorEnhanceEnable; /* Skin Color Enhance(PCA) enable */
kal_bool FaceEVBiosEnable; /* Facial AE enable */
CAL_CAMERA_CONTRAST_ENUM SceneContrast; /* Scene Contrast */
CAL_CAMERA_SATURATION_ENUM SceneSaturation; /* Scene Saturation */
CAL_CAMERA_SHARPNESS_ENUM SceneSharpness; /* Scene Sharpness */
CAL_CAMERA_SCENE_MODE_ENUM SceneType;/* Scene Type */
kal_uint8 FaceLuminance; /* Face Luminance */
kal_bool AsdEnabled; /* ASD enable or not */
} ISP_CAMERA_SCENE_COMPENSATION_STRUCT, *P_ISP_CAMERA_SCENE_COMPENSATION_STRUCT ;
typedef struct
{
kal_bool AeIsStable; /* AE converge to stable situation */
kal_uint8 AeEv; /* information version control, 0,1,2 for YUV,WCP1-RAW, WCP2-RAW*/
} ISP_CAMERA_INFO_AE_STRUCT, *P_ISP_CAMERA_INFO_AE_STRUCT;
#endif
typedef struct
{
MM_ERROR_CODE_ENUM (* IspOpen) (void);
MM_ERROR_CODE_ENUM (* IspFeatureCtrl) (kal_uint32 FeatureId, void *pIspParaIn,
void *pIspParaOut, kal_uint32 IspParaOutLen,
kal_uint32 *pRealIspParaOutLen);
MM_ERROR_CODE_ENUM (* IspCtrl) (CAL_SCENARIO_ENUM ScenarioId, void *pCtrlParaIn,
void *pCtrlParaOut, kal_uint32 CtrlParaOutLen,
kal_uint32 *pRealCtrlParaOutLen);
MM_ERROR_CODE_ENUM (* IspClose) (void);
} ISP_FUNCTION_STRUCT, *P_ISP_FUNCTION_STRUCT;
MM_ERROR_CODE_ENUM IspInit(MM_ERROR_CODE_ENUM (* pfIspCallback) (CAL_CALLBACK_ID_ENUM CbId,
void *pCallbackPara, kal_uint16 CallbackParaLen),
P_ISP_FUNCTION_STRUCT *pfIspFunc);
#endif /* __ISP_COMM_H__ */