Home | History | Annotate | Download | only in base
      1 /*
      2  * xcam_params.h - 3A parameters
      3  *
      4  *  Copyright (c) 2015 Intel Corporation
      5  *
      6  * Licensed under the Apache License, Version 2.0 (the "License");
      7  * you may not use this file except in compliance with the License.
      8  * You may obtain a copy of the License at
      9  *
     10  *      http://www.apache.org/licenses/LICENSE-2.0
     11  *
     12  * Unless required by applicable law or agreed to in writing, software
     13  * distributed under the License is distributed on an "AS IS" BASIS,
     14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     15  * See the License for the specific language governing permissions and
     16  * limitations under the License.
     17  *
     18  * Author: Wind Yuan <feng.yuan (at) intel.com>
     19  */
     20 
     21 #ifndef C_XCAM_PARAMS_H
     22 #define C_XCAM_PARAMS_H
     23 
     24 #include <base/xcam_defs.h>
     25 #include <base/xcam_common.h>
     26 #include <base/xcam_3a_types.h>
     27 
     28 XCAM_BEGIN_DECLARE
     29 
     30 typedef struct _XCamAeParam {
     31     XCamAeMode              mode;
     32     XCamAeMeteringMode      metering_mode;
     33     XCam3AWindow            window;
     34     XCam3AWindow            window_list[XCAM_AE_MAX_METERING_WINDOW_COUNT];
     35     XCamFlickerMode         flicker_mode;
     36     /* speed, default 1.0 */
     37     double                  speed;
     38 
     39     /* exposure limitation */
     40     uint64_t                exposure_time_min, exposure_time_max;
     41     double                  max_analog_gain;
     42 
     43     /* exposure manual values */
     44     uint64_t                manual_exposure_time;
     45     double                  manual_analog_gain;
     46 
     47     double                  aperture_fn;
     48 
     49     /*ev*/
     50     double                  ev_shift;
     51 } XCamAeParam;
     52 
     53 typedef struct _XCamAwbParam {
     54     XCamAwbMode             mode;
     55     /* speed, default 1.0 */
     56     double                  speed;
     57     uint32_t                cct_min, cct_max;
     58     XCam3AWindow            window;
     59 
     60     /* manual gain, default 0.0 */
     61     double                  gr_gain;
     62     double                  r_gain;
     63     double                  b_gain;
     64     double                  gb_gain;
     65 } XCamAwbParam;
     66 
     67 typedef struct _XCamAfParam {
     68 
     69 } XCamAfParam;
     70 
     71 typedef struct _XCamCommonParam {
     72     /* R, G, B gamma table, size = XCAM_GAMMA_TABLE_SIZE */
     73     bool                      is_manual_gamma;
     74     double                    r_gamma [XCAM_GAMMA_TABLE_SIZE];
     75     double                    g_gamma [XCAM_GAMMA_TABLE_SIZE];
     76     double                    b_gamma [XCAM_GAMMA_TABLE_SIZE];
     77 
     78     /*
     79      * manual brightness, contrast, hue, saturation, sharpness
     80      * -1.0 < value < 1.0
     81      */
     82     double                     nr_level;
     83     double                     tnr_level;
     84 
     85     double                     brightness;
     86     double                     contrast;
     87     double                     hue;
     88     double                     saturation;
     89     double                     sharpness;
     90 
     91     /* others */
     92     bool                       enable_dvs;
     93     bool                       enable_gbce;
     94     bool                       enable_night_mode;
     95     XCamColorEffect            color_effect;
     96 } XCamCommonParam;
     97 
     98 typedef struct _XCamSmartAnalysisParam {
     99     uint32_t   width;
    100     uint32_t   height;
    101     double     fps;
    102 
    103 } XCamSmartAnalysisParam;
    104 
    105 XCAM_END_DECLARE
    106 
    107 #endif //C_XCAM_PARAMS_H
    108