Cover Letter Detail
Show a cover letter.
GET /api/1.1/covers/23445/?format=api
{ "id": 23445, "url": "https://patchwork.libcamera.org/api/1.1/covers/23445/?format=api", "web_url": "https://patchwork.libcamera.org/cover/23445/", "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": "<20250526214224.13631-1-stefan.klug@ideasonboard.com>", "date": "2025-05-26T21:42:14", "name": "[RFC,0/4] 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/23445/mbox/", "series": [ { "id": 5196, "url": "https://patchwork.libcamera.org/api/1.1/series/5196/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5196", "date": "2025-05-26T21:42:14", "name": "rkisp1: Allow usage of more than 4 buffers", "version": 1, "mbox": "https://patchwork.libcamera.org/series/5196/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/covers/23445/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 4A6D1C31E9\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 26 May 2025 21:42:40 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D95E368D9D;\n\tMon, 26 May 2025 23:42:38 +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 6204C627DA\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 26 May 2025 23:42:36 +0200 (CEST)", "from ideasonboard.com (tmo-070-11.customers.d1-online.com\n\t[80.187.70.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id D32AE581;\n\tMon, 26 May 2025 23:42:10 +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=\"g6oSTfAo\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1748295731;\n\tbh=Q78ajOhjX3CB/ZJEjCDbm4BL5dqxXe+e+h+yd2gTfx4=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=g6oSTfAo9eVDjRHvDp3OCqaXkScz+8xvVYJaKhXTg4JlcoP9EcsNzRlgno97tyXZF\n\tcHjBoSoWkuS6hdu0WKW5x0xccTT8mrnVHgI6cWWuuiBrv9nmS1ntebT+QsWmAGV414\n\tk99TM6iQWhoMMz2VaXS+2fB5r0+RNYGGZYHpE2G4=", "From": "Stefan Klug <stefan.klug@ideasonboard.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Stefan Klug <stefan.klug@ideasonboard.com>", "Subject": "[RFC PATCH 0/4] rkisp1: Allow usage of more than 4 buffers", "Date": "Mon, 26 May 2025 23:42:14 +0200", "Message-ID": "<20250526214224.13631-1-stefan.klug@ideasonboard.com>", "X-Mailer": "git-send-email 2.43.0", "MIME-Version": "1.0", "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\nI'm not available this week so I post the patches as RFC only for others\nto try out as these were not thoroughly tested. Any feedback is greatly\nappreciated.\n\nBest regards,\nStefan\n\n\n[1] https://patchwork.libcamera.org/project/libcamera/list/?series=5148\n\nStefan Klug (4):\n libcamera: pipeline_handler: Move waitingRequests_ into camera class\n libcamera: internal: Allow to limit the number of queued requests\n pipeline: rkisp1: Limit the maximum number of buffers queued in\n pipeline: rkisp1: Prperly handle the bufferCount set in the stream\n configuration\n\n include/libcamera/internal/camera.h | 2 +\n include/libcamera/internal/pipeline_handler.h | 8 ++--\n src/libcamera/pipeline/rkisp1/rkisp1.cpp | 12 +++++-\n src/libcamera/pipeline/rkisp1/rkisp1_path.cpp | 6 +--\n src/libcamera/pipeline/rkisp1/rkisp1_path.h | 4 +-\n src/libcamera/pipeline_handler.cpp | 37 +++++++++++++------\n 6 files changed, 46 insertions(+), 23 deletions(-)" }