Home | History | Annotate | Download | only in base
      1 /*
      2  * xcam_3a_description.h - 3A description
      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_3A_DESCRIPTION_H
     22 #define C_XCAM_3A_DESCRIPTION_H
     23 
     24 #include <string.h>
     25 #include <stddef.h>
     26 #include <stdio.h>
     27 #include <stdint.h>
     28 #include <base/xcam_defs.h>
     29 #include <base/xcam_params.h>
     30 #include <base/xcam_3a_result.h>
     31 #include <base/xcam_3a_stats.h>
     32 
     33 
     34 XCAM_BEGIN_DECLARE
     35 
     36 #define XCAM_3A_LIB_DESCRIPTION "xcam_3a_desciption"
     37 
     38 typedef struct _XCam3AContext XCam3AContext;
     39 
     40 /* C interface of 3A lib */
     41 typedef struct _XCam3ADescription {
     42     uint32_t                               version;
     43     uint32_t                               size;
     44     XCamReturn (*create_context)           (XCam3AContext **context);
     45     XCamReturn (*destroy_context)          (XCam3AContext *context);
     46     XCamReturn (*configure_3a)             (XCam3AContext *context, uint32_t width, uint32_t height, double framerate);
     47     XCamReturn (*set_3a_stats)             (XCam3AContext *context, XCam3AStats *stats, int64_t timestamp);
     48     XCamReturn (*update_common_params)     (XCam3AContext *context, XCamCommonParam *params);
     49     XCamReturn (*analyze_awb)              (XCam3AContext *context, XCamAwbParam *params);
     50     XCamReturn (*analyze_ae)               (XCam3AContext *context, XCamAeParam *params);
     51     XCamReturn (*analyze_af)               (XCam3AContext *context, XCamAfParam *params);
     52 
     53     /* res_count should equal to or less than XCAM_3A_MAX_RESULT_COUNT*/
     54     XCamReturn (*combine_analyze_results)  (XCam3AContext *context, XCam3aResultHead *results[], uint32_t *res_count);
     55     void       (*free_results)             (XCam3aResultHead *results[], uint32_t res_count);
     56 } XCam3ADescription;
     57 
     58 XCAM_END_DECLARE
     59 
     60 #endif //C_XCAM_3A_DESCRIPTION_H
     61