Show a patch.

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

{
    "id": 22105,
    "url": "https://patchwork.libcamera.org/api/patches/22105/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/22105/",
    "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": "<20241127081212.16543-1-jacopo.mondi@ideasonboard.com>",
    "date": "2024-11-27T08:12:11",
    "name": "libcamera: v4l2_videodevice: Clarify V4L2M2MDevice",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "f573b0d0b8d1dad2ad414f61730635cceefe0888",
    "submitter": {
        "id": 143,
        "url": "https://patchwork.libcamera.org/api/people/143/?format=api",
        "name": "Jacopo Mondi",
        "email": "jacopo.mondi@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/22105/mbox/",
    "series": [
        {
            "id": 4826,
            "url": "https://patchwork.libcamera.org/api/series/4826/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4826",
            "date": "2024-11-27T08:12:11",
            "name": "libcamera: v4l2_videodevice: Clarify V4L2M2MDevice",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/4826/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/22105/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/22105/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 ECCD0C3213\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 27 Nov 2024 08:12:22 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 329C26609C;\n\tWed, 27 Nov 2024 09:12:22 +0100 (CET)",
            "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 0335765F9E\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 27 Nov 2024 09:12:20 +0100 (CET)",
            "from ideasonboard.com (mob-5-90-139-188.net.vodafone.it\n\t[5.90.139.188])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id E593078C;\n\tWed, 27 Nov 2024 09:11:57 +0100 (CET)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"S2mMahGy\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1732695118;\n\tbh=KvNd9kd4uSkZ7dRXdTolMUTCayiIH0kLzAlA3ZxwP6Y=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=S2mMahGyBVUYtUISvzuoupfynP10Z4HhPpcObdABt7f85+YxIBHa1zte8NrNNV+Uh\n\tLQG6eRW1Z9Nk4jZ3FJSbmOc4x4G2WRC7PqHc8BpW1Eym5lb+LKxPO2UvYSK6q/oRfa\n\t133TeI6yGBwjxB9GPQi92E0yfZJQPebi3VDGA0iE=",
        "From": "Jacopo Mondi <jacopo.mondi@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Jacopo Mondi <jacopo.mondi@ideasonboard.com>",
        "Subject": "[PATCH] libcamera: v4l2_videodevice: Clarify V4L2M2MDevice",
        "Date": "Wed, 27 Nov 2024 09:12:11 +0100",
        "Message-ID": "<20241127081212.16543-1-jacopo.mondi@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.47.0",
        "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 documentation seems to suggest that to create a new M2M\nexecution context it is expected users to call V4L2M2MDevice::open()\nmultiple times on the same video device path.\n\nIt is instead expected that multiple instances of the class are\ncreated, one for each required execution context.\n\nClarify it in the documentation of the V4L2M2MDevice class.\n\nSigned-off-by: Jacopo Mondi <jacopo.mondi@ideasonboard.com>\n---\n src/libcamera/v4l2_videodevice.cpp | 9 +++++++--\n 1 file changed, 7 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp\nindex 14eba0561d6a..156601d08d0c 100644\n--- a/src/libcamera/v4l2_videodevice.cpp\n+++ b/src/libcamera/v4l2_videodevice.cpp\n@@ -2128,11 +2128,16 @@ V4L2PixelFormat V4L2VideoDevice::toV4L2PixelFormat(const PixelFormat &pixelForma\n  * deviceNode which operate together using two queues to implement the V4L2\n  * Memory to Memory API.\n  *\n- * The two devices should be opened by calling open() on the V4L2M2MDevice, and\n- * can be closed by calling close on the V4L2M2MDevice.\n+ * User of this class should create a new instance of the V4L2M2MDevice for each\n+ * desired execution context and then open it by calling open() on the\n+ * V4L2M2MDevice and close it by calling close() on the V4L2M2MDevice.\n  *\n  * Calling V4L2VideoDevice::open() and V4L2VideoDevice::close() on the capture\n  * or output V4L2VideoDevice is not permitted.\n+ *\n+ * Once the M2M device is open users can operate on the output and capture queue\n+ * represented by the V4L2VideoDevice returned by the output() and capture()\n+ * functions.\n  */\n \n /**\n",
    "prefixes": []
}