libcamera/src/ipa/ipu3/algorithms/algorithm.h
Jean-Michel Hautbois b3a2882b36 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>
2021-08-20 12:11:28 +02:00

32 lines
740 B
C++

/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Copyright (C) 2021, Ideas On Board
*
* algorithm.h - IPU3 control algorithm interface
*/
#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 {
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 */
} /* namespace libcamera */
#endif /* __LIBCAMERA_IPA_IPU3_ALGORITHM_H__ */