summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/libcamera/ipa/rkisp1.mojom2
-rw-r--r--src/ipa/rkisp1/rkisp1.cpp2
-rw-r--r--src/libcamera/pipeline/rkisp1/rkisp1.cpp3
3 files changed, 5 insertions, 2 deletions
diff --git a/include/libcamera/ipa/rkisp1.mojom b/include/libcamera/ipa/rkisp1.mojom
index a6991d4f..c3a6d8e1 100644
--- a/include/libcamera/ipa/rkisp1.mojom
+++ b/include/libcamera/ipa/rkisp1.mojom
@@ -21,11 +21,13 @@ struct RkISP1Event {
uint32 frame;
uint32 bufferId;
libcamera.ControlList controls;
+ libcamera.ControlList sensorControls;
};
struct RkISP1Action {
RkISP1Operations op;
libcamera.ControlList controls;
+ libcamera.ControlList sensorControls;
};
interface IPARkISP1Interface {
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index 225f1847..2b073258 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -314,7 +314,7 @@ void IPARkISP1::setControls(unsigned int frame)
ControlList ctrls(ctrls_);
ctrls.set(V4L2_CID_EXPOSURE, static_cast<int32_t>(exposure_));
ctrls.set(V4L2_CID_ANALOGUE_GAIN, static_cast<int32_t>(gain_));
- op.controls = ctrls;
+ op.sensorControls = ctrls;
queueFrameAction.emit(frame, op);
}
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index 6cdc4c03..36ef6a02 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -333,7 +333,7 @@ void RkISP1CameraData::queueFrameAction(unsigned int frame,
{
switch (action.op) {
case ipa::rkisp1::ActionV4L2Set: {
- const ControlList &controls = action.controls;
+ const ControlList &controls = action.sensorControls;
delayedCtrls_->push(controls);
break;
}
@@ -1124,6 +1124,7 @@ void PipelineHandlerRkISP1::statReady(FrameBuffer *buffer)
ev.op = ipa::rkisp1::EventSignalStatBuffer;
ev.frame = info->frame;
ev.bufferId = info->statBuffer->cookie();
+ ev.sensorControls = data->delayedCtrls_->get(buffer->metadata().sequence);
data->ipa_->processEvent(ev);
}