[libcamera-devel] [PATCH 2/4] ipu3: ipa: Report effective sensor controls with stastistics to IPA
Han-Lin Chen
hanlinchen at chromium.org
Thu Oct 28 12:03:17 CEST 2021
The Intel close sourced IPA requires the effective controls applied to
the sensor when the stastistics are generated. Report effective sensor controls
with the stastistics to IPA.
Signed-off-by: Han-Lin Chen <hanlinchen at chromium.com>
---
src/libcamera/pipeline/ipu3/frames.h | 3 +++
src/libcamera/pipeline/ipu3/ipu3.cpp | 5 +++++
2 files changed, 8 insertions(+)
diff --git a/src/libcamera/pipeline/ipu3/frames.h b/src/libcamera/pipeline/ipu3/frames.h
index 3ef7e445..a897e307 100644
--- a/src/libcamera/pipeline/ipu3/frames.h
+++ b/src/libcamera/pipeline/ipu3/frames.h
@@ -12,6 +12,7 @@
#include <queue>
#include <vector>
+#include <libcamera/controls.h>
#include <libcamera/base/signal.h>
namespace libcamera {
@@ -34,6 +35,8 @@ public:
FrameBuffer *paramBuffer;
FrameBuffer *statBuffer;
+ ControlList effectiveSensorControls;
+
bool paramDequeued;
bool metadataProcessed;
};
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 8816efc5..6a7f5b9a 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -667,6 +667,8 @@ int PipelineHandlerIPU3::configure(Camera *camera, CameraConfiguration *c)
return ret;
}
+ data->delayedCtrls_->reset();
+
return updateControls(data);
}
@@ -1363,6 +1365,8 @@ void IPU3CameraData::cio2BufferReady(FrameBuffer *buffer)
request->metadata().set(controls::SensorTimestamp,
buffer->metadata().timestamp);
+ info->effectiveSensorControls = delayedCtrls_->get(buffer->metadata().sequence);
+
if (request->findBuffer(&rawStream_))
pipe()->completeBuffer(request, buffer);
@@ -1419,6 +1423,7 @@ void IPU3CameraData::statBufferReady(FrameBuffer *buffer)
ev.frame = info->id;
ev.bufferId = info->statBuffer->cookie();
ev.frameTimestamp = request->metadata().get(controls::SensorTimestamp);
+ ev.sensorControls = info->effectiveSensorControls;
ipa_->processEvent(ev);
}
--
2.33.1.1089.g2158813163f-goog
More information about the libcamera-devel
mailing list