Show a patch.

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

{
    "id": 15067,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/15067/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/15067/",
    "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": "<20211207224512.753979-2-djrscally@gmail.com>",
    "date": "2021-12-07T22:45:04",
    "name": "[libcamera-devel,v3,1/9] libcamera: Add members to MediaEntity to support ancillary entities",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "45b102f59793a843330ad63f39eebb0e42bae8c3",
    "submitter": {
        "id": 90,
        "url": "https://patchwork.libcamera.org/api/1.1/people/90/?format=api",
        "name": "Daniel Scally",
        "email": "djrscally@gmail.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/15067/mbox/",
    "series": [
        {
            "id": 2824,
            "url": "https://patchwork.libcamera.org/api/1.1/series/2824/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2824",
            "date": "2021-12-07T22:45:03",
            "name": "Enumerate CameraLens by following sensor's ancillary links",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/2824/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/15067/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/15067/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 15071BDB13\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  7 Dec 2021 22:45:32 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1718C60882;\n\tTue,  7 Dec 2021 23:45:30 +0100 (CET)",
            "from mail-wr1-x432.google.com (mail-wr1-x432.google.com\n\t[IPv6:2a00:1450:4864:20::432])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 1804160592\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  7 Dec 2021 23:45:29 +0100 (CET)",
            "by mail-wr1-x432.google.com with SMTP id t18so698069wrg.11\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 07 Dec 2021 14:45:29 -0800 (PST)",
            "from localhost.localdomain\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net. [86.13.91.161])\n\tby smtp.gmail.com with ESMTPSA id\n\ty12sm980332wrn.73.2021.12.07.14.45.28\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 07 Dec 2021 14:45:28 -0800 (PST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (2048-bit key;\n\tunprotected) header.d=gmail.com header.i=@gmail.com\n\theader.b=\"mO+eMjpL\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;\n\th=from:to:cc:subject:date:message-id:in-reply-to:references\n\t:mime-version:content-transfer-encoding;\n\tbh=zT/Bvo+zedrE+b0lAdNXtkJ9c9PTqOCQxDuwUpjCP8Q=;\n\tb=mO+eMjpLnyUdd6qdyaSqLAqG44ZavbUbWy4D1UKjCnR73WNlruCzcq4ie2t4epGh6x\n\tjW+xCnM+IoSKCHNaeml+7Qi27wdbq3SJw0LWEjOIceI/q8o3Jth+G7jY3vQX5Li/nyaj\n\toJZ5SyYcgAGqQGCHsK2tz2FHUaRx5tWfHwgZ66cGctp2WfZJrbWQ01hKpc4Ph8hxMqmV\n\t5NlBYA48nPahbNM2Xn4Tq5tJUKDGYNdFAO2nGaFPvHtAC9xXzqNSsGSvmmHOlKvCL1CW\n\tASHaFHmnW8ygE1qaZWAzGW4lTG0EdclVlBAfjmSLG3Ixgpt98oqG7hUCM48a5Q/NB2Ce\n\tP7rw==",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20210112;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n\t:references:mime-version:content-transfer-encoding;\n\tbh=zT/Bvo+zedrE+b0lAdNXtkJ9c9PTqOCQxDuwUpjCP8Q=;\n\tb=eIbTVn8SJfsK43lY5K7TujK7m5Gt/huI6VAHmkth7WPovk16Tlqn0aCmgKwPPwVls5\n\tMdIBPQV7wZmNTZD99l6xPpDRHVnSi3GRpjJkOwH74Ec+XT7Xu3brbSOwalgkn/lYd2eX\n\tgvumVnVKwrWq5PfR1/aU80LTReHeEcvvIg9GxfdxpUZensn5DIONV7UtAJOEiLYjonp/\n\tv/y/u3XmCnW2eF0Nct0IdtQmlOIucOSU6dtt3JqY/IpiXTghYfCvI+NcCMtoPyu+UOwK\n\tbBsEQGBgXK7bD+7nzSih0JeNgYlKb+4fQJ9n5jCsH2QaIITVLjD0yM87x8MFFdQYUWX+\n\tqyqQ==",
        "X-Gm-Message-State": "AOAM532GFDpUYhyGOHEuN3xJk4xneozrf2SV7j7rnf0vSWXykUUFUPD6\n\t8lPc2DiRPT6cKDDjWfGkA2tKnq7DHZA=",
        "X-Google-Smtp-Source": "ABdhPJzt50ioj0w0Muu/b4JQ2E0UeKN4d1YEqR+6U7wY7y5QH5MJYdZR7KcTOZ8EKt6uewCYK2aCEQ==",
        "X-Received": "by 2002:a5d:5912:: with SMTP id\n\tv18mr53183862wrd.144.1638917128902; \n\tTue, 07 Dec 2021 14:45:28 -0800 (PST)",
        "From": "Daniel Scally <djrscally@gmail.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Tue,  7 Dec 2021 22:45:04 +0000",
        "Message-Id": "<20211207224512.753979-2-djrscally@gmail.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20211207224512.753979-1-djrscally@gmail.com>",
        "References": "<20211207224512.753979-1-djrscally@gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v3 1/9] libcamera: Add members to\n\tMediaEntity to support ancillary entities",
        "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": "With kernel support for ancillary links, we can describe the\nrelationship between two devices represented individually as instances\nof MediaEntity. As the only property of that relationship is its\nexistence, describe those relationships in libcamera simply as a\nvector of MediaEntity pointers to the ancillary devices.\n\nSigned-off-by: Daniel Scally <djrscally@gmail.com>\n---\nChanges in v3:\n\n\t- Fixed some style issues\n\t- Made addAncillaryEntity() private\n\n include/libcamera/internal/media_object.h |  4 ++++\n src/libcamera/media_object.cpp            | 15 +++++++++++++++\n 2 files changed, 19 insertions(+)",
    "diff": "diff --git a/include/libcamera/internal/media_object.h b/include/libcamera/internal/media_object.h\nindex 90c63598..b1572968 100644\n--- a/include/libcamera/internal/media_object.h\n+++ b/include/libcamera/internal/media_object.h\n@@ -104,6 +104,7 @@ public:\n \tunsigned int deviceMinor() const { return minor_; }\n \n \tconst std::vector<MediaPad *> &pads() const { return pads_; }\n+\tconst std::vector<MediaEntity *> ancillaryEntities() const { return ancillaryEntities_; }\n \n \tconst MediaPad *getPadByIndex(unsigned int index) const;\n \tconst MediaPad *getPadById(unsigned int id) const;\n@@ -120,6 +121,8 @@ private:\n \n \tvoid addPad(MediaPad *pad);\n \n+\tvoid addAncillaryEntity(MediaEntity *ancillaryEntity);\n+\n \tstd::string name_;\n \tunsigned int function_;\n \tunsigned int flags_;\n@@ -129,6 +132,7 @@ private:\n \tunsigned int minor_;\n \n \tstd::vector<MediaPad *> pads_;\n+\tstd::vector<MediaEntity *> ancillaryEntities_;\n };\n \n } /* namespace libcamera */\ndiff --git a/src/libcamera/media_object.cpp b/src/libcamera/media_object.cpp\nindex f425d044..dbcf10e2 100644\n--- a/src/libcamera/media_object.cpp\n+++ b/src/libcamera/media_object.cpp\n@@ -326,6 +326,21 @@ void MediaPad::addLink(MediaLink *link)\n  * \\return The list of the entity's pads\n  */\n \n+/**\n+ * \\fn MediaEntity::ancillaryEntities()\n+ * \\brief Retrieve all ancillary entities of the entity\n+ * \\return The list of the entity's ancillary entities\n+ */\n+\n+/**\n+ * \\brief Add a MediaEntity to the list of ancillary entities\n+ * \\param[in] ancillaryEntity The instance of MediaEntity to add\n+ */\n+void MediaEntity::addAncillaryEntity(MediaEntity *ancillaryEntity)\n+{\n+\tancillaryEntities_.push_back(ancillaryEntity);\n+}\n+\n /**\n  * \\brief Get a pad in this entity by its index\n  * \\param[in] index The 0-based pad index\n",
    "prefixes": [
        "libcamera-devel",
        "v3",
        "1/9"
    ]
}