127db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan/* 227db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * xcam_params.h - 3A parameters 327db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * 427db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * Copyright (c) 2015 Intel Corporation 527db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * 627db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * Licensed under the Apache License, Version 2.0 (the "License"); 727db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * you may not use this file except in compliance with the License. 827db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * You may obtain a copy of the License at 927db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * 1027db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * http://www.apache.org/licenses/LICENSE-2.0 1127db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * 1227db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * Unless required by applicable law or agreed to in writing, software 1327db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * distributed under the License is distributed on an "AS IS" BASIS, 1427db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1527db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * See the License for the specific language governing permissions and 1627db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * limitations under the License. 1727db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * 1827db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * Author: Wind Yuan <feng.yuan@intel.com> 1927db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan */ 2027db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 2127db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan#ifndef C_XCAM_PARAMS_H 2227db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan#define C_XCAM_PARAMS_H 2327db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 2429a49f50a2be78c046017672ec7a410044de0747Wind Yuan#include <base/xcam_defs.h> 2529a49f50a2be78c046017672ec7a410044de0747Wind Yuan#include <base/xcam_common.h> 2629a49f50a2be78c046017672ec7a410044de0747Wind Yuan#include <base/xcam_3a_types.h> 2727db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 2827db751fdb3c793c65ad74822b950dfbd916a5bcWind YuanXCAM_BEGIN_DECLARE 2927db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 3027db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuantypedef struct _XCamAeParam { 3127db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan XCamAeMode mode; 3227db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan XCamAeMeteringMode metering_mode; 3327db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan XCam3AWindow window; 34fa44236ccc37455d2f0c02e757e2f36eb3c801f8zongwave XCam3AWindow window_list[XCAM_AE_MAX_METERING_WINDOW_COUNT]; 3527db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan XCamFlickerMode flicker_mode; 3627db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan /* speed, default 1.0 */ 3727db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double speed; 3827db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 3927db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan /* exposure limitation */ 4027db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan uint64_t exposure_time_min, exposure_time_max; 4127db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double max_analog_gain; 4227db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 4327db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan /* exposure manual values */ 4427db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan uint64_t manual_exposure_time; 4527db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double manual_analog_gain; 4627db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 4727db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double aperture_fn; 4827db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 4927db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan /*ev*/ 5027db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double ev_shift; 5127db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan} XCamAeParam; 5227db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 5327db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuantypedef struct _XCamAwbParam { 5427db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan XCamAwbMode mode; 5527db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan /* speed, default 1.0 */ 5627db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double speed; 5727db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan uint32_t cct_min, cct_max; 5827db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan XCam3AWindow window; 5927db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 6027db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan /* manual gain, default 0.0 */ 6127db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double gr_gain; 6227db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double r_gain; 6327db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double b_gain; 6427db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double gb_gain; 6527db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan} XCamAwbParam; 6627db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 6727db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuantypedef struct _XCamAfParam { 6827db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 6927db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan} XCamAfParam; 7027db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 7127db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuantypedef struct _XCamCommonParam { 7227db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan /* R, G, B gamma table, size = XCAM_GAMMA_TABLE_SIZE */ 7327db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan bool is_manual_gamma; 7427db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double r_gamma [XCAM_GAMMA_TABLE_SIZE]; 7527db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double g_gamma [XCAM_GAMMA_TABLE_SIZE]; 7627db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double b_gamma [XCAM_GAMMA_TABLE_SIZE]; 7727db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 7827db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan /* 7927db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * manual brightness, contrast, hue, saturation, sharpness 8027db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan * -1.0 < value < 1.0 8127db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan */ 8227db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double nr_level; 8327db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double tnr_level; 8427db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 8527db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double brightness; 8627db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double contrast; 8727db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double hue; 8827db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double saturation; 8927db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan double sharpness; 9027db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 9127db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan /* others */ 9227db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan bool enable_dvs; 9327db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan bool enable_gbce; 9427db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan bool enable_night_mode; 950cccafab34077af3976a24302ff56984926086ddJohn Ye XCamColorEffect color_effect; 9627db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan} XCamCommonParam; 9727db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 9803954a3e89b2679ec78040a260cf56aa40f33faezongwavetypedef struct _XCamSmartAnalysisParam { 997f8d9e01842a7f87f1a816592849ba765ac065c8Wind Yuan uint32_t width; 1007f8d9e01842a7f87f1a816592849ba765ac065c8Wind Yuan uint32_t height; 1017f8d9e01842a7f87f1a816592849ba765ac065c8Wind Yuan double fps; 10203954a3e89b2679ec78040a260cf56aa40f33faezongwave 10303954a3e89b2679ec78040a260cf56aa40f33faezongwave} XCamSmartAnalysisParam; 10403954a3e89b2679ec78040a260cf56aa40f33faezongwave 10527db751fdb3c793c65ad74822b950dfbd916a5bcWind YuanXCAM_END_DECLARE 10627db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan 10727db751fdb3c793c65ad74822b950dfbd916a5bcWind Yuan#endif //C_XCAM_PARAMS_H 108