Message ID | 20211123150423.125524-3-jeanmichel.hautbois@ideasonboard.com |
---|---|
State | Superseded |
Headers | show |
Series |
|
Related | show |
Quoting Jean-Michel Hautbois (2021-11-23 15:04:14) > When the IPA is initialized, it will need to know the sensor model > used in order to properly call CameraSensorHelper for the analogue gain. > Modify the init definition in the pipeline handler and in the IPA as > well as the mojo interface to pass the IPASettings. > > Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@ideasonboard.com> > Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> > --- > include/libcamera/ipa/rkisp1.mojom | 4 +++- > src/ipa/rkisp1/rkisp1.cpp | 5 +++-- > src/libcamera/pipeline/rkisp1/rkisp1.cpp | 2 +- > 3 files changed, 7 insertions(+), 4 deletions(-) > > diff --git a/include/libcamera/ipa/rkisp1.mojom b/include/libcamera/ipa/rkisp1.mojom > index cae757ea..a6991d4f 100644 > --- a/include/libcamera/ipa/rkisp1.mojom > +++ b/include/libcamera/ipa/rkisp1.mojom > @@ -29,7 +29,9 @@ struct RkISP1Action { > }; > > interface IPARkISP1Interface { > - init(uint32 hwRevision) => (int32 ret); > + init(libcamera.IPASettings settings, > + uint32 hwRevision) > + => (int32 ret); > start() => (int32 ret); > stop(); > > diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp > index bf2c13b6..7ecbf8ae 100644 > --- a/src/ipa/rkisp1/rkisp1.cpp > +++ b/src/ipa/rkisp1/rkisp1.cpp > @@ -34,7 +34,7 @@ namespace ipa::rkisp1 { > class IPARkISP1 : public IPARkISP1Interface > { > public: > - int init(unsigned int hwRevision) override; > + int init(const IPASettings &settings, unsigned int hwRevision) override; > int start() override; > void stop() override {} > > @@ -75,7 +75,8 @@ private: > unsigned int hwHistogramWeightGridsSize_; > }; > > -int IPARkISP1::init(unsigned int hwRevision) > +int IPARkISP1::init([[maybe_unused]] const IPASettings &settings, > + unsigned int hwRevision) > { > /* \todo Add support for other revisions */ > switch (hwRevision) { > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp > index 98008862..6cdc4c03 100644 > --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp > +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp > @@ -319,7 +319,7 @@ int RkISP1CameraData::loadIPA(unsigned int hwRevision) > ipa_->queueFrameAction.connect(this, > &RkISP1CameraData::queueFrameAction); > > - int ret = ipa_->init(hwRevision); > + int ret = ipa_->init(IPASettings{ "", sensor_->model() }, hwRevision); > if (ret < 0) { > LOG(RkISP1, Error) << "IPA initialization failure"; > return ret; > -- > 2.32.0 >
diff --git a/include/libcamera/ipa/rkisp1.mojom b/include/libcamera/ipa/rkisp1.mojom index cae757ea..a6991d4f 100644 --- a/include/libcamera/ipa/rkisp1.mojom +++ b/include/libcamera/ipa/rkisp1.mojom @@ -29,7 +29,9 @@ struct RkISP1Action { }; interface IPARkISP1Interface { - init(uint32 hwRevision) => (int32 ret); + init(libcamera.IPASettings settings, + uint32 hwRevision) + => (int32 ret); start() => (int32 ret); stop(); diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp index bf2c13b6..7ecbf8ae 100644 --- a/src/ipa/rkisp1/rkisp1.cpp +++ b/src/ipa/rkisp1/rkisp1.cpp @@ -34,7 +34,7 @@ namespace ipa::rkisp1 { class IPARkISP1 : public IPARkISP1Interface { public: - int init(unsigned int hwRevision) override; + int init(const IPASettings &settings, unsigned int hwRevision) override; int start() override; void stop() override {} @@ -75,7 +75,8 @@ private: unsigned int hwHistogramWeightGridsSize_; }; -int IPARkISP1::init(unsigned int hwRevision) +int IPARkISP1::init([[maybe_unused]] const IPASettings &settings, + unsigned int hwRevision) { /* \todo Add support for other revisions */ switch (hwRevision) { diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp index 98008862..6cdc4c03 100644 --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp @@ -319,7 +319,7 @@ int RkISP1CameraData::loadIPA(unsigned int hwRevision) ipa_->queueFrameAction.connect(this, &RkISP1CameraData::queueFrameAction); - int ret = ipa_->init(hwRevision); + int ret = ipa_->init(IPASettings{ "", sensor_->model() }, hwRevision); if (ret < 0) { LOG(RkISP1, Error) << "IPA initialization failure"; return ret;