[libcamera-devel] [PATCH 02/22] ipu3: ipa: Report effective sensor controls with statistics to IPA
Kieran Bingham
kieran.bingham at ideasonboard.com
Wed Nov 10 11:10:49 CET 2021
Quoting Jean-Michel Hautbois (2021-11-09 13:26:26)
> Hi Kieran,
>
> On 08/11/2021 14:48, Kieran Bingham wrote:
> > Quoting Jean-Michel Hautbois (2021-11-08 13:13:30)
> >> From: Han-Lin Chen <hanlinchen at chromium.org>
> >>
> >> The Intel close sourced IPA requires the effective controls applied to
> >> the sensor when the statistics are generated. Report effective sensor controls
> >> with the stastistics to IPA.
> >>
> >> Signed-off-by: Han-Lin Chen <hanlinchen at chromium.org>
> >> [Jean-Michel: Reword s/stastistics/statistics]
> >
> > You missed one in the commit message ;-)
>
> Thanks :-)
>
> >
> >> Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois at ideasonboard.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>
> >
> > I suspect checkstyle would suggest a separate group here.
>
> Not on my side...
Seems other patches I've seen lately haven't been showing up in
checkstyle either, but running clang-format directly highlights:
--- src/libcamera/pipeline/ipu3/frames.h
+++ src/libcamera/pipeline/ipu3/frames.h.clang
@@ -9,12 +9,14 @@
#include <map>
#include <memory>
#include <vector>
-#include <libcamera/controls.h>
#include <libcamera/base/signal.h>
+#include <libcamera/controls.h>
+
namespace libcamera {
class FrameBuffer;
(Ignore the '<queue>' move if you see that locally, that's a known
false-positive)
>
> >
> >> #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();
> >> +
> >
> > Did I see a commit titled that moves this later?
>
> Yes, I will squash both ;-)
> >
> >> 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.32.0
> >>
More information about the libcamera-devel
mailing list