[{"id":1667,"web_url":"https://patchwork.libcamera.org/comment/1667/","msgid":"<20190523075337.7fkb2xsctoozvgnd@uno.localdomain>","date":"2019-05-23T07:53:37","subject":"Re: [libcamera-devel] [PATCH] libcamera: camera: Simplify create()\n\timplementation","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"Hi Laurent,\n   this looks nicer indeed!\n\nThanks\n   j\n\nOn Thu, May 23, 2019 at 01:12:37AM +0300, Laurent Pinchart wrote:\n> Now that the Camera class inherits from std::enable_shared_from_this, we\n> don't need to use std::allocate_shared anymore and can simplify the\n> Camera::create() implementation. This fixes compilation with recent\n> versions of libc++ whose std::allocate_shared implementation isn't\n> compatible with classes that are not publicly constructible.\n>\n> The custom allocator is removed, but a custom deleter is needed as the\n> Camera destructor is private.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/libcamera/camera.cpp | 17 +++++------------\n>  1 file changed, 5 insertions(+), 12 deletions(-)\n>\n> diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> index 0f45ab7e4358..617ea99cdf71 100644\n> --- a/src/libcamera/camera.cpp\n> +++ b/src/libcamera/camera.cpp\n> @@ -358,24 +358,17 @@ std::shared_ptr<Camera> Camera::create(PipelineHandler *pipe,\n>  \t\t\t\t       const std::string &name,\n>  \t\t\t\t       const std::set<Stream *> &streams)\n>  {\n> -\tstruct Allocator : std::allocator<Camera> {\n> -\t\tvoid construct(void *p, PipelineHandler *pipe,\n> -\t\t\t       const std::string &name)\n> +\tstruct Deleter : std::default_delete<Camera> {\n> +\t\tvoid operator()(Camera *camera)\n>  \t\t{\n> -\t\t\t::new(p) Camera(pipe, name);\n> -\t\t}\n> -\t\tvoid destroy(Camera *p)\n> -\t\t{\n> -\t\t\tp->~Camera();\n> +\t\t\tdelete camera;\n>  \t\t}\n>  \t};\n>\n> -\tstd::shared_ptr<Camera> camera =\n> -\t\tstd::allocate_shared<Camera>(Allocator(), pipe, name);\n> -\n> +\tCamera *camera = new Camera(pipe, name);\n>  \tcamera->streams_ = streams;\n>\n> -\treturn camera;\n> +\treturn std::shared_ptr<Camera>(camera, Deleter());\n>  }\n>\n>  /**\n> --\n> Regards,\n>\n> Laurent Pinchart\n>\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["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 7061260BBB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 23 May 2019 09:52:30 +0200 (CEST)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay1-d.mail.gandi.net (Postfix) with ESMTPSA id D5DEB24000B;\n\tThu, 23 May 2019 07:52:29 +0000 (UTC)"],"X-Originating-IP":"2.224.242.101","Date":"Thu, 23 May 2019 09:53:37 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190523075337.7fkb2xsctoozvgnd@uno.localdomain>","References":"<20190522221237.19400-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"k3wacyol54qm6cc4\"","Content-Disposition":"inline","In-Reply-To":"<20190522221237.19400-1-laurent.pinchart@ideasonboard.com>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH] libcamera: camera: Simplify create()\n\timplementation","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Thu, 23 May 2019 07:52:30 -0000"}},{"id":1668,"web_url":"https://patchwork.libcamera.org/comment/1668/","msgid":"<20190523075803.gxol7h72aks2j5qt@uno.localdomain>","date":"2019-05-23T07:58:03","subject":"Re: [libcamera-devel] [PATCH] libcamera: camera: Simplify create()\n\timplementation","submitter":{"id":3,"url":"https://patchwork.libcamera.org/api/people/3/","name":"Jacopo Mondi","email":"jacopo@jmondi.org"},"content":"On Thu, May 23, 2019 at 09:53:37AM +0200, Jacopo Mondi wrote:\n> Hi Laurent,\n>    this looks nicer indeed!\n\nI thing I've lost one:\nReviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n\n>\n> Thanks\n>    j\n>\n> On Thu, May 23, 2019 at 01:12:37AM +0300, Laurent Pinchart wrote:\n> > Now that the Camera class inherits from std::enable_shared_from_this, we\n> > don't need to use std::allocate_shared anymore and can simplify the\n> > Camera::create() implementation. This fixes compilation with recent\n> > versions of libc++ whose std::allocate_shared implementation isn't\n> > compatible with classes that are not publicly constructible.\n> >\n> > The custom allocator is removed, but a custom deleter is needed as the\n> > Camera destructor is private.\n> >\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  src/libcamera/camera.cpp | 17 +++++------------\n> >  1 file changed, 5 insertions(+), 12 deletions(-)\n> >\n> > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> > index 0f45ab7e4358..617ea99cdf71 100644\n> > --- a/src/libcamera/camera.cpp\n> > +++ b/src/libcamera/camera.cpp\n> > @@ -358,24 +358,17 @@ std::shared_ptr<Camera> Camera::create(PipelineHandler *pipe,\n> >  \t\t\t\t       const std::string &name,\n> >  \t\t\t\t       const std::set<Stream *> &streams)\n> >  {\n> > -\tstruct Allocator : std::allocator<Camera> {\n> > -\t\tvoid construct(void *p, PipelineHandler *pipe,\n> > -\t\t\t       const std::string &name)\n> > +\tstruct Deleter : std::default_delete<Camera> {\n> > +\t\tvoid operator()(Camera *camera)\n> >  \t\t{\n> > -\t\t\t::new(p) Camera(pipe, name);\n> > -\t\t}\n> > -\t\tvoid destroy(Camera *p)\n> > -\t\t{\n> > -\t\t\tp->~Camera();\n> > +\t\t\tdelete camera;\n> >  \t\t}\n> >  \t};\n> >\n> > -\tstd::shared_ptr<Camera> camera =\n> > -\t\tstd::allocate_shared<Camera>(Allocator(), pipe, name);\n> > -\n> > +\tCamera *camera = new Camera(pipe, name);\n> >  \tcamera->streams_ = streams;\n> >\n> > -\treturn camera;\n> > +\treturn std::shared_ptr<Camera>(camera, Deleter());\n> >  }\n> >\n> >  /**\n> > --\n> > Regards,\n> >\n> > Laurent Pinchart\n> >\n> > _______________________________________________\n> > libcamera-devel mailing list\n> > libcamera-devel@lists.libcamera.org\n> > https://lists.libcamera.org/listinfo/libcamera-devel\n\n\n\n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","headers":{"Return-Path":"<jacopo@jmondi.org>","Received":["from relay11.mail.gandi.net (relay11.mail.gandi.net\n\t[217.70.178.231])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9820D60BBB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 23 May 2019 09:56:59 +0200 (CEST)","from uno.localdomain (2-224-242-101.ip172.fastwebnet.it\n\t[2.224.242.101]) (Authenticated sender: jacopo@jmondi.org)\n\tby relay11.mail.gandi.net (Postfix) with ESMTPSA id 143C5100010;\n\tThu, 23 May 2019 07:56:55 +0000 (UTC)"],"Date":"Thu, 23 May 2019 09:58:03 +0200","From":"Jacopo Mondi <jacopo@jmondi.org>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190523075803.gxol7h72aks2j5qt@uno.localdomain>","References":"<20190522221237.19400-1-laurent.pinchart@ideasonboard.com>\n\t<20190523075337.7fkb2xsctoozvgnd@uno.localdomain>","MIME-Version":"1.0","Content-Type":"multipart/signed; micalg=pgp-sha256;\n\tprotocol=\"application/pgp-signature\"; boundary=\"th3vqppzyjjkpzre\"","Content-Disposition":"inline","In-Reply-To":"<20190523075337.7fkb2xsctoozvgnd@uno.localdomain>","User-Agent":"NeoMutt/20180716","Subject":"Re: [libcamera-devel] [PATCH] libcamera: camera: Simplify create()\n\timplementation","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Thu, 23 May 2019 07:56:59 -0000"}},{"id":1669,"web_url":"https://patchwork.libcamera.org/comment/1669/","msgid":"<20190523081024.GD4745@pendragon.ideasonboard.com>","date":"2019-05-23T08:10:24","subject":"Re: [libcamera-devel] [PATCH] libcamera: camera: Simplify create()\n\timplementation","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Jacopo,\n\nOn Thu, May 23, 2019 at 09:53:37AM +0200, Jacopo Mondi wrote:\n> Hi Laurent,\n>    this looks nicer indeed!\n\nNot just that, but it now compiles :-)\n\n> On Thu, May 23, 2019 at 01:12:37AM +0300, Laurent Pinchart wrote:\n> > Now that the Camera class inherits from std::enable_shared_from_this, we\n> > don't need to use std::allocate_shared anymore and can simplify the\n> > Camera::create() implementation. This fixes compilation with recent\n> > versions of libc++ whose std::allocate_shared implementation isn't\n> > compatible with classes that are not publicly constructible.\n> >\n> > The custom allocator is removed, but a custom deleter is needed as the\n> > Camera destructor is private.\n> >\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  src/libcamera/camera.cpp | 17 +++++------------\n> >  1 file changed, 5 insertions(+), 12 deletions(-)\n> >\n> > diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n> > index 0f45ab7e4358..617ea99cdf71 100644\n> > --- a/src/libcamera/camera.cpp\n> > +++ b/src/libcamera/camera.cpp\n> > @@ -358,24 +358,17 @@ std::shared_ptr<Camera> Camera::create(PipelineHandler *pipe,\n> >  \t\t\t\t       const std::string &name,\n> >  \t\t\t\t       const std::set<Stream *> &streams)\n> >  {\n> > -\tstruct Allocator : std::allocator<Camera> {\n> > -\t\tvoid construct(void *p, PipelineHandler *pipe,\n> > -\t\t\t       const std::string &name)\n> > +\tstruct Deleter : std::default_delete<Camera> {\n> > +\t\tvoid operator()(Camera *camera)\n> >  \t\t{\n> > -\t\t\t::new(p) Camera(pipe, name);\n> > -\t\t}\n> > -\t\tvoid destroy(Camera *p)\n> > -\t\t{\n> > -\t\t\tp->~Camera();\n> > +\t\t\tdelete camera;\n> >  \t\t}\n> >  \t};\n> >\n> > -\tstd::shared_ptr<Camera> camera =\n> > -\t\tstd::allocate_shared<Camera>(Allocator(), pipe, name);\n> > -\n> > +\tCamera *camera = new Camera(pipe, name);\n> >  \tcamera->streams_ = streams;\n> >\n> > -\treturn camera;\n> > +\treturn std::shared_ptr<Camera>(camera, Deleter());\n> >  }\n> >\n> >  /**","headers":{"Return-Path":"<laurent.pinchart@ideasonboard.com>","Received":["from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 39C9960BBB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 23 May 2019 10:10:46 +0200 (CEST)","from pendragon.ideasonboard.com (85-76-106-214-nat.elisa-mobile.fi\n\t[85.76.106.214])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 66275337;\n\tThu, 23 May 2019 10:10:45 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1558599045;\n\tbh=vlW5vogUP+oo1QbNssm/3LNoaOpZn5dLClyWXR72xrQ=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=E8yNiQs05Z60l5tmvdIUA8itaPzL0j6hSe71RsiHPZxjLTC3Sv8WiZQp0TDtvcWt7\n\tpCygek0rREgeL3l4hfB/0srE4MZBpNbcUYWS1drG/5gpVPGdbDZrfazvANPQoB7B7j\n\tS9mmOwgeqSUBpfZ6ivBeH6jm+KJct8+FbjiSuTnI=","Date":"Thu, 23 May 2019 11:10:24 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Jacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","Message-ID":"<20190523081024.GD4745@pendragon.ideasonboard.com>","References":"<20190522221237.19400-1-laurent.pinchart@ideasonboard.com>\n\t<20190523075337.7fkb2xsctoozvgnd@uno.localdomain>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20190523075337.7fkb2xsctoozvgnd@uno.localdomain>","User-Agent":"Mutt/1.10.1 (2018-07-13)","Subject":"Re: [libcamera-devel] [PATCH] libcamera: camera: Simplify create()\n\timplementation","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Thu, 23 May 2019 08:10:46 -0000"}},{"id":1670,"web_url":"https://patchwork.libcamera.org/comment/1670/","msgid":"<4795eb54-323a-b92a-a87c-3fb395c23147@ideasonboard.com>","date":"2019-05-23T08:51:48","subject":"Re: [libcamera-devel] [PATCH] libcamera: camera: Simplify create()\n\timplementation","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Hi Laurent,\n\nOn 23/05/2019 09:10, Laurent Pinchart wrote:\n> Hi Jacopo,\n> \n> On Thu, May 23, 2019 at 09:53:37AM +0200, Jacopo Mondi wrote:\n>> Hi Laurent,\n>>    this looks nicer indeed!\n> \n> Not just that, but it now compiles :-)\n\nWell we can't argue with that then :-)\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n\n> \n>> On Thu, May 23, 2019 at 01:12:37AM +0300, Laurent Pinchart wrote:\n>>> Now that the Camera class inherits from std::enable_shared_from_this, we\n>>> don't need to use std::allocate_shared anymore and can simplify the\n>>> Camera::create() implementation. This fixes compilation with recent\n>>> versions of libc++ whose std::allocate_shared implementation isn't\n>>> compatible with classes that are not publicly constructible.\n>>>\n>>> The custom allocator is removed, but a custom deleter is needed as the\n>>> Camera destructor is private.\n>>>\n>>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>>> ---\n>>>  src/libcamera/camera.cpp | 17 +++++------------\n>>>  1 file changed, 5 insertions(+), 12 deletions(-)\n>>>\n>>> diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\n>>> index 0f45ab7e4358..617ea99cdf71 100644\n>>> --- a/src/libcamera/camera.cpp\n>>> +++ b/src/libcamera/camera.cpp\n>>> @@ -358,24 +358,17 @@ std::shared_ptr<Camera> Camera::create(PipelineHandler *pipe,\n>>>  \t\t\t\t       const std::string &name,\n>>>  \t\t\t\t       const std::set<Stream *> &streams)\n>>>  {\n>>> -\tstruct Allocator : std::allocator<Camera> {\n>>> -\t\tvoid construct(void *p, PipelineHandler *pipe,\n>>> -\t\t\t       const std::string &name)\n>>> +\tstruct Deleter : std::default_delete<Camera> {\n>>> +\t\tvoid operator()(Camera *camera)\n>>>  \t\t{\n>>> -\t\t\t::new(p) Camera(pipe, name);\n>>> -\t\t}\n>>> -\t\tvoid destroy(Camera *p)\n>>> -\t\t{\n>>> -\t\t\tp->~Camera();\n>>> +\t\t\tdelete camera;\n>>>  \t\t}\n>>>  \t};\n>>>\n>>> -\tstd::shared_ptr<Camera> camera =\n>>> -\t\tstd::allocate_shared<Camera>(Allocator(), pipe, name);\n>>> -\n>>> +\tCamera *camera = new Camera(pipe, name);\n>>>  \tcamera->streams_ = streams;\n>>>\n>>> -\treturn camera;\n>>> +\treturn std::shared_ptr<Camera>(camera, Deleter());\n>>>  }\n>>>\n>>>  /**\n>","headers":{"Return-Path":"<kieran.bingham@ideasonboard.com>","Received":["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 3F9F660C02\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 23 May 2019 10:51:52 +0200 (CEST)","from [192.168.0.20]\n\t(cpc89242-aztw30-2-0-cust488.18-1.cable.virginm.net [86.31.129.233])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 69F96583;\n\tThu, 23 May 2019 10:51:51 +0200 (CEST)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1558601511;\n\tbh=JxYfSR//i4IDNbuIof7PqIsXeu85QeJoWSQDfi3kBW8=;\n\th=Reply-To:Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=sbqLrTQJKPfI54uqqie/nrWlukMkp15vmm80iyE8FzUxJsA2Hcd0BGremrxes+zPI\n\tXfDMsnu7wdWBziM37t14g0da06/ilC4odPLdVns76QRR8UI4t/Vg5LCqp2J3NvbXeh\n\t2xrwu4ot/qrY1a+o/Gg7hRrs4/H6Egkh0o0I7Vpk=","Reply-To":"kieran.bingham@ideasonboard.com","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tJacopo Mondi <jacopo@jmondi.org>","Cc":"libcamera-devel@lists.libcamera.org","References":"<20190522221237.19400-1-laurent.pinchart@ideasonboard.com>\n\t<20190523075337.7fkb2xsctoozvgnd@uno.localdomain>\n\t<20190523081024.GD4745@pendragon.ideasonboard.com>","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Openpgp":"preference=signencrypt","Autocrypt":"addr=kieran.bingham@ideasonboard.com; keydata=\n\t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\n\tsbsRB8KNNvVXBOVNwko86rQqF9drZuw=","Organization":"Ideas on Board","Message-ID":"<4795eb54-323a-b92a-a87c-3fb395c23147@ideasonboard.com>","Date":"Thu, 23 May 2019 09:51:48 +0100","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101\n\tThunderbird/60.6.1","MIME-Version":"1.0","In-Reply-To":"<20190523081024.GD4745@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=utf-8","Content-Language":"en-GB","Content-Transfer-Encoding":"7bit","Subject":"Re: [libcamera-devel] [PATCH] libcamera: camera: Simplify create()\n\timplementation","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.23","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>","X-List-Received-Date":"Thu, 23 May 2019 08:51:52 -0000"}}]