[{"id":16360,"web_url":"https://patchwork.libcamera.org/comment/16360/","msgid":"<8dbb5afe-af1c-d82d-e4d5-381334a77592@ideasonboard.com>","date":"2021-04-19T13:54:38","subject":"Re: [libcamera-devel] [PATCH 04/13] libcamera: rkisp1: Do not\n\tover-write metadata","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn 19/04/2021 14:14, Jacopo Mondi wrote:\n> This commit applies to the RkISP1 pipeline handler the same change\n> applied to IPU3 in commit 13a7ed7b1f1f (\"libcamera: ipu3: Do not\n> over-write metadata\").\n> \n> When a Request is completed upon receiving the IPA produced metadata,\n> the metadata associated with the Request are over-written, deleting\n> the information set at output buffer completion, such as the\n> SensorTimestamp.\n> \n> Fixes: 0eb65e14e18d (\"libcamera: pipeline: rkisp1: Attach to an IPA\")\n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 4 +++-\n>  1 file changed, 3 insertions(+), 1 deletion(-)\n> \n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> index 549f4a4e61a8..925c8c6372e0 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> @@ -362,7 +362,9 @@ void RkISP1CameraData::metadataReady(unsigned int frame, const ControlList &meta\n>  \tif (!info)\n>  \t\treturn;\n>  \n> -\tinfo->request->metadata() = metadata;\n> +\tfor (const auto &ctrl : metadata)\n> +\t\tinfo->request->metadata().set(ctrl.first, ctrl.second);\n\nThis screams to me 'ControlList->merge(&other)' ?\n\nBut even without extending the API of ControlList, this fixes an issue so:\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> +\n>  \tinfo->metadataProcessed = true;\n>  \n>  \tpipe->tryCompleteRequest(info->request);\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 AC02DBD812\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 19 Apr 2021 13:54:42 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 694D368831;\n\tMon, 19 Apr 2021 15:54:42 +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 2BB3668824\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 19 Apr 2021 15:54:41 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89244-aztw30-2-0-cust3082.18-1.cable.virginm.net [86.31.172.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id C000CD4A;\n\tMon, 19 Apr 2021 15:54:40 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"iEUmkACG\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1618840480;\n\tbh=p89gkv89aI7gD3FOiYMOIGJYriv3nh5CVOiOO57u0j8=;\n\th=Reply-To:Subject:To:References:From:Date:In-Reply-To:From;\n\tb=iEUmkACGuPbJd9nrMfP54cGgamxeXgFNc4F/CQwmM9vBzd6L6id9LCaaLGopRpV8P\n\taJuTye4RZnWuunYfcBM/p61Hn49z3dcDSN12uRHhkc5uJWxL3jfQgaewrXG3X0G62H\n\tPC7BZ6j3y7lBTm1BKwf8/EEkFGvNgIIyz2mWV96o=","To":"Jacopo Mondi <jacopo@jmondi.org>, libcamera-devel@lists.libcamera.org","References":"<20210419131433.22920-1-jacopo@jmondi.org>\n\t<20210419131433.22920-5-jacopo@jmondi.org>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Organization":"Ideas on Board","Message-ID":"<8dbb5afe-af1c-d82d-e4d5-381334a77592@ideasonboard.com>","Date":"Mon, 19 Apr 2021 14:54:38 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.7.1","MIME-Version":"1.0","In-Reply-To":"<20210419131433.22920-5-jacopo@jmondi.org>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH 04/13] libcamera: rkisp1: Do not\n\tover-write metadata","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>","Reply-To":"kieran.bingham@ideasonboard.com","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":16363,"web_url":"https://patchwork.libcamera.org/comment/16363/","msgid":"<20210419135936.jbeqosucisdcbyjn@uno.localdomain>","date":"2021-04-19T13:59:36","subject":"Re: [libcamera-devel] [PATCH 04/13] libcamera: rkisp1: Do not\n\tover-write metadata","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Kieran,\n\nOn Mon, Apr 19, 2021 at 02:54:38PM +0100, Kieran Bingham wrote:\n> Hi Jacopo,\n>\n> On 19/04/2021 14:14, Jacopo Mondi wrote:\n> > This commit applies to the RkISP1 pipeline handler the same change\n> > applied to IPU3 in commit 13a7ed7b1f1f (\"libcamera: ipu3: Do not\n> > over-write metadata\").\n> >\n> > When a Request is completed upon receiving the IPA produced metadata,\n> > the metadata associated with the Request are over-written, deleting\n> > the information set at output buffer completion, such as the\n> > SensorTimestamp.\n> >\n> > Fixes: 0eb65e14e18d (\"libcamera: pipeline: rkisp1: Attach to an IPA\")\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 4 +++-\n> >  1 file changed, 3 insertions(+), 1 deletion(-)\n> >\n> > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > index 549f4a4e61a8..925c8c6372e0 100644\n> > --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > @@ -362,7 +362,9 @@ void RkISP1CameraData::metadataReady(unsigned int frame, const ControlList &meta\n> >  \tif (!info)\n> >  \t\treturn;\n> >\n> > -\tinfo->request->metadata() = metadata;\n> > +\tfor (const auto &ctrl : metadata)\n> > +\t\tinfo->request->metadata().set(ctrl.first, ctrl.second);\n>\n> This screams to me 'ControlList->merge(&other)' ?\n\nI considered operator+= too\n\nBut I wonder if having this sequence explicit in ph that needs to do\nso isn't better...\n\n>\n> But even without extending the API of ControlList, this fixes an issue so:\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>\n> > +\n> >  \tinfo->metadataProcessed = true;\n> >\n> >  \tpipe->tryCompleteRequest(info->request);\n> >\n>\n> --\n> Regards\n> --\n> Kieran","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 C8250BD814\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 19 Apr 2021 13:58:58 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 917E86883A;\n\tMon, 19 Apr 2021 15:58:58 +0200 (CEST)","from relay5-d.mail.gandi.net (relay5-d.mail.gandi.net\n\t[217.70.183.197])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id DB83268824\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 19 Apr 2021 15:58:56 +0200 (CEST)","from uno.localdomain (93-34-118-233.ip49.fastwebnet.it\n\t[93.34.118.233]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay5-d.mail.gandi.net (Postfix) with ESMTPSA id 7D8561C0010;\n\tMon, 19 Apr 2021 13:58:56 +0000 (UTC)"],"X-Originating-IP":"93.34.118.233","Date":"Mon, 19 Apr 2021 15:59:36 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20210419135936.jbeqosucisdcbyjn@uno.localdomain>","References":"<20210419131433.22920-1-jacopo@jmondi.org>\n\t<20210419131433.22920-5-jacopo@jmondi.org>\n\t<8dbb5afe-af1c-d82d-e4d5-381334a77592@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<8dbb5afe-af1c-d82d-e4d5-381334a77592@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 04/13] libcamera: rkisp1: Do not\n\tover-write metadata","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":16404,"web_url":"https://patchwork.libcamera.org/comment/16404/","msgid":"<YH9JmdvWqOckyu2Z@pendragon.ideasonboard.com>","date":"2021-04-20T21:37:29","subject":"Re: [libcamera-devel] [PATCH 04/13] libcamera: rkisp1: Do not\n\tover-write metadata","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Mon, Apr 19, 2021 at 02:54:38PM +0100, Kieran Bingham wrote:\n> Hi Jacopo,\n> \n> On 19/04/2021 14:14, Jacopo Mondi wrote:\n> > This commit applies to the RkISP1 pipeline handler the same change\n> > applied to IPU3 in commit 13a7ed7b1f1f (\"libcamera: ipu3: Do not\n> > over-write metadata\").\n> > \n> > When a Request is completed upon receiving the IPA produced metadata,\n> > the metadata associated with the Request are over-written, deleting\n> > the information set at output buffer completion, such as the\n> > SensorTimestamp.\n> > \n> > Fixes: 0eb65e14e18d (\"libcamera: pipeline: rkisp1: Attach to an IPA\")\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  src/libcamera/pipeline/rkisp1/rkisp1.cpp | 4 +++-\n> >  1 file changed, 3 insertions(+), 1 deletion(-)\n> > \n> > diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > index 549f4a4e61a8..925c8c6372e0 100644\n> > --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp\n> > @@ -362,7 +362,9 @@ void RkISP1CameraData::metadataReady(unsigned int frame, const ControlList &meta\n> >  \tif (!info)\n> >  \t\treturn;\n> >  \n> > -\tinfo->request->metadata() = metadata;\n> > +\tfor (const auto &ctrl : metadata)\n> > +\t\tinfo->request->metadata().set(ctrl.first, ctrl.second);\n> \n> This screams to me 'ControlList->merge(&other)' ?\n\nhttps://patchwork.libcamera.org/patch/11364/\n\nThis may be a good occasion to test that patch ?\n\n> But even without extending the API of ControlList, this fixes an issue so:\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> > +\n> >  \tinfo->metadataProcessed = true;\n> >  \n> >  \tpipe->tryCompleteRequest(info->request);","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 634CCBDB15\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 20 Apr 2021 21:37:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DFED168840;\n\tTue, 20 Apr 2021 23:37:34 +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 4A0D460516\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 20 Apr 2021 23:37:34 +0200 (CEST)","from pendragon.ideasonboard.com (62-78-145-57.bb.dnainternet.fi\n\t[62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id AF71A411;\n\tTue, 20 Apr 2021 23:37:33 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"u60sN7Vw\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1618954653;\n\tbh=omt+VIgVMcxpdNAxG+ZnkV6lgw+r0kX2PeLBcpgEevU=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=u60sN7VwRpjK/9qzhcvWIohsOxtBz76cXJa0BayxTfO1SVi9hyEoFSqe/EFQHlthD\n\tBFl5QoM5p5usNi6n09Ei2hgN0f32SSXYhsvrhdee0jYnd/Cdleez1aaNmpmX7TIlXV\n\tWvsvevpCHBqNi4vUXdZk6FkR68BFC5/1tPVIPsXI=","Date":"Wed, 21 Apr 2021 00:37:29 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YH9JmdvWqOckyu2Z@pendragon.ideasonboard.com>","References":"<20210419131433.22920-1-jacopo@jmondi.org>\n\t<20210419131433.22920-5-jacopo@jmondi.org>\n\t<8dbb5afe-af1c-d82d-e4d5-381334a77592@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<8dbb5afe-af1c-d82d-e4d5-381334a77592@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 04/13] libcamera: rkisp1: Do not\n\tover-write metadata","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>","Cc":"libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]