ipa: rkisp1: Add sensor info to context

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>
This commit is contained in:
Stefan Klug
2024-08-22 12:41:12 +02:00
parent eb6edfb69e
commit 830340615a
3 changed files with 8 additions and 1 deletions

View File

@@ -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
*

View File

@@ -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;

View File

@@ -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)