Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/23743/?format=api
{ "id": 23743, "url": "https://patchwork.libcamera.org/api/1.1/covers/23743/?format=api", "web_url": "https://patchwork.libcamera.org/cover/23743/", "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": "<20250707075400.9079-1-stefan.klug@ideasonboard.com>", "date": "2025-07-07T07:53:34", "name": "[v2,0/5] rkisp1: Allow usage of more than 4 buffers", "submitter": { "id": 184, "url": "https://patchwork.libcamera.org/api/1.1/people/184/?format=api", "name": "Stefan Klug", "email": "stefan.klug@ideasonboard.com" }, "mbox": "https://patchwork.libcamera.org/cover/23743/mbox/", "series": [ { "id": 5272, "url": "https://patchwork.libcamera.org/api/1.1/series/5272/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5272", "date": "2025-07-07T07:53:34", "name": "rkisp1: Allow usage of more than 4 buffers", "version": 2, "mbox": "https://patchwork.libcamera.org/series/5272/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/23743/comments/", "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 66FA8C3237\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 7 Jul 2025 07:54:17 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9D80768E7F;\n\tMon, 7 Jul 2025 09:54:15 +0200 (CEST)", "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id E1F5168E66\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 7 Jul 2025 09:54:12 +0200 (CEST)", "from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:c79f:85df:e7f5:4c31])\n\tby perceval.ideasonboard.com (Postfix) with UTF8SMTPSA id 22881526;\n\tMon, 7 Jul 2025 09:53:46 +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=\"Sx8dac5b\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1751874826;\n\tbh=OpNvVL51nFA3EpAdHxnwf384wjJ6wxarcZ64VGTxHoU=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=Sx8dac5biEWlm9JiWkxpy6WQQcCP0g29GpGOxaQSQncSxC33uGUsVd2JTuv/d7VmI\n\tBwk6X4Ma5lveScvciJ5L4sWmXQzf4WmtjNeXXphaU+Bt5t1tZIJ7D7W9P5Nf6LyzCN\n\t9Dz8xWaa4Uabv2T3oZnLQy1laJs6aJtUcjY8/aM4=", "From": "Stefan Klug <stefan.klug@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Stefan Klug <stefan.klug@ideasonboard.com>", "Subject": "[PATCH v2 0/5] rkisp1: Allow usage of more than 4 buffers", "Date": "Mon, 7 Jul 2025 09:53:34 +0200", "Message-ID": "<20250707075400.9079-1-stefan.klug@ideasonboard.com>", "X-Mailer": "git-send-email 2.48.1", "MIME-Version": "1.0", "Content-Type": "text/plain; charset=UTF-8", "Content-Transfer-Encoding": "8bit", "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>" }, "content": "Hi all,\n\nIn the rkisp1 pipeline the value of StreamConfiuration.bufferCount is\nreset to 4 on validate(). This effectively limits the number of buffers\nthat are in the loop to 4. As soon as the consumers\n(gstream/pipewire...) of the buffers need more than 1 buffer at a time,\nwe start to see frame drops. Sven resurrected an old series [1] that\nsolves the issue at the expense of an additional control and breaking\nchanges in the API.\n\nIn the IoB code camp two weeks ago there were some discussions regarding\nimprovements in the rkisp1 regulation and per-frame-control (PFC). PFC\nhas been an ongoing topic for quite some time now and it seems to slowly\nconverge. Still we were hesitant in breaking the API or introducing new\ncontrols before the overall concepts have stabilized enough.\n\nTo mitigate the pain mentioned above we came up with a minimal changeset\nthat allows to request more than 4 buffers. Only 4 (or the pipeline\ndepth reported by the pipeline) buffers are queued into the device.\nThis has the same benefits as [1] but doesn't require an API break.\n\nUpdates in Version 1 of the series (after the RFC):\n- Included the feedback from reviews of the RFC (For etails see the chaneglog in\n the individual patches)\n- Included two patches with fixes from Sven an Kieran\n- I modified patch (6/6) from Kieran a bit after the review comment from\n Laurent. @Kieran could you have a look at that as I don't have a easy way to\n replicate the issue? Ideally I would like to merge that patch into patch 2/6\n as it fixes an issue introduced there. For now I left it separate for easier\n review.\n\nUpdates in v2:\n- Fixed segfault due to wrong lambda capturing\n- Fixed ASSERT dues to recursive call of doQueueRequests in virtual pipeline\n- Improved documentation\n- Squashed patch 6 into patch 2\n\nBest regards,\nStefan\n\nNícolas F. R. A. Prado (1):\n libcamera: pipeline: rkisp1: Don't rely on bufferCount\n\nStefan Klug (4):\n libcamera: pipeline_handler: Move waitingRequests_ into camera class\n libcamera: pipeline_handler: Allow to limit the number of queued\n requests\n pipeline: rkisp1: Limit the maximum number of buffers queued in\n pipeline: rkisp1: Properly handle the bufferCount set in the stream\n configuration\n\n include/libcamera/internal/camera.h | 2 +\n include/libcamera/internal/pipeline_handler.h | 9 ++-\n src/libcamera/camera.cpp | 9 +++\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 28 +++++---\n src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 7 +-\n src/libcamera/pipeline/rkisp1/rkisp1_path.h | 4 +-\n src/libcamera/pipeline_handler.cpp | 70 +++++++++++++++----\n 7 files changed, 90 insertions(+), 39 deletions(-)" }