liyujie
2025-08-28 d9927380ed7c8366f762049be9f3fee225860833
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
 
/*
 ******************************************************************************
 *
 * isp_rolloff.h
 *
 * Hawkview ISP - isp_rolloff.h module
 *
 * Copyright (c) 2016 by Allwinnertech Co., Ltd.  http://www.allwinnertech.com
 *
 * Version          Author         Date            Description
 *   3.0          Yang Feng       2015/10/22    ISP Tuning Tools Support
 *   3.1          Yang Feng       2016/03/29    VIDEO INPUT
 *
 *****************************************************************************
 */
 
#ifndef _ISP_3A_ROLLOFF_H_
#define _ISP_3A_ROLLOFF_H_
 
typedef enum isp_rolloff_param_type {
   ISP_ROLLOFF_PLATFORM_ID,
   ISP_ROLLOFF_FRAME_ID,
   ISP_ROLLOFF_INI_DATA,
   ISP_ROLLOFF_SENSOR_INFO,
   ISP_ROLLOFF_LSC_CONFIG,
 
   ISP_ROLLOFF_PARAM_TYPE_MAX,
} rolloff_param_type_t;
typedef struct isp_rolloff_ini_cfg {
   int rolloff_ratio;
   unsigned short lens_table_ini[ISP_LENS_TBL_SIZE*3];
} rolloff_ini_cfg_t;
 
typedef struct isp_rolloff_param {
   rolloff_param_type_t type;
   union{
       int isp_platform_id;
       int rolloff_frame_id;
       isp_sensor_info_t rolloff_sensor_info;
       struct isp_lsc_config lsc_cfg;
       rolloff_ini_cfg_t rolloff_ini;
   }u;
} rolloff_param_t;
 
typedef struct isp_rolloff_stats {
   struct isp_stats_s *rolloff_stats;
} rolloff_stats_t;
 
typedef struct isp_rolloff_result {
   unsigned short lens_table_output[ISP_LENS_TBL_SIZE*3];
} rolloff_result_t;
 
typedef struct isp_rolloff_core_ops {
   HW_S32 (*isp_rolloff_set_params)(void * rolloff_core_obj, rolloff_param_t *param,\
                       rolloff_result_t *result);
   HW_S32 (*isp_rolloff_get_params)(void *rolloff_core_obj, rolloff_param_t *param);
   HW_S32 (*isp_rolloff_run)(void *rolloff_core_obj, rolloff_stats_t *stats,\
                       rolloff_result_t *result);
} isp_rolloff_core_ops_t;
 
void* rolloff_init(isp_rolloff_core_ops_t **rolloff_core_ops);
void  rolloff_exit(void *rolloff_core_obj);
 
 
#endif /*_ISP_3A_ROLLOFF_H_*/