[{"id":22252,"web_url":"https://patchwork.libcamera.org/comment/22252/","msgid":"<CAHW6GYKryD3pCKP-XFW35SXq2rz-O=Z7=RwRgJym7G2hjmvotg@mail.gmail.com>","date":"2022-03-10T10:36:00","subject":"Re: [libcamera-devel] [PATCH v1 2/6] pipeline: raspberrypi: Move\n\tfreeBuffers() to the RPiCameraData class","submitter":{"id":97,"url":"https://patchwork.libcamera.org/api/people/97/","name":"Nicolas Dufresne via libcamera-devel","email":"libcamera-devel@lists.libcamera.org"},"content":"Hi Naush\n\nThanks for this patch!\n\nOn Mon, 7 Mar 2022 at 12:46, Naushir Patuck via libcamera-devel\n<libcamera-devel@lists.libcamera.org> wrote:\n>\n> This function used to clear the camera buffers does not belong in the\n> PipelineHandlerRPi class as it only access members of the RPiCameraData,\n> so move it.\n>\n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n> ---\n>  .../pipeline/raspberrypi/raspberrypi.cpp         | 16 +++++++---------\n>  1 file changed, 7 insertions(+), 9 deletions(-)\n>\n> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> index d604c473c26c..3781e4e0e3c4 100644\n> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> @@ -189,6 +189,7 @@ public:\n>         {\n>         }\n>\n> +       void freeBuffers();\n>         void frameStarted(uint32_t sequence);\n>\n>         int loadIPA(ipa::RPi::SensorConfig *sensorConfig);\n> @@ -329,7 +330,6 @@ private:\n>         int registerCamera(MediaDevice *unicam, MediaDevice *isp, MediaEntity *sensorEntity);\n>         int queueAllBuffers(Camera *camera);\n>         int prepareBuffers(Camera *camera);\n> -       void freeBuffers(Camera *camera);\n>         void mapBuffers(Camera *camera, const RPi::BufferMap &buffers, unsigned int mask);\n>  };\n>\n> @@ -1049,7 +1049,7 @@ void PipelineHandlerRPi::stopDevice(Camera *camera)\n>         /* Stop the IPA. */\n>         data->ipa_->stop();\n>\n> -       freeBuffers(camera);\n> +       data->freeBuffers();\n>  }\n>\n>  int PipelineHandlerRPi::queueRequestDevice(Camera *camera, Request *request)\n> @@ -1445,16 +1445,14 @@ void PipelineHandlerRPi::mapBuffers(Camera *camera, const RPi::BufferMap &buffer\n>         data->ipa_->mapBuffers(ipaBuffers);\n>  }\n>\n> -void PipelineHandlerRPi::freeBuffers(Camera *camera)\n> +void RPiCameraData::freeBuffers()\n>  {\n> -       RPiCameraData *data = cameraData(camera);\n> -\n>         /* Copy the buffer ids from the unordered_set to a vector to pass to the IPA. */\n> -       std::vector<unsigned int> ipaBuffers(data->ipaBuffers_.begin(), data->ipaBuffers_.end());\n> -       data->ipa_->unmapBuffers(ipaBuffers);\n> -       data->ipaBuffers_.clear();\n> +       std::vector<unsigned int> ipaBuffers(ipaBuffers_.begin(), ipaBuffers_.end());\n> +       ipa_->unmapBuffers(ipaBuffers);\n> +       ipaBuffers_.clear();\n>\n> -       for (auto const stream : data->streams_)\n> +       for (auto const stream : streams_)\n>                 stream->releaseBuffers();\n>  }\n>\n> --\n> 2.25.1\n>\n\nI agree this is a bit tidier, and of course is being tested as part of\npicamera2.\n\nReviewed-by: David Plowman <david.plowman@raspberrypi.com>\nTested-by: David Plowman <david.plowman@raspberrypi.com>\n\nThanks!\nDavid","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 B3DCEBF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 10 Mar 2022 10:36:12 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 5FBF861189;\n\tThu, 10 Mar 2022 11:36:12 +0100 (CET)","from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com\n\t[IPv6:2a00:1450:4864:20::32c])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id ABAC3601FF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 10 Mar 2022 11:36:11 +0100 (CET)","by mail-wm1-x32c.google.com with SMTP id\n\t7-20020a05600c228700b00385fd860f49so3127074wmf.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 10 Mar 2022 02:36:11 -0800 (PST)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1646908572;\n\tbh=FQvG3fRNLdOmO8vrZ9qbzx+NqNO/5E0hjt3f4o4g+xg=;\n\th=References:In-Reply-To:Date:To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=g8T8gpg8JKksJc1rzWgllY+1Is1Wsvu4Yw0RKUe09aoankykUa+UOyTN3+U+V0p2t\n\te0UMOp1R/HNdq+7YAjdwEj3tzMmxTaZYa3dJ7DLQxv8w4C/psyvJsq2uN+BhZ/yOUm\n\tz1IdjJmHg29/oCCoJFsdgvEtD+PaIatNFbsnSIzOMoL4kkEJl02UJ8JRJdKNW1oLfu\n\tqRqB/YhtNPaNOPdgZHrj8Og6QZ2NOHpCxaatHeEEPe0wiGGR46T7K4y6IaQxukl9v2\n\tpOt/dQXxn4xXxfUGDmLCO3Vd1IQWCBI1GIDJkGMrKgfdd5NExQ6RRbXmXWOfuq+tWJ\n\t87fib2+S+zu9w==","v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=mime-version:references:in-reply-to:from:date:message-id:subject:to\n\t:cc; bh=ZZoS3NFFjakCgiQLT+aF9UcEugPzOWljtu+RjrJDgy0=;\n\tb=qAchIZC2fs4PW9zIVEvKBGwiJnHI6zdn/oQxzXGYpbezSakjRnm6YBR5Ka1OZmEGhc\n\t9jMkhLMOguWUgzcD9OaICTG6iW29sKT2LzaISWlgwGzmiP2Zv5rb8TJ9gpdm7cUH0Ws5\n\t3LPzVyEx4JB8FcBhU9cW6v1RCXq1AJ55DCct91OQnUdUayar4/upAsqlbcIGvCmRZvhX\n\t9X4yjMWkVbMnbthEDY5xU146eO+R4bfmGDq+pDed39LihBL8Rd31Ee/ToiSFe1LNMjEP\n\tF0iK5b6E12IIHL+/NztihkkzUtG5haqVDO2HVi+7+CsLeGnB+8PYyKnpQ1+OxKaGN6hF\n\tCPWw=="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"qAchIZC2\"; dkim-atps=neutral","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=ZZoS3NFFjakCgiQLT+aF9UcEugPzOWljtu+RjrJDgy0=;\n\tb=rCrtkFhCibNorawIvX++q6MGwUfNaZVjpTPdlKpjTZZHa4tbQE9AaBCd5qMbOLm4V9\n\tB6XcenHNH5jZBSEb4pcwa8M10FPksfJNOa5AeZf45tB2T+0CCxdNNmb65aAxbFswmeL4\n\tTz2I0NQJ19C7PTVM6zg84Yz1VlMoTSvQPnD+5Q4VYgzPkjcy63gzTKmuI23q+gQj089Y\n\tIWJ53Qp3GY6pBXN5vPRwtCDuFHkzmy7F7Oh+RYsiiMNYIorFcWymXWBUiU5h9BYbrZEf\n\tAabUnS9yYivBwD+OUHEap1dH3nrfiY5ODdI4DNiSavzArtxC1yBwL11NWV/fN1KydBA+\n\tpu5A==","X-Gm-Message-State":"AOAM533RAxkJd1r5CZgH75XN0JEitfjJLmWNPN/zKcU43yMnn78MhgwX\n\tVhfLZEjF55O7EeNKZfDeg76hs5HKhuzgZ4Hmvh/+CfBhwtE=","X-Google-Smtp-Source":"ABdhPJxU/I5dDepqHobgO3SDEiuL2FbkDLWeueh63dCRKLoptuD4dc9HD1zop9Dan7KjZGk97Lmijbe16GD4VzTA12c=","X-Received":"by 2002:a05:600c:2219:b0:389:bc8b:ac48 with SMTP id\n\tz25-20020a05600c221900b00389bc8bac48mr10840021wml.14.1646908571327;\n\tThu, 10 Mar 2022 02:36:11 -0800 (PST)","MIME-Version":"1.0","References":"<20220307124633.115452-1-naush@raspberrypi.com>\n\t<20220307124633.115452-3-naush@raspberrypi.com>","In-Reply-To":"<20220307124633.115452-3-naush@raspberrypi.com>","Date":"Thu, 10 Mar 2022 10:36:00 +0000","Message-ID":"<CAHW6GYKryD3pCKP-XFW35SXq2rz-O=Z7=RwRgJym7G2hjmvotg@mail.gmail.com>","To":"Naushir Patuck <naush@raspberrypi.com>","Content-Type":"text/plain; charset=\"UTF-8\"","Subject":"Re: [libcamera-devel] [PATCH v1 2/6] pipeline: raspberrypi: Move\n\tfreeBuffers() to the RPiCameraData class","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>","From":"David Plowman via libcamera-devel <libcamera-devel@lists.libcamera.org>","Reply-To":"David Plowman <david.plowman@raspberrypi.com>","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":22264,"web_url":"https://patchwork.libcamera.org/comment/22264/","msgid":"<Yi4SJFoSHDFy4XeO@pendragon.ideasonboard.com>","date":"2022-03-13T15:47:48","subject":"Re: [libcamera-devel] [PATCH v1 2/6] pipeline: raspberrypi: Move\n\tfreeBuffers() to the RPiCameraData class","submitter":{"id":97,"url":"https://patchwork.libcamera.org/api/people/97/","name":"Nicolas Dufresne via libcamera-devel","email":"libcamera-devel@lists.libcamera.org"},"content":"Hi Naush,\n\nThank you for the patch.\n\nOn Mon, Mar 07, 2022 at 12:46:29PM +0000, Naushir Patuck via libcamera-devel wrote:\n> This function used to clear the camera buffers does not belong in the\n> PipelineHandlerRPi class as it only access members of the RPiCameraData,\n> so move it.\n> \n> Signed-off-by: Naushir Patuck <naush@raspberrypi.com>\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n> ---\n>  .../pipeline/raspberrypi/raspberrypi.cpp         | 16 +++++++---------\n>  1 file changed, 7 insertions(+), 9 deletions(-)\n> \n> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> index d604c473c26c..3781e4e0e3c4 100644\n> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n> @@ -189,6 +189,7 @@ public:\n>  \t{\n>  \t}\n>  \n> +\tvoid freeBuffers();\n>  \tvoid frameStarted(uint32_t sequence);\n>  \n>  \tint loadIPA(ipa::RPi::SensorConfig *sensorConfig);\n> @@ -329,7 +330,6 @@ private:\n>  \tint registerCamera(MediaDevice *unicam, MediaDevice *isp, MediaEntity *sensorEntity);\n>  \tint queueAllBuffers(Camera *camera);\n>  \tint prepareBuffers(Camera *camera);\n> -\tvoid freeBuffers(Camera *camera);\n>  \tvoid mapBuffers(Camera *camera, const RPi::BufferMap &buffers, unsigned int mask);\n>  };\n>  \n> @@ -1049,7 +1049,7 @@ void PipelineHandlerRPi::stopDevice(Camera *camera)\n>  \t/* Stop the IPA. */\n>  \tdata->ipa_->stop();\n>  \n> -\tfreeBuffers(camera);\n> +\tdata->freeBuffers();\n>  }\n>  \n>  int PipelineHandlerRPi::queueRequestDevice(Camera *camera, Request *request)\n> @@ -1445,16 +1445,14 @@ void PipelineHandlerRPi::mapBuffers(Camera *camera, const RPi::BufferMap &buffer\n>  \tdata->ipa_->mapBuffers(ipaBuffers);\n>  }\n>  \n> -void PipelineHandlerRPi::freeBuffers(Camera *camera)\n> +void RPiCameraData::freeBuffers()\n>  {\n> -\tRPiCameraData *data = cameraData(camera);\n> -\n>  \t/* Copy the buffer ids from the unordered_set to a vector to pass to the IPA. */\n> -\tstd::vector<unsigned int> ipaBuffers(data->ipaBuffers_.begin(), data->ipaBuffers_.end());\n> -\tdata->ipa_->unmapBuffers(ipaBuffers);\n> -\tdata->ipaBuffers_.clear();\n> +\tstd::vector<unsigned int> ipaBuffers(ipaBuffers_.begin(), ipaBuffers_.end());\n> +\tipa_->unmapBuffers(ipaBuffers);\n> +\tipaBuffers_.clear();\n>  \n> -\tfor (auto const stream : data->streams_)\n> +\tfor (auto const stream : streams_)\n>  \t\tstream->releaseBuffers();\n>  }\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 32510BE08A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 13 Mar 2022 15:48:07 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DE284604EA;\n\tSun, 13 Mar 2022 16:48:06 +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 11259604E7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 13 Mar 2022 16:48:05 +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 9FE2D475;\n\tSun, 13 Mar 2022 16:48:04 +0100 (CET)"],"DKIM-Signature":["v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1647186486;\n\tbh=vkzYF03tm0O4F9ZEvSByp0Ea404qKhyR8FLMLRgFdro=;\n\th=Date:To:References:In-Reply-To:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc:\n\tFrom;\n\tb=kpPLr8Y77HdJm4EdQHoybKDpu4KCl/GpmLkETMD160WBXt+nWk5pLdYdb1aK/6oJ0\n\t91dP1g562bbO7gixPIrCSairLnzeNZuHNtfoqkKXm+muerTNPAYGmflZ9WmrVJWG7Y\n\tWgzLKurmQu73sDQUGEFnHnZ7ae3m1SOFPMwTLqR/v4c3vNwPMTvZARwc58q6HQP/nL\n\tQSki9THkTmabPlJbqtqBzC4iJr3ASyicjwiKesStddrExK4WS4EjfwOjXJeFyJwKwd\n\tR9CDyTjCdDulOr3P2Uix5iFw5QLLAYdI2IAp6t/fyKyBFX3/DDrKgc4gM+JpMQYbqa\n\t0VaszXGaXHMFw==","v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1647186484;\n\tbh=vkzYF03tm0O4F9ZEvSByp0Ea404qKhyR8FLMLRgFdro=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=bVnAbQauFzhBHeeDWQKcy/SXOot3A0ivtubHGMbPjI6Ig5dBdZPzFVqvoP/PodKBI\n\tdQ0SzQIvHL2TusuY5r/0ulgAYMEybvmj4BUuUXdhrMu9+JKnz5C4Ba2ISqYcuAqHh+\n\tc0gmmUBrYogxUfs892xYOea3/4oNtbgbCqJllcTU="],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key; \n\tunprotected) header.d=ideasonboard.com\n\theader.i=@ideasonboard.com\n\theader.b=\"bVnAbQau\"; dkim-atps=neutral","Date":"Sun, 13 Mar 2022 17:47:48 +0200","To":"Naushir Patuck <naush@raspberrypi.com>","Message-ID":"<Yi4SJFoSHDFy4XeO@pendragon.ideasonboard.com>","References":"<20220307124633.115452-1-naush@raspberrypi.com>\n\t<20220307124633.115452-3-naush@raspberrypi.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<20220307124633.115452-3-naush@raspberrypi.com>","Subject":"Re: [libcamera-devel] [PATCH v1 2/6] pipeline: raspberrypi: Move\n\tfreeBuffers() to the RPiCameraData class","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>","From":"Laurent Pinchart via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>","Reply-To":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]