Show a patch.

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

{
    "id": 15306,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/15306/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/15306/",
    "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": "<20220131223330.61563-2-djrscally@gmail.com>",
    "date": "2022-01-31T22:33:22",
    "name": "[libcamera-devel,v4,1/9] libcamera: Add members to MediaEntity to support ancillary entities",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "eff10079111736b9b9a13f2d8c6473930d3d4bbc",
    "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/15306/mbox/",
    "series": [
        {
            "id": 2906,
            "url": "https://patchwork.libcamera.org/api/1.1/series/2906/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2906",
            "date": "2022-01-31T22:33:21",
            "name": "Enumerate CameraLens by following sensor's ancillary links",
            "version": 4,
            "mbox": "https://patchwork.libcamera.org/series/2906/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/15306/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/15306/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 32CFABF415\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 31 Jan 2022 22:33:46 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id DB24F609E2;\n\tMon, 31 Jan 2022 23:33:45 +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 DE54F609AF\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 31 Jan 2022 23:33:42 +0100 (CET)",
            "by mail-wr1-x432.google.com with SMTP id s18so28228913wrv.7\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 31 Jan 2022 14:33:42 -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\tq2sm6986740wrw.14.2022.01.31.14.33.41\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 31 Jan 2022 14:33:42 -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=\"fEO6xrvb\"; 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=kR6FDelfycjqbXUHFAs0pKqRKAejjwQRsAXvRMXiUww=;\n\tb=fEO6xrvbdTIvnUbUOllWymRbVOlf6+EuK4cR+Jhct/ufygPXuQ/eMfqOQ0oRFRNLuA\n\tSJCaSTSc67lzjZ8BAKSCD2CvaZv6fes4+dtQkEiD6Yslv65Clb274PDs9HwcAFvJN4gi\n\tAza6PAKegWdWn3d2y5jSscRxxkDCnb2qu/jr+WuZx0rOfgTo3oP9O/tfsqk/yaMLmuPj\n\tEXCmHP2UbGjkqZr1s48LK8MFFe9te+vFyKH4GMscrR+r7nRbUhaLjiFheJfHv64rlnqF\n\tnsKxufFze+9SI4TjhjXiE8bGp8YjEu1FpgGrz/72ekbyNZ9qW0A8bfej39v3wvQoXZiL\n\tetew==",
        "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=kR6FDelfycjqbXUHFAs0pKqRKAejjwQRsAXvRMXiUww=;\n\tb=8CemlZgKqRERhhLG6BmqYXlG0/EKby+FgepKC07Qp2VpWRMKGuaII7kyjg4IDakJdh\n\typUM2lIPAk3i2EoxOjFGS8ZT0mw8s/k+2e7QIEmXYOVj1N5GvG6n6xgHRw8GvuJV3QAf\n\tfwS/yRYnwoKyVLejb82Rc2TqnMIdp4SH58pLAYnSITRe8PaMGAUg9K9tG7v/IIgDDyJS\n\tGx8+RxoWDyKDAVvFMom1DcyS80MUXH51uuoHigmX8yuiRzcSuM5+jMsHwRtpc/guzgN8\n\tMrV0LGWuRdnnM4EhCSQFooiOkSXm+Bdd1+AD7Sm6w6NyG6Gr7n+vKlyP3cE+edqEG/13\n\tp7zw==",
        "X-Gm-Message-State": "AOAM532jXYJD2trqhh98z0RXot23HBU2ZdtKSmhmyNUEO27e3G4hjF/i\n\tYKh2WWJHofvpldc3y3uy4SUN434Lq+c=",
        "X-Google-Smtp-Source": "ABdhPJw1p0fAA/X0+wFMXPyKDkbVkysUM8xeqZLFM8eyiWfDdNVr/fq50SeiIxbZ4XGXpAQmFguW0w==",
        "X-Received": "by 2002:a5d:6e12:: with SMTP id\n\th18mr19269583wrz.674.1643668422705; \n\tMon, 31 Jan 2022 14:33:42 -0800 (PST)",
        "From": "Daniel Scally <djrscally@gmail.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Mon, 31 Jan 2022 22:33:22 +0000",
        "Message-Id": "<20220131223330.61563-2-djrscally@gmail.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20220131223330.61563-1-djrscally@gmail.com>",
        "References": "<20220131223330.61563-1-djrscally@gmail.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v4 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\nReviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\nSigned-off-by: Daniel Scally <djrscally@gmail.com>\n---\nChanges in v4:\n\n\t- Reordered addAncillaryEntity() in the .cpp to match the .h\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..c78f4758 100644\n--- a/src/libcamera/media_object.cpp\n+++ b/src/libcamera/media_object.cpp\n@@ -423,4 +423,19 @@ void MediaEntity::addPad(MediaPad *pad)\n \tpads_.push_back(pad);\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+ * \\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 } /* namespace libcamera */\n",
    "prefixes": [
        "libcamera-devel",
        "v4",
        "1/9"
    ]
}