Show a cover letter.

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

{
    "id": 2443,
    "url": "https://patchwork.libcamera.org/api/covers/2443/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/2443/",
    "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": "<20191223072620.13022-1-paul.elder@ideasonboard.com>",
    "date": "2019-12-23T07:26:14",
    "name": "[libcamera-devel,v3,0/6] V4L2 compatibility layer",
    "submitter": {
        "id": 17,
        "url": "https://patchwork.libcamera.org/api/people/17/?format=api",
        "name": "Paul Elder",
        "email": "paul.elder@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/2443/mbox/",
    "series": [
        {
            "id": 592,
            "url": "https://patchwork.libcamera.org/api/series/592/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=592",
            "date": "2019-12-23T07:26:14",
            "name": "V4L2 compatibility layer",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/592/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/2443/comments/",
    "headers": {
        "Return-Path": "<paul.elder@ideasonboard.com>",
        "Received": [
            "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 81D776046D\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 23 Dec 2019 08:26:46 +0100 (CET)",
            "from neptunite.amanokami.net (173-16-160-11.client.mchsi.com\n\t[173.16.160.11])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 0A696330;\n\tMon, 23 Dec 2019 08:26:44 +0100 (CET)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1577086005;\n\tbh=ZIaCv5TjCk+dabR9tG0F0yqkAqCsAhQOS8+OKZtesM4=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=lmMVniVBVDguHqLGT6g1QhB19vffYki3uXC3sQ4Q4yGGdW+QvV5fehFMJBRJFt5G0\n\tveDPMal4KGGwP42E+4TIgCbNqkDRiFmYRFgC+f94TYe4kGGsRbQeuq/AAs6+bz63F8\n\t8UMM7Bjrx0VcYlcGsmIikTzfX0akWoQkKJ3QnaLw=",
        "From": "Paul Elder <paul.elder@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Mon, 23 Dec 2019 01:26:14 -0600",
        "Message-Id": "<20191223072620.13022-1-paul.elder@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.23.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v3 0/6] V4L2 compatibility layer",
        "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>",
        "X-List-Received-Date": "Mon, 23 Dec 2019 07:26:46 -0000"
    },
    "content": "Implement the initial version of the V4L2 compatibility layer.\n\nIn v3 we newly retrieve libcamera Cameras based on the device number of\nthe V4L2 device that the applications open()s. This device number to\nCamera mapping is optionally determined by the device enumerator. If the\nmapping is not assigned, then there is simply no V4L2 device node that\ncan be opened that will map to a libcamera Camera. Patches 2/6, 3/6, and\n4/6 prepare the infrastructure in the pipeline handler, the uvcvideo\npipeline handler, and the camera manager for this to work.\n\nThe other major change in v3 is the addition of the FrameMetadata class\nthat extracts the necessary information from a Buffer to expose a\nv4l2_buffer, as well as a new mechanism using this FrameMetadata to\ncache the state of all completed buffers in the V4L2CameraProxy to\nreduce the number of cross-thread calls. Patche 5/6 is the main\nimplementation, and patch 6/6 contains the new buffer state component.\n\nPaul Elder (6):\n  libcamera: v4l2_device, v4l2_videodevice: call open system call\n    directly\n  libcamera: pipeline_handler: Add map from devnum to cameras\n  libcamera: pipeline_handler: uvcvideo: register all Cameras along with\n    a devnum\n  libcamera: camera_manager: allow retrieving cameras by devnum\n  v4l2: v4l2_compat: Add V4L2 compatibility layer\n  v4l2: v4l2-compat: add buffer state tracking to V4L2CameraProxy\n\n include/libcamera/camera_manager.h       |   3 +\n meson_options.txt                        |   5 +\n src/libcamera/camera_manager.cpp         |  24 ++\n src/libcamera/include/pipeline_handler.h |   6 +\n src/libcamera/pipeline/uvcvideo.cpp      |   7 +-\n src/libcamera/pipeline_handler.cpp       |  30 ++\n src/libcamera/v4l2_device.cpp            |   3 +-\n src/libcamera/v4l2_videodevice.cpp       |   3 +-\n src/meson.build                          |   4 +\n src/v4l2/meson.build                     |  31 ++\n src/v4l2/v4l2_camera.cpp                 | 240 +++++++++++\n src/v4l2/v4l2_camera.h                   |  83 ++++\n src/v4l2/v4l2_camera_proxy.cpp           | 528 +++++++++++++++++++++++\n src/v4l2/v4l2_camera_proxy.h             |  73 ++++\n src/v4l2/v4l2_compat.cpp                 |  78 ++++\n src/v4l2/v4l2_compat_manager.cpp         | 379 ++++++++++++++++\n src/v4l2/v4l2_compat_manager.h           |  86 ++++\n 17 files changed, 1579 insertions(+), 4 deletions(-)\n create mode 100644 src/v4l2/meson.build\n create mode 100644 src/v4l2/v4l2_camera.cpp\n create mode 100644 src/v4l2/v4l2_camera.h\n create mode 100644 src/v4l2/v4l2_camera_proxy.cpp\n create mode 100644 src/v4l2/v4l2_camera_proxy.h\n create mode 100644 src/v4l2/v4l2_compat.cpp\n create mode 100644 src/v4l2/v4l2_compat_manager.cpp\n create mode 100644 src/v4l2/v4l2_compat_manager.h"
}