The IPA headers are installed into $prefix/include/libcamera/ipa/, but are located in the source tree in include/ipa/. This requires files within libcamera to include them with #include <ipa/foo.h> while a third party IPA would need to use #include <libcamera/ipa/foo.h> Not only is this inconsistent, it can create issues later if IPA headers need to include each other, as the first form of include directive wouldn't be valid once the headers are installed. Fix the problem by moving the IPA headers to include/libcamera/ipa/. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Acked-by: Jacopo Mondi <jacopo@jmondi.org>
62 lines
1.2 KiB
C++
62 lines
1.2 KiB
C++
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
/*
|
|
* Copyright (C) 2019, Google Inc.
|
|
*
|
|
* ipa_module.h - Image Processing Algorithm module
|
|
*/
|
|
#ifndef __LIBCAMERA_IPA_MODULE_H__
|
|
#define __LIBCAMERA_IPA_MODULE_H__
|
|
|
|
#include <stdint.h>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include <libcamera/ipa/ipa_interface.h>
|
|
#include <libcamera/ipa/ipa_module_info.h>
|
|
|
|
#include "libcamera/internal/log.h"
|
|
#include "libcamera/internal/pipeline_handler.h"
|
|
|
|
namespace libcamera {
|
|
|
|
class IPAModule : public Loggable
|
|
{
|
|
public:
|
|
explicit IPAModule(const std::string &libPath);
|
|
~IPAModule();
|
|
|
|
bool isValid() const;
|
|
|
|
const struct IPAModuleInfo &info() const;
|
|
const std::vector<uint8_t> signature() const;
|
|
const std::string &path() const;
|
|
|
|
bool load();
|
|
|
|
struct ipa_context *createContext();
|
|
|
|
bool match(PipelineHandler *pipe,
|
|
uint32_t minVersion, uint32_t maxVersion) const;
|
|
|
|
protected:
|
|
std::string logPrefix() const override;
|
|
|
|
private:
|
|
struct IPAModuleInfo info_;
|
|
std::vector<uint8_t> signature_;
|
|
|
|
std::string libPath_;
|
|
bool valid_;
|
|
bool loaded_;
|
|
|
|
void *dlHandle_;
|
|
typedef struct ipa_context *(*IPAIntfFactory)(void);
|
|
IPAIntfFactory ipaCreate_;
|
|
|
|
int loadIPAModuleInfo();
|
|
};
|
|
|
|
} /* namespace libcamera */
|
|
|
|
#endif /* __LIBCAMERA_IPA_MODULE_H__ */
|