Patch Detail
Show a patch.
GET /api/patches/8787/?format=api
{ "id": 8787, "url": "https://patchwork.libcamera.org/api/patches/8787/?format=api", "web_url": "https://patchwork.libcamera.org/patch/8787/", "project": { "id": 1, "url": "https://patchwork.libcamera.org/api/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": "<20200714104212.48683-13-jacopo@jmondi.org>", "date": "2020-07-14T10:42:04", "name": "[libcamera-devel,12/20] libcamera: camera: Zero streams before validate()", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": false, "hash": "545bd4bf8ae3665763470609785832fe029b9d17", "submitter": { "id": 3, "url": "https://patchwork.libcamera.org/api/people/3/?format=api", "name": "Jacopo Mondi", "email": "jacopo@jmondi.org" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/8787/mbox/", "series": [ { "id": 1104, "url": "https://patchwork.libcamera.org/api/series/1104/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1104", "date": "2020-07-14T10:41:52", "name": "libcamera: ipu3: Rework pipe configuration", "version": 1, "mbox": "https://patchwork.libcamera.org/series/1104/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/8787/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/8787/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 72910BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 14 Jul 2020 10:38:59 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 36041605AC;\n\tTue, 14 Jul 2020 12:38:59 +0200 (CEST)", "from relay10.mail.gandi.net (relay10.mail.gandi.net\n\t[217.70.178.230])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CA810605B2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 14 Jul 2020 12:38:56 +0200 (CEST)", "from uno.lan (93-34-118-233.ip49.fastwebnet.it [93.34.118.233])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay10.mail.gandi.net (Postfix) with ESMTPSA id 20270240018;\n\tTue, 14 Jul 2020 10:38:55 +0000 (UTC)" ], "From": "Jacopo Mondi <jacopo@jmondi.org>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Tue, 14 Jul 2020 12:42:04 +0200", "Message-Id": "<20200714104212.48683-13-jacopo@jmondi.org>", "X-Mailer": "git-send-email 2.27.0", "In-Reply-To": "<20200714104212.48683-1-jacopo@jmondi.org>", "References": "<20200714104212.48683-1-jacopo@jmondi.org>", "MIME-Version": "1.0", "Subject": "[libcamera-devel] [PATCH 12/20] libcamera: camera: Zero streams\n\tbefore validate()", "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>", "Content-Type": "text/plain; charset=\"utf-8\"", "Content-Transfer-Encoding": "base64", "Errors-To": "libcamera-devel-bounces@lists.libcamera.org", "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>" }, "content": "The current implementation of the Camera::configure() method zeroes the\nstream pointers assigned to the StreamConfiguration items before calling\nthe pipeline handler configure() operation, just after the\nCameraConfiguration has been validated.\n\nThis discards the stream assignment performed at pipeline hander\nvalidation time, requiring platforms that need to perform that early\nassignment to maintain the association in place with custom data\nstructures.\n\nTo allow pipeline handlers to use StreamConfiguration::setStream() at\nvalidate() time, zero the stream assignment before calling validate().\n\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nReviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>\nSigned-off-by: Jacopo Mondi <jacopo@jmondi.org>\n---\n src/libcamera/camera.cpp | 4 +++-\n 1 file changed, 3 insertions(+), 1 deletion(-)", "diff": "diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp\nindex 69a1b4428e3f..ca88c48b2830 100644\n--- a/src/libcamera/camera.cpp\n+++ b/src/libcamera/camera.cpp\n@@ -753,6 +753,9 @@ int Camera::configure(CameraConfiguration *config)\n \tif (ret < 0)\n \t\treturn ret;\n \n+\tfor (auto it : *config)\n+\t\tit.setStream(nullptr);\n+\n \tif (config->validate() != CameraConfiguration::Valid) {\n \t\tLOG(Camera, Error)\n \t\t\t<< \"Can't configure camera with invalid configuration\";\n@@ -763,7 +766,6 @@ int Camera::configure(CameraConfiguration *config)\n \n \tfor (unsigned int index = 0; index < config->size(); ++index) {\n \t\tStreamConfiguration &cfg = config->at(index);\n-\t\tcfg.setStream(nullptr);\n \t\tmsg << \" (\" << index << \") \" << cfg.toString();\n \t}\n \n", "prefixes": [ "libcamera-devel", "12/20" ] }