[{"id":15914,"web_url":"https://patchwork.libcamera.org/comment/15914/","msgid":"<YF1BBvZcGd1zfOI3@pendragon.ideasonboard.com>","date":"2021-03-26T02:03:50","subject":"Re: [libcamera-devel] [PATCH v3 02/11] libcamera: buffer: Break\n\tfriendship with Request","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Kieran,\n\nThank you for the patch.\n\nOn Thu, Mar 25, 2021 at 01:42:22PM +0000, Kieran Bingham wrote:\n> The FrameBuffer class is only friends with Request so that the request\n> can be associated with the buffers.\n> \n> FrameBuffer already has a helper to setRequest(), so let's use that\n> directly instead.\n> \n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nSuch an old friendship being broken, I'll shed a tear.\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> ---\n>  include/libcamera/buffer.h | 1 -\n>  src/libcamera/request.cpp  | 9 +++++----\n>  2 files changed, 5 insertions(+), 5 deletions(-)\n> \n> diff --git a/include/libcamera/buffer.h b/include/libcamera/buffer.h\n> index 302fe3d3e86b..620f8a66f6a2 100644\n> --- a/include/libcamera/buffer.h\n> +++ b/include/libcamera/buffer.h\n> @@ -56,7 +56,6 @@ public:\n>  private:\n>  \tLIBCAMERA_DISABLE_COPY_AND_MOVE(FrameBuffer)\n>  \n> -\tfriend class Request; /* Needed to update request_. */\n>  \tfriend class V4L2VideoDevice; /* Needed to update metadata_. */\n>  \n>  \tstd::vector<Plane> planes_;\n> diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp\n> index 0071667e4a2c..3ad83f3b8418 100644\n> --- a/src/libcamera/request.cpp\n> +++ b/src/libcamera/request.cpp\n> @@ -118,8 +118,9 @@ void Request::reuse(ReuseFlag flags)\n>  \tpending_.clear();\n>  \tif (flags & ReuseBuffers) {\n>  \t\tfor (auto pair : bufferMap_) {\n> -\t\t\tpair.second->request_ = this;\n> -\t\t\tpending_.insert(pair.second);\n> +\t\t\tFrameBuffer *buffer = pair.second;\n> +\t\t\tbuffer->setRequest(this);\n> +\t\t\tpending_.insert(buffer);\n>  \t\t}\n>  \t} else {\n>  \t\tbufferMap_.clear();\n> @@ -187,7 +188,7 @@ int Request::addBuffer(const Stream *stream, FrameBuffer *buffer)\n>  \t\treturn -EEXIST;\n>  \t}\n>  \n> -\tbuffer->request_ = this;\n> +\tbuffer->setRequest(this);\n>  \tpending_.insert(buffer);\n>  \tbufferMap_[stream] = buffer;\n>  \n> @@ -294,7 +295,7 @@ bool Request::completeBuffer(FrameBuffer *buffer)\n>  \tint ret = pending_.erase(buffer);\n>  \tASSERT(ret == 1);\n>  \n> -\tbuffer->request_ = nullptr;\n> +\tbuffer->setRequest(nullptr);\n>  \n>  \tif (buffer->metadata().status == FrameMetadata::FrameCancelled)\n>  \t\tcancelled_ = true;","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 94037C32EA\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 26 Mar 2021 02:04:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id F193A6084F;\n\tFri, 26 Mar 2021 03:04:35 +0100 (CET)","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 E5EDC602E3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 26 Mar 2021 03:04:33 +0100 (CET)","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 617B5B6F;\n\tFri, 26 Mar 2021 03:04:33 +0100 (CET)"],"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=\"pTLG8inP\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1616724273;\n\tbh=Y1ZElx4f7WwdJpiytwQ4UplZzer/7DpEp9HnjVrClrw=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=pTLG8inPpRTvpiMKd9wZrE8PZL12JwjXriSTiFBRzKqKaD96XiCALAMWsHxzefrGc\n\tmmupDjvoikAh8rEO1xXbIk1KbaYbizY5auZrJjjoEB+YCvWEJ7qM6CycUFTHYxwTFs\n\tXowYcImwm3UkChTA71WZj/yvP3TDbf3mMJBaWJqI=","Date":"Fri, 26 Mar 2021 04:03:50 +0200","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<YF1BBvZcGd1zfOI3@pendragon.ideasonboard.com>","References":"<20210325134231.1400051-1-kieran.bingham@ideasonboard.com>\n\t<20210325134231.1400051-5-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210325134231.1400051-5-kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 02/11] libcamera: buffer: Break\n\tfriendship with Request","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>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":15923,"web_url":"https://patchwork.libcamera.org/comment/15923/","msgid":"<20210326025138.GD2040@pyrite.rasen.tech>","date":"2021-03-26T02:51:38","subject":"Re: [libcamera-devel] [PATCH v3 02/11] libcamera: buffer: Break\n\tfriendship with Request","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Hi Kieran,\n\nOn Thu, Mar 25, 2021 at 01:42:22PM +0000, Kieran Bingham wrote:\n> The FrameBuffer class is only friends with Request so that the request\n> can be associated with the buffers.\n> \n> FrameBuffer already has a helper to setRequest(), so let's use that\n> directly instead.\n> \n> Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n>  include/libcamera/buffer.h | 1 -\n>  src/libcamera/request.cpp  | 9 +++++----\n>  2 files changed, 5 insertions(+), 5 deletions(-)\n> \n> diff --git a/include/libcamera/buffer.h b/include/libcamera/buffer.h\n> index 302fe3d3e86b..620f8a66f6a2 100644\n> --- a/include/libcamera/buffer.h\n> +++ b/include/libcamera/buffer.h\n> @@ -56,7 +56,6 @@ public:\n>  private:\n>  \tLIBCAMERA_DISABLE_COPY_AND_MOVE(FrameBuffer)\n>  \n> -\tfriend class Request; /* Needed to update request_. */\n>  \tfriend class V4L2VideoDevice; /* Needed to update metadata_. */\n>  \n>  \tstd::vector<Plane> planes_;\n> diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp\n> index 0071667e4a2c..3ad83f3b8418 100644\n> --- a/src/libcamera/request.cpp\n> +++ b/src/libcamera/request.cpp\n> @@ -118,8 +118,9 @@ void Request::reuse(ReuseFlag flags)\n>  \tpending_.clear();\n>  \tif (flags & ReuseBuffers) {\n>  \t\tfor (auto pair : bufferMap_) {\n> -\t\t\tpair.second->request_ = this;\n> -\t\t\tpending_.insert(pair.second);\n> +\t\t\tFrameBuffer *buffer = pair.second;\n> +\t\t\tbuffer->setRequest(this);\n> +\t\t\tpending_.insert(buffer);\n>  \t\t}\n>  \t} else {\n>  \t\tbufferMap_.clear();\n> @@ -187,7 +188,7 @@ int Request::addBuffer(const Stream *stream, FrameBuffer *buffer)\n>  \t\treturn -EEXIST;\n>  \t}\n>  \n> -\tbuffer->request_ = this;\n> +\tbuffer->setRequest(this);\n>  \tpending_.insert(buffer);\n>  \tbufferMap_[stream] = buffer;\n>  \n> @@ -294,7 +295,7 @@ bool Request::completeBuffer(FrameBuffer *buffer)\n>  \tint ret = pending_.erase(buffer);\n>  \tASSERT(ret == 1);\n>  \n> -\tbuffer->request_ = nullptr;\n> +\tbuffer->setRequest(nullptr);\n>  \n>  \tif (buffer->metadata().status == FrameMetadata::FrameCancelled)\n>  \t\tcancelled_ = true;\n> -- \n> 2.25.1\n> \n> _______________________________________________\n> libcamera-devel mailing list\n> libcamera-devel@lists.libcamera.org\n> https://lists.libcamera.org/listinfo/libcamera-devel","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 35D7CC32EA\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 26 Mar 2021 02:51:47 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id E51336084F;\n\tFri, 26 Mar 2021 03:51:46 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 43B76602E3\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 26 Mar 2021 03:51:46 +0100 (CET)","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 D0683443;\n\tFri, 26 Mar 2021 03:51:44 +0100 (CET)"],"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=\"Iv86KeML\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1616727106;\n\tbh=Xb0mjqDxXvDMNCBRZRM6/MbnPVNdSej8HWxShKLnpYM=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Iv86KeMLzLoGv9LDnsjVrFiYANZQiQr1i18OnLJgvlAybPtTWNdAJGbVVR57OCwex\n\tqbKWS6nwIaJut8lttirh6OOTPlESPOnVgPkwN28M4jXJkkSebhL+uE+kPayQi2dfZB\n\tt0baYkrpuJFDiZ+kGUhcyiw06fL6S/20XuWbOe/8=","Date":"Fri, 26 Mar 2021 11:51:38 +0900","From":"paul.elder@ideasonboard.com","To":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Message-ID":"<20210326025138.GD2040@pyrite.rasen.tech>","References":"<20210325134231.1400051-1-kieran.bingham@ideasonboard.com>\n\t<20210325134231.1400051-5-kieran.bingham@ideasonboard.com>","MIME-Version":"1.0","Content-Disposition":"inline","In-Reply-To":"<20210325134231.1400051-5-kieran.bingham@ideasonboard.com>","Subject":"Re: [libcamera-devel] [PATCH v3 02/11] libcamera: buffer: Break\n\tfriendship with Request","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>","Content-Type":"text/plain; charset=\"us-ascii\"","Content-Transfer-Encoding":"7bit","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]