Patch Detail
Show a patch.
GET /api/1.1/patches/17910/?format=api
{ "id": 17910, "url": "https://patchwork.libcamera.org/api/1.1/patches/17910/?format=api", "web_url": "https://patchwork.libcamera.org/patch/17910/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/1.1/projects/1/?format=api", "name": "libcamera", "link_name": "libcamera", "list_id": "libcamera_core", "list_email": "libcamera-devel@lists.libcamera.org", "web_url": "", "scm_url": "", "webscm_url": "" }, "msgid": "<20221129134534.2933-4-naush@raspberrypi.com>", "date": "2022-11-29T13:45:27", "name": "[libcamera-devel,v2,03/10] pipeline: raspberrypi: Split out ISP Output0 buffer allocation", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "e95269b53be63f4775b308b270c4321bd4c18039", "submitter": { "id": 34, "url": "https://patchwork.libcamera.org/api/1.1/people/34/?format=api", "name": "Naushir Patuck", "email": "naush@raspberrypi.com" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/17910/mbox/", "series": [ { "id": 3647, "url": "https://patchwork.libcamera.org/api/1.1/series/3647/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=3647", "date": "2022-11-29T13:45:24", "name": "Raspberry Pi: Platform configuration and buffer allocation improvements", "version": 2, "mbox": "https://patchwork.libcamera.org/series/3647/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/17910/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/17910/checks/", "tags": {}, "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 6D498BE08B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 29 Nov 2022 13:45:44 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D52E563343;\n\tTue, 29 Nov 2022 14:45:43 +0100 (CET)", "from mail-wm1-x332.google.com (mail-wm1-x332.google.com\n\t[IPv6:2a00:1450:4864:20::332])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id A3A2F63331\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 29 Nov 2022 14:45:40 +0100 (CET)", "by mail-wm1-x332.google.com with SMTP id v7so10952786wmn.0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 29 Nov 2022 05:45:40 -0800 (PST)", "from naush-laptop.localdomain ([93.93.133.154])\n\tby smtp.gmail.com with ESMTPSA id\n\tn8-20020a05600c3b8800b003cfbbd54178sm3565636wms.2.2022.11.29.05.45.39\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 29 Nov 2022 05:45:39 -0800 (PST)" ], "DKIM-Signature": [ "v=1; a=rsa-sha256; c=relaxed/simple; d=libcamera.org;\n\ts=mail; t=1669729543;\n\tbh=OdbIBqn4LJOScBMWLFGppyDRgrAnWiPNTbPBcrFRT7o=;\n\th=To:Date:In-Reply-To:References:Subject:List-Id:List-Unsubscribe:\n\tList-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:\n\tFrom;\n\tb=uZ6ped+lzcUybuvwe2NAYm4ileLDcIZ4rIPlzmKNq9ypjiKuEwXHMRUdjXGae7dIY\n\twXpfVnIAKS/K7hSjK4pCXjQle2Jd1qTqeMmBEGrTPzI25yFgctGI/LSV5rfjoZlv9A\n\tFdM72IEM//uJMH5/xb0IQ2L6E75HmjUMuxEwIOZ48ircFGF6c7wLNuSKXCIt2q+dRQ\n\trAlQS00I0Zh/oAvLW98nfMUdCEUut5MRJg4DUsT4nbPuWPzKZYVjD/U3MNlK2PI4BF\n\tZ94GGpmfxxnpK7t3+E+EJuVuyj+GrOZ8CeLpXSgjQqw2wrJhf6S74Vtg217tg0IjIH\n\t1w4V4ww19BmJw==", "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=raspberrypi.com; s=google;\n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=vDUjikHxPpLQasRYd91iRpJMp4hp3BcRxTpdbCI0X+o=;\n\tb=mQWvgYWXwTzk6spK27NFa/IIdzY5oqFf1ukaVQqCQmpsNJ4RL32Vfi/zvEAvvQYSpY\n\t97T/tIMM3cijJg8CnwLUGLyTMavULxZN9yhQ1leA/DLbPkIGrhoWuUnnNDcQ/LQIlotW\n\tf/vUmQ8sfuOaw6GqQhEalR2PDIF6j6WPiNdHKNe7emawX6Xmje0cnR+O/U8dhTFaSd+/\n\tYeU9gq6hKSxxRYLQAoJXU8BWXegieK2VOjSfKu9tqNXKaes4zKMiY9q5UmVjqA4atXID\n\tKnb0EQyaAADHGX6UbNGd9ehoBGBsgrhTRQK30pYCFAnfbQac68LyEksDnDuur3wLdVwQ\n\tGqpA==" ], "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=raspberrypi.com\n\theader.i=@raspberrypi.com\n\theader.b=\"mQWvgYWX\"; dkim-atps=neutral", "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=content-transfer-encoding:mime-version:references:in-reply-to\n\t:message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc\n\t:subject:date:message-id:reply-to;\n\tbh=vDUjikHxPpLQasRYd91iRpJMp4hp3BcRxTpdbCI0X+o=;\n\tb=gslMsdQRfw6oEwbXNQOCJMjxbMh0puGXcr2QlTFigUvYo+imk2VqxLeYTJlFTffX9i\n\toQOTSe9tZBIj09G6M9Tk63wIpyc59RQ+V9ZcjkU97yF6oSz849qjqpnxE8n7n+h1y2FA\n\tJwKBOQV4qcbhhxbi3DBTtKdsEekd45CSWcfMTCgyg7pcZINfjvKe7+Gquq4+VOcOUmLM\n\t7+Ak+Ov+7ZgV+vP+I27KkTRE7BD6LyXZss2rynv99wex7ctS5D08V3AnwGyi7dgzuJE9\n\t5hLftz8eCxadple6jbKe35xeobbf6Ft9G94K1zYPjACuIiY7D+2Ri+kJ05wuLtQkTolc\n\tC2dQ==", "X-Gm-Message-State": "ANoB5plknzzA+lsdTpcSVR8moFR6NAYzOdSegZNMEse0le4EujIcjFho\n\t5f6DqvHTC9ejSSiqqC1rwFzPFnzXbecm2Q==", "X-Google-Smtp-Source": "AA0mqf5jA6fyGJmROQtVj0wFrYgvE7UqEdvPVVgrpBKir0T2p/4938Jw0BNFic2VQt7YayQ+tBC0mg==", "X-Received": "by 2002:a05:600c:2e0c:b0:3d0:6d87:7b44 with SMTP id\n\to12-20020a05600c2e0c00b003d06d877b44mr909713wmf.106.1669729539950; \n\tTue, 29 Nov 2022 05:45:39 -0800 (PST)", "To": "libcamera-devel@lists.libcamera.org", "Date": "Tue, 29 Nov 2022 13:45:27 +0000", "Message-Id": "<20221129134534.2933-4-naush@raspberrypi.com>", "X-Mailer": "git-send-email 2.25.1", "In-Reply-To": "<20221129134534.2933-1-naush@raspberrypi.com>", "References": "<20221129134534.2933-1-naush@raspberrypi.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[libcamera-devel] [PATCH v2 03/10] pipeline: raspberrypi: Split out\n\tISP Output0 buffer allocation", "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": "Naushir Patuck via libcamera-devel\n\t<libcamera-devel@lists.libcamera.org>", "Reply-To": "Naushir Patuck <naush@raspberrypi.com>", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "Add a new config parameter numOutput0Buffers specifying the number of internally\nallocated ISP Output0 buffers. This parameter defaults to 1.\n\nSplit out the buffer allocation logic so that the buffer count for ISP Output0\ncan be different from the ISP Output1 and Statistics streams.\n\nSigned-off-by: Naushir Patuck <naush@raspberrypi.com>\nReviewed-by: David Plowman <david.plowman@raspberrypi.com>\n---\n .../pipeline/raspberrypi/raspberrypi.cpp | 21 +++++++++++++++----\n 1 file changed, 17 insertions(+), 4 deletions(-)", "diff": "diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\nindex 4486d31ea78d..f2b695af2399 100644\n--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp\n@@ -305,6 +305,11 @@ public:\n \t\t * the Unicam Image steram.\n \t\t */\n \t\tunsigned int minTotalUnicamBuffers;\n+\t\t/*\n+\t\t * The number of internal buffers allocated for the ISP Output0\n+\t\t * stream.\n+\t\t */\n+\t\tunsigned int numOutput0Buffers;\n \t};\n \n \tConfig config_;\n@@ -1418,6 +1423,7 @@ int PipelineHandlerRPi::configurePipelineHandler(RPiCameraData *data)\n \tconfig = {\n \t\t.minUnicamBuffers = 2,\n \t\t.minTotalUnicamBuffers = 4,\n+\t\t.numOutput0Buffers = 1,\n \t};\n \n \treturn 0;\n@@ -1502,12 +1508,19 @@ int PipelineHandlerRPi::prepareBuffers(Camera *camera)\n \t\t\t * so allocate the minimum required to avoid frame drops.\n \t\t\t */\n \t\t\tnumBuffers = minBuffers;\n-\t\t} else {\n+\t\t} else if (stream == &data->isp_[Isp::Output0]) {\n \t\t\t/*\n \t\t\t * Since the ISP runs synchronous with the IPA and requests,\n-\t\t\t * we only ever need one set of internal buffers. Any buffers\n-\t\t\t * the application wants to hold onto will already be exported\n-\t\t\t * through PipelineHandlerRPi::exportFrameBuffers().\n+\t\t\t * we only ever need a maximum of one internal buffer. Any\n+\t\t\t * buffers the application wants to hold onto will already\n+\t\t\t * be exported through PipelineHandlerRPi::exportFrameBuffers().\n+\t\t\t */\n+\t\t\tnumBuffers = std::min(1u, data->config_.numOutput0Buffers);\n+\t\t} else {\n+\t\t\t/*\n+\t\t\t * Same reasoning as above, we only ever need a maximum\n+\t\t\t * of one internal buffer for Output1 (required for colour\n+\t\t\t * denoise) and ISP statistics.\n \t\t\t */\n \t\t\tnumBuffers = 1;\n \t\t}\n", "prefixes": [ "libcamera-devel", "v2", "03/10" ] }