[{"id":17960,"web_url":"https://patchwork.libcamera.org/comment/17960/","msgid":"<20210705031155.GC2510@pyrite.rasen.tech>","date":"2021-07-05T03:11:55","subject":"Re: [libcamera-devel] [PATCH 1/2] android: Disable copy and move\n\tfor CameraHalManager","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Laurent,\n\nOn Mon, Jul 05, 2021 at 02:36:19AM +0300, Laurent Pinchart wrote:\n> The CameraHalManager should be instantiated once only, and never copied\n> or moved. Disable copying and moving.\n> \n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> ---\n>  src/android/camera_hal_manager.h | 3 +++\n>  1 file changed, 3 insertions(+)\n> \n> diff --git a/src/android/camera_hal_manager.h b/src/android/camera_hal_manager.h\n> index db9354a73140..ee3fb3ad48e9 100644\n> --- a/src/android/camera_hal_manager.h\n> +++ b/src/android/camera_hal_manager.h\n> @@ -18,6 +18,7 @@\n>  #include <system/camera_metadata.h>\n>  \n>  #include <libcamera/camera_manager.h>\n> +#include <libcamera/class.h>\n\nlibcamera/base/class.h\n\nOther than that,\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n>  \n>  #include \"camera_hal_config.h\"\n>  \n> @@ -40,6 +41,8 @@ public:\n>  \tvoid setCallbacks(const camera_module_callbacks_t *callbacks);\n>  \n>  private:\n> +\tLIBCAMERA_DISABLE_COPY_AND_MOVE(CameraHalManager)\n> +\n>  \tusing Mutex = std::mutex;\n>  \tusing MutexLocker = std::unique_lock<std::mutex>;","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 53BF7BD794\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  5 Jul 2021 03:12:05 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D268768500;\n\tMon,  5 Jul 2021 05:12:04 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 9AE1760285\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  5 Jul 2021 05:12:03 +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 3BE4FE7;\n\tMon,  5 Jul 2021 05:12:01 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"mY51o8Jv\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1625454723;\n\tbh=fz6JLqWXJYx6187FAdRzVp3V/yjwq+G9v2ezbyC8xCk=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=mY51o8JvcaXs1I4pIicDspG0Uf1Gt0xYY3d4/Sf8HXyHTjJg0ZB2Kpjj87zl9C207\n\tJ6CFg21/sMo9rHhV0Jq1R4k3vtDn/4qA8+Q5DOiIfBGHNvsnRl6m+nfyp095vz5wuw\n\tYQhG/LotoKQyZfNnLpd4vA1YpRSrrwqXR1Ri4zTQ=","Date":"Mon, 5 Jul 2021 12:11:55 +0900","From":"paul.elder@ideasonboard.com","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Message-ID":"<20210705031155.GC2510@pyrite.rasen.tech>","References":"<20210704233620.9145-1-laurent.pinchart@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=us-ascii","Content-Disposition":"inline","In-Reply-To":"<20210704233620.9145-1-laurent.pinchart@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH 1/2] android: Disable copy and move\n\tfor CameraHalManager","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":17962,"web_url":"https://patchwork.libcamera.org/comment/17962/","msgid":"<YOJ6Y4MLCJ4hXzil@pendragon.ideasonboard.com>","date":"2021-07-05T03:20:03","subject":"Re: [libcamera-devel] [PATCH 1/2] android: Disable copy and move\n\tfor CameraHalManager","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Mon, Jul 05, 2021 at 12:11:55PM +0900, paul.elder@ideasonboard.com wrote:\n> Hi Laurent,\n> \n> On Mon, Jul 05, 2021 at 02:36:19AM +0300, Laurent Pinchart wrote:\n> > The CameraHalManager should be instantiated once only, and never copied\n> > or moved. Disable copying and moving.\n> > \n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > ---\n> >  src/android/camera_hal_manager.h | 3 +++\n> >  1 file changed, 3 insertions(+)\n> > \n> > diff --git a/src/android/camera_hal_manager.h b/src/android/camera_hal_manager.h\n> > index db9354a73140..ee3fb3ad48e9 100644\n> > --- a/src/android/camera_hal_manager.h\n> > +++ b/src/android/camera_hal_manager.h\n> > @@ -18,6 +18,7 @@\n> >  #include <system/camera_metadata.h>\n> >  \n> >  #include <libcamera/camera_manager.h>\n> > +#include <libcamera/class.h>\n> \n> libcamera/base/class.h\n\nOops. Looks like I've rebased and compile-tested the patch with a build\ndirectory that had the Android HAL disabled :-S Sorry about it.\n\n> Other than that,\n> \n> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n> \n> >  \n> >  #include \"camera_hal_config.h\"\n> >  \n> > @@ -40,6 +41,8 @@ public:\n> >  \tvoid setCallbacks(const camera_module_callbacks_t *callbacks);\n> >  \n> >  private:\n> > +\tLIBCAMERA_DISABLE_COPY_AND_MOVE(CameraHalManager)\n> > +\n> >  \tusing Mutex = std::mutex;\n> >  \tusing MutexLocker = std::unique_lock<std::mutex>;","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 1C7C7BD794\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  5 Jul 2021 03:20:46 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6FBE968503;\n\tMon,  5 Jul 2021 05:20:45 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5ED0560285\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  5 Jul 2021 05:20:44 +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 DA54AE7;\n\tMon,  5 Jul 2021 05:20:43 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"AGXwpLXb\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1625455244;\n\tbh=+tlqaKE814nSCMQ4eSa1vMyFlj+ZyI4yiQj+72XABLI=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=AGXwpLXbkRks8HOhfUMkUWfX9VCj3feJ2he3oZccFqk5EQ9fqVYQ5H2mJedht8L3X\n\tWsIarosIL4dvJhYXv5efOyEUoQWtZinZI5FfyS2slu2XRb55RGXWFLdETctzrZGaer\n\tGbpPmj+c636v7eIoVgx/vEhhBvMlwUENJy9nXFN8=","Date":"Mon, 5 Jul 2021 06:20:03 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"paul.elder@ideasonboard.com","Message-ID":"<YOJ6Y4MLCJ4hXzil@pendragon.ideasonboard.com>","References":"<20210704233620.9145-1-laurent.pinchart@ideasonboard.com>\n\t<20210705031155.GC2510@pyrite.rasen.tech>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20210705031155.GC2510@pyrite.rasen.tech>","Subject":"Re: [libcamera-devel] [PATCH 1/2] android: Disable copy and move\n\tfor CameraHalManager","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":17966,"web_url":"https://patchwork.libcamera.org/comment/17966/","msgid":"<cc76c876-2e22-8cdd-6a4e-d109797f81d1@ideasonboard.com>","date":"2021-07-05T04:59:48","subject":"Re: [libcamera-devel] [PATCH 1/2] android: Disable copy and move\n\tfor CameraHalManager","submitter":{"id":86,"url":"https://patchwork.libcamera.org/api/people/86/","name":"Umang Jain","email":"umang.jain@ideasonboard.com"},"content":"Hi Laurent,\n\nOn 7/5/21 8:50 AM, Laurent Pinchart wrote:\n> On Mon, Jul 05, 2021 at 12:11:55PM +0900, paul.elder@ideasonboard.com wrote:\n>> Hi Laurent,\n>>\n>> On Mon, Jul 05, 2021 at 02:36:19AM +0300, Laurent Pinchart wrote:\n>>> The CameraHalManager should be instantiated once only, and never copied\n>>> or moved. Disable copying and moving.\n>>>\n>>> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>>> ---\n>>>   src/android/camera_hal_manager.h | 3 +++\n>>>   1 file changed, 3 insertions(+)\n>>>\n>>> diff --git a/src/android/camera_hal_manager.h b/src/android/camera_hal_manager.h\n>>> index db9354a73140..ee3fb3ad48e9 100644\n>>> --- a/src/android/camera_hal_manager.h\n>>> +++ b/src/android/camera_hal_manager.h\n>>> @@ -18,6 +18,7 @@\n>>>   #include <system/camera_metadata.h>\n>>>   \n>>>   #include <libcamera/camera_manager.h>\n>>> +#include <libcamera/class.h>\n>> libcamera/base/class.h\n> Oops. Looks like I've rebased and compile-tested the patch with a build\n> directory that had the Android HAL disabled :-S Sorry about it.\n\nGiven this is already pointed out and should be passed through your \ncompiler-matrix\n\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n\n>> Other than that,\n>>\n>> Reviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n>>\n>>>   \n>>>   #include \"camera_hal_config.h\"\n>>>   \n>>> @@ -40,6 +41,8 @@ public:\n>>>   \tvoid setCallbacks(const camera_module_callbacks_t *callbacks);\n>>>   \n>>>   private:\n>>> +\tLIBCAMERA_DISABLE_COPY_AND_MOVE(CameraHalManager)\n>>> +\n>>>   \tusing Mutex = std::mutex;\n>>>   \tusing MutexLocker = std::unique_lock<std::mutex>;","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 777A1C0100\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  5 Jul 2021 04:59:55 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 378E768500;\n\tMon,  5 Jul 2021 06:59:55 +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 1C2D560285\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  5 Jul 2021 06:59:53 +0200 (CEST)","from [192.168.0.107] (unknown [103.251.226.59])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0BAE2E7;\n\tMon,  5 Jul 2021 06:59:51 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"RnSn/kDt\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1625461192;\n\tbh=l4AbiMwSqjLeRUYrweUP3zYs4LIwGdfBkh+ZgNGoJRk=;\n\th=Subject:To:Cc:References:From:Date:In-Reply-To:From;\n\tb=RnSn/kDtiAbnrqwJ80gg5RtH0FpcVTp3fIiE70+3/fSCWvRQlxGDtCv2egnsfOMQu\n\t2Vpgcnr7MTnIbjklBUZ6BHkYmRsIVTDbqB0FZc3QJ9J4KobAhbHTdzMjf7e71DR6Ki\n\tMKNBMk77EtrOo70AdwcSGRkInjBY6gCeT7Tt73XQ=","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tpaul.elder@ideasonboard.com","References":"<20210704233620.9145-1-laurent.pinchart@ideasonboard.com>\n\t<20210705031155.GC2510@pyrite.rasen.tech>\n\t<YOJ6Y4MLCJ4hXzil@pendragon.ideasonboard.com>","From":"Umang Jain <umang.jain@ideasonboard.com>","Message-ID":"<cc76c876-2e22-8cdd-6a4e-d109797f81d1@ideasonboard.com>","Date":"Mon, 5 Jul 2021 10:29:48 +0530","User-Agent":"Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101\n\tThunderbird/78.10.2","MIME-Version":"1.0","In-Reply-To":"<YOJ6Y4MLCJ4hXzil@pendragon.ideasonboard.com>","Content-Type":"text/plain; charset=utf-8; format=flowed","Content-Transfer-Encoding":"7bit","Content-Language":"en-US","Subject":"Re: [libcamera-devel] [PATCH 1/2] android: Disable copy and move\n\tfor CameraHalManager","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>"}}]