/* * cl_bayer_pipe_handler.h - CL bayer pipe handler * * Copyright (c) 2015 Intel Corporation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Author: Wind Yuan * Author: wangfei * Author: Shincy Tu */ #ifndef XCAM_CL_BAYER_PIPE_HANDLER_H #define XCAM_CL_BAYER_PIPE_HANDLER_H #include #include #include #include #include #include #define XCAM_BNR_TABLE_SIZE 64 namespace XCam { class CLBayerPipeImageHandler; typedef struct { float ee_gain; float ee_threshold; float nr_gain; } CLEeConfig; class CLBayerPipeImageKernel : public CLImageKernel { public: explicit CLBayerPipeImageKernel ( const SmartPtr &context, SmartPtr &handler); private: SmartPtr _handler; }; class CLBayerPipeImageHandler : public CLImageHandler { friend class CLBayerPipeImageKernel; public: explicit CLBayerPipeImageHandler (const SmartPtr &context, const char *name); bool set_bayer_kernel (SmartPtr &kernel); bool set_ee_config (const XCam3aResultEdgeEnhancement &ee); bool set_bnr_config (const XCam3aResultBayerNoiseReduction &bnr); bool set_output_format (uint32_t fourcc); bool enable_denoise (bool enable); protected: virtual XCamReturn prepare_buffer_pool_video_info ( const VideoBufferInfo &input, VideoBufferInfo &output); virtual XCamReturn prepare_parameters ( SmartPtr &input, SmartPtr &output); private: XCAM_DEAD_COPY (CLBayerPipeImageHandler); private: SmartPtr _bayer_kernel; uint32_t _output_format; uint32_t _enable_denoise; float _bnr_table[XCAM_BNR_TABLE_SIZE]; CLEeConfig _ee_config; }; SmartPtr create_cl_bayer_pipe_image_handler (const SmartPtr &context); }; #endif //XCAM_CL_BAYER_PIPE_HANDLER_H