ipa: raspberrypi: Return an error code from Algorithm::read()

When encountering errors, the Algorithm::read() function either uses
LOG(Fatal) or throws exceptions from the boost property_tree functions.
To prepare for replacing boost JSON parse with the YamlParser class,
give the Algorithm::read() function the ability to return an error code,
and propagate it all the way to the IPA module init() function.

All algorithm classes return a hardcoded 0 value for now, subsequent
commits will change that.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Naushir Patuck <naush@raspberrypi.com>
Tested-by: Naushir Patuck <naush@raspberrypi.com>
This commit is contained in:
Laurent Pinchart
2022-07-28 13:47:49 +03:00
parent 0c84c67e39
commit f357b1bf6e
31 changed files with 151 additions and 75 deletions
+4 -4
View File
@@ -19,20 +19,20 @@ namespace RPiController {
/* Control algorithm to perform AWB calculations. */
struct AwbMode {
void read(boost::property_tree::ptree const &params);
int read(boost::property_tree::ptree const &params);
double ctLo; /* low CT value for search */
double ctHi; /* high CT value for search */
};
struct AwbPrior {
void read(boost::property_tree::ptree const &params);
int read(boost::property_tree::ptree const &params);
double lux; /* lux level */
Pwl prior; /* maps CT to prior log likelihood for this lux level */
};
struct AwbConfig {
AwbConfig() : defaultMode(nullptr) {}
void read(boost::property_tree::ptree const &params);
int read(boost::property_tree::ptree const &params);
/* Only repeat the AWB calculation every "this many" frames */
uint16_t framePeriod;
/* number of initial frames for which speed taken as 1.0 (maximum) */
@@ -90,7 +90,7 @@ public:
~Awb();
char const *name() const override;
void initialise() override;
void read(boost::property_tree::ptree const &params) override;
int read(boost::property_tree::ptree const &params) override;
/* AWB handles "pausing" for itself. */
bool isPaused() const override;
void pause() override;