[v3,8/9] ipa: rkisp1: Add sensor info to context
diff mbox series

Message ID 20240920133941.90629-9-stefan.klug@ideasonboard.com
State New
Headers show
Series
  • Implement polynomial lsc support
Related show

Commit Message

Stefan Klug Sept. 20, 2024, 1:39 p.m. UTC
For the LSC algorithm to dynamically calculate the LSC tables based on
the sensor size and the crop rectangle it needs access to that data.
Provide access to it by adding the sensorInfo object to the context.

Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>

---

Changes in v3:
- Collected tags
- Added documentation
---
 src/ipa/rkisp1/ipa_context.cpp | 3 +++
 src/ipa/rkisp1/ipa_context.h   | 2 ++
 src/ipa/rkisp1/rkisp1.cpp      | 4 +++-
 3 files changed, 8 insertions(+), 1 deletion(-)

Patch
diff mbox series

diff --git a/src/ipa/rkisp1/ipa_context.cpp b/src/ipa/rkisp1/ipa_context.cpp
index 730a55b4465a..14d0c02a2b32 100644
--- a/src/ipa/rkisp1/ipa_context.cpp
+++ b/src/ipa/rkisp1/ipa_context.cpp
@@ -424,6 +424,9 @@  namespace libcamera::ipa::rkisp1 {
  * \var IPAContext::hw
  * \brief RkISP1 version-specific hardware parameters
  *
+ * \var IPAContext::sensorInfo
+ * \brief The IPA session sensorInfo, immutable during the session
+ *
  * \var IPAContext::configuration
  * \brief The IPA session configuration, immutable during the session
  *
diff --git a/src/ipa/rkisp1/ipa_context.h b/src/ipa/rkisp1/ipa_context.h
index 3af2774a7fc8..e274d9b01e1c 100644
--- a/src/ipa/rkisp1/ipa_context.h
+++ b/src/ipa/rkisp1/ipa_context.h
@@ -17,6 +17,7 @@ 
 #include <libcamera/control_ids.h>
 #include <libcamera/controls.h>
 #include <libcamera/geometry.h>
+#include <libcamera/ipa/core_ipa_interface.h>
 
 #include <libipa/camera_sensor_helper.h>
 #include <libipa/fc_queue.h>
@@ -180,6 +181,7 @@  struct IPAFrameContext : public FrameContext {
 
 struct IPAContext {
 	const IPAHwSettings *hw;
+	IPACameraSensorInfo sensorInfo;
 	IPASessionConfiguration configuration;
 	IPAActiveState activeState;
 
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index 78d2c375d6dc..9e161cabdea4 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -124,7 +124,7 @@  const ControlInfoMap::Map rkisp1Controls{
 } /* namespace */
 
 IPARkISP1::IPARkISP1()
-	: context_({ {}, {}, {}, { kMaxFrameContexts }, {}, {} })
+	: context_({ {}, {}, {}, {}, { kMaxFrameContexts }, {}, {} })
 {
 }
 
@@ -158,6 +158,8 @@  int IPARkISP1::init(const IPASettings &settings, unsigned int hwRevision,
 
 	LOG(IPARkISP1, Debug) << "Hardware revision is " << hwRevision;
 
+	context_.sensorInfo = sensorInfo;
+
 	context_.camHelper = CameraSensorHelperFactoryBase::create(settings.sensorModel);
 	if (!context_.camHelper) {
 		LOG(IPARkISP1, Error)