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