ipa: rkisp1: Pass parameters buffer format to IPA module

The rkisp1 driver supports two formats for the ISP parameters buffer,
the legacy fixed format and the new extensible format. In preparation of
support for the new format, pass the parameters buffer format from the
pipeline handler to the IPA module and store it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>
Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>
This commit is contained in:
Laurent Pinchart
2024-08-26 18:17:02 +02:00
parent 798daf9eb0
commit db15711692
5 changed files with 10 additions and 0 deletions

View File

@@ -11,6 +11,7 @@ import "include/libcamera/ipa/core.mojom";
struct IPAConfigInfo {
libcamera.IPACameraSensorInfo sensorInfo;
libcamera.ControlInfoMap sensorControls;
uint32 paramFormat;
};
interface IPARkISP1Interface {

View File

@@ -105,6 +105,11 @@ namespace libcamera::ipa::rkisp1 {
* \brief Indicates if the camera is configured to capture raw frames
*/
/**
* \var IPASessionConfiguration::paramFormat
* \brief The fourcc of the parameters buffers format
*/
/**
* \struct IPAActiveState
* \brief Active state for algorithms

View File

@@ -59,6 +59,7 @@ struct IPASessionConfiguration {
} sensor;
bool raw;
uint32_t paramFormat;
};
struct IPAActiveState {

View File

@@ -226,6 +226,8 @@ int IPARkISP1::configure(const IPAConfigInfo &ipaConfig,
context_.activeState = {};
context_.frameContexts.clear();
context_.configuration.paramFormat = ipaConfig.paramFormat;
const IPACameraSensorInfo &info = ipaConfig.sensorInfo;
const ControlInfo vBlank = sensorControls_.find(V4L2_CID_VBLANK)->second;
context_.configuration.sensor.defVBlank = vBlank.def().get<int32_t>();

View File

@@ -814,6 +814,7 @@ int PipelineHandlerRkISP1::configure(Camera *camera, CameraConfiguration *c)
return ret;
ipaConfig.sensorControls = data->sensor_->controls();
ipaConfig.paramFormat = paramFormat.fourcc;
ret = data->ipa_->configure(ipaConfig, streamConfig, &data->controlInfo_);
if (ret) {