[libcamera-devel] [PATCH] ipa: raspberrypi: Fix bug in IPA frame drop logic

Kieran Bingham kieran.bingham at ideasonboard.com
Wed Nov 30 13:24:07 CET 2022


Quoting Naushir Patuck via libcamera-devel (2022-11-30 11:37:27)
> Fix a bug in the IPA frame dropping (for rate control) logic, where the
> metadata for the current context was copied from itself (i.e. a no-op), instead
> of being copied from the previous context.
> 
> This bug does not occur in normal conditions, only when running with a low
> exposure time and unconstrained framerate, which happens in a particular
> picamera2 test.
> 

I thought that -1 being excluded from 0 on v1 would cause problems ;-)

Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

> Fixes: 546154b13433 ("pipeline: ipa: raspberrypi: Use IPA cookies")
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> ---
>  src/ipa/raspberrypi/raspberrypi.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
> index 0f914f841e54..bead436def3c 100644
> --- a/src/ipa/raspberrypi/raspberrypi.cpp
> +++ b/src/ipa/raspberrypi/raspberrypi.cpp
> @@ -1062,7 +1062,7 @@ void IPARPi::prepareISP(const ISPConfig &data)
>                  * in helper_->Prepare().
>                  */
>                 RPiController::Metadata &lastMetadata =
> -                       rpiMetadata_[ipaContext ? ipaContext : rpiMetadata_.size()];
> +                       rpiMetadata_[(ipaContext ? ipaContext : rpiMetadata_.size()) - 1];
>                 rpiMetadata.mergeCopy(lastMetadata);
>                 processPending_ = false;
>                 return;
> -- 
> 2.25.1
>


More information about the libcamera-devel mailing list