• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * isp_image_processor.h - isp image processor
3  *
4  *  Copyright (c) 2014-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@intel.com>
19  */
20 
21 #ifndef XCAM_ISP_IMAGE_PROCESSOR_H
22 #define XCAM_ISP_IMAGE_PROCESSOR_H
23 
24 #include <xcam_std.h>
25 #include "image_processor.h"
26 
27 namespace XCam {
28 
29 class X3aIspConfig;
30 class IspController;
31 class IspConfigTranslator;
32 class SensorDescriptor;
33 
34 class IspImageProcessor
35     : public ImageProcessor
36 {
37 public:
38     explicit IspImageProcessor (SmartPtr<IspController> &controller);
39     virtual ~IspImageProcessor ();
40 
41 protected:
42     //derive from ImageProcessor
43     virtual bool can_process_result (SmartPtr<X3aResult> &result);
44     virtual XCamReturn apply_3a_results (X3aResultList &results);
45     virtual XCamReturn apply_3a_result (SmartPtr<X3aResult> &result);
46     virtual XCamReturn process_buffer (SmartPtr<VideoBuffer> &input, SmartPtr<VideoBuffer> &output);
47 
48 private:
49     XCamReturn merge_results (X3aResultList &results);
50     XCamReturn apply_exposure_result (X3aResultList &results);
51 
52     XCAM_DEAD_COPY (IspImageProcessor);
53 
54 private:
55     SmartPtr<IspController>          _controller;
56     SmartPtr<SensorDescriptor>       _sensor;
57     SmartPtr<IspConfigTranslator>    _translator;
58     SmartPtr<X3aIspConfig>           _3a_config;
59 };
60 
61 class IspExposureImageProcessor
62     : public IspImageProcessor
63 {
64 public:
65     explicit IspExposureImageProcessor (SmartPtr<IspController> &controller);
66 
67 protected:
68     virtual bool can_process_result (SmartPtr<X3aResult> &result);
69 
70 private:
71     XCAM_DEAD_COPY (IspExposureImageProcessor);
72 };
73 
74 };
75 
76 #endif //XCAM_ISP_IMAGE_PROCESSOR_H
77