libcamera  v0.0.0
Supporting cameras in Linux since 2019
algorithm.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 /*
3  * Copyright (C) 2021, Ideas On Board
4  *
5  * algorithm.h - ISP control algorithm interface
6  */
7 #pragma once
8 
9 namespace libcamera {
10 
11 namespace ipa {
12 
13 template<typename Context, typename Config, typename Params, typename Stats>
14 class Algorithm
15 {
16 public:
17  virtual ~Algorithm() {}
18 
19  virtual int configure([[maybe_unused]] Context &context,
20  [[maybe_unused]] const Config &configInfo)
21  {
22  return 0;
23  }
24 
25  virtual void prepare([[maybe_unused]] Context &context,
26  [[maybe_unused]] Params *params)
27  {
28  }
29 
30  virtual void process([[maybe_unused]] Context &context,
31  [[maybe_unused]] const Stats *stats)
32  {
33  }
34 };
35 
36 } /* namespace ipa */
37 
38 } /* namespace libcamera */
The base class for all IPA algorithms.
Definition: algorithm.h:15
virtual int configure([[maybe_unused]] Context &context, [[maybe_unused]] const Config &configInfo)
Configure the Algorithm given an IPAConfigInfo.
Definition: algorithm.h:19
virtual void process([[maybe_unused]] Context &context, [[maybe_unused]] const Stats *stats)
Process ISP statistics, and run algorithm operations.
Definition: algorithm.h:30
virtual void prepare([[maybe_unused]] Context &context, [[maybe_unused]] Params *params)
Fill the params buffer with ISP processing parameters for a frame.
Definition: algorithm.h:25
Top-level libcamera namespace.
Definition: backtrace.h:17