[{"id":35300,"web_url":"https://patchwork.libcamera.org/comment/35300/","msgid":"<175457601119.3514842.10547042197879153262@ping.linuxembedded.co.uk>","date":"2025-08-07T14:13:31","subject":"Re: [PATCH v2] test: camera: Use Request::ReuseBuffers flag","submitter":{"id":4,"url":"https://patchwork.libcamera.org/api/people/4/","name":"Kieran Bingham","email":"kieran.bingham@ideasonboard.com"},"content":"Quoting Umang Jain (2025-08-07 14:57:26)\n> Pass Request::ReuseBuffers flag to request->reuse()\n> where the same buffers are added to the request, as the flag\n> exists precisely for such use cases.\n> \n> This commit also drops invalid comments about creating new requests,\n> since requests were already being reused for `buffer_import`\n> and `capture` tests since commit c753223ad6b9\n> (\"libcamera, android, cam, gstreamer, qcam, v4l2: Reuse Request\").\n> \n> Signed-off-by: Umang Jain <uajain@igalia.com>\n> ---\n> changes in v2:\n> - Drop invalid \"Create a new request\" comments\n> ---\n>  test/camera/buffer_import.cpp      | 9 +--------\n>  test/camera/camera_reconfigure.cpp | 8 +-------\n>  test/camera/capture.cpp            | 9 +--------\n>  3 files changed, 3 insertions(+), 23 deletions(-)\n> \n> diff --git a/test/camera/buffer_import.cpp b/test/camera/buffer_import.cpp\n> index 815d1cae..5e271ad3 100644\n> --- a/test/camera/buffer_import.cpp\n> +++ b/test/camera/buffer_import.cpp\n> @@ -52,16 +52,9 @@ protected:\n>                 if (request->status() != Request::RequestComplete)\n>                         return;\n>  \n> -               const Request::BufferMap &buffers = request->buffers();\n> -\n>                 completeRequestsCount_++;\n>  \n> -               /* Create a new request. */\n> -               const Stream *stream = buffers.begin()->first;\n> -               FrameBuffer *buffer = buffers.begin()->second;\n> -\n> -               request->reuse();\n> -               request->addBuffer(stream, buffer);\n> +               request->reuse(Request::ReuseBuffers);\n>                 camera_->queueRequest(request);\n>  \n>                 dispatcher_->interrupt();\n> diff --git a/test/camera/camera_reconfigure.cpp b/test/camera/camera_reconfigure.cpp\n> index 06c87730..ae9941c1 100644\n> --- a/test/camera/camera_reconfigure.cpp\n> +++ b/test/camera/camera_reconfigure.cpp\n> @@ -46,14 +46,8 @@ private:\n>                 if (request->status() != Request::RequestComplete)\n>                         return;\n>  \n> -               const Request::BufferMap &buffers = request->buffers();\n> -\n> -               const Stream *stream = buffers.begin()->first;\n> -               FrameBuffer *buffer = buffers.begin()->second;\n> -\n>                 /* Reuse the request and re-queue it with the same buffers. */\n\nMight be worth putting that comment with the other cases too to match.\nBut it doesn't matter.\n\n\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\n> -               request->reuse();\n> -               request->addBuffer(stream, buffer);\n> +               request->reuse(Request::ReuseBuffers);\n>                 camera_->queueRequest(request);\n>         }\n>  \n> diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp\n> index 8766fb19..fabe297e 100644\n> --- a/test/camera/capture.cpp\n> +++ b/test/camera/capture.cpp\n> @@ -48,16 +48,9 @@ protected:\n>                 if (request->status() != Request::RequestComplete)\n>                         return;\n>  \n> -               const Request::BufferMap &buffers = request->buffers();\n> -\n>                 completeRequestsCount_++;\n>  \n> -               /* Create a new request. */\n> -               const Stream *stream = buffers.begin()->first;\n> -               FrameBuffer *buffer = buffers.begin()->second;\n> -\n> -               request->reuse();\n> -               request->addBuffer(stream, buffer);\n> +               request->reuse(Request::ReuseBuffers);\n>                 camera_->queueRequest(request);\n>  \n>                 dispatcher_->interrupt();\n> -- \n> 2.50.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 8210ABE086\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  7 Aug 2025 14:13:36 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 63C456921E;\n\tThu,  7 Aug 2025 16:13:35 +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 D11BD69052\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  7 Aug 2025 16:13:33 +0200 (CEST)","from pendragon.ideasonboard.com\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8E8DEAD0;\n\tThu,  7 Aug 2025 16:12:44 +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=\"E6MzljCf\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1754575964;\n\tbh=Z/rt4txRi9qMIiD44uVVFBT5HLsCIwI7kpdoloCfvHE=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=E6MzljCfZzjyFc5b0aRJ3n+3mJfLZGMEQ7auFTEeqYGojTRzvL2rZTDY7WHQdOeU+\n\tuHjnUY9t/kQkVmux0adU9yi2u9li9v/yMu4SvljErCn7Tp3c4RoXtSGq6V9/GMz7N1\n\tEGYmwjDduG6kQWq94sgl4co/qrEjMg97x1YQxqCc=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250807135726.89330-1-uajain@igalia.com>","References":"<20250807135726.89330-1-uajain@igalia.com>","Subject":"Re: [PATCH v2] test: camera: Use Request::ReuseBuffers flag","From":"Kieran Bingham <kieran.bingham@ideasonboard.com>","Cc":"Umang Jain <uajain@igalia.com>","To":"Umang Jain <uajain@igalia.com>, libcamera-devel@lists.libcamera.org","Date":"Thu, 07 Aug 2025 15:13:31 +0100","Message-ID":"<175457601119.3514842.10547042197879153262@ping.linuxembedded.co.uk>","User-Agent":"alot/0.9.1","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":35558,"web_url":"https://patchwork.libcamera.org/comment/35558/","msgid":"<175618232867.607151.7153535811816917500@neptunite.rasen.tech>","date":"2025-08-26T04:25:28","subject":"Re: [PATCH v2] test: camera: Use Request::ReuseBuffers flag","submitter":{"id":17,"url":"https://patchwork.libcamera.org/api/people/17/","name":"Paul Elder","email":"paul.elder@ideasonboard.com"},"content":"Quoting Umang Jain (2025-08-07 22:57:26)\n> Pass Request::ReuseBuffers flag to request->reuse()\n> where the same buffers are added to the request, as the flag\n> exists precisely for such use cases.\n> \n> This commit also drops invalid comments about creating new requests,\n> since requests were already being reused for `buffer_import`\n> and `capture` tests since commit c753223ad6b9\n> (\"libcamera, android, cam, gstreamer, qcam, v4l2: Reuse Request\").\n> \n> Signed-off-by: Umang Jain <uajain@igalia.com>\n\nReviewed-by: Paul Elder <paul.elder@ideasonboard.com>\n\n> ---\n> changes in v2:\n> - Drop invalid \"Create a new request\" comments\n> ---\n>  test/camera/buffer_import.cpp      | 9 +--------\n>  test/camera/camera_reconfigure.cpp | 8 +-------\n>  test/camera/capture.cpp            | 9 +--------\n>  3 files changed, 3 insertions(+), 23 deletions(-)\n> \n> diff --git a/test/camera/buffer_import.cpp b/test/camera/buffer_import.cpp\n> index 815d1cae..5e271ad3 100644\n> --- a/test/camera/buffer_import.cpp\n> +++ b/test/camera/buffer_import.cpp\n> @@ -52,16 +52,9 @@ protected:\n>                 if (request->status() != Request::RequestComplete)\n>                         return;\n>  \n> -               const Request::BufferMap &buffers = request->buffers();\n> -\n>                 completeRequestsCount_++;\n>  \n> -               /* Create a new request. */\n> -               const Stream *stream = buffers.begin()->first;\n> -               FrameBuffer *buffer = buffers.begin()->second;\n> -\n> -               request->reuse();\n> -               request->addBuffer(stream, buffer);\n> +               request->reuse(Request::ReuseBuffers);\n>                 camera_->queueRequest(request);\n>  \n>                 dispatcher_->interrupt();\n> diff --git a/test/camera/camera_reconfigure.cpp b/test/camera/camera_reconfigure.cpp\n> index 06c87730..ae9941c1 100644\n> --- a/test/camera/camera_reconfigure.cpp\n> +++ b/test/camera/camera_reconfigure.cpp\n> @@ -46,14 +46,8 @@ private:\n>                 if (request->status() != Request::RequestComplete)\n>                         return;\n>  \n> -               const Request::BufferMap &buffers = request->buffers();\n> -\n> -               const Stream *stream = buffers.begin()->first;\n> -               FrameBuffer *buffer = buffers.begin()->second;\n> -\n>                 /* Reuse the request and re-queue it with the same buffers. */\n> -               request->reuse();\n> -               request->addBuffer(stream, buffer);\n> +               request->reuse(Request::ReuseBuffers);\n>                 camera_->queueRequest(request);\n>         }\n>  \n> diff --git a/test/camera/capture.cpp b/test/camera/capture.cpp\n> index 8766fb19..fabe297e 100644\n> --- a/test/camera/capture.cpp\n> +++ b/test/camera/capture.cpp\n> @@ -48,16 +48,9 @@ protected:\n>                 if (request->status() != Request::RequestComplete)\n>                         return;\n>  \n> -               const Request::BufferMap &buffers = request->buffers();\n> -\n>                 completeRequestsCount_++;\n>  \n> -               /* Create a new request. */\n> -               const Stream *stream = buffers.begin()->first;\n> -               FrameBuffer *buffer = buffers.begin()->second;\n> -\n> -               request->reuse();\n> -               request->addBuffer(stream, buffer);\n> +               request->reuse(Request::ReuseBuffers);\n>                 camera_->queueRequest(request);\n>  \n>                 dispatcher_->interrupt();\n> -- \n> 2.50.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 7D617BD87C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 26 Aug 2025 04:25:39 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C2B87692E9;\n\tTue, 26 Aug 2025 06:25:37 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id ACCB5613BA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 Aug 2025 06:25:34 +0200 (CEST)","from neptunite.rasen.tech (unknown\n\t[IPv6:2404:7a81:160:2100:5d3f:5a62:a50a:b707])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 6B25D18BF; \n\tTue, 26 Aug 2025 06:24:31 +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=\"GmEjNBLx\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1756182271;\n\tbh=OJaXqBWv0zX6TdLMVnbOUL9KDJwrFFeEBM2bd7XjOJ8=;\n\th=In-Reply-To:References:Subject:From:Cc:To:Date:From;\n\tb=GmEjNBLxNlFu3cqicg2FGIo+yysqfUk3RoxH/bQuReaSywYdbNfsTV5pd4wsUA3Kf\n\tBUrOR52vFOfjpU/6ibEsfQKBH+ltTlt/0a3EJX031M8j1tUxXiXHiKKiMLgUez3AhI\n\tap5PQsPvCNbWhT2S7vbSImrj5RicDiPJ9oYZZIVU=","Content-Type":"text/plain; charset=\"utf-8\"","MIME-Version":"1.0","Content-Transfer-Encoding":"quoted-printable","In-Reply-To":"<20250807135726.89330-1-uajain@igalia.com>","References":"<20250807135726.89330-1-uajain@igalia.com>","Subject":"Re: [PATCH v2] test: camera: Use Request::ReuseBuffers flag","From":"Paul Elder <paul.elder@ideasonboard.com>","Cc":"Umang Jain <uajain@igalia.com>","To":"Umang Jain <uajain@igalia.com>, libcamera-devel@lists.libcamera.org","Date":"Tue, 26 Aug 2025 13:25:28 +0900","Message-ID":"<175618232867.607151.7153535811816917500@neptunite.rasen.tech>","User-Agent":"alot/0.0.0","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]