Patch Detail
Show a patch.
GET /api/1.1/patches/8883/?format=api
{ "id": 8883, "url": "https://patchwork.libcamera.org/api/1.1/patches/8883/?format=api", "web_url": "https://patchwork.libcamera.org/patch/8883/", "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": "<20200720104736.19986-12-jacopo@jmondi.org>", "date": "2020-07-20T10:47:28", "name": "[libcamera-devel,v4,11/19] 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/1.1/people/3/?format=api", "name": "Jacopo Mondi", "email": "jacopo@jmondi.org" }, "delegate": null, "mbox": "https://patchwork.libcamera.org/patch/8883/mbox/", "series": [ { "id": 1118, "url": "https://patchwork.libcamera.org/api/1.1/series/1118/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1118", "date": "2020-07-20T10:47:17", "name": "ipu3: rework pipe confiuguration", "version": 4, "mbox": "https://patchwork.libcamera.org/series/1118/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/8883/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/8883/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 58D21C2E67\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 20 Jul 2020 10:44:26 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2E2B460746;\n\tMon, 20 Jul 2020 12:44:26 +0200 (CEST)", "from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net\n\t[217.70.183.195])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5D6B260716\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 20 Jul 2020 12:44:22 +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 relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 97B8E60013;\n\tMon, 20 Jul 2020 10:44:21 +0000 (UTC)" ], "X-Originating-IP": "93.34.118.233", "From": "Jacopo Mondi <jacopo@jmondi.org>", "To": "libcamera-devel@lists.libcamera.org", "Date": "Mon, 20 Jul 2020 12:47:28 +0200", "Message-Id": "<20200720104736.19986-12-jacopo@jmondi.org>", "X-Mailer": "git-send-email 2.27.0", "In-Reply-To": "<20200720104736.19986-1-jacopo@jmondi.org>", "References": "<20200720104736.19986-1-jacopo@jmondi.org>", "MIME-Version": "1.0", "Subject": "[libcamera-devel] [PATCH v4 11/19] 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", "v4", "11/19" ] }