/* SPDX-License-Identifier: LGPL-2.1-or-later */ /* * Copyright (C) 2019, Google Inc. * * ipa_interface.h - Image Processing Algorithm interface */ #ifndef __LIBCAMERA_IPA_INTERFACE_H__ #define __LIBCAMERA_IPA_INTERFACE_H__ #include #include #include #include #include #include #include "v4l2_controls.h" namespace libcamera { struct IPAStream { unsigned int pixelFormat; Size size; }; struct IPABuffer { unsigned int id; BufferMemory memory; }; struct IPAOperationData { unsigned int operation; std::vector data; std::vector controls; }; class IPAInterface { public: virtual ~IPAInterface() {} virtual int init() = 0; virtual void configure(const std::map &streamConfig, const std::map &entityControls) = 0; virtual void mapBuffers(const std::vector &buffers) = 0; virtual void unmapBuffers(const std::vector &ids) = 0; virtual void processEvent(const IPAOperationData &data) = 0; Signal queueFrameAction; }; } /* namespace libcamera */ #endif /* __LIBCAMERA_IPA_INTERFACE_H__ */