[PATCH v3 6/6] ipa: simple: Report exposure in metadata

Milan Zamazal mzamazal at redhat.com
Mon Jan 27 13:44:05 CET 2025


Hi Laurent,

thank you for review.

Laurent Pinchart <laurent.pinchart at ideasonboard.com> writes:

> Hi Milan,
>
> Thank you for the patch.
>
> On Mon, Jan 13, 2025 at 02:34:05PM +0100, Milan Zamazal wrote:
>> Report the exposure+gain in metadata.
>> 
>> The exposure value is especially dubious because it should be in
>> microseconds but it's handled using V4L2_CID_EXPOSURE control, which
>> doesn't specify the unit, see
>> https://www.kernel.org/doc/html/latest/userspace-api/media/v4l/control.html.
>
> Please convert it to the right unit.

But what's the original unit?  It's unspecified in the link above:

  V4L2_CID_EXPOSURE (integer)
    Exposure (cameras). [Unit?]

Is there any better source of information?

>> Signed-off-by: Milan Zamazal <mzamazal at redhat.com>
>> ---
>>  src/ipa/simple/algorithms/agc.cpp | 7 ++++++-
>>  1 file changed, 6 insertions(+), 1 deletion(-)
>> 
>> diff --git a/src/ipa/simple/algorithms/agc.cpp b/src/ipa/simple/algorithms/agc.cpp
>> index 72aade14..ba7e7adc 100644
>> --- a/src/ipa/simple/algorithms/agc.cpp
>> +++ b/src/ipa/simple/algorithms/agc.cpp
>> @@ -11,6 +11,8 @@
>>  
>>  #include <libcamera/base/log.h>
>>  
>> +#include "control_ids.h"
>> +
>>  namespace libcamera {
>>  
>>  LOG_DEFINE_CATEGORY(IPASoftExposure)
>> @@ -99,8 +101,11 @@ void Agc::process(IPAContext &context,
>>  		  [[maybe_unused]] const uint32_t frame,
>>  		  [[maybe_unused]] IPAFrameContext &frameContext,
>>  		  const SwIspStats *stats,
>> -		  [[maybe_unused]] ControlList &metadata)
>> +		  ControlList &metadata)
>>  {
>> +	metadata.set(controls::ExposureTime, frameContext.sensor.exposure);
>> +	metadata.set(controls::AnalogueGain, frameContext.sensor.gain);
>> +
>>  	/*
>>  	 * Calculate Mean Sample Value (MSV) according to formula from:
>>  	 * https://www.araa.asn.au/acra/acra2007/papers/paper84final.pdf



More information about the libcamera-devel mailing list