Show a patch.

GET /api/1.1/patches/8700/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 8700,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/8700/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/8700/",
    "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": "<20200709084128.5316-10-jacopo@jmondi.org>",
    "date": "2020-07-09T08:41:17",
    "name": "[libcamera-devel,v2,09/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/1.1/people/3/?format=api",
        "name": "Jacopo Mondi",
        "email": "jacopo@jmondi.org"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/8700/mbox/",
    "series": [
        {
            "id": 1091,
            "url": "https://patchwork.libcamera.org/api/1.1/series/1091/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1091",
            "date": "2020-07-09T08:41:08",
            "name": "libcamera: ipu3: Rework configuration",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/1091/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/8700/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/8700/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 14807BDB1C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  9 Jul 2020 08:38:15 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B9B86611B3;\n\tThu,  9 Jul 2020 10:38:14 +0200 (CEST)",
            "from relay11.mail.gandi.net (relay11.mail.gandi.net\n\t[217.70.178.231])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 069F3611AF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  9 Jul 2020 10:38:13 +0200 (CEST)",
            "from uno.lan (2-224-242-101.ip172.fastwebnet.it [2.224.242.101])\n\t(Authenticated sender: jacopo@jmondi.org)\n\tby relay11.mail.gandi.net (Postfix) with ESMTPSA id 4A3C5100011;\n\tThu,  9 Jul 2020 08:38:11 +0000 (UTC)"
        ],
        "From": "Jacopo Mondi <jacopo@jmondi.org>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Thu,  9 Jul 2020 10:41:17 +0200",
        "Message-Id": "<20200709084128.5316-10-jacopo@jmondi.org>",
        "X-Mailer": "git-send-email 2.27.0",
        "In-Reply-To": "<20200709084128.5316-1-jacopo@jmondi.org>",
        "References": "<20200709084128.5316-1-jacopo@jmondi.org>",
        "MIME-Version": "1.0",
        "Subject": "[libcamera-devel] [PATCH v2 09/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=\"us-ascii\"",
        "Content-Transfer-Encoding": "7bit",
        "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\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",
        "v2",
        "09/20"
    ]
}