7 #ifndef __LIBCAMERA_INTERNAL_IPA_MANAGER_H__ 8 #define __LIBCAMERA_INTERNAL_IPA_MANAGER_H__ 38 for (
IPAModule *module : self_->modules_) {
39 if (module->
match(pipe, minVersion, maxVersion)) {
48 std::unique_ptr<T> proxy = std::make_unique<T>(m, !self_->isSignatureValid(m));
49 if (!proxy->isValid()) {
50 LOG(IPAManager, Error) <<
"Failed to load proxy";
58 static IPAManager *self_;
60 void parseDir(
const char *libDir,
unsigned int maxDepth,
61 std::vector<std::string> &files);
62 unsigned int addDir(
const char *libDir,
unsigned int maxDepth = 0);
64 bool isSignatureValid(
IPAModule *ipa)
const;
66 std::vector<IPAModule *> modules_;
69 static const uint8_t publicKeyData_[];
70 static const PubKey pubKey_;
Public key signature verification.
#define LOG(category, severity)
Log a message.
Image Processing Algorithm interface.
Top-level libcamera namespace.
Definition: bound_method.h:15
Manager for IPA modules.
Definition: ipa_manager.h:25
Image Processing Algorithm module information.
static std::unique_ptr< T > createIPA(PipelineHandler *pipe, uint32_t maxVersion, uint32_t minVersion)
Create an IPA proxy that matches a given pipeline handler.
Definition: ipa_manager.h:32
#define LOG_DECLARE_CATEGORY(name)
Declare a category of log messages.
Wrapper around IPA module shared object.
Definition: ipa_module.h:22
Create and manage cameras based on a set of media devices.
Definition: pipeline_handler.h:57
Image Processing Algorithm module.
bool match(PipelineHandler *pipe, uint32_t minVersion, uint32_t maxVersion) const
Verify if the IPA module matches a given pipeline handler.
Definition: ipa_module.cpp:472
Public key wrapper for signature verification.
Definition: pub_key.h:20
Create pipelines and cameras from a set of media devices.