[{"id":19013,"web_url":"https://patchwork.libcamera.org/comment/19013/","msgid":"<YSQd8jd90KpeKi6k@pendragon.ideasonboard.com>","date":"2021-08-23T22:15:14","subject":"Re: [libcamera-devel] [RFC PATCH v2 02/10] libcamera:\n\tipa_data_serializer: Modify (de)serialization for offset","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Hiro,\n\nThank you for the patch.\n\nOn Mon, Aug 23, 2021 at 10:12:13PM +0900, Hirokazu Honda wrote:\n> The offset variable is added to FrameBuffer::Plane. This modifies\n> the serialization and deserialization code for the offset variable.\n> \n> Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> ---\n>  src/libcamera/ipa_data_serializer.cpp | 5 ++++-\n>  1 file changed, 4 insertions(+), 1 deletion(-)\n> \n> diff --git a/src/libcamera/ipa_data_serializer.cpp b/src/libcamera/ipa_data_serializer.cpp\n> index 5b183c70..8d1ae4d2 100644\n> --- a/src/libcamera/ipa_data_serializer.cpp\n> +++ b/src/libcamera/ipa_data_serializer.cpp\n> @@ -569,6 +569,7 @@ FileDescriptor IPADataSerializer<FileDescriptor>::deserialize(const std::vector<\n>   * FrameBuffer::Plane is serialized as:\n>   *\n>   * 4 byte  - FileDescriptor\n> + * 4 bytes - uint32_t Offset\n>   * 4 bytes - uint32_t Length\n>   */\n>  template<>\n> @@ -586,6 +587,7 @@ IPADataSerializer<FrameBuffer::Plane>::serialize(const FrameBuffer::Plane &data,\n>  \tdataVec.insert(dataVec.end(), fdBuf.begin(), fdBuf.end());\n>  \tfdsVec.insert(fdsVec.end(), fdFds.begin(), fdFds.end());\n>  \n> +\tappendPOD<uint32_t>(dataVec, data.offset);\n>  \tappendPOD<uint32_t>(dataVec, data.length);\n>  \n>  \treturn { dataVec, fdsVec };\n> @@ -603,7 +605,8 @@ IPADataSerializer<FrameBuffer::Plane>::deserialize(std::vector<uint8_t>::const_i\n>  \n>  \tret.fd = IPADataSerializer<FileDescriptor>::deserialize(dataBegin, dataBegin + 4,\n>  \t\t\t\t\t\t\t\tfdsBegin, fdsBegin + 1);\n> -\tret.length = readPOD<uint32_t>(dataBegin, 4, dataEnd);\n> +\tret.offset = readPOD<uint32_t>(dataBegin, 1, dataEnd);\n> +\tret.length = readPOD<uint32_t>(dataBegin, 5, dataEnd);\n\nThis should be\n\n\tret.offset = readPOD<uint32_t>(dataBegin, 4, dataEnd);\n\tret.length = readPOD<uint32_t>(dataBegin, 8, dataEnd);\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n>  \n>  \treturn ret;\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 458A2BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 23 Aug 2021 22:15:27 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B382D688A3;\n\tTue, 24 Aug 2021 00:15:26 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 927D568890\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 24 Aug 2021 00:15:24 +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 1324E2A5;\n\tTue, 24 Aug 2021 00:15:24 +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=\"su7V5M1O\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1629756924;\n\tbh=/ufd4RiOu0CdiE1p4bk+idF3U09xBRAsRWFUxtJDI7A=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=su7V5M1OvvewVT58Oy/F6fn4T4vPxyL40YgbrPJkemDDgQEvnktvIs5CyWwaBas6i\n\tMYKYBYXj9PGpt21Z17PNd8bBivwvncR+OMxzCbFVQ7vv/NGoCLm1Ds4dMaW3FcTdWd\n\tpFmZ7VKSClXq9d47Z9ZEnEOp/xQ7qij3GN/blnBE=","Date":"Tue, 24 Aug 2021 01:15:14 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Hirokazu Honda <hiroh@chromium.org>","Message-ID":"<YSQd8jd90KpeKi6k@pendragon.ideasonboard.com>","References":"<20210823131221.1034059-1-hiroh@chromium.org>\n\t<20210823131221.1034059-3-hiroh@chromium.org>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210823131221.1034059-3-hiroh@chromium.org>","Subject":"Re: [libcamera-devel] [RFC PATCH v2 02/10] libcamera:\n\tipa_data_serializer: Modify (de)serialization for offset","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","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":19032,"web_url":"https://patchwork.libcamera.org/comment/19032/","msgid":"<20210825022252.GE968527@pyrite.rasen.tech>","date":"2021-08-25T02:22:52","subject":"Re: [libcamera-devel] [RFC PATCH v2 02/10] libcamera:\n\tipa_data_serializer: Modify (de)serialization for offset","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Hiro,\n\nOn Tue, Aug 24, 2021 at 01:15:14AM +0300, Laurent Pinchart wrote:\n> Hi Hiro,\n> \n> Thank you for the patch.\n> \n> On Mon, Aug 23, 2021 at 10:12:13PM +0900, Hirokazu Honda wrote:\n> > The offset variable is added to FrameBuffer::Plane. This modifies\n> > the serialization and deserialization code for the offset variable.\n> > \n> > Signed-off-by: Hirokazu Honda <hiroh@chromium.org>\n> > ---\n> >  src/libcamera/ipa_data_serializer.cpp | 5 ++++-\n> >  1 file changed, 4 insertions(+), 1 deletion(-)\n> > \n> > diff --git a/src/libcamera/ipa_data_serializer.cpp b/src/libcamera/ipa_data_serializer.cpp\n> > index 5b183c70..8d1ae4d2 100644\n> > --- a/src/libcamera/ipa_data_serializer.cpp\n> > +++ b/src/libcamera/ipa_data_serializer.cpp\n> > @@ -569,6 +569,7 @@ FileDescriptor IPADataSerializer<FileDescriptor>::deserialize(const std::vector<\n> >   * FrameBuffer::Plane is serialized as:\n> >   *\n> >   * 4 byte  - FileDescriptor\n> > + * 4 bytes - uint32_t Offset\n> >   * 4 bytes - uint32_t Length\n> >   */\n> >  template<>\n> > @@ -586,6 +587,7 @@ IPADataSerializer<FrameBuffer::Plane>::serialize(const FrameBuffer::Plane &data,\n> >  \tdataVec.insert(dataVec.end(), fdBuf.begin(), fdBuf.end());\n> >  \tfdsVec.insert(fdsVec.end(), fdFds.begin(), fdFds.end());\n> >  \n> > +\tappendPOD<uint32_t>(dataVec, data.offset);\n> >  \tappendPOD<uint32_t>(dataVec, data.length);\n> >  \n> >  \treturn { dataVec, fdsVec };\n> > @@ -603,7 +605,8 @@ IPADataSerializer<FrameBuffer::Plane>::deserialize(std::vector<uint8_t>::const_i\n> >  \n> >  \tret.fd = IPADataSerializer<FileDescriptor>::deserialize(dataBegin, dataBegin + 4,\n> >  \t\t\t\t\t\t\t\tfdsBegin, fdsBegin + 1);\n> > -\tret.length = readPOD<uint32_t>(dataBegin, 4, dataEnd);\n> > +\tret.offset = readPOD<uint32_t>(dataBegin, 1, dataEnd);\n> > +\tret.length = readPOD<uint32_t>(dataBegin, 5, dataEnd);\n> \n> This should be\n> \n> \tret.offset = readPOD<uint32_t>(dataBegin, 4, dataEnd);\n> \tret.length = readPOD<uint32_t>(dataBegin, 8, dataEnd);\n\nSorry about that, I pushed a change to FileDescriptor's serializer in\nbetween your v1 and v2 :S\n\nAlso this needs to be squashed into 1/10, otherwise serialization (and\ntherefore isolation) will be broken between 1/10 and 2/10.\n\n\nPaul\n\n> \n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n> >  \n> >  \treturn ret;\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 130B4BD87D\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 25 Aug 2021 02:23:03 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 7C571688A3;\n\tWed, 25 Aug 2021 04:23:02 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2CD526025B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 25 Aug 2021 04:23:01 +0200 (CEST)","from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 5C66324F;\n\tWed, 25 Aug 2021 04:22:59 +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=\"UNazcX5U\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1629858180;\n\tbh=NvGFod5APipAGXAfy8UI7XJZSFsfQ5B/76ZbMs5uZ+k=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=UNazcX5UoKWLJVDxIzEAFlezR3FQ3oNyZBypSzJLQmLKWb/jtAZMLmnywCbor42sw\n\tOneGiSVov3a54qD7sZhkUPFehZNa5j1KlhBYEwrUG7PtMcWVFUC1uCA2WdzHMkMXXY\n\tdOyYmJhWMXNdSDsFM3qP0NrPXP/ifjtDNGShB38U=","Date":"Wed, 25 Aug 2021 11:22:52 +0900","From":"paul.elder@ideasonboard.com","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20210825022252.GE968527@pyrite.rasen.tech>","References":"<20210823131221.1034059-1-hiroh@chromium.org>\n\t<20210823131221.1034059-3-hiroh@chromium.org>\n\t<YSQd8jd90KpeKi6k@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<YSQd8jd90KpeKi6k@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [RFC PATCH v2 02/10] libcamera:\n\tipa_data_serializer: Modify (de)serialization for offset","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","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]