This patch adds configuration options for environment variables used in
the IPA proxy.
The configuration snippet:
configuration:
ipa:
config_paths:
- config path 1
- config path 2
- ...
module_paths:
- module path 1
- module path 2
- ...
proxy_paths:
- proxy path 1
- proxy path 2
- ...
force_isolation: BOOL
LIBCAMERA_<IPA_NAME>_TUNING_FILE remains configurable only via the
environment variable; this is supposed to be used only for testing and
debugging and it's not clear what to do about IPA names like "rpi/vc4"
and "rpi/pisp" exactly.
There are two ways to pass the configuration to the places where it is
needed: Either to pass it as an argument to the method calls that need
it, or to pass it to the class constructors and extract the needed
configuration from there. This patch uses the second method as it is
less polluting the code.
Signed-off-by: Milan Zamazal <mzamazal@redhat.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
52 lines
951 B
C++
52 lines
951 B
C++
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
/*
|
|
* Copyright (C) 2019, Google Inc.
|
|
*
|
|
* Image Processing Algorithm proxy
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <optional>
|
|
#include <string>
|
|
#include <vector>
|
|
|
|
#include <libcamera/ipa/ipa_interface.h>
|
|
|
|
#include "libcamera/internal/global_configuration.h"
|
|
|
|
namespace libcamera {
|
|
|
|
class IPAModule;
|
|
|
|
class IPAProxy : public IPAInterface
|
|
{
|
|
public:
|
|
enum ProxyState {
|
|
ProxyStopped,
|
|
ProxyStopping,
|
|
ProxyRunning,
|
|
};
|
|
|
|
IPAProxy(IPAModule *ipam, const GlobalConfiguration &configuration);
|
|
~IPAProxy();
|
|
|
|
bool isValid() const { return valid_; }
|
|
|
|
std::string configurationFile(const std::string &name,
|
|
const std::string &fallbackName = std::string()) const;
|
|
|
|
protected:
|
|
std::string resolvePath(const std::string &file) const;
|
|
|
|
bool valid_;
|
|
ProxyState state_;
|
|
|
|
private:
|
|
IPAModule *ipam_;
|
|
std::vector<std::string> configPaths_;
|
|
std::vector<std::string> execPaths_;
|
|
};
|
|
|
|
} /* namespace libcamera */
|