ipa: raspberrypi: Fix bug in IPA frame drop logic

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.

Fixes: 546154b134 ("pipeline: ipa: raspberrypi: Use IPA cookies")
Signed-off-by: Naushir Patuck <naush@raspberrypi.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: David Plowman <david.plowman@raspberrypi.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
Naushir Patuck 2022-11-30 11:37:27 +00:00 committed by Kieran Bingham
parent ac42f9278e
commit 6b03da662b

View file

@ -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;