/*
|
* Copyright (c) 2019 Rockchip 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.
|
*
|
*/
|
#ifndef RK_AIQ_POOL_H
|
#define RK_AIQ_POOL_H
|
|
#include <map>
|
|
#include "rk_aiq_types_priv.h"
|
#include "shared_item_pool.h"
|
|
namespace RkCam {
|
|
typedef struct RKAiqAecExpInfoWrapper_s : public SharedItemData {
|
RKAiqAecExpInfo_t aecExpInfo;
|
RKAiqAecExpInfo_t exp_tbl[MAX_AEC_EFFECT_FNUM + 1];
|
Sensor_dpcc_res_t SensorDpccInfo;
|
int exp_tbl_size;
|
int algo_id;
|
struct RKAiqAecExpInfoWrapper_s& operator=(const struct RKAiqAecExpInfoWrapper_s& set)
|
{
|
this->aecExpInfo = set.aecExpInfo;
|
this->SensorDpccInfo = set.SensorDpccInfo;
|
this->exp_tbl_size = set.exp_tbl_size;
|
this->algo_id = set.algo_id;
|
memcpy(this->exp_tbl, set.exp_tbl, sizeof(set.exp_tbl));
|
return *this;
|
}
|
} RKAiqAecExpInfoWrapper_t;
|
|
typedef struct RKAiqAfInfoWrapper_s : public SharedItemData {
|
struct timeval focusStartTim;
|
struct timeval focusEndTim;
|
struct timeval zoomStartTim;
|
struct timeval zoomEndTim;
|
int64_t sofTime;
|
int32_t focusCode;
|
int32_t zoomCode;
|
} RKAiqAfInfoWrapper_t;
|
|
typedef struct RkAiqPirisInfoWrapper_s : public SharedItemData {
|
int step;
|
int laststep;
|
bool update;
|
struct timeval StartTim;
|
struct timeval EndTim;
|
} RkAiqPirisInfoWrapper_t;
|
|
typedef struct RkAiqIrisInfoWrapper_s : public SharedItemData {
|
//TODO Merge
|
//RkAiqIrisType_t IrisType;
|
RkAiqPirisInfoWrapper_t PIris;
|
RkAiqDCIrisParam_t DCIris;
|
uint64_t sofTime;
|
} RkAiqIrisInfoWrapper_t;
|
|
typedef struct RKAiqCpslInfoWrapper_s : public SharedItemData {
|
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;
|
} RKAiqCpslInfoWrapper_t;
|
|
typedef enum RkAiqParamsType_e {
|
RK_AIQ_PARAMS_ALL,
|
RK_AIQ_PARAMS_MEAS,
|
RK_AIQ_PARAMS_OTHER,
|
} RkAiqParamsType_t;
|
|
typedef enum _cam3aResultType {
|
RESULT_TYPE_INVALID = -1,
|
RESULT_TYPE_EXPOSURE,
|
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,
|
RESULT_TYPE_MAX_PARAM,
|
} cam3aResultType;
|
|
static const char* Cam3aResultType2Str[RESULT_TYPE_MAX_PARAM] = {
|
[RESULT_TYPE_EXPOSURE] = "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",
|
};
|
|
typedef SharedItemBase cam3aResult;
|
typedef std::list<SmartPtr< cam3aResult>> cam3aResultList;
|
typedef std::map<int, std::list<SmartPtr<cam3aResult>>> cam3aResultMap;
|
|
typedef RKAiqAecExpInfoWrapper_t rk_aiq_exposure_params_wrapper_t;
|
typedef RKAiqAfInfoWrapper_t rk_aiq_af_info_wrapper_t;
|
typedef RkAiqIrisInfoWrapper_t rk_aiq_iris_params_wrapper_t;
|
|
typedef SharedItemPool<rk_aiq_exposure_params_wrapper_t> RkAiqExpParamsPool;
|
typedef SharedItemProxy<rk_aiq_exposure_params_wrapper_t> RkAiqExpParamsProxy;
|
typedef SharedItemPool<rk_aiq_iris_params_wrapper_t> RkAiqIrisParamsPool;
|
typedef SharedItemProxy<rk_aiq_iris_params_wrapper_t> RkAiqIrisParamsProxy;
|
typedef SharedItemPool<rk_aiq_isp_params_base_t> RkAiqIspBasePool;
|
typedef SharedItemProxy<rk_aiq_isp_params_base_t> RkAiqIspBaseProxy;
|
|
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;
|
|
//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> RkAiqIspDrcParamsPoolV21;
|
typedef SharedItemProxy<rk_aiq_isp_drc_params_v21_t> RkAiqIspDrcParamsProxyV21;
|
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_gic_params_v21_t> RkAiqIspGicParamsPoolV21;
|
typedef SharedItemProxy<rk_aiq_isp_gic_params_v21_t> RkAiqIspGicParamsProxyV21;
|
typedef SharedItemPool<rk_aiq_isp_dehaze_params_v21_t> RkAiqIspDehazeParamsPoolV21;
|
typedef SharedItemProxy<rk_aiq_isp_dehaze_params_v21_t> RkAiqIspDehazeParamsProxyV21;
|
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;
|
|
typedef class rk_aiq_isp_params_full_v20_s : public SharedItemData {
|
public:
|
SmartPtr<RkAiqIspAecParamsProxy> ae;
|
SmartPtr<RkAiqIspHistParamsProxy> hist;
|
SmartPtr<RkAiqIspAwbParamsProxy> wb;
|
SmartPtr<RkAiqIspAwbGainParamsProxy> wb_gain;
|
SmartPtr<RkAiqIspAfParamsProxy> af;
|
SmartPtr<RkAiqIspDpccParamsProxy> dpcc;
|
SmartPtr<RkAiqIspMergeParamsProxy> merge;
|
SmartPtr<RkAiqIspTmoParamsProxy> tmo;
|
SmartPtr<RkAiqIspCcmParamsProxy> ccm;
|
SmartPtr<RkAiqIspLscParamsProxy> lsc;
|
SmartPtr<RkAiqIspBlcParamsProxy> blc;
|
SmartPtr<RkAiqIspRawnrParamsProxy> rawnr;
|
SmartPtr<RkAiqIspGicParamsProxy> gic;
|
SmartPtr<RkAiqIspDebayerParamsProxy> debayer;
|
SmartPtr<RkAiqIspLdchParamsProxy> ldch;
|
SmartPtr<RkAiqIspLut3dParamsProxy> lut3d;
|
SmartPtr<RkAiqIspDehazeParamsProxy> dehaze;
|
SmartPtr<RkAiqIspAgammaParamsProxy> gamma;
|
SmartPtr<RkAiqIspAdegammaParamsProxy> degamma;
|
SmartPtr<RkAiqIspWdrParamsProxy> wdr;
|
SmartPtr<RkAiqIspCsmParamsProxy> csm;
|
SmartPtr<RkAiqIspCgcParamsProxy> cgc;
|
SmartPtr<RkAiqIspConv422ParamsProxy> conv22;
|
SmartPtr<RkAiqIspYuvconvParamsProxy> yuvcon;
|
SmartPtr<RkAiqIspGainParamsProxy> gain;
|
SmartPtr<RkAiqIspCpParamsProxy> cp;
|
SmartPtr<RkAiqIspIeParamsProxy> ie;
|
SmartPtr<RkAiqIspMotionParamsProxy> motion;
|
SmartPtr<RkAiqIspMdParamsProxy> md;
|
SmartPtr<RkAiqIspTnrParamsProxy> tnr;
|
SmartPtr<RkAiqIspYnrParamsProxy> ynr;
|
SmartPtr<RkAiqIspUvnrParamsProxy> uvnr;
|
SmartPtr<RkAiqIspSharpenParamsProxy> sharpen;
|
SmartPtr<RkAiqIspEdgefltParamsProxy> edgeflt;
|
SmartPtr<RkAiqIspFecParamsProxy> fec;
|
SmartPtr<RkAiqIspOrbParamsProxy> orb;
|
void reset() {
|
ae.release();
|
hist.release();
|
wb.release();
|
wb_gain.release();
|
af.release();
|
dpcc.release();
|
merge.release();
|
tmo.release();
|
ccm.release();
|
lsc.release();
|
blc.release();
|
rawnr.release();
|
gic.release();
|
debayer.release();
|
ldch.release();
|
lut3d.release();
|
dehaze.release();
|
gamma.release();
|
degamma.release();
|
wdr.release();
|
csm.release();
|
cgc.release();
|
conv22.release();
|
yuvcon.release();
|
gain.release();
|
cp.release();
|
ie.release();
|
motion.release();
|
md.release();
|
tnr.release();
|
ynr.release();
|
uvnr.release();
|
sharpen.release();
|
edgeflt.release();
|
fec.release();
|
orb.release();
|
};
|
} rk_aiq_isp_params_full_v20_t;
|
|
// v21 params struct
|
typedef struct : public SharedItemData {
|
SmartPtr<RkAiqIspAecParamsProxy> ae;
|
SmartPtr<RkAiqIspHistParamsProxy> hist;
|
SmartPtr<RkAiqIspAwbParamsProxyV21> wb;
|
SmartPtr<RkAiqIspAwbGainParamsProxy> wb_gain;
|
SmartPtr<RkAiqIspAfParamsProxy> af;
|
SmartPtr<RkAiqIspDpccParamsProxy> dpcc;
|
SmartPtr<RkAiqIspMergeParamsProxy> merge;
|
SmartPtr<RkAiqIspDrcParamsProxyV21> drc;
|
SmartPtr<RkAiqIspCcmParamsProxy> ccm;
|
SmartPtr<RkAiqIspLscParamsProxy> lsc;
|
SmartPtr<RkAiqIspBlcParamsProxyV21> blc;
|
SmartPtr<RkAiqIspRawnrParamsProxy> rawnr;
|
SmartPtr<RkAiqIspGicParamsProxyV21> gic;
|
SmartPtr<RkAiqIspDebayerParamsProxy> debayer;
|
SmartPtr<RkAiqIspLdchParamsProxy> ldch;
|
SmartPtr<RkAiqIspLut3dParamsProxy> lut3d;
|
SmartPtr<RkAiqIspDehazeParamsProxyV21> dehaze;
|
SmartPtr<RkAiqIspAgammaParamsProxy> gamma;
|
SmartPtr<RkAiqIspAdegammaParamsProxy> degamma;
|
SmartPtr<RkAiqIspWdrParamsProxy> wdr;
|
SmartPtr<RkAiqIspCsmParamsProxy> csm;
|
SmartPtr<RkAiqIspCgcParamsProxy> cgc;
|
SmartPtr<RkAiqIspConv422ParamsProxy> conv22;
|
SmartPtr<RkAiqIspYuvconvParamsProxy> yuvcon;
|
SmartPtr<RkAiqIspGainParamsProxy> gain;
|
SmartPtr<RkAiqIspCpParamsProxy> cp;
|
SmartPtr<RkAiqIspIeParamsProxy> ie;
|
SmartPtr<RkAiqIspMotionParamsProxy> motion;
|
SmartPtr<RkAiqIspMdParamsProxy> md;
|
SmartPtr<RkAiqIspBaynrParamsProxyV21> baynr;
|
SmartPtr<RkAiqIspBa3dParamsProxyV21> ba3d;
|
SmartPtr<RkAiqIspYnrParamsProxyV21> ynr;
|
SmartPtr<RkAiqIspCnrParamsProxyV21> cnr;
|
SmartPtr<RkAiqIspSharpenParamsProxyV21> sharp;
|
void reset () {
|
ae.release();
|
hist.release();
|
wb.release();
|
wb_gain.release();
|
af.release();
|
dpcc.release();
|
merge.release();
|
drc.release();
|
ccm.release();
|
lsc.release();
|
blc.release();
|
rawnr.release();
|
gic.release();
|
debayer.release();
|
ldch.release();
|
lut3d.release();
|
dehaze.release();
|
gamma.release();
|
degamma.release();
|
wdr.release();
|
csm.release();
|
cgc.release();
|
conv22.release();
|
yuvcon.release();
|
gain.release();
|
cp.release();
|
ie.release();
|
motion.release();
|
md.release();
|
baynr.release();
|
ba3d.release();
|
ynr.release();
|
cnr.release();
|
sharp.release();
|
}
|
} rk_aiq_isp_params_full_v21_t;
|
|
typedef SharedItemPool<rk_aiq_isp_params_full_v20_t> RkAiqIspParamsPoolV20;
|
typedef SharedItemProxy<rk_aiq_isp_params_full_v20_t> RkAiqIspParamsProxyV20;
|
typedef SharedItemPool<rk_aiq_isp_params_full_v21_t> RkAiqIspParamsPoolV21;
|
typedef SharedItemProxy<rk_aiq_isp_params_full_v21_t> RkAiqIspParamsProxyV21;
|
|
|
class RkAiqFullParams : public SharedItemData {
|
public:
|
explicit RkAiqFullParams()
|
: 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)
|
, mDrcV21Params(NULL)
|
, mBlcV21Params(NULL)
|
, mGicV21Params(NULL)
|
, mDehazeV21Params(NULL)
|
, mBaynrV21Params(NULL)
|
// , mBa3dParams(NULL)
|
, mYnrV21Params(NULL)
|
, mCnrV21Params(NULL)
|
, mSharpenV21Params(NULL) {
|
};
|
~RkAiqFullParams() {};
|
|
void reset() {
|
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();
|
mDrcV21Params.release();
|
mBlcV21Params.release();
|
mGicV21Params.release();
|
mDehazeV21Params.release();
|
mBaynrV21Params.release();
|
// mBa3dParams.release();
|
mYnrV21Params.release();
|
mCnrV21Params.release();
|
mSharpenV21Params.release();
|
};
|
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<RkAiqIspDrcParamsProxyV21> mDrcV21Params;
|
SmartPtr<RkAiqIspBlcParamsProxyV21> mBlcV21Params;
|
SmartPtr<RkAiqIspGicParamsProxyV21> mGicV21Params;
|
SmartPtr<RkAiqIspDehazeParamsProxyV21> mDehazeV21Params;
|
SmartPtr<RkAiqIspBaynrParamsProxyV21> mBaynrV21Params;
|
//SmartPtr<RkAiqIspBa3dParamsProxyV21> mBa3dParams;
|
SmartPtr<RkAiqIspYnrParamsProxyV21> mYnrV21Params;
|
SmartPtr<RkAiqIspCnrParamsProxyV21> mCnrV21Params;
|
SmartPtr<RkAiqIspSharpenParamsProxyV21> mSharpenV21Params;
|
private:
|
XCAM_DEAD_COPY (RkAiqFullParams);
|
};
|
|
typedef SharedItemPool<RkAiqFullParams> RkAiqFullParamsPool;
|
typedef SharedItemProxy<RkAiqFullParams> RkAiqFullParamsProxy;
|
|
};
|
|
#endif //RK_AIQ_POOL_H
|