[v2,3/9] ipa: libipa: agc: Report `FrameDurationLimits`
diff mbox series

Message ID 20260925102551.137108-4-barnabas.pocze@ideasonboard.com
State New
Headers show
Series
  • ipa: libipa: agc: Take exposure margin into account
Related show

Commit Message

Barnabás Pőcze Sept. 25, 2026, 10:25 a.m. UTC
`FrameDurationLimits` can be reported in metadata, to signal the exact
limits that were used when processing the frame. This was missing from
the agc algorithm, so add it.

Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
---
 src/ipa/libipa/agc.cpp | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Barnabás Pőcze Sept. 25, 2026, 11:58 a.m. UTC | #1
2026. 09. 25. 12:25 keltezéssel, Barnabás Pőcze írta:
> `FrameDurationLimits` can be reported in metadata, to signal the exact
> limits that were used when processing the frame. This was missing from
> the agc algorithm, so add it.
> 
> Signed-off-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>
> ---
>   src/ipa/libipa/agc.cpp | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/src/ipa/libipa/agc.cpp b/src/ipa/libipa/agc.cpp
> index a177dba9d8..3f01074d7c 100644
> --- a/src/ipa/libipa/agc.cpp
> +++ b/src/ipa/libipa/agc.cpp
> @@ -869,6 +869,10 @@ void AgcAlgorithm::fillMetadata(const agc::Session &session,
>   	metadata.set(controls::ExposureTime,
>   		     utils::Duration(session.lineDuration * frameContext.exposure).get<std::micro>());
>   	metadata.set(controls::FrameDuration, frameContext.frameDuration.get<std::micro>());
> +	metadata.set(controls::FrameDurationLimits, {
> +		static_cast<int64_t>(frameContext.minFrameDuration.get<std::micro>()),
> +		static_cast<int64_t>(frameContext.maxFrameDuration.get<std::micro>()),
> +	});

I changed this to:

         metadata.set(controls::FrameDurationLimits,
		     { static_cast<int64_t>(frameContext.minFrameDuration.get<std::micro>()),
		       static_cast<int64_t>(frameContext.maxFrameDuration.get<std::micro>()) });


for clang-format.

>   	metadata.set(controls::ExposureTimeMode, frameContext.autoExposureEnabled
>   						 ? controls::ExposureTimeModeAuto
>   						 : controls::ExposureTimeModeManual);

Patch
diff mbox series

diff --git a/src/ipa/libipa/agc.cpp b/src/ipa/libipa/agc.cpp
index a177dba9d8..3f01074d7c 100644
--- a/src/ipa/libipa/agc.cpp
+++ b/src/ipa/libipa/agc.cpp
@@ -869,6 +869,10 @@  void AgcAlgorithm::fillMetadata(const agc::Session &session,
 	metadata.set(controls::ExposureTime,
 		     utils::Duration(session.lineDuration * frameContext.exposure).get<std::micro>());
 	metadata.set(controls::FrameDuration, frameContext.frameDuration.get<std::micro>());
+	metadata.set(controls::FrameDurationLimits, {
+		static_cast<int64_t>(frameContext.minFrameDuration.get<std::micro>()),
+		static_cast<int64_t>(frameContext.maxFrameDuration.get<std::micro>()),
+	});
 	metadata.set(controls::ExposureTimeMode, frameContext.autoExposureEnabled
 						 ? controls::ExposureTimeModeAuto
 						 : controls::ExposureTimeModeManual);