android13/hardware/rockchip/camera_engine_rkisp/rkisp/isp-engine/isp10_engine.h

112 lines
3.2 KiB
C++
Executable File

#ifndef _CAM_ISP10_CTRL_ITF_IMC_H_
#define _CAM_ISP10_CTRL_ITF_IMC_H_
#include "isp_engine.h"
#include "V4l2Isp10Ioctl.h"
#include <sys/poll.h>
using namespace std;
struct CamIsp10Config {
struct cifisp_dpcc_config dpcc_config;
struct cifisp_bls_config bls_config;
struct cifisp_sdg_config sdg_config;
struct cifisp_hst_config hst_config;
struct cifisp_lsc_config lsc_config;
struct cifisp_awb_gain_config awb_gain_config;
struct cifisp_awb_meas_config awb_meas_config;
struct cifisp_flt_config flt_config;
struct cifisp_bdm_config bdm_config;
struct cifisp_ctk_config ctk_config;
struct cifisp_goc_config goc_config;
struct cifisp_cproc_config cproc_config;
struct cifisp_aec_config aec_config;
struct cifisp_afc_config afc_config;
struct cifisp_ie_config ie_config;
struct cifisp_dpf_config dpf_config;
struct cifisp_dpf_strength_config dpf_strength_config;
bool_t enabled[HAL_ISP_MODULE_MAX_ID_ID + 1];
int flt_denoise_level;
int flt_sharp_level;
struct cifisp_wdr_config wdr_config;
Dsp3DnrResult_t Dsp3DnrSetConfig;
NewDsp3DnrResult_t NewDsp3DnrSetConfig;
struct cifisp_demosaiclp_config demosaicLp_config;
struct cifisp_rkiesharp_config rkIESharp_config;
};
struct CamIsp10ConfigSet {
unsigned int active_configs;
struct CamIsp10Config configs;
bool_t enabled[HAL_ISP_MODULE_MAX_ID_ID + 1];
};
class Isp10Engine: public IspEngine {
public:
Isp10Engine();
~Isp10Engine();
virtual bool init(const char* tuningFile,
const char* ispDev,
int isp_ver,
int devFd);
virtual bool deInit();
virtual void transDrvMetaDataToHal(const void* drvMeta, struct HAL_Buffer_MetaData* halMeta);
virtual bool configureISP(const void* config);
virtual bool start();
virtual bool stop();
virtual bool applyIspConfig(struct CamIsp10ConfigSet* isp_cfg);
virtual bool convertIspStats(struct cifisp_stat_buffer* isp_stats,
struct CamIA10_Stats* ia_stats);
virtual bool convertIAResults(
struct CamIsp10ConfigSet* isp_cfg,
struct CamIA10_Results* ia_results);
virtual bool getSensorModedata
(
struct isp_supplemental_sensor_mode_data* drvCfg,
CamIA10_SensorModeData* iaCfg
);
virtual void getCalibdbHandle(CamCalibDbHandle_t *handle)
{
mCamIAEngine->getCalibdbHandle(handle);
}
virtual uint32_t getCalibdbMagicVerCode()
{
return mCamIAEngine->getCalibdbMagicVerCode();
}
virtual void setTuningToolAwbParams(AwbConfig_t* paramm)
{
mCamIAEngine->tuningToolConfigAwbParams(paramm);
}
virtual void setTuningToolAdpfParams()
{
mCamIAEngine->tuningToolForceConfigDpf();
}
virtual void clearStatic();
protected:
virtual bool initISPStream(const char* ispDev);
#if 1
bool threadLoop();
class ISP3AThread : public CamThread {
public:
ISP3AThread(Isp10Engine* owener): mOwener(owener) {};
virtual bool threadLoop(void) {return mOwener->threadLoop();};
private:
Isp10Engine* mOwener;
};
shared_ptr<ISP3AThread> mISP3AThread;
#endif
private:
struct cifisp_stat_buffer* mIspStats[CAM_ISP_NUM_OF_STAT_BUFS];
V4l2Isp10Ioctl* mIspIoctl;
struct CamIsp10Config mIspCfg;
//CamHwItf* mCamHwItf;
int mDevFd;
};
#endif