Show a patch.

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

{
    "id": 15031,
    "url": "https://patchwork.libcamera.org/api/patches/15031/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/15031/",
    "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": "<20211203224230.38700-2-djrscally@gmail.com>",
    "date": "2021-12-03T22:42:24",
    "name": "[libcamera-devel,v2,1/7] libcamera: Add members to MediaEntity to support ancillary entities",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "c0ffd71a0de60a47e1062ea54aacd29f8023b6f4",
    "submitter": {
        "id": 90,
        "url": "https://patchwork.libcamera.org/api/people/90/?format=api",
        "name": "Daniel Scally",
        "email": "djrscally@gmail.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/15031/mbox/",
    "series": [
        {
            "id": 2815,
            "url": "https://patchwork.libcamera.org/api/series/2815/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2815",
            "date": "2021-12-03T22:42:23",
            "name": "Enumerate CameraLens by following sensor's ancillary links",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/2815/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/15031/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/15031/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 D0ED4C3250\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri,  3 Dec 2021 22:42:39 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 6EC1060862;\n\tFri,  3 Dec 2021 23:42:39 +0100 (CET)",
            "from mail-wr1-x42c.google.com (mail-wr1-x42c.google.com\n\t[IPv6:2a00:1450:4864:20::42c])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7F254607DE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri,  3 Dec 2021 23:42:37 +0100 (CET)",
            "by mail-wr1-x42c.google.com with SMTP id o13so8618338wrs.12\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 03 Dec 2021 14:42:37 -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\to25sm3939919wms.17.2021.12.03.14.42.36\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tFri, 03 Dec 2021 14:42:36 -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=\"M4COUbxM\"; 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=V8oNqs2fQXGNzt40Dlu2QmXDBCzO4AairuuGrc097UE=;\n\tb=M4COUbxMyihwfX93+D8EfKXLwgcPac18fxKqE6/Ccvpoq8+azyOKPwuGhT4leU4qFr\n\tydOofa/APIXJ9v22F/Ma0uPuF5W0AXj/0jTm0vwFQIZVPUE7fsP+cuScNLkFm48i8rhj\n\tv7+wQTYpqLVg7u60PoOenNNRN9vqGfG9CRq6MMm+s5+UEFtbQp+lRN/BmWf9su4KXerR\n\tggCNXC3ARdKx1dW6YFi21oTSy8HfSRks1rb3ytyDSqIjZCb2nYNF0RTzkFXwkGDSYpiE\n\tpPxrT0yRlxaocFzoZEFTHMyHXOSVANqFGuQ73JZFY0zR52i2jlTCkWakBGjybfSt+x+D\n\tT9MQ==",
        "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=V8oNqs2fQXGNzt40Dlu2QmXDBCzO4AairuuGrc097UE=;\n\tb=zdEICjv1EmepwHEs/qajHfX/fWIz376IGLafARwV/pIx0SzePMwJIPbJUJ+RF9lh+h\n\tp1SeiV/TOi6dRgYMTfoMEf5yIgkMlyp0A+E5NfmwSLaUHtqQUIpMdNaipyJzgbLxYmTG\n\tkVgCehENssGJm4UrVkm8ynVfopttsj12K+nXQ0yBn2pL3tZgKbYaDUUg2RjzW+dZAzZ9\n\tRDiVrIUXuyHpoOAzJHxw5sgsVqHOc7ojUNAZzDLT3E/m2wHJxHqTKLq54u2Yk45ys4N4\n\tyovyOMvOzglk5w/jSpZxJ3lAcQ5m96/pE5kmwXOCmZ/15bCIwhZvMtK6+EJ1m+hGLRax\n\tFQ4g==",
        "X-Gm-Message-State": "AOAM532f4Mg6dNhsIk6KB8+P1+0i+3en1lGJ1UI/oHbZRzIQ9bspSb00\n\tO69hujJ5hyEKDeuDZnyf1DvfAc+bcTk=",
        "X-Google-Smtp-Source": "ABdhPJzO5K/0k1gCsQe6cu3ZWtCBR5TQXlQ7gyGKYIDWG29t8nz0PcM2tTN4+IAGwlDs85SitTDeYQ==",
        "X-Received": "by 2002:adf:eece:: with SMTP id\n\ta14mr24112323wrp.333.1638571357302; \n\tFri, 03 Dec 2021 14:42:37 -0800 (PST)",
        "From": "Daniel Scally <djrscally@gmail.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Fri,  3 Dec 2021 22:42:24 +0000",
        "Message-Id": "<20211203224230.38700-2-djrscally@gmail.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20211203224230.38700-1-djrscally@gmail.com>",
        "References": "<20211203224230.38700-1-djrscally@gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v2 1/7] 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 v2:\n\n\t- Switched from additional members against MediaLink pointing to the\n\tprimary and ancillary entity to a vector against MediaEntity holding\n\tpointers to the ancillary entities linked to that MediaEntity (Laurent)\n\n include/libcamera/internal/media_object.h |  4 ++++\n src/libcamera/media_object.cpp            | 16 ++++++++++++++++\n 2 files changed, 20 insertions(+)",
    "diff": "diff --git a/include/libcamera/internal/media_object.h b/include/libcamera/internal/media_object.h\nindex 90c63598..48616a43 100644\n--- a/include/libcamera/internal/media_object.h\n+++ b/include/libcamera/internal/media_object.h\n@@ -104,6 +104,9 @@ 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+\tvoid addAncillaryEntity(MediaEntity *ancillaryEntity);\n \n \tconst MediaPad *getPadByIndex(unsigned int index) const;\n \tconst MediaPad *getPadById(unsigned int id) const;\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..42b26b07 100644\n--- a/src/libcamera/media_object.cpp\n+++ b/src/libcamera/media_object.cpp\n@@ -326,6 +326,22 @@ 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+ * \\return void\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",
        "v2",
        "1/7"
    ]
}