[{"id":20313,"web_url":"https://patchwork.libcamera.org/comment/20313/","msgid":"<CAO5uPHNDLMvMsmWyjJEOmHLk8aN695DVwyG4ySxD+VJLAZsS3Q@mail.gmail.com>","date":"2021-10-20T02:18:42","subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","submitter":{"id":63,"url":"https://patchwork.libcamera.org/api/people/63/","name":"Hirokazu Honda","email":"hiroh@chromium.org"},"content":"Hi Laurent and Umang, thank you for the patch.\n\n\nOn Tue, Oct 19, 2021 at 8:48 PM Umang Jain <umang.jain@ideasonboard.com> wrote:\n>\n> From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>\n> There's no need for the move constructor and the destructor to be\n> inline. Define them explicitly, with default implementations. This\n> allows usage of the CameraStream class without a complete definition of\n> the PostProcessor class.\n>\n\nWhat is complete definition meant here?\n\n-Hiro\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> Reviewed-by: Umang Jain<umang.jain@ideasonboard.com>\n> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> ---\n>  src/android/camera_stream.cpp | 4 ++++\n>  src/android/camera_stream.h   | 2 ++\n>  2 files changed, 6 insertions(+)\n>\n> diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp\n> index 8e6ccb83..f44a2717 100644\n> --- a/src/android/camera_stream.cpp\n> +++ b/src/android/camera_stream.cpp\n> @@ -56,6 +56,10 @@ CameraStream::CameraStream(CameraDevice *const cameraDevice,\n>  {\n>  }\n>\n> +CameraStream::CameraStream(CameraStream &&other) = default;\n> +\n> +CameraStream::~CameraStream() = default;\n> +\n>  const StreamConfiguration &CameraStream::configuration() const\n>  {\n>         return config_->at(index_);\n> diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h\n> index 85064268..f242336e 100644\n> --- a/src/android/camera_stream.h\n> +++ b/src/android/camera_stream.h\n> @@ -112,6 +112,8 @@ public:\n>         CameraStream(CameraDevice *const cameraDevice,\n>                      libcamera::CameraConfiguration *config, Type type,\n>                      camera3_stream_t *camera3Stream, unsigned int index);\n> +       CameraStream(CameraStream &&other);\n> +       ~CameraStream();\n>\n>         Type type() const { return type_; }\n>         camera3_stream_t *camera3Stream() const { return camera3Stream_; }\n> --\n> 2.31.0\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 9C296BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Oct 2021 02:18:53 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5EEB960125;\n\tWed, 20 Oct 2021 04:18:53 +0200 (CEST)","from mail-ed1-x52f.google.com (mail-ed1-x52f.google.com\n\t[IPv6:2a00:1450:4864:20::52f])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6611D60125\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Oct 2021 04:18:52 +0200 (CEST)","by mail-ed1-x52f.google.com with SMTP id r18so20413222edv.12\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 19 Oct 2021 19:18:52 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"MieXX9/T\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=yfTh7xR0BDpM9c5KUf2ww7uPOWNg2pH4YdZ2Z5aGd2w=;\n\tb=MieXX9/TlaOQpNQo05q0SAA9f8KfoAqkMZGKBbpj1X/q4YGkq3VKF9IHDJsFhe0QkK\n\tpnOp93x54bfSPPVdIiWiMHnmsvpltZhCV3HiQwMsczC2JF3vCiSage2hmuQVBKm6ihEp\n\t/66NC/FxVtIP7ZnYk5mTQOS4oayMJjBaU7rDQ=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=yfTh7xR0BDpM9c5KUf2ww7uPOWNg2pH4YdZ2Z5aGd2w=;\n\tb=sNed04tVYeq+GurlSChWyxa0pH+wAF4cfePnLqowA7V8+wORJpzgAoWOQJ2Ed0pcEm\n\tnMdBD/qabU0dQKgqlQzeJyKrkKSfzpD0KuZ91nkOXkrr2Y0rz/xFsrkDc+Yj2jwaSJ0E\n\tuQ8iAYranBshhCnAAB86ekkhJCpTspUTQ5GNkeJhg6X+TGCbDwkhhQ875wkZGBJUasxb\n\tZR7gAmDKsGePSKMthjSIlfoi1sx0gpFnrQkW5FGaPdYh50HANCCCzP//Dza8L2/pfo+c\n\td61/+tYRw6a9nYBDqld5UPYT068KnfoOsXr3A3viKF4nAPA9CEnCuqpagFJ9Nm+gpl/P\n\tUXfw==","X-Gm-Message-State":"AOAM531/NH5Ckvp+D0RQIebMei0cOnbArGj2kei0XHpBrGdfNMUve5NW\n\tujzoP8qUH94imN8XLdKFDP+JHLRDPKeNU8DPHvfdS7i416k=","X-Google-Smtp-Source":"ABdhPJy77kpKGD2HJQznUeYh+/eEOMYL/dYo6boFg6OUnod6btu89XFNkIquwje09rj5/2rWWiR4UJbRtyhec7UgeQE=","X-Received":"by 2002:a05:6402:3554:: with SMTP id\n\tf20mr58938014edd.354.1634696332105; \n\tTue, 19 Oct 2021 19:18:52 -0700 (PDT)","MIME-Version":"1.0","References":"<20211019114802.665980-1-umang.jain@ideasonboard.com>\n\t<20211019114802.665980-12-umang.jain@ideasonboard.com>","In-Reply-To":"<20211019114802.665980-12-umang.jain@ideasonboard.com>","From":"Hirokazu Honda <hiroh@chromium.org>","Date":"Wed, 20 Oct 2021 11:18:42 +0900","Message-ID":"<CAO5uPHNDLMvMsmWyjJEOmHLk8aN695DVwyG4ySxD+VJLAZsS3Q@mail.gmail.com>","To":"Umang Jain <umang.jain@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","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 <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":20316,"web_url":"https://patchwork.libcamera.org/comment/20316/","msgid":"<YW+Bpn+SSNU64kaV@pendragon.ideasonboard.com>","date":"2021-10-20T02:40:38","subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Hiro,\n\nOn Wed, Oct 20, 2021 at 11:18:42AM +0900, Hirokazu Honda wrote:\n> On Tue, Oct 19, 2021 at 8:48 PM Umang Jain <umang.jain@ideasonboard.com> wrote:\n> >\n> > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> >\n> > There's no need for the move constructor and the destructor to be\n> > inline. Define them explicitly, with default implementations. This\n> > allows usage of the CameraStream class without a complete definition of\n> > the PostProcessor class.\n> \n> What is complete definition meant here?\n\nIt means a full definition of the class (as obtained by including\npost_processor.h), as opposed to a forward declaration.\n\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > Reviewed-by: Umang Jain<umang.jain@ideasonboard.com>\n> > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> > ---\n> >  src/android/camera_stream.cpp | 4 ++++\n> >  src/android/camera_stream.h   | 2 ++\n> >  2 files changed, 6 insertions(+)\n> >\n> > diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp\n> > index 8e6ccb83..f44a2717 100644\n> > --- a/src/android/camera_stream.cpp\n> > +++ b/src/android/camera_stream.cpp\n> > @@ -56,6 +56,10 @@ CameraStream::CameraStream(CameraDevice *const cameraDevice,\n> >  {\n> >  }\n> >\n> > +CameraStream::CameraStream(CameraStream &&other) = default;\n> > +\n> > +CameraStream::~CameraStream() = default;\n> > +\n> >  const StreamConfiguration &CameraStream::configuration() const\n> >  {\n> >         return config_->at(index_);\n> > diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h\n> > index 85064268..f242336e 100644\n> > --- a/src/android/camera_stream.h\n> > +++ b/src/android/camera_stream.h\n> > @@ -112,6 +112,8 @@ public:\n> >         CameraStream(CameraDevice *const cameraDevice,\n> >                      libcamera::CameraConfiguration *config, Type type,\n> >                      camera3_stream_t *camera3Stream, unsigned int index);\n> > +       CameraStream(CameraStream &&other);\n> > +       ~CameraStream();\n> >\n> >         Type type() const { return type_; }\n> >         camera3_stream_t *camera3Stream() const { return camera3Stream_; }","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 2DD6FBDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Oct 2021 02:40:58 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E5E5E68F59;\n\tWed, 20 Oct 2021 04:40:57 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A614660125\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Oct 2021 04:40:56 +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 472EE2A5;\n\tWed, 20 Oct 2021 04:40:56 +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=\"OAu6M/uw\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1634697656;\n\tbh=OI4lV76SXo7++KUWoi2aa8AQbgp5xYtxsgMNMFWrRuw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=OAu6M/uwLU9HnEgYK5i3nn18G1HxRiIaP/fVPxkIj+2c2X6rLyIwqoY0pqJxCjyNG\n\tqYeYAJqIAKGmy3uAq+ZGKQoi/Ag5Y3WLSvCRB2b/f9nLt4TEOChwIRUhYGDVoiS2Hz\n\tWiQkQs9KJ0Opb55hs0tXPurfagJpJR47S52AUZtc=","Date":"Wed, 20 Oct 2021 05:40:38 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Hirokazu Honda <hiroh@chromium.org>","Message-ID":"<YW+Bpn+SSNU64kaV@pendragon.ideasonboard.com>","References":"<20211019114802.665980-1-umang.jain@ideasonboard.com>\n\t<20211019114802.665980-12-umang.jain@ideasonboard.com>\n\t<CAO5uPHNDLMvMsmWyjJEOmHLk8aN695DVwyG4ySxD+VJLAZsS3Q@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAO5uPHNDLMvMsmWyjJEOmHLk8aN695DVwyG4ySxD+VJLAZsS3Q@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","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 <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":20318,"web_url":"https://patchwork.libcamera.org/comment/20318/","msgid":"<CAO5uPHNBM1omVVV1p_Hcc5cQhnJhO=C2NG-+2iv3eF+V+NFu1w@mail.gmail.com>","date":"2021-10-20T03:08:21","subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","submitter":{"id":63,"url":"https://patchwork.libcamera.org/api/people/63/","name":"Hirokazu Honda","email":"hiroh@chromium.org"},"content":"Hi Laurent,\n\nOn Wed, Oct 20, 2021 at 11:40 AM Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hi Hiro,\n>\n> On Wed, Oct 20, 2021 at 11:18:42AM +0900, Hirokazu Honda wrote:\n> > On Tue, Oct 19, 2021 at 8:48 PM Umang Jain <umang.jain@ideasonboard.com> wrote:\n> > >\n> > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > >\n> > > There's no need for the move constructor and the destructor to be\n> > > inline. Define them explicitly, with default implementations. This\n> > > allows usage of the CameraStream class without a complete definition of\n> > > the PostProcessor class.\n> >\n> > What is complete definition meant here?\n>\n> It means a full definition of the class (as obtained by including\n> post_processor.h), as opposed to a forward declaration.\n>\n\nHmm, sorry I don't understand..\nCould you tell me what concretely becomes possible?\n\n-Hiro\n> > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > Reviewed-by: Umang Jain<umang.jain@ideasonboard.com>\n> > > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> > > ---\n> > >  src/android/camera_stream.cpp | 4 ++++\n> > >  src/android/camera_stream.h   | 2 ++\n> > >  2 files changed, 6 insertions(+)\n> > >\n> > > diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp\n> > > index 8e6ccb83..f44a2717 100644\n> > > --- a/src/android/camera_stream.cpp\n> > > +++ b/src/android/camera_stream.cpp\n> > > @@ -56,6 +56,10 @@ CameraStream::CameraStream(CameraDevice *const cameraDevice,\n> > >  {\n> > >  }\n> > >\n> > > +CameraStream::CameraStream(CameraStream &&other) = default;\n> > > +\n> > > +CameraStream::~CameraStream() = default;\n> > > +\n> > >  const StreamConfiguration &CameraStream::configuration() const\n> > >  {\n> > >         return config_->at(index_);\n> > > diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h\n> > > index 85064268..f242336e 100644\n> > > --- a/src/android/camera_stream.h\n> > > +++ b/src/android/camera_stream.h\n> > > @@ -112,6 +112,8 @@ public:\n> > >         CameraStream(CameraDevice *const cameraDevice,\n> > >                      libcamera::CameraConfiguration *config, Type type,\n> > >                      camera3_stream_t *camera3Stream, unsigned int index);\n> > > +       CameraStream(CameraStream &&other);\n> > > +       ~CameraStream();\n> > >\n> > >         Type type() const { return type_; }\n> > >         camera3_stream_t *camera3Stream() const { return camera3Stream_; }\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 BB836BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Oct 2021 03:08:33 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3EA3968F59;\n\tWed, 20 Oct 2021 05:08:33 +0200 (CEST)","from mail-ed1-x535.google.com (mail-ed1-x535.google.com\n\t[IPv6:2a00:1450:4864:20::535])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 3EFB460125\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Oct 2021 05:08:32 +0200 (CEST)","by mail-ed1-x535.google.com with SMTP id a25so20300446edx.8\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 19 Oct 2021 20:08:32 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"IXzDmGdI\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=22vFK7OLtgUt0/fPYamHCqc5yZYMBGPcyupB7LRbS2g=;\n\tb=IXzDmGdIzupD1iLQ/G53vlDwOdfADHD/ilx2QLAt5tHsCNnHL3clgd9ZCY38+seOrt\n\tS+CUuy0iqFWAkbViI8+ydRikyG7wjO7Ar6OF8zqyt3L3KkAt6ZiAz6q1QlAN1RAjP67S\n\tej98XbGf2WW5twox/H3Dj3YKnI/eedDeF4nAQ=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=22vFK7OLtgUt0/fPYamHCqc5yZYMBGPcyupB7LRbS2g=;\n\tb=yhzdx2LxHON8XfmueaMk73topbvf+6xLNRonbt/C0EwVawYBD2r+m6w2Nwfrb6giHI\n\tXYBRSjBYSXJq47ssrqtP0TsUz8ECQgbhkgpt+byx1eWdRJgtY0Hc0GQIyG+aAjl/ywwf\n\tRAD44MmKHoxs3gP02BxuaIowBVVNyEDW8lKfuB+zzxH5eh0IcKFvFT72Tmt3ku51eAt0\n\tz+RVInT6ypwdTNQcyxN/AZp1QH2eNsyEl0uO5iQAv+exQDeUW3hblaLZ8+hsv05loFsf\n\tOblyBoyPbq+tkFjDTCXoOAFBMK5/AJHJwU6sav/grzPR727W4qjEX1xhaBkWev5VXysA\n\tBONw==","X-Gm-Message-State":"AOAM530FUgl9NDEoOmrqwFUZMCKHzVBXX66zUzvt/Wk5kzN8Web7oJCX\n\tXvbA8/zwIAo/jQpDR+JeCwp6tFL4xff3jz5BjI1vOPHF3Do=","X-Google-Smtp-Source":"ABdhPJxBBihWsOZE9uyac8N0p/3Tw5QeEuIVZ2Tfid+RS5mUdWrM2U41ShnlYnFQXxhVFGHrlpVo7wBeJ9PEAS53tjc=","X-Received":"by 2002:a17:906:f208:: with SMTP id\n\tgt8mr40907016ejb.522.1634699311857; \n\tTue, 19 Oct 2021 20:08:31 -0700 (PDT)","MIME-Version":"1.0","References":"<20211019114802.665980-1-umang.jain@ideasonboard.com>\n\t<20211019114802.665980-12-umang.jain@ideasonboard.com>\n\t<CAO5uPHNDLMvMsmWyjJEOmHLk8aN695DVwyG4ySxD+VJLAZsS3Q@mail.gmail.com>\n\t<YW+Bpn+SSNU64kaV@pendragon.ideasonboard.com>","In-Reply-To":"<YW+Bpn+SSNU64kaV@pendragon.ideasonboard.com>","From":"Hirokazu Honda <hiroh@chromium.org>","Date":"Wed, 20 Oct 2021 12:08:21 +0900","Message-ID":"<CAO5uPHNBM1omVVV1p_Hcc5cQhnJhO=C2NG-+2iv3eF+V+NFu1w@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","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 <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":20320,"web_url":"https://patchwork.libcamera.org/comment/20320/","msgid":"<YW+Iro1mCr9ordHT@pendragon.ideasonboard.com>","date":"2021-10-20T03:10:38","subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"On Wed, Oct 20, 2021 at 12:08:21PM +0900, Hirokazu Honda wrote:\n> On Wed, Oct 20, 2021 at 11:40 AM Laurent Pinchart wrote:\n> > On Wed, Oct 20, 2021 at 11:18:42AM +0900, Hirokazu Honda wrote:\n> > > On Tue, Oct 19, 2021 at 8:48 PM Umang Jain <umang.jain@ideasonboard.com> wrote:\n> > > >\n> > > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > >\n> > > > There's no need for the move constructor and the destructor to be\n> > > > inline. Define them explicitly, with default implementations. This\n> > > > allows usage of the CameraStream class without a complete definition of\n> > > > the PostProcessor class.\n> > >\n> > > What is complete definition meant here?\n> >\n> > It means a full definition of the class (as obtained by including\n> > post_processor.h), as opposed to a forward declaration.\n> \n> Hmm, sorry I don't understand..\n> Could you tell me what concretely becomes possible?\n\nIt's now possible to use the CameraStream class without having to\ninclude post_processor.h. The PostProcessor class can be\nforward-declared in camera_stream.h instead.\n\n> > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > Reviewed-by: Umang Jain<umang.jain@ideasonboard.com>\n> > > > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> > > > ---\n> > > >  src/android/camera_stream.cpp | 4 ++++\n> > > >  src/android/camera_stream.h   | 2 ++\n> > > >  2 files changed, 6 insertions(+)\n> > > >\n> > > > diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp\n> > > > index 8e6ccb83..f44a2717 100644\n> > > > --- a/src/android/camera_stream.cpp\n> > > > +++ b/src/android/camera_stream.cpp\n> > > > @@ -56,6 +56,10 @@ CameraStream::CameraStream(CameraDevice *const cameraDevice,\n> > > >  {\n> > > >  }\n> > > >\n> > > > +CameraStream::CameraStream(CameraStream &&other) = default;\n> > > > +\n> > > > +CameraStream::~CameraStream() = default;\n> > > > +\n> > > >  const StreamConfiguration &CameraStream::configuration() const\n> > > >  {\n> > > >         return config_->at(index_);\n> > > > diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h\n> > > > index 85064268..f242336e 100644\n> > > > --- a/src/android/camera_stream.h\n> > > > +++ b/src/android/camera_stream.h\n> > > > @@ -112,6 +112,8 @@ public:\n> > > >         CameraStream(CameraDevice *const cameraDevice,\n> > > >                      libcamera::CameraConfiguration *config, Type type,\n> > > >                      camera3_stream_t *camera3Stream, unsigned int index);\n> > > > +       CameraStream(CameraStream &&other);\n> > > > +       ~CameraStream();\n> > > >\n> > > >         Type type() const { return type_; }\n> > > >         camera3_stream_t *camera3Stream() const { return camera3Stream_; }","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 36DB7BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Oct 2021 03:10:59 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E39B868F59;\n\tWed, 20 Oct 2021 05:10:58 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CA88160125\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Oct 2021 05:10:56 +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 606402A5;\n\tWed, 20 Oct 2021 05:10:56 +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=\"kvyr+7U+\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1634699456;\n\tbh=WftGO/KRgobBgPIjBcc4bqNpM08oMbkNsras0+ks7b0=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=kvyr+7U+KGUO0ORb1RnYUaWccff4JIQ+ZFIZgDZ+0mf+Wq29UzSv3MY8B4Xa/O/FK\n\tPqXBQfBPWjxnzuZl3ACvtvuLPmXch+9NVXaRfaquyjKYLam6z1nqoVoSkmr/E9Zkkx\n\t7l4lQ0YT8ubu8BhEnW3v9V+yFp7Lvp7REFtxCn+A=","Date":"Wed, 20 Oct 2021 06:10:38 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Hirokazu Honda <hiroh@chromium.org>","Message-ID":"<YW+Iro1mCr9ordHT@pendragon.ideasonboard.com>","References":"<20211019114802.665980-1-umang.jain@ideasonboard.com>\n\t<20211019114802.665980-12-umang.jain@ideasonboard.com>\n\t<CAO5uPHNDLMvMsmWyjJEOmHLk8aN695DVwyG4ySxD+VJLAZsS3Q@mail.gmail.com>\n\t<YW+Bpn+SSNU64kaV@pendragon.ideasonboard.com>\n\t<CAO5uPHNBM1omVVV1p_Hcc5cQhnJhO=C2NG-+2iv3eF+V+NFu1w@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAO5uPHNBM1omVVV1p_Hcc5cQhnJhO=C2NG-+2iv3eF+V+NFu1w@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","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 <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":20322,"web_url":"https://patchwork.libcamera.org/comment/20322/","msgid":"<CAO5uPHO7qrkC215YQi9BFn+BirDsTg=91tAhh5e+YA5bxWOU4g@mail.gmail.com>","date":"2021-10-20T03:17:02","subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","submitter":{"id":63,"url":"https://patchwork.libcamera.org/api/people/63/","name":"Hirokazu Honda","email":"hiroh@chromium.org"},"content":"Hi Laurent,\n\nOn Wed, Oct 20, 2021 at 12:10 PM Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> On Wed, Oct 20, 2021 at 12:08:21PM +0900, Hirokazu Honda wrote:\n> > On Wed, Oct 20, 2021 at 11:40 AM Laurent Pinchart wrote:\n> > > On Wed, Oct 20, 2021 at 11:18:42AM +0900, Hirokazu Honda wrote:\n> > > > On Tue, Oct 19, 2021 at 8:48 PM Umang Jain <umang.jain@ideasonboard.com> wrote:\n> > > > >\n> > > > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > >\n> > > > > There's no need for the move constructor and the destructor to be\n> > > > > inline. Define them explicitly, with default implementations. This\n> > > > > allows usage of the CameraStream class without a complete definition of\n> > > > > the PostProcessor class.\n> > > >\n> > > > What is complete definition meant here?\n> > >\n> > > It means a full definition of the class (as obtained by including\n> > > post_processor.h), as opposed to a forward declaration.\n> >\n> > Hmm, sorry I don't understand..\n> > Could you tell me what concretely becomes possible?\n>\n> It's now possible to use the CameraStream class without having to\n> include post_processor.h. The PostProcessor class can be\n> forward-declared in camera_stream.h instead.\n>\n\nAh, I see. Thanks.\nSo shall we remove post_processor.h in camera_device.h?\n\n> > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > Reviewed-by: Umang Jain<umang.jain@ideasonboard.com>\n> > > > > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> > > > > ---\n> > > > >  src/android/camera_stream.cpp | 4 ++++\n> > > > >  src/android/camera_stream.h   | 2 ++\n> > > > >  2 files changed, 6 insertions(+)\n> > > > >\n> > > > > diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp\n> > > > > index 8e6ccb83..f44a2717 100644\n> > > > > --- a/src/android/camera_stream.cpp\n> > > > > +++ b/src/android/camera_stream.cpp\n> > > > > @@ -56,6 +56,10 @@ CameraStream::CameraStream(CameraDevice *const cameraDevice,\n> > > > >  {\n> > > > >  }\n> > > > >\n> > > > > +CameraStream::CameraStream(CameraStream &&other) = default;\n> > > > > +\n> > > > > +CameraStream::~CameraStream() = default;\n> > > > > +\n> > > > >  const StreamConfiguration &CameraStream::configuration() const\n> > > > >  {\n> > > > >         return config_->at(index_);\n> > > > > diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h\n> > > > > index 85064268..f242336e 100644\n> > > > > --- a/src/android/camera_stream.h\n> > > > > +++ b/src/android/camera_stream.h\n> > > > > @@ -112,6 +112,8 @@ public:\n> > > > >         CameraStream(CameraDevice *const cameraDevice,\n> > > > >                      libcamera::CameraConfiguration *config, Type type,\n> > > > >                      camera3_stream_t *camera3Stream, unsigned int index);\n> > > > > +       CameraStream(CameraStream &&other);\n> > > > > +       ~CameraStream();\n> > > > >\n> > > > >         Type type() const { return type_; }\n> > > > >         camera3_stream_t *camera3Stream() const { return camera3Stream_; }\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 C095FBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Oct 2021 03:17:14 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 3B6EC68F59;\n\tWed, 20 Oct 2021 05:17:14 +0200 (CEST)","from mail-ed1-x529.google.com (mail-ed1-x529.google.com\n\t[IPv6:2a00:1450:4864:20::529])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id EE2D260125\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Oct 2021 05:17:12 +0200 (CEST)","by mail-ed1-x529.google.com with SMTP id y30so18745013edi.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 19 Oct 2021 20:17:12 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"Sfj+tgSJ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=csDSchvN6dcAcLq6odhYa01U5suKKJ287mE30aF4Vhg=;\n\tb=Sfj+tgSJ2WMkWQ5eABa9KFc7TTreQGBZWn9RZtU36zKHnHqe8RzEevHf0ocUILChrG\n\t/go0YZwvgBVfXsmSUMcG9dMfiXwPwIbzuK/2gejdoIJmMnApW3MzoMPFZ96gmgT4vkpr\n\t6KK5rgWgxJlvTt7tQah9rPHaXCaU+5SdrDGdc=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=csDSchvN6dcAcLq6odhYa01U5suKKJ287mE30aF4Vhg=;\n\tb=R5WNckHsdTXziX2NDPPyNrFg9btpInzqiECrziSW+ODVLfvg1u7iSudY0AgPa1t5ih\n\tbElt/Nog88R9ZxZzPI0+3vertPcYt0+dPwSWxaYwF2PxU3yTUg8XF7b+w4Ju5YKiDLGd\n\tiIYdxiDukNbHNNKhKdfivtLtnqF18ud3IQ+0t5CU4pfIb0GiVontSonLhalAKysEoCnG\n\t66VrZXaABRe4r057fqaddnSm6Sji0nA2ME68sCr9QPtJGhh1XcSwh1N5Xsr+V5xhXrKt\n\t8mj3aKvAtkq81vKHGEvxoq4oi1jOrFnDo/zq/X0SgKxsVXsTqn3IdATfSV897TeW646Q\n\tZgxg==","X-Gm-Message-State":"AOAM532GHojLmb0H8URFJpiH48FcbVxGZbMe2KqfiCsDhdYZJM3UGfLa\n\txsmk49zrfUyTElqzJCpxNRXZV01MlgYrdhJ8lCYJ8A==","X-Google-Smtp-Source":"ABdhPJwUIqG/oxQ5CaUUq3EtfM9o28A42+9iW1h51iqL4YvoyWmVN3jIjXZmeNESWrTgEGk9uMI6AT7xslropQcK3Mc=","X-Received":"by 2002:a17:907:7ba6:: with SMTP id\n\tne38mr43560170ejc.150.1634699832538; \n\tTue, 19 Oct 2021 20:17:12 -0700 (PDT)","MIME-Version":"1.0","References":"<20211019114802.665980-1-umang.jain@ideasonboard.com>\n\t<20211019114802.665980-12-umang.jain@ideasonboard.com>\n\t<CAO5uPHNDLMvMsmWyjJEOmHLk8aN695DVwyG4ySxD+VJLAZsS3Q@mail.gmail.com>\n\t<YW+Bpn+SSNU64kaV@pendragon.ideasonboard.com>\n\t<CAO5uPHNBM1omVVV1p_Hcc5cQhnJhO=C2NG-+2iv3eF+V+NFu1w@mail.gmail.com>\n\t<YW+Iro1mCr9ordHT@pendragon.ideasonboard.com>","In-Reply-To":"<YW+Iro1mCr9ordHT@pendragon.ideasonboard.com>","From":"Hirokazu Honda <hiroh@chromium.org>","Date":"Wed, 20 Oct 2021 12:17:02 +0900","Message-ID":"<CAO5uPHO7qrkC215YQi9BFn+BirDsTg=91tAhh5e+YA5bxWOU4g@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","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 <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":20323,"web_url":"https://patchwork.libcamera.org/comment/20323/","msgid":"<YW+NCzmxV3sTMVJ2@pendragon.ideasonboard.com>","date":"2021-10-20T03:29:15","subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Hiro,\n\nOn Wed, Oct 20, 2021 at 12:17:02PM +0900, Hirokazu Honda wrote:\n> On Wed, Oct 20, 2021 at 12:10 PM Laurent Pinchart wrote:\n> > On Wed, Oct 20, 2021 at 12:08:21PM +0900, Hirokazu Honda wrote:\n> > > On Wed, Oct 20, 2021 at 11:40 AM Laurent Pinchart wrote:\n> > > > On Wed, Oct 20, 2021 at 11:18:42AM +0900, Hirokazu Honda wrote:\n> > > > > On Tue, Oct 19, 2021 at 8:48 PM Umang Jain wrote:\n> > > > > >\n> > > > > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > >\n> > > > > > There's no need for the move constructor and the destructor to be\n> > > > > > inline. Define them explicitly, with default implementations. This\n> > > > > > allows usage of the CameraStream class without a complete definition of\n> > > > > > the PostProcessor class.\n> > > > >\n> > > > > What is complete definition meant here?\n> > > >\n> > > > It means a full definition of the class (as obtained by including\n> > > > post_processor.h), as opposed to a forward declaration.\n> > >\n> > > Hmm, sorry I don't understand..\n> > > Could you tell me what concretely becomes possible?\n> >\n> > It's now possible to use the CameraStream class without having to\n> > include post_processor.h. The PostProcessor class can be\n> > forward-declared in camera_stream.h instead.\n> \n> Ah, I see. Thanks.\n> So shall we remove post_processor.h in camera_device.h?\n\npost_processor.h isn't included in camera_device.h. If you meant\ncamera_device.cpp, yes, I think it should be removed from there. I've\njust sent a patch.\n\n> > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > > Reviewed-by: Umang Jain<umang.jain@ideasonboard.com>\n> > > > > > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> > > > > > ---\n> > > > > >  src/android/camera_stream.cpp | 4 ++++\n> > > > > >  src/android/camera_stream.h   | 2 ++\n> > > > > >  2 files changed, 6 insertions(+)\n> > > > > >\n> > > > > > diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp\n> > > > > > index 8e6ccb83..f44a2717 100644\n> > > > > > --- a/src/android/camera_stream.cpp\n> > > > > > +++ b/src/android/camera_stream.cpp\n> > > > > > @@ -56,6 +56,10 @@ CameraStream::CameraStream(CameraDevice *const cameraDevice,\n> > > > > >  {\n> > > > > >  }\n> > > > > >\n> > > > > > +CameraStream::CameraStream(CameraStream &&other) = default;\n> > > > > > +\n> > > > > > +CameraStream::~CameraStream() = default;\n> > > > > > +\n> > > > > >  const StreamConfiguration &CameraStream::configuration() const\n> > > > > >  {\n> > > > > >         return config_->at(index_);\n> > > > > > diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h\n> > > > > > index 85064268..f242336e 100644\n> > > > > > --- a/src/android/camera_stream.h\n> > > > > > +++ b/src/android/camera_stream.h\n> > > > > > @@ -112,6 +112,8 @@ public:\n> > > > > >         CameraStream(CameraDevice *const cameraDevice,\n> > > > > >                      libcamera::CameraConfiguration *config, Type type,\n> > > > > >                      camera3_stream_t *camera3Stream, unsigned int index);\n> > > > > > +       CameraStream(CameraStream &&other);\n> > > > > > +       ~CameraStream();\n> > > > > >\n> > > > > >         Type type() const { return type_; }\n> > > > > >         camera3_stream_t *camera3Stream() const { return camera3Stream_; }","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 3797DBDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Oct 2021 03:29:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id EBDEE68F59;\n\tWed, 20 Oct 2021 05:29:35 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7FFA860125\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Oct 2021 05:29: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 0FEFC2A5;\n\tWed, 20 Oct 2021 05:29: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=\"E33dU7Ix\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1634700574;\n\tbh=VkmsYVWoPEa/oyRgxjrfgD/msC9qYZXpLlVgHN8CWC4=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=E33dU7IxU3C7lMePi5A0WRZG+gI9NF/R6Df9ZeWsOt5Gk6hVXUP2t/6hgncD/QN5B\n\tWaZPb9wsTyyMBziLx0mc6mNTEsD4Oijt27cNie6A42FssFIrt5d8Gno59ANzkbc7e0\n\tIMGfez3l7Rx4zQ8Udocpzl7SrYD+DhQec20ebShA=","Date":"Wed, 20 Oct 2021 06:29:15 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Hirokazu Honda <hiroh@chromium.org>","Message-ID":"<YW+NCzmxV3sTMVJ2@pendragon.ideasonboard.com>","References":"<20211019114802.665980-1-umang.jain@ideasonboard.com>\n\t<20211019114802.665980-12-umang.jain@ideasonboard.com>\n\t<CAO5uPHNDLMvMsmWyjJEOmHLk8aN695DVwyG4ySxD+VJLAZsS3Q@mail.gmail.com>\n\t<YW+Bpn+SSNU64kaV@pendragon.ideasonboard.com>\n\t<CAO5uPHNBM1omVVV1p_Hcc5cQhnJhO=C2NG-+2iv3eF+V+NFu1w@mail.gmail.com>\n\t<YW+Iro1mCr9ordHT@pendragon.ideasonboard.com>\n\t<CAO5uPHO7qrkC215YQi9BFn+BirDsTg=91tAhh5e+YA5bxWOU4g@mail.gmail.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<CAO5uPHO7qrkC215YQi9BFn+BirDsTg=91tAhh5e+YA5bxWOU4g@mail.gmail.com>","Subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","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 <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":20327,"web_url":"https://patchwork.libcamera.org/comment/20327/","msgid":"<CAO5uPHNu_k_R9P2Cgq9Tse7zbQ0LDL5WRJG2qf+N04dXODWU+A@mail.gmail.com>","date":"2021-10-20T04:04:22","subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","submitter":{"id":63,"url":"https://patchwork.libcamera.org/api/people/63/","name":"Hirokazu Honda","email":"hiroh@chromium.org"},"content":"Hi Laurent,\n\nOn Wed, Oct 20, 2021 at 12:29 PM Laurent Pinchart\n<laurent.pinchart@ideasonboard.com> wrote:\n>\n> Hi Hiro,\n>\n> On Wed, Oct 20, 2021 at 12:17:02PM +0900, Hirokazu Honda wrote:\n> > On Wed, Oct 20, 2021 at 12:10 PM Laurent Pinchart wrote:\n> > > On Wed, Oct 20, 2021 at 12:08:21PM +0900, Hirokazu Honda wrote:\n> > > > On Wed, Oct 20, 2021 at 11:40 AM Laurent Pinchart wrote:\n> > > > > On Wed, Oct 20, 2021 at 11:18:42AM +0900, Hirokazu Honda wrote:\n> > > > > > On Tue, Oct 19, 2021 at 8:48 PM Umang Jain wrote:\n> > > > > > >\n> > > > > > > From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > > >\n> > > > > > > There's no need for the move constructor and the destructor to be\n> > > > > > > inline. Define them explicitly, with default implementations. This\n> > > > > > > allows usage of the CameraStream class without a complete definition of\n> > > > > > > the PostProcessor class.\n> > > > > >\n> > > > > > What is complete definition meant here?\n> > > > >\n> > > > > It means a full definition of the class (as obtained by including\n> > > > > post_processor.h), as opposed to a forward declaration.\n> > > >\n> > > > Hmm, sorry I don't understand..\n> > > > Could you tell me what concretely becomes possible?\n> > >\n> > > It's now possible to use the CameraStream class without having to\n> > > include post_processor.h. The PostProcessor class can be\n> > > forward-declared in camera_stream.h instead.\n> >\n> > Ah, I see. Thanks.\n> > So shall we remove post_processor.h in camera_device.h?\n>\n> post_processor.h isn't included in camera_device.h. If you meant\n> camera_device.cpp, yes, I think it should be removed from there. I've\n> just sent a patch.\n>\n\nYes, I meant camera_device.cpp :p\nReviewed. Thanks for the patch.\n\n> > > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> > > > > > > Reviewed-by: Umang Jain<umang.jain@ideasonboard.com>\n> > > > > > > Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>\n> > > > > > > ---\n> > > > > > >  src/android/camera_stream.cpp | 4 ++++\n> > > > > > >  src/android/camera_stream.h   | 2 ++\n> > > > > > >  2 files changed, 6 insertions(+)\n> > > > > > >\n> > > > > > > diff --git a/src/android/camera_stream.cpp b/src/android/camera_stream.cpp\n> > > > > > > index 8e6ccb83..f44a2717 100644\n> > > > > > > --- a/src/android/camera_stream.cpp\n> > > > > > > +++ b/src/android/camera_stream.cpp\n> > > > > > > @@ -56,6 +56,10 @@ CameraStream::CameraStream(CameraDevice *const cameraDevice,\n> > > > > > >  {\n> > > > > > >  }\n> > > > > > >\n> > > > > > > +CameraStream::CameraStream(CameraStream &&other) = default;\n> > > > > > > +\n> > > > > > > +CameraStream::~CameraStream() = default;\n> > > > > > > +\n> > > > > > >  const StreamConfiguration &CameraStream::configuration() const\n> > > > > > >  {\n> > > > > > >         return config_->at(index_);\n> > > > > > > diff --git a/src/android/camera_stream.h b/src/android/camera_stream.h\n> > > > > > > index 85064268..f242336e 100644\n> > > > > > > --- a/src/android/camera_stream.h\n> > > > > > > +++ b/src/android/camera_stream.h\n> > > > > > > @@ -112,6 +112,8 @@ public:\n> > > > > > >         CameraStream(CameraDevice *const cameraDevice,\n> > > > > > >                      libcamera::CameraConfiguration *config, Type type,\n> > > > > > >                      camera3_stream_t *camera3Stream, unsigned int index);\n> > > > > > > +       CameraStream(CameraStream &&other);\n> > > > > > > +       ~CameraStream();\n> > > > > > >\n> > > > > > >         Type type() const { return type_; }\n> > > > > > >         camera3_stream_t *camera3Stream() const { return camera3Stream_; }\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 95510BF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 20 Oct 2021 04:04:35 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 586A268F59;\n\tWed, 20 Oct 2021 06:04:35 +0200 (CEST)","from mail-ed1-x52c.google.com (mail-ed1-x52c.google.com\n\t[IPv6:2a00:1450:4864:20::52c])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E553160125\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 20 Oct 2021 06:04:33 +0200 (CEST)","by mail-ed1-x52c.google.com with SMTP id y30so19042856edi.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 19 Oct 2021 21:04:33 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=chromium.org header.i=@chromium.org\n\theader.b=\"ZN3QY+4P\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=chromium.org;\n\ts=google; \n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=Lx89G6jCvr/WwfjgEuWTGNLK6Z9OwHdNFBJ6eCRImsM=;\n\tb=ZN3QY+4PYzkxiXjUmvW8kqg7AF+mUg7FB/t3N1Jf3hsCYq1hxhk2c+e517Jlt7OZcy\n\tiuLFShvDI1YI27vhExnbRHlbIWUEW+kpz1K/BBqz5GLo0vf9Zq8HowZHZYinFgawB4Kt\n\tS1mMW8nPF+il0R7eBC2tw6QVtkVqk7202varc=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:mime-version:references:in-reply-to:from:date\n\t:message-id:subject:to:cc;\n\tbh=Lx89G6jCvr/WwfjgEuWTGNLK6Z9OwHdNFBJ6eCRImsM=;\n\tb=hjXeisSd8E8I+yhK5n1Z/YWh6nyKYUqt6czI5Lmj3WO8AxHFPE2bgZ2UR2fQMga7D1\n\tCLS5PmureP5QgXN9yEI88b+ltyrjn578KxxYi3u6HgHjxW4je2Tg8ok4pMG6GbuW3SOf\n\tuYuFGMNy0X1Cr5yhwrIKnVzEN868PRpzoi5qZ34CSPWk4NA4ezwKezD+D62hCAmymCDS\n\txUrN+WuW1NLT2TWWWu54RFoWOA93HcvlcPcs0UrYs5L7cYoO33SW17MHpj5SStvLonlk\n\thyDe8EZpm6901NAL+vv3u77f20U7FMs3qdfDkIgeBoBq3JIxmX2cmJxCXsvLWyWFHLhr\n\t6Ccw==","X-Gm-Message-State":"AOAM530scf7Hes9PXrQlhegXa4uns2HT+Jpm57JsToPS2kpoRy7ucj9a\n\twxGCmGFOFvR5aRWlxKkaQND8c0n08g5CtP95K7asxg==","X-Google-Smtp-Source":"ABdhPJwQa0O1p+WiTy5+j/nKZKSm7QUqlGWE7+gxkEcYUcf5YhWb/+0u/heKLKDdYYEW+j0ceMkQdAAhutIivxD+fUM=","X-Received":"by 2002:a50:cd97:: with SMTP id\n\tp23mr59402029edi.206.1634702673608; \n\tTue, 19 Oct 2021 21:04:33 -0700 (PDT)","MIME-Version":"1.0","References":"<20211019114802.665980-1-umang.jain@ideasonboard.com>\n\t<20211019114802.665980-12-umang.jain@ideasonboard.com>\n\t<CAO5uPHNDLMvMsmWyjJEOmHLk8aN695DVwyG4ySxD+VJLAZsS3Q@mail.gmail.com>\n\t<YW+Bpn+SSNU64kaV@pendragon.ideasonboard.com>\n\t<CAO5uPHNBM1omVVV1p_Hcc5cQhnJhO=C2NG-+2iv3eF+V+NFu1w@mail.gmail.com>\n\t<YW+Iro1mCr9ordHT@pendragon.ideasonboard.com>\n\t<CAO5uPHO7qrkC215YQi9BFn+BirDsTg=91tAhh5e+YA5bxWOU4g@mail.gmail.com>\n\t<YW+NCzmxV3sTMVJ2@pendragon.ideasonboard.com>","In-Reply-To":"<YW+NCzmxV3sTMVJ2@pendragon.ideasonboard.com>","From":"Hirokazu Honda <hiroh@chromium.org>","Date":"Wed, 20 Oct 2021 13:04:22 +0900","Message-ID":"<CAO5uPHNu_k_R9P2Cgq9Tse7zbQ0LDL5WRJG2qf+N04dXODWU+A@mail.gmail.com>","To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v2 11/12] android: camera_stream:\n\tDefine explicit move constructor and destructors","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 <libcamera-devel@lists.libcamera.org>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]