[RFC PATCH 6/7] ipa: rkisp1: Add a lookahead of one frame when sending sensor controls
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Sun Jan 12 23:12:37 CET 2025
Hi Stefan,
Thank you for the patch.
On Fri, Dec 20, 2024 at 05:26:52PM +0100, Stefan Klug wrote:
> When the delayed controls instance of the pipeline is reset, it initializes
> the values for frame 0 as being sent out to the sensor (which is
> correct). The next sequence number that can be pushed to delayed
> controls is therefore number 1. Ensure that the IPA never tries to
> queue controls for frame 0.
What happens to the controls passed in request 0 ?
I know the existing code doesn't behave correctly, but it feels that
this series is piling hacks towards a result that will be even more
difficult to untangle :-S I'd like a second opinion on this.
> Signed-off-by: Stefan Klug <stefan.klug at ideasonboard.com>
> ---
> src/ipa/rkisp1/rkisp1.cpp | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index 799fe0846635..5d439e0d727b 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -386,10 +386,13 @@ void IPARkISP1::processStats(const uint32_t frame, const uint32_t bufferId,
>
> /*
> * \todo: Here we should do a lookahead that takes the sensor delays
> - * into account.
> + * into account. A lookahead of 1 is the smallest lookahead possible to
> + * ensure we don't try to send the controls for a frame that we already
> + * received.
> */
> - ControlList ctrls = getSensorControls(frame);
> - setSensorControls.emit(frame, ctrls);
> + int lookahead = 1;
> + ControlList ctrls = getSensorControls(frame + lookahead);
> + setSensorControls.emit(frame + lookahead, ctrls);
>
> context_.debugMetadata.moveEntries(metadata);
> metadataReady.emit(frame, metadata);
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list