749 lines
		
	
	
		
			33 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			749 lines
		
	
	
		
			33 KiB
		
	
	
	
		
			C++
		
	
	
	
| /*
 | |
|  * Copyright (c) 2019-2022 Rockchip Eletronics Co., Ltd.
 | |
|  *
 | |
|  * 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.
 | |
|  */
 | |
| #ifndef RK_AIQ_POOL_H
 | |
| #define RK_AIQ_POOL_H
 | |
| 
 | |
| #include <map>
 | |
| 
 | |
| #include "rk_aiq_algo_types.h"
 | |
| #include "rk_aiq_types_priv.h"
 | |
| #include "shared_item_pool.h"
 | |
| #include "thumbnails.h"
 | |
| 
 | |
| namespace RkCam {
 | |
| 
 | |
| typedef struct RKAiqAecExpInfoWrapper_s {
 | |
|     rk_aiq_exposure_params_t new_ae_exp;
 | |
|     RKAiqExpI2cParam_t exp_i2c_params;
 | |
|     AecProcResult_t      ae_proc_res_rk;
 | |
|     Sensor_dpcc_res_t SensorDpccInfo;
 | |
|     int algo_id;
 | |
|     RKAiqAecExpInfoWrapper_s() {
 | |
|         exp_i2c_params.bValid = false;
 | |
|     };
 | |
| } RKAiqAecExpInfoWrapper_t;
 | |
| 
 | |
| typedef struct RKAiqSensorExpInfo_t: public XCam::BufferData {
 | |
|     rk_aiq_exposure_params_t aecExpInfo;
 | |
|     Sensor_dpcc_res_t SensorDpccInfo;
 | |
|     RKAiqExpI2cParam_t* exp_i2c_params;
 | |
| } RKAiqSensorExpInfo_t;
 | |
| 
 | |
| typedef rk_aiq_isp_params_t<RKAiqAecExpInfoWrapper_t> rk_aiq_exposure_params_wrapper_t;
 | |
| typedef SharedItemPool<rk_aiq_exposure_params_wrapper_t> RkAiqExpParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_exposure_params_wrapper_t> RkAiqExpParamsProxy;
 | |
| 
 | |
| typedef RKAiqSensorExpInfo_t rk_aiq_sensor_exp_info_t;
 | |
| typedef SharedItemPool<rk_aiq_sensor_exp_info_t> RkAiqSensorExpParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_sensor_exp_info_t> RkAiqSensorExpParamsProxy;
 | |
| 
 | |
| typedef struct RkAiqSofInfoWrapper_s : public XCam::BufferData {
 | |
|     uint32_t sequence;
 | |
|     SmartPtr<RkAiqSensorExpParamsProxy> preExp;
 | |
|     SmartPtr<RkAiqSensorExpParamsProxy> curExp;
 | |
|     SmartPtr<RkAiqSensorExpParamsProxy> nxtExp;
 | |
|     int64_t sof;
 | |
|     void reset() {
 | |
|         preExp.release();
 | |
|         curExp.release();
 | |
|         nxtExp.release();
 | |
|     }
 | |
| } RkAiqSofInfoWrapper_t;
 | |
| 
 | |
| typedef struct RKAiqAfInfoWrapper_s : public XCam::BufferData {
 | |
|     struct timeval focusStartTim;
 | |
|     struct timeval focusEndTim;
 | |
|     struct timeval zoomStartTim;
 | |
|     struct timeval zoomEndTim;
 | |
|     int64_t sofTime;
 | |
|     int32_t focusCode;
 | |
|     int32_t zoomCode;
 | |
|     float angleZ;
 | |
|     uint32_t lowPassId;
 | |
|     int32_t lowPassFv4_4[RKAIQ_RAWAF_SUMDATA_NUM];
 | |
|     int32_t lowPassFv8_8[RKAIQ_RAWAF_SUMDATA_NUM];
 | |
|     int32_t lowPassHighLht[RKAIQ_RAWAF_SUMDATA_NUM];
 | |
|     int32_t lowPassHighLht2[RKAIQ_RAWAF_SUMDATA_NUM];
 | |
|     bool zoomCorrection;
 | |
|     bool focusCorrection;
 | |
| } RKAiqAfInfoWrapper_t;
 | |
| 
 | |
| typedef struct RkAiqPirisInfoWrapper_s {
 | |
|     int             step;
 | |
|     int             laststep;
 | |
|     bool            update;
 | |
|     struct timeval  StartTim;
 | |
|     struct timeval  EndTim;
 | |
| } RkAiqPirisInfoWrapper_t;
 | |
| 
 | |
| typedef struct RkAiqIrisInfoWrapper_s : public XCam::BufferData {
 | |
|     //TODO Merge
 | |
|     //RkAiqIrisType_t           IrisType;
 | |
|     RkAiqPirisInfoWrapper_t   PIris;
 | |
|     RkAiqDCIrisParam_t        DCIris;
 | |
|     RkAiqHDCIrisParam_t       HDCIris;
 | |
|     uint64_t                  sofTime;
 | |
| } RkAiqIrisInfoWrapper_t;
 | |
| 
 | |
| typedef struct RKAiqCpslInfoWrapper_s : public XCam::BufferData {
 | |
|     rk_aiq_flash_setting_t fl;
 | |
|     bool update_fl;
 | |
|     rk_aiq_ir_setting_t ir;
 | |
|     rk_aiq_flash_setting_t fl_ir;
 | |
|     bool update_ir;
 | |
|     uint32_t frame_id;
 | |
| } RKAiqCpslInfoWrapper_t;
 | |
| 
 | |
| typedef enum _cam3aResultType {
 | |
|     RESULT_TYPE_INVALID = -1,
 | |
|     RESULT_TYPE_EXPOSURE_PARAM,
 | |
|     RESULT_TYPE_AEC_PARAM,
 | |
|     RESULT_TYPE_HIST_PARAM,
 | |
|     RESULT_TYPE_AWB_PARAM,
 | |
|     RESULT_TYPE_AWBGAIN_PARAM,
 | |
|     RESULT_TYPE_AF_PARAM,
 | |
|     RESULT_TYPE_DPCC_PARAM,
 | |
|     RESULT_TYPE_MERGE_PARAM,
 | |
|     RESULT_TYPE_TMO_PARAM,
 | |
|     RESULT_TYPE_CCM_PARAM,
 | |
|     RESULT_TYPE_LSC_PARAM,
 | |
|     RESULT_TYPE_BLC_PARAM,
 | |
|     RESULT_TYPE_RAWNR_PARAM,
 | |
|     RESULT_TYPE_GIC_PARAM,
 | |
|     RESULT_TYPE_DEBAYER_PARAM,
 | |
|     RESULT_TYPE_LDCH_PARAM,
 | |
|     RESULT_TYPE_LUT3D_PARAM = 0x10,
 | |
|     RESULT_TYPE_DEHAZE_PARAM,
 | |
|     RESULT_TYPE_AGAMMA_PARAM,
 | |
|     RESULT_TYPE_ADEGAMMA_PARAM,
 | |
|     RESULT_TYPE_WDR_PARAM,
 | |
|     RESULT_TYPE_CSM_PARAM,
 | |
|     RESULT_TYPE_CGC_PARAM,
 | |
|     RESULT_TYPE_CONV422_PARAM,
 | |
|     RESULT_TYPE_YUVCONV_PARAM,
 | |
|     RESULT_TYPE_GAIN_PARAM,
 | |
|     RESULT_TYPE_CP_PARAM,
 | |
|     RESULT_TYPE_IE_PARAM,
 | |
|     RESULT_TYPE_MOTION_PARAM,
 | |
|     RESULT_TYPE_IRIS_PARAM,
 | |
|     RESULT_TYPE_CPSL_PARAM,
 | |
|     RESULT_TYPE_FLASH_PARAM,
 | |
| 
 | |
|     RESULT_TYPE_TNR_PARAM = 0x20,
 | |
|     RESULT_TYPE_YNR_PARAM,
 | |
|     RESULT_TYPE_UVNR_PARAM,
 | |
|     RESULT_TYPE_SHARPEN_PARAM,
 | |
|     RESULT_TYPE_EDGEFLT_PARAM,
 | |
|     RESULT_TYPE_FEC_PARAM,
 | |
|     RESULT_TYPE_ORB_PARAM,
 | |
| 
 | |
|     RESULT_TYPE_FOCUS_PARAM,
 | |
| 
 | |
|     // isp21 result
 | |
|     RESULT_TYPE_DRC_PARAM = 0x28,
 | |
|     // isp3x result
 | |
|     RESULT_TYPE_CAC_PARAM = 0x29,
 | |
|     RESULT_TYPE_AFD_PARAM = 0x2a,
 | |
|     RESULT_TYPE_MAX_PARAM,
 | |
| } cam3aResultType;
 | |
| 
 | |
| #if defined(__GNUC__) && !defined(__clang__)
 | |
| #pragma GCC diagnostic push
 | |
| #pragma GCC diagnostic ignored "-Wpedantic"
 | |
| #endif
 | |
| static const char* Cam3aResultType2Str[RESULT_TYPE_MAX_PARAM] = {
 | |
|     [RESULT_TYPE_EXPOSURE_PARAM]           = "EXPOSURE",
 | |
|     [RESULT_TYPE_AEC_PARAM]          = "AEC",
 | |
|     [RESULT_TYPE_HIST_PARAM]         = "HIST",
 | |
|     [RESULT_TYPE_AWB_PARAM]          = "AWB",
 | |
|     [RESULT_TYPE_AWBGAIN_PARAM]      = "AWB_GAIN",
 | |
|     [RESULT_TYPE_AF_PARAM]           = "AF",
 | |
|     [RESULT_TYPE_DPCC_PARAM]         = "DPCC",
 | |
|     [RESULT_TYPE_MERGE_PARAM]        = "MERGE",
 | |
|     [RESULT_TYPE_TMO_PARAM]          = "TMO",
 | |
|     [RESULT_TYPE_CCM_PARAM]          = "CCM",
 | |
|     [RESULT_TYPE_LSC_PARAM]          = "LSC",
 | |
|     [RESULT_TYPE_BLC_PARAM]          = "BLC",
 | |
|     [RESULT_TYPE_RAWNR_PARAM]        = "RAWNR",
 | |
|     [RESULT_TYPE_GIC_PARAM]          = "GIC",
 | |
|     [RESULT_TYPE_DEBAYER_PARAM]      = "DEBAYER",
 | |
|     [RESULT_TYPE_LDCH_PARAM]         = "LDCH",
 | |
|     [RESULT_TYPE_LUT3D_PARAM]        = "LUT3D",
 | |
|     [RESULT_TYPE_DEHAZE_PARAM]       = "DEHAZE",
 | |
|     [RESULT_TYPE_AGAMMA_PARAM]       = "AGAMMA",
 | |
|     [RESULT_TYPE_ADEGAMMA_PARAM]     = "ADEGAMMA",
 | |
|     [RESULT_TYPE_WDR_PARAM]          = "WDR",
 | |
|     [RESULT_TYPE_CSM_PARAM]          = "CSM",
 | |
|     [RESULT_TYPE_CGC_PARAM]          = "CGC",
 | |
|     [RESULT_TYPE_CONV422_PARAM]      = "CONV22",
 | |
|     [RESULT_TYPE_YUVCONV_PARAM]      = "YUVCONV",
 | |
|     [RESULT_TYPE_GAIN_PARAM]         = "GAIN",
 | |
|     [RESULT_TYPE_CP_PARAM]           = "CP",
 | |
|     [RESULT_TYPE_IE_PARAM]           = "IE",
 | |
|     [RESULT_TYPE_MOTION_PARAM]       = "MOTION",
 | |
|     [RESULT_TYPE_IRIS_PARAM]         = "IRIS",
 | |
|     [RESULT_TYPE_CPSL_PARAM]         = "CPSL",
 | |
|     [RESULT_TYPE_FLASH_PARAM]        = "FLASH",
 | |
|     [RESULT_TYPE_TNR_PARAM]          = "TNR",
 | |
|     [RESULT_TYPE_YNR_PARAM]          = "YNR",
 | |
|     [RESULT_TYPE_UVNR_PARAM]         = "UVNR",
 | |
|     [RESULT_TYPE_SHARPEN_PARAM]      = "SHARPEN",
 | |
|     [RESULT_TYPE_EDGEFLT_PARAM]      = "EDGEFLT",
 | |
|     [RESULT_TYPE_FEC_PARAM]          = "FEC",
 | |
|     [RESULT_TYPE_ORB_PARAM]          = "ORB",
 | |
|     [RESULT_TYPE_FOCUS_PARAM]        = "FOCUS",
 | |
|     [RESULT_TYPE_DRC_PARAM]          = "DRC",
 | |
|     [RESULT_TYPE_CAC_PARAM]          = "CAC",
 | |
|     [RESULT_TYPE_AFD_PARAM]          = "AFD",
 | |
| };
 | |
| #if defined(__GNUC__) && !defined(__clang__)
 | |
| #pragma GCC diagnostic pop
 | |
| #endif
 | |
| 
 | |
| typedef SharedItemBase cam3aResult;
 | |
| typedef std::list<SmartPtr< cam3aResult>> cam3aResultList;
 | |
| typedef std::map<int, std::list<SmartPtr<cam3aResult>>> cam3aResultMap;
 | |
| 
 | |
| typedef struct RkAiqThumbnailSrcWrapper_s : public XCam::BufferData {
 | |
|     SmartPtr<rkaiq_image_source_t> thumbnail;
 | |
| } RkAiqThumbnailSrcWrapper_t;
 | |
| 
 | |
| typedef SharedItemPool<RkAiqIspStats> RkAiqIspStatsIntPool;
 | |
| typedef SharedItemProxy<RkAiqIspStats> RkAiqIspStatsIntProxy;
 | |
| 
 | |
| typedef SharedItemPool<RkAiqAecStats> RkAiqAecStatsPool;
 | |
| typedef SharedItemProxy<RkAiqAecStats> RkAiqAecStatsProxy;
 | |
| 
 | |
| typedef SharedItemPool<RkAiqAwbStats> RkAiqAwbStatsPool;
 | |
| typedef SharedItemProxy<RkAiqAwbStats> RkAiqAwbStatsProxy;
 | |
| 
 | |
| typedef SharedItemPool<RkAiqAtmoStats> RkAiqAtmoStatsPool;
 | |
| typedef SharedItemProxy<RkAiqAtmoStats> RkAiqAtmoStatsProxy;
 | |
| 
 | |
| typedef SharedItemPool<RkAiqAdehazeStats> RkAiqAdehazeStatsPool;
 | |
| typedef SharedItemProxy<RkAiqAdehazeStats> RkAiqAdehazeStatsProxy;
 | |
| 
 | |
| typedef SharedItemPool<RkAiqAfStats> RkAiqAfStatsPool;
 | |
| typedef SharedItemProxy<RkAiqAfStats> RkAiqAfStatsProxy;
 | |
| 
 | |
| typedef SharedItemPool<RkAiqPdafStats> RkAiqPdafStatsPool;
 | |
| typedef SharedItemProxy<RkAiqPdafStats> RkAiqPdafStatsProxy;
 | |
| 
 | |
| typedef SharedItemPool<RkAiqSofInfoWrapper_t> RkAiqSofInfoWrapperPool;
 | |
| typedef SharedItemProxy<RkAiqSofInfoWrapper_t> RkAiqSofInfoWrapperProxy;
 | |
| 
 | |
| typedef SharedItemPool<RkAiqOrbStats> RkAiqOrbStatsPool;
 | |
| typedef SharedItemProxy<RkAiqOrbStats> RkAiqOrbStatsProxy;
 | |
| 
 | |
| typedef SharedItemPool<RkAiqThumbnailSrcWrapper_t> RkAiqThumbnailSrcPool;
 | |
| typedef SharedItemProxy<RkAiqThumbnailSrcWrapper_t> RkAiqThumbnailSrcProxy;
 | |
| 
 | |
| class RkAiqIspStats : public XCam::BufferData {
 | |
| public:
 | |
|     explicit RkAiqIspStats() {
 | |
|         aec_stats_valid      = false;
 | |
|         awb_stats_valid      = false;
 | |
|         awb_cfg_effect_valid = false;
 | |
|         af_stats_valid       = false;
 | |
|         atmo_stats_valid     = false;
 | |
|         adehaze_stats_valid  = false;
 | |
|         frame_id             = -1;
 | |
|     };
 | |
|     virtual ~RkAiqIspStats() {
 | |
|         reset();
 | |
|     };
 | |
|     void reset() {
 | |
|         AecStatsProxy.release();
 | |
|         AwbStatsProxy.release();
 | |
|         AfStatsProxy.release();
 | |
|         AtmoStatsProxy.release();
 | |
|         AdehazeStatsProxy.release();
 | |
|     }
 | |
|     SmartPtr<RkAiqAecStatsProxy> AecStatsProxy = nullptr;
 | |
|     bool aec_stats_valid;
 | |
|     SmartPtr<RkAiqAwbStatsProxy> AwbStatsProxy = nullptr;
 | |
|     bool awb_stats_valid;
 | |
|     bool awb_cfg_effect_valid;
 | |
|     SmartPtr<RkAiqAfStatsProxy> AfStatsProxy = nullptr;
 | |
|     bool af_stats_valid;
 | |
|     SmartPtr<RkAiqAtmoStatsProxy> AtmoStatsProxy = nullptr;
 | |
|     bool atmo_stats_valid;
 | |
|     SmartPtr<RkAiqAdehazeStatsProxy> AdehazeStatsProxy = nullptr;
 | |
|     bool adehaze_stats_valid;
 | |
|     uint32_t frame_id;
 | |
| 
 | |
| private:
 | |
|     XCAM_DEAD_COPY(RkAiqIspStats);
 | |
| };
 | |
| 
 | |
| typedef RKAiqAfInfoWrapper_t rk_aiq_af_info_wrapper_t;
 | |
| typedef RkAiqIrisInfoWrapper_t rk_aiq_iris_params_wrapper_t;
 | |
| 
 | |
| typedef SharedItemPool<rk_aiq_iris_params_wrapper_t> RkAiqIrisParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_iris_params_wrapper_t> RkAiqIrisParamsProxy;
 | |
| 
 | |
| typedef SharedItemPool<rk_aiq_af_info_wrapper_t> RkAiqAfInfoPool;
 | |
| typedef SharedItemProxy<rk_aiq_af_info_wrapper_t> RkAiqAfInfoProxy;
 | |
| typedef SharedItemPool<rk_aiq_focus_params_wrapper_t> RkAiqFocusParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_focus_params_wrapper_t> RkAiqFocusParamsProxy;
 | |
| typedef SharedItemPool<RKAiqCpslInfoWrapper_t> RkAiqCpslParamsPool;
 | |
| typedef SharedItemProxy<RKAiqCpslInfoWrapper_t> RkAiqCpslParamsProxy;
 | |
| 
 | |
| typedef SharedItemPool<rk_aiq_isp_aec_params_v20_t>         RkAiqIspAecParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_aec_params_v20_t>        RkAiqIspAecParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_hist_params_v20_t>        RkAiqIspHistParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_hist_params_v20_t>       RkAiqIspHistParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_awb_params_v20_t>         RkAiqIspAwbParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_awb_params_v20_t>        RkAiqIspAwbParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_awb_gain_params_v20_t>    RkAiqIspAwbGainParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_awb_gain_params_v20_t>   RkAiqIspAwbGainParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_af_params_v20_t>          RkAiqIspAfParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_af_params_v20_t>         RkAiqIspAfParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_dpcc_params_v20_t>        RkAiqIspDpccParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_dpcc_params_v20_t>       RkAiqIspDpccParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_merge_params_v20_t>       RkAiqIspMergeParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_merge_params_v20_t>      RkAiqIspMergeParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_tmo_params_v20_t>         RkAiqIspTmoParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_tmo_params_v20_t>        RkAiqIspTmoParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_ccm_params_v20_t>         RkAiqIspCcmParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_ccm_params_v20_t>        RkAiqIspCcmParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_lsc_params_v20_t>         RkAiqIspLscParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_lsc_params_v20_t>        RkAiqIspLscParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_blc_params_v20_t>         RkAiqIspBlcParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_blc_params_v20_t>        RkAiqIspBlcParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_rawnr_params_v20_t>       RkAiqIspRawnrParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_rawnr_params_v20_t>      RkAiqIspRawnrParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_gic_params_v20_t>         RkAiqIspGicParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_gic_params_v20_t>        RkAiqIspGicParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_debayer_params_v20_t>     RkAiqIspDebayerParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_debayer_params_v20_t>    RkAiqIspDebayerParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_ldch_params_v20_t>        RkAiqIspLdchParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_ldch_params_v20_t>       RkAiqIspLdchParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_lut3d_params_v20_t>       RkAiqIspLut3dParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_lut3d_params_v20_t>      RkAiqIspLut3dParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_dehaze_params_v20_t>      RkAiqIspDehazeParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_dehaze_params_v20_t>     RkAiqIspDehazeParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_agamma_params_v20_t>      RkAiqIspAgammaParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_agamma_params_v20_t>     RkAiqIspAgammaParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_adegamma_params_v20_t>    RkAiqIspAdegammaParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_adegamma_params_v20_t>   RkAiqIspAdegammaParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_wdr_params_v20_t>         RkAiqIspWdrParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_wdr_params_v20_t>        RkAiqIspWdrParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_csm_params_v20_t>         RkAiqIspCsmParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_csm_params_v20_t>        RkAiqIspCsmParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_cgc_params_v20_t>         RkAiqIspCgcParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_cgc_params_v20_t>        RkAiqIspCgcParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_conv422_params_v20_t>     RkAiqIspConv422ParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_conv422_params_v20_t>    RkAiqIspConv422ParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_yuvconv_params_v20_t>     RkAiqIspYuvconvParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_yuvconv_params_v20_t>    RkAiqIspYuvconvParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_gain_params_v20_t>        RkAiqIspGainParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_gain_params_v20_t>       RkAiqIspGainParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_cp_params_v20_t>          RkAiqIspCpParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_cp_params_v20_t>         RkAiqIspCpParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_ie_params_v20_t>          RkAiqIspIeParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_ie_params_v20_t>         RkAiqIspIeParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_motion_params_v20_t>      RkAiqIspMotionParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_motion_params_v20_t>     RkAiqIspMotionParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_md_params_v20_t>          RkAiqIspMdParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_md_params_v20_t>         RkAiqIspMdParamsProxy;
 | |
| 
 | |
| typedef SharedItemPool<rk_aiq_isp_tnr_params_v20_t>         RkAiqIspTnrParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_tnr_params_v20_t>        RkAiqIspTnrParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_ynr_params_v20_t>         RkAiqIspYnrParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_ynr_params_v20_t>        RkAiqIspYnrParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_uvnr_params_v20_t>        RkAiqIspUvnrParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_uvnr_params_v20_t>       RkAiqIspUvnrParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_sharpen_params_v20_t>     RkAiqIspSharpenParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_sharpen_params_v20_t>    RkAiqIspSharpenParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_edgeflt_params_v20_t>     RkAiqIspEdgefltParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_edgeflt_params_v20_t>    RkAiqIspEdgefltParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_fec_params_v20_t>         RkAiqIspFecParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_fec_params_v20_t>        RkAiqIspFecParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_orb_params_v20_t>         RkAiqIspOrbParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_orb_params_v20_t>        RkAiqIspOrbParamsProxy;
 | |
| 
 | |
| typedef SharedItemPool<rk_aiq_isp_afd_params_t>             RkAiqIspAfdParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_afd_params_t>            RkAiqIspAfdParamsProxy;
 | |
| 
 | |
| //v21 pools
 | |
| typedef SharedItemPool<rk_aiq_isp_awb_params_v21_t>         RkAiqIspAwbParamsPoolV21;
 | |
| typedef SharedItemProxy<rk_aiq_isp_awb_params_v21_t>        RkAiqIspAwbParamsProxyV21;
 | |
| typedef SharedItemPool<rk_aiq_isp_drc_params_v21_t>         RkAiqIspDrcParamsPool;
 | |
| typedef SharedItemProxy<rk_aiq_isp_drc_params_v21_t>        RkAiqIspDrcParamsProxy;
 | |
| typedef SharedItemPool<rk_aiq_isp_blc_params_v21_t>         RkAiqIspBlcParamsPoolV21;
 | |
| typedef SharedItemProxy<rk_aiq_isp_blc_params_v21_t>        RkAiqIspBlcParamsProxyV21;
 | |
| typedef SharedItemPool<rk_aiq_isp_baynr_params_v21_t>       RkAiqIspBaynrParamsPoolV21;
 | |
| typedef SharedItemProxy<rk_aiq_isp_baynr_params_v21_t>      RkAiqIspBaynrParamsProxyV21;
 | |
| typedef SharedItemPool<rk_aiq_isp_bay3d_params_v21_t>       RkAiqIspBa3dParamsPoolV21;
 | |
| typedef SharedItemProxy<rk_aiq_isp_bay3d_params_v21_t>      RkAiqIspBa3dParamsProxyV21;
 | |
| typedef SharedItemPool<rk_aiq_isp_ynr_params_v21_t>         RkAiqIspYnrParamsPoolV21;
 | |
| typedef SharedItemProxy<rk_aiq_isp_ynr_params_v21_t>        RkAiqIspYnrParamsProxyV21;
 | |
| typedef SharedItemPool<rk_aiq_isp_cnr_params_v21_t>         RkAiqIspCnrParamsPoolV21;
 | |
| typedef SharedItemProxy<rk_aiq_isp_cnr_params_v21_t>        RkAiqIspCnrParamsProxyV21;
 | |
| typedef SharedItemPool<rk_aiq_isp_sharpen_params_v21_t>     RkAiqIspSharpenParamsPoolV21;
 | |
| typedef SharedItemProxy<rk_aiq_isp_sharpen_params_v21_t>    RkAiqIspSharpenParamsProxyV21;
 | |
| 
 | |
| //v3x pools
 | |
| typedef SharedItemPool<rk_aiq_isp_awb_params_v3x_t>         RkAiqIspAwbParamsPoolV3x;
 | |
| typedef SharedItemProxy<rk_aiq_isp_awb_params_v3x_t>        RkAiqIspAwbParamsProxyV3x;
 | |
| typedef SharedItemPool<rk_aiq_isp_af_params_v3x_t>          RkAiqIspAfParamsPoolV3x;
 | |
| typedef SharedItemProxy<rk_aiq_isp_af_params_v3x_t>         RkAiqIspAfParamsProxyV3x;
 | |
| typedef SharedItemPool<rk_aiq_isp_baynr_params_v3x_t>       RkAiqIspBaynrParamsPoolV3x;
 | |
| typedef SharedItemProxy<rk_aiq_isp_baynr_params_v3x_t>      RkAiqIspBaynrParamsProxyV3x;
 | |
| typedef SharedItemPool<rk_aiq_isp_bay3d_params_v3x_t>       RkAiqIspBa3dParamsPoolV3x;
 | |
| typedef SharedItemProxy<rk_aiq_isp_bay3d_params_v3x_t>      RkAiqIspBa3dParamsProxyV3x;
 | |
| typedef SharedItemPool<rk_aiq_isp_ynr_params_v3x_t>         RkAiqIspYnrParamsPoolV3x;
 | |
| typedef SharedItemProxy<rk_aiq_isp_ynr_params_v3x_t>        RkAiqIspYnrParamsProxyV3x;
 | |
| typedef SharedItemPool<rk_aiq_isp_cnr_params_v3x_t>         RkAiqIspCnrParamsPoolV3x;
 | |
| typedef SharedItemProxy<rk_aiq_isp_cnr_params_v3x_t>        RkAiqIspCnrParamsProxyV3x;
 | |
| typedef SharedItemPool<rk_aiq_isp_sharpen_params_v3x_t>     RkAiqIspSharpenParamsPoolV3x;
 | |
| typedef SharedItemProxy<rk_aiq_isp_sharpen_params_v3x_t>    RkAiqIspSharpenParamsProxyV3x;
 | |
| typedef SharedItemPool<rk_aiq_isp_cac_params_v3x_t>         RkAiqIspCacParamsPoolV3x;
 | |
| typedef SharedItemProxy<rk_aiq_isp_cac_params_v3x_t>        RkAiqIspCacParamsProxyV3x;
 | |
| typedef SharedItemPool<rk_aiq_isp_gain_params_v3x_t>        RkAiqIspGainParamsPoolV3x;
 | |
| typedef SharedItemProxy<rk_aiq_isp_gain_params_v3x_t>       RkAiqIspGainParamsProxyV3x;
 | |
| typedef SharedItemPool<rk_aiq_isp_tnr_params_v3x_t>         RkAiqIspTnrParamsPoolV3x;
 | |
| typedef SharedItemProxy<rk_aiq_isp_tnr_params_v3x_t>        RkAiqIspTnrParamsProxyV3x;
 | |
| 
 | |
| //v32 pools
 | |
| typedef SharedItemPool<rk_aiq_isp_blc_params_v32_t>         RkAiqIspBlcParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_blc_params_v32_t>        RkAiqIspBlcParamsProxyV32;
 | |
| typedef SharedItemPool<rk_aiq_isp_baynr_params_v32_t>       RkAiqIspBaynrParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_baynr_params_v32_t>      RkAiqIspBaynrParamsProxyV32;
 | |
| typedef SharedItemPool<rk_aiq_isp_cac_params_v32_t>         RkAiqIspCacParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_cac_params_v32_t>        RkAiqIspCacParamsProxyV32;
 | |
| typedef SharedItemPool<rk_aiq_isp_debayer_params_v32_t>     RkAiqIspDebayerParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_debayer_params_v32_t>    RkAiqIspDebayerParamsProxyV32;
 | |
| typedef SharedItemPool<rk_aiq_isp_ccm_params_v32_t>         RkAiqIspCcmParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_ccm_params_v32_t>        RkAiqIspCcmParamsProxyV32;
 | |
| typedef SharedItemPool<rk_aiq_isp_ldch_params_v32_t>        RkAiqIspLdchParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_ldch_params_v32_t>       RkAiqIspLdchParamsProxyV32;
 | |
| typedef SharedItemPool<rk_aiq_isp_ynr_params_v32_t>         RkAiqIspYnrParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_ynr_params_v32_t>        RkAiqIspYnrParamsProxyV32;
 | |
| typedef SharedItemPool<rk_aiq_isp_cnr_params_v32_t>         RkAiqIspCnrParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_cnr_params_v32_t>        RkAiqIspCnrParamsProxyV32;
 | |
| typedef SharedItemPool<rk_aiq_isp_sharp_params_v32_t>       RkAiqIspSharpParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_sharp_params_v32_t>      RkAiqIspSharpParamsProxyV32;
 | |
| typedef SharedItemPool<rk_aiq_isp_awb_params_v32_t>         RkAiqIspAwbParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_awb_params_v32_t>        RkAiqIspAwbParamsProxyV32;
 | |
| typedef SharedItemPool<rk_aiq_isp_af_params_v32_t>          RkAiqIspAfParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_af_params_v32_t>         RkAiqIspAfParamsProxyV32;
 | |
| typedef SharedItemPool<rk_aiq_isp_tnr_params_v32_t>         RkAiqIspTnrParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_tnr_params_v32_t>        RkAiqIspTnrParamsProxyV32;
 | |
| typedef SharedItemPool<rk_aiq_isp_awb_gain_params_v32_t>    RkAiqIspAwbGainParamsPoolV32;
 | |
| typedef SharedItemProxy<rk_aiq_isp_awb_gain_params_v32_t>   RkAiqIspAwbGainParamsProxyV32;
 | |
| 
 | |
| typedef SharedItemPool<rk_aiq_isp_af_params_v32_lite_t>     RkAiqIspAfParamsPoolV32Lite;
 | |
| typedef SharedItemProxy<rk_aiq_isp_af_params_v32_lite_t>    RkAiqIspAfParamsProxyV32Lite;
 | |
| 
 | |
| class RkAiqFullParams : public XCam::BufferData {
 | |
| public:
 | |
|     explicit RkAiqFullParams()
 | |
|         : mFrmId(0)
 | |
|         , mExposureParams(NULL)
 | |
|         , mFocusParams(NULL)
 | |
|         , mIrisParams(NULL)
 | |
|         , mCpslParams(NULL)
 | |
| 
 | |
|         , mAecParams(NULL)
 | |
|         , mHistParams(NULL)
 | |
|         , mAwbParams(NULL)
 | |
|         , mAwbGainParams(NULL)
 | |
|         , mAfParams(NULL)
 | |
|         , mDpccParams(NULL)
 | |
|         , mMergeParams(NULL)
 | |
|         , mTmoParams(NULL)
 | |
|         , mCcmParams(NULL)
 | |
|         , mLscParams(NULL)
 | |
|         , mBlcParams(NULL)
 | |
|         , mRawnrParams(NULL)
 | |
|         , mGicParams(NULL)
 | |
|         , mDebayerParams(NULL)
 | |
|         , mLdchParams(NULL)
 | |
|         , mLut3dParams(NULL)
 | |
|         , mDehazeParams(NULL)
 | |
|         , mAgammaParams(NULL)
 | |
|         , mWdrParams(NULL)
 | |
|         , mCsmParams(NULL)
 | |
|         , mCgcParams(NULL)
 | |
|         , mConv422Params(NULL)
 | |
|         , mYuvconvParams(NULL)
 | |
|         , mGainParams(NULL)
 | |
|         , mCpParams(NULL)
 | |
|         , mIeParams(NULL)
 | |
|         , mMotionParams(NULL)
 | |
|         , mMdParams(NULL)
 | |
| 
 | |
|         , mTnrParams(NULL)
 | |
|         , mYnrParams(NULL)
 | |
|         , mUvnrParams(NULL)
 | |
|         , mSharpenParams(NULL)
 | |
|         , mEdgefltParams(NULL)
 | |
|         , mFecParams(NULL)
 | |
|         , mOrbParams(NULL)
 | |
|           // TODO: change full params to list
 | |
|           // V21 differential modules
 | |
|         , mAwbV21Params(NULL)
 | |
|         , mDrcParams(NULL)
 | |
|         , mBlcV21Params(NULL)
 | |
|         , mBaynrV21Params(NULL)
 | |
|           // , mBa3dParams(NULL)
 | |
|         , mYnrV21Params(NULL)
 | |
|         , mCnrV21Params(NULL)
 | |
|         , mSharpenV21Params(NULL)
 | |
|         , mAwbV3xParams(NULL)
 | |
|         , mAfV3xParams(NULL)
 | |
|         , mBaynrV3xParams(NULL)
 | |
|         , mYnrV3xParams(NULL)
 | |
|         , mCnrV3xParams(NULL)
 | |
|         , mSharpenV3xParams(NULL)
 | |
|         , mCacV3xParams(NULL)
 | |
|         , mGainV3xParams(NULL)
 | |
|         , mTnrV3xParams(NULL)
 | |
|         , mBlcV32Params(NULL)
 | |
|         , mBaynrV32Params(NULL)
 | |
|         , mCacV32Params(NULL)
 | |
|         , mDebayerV32Params(NULL)
 | |
|         , mCcmV32Params(NULL)
 | |
|         , mLdchV32Params(NULL)
 | |
|         , mYnrV32Params(NULL)
 | |
|         , mCnrV32Params(NULL)
 | |
|         , mSharpV32Params(NULL)
 | |
|         , mAwbV32Params(NULL)
 | |
|         , mAfV32Params(NULL)
 | |
|         , mTnrV32Params(NULL)
 | |
|         , mAwbGainV32Params(NULL)
 | |
|         , mAfV32LiteParams(NULL)
 | |
|         , mAfdParams(NULL) {
 | |
|     };
 | |
|     ~RkAiqFullParams() {
 | |
|         reset();
 | |
|     };
 | |
| 
 | |
|     void reset() {
 | |
| #if 0// Do not release to save cpu usage
 | |
|         // MUST release, cause some malloc was made in mExposureParams
 | |
|         mExposureParams.release();
 | |
|         mFocusParams.release();
 | |
|         mIrisParams.release();
 | |
|         mCpslParams.release();
 | |
| 
 | |
|         mAecParams.release();
 | |
|         mHistParams.release();
 | |
|         mAwbParams.release();
 | |
|         mAwbGainParams.release();
 | |
|         mAfParams.release();
 | |
|         mDpccParams.release();
 | |
|         mMergeParams.release();
 | |
|         mTmoParams.release();
 | |
|         mCcmParams.release();
 | |
|         mLscParams.release();
 | |
|         mBlcParams.release();
 | |
|         mRawnrParams.release();
 | |
|         mGicParams.release();
 | |
|         mDebayerParams.release();
 | |
|         mLdchParams.release();
 | |
|         mLut3dParams.release();
 | |
|         mDehazeParams.release();
 | |
|         mAgammaParams.release();
 | |
|         mAdegammaParams.release();
 | |
|         mWdrParams.release();
 | |
|         mCsmParams.release();
 | |
|         mCgcParams.release();
 | |
|         mConv422Params.release();
 | |
|         mYuvconvParams.release();
 | |
|         mGainParams.release();
 | |
|         mCpParams.release();
 | |
|         mIeParams.release();
 | |
|         mMotionParams.release();
 | |
|         mMdParams.release();
 | |
| 
 | |
|         mTnrParams.release();
 | |
|         mYnrParams.release();
 | |
|         mUvnrParams.release();
 | |
|         mSharpenParams.release();
 | |
|         mEdgefltParams.release();
 | |
|         mFecParams.release();
 | |
|         mOrbParams.release();
 | |
| 
 | |
|         // TODO: change full params to list
 | |
|         // V21 differential modules
 | |
|         mAwbV21Params.release();
 | |
|         mDrcParams.release();
 | |
|         mBlcV21Params.release();
 | |
|         mBaynrV21Params.release();
 | |
|         // mBa3dParams.release();
 | |
|         mYnrV21Params.release();
 | |
|         mCnrV21Params.release();
 | |
|         mSharpenV21Params.release();
 | |
| 
 | |
|         // TODO: change full params to list
 | |
|         // V3x differential modules
 | |
|         mAwbV3xParams.release();
 | |
|         mAfV3xParams.release();
 | |
|         mBaynrV3xParams.release();
 | |
|         mYnrV3xParams.release();
 | |
|         mCnrV3xParams.release();
 | |
|         mSharpenV3xParams.release();
 | |
|         mCacV3xParams.release();
 | |
|         mGainV3xParams.release();
 | |
|         mTnrV3xParams.release();
 | |
| 
 | |
|         // V32 differential modules
 | |
|         mBlcV32Params.release();
 | |
|         mBaynrV32Params.release();
 | |
|         mCacV32Params.release();
 | |
|         mDebayerV32Params.release();
 | |
|         mCcmV32Params.release();
 | |
|         mLdchV32Params.release();
 | |
|         mYnrV32Params.release();
 | |
|         mCnrV32Params.release();
 | |
|         mSharpV32Params.release();
 | |
|         mAwbV32Params.release();
 | |
|         mAfV32Params.release();
 | |
|         mTnrV32Params.release();
 | |
|         mAwbGainV32Params.release();
 | |
| 
 | |
|         // V32 lite differential modules
 | |
|         mAfV32LiteParams.release();
 | |
| 
 | |
|         mAfdParams.release();
 | |
| #endif
 | |
|     };
 | |
|     uint32_t                                mFrmId;
 | |
|     SmartPtr<RkAiqExpParamsProxy>           mExposureParams;
 | |
|     SmartPtr<RkAiqFocusParamsProxy>         mFocusParams;
 | |
|     SmartPtr<RkAiqIrisParamsProxy>          mIrisParams;
 | |
|     SmartPtr<RkAiqCpslParamsProxy>          mCpslParams;
 | |
|     SmartPtr<RkAiqIspAecParamsProxy>        mAecParams;
 | |
|     SmartPtr<RkAiqIspHistParamsProxy>       mHistParams;
 | |
|     SmartPtr<RkAiqIspAwbParamsProxy>        mAwbParams;
 | |
|     SmartPtr<RkAiqIspAwbGainParamsProxy>    mAwbGainParams;
 | |
|     SmartPtr<RkAiqIspAfParamsProxy>         mAfParams;
 | |
|     SmartPtr<RkAiqIspDpccParamsProxy>       mDpccParams;
 | |
|     // SmartPtr<RkAiqIspHdrParamsProxy>        mHdrParams;
 | |
|     SmartPtr<RkAiqIspMergeParamsProxy>      mMergeParams;
 | |
|     SmartPtr<RkAiqIspTmoParamsProxy>        mTmoParams;
 | |
|     SmartPtr<RkAiqIspCcmParamsProxy>        mCcmParams;
 | |
|     SmartPtr<RkAiqIspLscParamsProxy>        mLscParams;
 | |
|     SmartPtr<RkAiqIspBlcParamsProxy>        mBlcParams;
 | |
|     SmartPtr<RkAiqIspRawnrParamsProxy>      mRawnrParams;
 | |
|     SmartPtr<RkAiqIspGicParamsProxy>        mGicParams;
 | |
|     SmartPtr<RkAiqIspDebayerParamsProxy>    mDebayerParams;
 | |
|     SmartPtr<RkAiqIspLdchParamsProxy>       mLdchParams;
 | |
|     SmartPtr<RkAiqIspLut3dParamsProxy>      mLut3dParams;
 | |
|     SmartPtr<RkAiqIspDehazeParamsProxy>     mDehazeParams;
 | |
|     SmartPtr<RkAiqIspAgammaParamsProxy>     mAgammaParams;
 | |
|     SmartPtr<RkAiqIspAdegammaParamsProxy>   mAdegammaParams;
 | |
|     SmartPtr<RkAiqIspWdrParamsProxy>        mWdrParams;
 | |
|     SmartPtr<RkAiqIspCsmParamsProxy>        mCsmParams;
 | |
|     SmartPtr<RkAiqIspCgcParamsProxy>        mCgcParams;
 | |
|     SmartPtr<RkAiqIspConv422ParamsProxy>    mConv422Params;
 | |
|     SmartPtr<RkAiqIspYuvconvParamsProxy>    mYuvconvParams;
 | |
|     SmartPtr<RkAiqIspGainParamsProxy>       mGainParams;
 | |
|     SmartPtr<RkAiqIspCpParamsProxy>         mCpParams;
 | |
|     SmartPtr<RkAiqIspIeParamsProxy>         mIeParams;
 | |
|     SmartPtr<RkAiqIspMotionParamsProxy>     mMotionParams;
 | |
|     SmartPtr<RkAiqIspMdParamsProxy>         mMdParams;
 | |
| 
 | |
|     SmartPtr<RkAiqIspTnrParamsProxy>        mTnrParams;
 | |
|     SmartPtr<RkAiqIspYnrParamsProxy>        mYnrParams;
 | |
|     SmartPtr<RkAiqIspUvnrParamsProxy>       mUvnrParams;
 | |
|     SmartPtr<RkAiqIspSharpenParamsProxy>    mSharpenParams;
 | |
|     SmartPtr<RkAiqIspEdgefltParamsProxy>    mEdgefltParams;
 | |
|     SmartPtr<RkAiqIspFecParamsProxy>        mFecParams;
 | |
|     SmartPtr<RkAiqIspOrbParamsProxy>        mOrbParams;
 | |
| 
 | |
|     // TODO: change full params to list
 | |
|     // V21 differential modules
 | |
|     SmartPtr<RkAiqIspAwbParamsProxyV21>     mAwbV21Params;
 | |
|     SmartPtr<RkAiqIspDrcParamsProxy>        mDrcParams;
 | |
|     SmartPtr<RkAiqIspBlcParamsProxyV21>     mBlcV21Params;
 | |
|     SmartPtr<RkAiqIspBaynrParamsProxyV21>   mBaynrV21Params;
 | |
|     //SmartPtr<RkAiqIspBa3dParamsProxyV21>    mBa3dParams;
 | |
|     SmartPtr<RkAiqIspYnrParamsProxyV21>     mYnrV21Params;
 | |
|     SmartPtr<RkAiqIspCnrParamsProxyV21>     mCnrV21Params;
 | |
|     SmartPtr<RkAiqIspSharpenParamsProxyV21> mSharpenV21Params;
 | |
|     // V3x differential modules
 | |
|     SmartPtr<RkAiqIspAwbParamsProxyV3x>     mAwbV3xParams;
 | |
|     SmartPtr<RkAiqIspAfParamsProxyV3x>      mAfV3xParams;
 | |
|     SmartPtr<RkAiqIspBaynrParamsProxyV3x>   mBaynrV3xParams;
 | |
|     SmartPtr<RkAiqIspYnrParamsProxyV3x>     mYnrV3xParams;
 | |
|     SmartPtr<RkAiqIspCnrParamsProxyV3x>     mCnrV3xParams;
 | |
|     SmartPtr<RkAiqIspSharpenParamsProxyV3x> mSharpenV3xParams;
 | |
|     SmartPtr<RkAiqIspCacParamsProxyV3x>     mCacV3xParams;
 | |
|     SmartPtr<RkAiqIspGainParamsProxyV3x>    mGainV3xParams;
 | |
|     SmartPtr<RkAiqIspTnrParamsProxyV3x>     mTnrV3xParams;
 | |
| 
 | |
|     // V32 differential modules
 | |
|     SmartPtr<RkAiqIspBlcParamsProxyV32>      mBlcV32Params;
 | |
|     SmartPtr<RkAiqIspBaynrParamsProxyV32>    mBaynrV32Params;
 | |
|     SmartPtr<RkAiqIspCacParamsProxyV32>      mCacV32Params;
 | |
|     SmartPtr<RkAiqIspDebayerParamsProxyV32>  mDebayerV32Params;
 | |
|     SmartPtr<RkAiqIspCcmParamsProxyV32>      mCcmV32Params;
 | |
|     SmartPtr<RkAiqIspLdchParamsProxyV32>     mLdchV32Params;
 | |
|     SmartPtr<RkAiqIspYnrParamsProxyV32>      mYnrV32Params;
 | |
|     SmartPtr<RkAiqIspCnrParamsProxyV32>      mCnrV32Params;
 | |
|     SmartPtr<RkAiqIspSharpParamsProxyV32>    mSharpV32Params;
 | |
|     SmartPtr<RkAiqIspAwbParamsProxyV32>      mAwbV32Params;
 | |
|     SmartPtr<RkAiqIspAfParamsProxyV32>       mAfV32Params;
 | |
|     SmartPtr<RkAiqIspTnrParamsProxyV32>      mTnrV32Params;
 | |
|     SmartPtr<RkAiqIspAwbGainParamsProxyV32>  mAwbGainV32Params;
 | |
| 
 | |
|     // V32 lite differential modules
 | |
|     SmartPtr<RkAiqIspAfParamsProxyV32Lite>   mAfV32LiteParams;
 | |
| 
 | |
|     SmartPtr<RkAiqIspAfdParamsProxy>         mAfdParams;
 | |
| private:
 | |
|     XCAM_DEAD_COPY (RkAiqFullParams);
 | |
| };
 | |
| 
 | |
| typedef SharedItemPool<RkAiqFullParams> RkAiqFullParamsPool;
 | |
| typedef SharedItemProxy<RkAiqFullParams> RkAiqFullParamsProxy;
 | |
| 
 | |
| template<class T>
 | |
| struct AlgoRstShared: public XCam::VideoBuffer {
 | |
| public:
 | |
|     AlgoRstShared () : VideoBuffer() { }
 | |
|     typedef T value_type;
 | |
|     T   result;
 | |
|     virtual uint8_t* map() override {
 | |
|         return (uint8_t*)(&result);
 | |
|     }
 | |
|     virtual bool unmap () override { return false; }
 | |
|     virtual int get_fd () override { return -1; }
 | |
| };
 | |
| 
 | |
| using RkAiqAlgoPreResAeIntShared = AlgoRstShared<RkAiqAlgoPreResAe>;
 | |
| //using RkAiqAlgoProcResAeIntShared = AlgoRstShared<RkAiqAlgoProcResAe>;
 | |
| using RkAiqAlgoProcResAwbIntShared = AlgoRstShared<RkAiqAlgoProcResAwbShared_t>;
 | |
| using RkAiqAlgoProcResAmdIntShared = AlgoRstShared<RkAiqAlgoProcResAmd>;
 | |
| using RkAiqAlgoProcResAblcIntShared = AlgoRstShared<RkAiqAlgoProcResAblc>;
 | |
| using RkAiqAlgoProcResAblcV32IntShared = AlgoRstShared<RkAiqAlgoProcResAblcV32>;
 | |
| using RkAiqAlgoProcResAynrV3IntShared  = AlgoRstShared<RkAiqAlgoProcResAynrV3>;
 | |
| using RkAiqAlgoProcResAynrV22IntShared = AlgoRstShared<RkAiqAlgoProcResAynrV22>;
 | |
| 
 | |
| typedef SharedItemPool<AecProcResult_t> RkAiqAeProcResultPool;
 | |
| typedef SharedItemProxy<AecProcResult_t> RkAiqAeProcResultProxy;
 | |
| 
 | |
| typedef SharedItemPool<rkisp_effect_params> RkAiqIspEffParamsPool;
 | |
| typedef SharedItemProxy<rkisp_effect_params> RkAiqIspEffParamsProxy;
 | |
| 
 | |
| }
 | |
| 
 | |
| #endif //RK_AIQ_POOL_H
 |