pipeline: rkisp1: Move ControlInfoMap to IPA module
Currently the pipeline handler advertises controls handled by the IPA from a ControlInfoMap it manually constructs. This is wrong, as the IPA module is the component that knows what controls it supports. Fix this by moving the ControlInfoMap construction to the IPA module, and pass it to the pipeline handler as a return value from the IPA init() function. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com> Reviewed-by: Florian Sylvestre <fsylvestre@baylibre.com>
This commit is contained in:
parent
502ab9a146
commit
961a6cf7ca
3 changed files with 30 additions and 33 deletions
|
@ -46,7 +46,8 @@ namespace ipa::rkisp1 {
|
|||
class IPARkISP1 : public IPARkISP1Interface, public Module
|
||||
{
|
||||
public:
|
||||
int init(const IPASettings &settings, unsigned int hwRevision) override;
|
||||
int init(const IPASettings &settings, unsigned int hwRevision,
|
||||
ControlInfoMap *ipaControls) override;
|
||||
int start() override;
|
||||
void stop() override {}
|
||||
|
||||
|
@ -89,12 +90,27 @@ private:
|
|||
struct IPAContext context_;
|
||||
};
|
||||
|
||||
namespace {
|
||||
|
||||
/* List of controls handled by the RkISP1 IPA */
|
||||
const ControlInfoMap::Map rkisp1Controls{
|
||||
{ &controls::AeEnable, ControlInfo(false, true) },
|
||||
{ &controls::Brightness, ControlInfo(-1.0f, 0.993f) },
|
||||
{ &controls::Contrast, ControlInfo(0.0f, 1.993f) },
|
||||
{ &controls::Saturation, ControlInfo(0.0f, 1.993f) },
|
||||
{ &controls::Sharpness, ControlInfo(0.0f, 10.0f, 1.0f) },
|
||||
{ &controls::draft::NoiseReductionMode, ControlInfo(controls::draft::NoiseReductionModeValues) },
|
||||
};
|
||||
|
||||
} /* namespace */
|
||||
|
||||
std::string IPARkISP1::logPrefix() const
|
||||
{
|
||||
return "rkisp1";
|
||||
}
|
||||
|
||||
int IPARkISP1::init(const IPASettings &settings, unsigned int hwRevision)
|
||||
int IPARkISP1::init(const IPASettings &settings, unsigned int hwRevision,
|
||||
ControlInfoMap *ipaControls)
|
||||
{
|
||||
/* \todo Add support for other revisions */
|
||||
switch (hwRevision) {
|
||||
|
@ -155,7 +171,15 @@ int IPARkISP1::init(const IPASettings &settings, unsigned int hwRevision)
|
|||
return -EINVAL;
|
||||
}
|
||||
|
||||
return createAlgorithms(context_, (*data)["algorithms"]);
|
||||
int ret = createAlgorithms(context_, (*data)["algorithms"]);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
/* Return the controls handled by the IPA. */
|
||||
ControlInfoMap::Map ctrlMap = rkisp1Controls;
|
||||
*ipaControls = ControlInfoMap(std::move(ctrlMap), controls::controls);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int IPARkISP1::start()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue