Show a cover letter.

GET /api/1.1/covers/23102/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 23102,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/23102/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/23102/",
    "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": "<20250402073919.183330-1-paul.elder@ideasonboard.com>",
    "date": "2025-04-02T07:39:15",
    "name": "[v4,0/3] MediaPipeline: Complex input device support",
    "submitter": {
        "id": 17,
        "url": "https://patchwork.libcamera.org/api/1.1/people/17/?format=api",
        "name": "Paul Elder",
        "email": "paul.elder@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/23102/mbox/",
    "series": [
        {
            "id": 5105,
            "url": "https://patchwork.libcamera.org/api/1.1/series/5105/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5105",
            "date": "2025-04-02T07:39:15",
            "name": "MediaPipeline: Complex input device support",
            "version": 4,
            "mbox": "https://patchwork.libcamera.org/series/5105/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/23102/comments/",
    "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 2EA53C3213\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  2 Apr 2025 07:39:33 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4B57468979;\n\tWed,  2 Apr 2025 09:39:32 +0200 (CEST)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id F344968979\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  2 Apr 2025 09:39:30 +0200 (CEST)",
            "from neptunite.flets-east.jp (unknown\n\t[IPv6:2404:7a81:160:2100:c59e:fbfb:58d5:f44f])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 23CC56A2;\n\tWed,  2 Apr 2025 09:37:36 +0200 (CEST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"LKJqU7Lb\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1743579458;\n\tbh=QwqUFheoFhNFyDpq0j46HnIGjwPaPa42r6h4kn9DUzE=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=LKJqU7LbJiv1fF9pL8DNwZIoZwPK9ctHNfCBaqfb3k7X3c53XvAszfN3dq7Ty1Jc/\n\thyNyP9xMu7lI6YzHyG0VbnKZu7jCtZF7yJvHonu4SzRimZ864OgWL3+a77YJxpuX5f\n\tSBLmS/jWC3ljR5p/VdToWxLpb8s3ggbgUiCzfKOQ=",
        "From": "Paul Elder <paul.elder@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Paul Elder <paul.elder@ideasonboard.com>",
        "Subject": "[PATCH v4 0/3] MediaPipeline: Complex input device support",
        "Date": "Wed,  2 Apr 2025 16:39:15 +0900",
        "Message-ID": "<20250402073919.183330-1-paul.elder@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.47.2",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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": "The input pipelines for cameras on small board platforms can be widely\nvaried and may incorporate video multiplexers feeding multiple cameras\ninto a single CSI2 receiver.\n\nSuch devices are already supported in the Simple Pipeline handler with\nit's graph management code.\n\nThis series proposes a new class 'MediaPipeline' which takes the\nimplementation details of handling multiple cameras and the routing\ninvolved in selecting and configuring the links and pads of those\nroutes.\n\nThe series then ads this helper to the RKISP1 pipeline handler to\nfacilitate multiple cameras connected to a single CSI2 receiver. One\nexample of this could be making use of the Arducam 4 camera multiplexor\n[0] connected to the Debix Model A which we have used for testing this.\n\n[0] https://www.arducam.com/product/multi-camera-v2-1-adapter-raspberry-pi/\n\nThis series convers only the RkISP1 for now, but I could anticipate an\nadditional series will also convert the Simple Pipeline handler to make\nuse of this new helper class. The Mali-C55 and other pipeline handlers\nwhich antipate user configurable input paths would also be able to make\nuse of this implementation.\n\nv3\n - Fixes documentation and parameter description in patch 3/4.\n\nv4\n- minor fixes and rebasing\n\nKieran Bingham (3):\n  libcamera: media_device: Add helper to return matching entities\n  libcamera: internal: Add MediaPipeline helper\n  libcamera: pipeline: rkisp1: Convert to use MediaPipeline\n\n include/libcamera/internal/media_device.h   |   2 +\n include/libcamera/internal/media_pipeline.h |  60 ++++\n include/libcamera/internal/meson.build      |   1 +\n src/libcamera/media_device.cpp              |  24 +-\n src/libcamera/media_pipeline.cpp            | 302 ++++++++++++++++++++\n src/libcamera/meson.build                   |   1 +\n src/libcamera/pipeline/rkisp1/rkisp1.cpp    |  86 +++---\n 7 files changed, 421 insertions(+), 55 deletions(-)\n create mode 100644 include/libcamera/internal/media_pipeline.h\n create mode 100644 src/libcamera/media_pipeline.cpp"
}