libcamera  v0.0.0
Supporting cameras in Linux since 2019
ipa_manager.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: LGPL-2.1-or-later */
2 /*
3  * Copyright (C) 2019, Google Inc.
4  *
5  * ipa_manager.h - Image Processing Algorithm module manager
6  */
7 #ifndef __LIBCAMERA_INTERNAL_IPA_MANAGER_H__
8 #define __LIBCAMERA_INTERNAL_IPA_MANAGER_H__
9 
10 #include <stdint.h>
11 #include <vector>
12 
15 
19 
20 namespace libcamera {
21 
23 {
24 public:
25  IPAManager();
26  ~IPAManager();
27 
28  static std::unique_ptr<IPAProxy> createIPA(PipelineHandler *pipe,
29  uint32_t maxVersion,
30  uint32_t minVersion);
31 
32 private:
33  static IPAManager *self_;
34 
35  void parseDir(const char *libDir, unsigned int maxDepth,
36  std::vector<std::string> &files);
37  unsigned int addDir(const char *libDir, unsigned int maxDepth = 0);
38 
39  bool isSignatureValid(IPAModule *ipa) const;
40 
41  std::vector<IPAModule *> modules_;
42 
43 #if HAVE_IPA_PUBKEY
44  static const uint8_t publicKeyData_[];
45  static const PubKey pubKey_;
46 #endif
47 };
48 
49 } /* namespace libcamera */
50 
51 #endif /* __LIBCAMERA_INTERNAL_IPA_MANAGER_H__ */
Manager for IPA modules.
Definition: ipa_manager.h:23
static std::unique_ptr< IPAProxy > createIPA(PipelineHandler *pipe, uint32_t maxVersion, uint32_t minVersion)
Create an IPA proxy that matches a given pipeline handler.
Definition: ipa_manager.cpp:256
IPAManager()
Construct an IPAManager instance.
Definition: ipa_manager.cpp:104
Wrapper around IPA module shared object.
Definition: ipa_module.h:23
Create and manage cameras based on a set of media devices.
Definition: pipeline_handler.h:59
Public key wrapper for signature verification.
Definition: pub_key.h:21
Image Processing Algorithm interface.
Image Processing Algorithm module.
Image Processing Algorithm module information.
Create pipelines and cameras from a set of media devices.
Public key signature verification.