summaryrefslogtreecommitdiff
path: root/src/ipa/libipa
diff options
context:
space:
mode:
authorFlorian Sylvestre <fsylvestre@baylibre.com>2022-06-17 11:23:12 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2022-06-29 17:21:04 +0300
commit575ca8854433043a1149286878bb5ef7029ba681 (patch)
tree5e61278be421f4aa98c988f98e1b4b0ab73d13d7 /src/ipa/libipa
parentd1934c6490e335c273838a960657652bfe6d7546 (diff)
ipa: libipa: algorithm: Add init() function to the Algorithm class
Add the init() function that will be called during algorithm initialization to provide each algorithm the list of algorithms tuning data. Signed-off-by: Florian Sylvestre <fsylvestre@baylibre.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'src/ipa/libipa')
-rw-r--r--src/ipa/libipa/algorithm.cpp13
-rw-r--r--src/ipa/libipa/algorithm.h8
2 files changed, 21 insertions, 0 deletions
diff --git a/src/ipa/libipa/algorithm.cpp b/src/ipa/libipa/algorithm.cpp
index 1d099808..8549fe3f 100644
--- a/src/ipa/libipa/algorithm.cpp
+++ b/src/ipa/libipa/algorithm.cpp
@@ -38,6 +38,19 @@ namespace ipa {
*/
/**
+ * \fn Algorithm::init()
+ * \brief Initialize the Algorithm with tuning data
+ * \param[in] context The shared IPA context
+ * \param[in] tuningData The tuning data for the algorithm
+ *
+ * This function is called once, when the IPA module is initialized, to
+ * initialize the algorithm. The \a tuningData YamlObject contains the tuning
+ * data for algorithm.
+ *
+ * \return 0 if successful, an error code otherwise
+ */
+
+/**
* \fn Algorithm::configure()
* \brief Configure the Algorithm given an IPAConfigInfo
* \param[in] context The shared IPA context
diff --git a/src/ipa/libipa/algorithm.h b/src/ipa/libipa/algorithm.h
index cfbe4ed8..2a8871d8 100644
--- a/src/ipa/libipa/algorithm.h
+++ b/src/ipa/libipa/algorithm.h
@@ -11,6 +11,8 @@
namespace libcamera {
+class YamlObject;
+
namespace ipa {
template<typename _Module>
@@ -21,6 +23,12 @@ public:
virtual ~Algorithm() {}
+ virtual int init([[maybe_unused]] typename Module::Context &context,
+ [[maybe_unused]] const YamlObject &tuningData)
+ {
+ return 0;
+ }
+
virtual int configure([[maybe_unused]] typename Module::Context &context,
[[maybe_unused]] const typename Module::Config &configInfo)
{