diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2021-08-14 10:39:09 +0530 |
---|---|---|
committer | Umang Jain <umang.jain@ideasonboard.com> | 2021-08-16 12:01:18 +0530 |
commit | 568c4049bc281a8a187789ec28717176f903f571 (patch) | |
tree | 5d92bfb23e90ed995f93b520e0e04e83d3e98d1a /src | |
parent | 25462474f8bb56153995f44f2f2996673321f871 (diff) |
ipa: vimc: Add configure() function
As part of an effort to make the vimc IPA usable for testing, extend it
with a configure function. The configuration is currently ignored by the
IPA.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/ipa/vimc/vimc.cpp | 13 | ||||
-rw-r--r-- | src/libcamera/pipeline/vimc/vimc.cpp | 16 |
2 files changed, 29 insertions, 0 deletions
diff --git a/src/ipa/vimc/vimc.cpp b/src/ipa/vimc/vimc.cpp index 0c0ee006..fb134084 100644 --- a/src/ipa/vimc/vimc.cpp +++ b/src/ipa/vimc/vimc.cpp @@ -34,6 +34,10 @@ public: int start() override; void stop() override; + int configure(const IPACameraSensorInfo &sensorInfo, + const std::map<unsigned int, IPAStream> &streamConfig, + const std::map<unsigned int, ControlInfoMap> &entityControls) override; + private: void initTrace(); void trace(enum ipa::vimc::IPAOperationCode operation); @@ -86,6 +90,15 @@ void IPAVimc::stop() LOG(IPAVimc, Debug) << "stop vimc IPA!"; } +int IPAVimc::configure([[maybe_unused]] const IPACameraSensorInfo &sensorInfo, + [[maybe_unused]] const std::map<unsigned int, IPAStream> &streamConfig, + [[maybe_unused]] const std::map<unsigned int, ControlInfoMap> &entityControls) +{ + LOG(IPAVimc, Debug) << "configure()"; + + return 0; +} + void IPAVimc::initTrace() { struct stat fifoStat; diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp index d4b041d3..4c92729d 100644 --- a/src/libcamera/pipeline/vimc/vimc.cpp +++ b/src/libcamera/pipeline/vimc/vimc.cpp @@ -295,6 +295,22 @@ int PipelineHandlerVimc::configure(Camera *camera, CameraConfiguration *config) cfg.setStream(&data->stream_); + if (data->ipa_) { + /* Inform IPA of stream configuration and sensor controls. */ + std::map<unsigned int, IPAStream> streamConfig; + streamConfig.emplace(std::piecewise_construct, + std::forward_as_tuple(0), + std::forward_as_tuple(cfg.pixelFormat, cfg.size)); + + std::map<unsigned int, ControlInfoMap> entityControls; + entityControls.emplace(0, data->sensor_->controls()); + + IPACameraSensorInfo sensorInfo; + data->sensor_->sensorInfo(&sensorInfo); + + data->ipa_->configure(sensorInfo, streamConfig, entityControls); + } + return 0; } |