[{"id":24353,"web_url":"https://patchwork.libcamera.org/comment/24353/","msgid":"<20220803144314.GK311202@pyrite.rasen.tech>","date":"2022-08-03T14:43:14","subject":"Re: [libcamera-devel] [PATCH 7/9] fixup: Rework flickerless\n\ttransition mode","submitter":{"id":97,"url":"https://patchwork.libcamera.org/api/people/97/","name":"Nicolas Dufresne via libcamera-devel","email":"libcamera-devel@lists.libcamera.org"},"content":"On Fri, Jul 01, 2022 at 05:46:59PM +0200, Jacopo Mondi wrote:\n> Re-work the introduction text.\n> \n> This might seems arbitrary but the new text provides a bit more context.\n> \n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n\nAcked-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  src/libcamera/control_ids.yaml | 32 ++++++++++++++++++++++++--------\n>  1 file changed, 24 insertions(+), 8 deletions(-)\n> \n> diff --git a/src/libcamera/control_ids.yaml b/src/libcamera/control_ids.yaml\n> index e6676a149795..225377cf9e76 100644\n> --- a/src/libcamera/control_ids.yaml\n> +++ b/src/libcamera/control_ids.yaml\n> @@ -218,19 +218,35 @@ controls:\n>          The set of ExposureTimeMode modes that are supported by the camera must\n>          have an intersection with the supported set of AnalogueGainMode modes.\n>  \n> -        As it takes a few frames to apply the exposure time, there is a period of\n> -        time between submitting a request with ExposureTimeMode set to Manual\n> -        and the exposure time component of the AE actually being disabled,\n> -        during which the AE algorithm can still update the exposure time. If an\n> -        application is switching from automatic and manual control and wishes\n> -        to eliminate any flicker during the switch, the following procedure is\n> -        recommended.\n> +        Flickerless exposure mode transitions\n> +\n> +        Applications that transition from ExposureTimeModeAuto to the direct\n> +        control of the exposure time should aim to do so by selecting an\n> +        ExposureTime value as close as possible to the last value computed by\n> +        the auto exposure algorithm in order to avoid any visible flickering.\n> +\n> +        To select the correct value to use as ExposureTime value, applications\n> +        should accommodate the natural delay in applying controls caused by the\n> +        capture pipeline frame depth.\n> +\n> +        When switching to manual exposure mode, applications should not\n> +        immediately specify an ExposureTime value in the same request where\n> +        ExposureTimeMode is set to Manual. They should instead wait for the\n> +        first Request where ExposureTimeMode is reported as\n> +        ExposureTimeModeManual in the Request metadata, and use the reported\n> +        ExposureTime to populate the control value in the next Request to be\n> +        queued to the Camera.\n> +\n> +        The implementation of the auto-exposure algorithm should equally try to\n> +        minimize flickering and when transitioning from manual exposure mode to\n> +        auto exposure use the last value provided by the application as starting\n> +        point.\n>  \n>          1. Start with ExposureTimeMode set to Auto\n>  \n>          2. Set ExposureTimeMode to Manual\n>  \n> -        3. Wait for the first request to be output that has ExposureTimeMode\n> +        3. Wait for the first completed request that has ExposureTimeMode\n>          set to Manual\n>  \n>          4. Copy the value reported in ExposureTime into a new request, and\n> -- \n> 2.36.1\n>","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 0604BBE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  3 Aug 2022 14:43:24 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 469A463310;\n\tWed,  3 Aug 2022 16:43:23 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id BF659603E6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  3 Aug 2022 16:43:21 +0200 (CEST)","from pyrite.rasen.tech (h175-177-042-159.catv02.itscom.jp\n\t[175.177.42.159])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5BCC18B;\n\tWed,  3 Aug 2022 16:43:20 +0200 (CEST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1659537803;\n\tbh=HFZSAIFIlqWAiOJz/WIhKAUPG4IQSaD4DfN+UoxOjcg=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=blbfsY0ffgtF4QdwUwLFsBFEz2TZdmYNKGeCycB0S2Y+OaeLDu3EPL6DXtA8VlYfU\n\tkgqe2LHxI9EqgyopJ7Iu4QHuSXaYFovrFD8Jwa3SZYxWX4jB0K5TcvFCJzbFszoa0W\n\tE7KXO+5ro71I1f2bUTN6kyb0sZGzit0Re8M8vNkva2d5yDhHGCWevG8JjXUYWY/kfY\n\tseIA6qc1LMRtR4OwaPeDWObyWWIDMH3utgzKtcI6BB7fhXVSrn2StrFLVFfS9/MNYK\n\tMsrSqubGlWldIepBOHj93yMOXiDSeCjJ69/DjyDyNaPS2DWR+CeaFGrYDb4oqnOchF\n\t1dVFMF0bDIsrw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1659537801;\n\tbh=HFZSAIFIlqWAiOJz/WIhKAUPG4IQSaD4DfN+UoxOjcg=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=m/15h/Jr4gqxE5RZEKrXnixHhwKvniu4p64MvAxCMakW2G8P/O9xovxS3kAx+912e\n\tBj7B/uQO/ric0u6gC3J04uVtiFujoeLnAPkMAzZ/6pCqJjTkPF/E3MIMftHSYM8JTg\n\tsxTgX+Wo4QwGoi3g0Vfs0R2tiFlhHxeZiErc3lQE="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"m/15h/Jr\"; dkim-atps=neutral","Date":"Wed, 3 Aug 2022 23:43:14 +0900","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<20220803144314.GK311202@pyrite.rasen.tech>","References":"<20220518134728.777709-2-paul.elder@ideasonboard.com>\n\t<20220701154701.354052-1-jacopo@jmondi.org>\n\t<20220701154701.354052-7-jacopo@jmondi.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20220701154701.354052-7-jacopo@jmondi.org>","Subject":"Re: [libcamera-devel] [PATCH 7/9] fixup: Rework flickerless\n\ttransition mode","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","From":"Paul Elder via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"paul.elder@ideasonboard.com","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]