ipa: ipu3: Add the functions to the Algorithm class

Introduce three functions in the Algorithm class to manage algorithms:
- configure which is called when IPA is configured only
- prepare called on EventFillParams event at each frame when the request
is queued
- process called on EventStatReady event at each frame completion when
the statistics have been generated.

The existing AGC implementation already has a function named process(),
though it has different arguments. Adding the new virtual process()
interface causes a compiler warning due to the AGC implementation
overloading a virtual function, even though the overload can be resolved
correctly.

Temporarily disable the warning in this commit to maintain bisection
until the AGC is converted to the new interface.

Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Jean-Michel Hautbois
2021-08-19 09:03:11 +02:00
parent a35eb4b36f
commit b3a2882b36
3 changed files with 83 additions and 0 deletions
+8
View File
@@ -7,6 +7,10 @@
#ifndef __LIBCAMERA_IPA_IPU3_ALGORITHM_H__
#define __LIBCAMERA_IPA_IPU3_ALGORITHM_H__
#include <libcamera/ipa/ipu3_ipa_interface.h>
#include "ipa_context.h"
namespace libcamera {
namespace ipa::ipu3 {
@@ -15,6 +19,10 @@ class Algorithm
{
public:
virtual ~Algorithm() {}
virtual int configure(IPAContext &context, const IPAConfigInfo &configInfo);
virtual void prepare(IPAContext &context, ipu3_uapi_params *params);
virtual void process(IPAContext &context, const ipu3_uapi_stats_3a *stats);
};
} /* namespace ipa::ipu3 */