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