diff options
Diffstat (limited to 'aiq/aiq.h')
-rw-r--r-- | aiq/aiq.h | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/aiq/aiq.h b/aiq/aiq.h new file mode 100644 index 0000000..fcd02d2 --- /dev/null +++ b/aiq/aiq.h @@ -0,0 +1,72 @@ +/* SPDX-License-Identifier: Apache-2.0 */ +/* + * Copyright (C) 2021, Google Inc. + * + * aiq.h - Intel IA Imaging library C++ wrapper + * + * To simplify naming, and prevent confusion the wrapper is named simply aiq + * rather than ia_aiq. + */ + +#include <string> + +#include <ia_imaging/ia_aiq.h> +#include <ia_imaging/ia_cmc_parser.h> +#include <linux/intel-ipu3.h> + +#include <libcamera/geometry.h> + +#include "aiq_input_parameters.h" +#include "aiq_results.h" +#include "binary_data.h" +#include "stats/ipa_ipu3_stats.h" + +#ifndef IPA_IPU3_AIQ_H +#define IPA_IPU3_AIQ_H + +namespace libcamera { + +namespace ipa::ipu3::aiq { + +class AIQ +{ +public: + AIQ(); + ~AIQ(); + + int init(BinaryData &aiqb, BinaryData &nvm, BinaryData &aiqd); + int configure(); + int setStatistics(unsigned int frame, + int64_t timestamp, AiqResults &results, + const ipu3_uapi_stats_3a *stats); + + int run2a(unsigned int frame, AiqInputParameters ¶ms, + AiqResults &results); + +private: + std::string decodeError(ia_err err); + + int aeRun(ia_aiq_ae_input_params &aeParams, AiqResults &results); + int afRun(ia_aiq_af_input_params &afParams, AiqResults &results); + int afBracketRun(ia_aiq_af_bracket_input_params &afBracketParams, + AiqResults &results); + int awbRun(ia_aiq_awb_input_params &awbParams, AiqResults &results); + int dsdRun(ia_aiq_dsd_input_params &dsdParams, AiqResults &results); + int gbceRun(ia_aiq_gbce_input_params &gbceParams, AiqResults &results); + int parameterAdapterRun(ia_aiq_pa_input_params &paParams, + AiqResults &results); + int shadingAdapterRun(ia_aiq_sa_input_params &saParams, + AiqResults &results); + + ia_aiq *aiq_; + ia_cmc_t *iaCmc_; + std::string version_; + + IPAIPU3Stats *aiqStats_; +}; + +} /* namespace ipa::ipu3::aiq */ + +} /* namespace libcamera */ + +#endif /* IPA_IPU3_AIQ_H */ |