[{"id":12669,"web_url":"https://patchwork.libcamera.org/comment/12669/","msgid":"<3418cfd0-26ab-90ec-eacb-d6da40b88cf5@ideasonboard.com>","date":"2020-09-23T12:05:37","subject":"Re: [libcamera-devel] [PATCH v3 3/8] libcamera:\n\tframe_buffer_allocator: Add clear()","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn 22/09/2020 10:47, Jacopo Mondi wrote:\n> Add a clear() method to the FrameBufferAllocator class that\n> frees all the buffers previously reserved by the allocator.\n> \n> Reviewed-by: Hirokazu Honda <hiroh@chromium.org>\n> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  include/libcamera/framebuffer_allocator.h | 1 +\n>  src/libcamera/framebuffer_allocator.cpp   | 8 ++++++++\n>  2 files changed, 9 insertions(+)\n> \n> diff --git a/include/libcamera/framebuffer_allocator.h b/include/libcamera/framebuffer_allocator.h\n> index 78f1353964eb..2a4d538a0cb2 100644\n> --- a/include/libcamera/framebuffer_allocator.h\n> +++ b/include/libcamera/framebuffer_allocator.h\n> @@ -28,6 +28,7 @@ public:\n>  \n>  \tint allocate(Stream *stream);\n>  \tint free(Stream *stream);\n> +\tvoid clear();\n>  \n>  \tbool allocated() const { return !buffers_.empty(); }\n>  \tconst std::vector<std::unique_ptr<FrameBuffer>> &buffers(Stream *stream) const;\n> diff --git a/src/libcamera/framebuffer_allocator.cpp b/src/libcamera/framebuffer_allocator.cpp\n> index 2fbba37a1b0b..7ed80011c845 100644\n> --- a/src/libcamera/framebuffer_allocator.cpp\n> +++ b/src/libcamera/framebuffer_allocator.cpp\n> @@ -125,6 +125,14 @@ int FrameBufferAllocator::free(Stream *stream)\n>  \treturn 0;\n>  }\n>  \n> +/**\n> + * \\brief Free all the buffers previously allocated\n> + */\n> +void FrameBufferAllocator::clear()\n> +{\n> +\tbuffers_.clear();\n> +}\n\nThrowing more opportunities into the bike-shed..\n\nclear doesn't fit well for me either, I see Laurent suggested freeAll()\nor such.\n\nWe could have an overload for free(no-arg) which clears 'all streams',\ni.e. free(stream) is just a filtered subset.\n\nOtherwise, reset() would also feel appropriate here.\n\nBut I can see the need to be able to reset a FrameBufferAllocator() in\nsome form, so if you're settled on the name:\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> +\n>  /**\n>   * \\fn FrameBufferAllocator::allocated()\n>   * \\brief Check if the allocator has allocated buffers for any stream\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 1C3D3C3B5B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 23 Sep 2020 12:05:43 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A1C5060576;\n\tWed, 23 Sep 2020 14:05:42 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A904960576\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 23 Sep 2020 14:05: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 2DE262FD;\n\tWed, 23 Sep 2020 14:05: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=\"UCovpqfy\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1600862740;\n\tbh=w27+iTE+YE8kOMXK6u1M8dAyqLmnAxVhb8HF0xGfrDM=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=UCovpqfyAIm+g2AuaRBvGB+hcEjy86NMEEqQrtqQYjJq0x3ZwO94ACX37JaRfVE1l\n\t8TtWU+jFxCs7F4v33lBdFVaCzodbXj3rzMDggU084laHqQH7caDE8dODuPmpL5ZbH4\n\tzkcuoktoVedrOGQ16CeQiEquppkWZY0UmLzyVJqI=","To":"Jacopo Mondi <jacopo@jmondi.org>, libcamera-devel@lists.libcamera.org","References":"<20200922094738.5327-1-jacopo@jmondi.org>\n\t<20200922094738.5327-4-jacopo@jmondi.org>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tWZw01QYHU/GUV/zHJSFk","Organization":"Ideas on Board","Message-ID":"<3418cfd0-26ab-90ec-eacb-d6da40b88cf5@ideasonboard.com>","Date":"Wed, 23 Sep 2020 13:05:37 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101\n\tThunderbird/68.10.0","MIME-Version":"1.0","In-Reply-To":"<20200922094738.5327-4-jacopo@jmondi.org>","Content-Language":"en-GB","Subject":"Re: [libcamera-devel] [PATCH v3 3/8] libcamera:\n\tframe_buffer_allocator: Add clear()","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","Cc":"hanlinchen@chromium.org","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":12746,"web_url":"https://patchwork.libcamera.org/comment/12746/","msgid":"<20200924154129.bxs74dy7mzjrfkqw@uno.localdomain>","date":"2020-09-24T15:41:29","subject":"Re: [libcamera-devel] [PATCH v3 3/8] libcamera:\n\tframe_buffer_allocator: Add clear()","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Kieran,\n\nOn Wed, Sep 23, 2020 at 01:05:37PM +0100, Kieran Bingham wrote:\n> Hi Jacopo,\n>\n> On 22/09/2020 10:47, Jacopo Mondi wrote:\n> > Add a clear() method to the FrameBufferAllocator class that\n> > frees all the buffers previously reserved by the allocator.\n> >\n> > Reviewed-by: Hirokazu Honda <hiroh@chromium.org>\n> > Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  include/libcamera/framebuffer_allocator.h | 1 +\n> >  src/libcamera/framebuffer_allocator.cpp   | 8 ++++++++\n> >  2 files changed, 9 insertions(+)\n> >\n> > diff --git a/include/libcamera/framebuffer_allocator.h b/include/libcamera/framebuffer_allocator.h\n> > index 78f1353964eb..2a4d538a0cb2 100644\n> > --- a/include/libcamera/framebuffer_allocator.h\n> > +++ b/include/libcamera/framebuffer_allocator.h\n> > @@ -28,6 +28,7 @@ public:\n> >\n> >  \tint allocate(Stream *stream);\n> >  \tint free(Stream *stream);\n> > +\tvoid clear();\n> >\n> >  \tbool allocated() const { return !buffers_.empty(); }\n> >  \tconst std::vector<std::unique_ptr<FrameBuffer>> &buffers(Stream *stream) const;\n> > diff --git a/src/libcamera/framebuffer_allocator.cpp b/src/libcamera/framebuffer_allocator.cpp\n> > index 2fbba37a1b0b..7ed80011c845 100644\n> > --- a/src/libcamera/framebuffer_allocator.cpp\n> > +++ b/src/libcamera/framebuffer_allocator.cpp\n> > @@ -125,6 +125,14 @@ int FrameBufferAllocator::free(Stream *stream)\n> >  \treturn 0;\n> >  }\n> >\n> > +/**\n> > + * \\brief Free all the buffers previously allocated\n> > + */\n> > +void FrameBufferAllocator::clear()\n> > +{\n> > +\tbuffers_.clear();\n> > +}\n>\n> Throwing more opportunities into the bike-shed..\n>\n\nBy popular demand, I'll change this\n\n> clear doesn't fit well for me either, I see Laurent suggested freeAll()\n> or such.\n>\n> We could have an overload for free(no-arg) which clears 'all streams',\n> i.e. free(stream) is just a filtered subset.\n\nI'm not thrilled by an overload :/\n\n>\n> Otherwise, reset() would also feel appropriate here.\n\nBut I like reset!\n\n>\n> But I can see the need to be able to reset a FrameBufferAllocator() in\n> some form, so if you're settled on the name:\n>\n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nThanks\n\n>\n> > +\n> >  /**\n> >   * \\fn FrameBufferAllocator::allocated()\n> >   * \\brief Check if the allocator has allocated buffers for any stream\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 7140CC3B5B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 24 Sep 2020 15:37:38 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C7B7062FE3;\n\tThu, 24 Sep 2020 17:37:37 +0200 (CEST)","from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net\n\t[217.70.183.195])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C4DBE60363\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 24 Sep 2020 17:37:36 +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 relay3-d.mail.gandi.net (Postfix) with ESMTPSA id F185B60002;\n\tThu, 24 Sep 2020 15:37:35 +0000 (UTC)"],"X-Originating-IP":"93.34.118.233","Date":"Thu, 24 Sep 2020 17:41:29 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20200924154129.bxs74dy7mzjrfkqw@uno.localdomain>","References":"<20200922094738.5327-1-jacopo@jmondi.org>\n\t<20200922094738.5327-4-jacopo@jmondi.org>\n\t<3418cfd0-26ab-90ec-eacb-d6da40b88cf5@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<3418cfd0-26ab-90ec-eacb-d6da40b88cf5@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 3/8] libcamera:\n\tframe_buffer_allocator: Add clear()","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":"hanlinchen@chromium.org, libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":12849,"web_url":"https://patchwork.libcamera.org/comment/12849/","msgid":"<20200929014026.GL14614@pendragon.ideasonboard.com>","date":"2020-09-29T01:40:26","subject":"Re: [libcamera-devel] [PATCH v3 3/8] libcamera:\n\tframe_buffer_allocator: Add clear()","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nThank you for the patch.\n\nOn Thu, Sep 24, 2020 at 05:41:29PM +0200, Jacopo Mondi wrote:\n> On Wed, Sep 23, 2020 at 01:05:37PM +0100, Kieran Bingham wrote:\n> > On 22/09/2020 10:47, Jacopo Mondi wrote:\n> > > Add a clear() method to the FrameBufferAllocator class that\n> > > frees all the buffers previously reserved by the allocator.\n> > >\n> > > Reviewed-by: Hirokazu Honda <hiroh@chromium.org>\n> > > Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> > > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > > ---\n> > >  include/libcamera/framebuffer_allocator.h | 1 +\n> > >  src/libcamera/framebuffer_allocator.cpp   | 8 ++++++++\n> > >  2 files changed, 9 insertions(+)\n> > >\n> > > diff --git a/include/libcamera/framebuffer_allocator.h b/include/libcamera/framebuffer_allocator.h\n> > > index 78f1353964eb..2a4d538a0cb2 100644\n> > > --- a/include/libcamera/framebuffer_allocator.h\n> > > +++ b/include/libcamera/framebuffer_allocator.h\n> > > @@ -28,6 +28,7 @@ public:\n> > >\n> > >  \tint allocate(Stream *stream);\n> > >  \tint free(Stream *stream);\n> > > +\tvoid clear();\n> > >\n> > >  \tbool allocated() const { return !buffers_.empty(); }\n> > >  \tconst std::vector<std::unique_ptr<FrameBuffer>> &buffers(Stream *stream) const;\n> > > diff --git a/src/libcamera/framebuffer_allocator.cpp b/src/libcamera/framebuffer_allocator.cpp\n> > > index 2fbba37a1b0b..7ed80011c845 100644\n> > > --- a/src/libcamera/framebuffer_allocator.cpp\n> > > +++ b/src/libcamera/framebuffer_allocator.cpp\n> > > @@ -125,6 +125,14 @@ int FrameBufferAllocator::free(Stream *stream)\n> > >  \treturn 0;\n> > >  }\n> > >\n> > > +/**\n> > > + * \\brief Free all the buffers previously allocated\n> > > + */\n> > > +void FrameBufferAllocator::clear()\n> > > +{\n> > > +\tbuffers_.clear();\n> > > +}\n> >\n> > Throwing more opportunities into the bike-shed..\n> \n> By popular demand, I'll change this\n> \n> > clear doesn't fit well for me either, I see Laurent suggested freeAll()\n> > or such.\n> >\n> > We could have an overload for free(no-arg) which clears 'all streams',\n> > i.e. free(stream) is just a filtered subset.\n> \n> I'm not thrilled by an overload :/\n> \n> > Otherwise, reset() would also feel appropriate here.\n> \n> But I like reset!\n\nI'd still vote for freeAll() :-) (or a free() overload as proposed by\nKieran, but I don't like that option that much). The brief documentation\nyou wrote above says \"free all\", so that would be a name that matches\nthe function's purpose quite well.\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> > But I can see the need to be able to reset a FrameBufferAllocator() in\n> > some form, so if you're settled on the name:\n> >\n> > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> \n> Thanks\n> \n> > > +\n> > >  /**\n> > >   * \\fn FrameBufferAllocator::allocated()\n> > >   * \\brief Check if the allocator has allocated buffers for any stream","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 EAC3EC3B5B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 29 Sep 2020 01:41:03 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6F8A961FE5;\n\tTue, 29 Sep 2020 03:41:03 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8990060365\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 29 Sep 2020 03:41:02 +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 ADBD1540;\n\tTue, 29 Sep 2020 03:41:01 +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=\"jHB0bggM\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1601343661;\n\tbh=wfSKeY3WikUJGxR5GMeuCfHinCFxmtS0lGnGNf3lkwA=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=jHB0bggMfsZL7pM5gB/wvQvTjZj589JcL13toJ/oYKOPSxB2jR2scRR8sTtPiBCXq\n\tvxh407sR8sSOGH4JFjV0wS4EgG/IgCcrNsSMh+Lk/yoWJ78Jw+D+v3962irYZq/Muq\n\tQ8bBmjuP1vvSz1OvhRsxyp7l1jCd4IRnMeegeEAg=","Date":"Tue, 29 Sep 2020 04:40:26 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Message-ID":"<20200929014026.GL14614@pendragon.ideasonboard.com>","References":"<20200922094738.5327-1-jacopo@jmondi.org>\n\t<20200922094738.5327-4-jacopo@jmondi.org>\n\t<3418cfd0-26ab-90ec-eacb-d6da40b88cf5@ideasonboard.com>\n\t<20200924154129.bxs74dy7mzjrfkqw@uno.localdomain>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200924154129.bxs74dy7mzjrfkqw@uno.localdomain>","Subject":"Re: [libcamera-devel] [PATCH v3 3/8] libcamera:\n\tframe_buffer_allocator: Add clear()","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":"hanlinchen@chromium.org, libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":12901,"web_url":"https://patchwork.libcamera.org/comment/12901/","msgid":"<20200930092008.qszfezmcjy5ahlg6@uno.localdomain>","date":"2020-09-30T09:20:08","subject":"Re: [libcamera-devel] [PATCH v3 3/8] libcamera:\n\tframe_buffer_allocator: Add clear()","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n\nOn Tue, Sep 29, 2020 at 04:40:26AM +0300, Laurent Pinchart wrote:\n> Hi Jacopo,\n>\n> Thank you for the patch.\n>\n> On Thu, Sep 24, 2020 at 05:41:29PM +0200, Jacopo Mondi wrote:\n> > On Wed, Sep 23, 2020 at 01:05:37PM +0100, Kieran Bingham wrote:\n> > > On 22/09/2020 10:47, Jacopo Mondi wrote:\n> > > > Add a clear() method to the FrameBufferAllocator class that\n> > > > frees all the buffers previously reserved by the allocator.\n> > > >\n> > > > Reviewed-by: Hirokazu Honda <hiroh@chromium.org>\n> > > > Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\n> > > > Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>\n> > > > ---\n> > > >  include/libcamera/framebuffer_allocator.h | 1 +\n> > > >  src/libcamera/framebuffer_allocator.cpp   | 8 ++++++++\n> > > >  2 files changed, 9 insertions(+)\n> > > >\n> > > > diff --git a/include/libcamera/framebuffer_allocator.h b/include/libcamera/framebuffer_allocator.h\n> > > > index 78f1353964eb..2a4d538a0cb2 100644\n> > > > --- a/include/libcamera/framebuffer_allocator.h\n> > > > +++ b/include/libcamera/framebuffer_allocator.h\n> > > > @@ -28,6 +28,7 @@ public:\n> > > >\n> > > >  \tint allocate(Stream *stream);\n> > > >  \tint free(Stream *stream);\n> > > > +\tvoid clear();\n> > > >\n> > > >  \tbool allocated() const { return !buffers_.empty(); }\n> > > >  \tconst std::vector<std::unique_ptr<FrameBuffer>> &buffers(Stream *stream) const;\n> > > > diff --git a/src/libcamera/framebuffer_allocator.cpp b/src/libcamera/framebuffer_allocator.cpp\n> > > > index 2fbba37a1b0b..7ed80011c845 100644\n> > > > --- a/src/libcamera/framebuffer_allocator.cpp\n> > > > +++ b/src/libcamera/framebuffer_allocator.cpp\n> > > > @@ -125,6 +125,14 @@ int FrameBufferAllocator::free(Stream *stream)\n> > > >  \treturn 0;\n> > > >  }\n> > > >\n> > > > +/**\n> > > > + * \\brief Free all the buffers previously allocated\n> > > > + */\n> > > > +void FrameBufferAllocator::clear()\n> > > > +{\n> > > > +\tbuffers_.clear();\n> > > > +}\n> > >\n> > > Throwing more opportunities into the bike-shed..\n> >\n> > By popular demand, I'll change this\n> >\n> > > clear doesn't fit well for me either, I see Laurent suggested freeAll()\n> > > or such.\n> > >\n> > > We could have an overload for free(no-arg) which clears 'all streams',\n> > > i.e. free(stream) is just a filtered subset.\n> >\n> > I'm not thrilled by an overload :/\n> >\n> > > Otherwise, reset() would also feel appropriate here.\n> >\n> > But I like reset!\n>\n> I'd still vote for freeAll() :-) (or a free() overload as proposed by\n> Kieran, but I don't like that option that much). The brief documentation\n> you wrote above says \"free all\", so that would be a name that matches\n> the function's purpose quite well.\n>\n> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>\n\nI'm not sure how long we should keep discussing something like this,\nas it's purely a matter of tastes as we have decided we don't care to\nhave an API that resembles the STL containers' one.\n\nTo cut down any further discussions I'll make it a freeAll() just because\nI don't want to spend any more time on this.\n\nA process like \"the one that keeps its point for longer wins\" is not\noptimal, if you ask me :)\n\n\n> > > But I can see the need to be able to reset a FrameBufferAllocator() in\n> > > some form, so if you're settled on the name:\n> > >\n> > > Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> >\n> > Thanks\n> >\n> > > > +\n> > > >  /**\n> > > >   * \\fn FrameBufferAllocator::allocated()\n> > > >   * \\brief Check if the allocator has allocated buffers for any stream\n>\n> --\n> Regards,\n>\n> Laurent Pinchart","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 4859BC3B5B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 30 Sep 2020 09:16:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EA2AD62209;\n\tWed, 30 Sep 2020 11:16:13 +0200 (CEST)","from relay1-d.mail.gandi.net (relay1-d.mail.gandi.net\n\t[217.70.183.193])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3AD316035F\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 30 Sep 2020 11:16:13 +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 relay1-d.mail.gandi.net (Postfix) with ESMTPSA id 51418240014;\n\tWed, 30 Sep 2020 09:16:12 +0000 (UTC)"],"X-Originating-IP":"93.34.118.233","Date":"Wed, 30 Sep 2020 11:20:08 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20200930092008.qszfezmcjy5ahlg6@uno.localdomain>","References":"<20200922094738.5327-1-jacopo@jmondi.org>\n\t<20200922094738.5327-4-jacopo@jmondi.org>\n\t<3418cfd0-26ab-90ec-eacb-d6da40b88cf5@ideasonboard.com>\n\t<20200924154129.bxs74dy7mzjrfkqw@uno.localdomain>\n\t<20200929014026.GL14614@pendragon.ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20200929014026.GL14614@pendragon.ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 3/8] libcamera:\n\tframe_buffer_allocator: Add clear()","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":"hanlinchen@chromium.org, libcamera-devel@lists.libcamera.org","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]