ipa: ipu3: Fill AGC and AWB metadata in algorithms
Fill the frame metadata in the AGC and AWB algorithm's prepare() function. This removes the need to fill metadata manually in the IPA module's processStatsBuffer() function. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
32d5f0d2a4
commit
11f5c3ad05
5 changed files with 30 additions and 13 deletions
|
@ -14,6 +14,7 @@
|
|||
#include <libcamera/base/log.h>
|
||||
#include <libcamera/base/utils.h>
|
||||
|
||||
#include <libcamera/control_ids.h>
|
||||
#include <libcamera/ipa/core_ipa_interface.h>
|
||||
|
||||
#include "libipa/histogram.h"
|
||||
|
@ -328,7 +329,7 @@ double Agc::estimateLuminance(IPAActiveState &activeState,
|
|||
void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,
|
||||
IPAFrameContext &frameContext,
|
||||
const ipu3_uapi_stats_3a *stats,
|
||||
[[maybe_unused]] ControlList &metadata)
|
||||
ControlList &metadata)
|
||||
{
|
||||
/*
|
||||
* Estimate the gain needed to have the proportion of pixels in a given
|
||||
|
@ -365,6 +366,19 @@ void Agc::process(IPAContext &context, [[maybe_unused]] const uint32_t frame,
|
|||
|
||||
computeExposure(context, frameContext, yGain, iqMeanGain);
|
||||
frameCount_++;
|
||||
|
||||
utils::Duration exposureTime = context.configuration.sensor.lineDuration
|
||||
* frameContext.sensor.exposure;
|
||||
metadata.set(controls::AnalogueGain, frameContext.sensor.gain);
|
||||
metadata.set(controls::ExposureTime, exposureTime.get<std::micro>());
|
||||
|
||||
/* \todo Use VBlank value calculated from each frame exposure. */
|
||||
uint32_t vTotal = context.configuration.sensor.size.height
|
||||
+ context.configuration.sensor.defVBlank;
|
||||
utils::Duration frameDuration = context.configuration.sensor.lineDuration
|
||||
* vTotal;
|
||||
metadata.set(controls::FrameDuration, frameDuration.get<std::micro>());
|
||||
|
||||
}
|
||||
|
||||
REGISTER_IPA_ALGORITHM(Agc, "Agc")
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue