Show a patch.

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

{
    "id": 25263,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/25263/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/25263/",
    "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": "<20251127154519.2038844-2-antoine.bouyer@nxp.com>",
    "date": "2025-11-27T15:45:17",
    "name": "[v3,1/2] libamera: media_pipeline: Add accessor for MediaPipeline list of entities",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "ec3f714e03d148f66d812053053c533269cd9bad",
    "submitter": {
        "id": 218,
        "url": "https://patchwork.libcamera.org/api/1.1/people/218/?format=api",
        "name": "Antoine Bouyer",
        "email": "antoine.bouyer@nxp.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/25263/mbox/",
    "series": [
        {
            "id": 5618,
            "url": "https://patchwork.libcamera.org/api/1.1/series/5618/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5618",
            "date": "2025-11-27T15:45:16",
            "name": "imx8-isi: Use MediaPipeline",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/5618/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/25263/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/25263/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 56765C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 27 Nov 2025 15:43:41 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 01E1660A8B;\n\tThu, 27 Nov 2025 16:43:41 +0100 (CET)",
            "from DB3PR0202CU003.outbound.protection.outlook.com\n\t(mail-northeuropeazlp170100001.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:c200::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 0FE99609DE\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 27 Nov 2025 16:43:40 +0100 (CET)",
            "from GVXPR04MB9831.eurprd04.prod.outlook.com (2603:10a6:150:11c::8)\n\tby PR3PR04MB7372.eurprd04.prod.outlook.com (2603:10a6:102:80::18)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9366.13;\n\tThu, 27 Nov 2025 15:43:38 +0000",
            "from GVXPR04MB9831.eurprd04.prod.outlook.com\n\t([fe80::4634:3d9c:c4a:641a]) by\n\tGVXPR04MB9831.eurprd04.prod.outlook.com\n\t([fe80::4634:3d9c:c4a:641a%6]) with mapi id 15.20.9366.009;\n\tThu, 27 Nov 2025 15:43:38 +0000"
        ],
        "Authentication-Results": [
            "lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"DKjNUqii\";\n\tdkim-atps=neutral",
            "dkim=none (message not signed)\n\theader.d=none;dmarc=none action=none header.from=nxp.com;"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n\tb=DD4jmopyFv+MRcUlWuAW730duFspdXT22f4r/UyFK5h5xLqftCTBXCvq9Ku2YxmNvSns98tVCzF84dLIhDYGzWrqfcTXLkP3cEyxdw20v9t2a+dBiTdCAYHeJ1kYJFf5SXkU1kYbEYdjyC7sTIPUL0J2No+sUQo2PSng9AjgSdVkNQANGAzuk5gtbq636WQDiI12M8bbAYqAhfNwt8K2Nuly+a6xpk5FRw4zdlr7XmZZB7eXB1C58MSHAHnPhzC+kA7u4EU1Wx+6pirsKxyeUia1SXW+PScc0kVvllOwJ7Rn0kCLVtUwcEIQAEe9XyGQTP4Qazd09rWaxTYOgDvkug==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n\ts=arcselector10001;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n\tbh=Z9PLhjHueBpnxxQO7TX9nxeB/ptvoO+Zse7m66cYjYc=;\n\tb=inTn+NnosoXuQfuo+SyK/teklI8bj9jNgcN6isMM+bryznDDSKb2MTKbJTMdEDU5qc+kcMFzi25eS5psEk57mi93DclQuaAc/WmclG9KKaikjU5ycd0v/Mo5ZruI9ynz6cSc8Df/atBDQ16XuCT4iZ1AbjY/LTStJQq8xzCqKEzDUBrj+5VCbfdebhgE+IcKaZcedHY/eK0Q2YrLbizfKQuc6ASdKk+sPPcOjTkhqO96jAdRnjte4uxdU/K6/vhX9z4W6PbOW4aHT7sTPVEAlexeoj3Mlkgf/36jAfVE9de93emRxpQlyCnyM3r1dd7q3yENhcnKkvEmd6qwnCB9QQ==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass\n\tsmtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com;\n\tdkim=pass header.d=nxp.com; arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=Z9PLhjHueBpnxxQO7TX9nxeB/ptvoO+Zse7m66cYjYc=;\n\tb=DKjNUqiilv32QnV1jmwyo+zhYXY3K2Edo35cInIVy7QA28PFRWRvQ7pRHtDS1XjxIu4mNT6vThG5x1ZWpXGudGYSCfI6gkQJ/8jwITA9EIS387zySF6dfObDeqJ+57duwxaLcnOEcsEbvQvc9yWFIGyHj+lSJr9tKjXi4T06nTodpuQqzMU1WR7gIsN5mmlOzJzdU6P0XMIVSckY8lqerZLYAsspQ2TU0LO9PxVS4l+fSiOx/jLn0sNXUdn8HBbTm/BWw3f1L5yIhDKro4jCx/R1KHBGTpUrNCGpxVWfK9RfvvHaQhGv1qlbLsGAg16+h984HboBMQ+Omrygwx4gHg==",
        "From": "Antoine Bouyer <antoine.bouyer@nxp.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "julien.vuillaumier@nxp.com, jacopo.mondi@ideasonboard.com,\n\tbarnabas.pocze@ideasonboard.com, isaac.scott@ideasonboard.com,\n\tAndrei Gansari <andrei.gansari@nxp.com>,\n\tAntoine Bouyer <antoine.bouyer@nxp.com>",
        "Subject": "[PATCH v3 1/2] libamera: media_pipeline: Add accessor for\n\tMediaPipeline list of entities",
        "Date": "Thu, 27 Nov 2025 16:45:17 +0100",
        "Message-ID": "<20251127154519.2038844-2-antoine.bouyer@nxp.com>",
        "X-Mailer": "git-send-email 2.51.2",
        "In-Reply-To": "<20251127154519.2038844-1-antoine.bouyer@nxp.com>",
        "References": "<20251127154519.2038844-1-antoine.bouyer@nxp.com>",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-ClientProxiedBy": "SJ0PR05CA0173.namprd05.prod.outlook.com\n\t(2603:10b6:a03:339::28) To GVXPR04MB9831.eurprd04.prod.outlook.com\n\t(2603:10a6:150:11c::8)",
        "MIME-Version": "1.0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "GVXPR04MB9831:EE_|PR3PR04MB7372:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "bafb26e7-6ed7-4548-7f29-08de2dcbbbbe",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;\n\tARA:13230040|1800799024|366016|19092799006|376014|52116014|38350700014;",
        "X-Microsoft-Antispam-Message-Info": "6nRbAXtuVI4p3yULyJv+KMwlyMqdHYqc0A/RnBokj49HC65M+evKMr2sUy9yj19uGbQH9gUjCb4LeMa66+wBZwBUigF1M27V8QfFWrljPA/TRROnbm4o88RNR/ItrXGeDRzC8zhNsxOpB8+qWnxD5QIzb9GqXbGLe4i9hYx7vOZnsdmJlvsIFyXm1N/6BpnbgqyTzvk/Aidc60faXlM6L0IlnDM+ZYGtz/Rd8+93Q8qFWJfginvtMHNPYayaJPOzXxS5CBQO5e2J5vdJ3bsHX50l/6eCzRRPMENIwJKR+ASoMyln4yIFEPgOlNJYPvj+Kt83NAx3NetFag9c+6RciR3N3+uuwB6RCP8VZi4G+pvTD5Uyfrh74gGmQ3zRW4lp+RDDD8EwNaDRqL9YexQRzMSrl3X2rGtT2gc0JqxUrAqBQRByZSWWq8VQki73OGawpgq9AoOv7Mv0A783sDW5IIGo6uNg0gchL/K7zC/GkI0Fl/N2T1vXJ3yhJat1eB08+iaxFCB/urD8mGMGlUNV2aOR2PwAxg8Zq0XvvMo+hUufaQkk2foMekdxsnT8rh8jQJvyftKyx9VuNxjQ+g0lxgdiXjUmA2HOwizj2c/kuvVzOCQXXWrMamGSY+MENoQSoDXrhjg0+mA1z5VbC5Bhn7hs1GqBZBTjV4iCfd6+kET2arKiF4FQekkT2ekukG4ZCw2WnuKt6wkS1sgwjvsDNZXf2wMff2RkiFXkwMaDavL1uxDKcu1B80tKni21SFrenBV5MTxNwfRSfATfwlmnw2SMUyCm+L0/1XQOiJEDZARIK02o7MGJ5KIp3QS9GhXCErtHU/f1aAhh9ZY20nR9NDd+7PKpacfvt/lR91YyKf51mU5vX8WUzwiNSAVHv2cmkPlFNGXfFwgWRwpr0Bmx30VcmJTPJB4ppUJr5M2kD+uIxWt2kU5JMzVJeY9xLo3oL0uWmMlaQ/qiglAtnXwxvFKqxuuVSMBdn6zBpNMoevDoFGwC/7LdFh0h/N5Xh3khBQacF2f69MHpZxkgw8VxvEqBOFvAFDlszGfNaGG4ev+pV6nbnJDSZCR3cb6DwaWkMU3fF7hb5+CNHWMtsJNp0ZMhRvJ+Eu6dSFzJN2i0ZGx9pEHOMGNnMLW98bv9Kb1MKY3aVDq9cg5uOxOL9C6r2B9wfzUFRiofQZnWxvJTb266UNFj4hS4oqRhz1QH0dkOgT1ORE9N2plYQWw0d7henMh1UffBgo4wNNRVG2oMwQnIMIJmpxKVZZqIfGwDH+IqDVmpj9U2XDaH8NaAPLst62bUkuVse+W4gaMnxtQ3LHnli0wnHqvWIxoVrUZD24bYyWb+bCVxZe65rmspt/273BSUVb9IWjH6sJ1DiycLrbxH9LRjwHst0Kpj8mfS9QQD0NZN/FYpIqnQkZt62Ng8TkGz2N5s8eWvdCpTyV3YvO1gLYyPUYdKeuFXbBe0eMekQ0AjzsgjIBoZ4eaxT+MnPuGsvy47tquxDm6yELIu3Uqsjh2VAT+2UJxZSzDk7vkA",
        "X-Forefront-Antispam-Report": "CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:GVXPR04MB9831.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(1800799024)(366016)(19092799006)(376014)(52116014)(38350700014);\n\tDIR:OUT; SFP:1101; ",
        "X-MS-Exchange-AntiSpam-MessageData-ChunkCount": "1",
        "X-MS-Exchange-AntiSpam-MessageData-0": "ihBs8r5A2t6V8kkoYKM7zl/rTg0HEUCu5DDzZvacJJN1NsDPGqHl0xGt33W9Xa8H1CfdFkGGLEzJCPUU4ytn6S+LyEMzZ8k8XA+QYRWnmmqwOdxTkP3X/pSur8kFcyLBXkKIli3iQ+CFpuTn3eOTDPT22tZPo+ziQC7iaKjq6b0WqVbSOSCwqnKNI73E4HA4kqdL5krER6RcK19UuWRMkg6x/C1RfbFWMTAseT84WiJSQoy9SAFP4ZGvCmNjslWpWXTs+w6a3Lmd3ZdPu3/BPjr9MrpM7nXv/ybZBrQgbBZfzhTdQhMYn2maC9+1Pa9pYODoO6sSTW34srld+I+DCDI04lsNpk8qIAJ3wDzQOIwLICk3xnHx8LvUN4pmjD7qVwYH1ytej8jPSy2bn3j2uDR+EO+1BsSb9JWE4rqnHb3+Z5/Z7LGWblTkJNlf2OkaSYHUw6Z3REmcIlTZmyybmvDu73C+idhaLBFfD1pdS966Tj9QOgU6h0gNvb3xQB1bsN0O0KWBtEsK15t19x929eC9WZv0eVqm4wtyqMLUb73Q7s+w9HqbstOEu1cfbK589qGL8pX/hUoH9V8ILy0FxBSZhfklNjSqcI2cPM+PmvJ8thwOdLifkl36kJGTZh29+HfYOeu9FkylSCkJzWt6LOHQqEvgaoBi5bIZo5hm6+kx5Z2rr4pE1VsiJTV8OYeP7h0W8bpF3rgf8p+YdvapDib5LWhTlJFLXCtsy1y6HZkBCltyD22jeR8ixtvtPp1RWfVJEpKR1vIvYCd7hdQYAThDwgenb85wg+mtXy88TvT2nOK6NKHP1uoNitjPYRLwAKSe9sKwUVL6QltjeDfKzVmDGLTFQdupMNwkrJnTh4rEZbzcemcXm6AFFYbVZxMbBWo6a5JR7GEeddzGjiDZ07UNsFl4HA9fOyq/YdKO9JvDAxphiMs++6iz05zIHb4Sy5oydNYoUh+6kjxMQN0vxNA/xrvCs2jOZ/R7V1yiwDzg9cwoWj95fykp1CDiPCAQzldEt7v6PkgK1Wi2hKfptbdtVq+U9AlF7wH5McaZyg3S+nlAkPODOkWQzRuF6UmxBggYlxxpdgS2ml5wDVP3NOGy+B79M7yhkNmv6TvhM+LiquV7nj/fvjJDzENHAMohmAqnp8Ca95pCF+VZFouXMBbRY8C0gMtRr0r6XxCBIwwFigNiOeUx9xBe2WdzR5quH0xa5FooACcQ6xSz+zlv5jjuAaGGU+3VCFNl1nWedtVXMzEPAl2CwkJ7BlnVTfuQv89cCtrnVapmJjsAEJpFe/S7ExjtG00zi8ZjP1bihVT9JzxcFhDJYZFthaumdI/w7WgEEemNq57UJ4dmcmrsC+TIRoDzQsPm0kHMLQ5FDvej9MT67xllRXapkynbPlpfbEAYkiq84rOkOpD+JvmD1800NOL661R4s8OxAx3zKLm67wTHqlulYAorVWlswkpesNULFFhN1kxEv8WpJg8SCk2a0mqSnVBXIiXe4q3d7Bv88ZraVaoxDco/xbxThmOhbbdl+JN5i73DFUH8AEXaOcVg04SgNmLbp3gXrqayHWJlYOrnsb7moPeZgwAA1I3KPkvYU7fFyaI0ki4BseppOw==",
        "X-OriginatorOrg": "nxp.com",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "bafb26e7-6ed7-4548-7f29-08de2dcbbbbe",
        "X-MS-Exchange-CrossTenant-AuthSource": "GVXPR04MB9831.eurprd04.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "27 Nov 2025 15:43:38.6336\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "686ea1d3-bc2b-4c6f-a92c-d99c5c301635",
        "X-MS-Exchange-CrossTenant-MailboxType": "HOSTED",
        "X-MS-Exchange-CrossTenant-UserPrincipalName": "BneHqcKjhIocSom+py9HvzO7qgILEh/aQwePvjW5oZULh/D1SHgfU4ceYJJjeVCxlrgBFrqGj7sXOcJa9+avXQ==",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "PR3PR04MB7372",
        "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": "From: Andrei Gansari <andrei.gansari@nxp.com>\n\nExposes internal MediaEntity::Entity list to help extracting more\ninformation regarding linked entities.\n\nFor example, when the pad index of the last device in the list need to be\nretrieved from the media pipeline user.\n\nExposes as const to with a dedicated access to prevent any corruption from\nuser. Then it is still protected so as when the list was private.\n\nSince MediaPipeline::Entity needs also to be moved to public, then need to\nadd some documentation in cpp source. Existing documentation from header\nfile is applied when available.\n\nSigned-off-by: Andrei Gansari <andrei.gansari@nxp.com>\nSigned-off-by: Antoine Bouyer <antoine.bouyer@nxp.com>\nReviewed-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n---\n include/libcamera/internal/media_pipeline.h | 29 ++++---------\n src/libcamera/media_pipeline.cpp            | 46 +++++++++++++++++++++\n 2 files changed, 53 insertions(+), 22 deletions(-)",
    "diff": "diff --git a/include/libcamera/internal/media_pipeline.h b/include/libcamera/internal/media_pipeline.h\nindex a7a4b8c559cd..f62e3e8c58b0 100644\n--- a/include/libcamera/internal/media_pipeline.h\n+++ b/include/libcamera/internal/media_pipeline.h\n@@ -23,36 +23,21 @@ struct V4L2SubdeviceFormat;\n class MediaPipeline\n {\n public:\n-\tint init(MediaEntity *source, std::string_view sink);\n-\tint initLinks();\n-\tint configure(CameraSensor *sensor, V4L2SubdeviceFormat *);\n-\n-private:\n \tstruct Entity {\n-\t\t/* The media entity, always valid. */\n \t\tMediaEntity *entity;\n-\t\t/*\n-\t\t * Whether or not the entity is a subdev that supports the\n-\t\t * routing API.\n-\t\t */\n \t\tbool supportsRouting;\n-\t\t/*\n-\t\t * The local sink pad connected to the upstream entity, null for\n-\t\t * the camera sensor at the beginning of the pipeline.\n-\t\t */\n \t\tconst MediaPad *sink;\n-\t\t/*\n-\t\t * The local source pad connected to the downstream entity, null\n-\t\t * for the video node at the end of the pipeline.\n-\t\t */\n \t\tconst MediaPad *source;\n-\t\t/*\n-\t\t * The link on the source pad, to the downstream entity, null\n-\t\t * for the video node at the end of the pipeline.\n-\t\t */\n \t\tMediaLink *sourceLink;\n \t};\n \n+\tint init(MediaEntity *source, std::string_view sink);\n+\tint initLinks();\n+\tint configure(CameraSensor *sensor, V4L2SubdeviceFormat *);\n+\n+\tconst std::list<Entity> &entities() const { return entities_; }\n+\n+private:\n \tstd::list<Entity> entities_;\n };\n \ndiff --git a/src/libcamera/media_pipeline.cpp b/src/libcamera/media_pipeline.cpp\nindex c4e9f69b8f6a..3c5517314a4a 100644\n--- a/src/libcamera/media_pipeline.cpp\n+++ b/src/libcamera/media_pipeline.cpp\n@@ -43,6 +43,52 @@ LOG_DEFINE_CATEGORY(MediaPipeline)\n  * two entities in a media graph.\n  */\n \n+/**\n+ * \\struct MediaPipeline::Entity\n+ * \\brief A node composing the media pipeline\n+ *\n+ * The MediaPipeline::Entity structure stores how a MediaEntity composing a\n+ * media pipeline is connected to other media entities. It stores pointers\n+ * to the source pad, the sink pad and the media link traversed by the media\n+ * pipeline, as well as a flag that reports if the entity supports internal\n+ * routing.\n+ */\n+\n+/**\n+ * \\var MediaPipeline::Entity::entity\n+ * \\brief Pointer to the libcamera::MediaEntity, always valid\n+ */\n+\n+/**\n+ * \\var MediaPipeline::Entity::supportsRouting\n+ * \\brief Whether or not the entity is a subdev that supports the routing API\n+ */\n+\n+/**\n+ * \\var MediaPipeline::Entity::sink\n+ * \\brief The local libcamera::MediaPad sink pad connected to the upstream entity,\n+ * null for the camera sensor at the beginning of the pipeline\n+ */\n+\n+/**\n+ * \\var MediaPipeline::Entity::source\n+ * \\brief The local libcamera::MediaPad source pad connected to the upstream entity,\n+ * null for the last node at the end of the pipeline\n+ */\n+\n+/**\n+ * \\var MediaPipeline::Entity::sourceLink\n+ * \\brief The link on the libcamera::MediaLink source pad, to the downstream entity,\n+ * null for the last node at the end of the pipeline\n+ */\n+\n+/**\n+ * \\fn MediaPipeline::entities()\n+ * \\brief Retrieve list of entities composing the media pipeline\n+ * \\return The list of MediaPipeline::Entity entities composing the media\n+ * pipeline\n+ */\n+\n /**\n  * \\brief Retrieve all source pads connected to a sink pad through active routes\n  *\n",
    "prefixes": [
        "v3",
        "1/2"
    ]
}