xref: /OK3568_Linux_fs/external/camera_engine_rkaiq/rkaiq/iq_parser_v2/lut3d_xml2json.cpp (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 
19 #include "lut3d_xml2json.h"
20 
CalibV2Lut3DFree(CamCalibDbV2Context_t * calibV2)21 void CalibV2Lut3DFree(CamCalibDbV2Context_t *calibV2)
22 {
23     CalibDbV2_Lut3D_Para_V2_t* lut3d_v2 =  (CalibDbV2_Lut3D_Para_V2_t*)(CALIBDBV2_GET_MODULE_PTR(calibV2, lut3d_calib));
24     if(lut3d_v2 ==NULL){
25           return;
26     }
27     for (int i = 0; i < lut3d_v2->ALut3D.lutAll_len; i++)
28         free(lut3d_v2->ALut3D.lutAll[i].name);
29     free(lut3d_v2->ALut3D.lutAll);
30 }
31 
convertLut3DCalib2CalibV2(const CamCalibDbContext_t * calib,CamCalibDbV2Context_t * calibV2)32 void convertLut3DCalib2CalibV2(const CamCalibDbContext_t *calib,CamCalibDbV2Context_t *calibV2)
33 {
34     const CalibDb_Lut3d_t *lut3d =
35         (CalibDb_Lut3d_t*)(CALIBDB_GET_MODULE_PTR((void*)calib, lut3d));
36     if (lut3d == NULL)
37         return;
38 
39     CalibDbV2_Lut3D_Para_V2_t *lut3d_v2 =
40         (CalibDbV2_Lut3D_Para_V2_t*)(CALIBDBV2_GET_MODULE_PTR(calibV2, lut3d_calib));
41     if (lut3d_v2 == NULL)
42         return;
43     // malloc
44     memset(lut3d_v2, 0, sizeof(CalibDbV2_Lut3D_Para_V2_t));
45 
46     lut3d_v2->ALut3D.lutAll_len = 1;
47     lut3d_v2->ALut3D.lutAll = (CalibDbV2_Lut3D_LutPara_t*)malloc(sizeof(CalibDbV2_Lut3D_LutPara_t));
48     lut3d_v2->ALut3D.lutAll[0].name = (char*)malloc(sizeof(char)*20);
49 
50     //coppy value
51     lut3d_v2->common.enable = lut3d->enable;
52     lut3d_v2->common.gain_tolerance = 0.1;
53 
54     lut3d_v2->ALut3D.damp_en = 1;
55     sprintf(lut3d_v2->ALut3D.lutAll[0].name, "%s", "Normal");
56     lut3d_v2->ALut3D.lutAll[0].awbGain[0] = 1.0;
57     lut3d_v2->ALut3D.lutAll[0].awbGain[1] = 1.0;
58 
59     for (int i = 0; i < 9; i++) {
60         lut3d_v2->ALut3D.lutAll[0].gain_alpha.gain[i] = 1<<i;
61         lut3d_v2->ALut3D.lutAll[0].gain_alpha.alpha[i] =1;
62     }
63 
64     CalibDbV2_Lut3D_Table_Para_t *Table = &lut3d_v2->ALut3D.lutAll[0].Table;
65     memcpy(Table->look_up_table_b, lut3d->look_up_table_b, sizeof(Table->look_up_table_b));
66     memcpy(Table->look_up_table_r, lut3d->look_up_table_r, sizeof(Table->look_up_table_r));
67     memcpy(Table->look_up_table_g, lut3d->look_up_table_g, sizeof(Table->look_up_table_g));
68 }
69 
70 
71