Show a cover letter.

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

{
    "id": 12893,
    "url": "https://patchwork.libcamera.org/api/covers/12893/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/12893/",
    "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": "<20210711170359.300-1-laurent.pinchart@ideasonboard.com>",
    "date": "2021-07-11T17:03:56",
    "name": "[libcamera-devel,v2,0/3] libcamera: Make Framebuffer class Extensible",
    "submitter": {
        "id": 2,
        "url": "https://patchwork.libcamera.org/api/people/2/?format=api",
        "name": "Laurent Pinchart",
        "email": "laurent.pinchart@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/12893/mbox/",
    "series": [
        {
            "id": 2225,
            "url": "https://patchwork.libcamera.org/api/series/2225/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2225",
            "date": "2021-07-11T17:03:56",
            "name": "libcamera: Make Framebuffer class Extensible",
            "version": 2,
            "mbox": "https://patchwork.libcamera.org/series/2225/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/12893/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 5DA1AC3224\n\tfor <parsemail@patchwork.libcamera.org>;\n\tSun, 11 Jul 2021 17:04:51 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 92E5068525;\n\tSun, 11 Jul 2021 19:04:50 +0200 (CEST)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id CDE6068519\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 11 Jul 2021 19:04:48 +0200 (CEST)",
            "from pendragon.lan (62-78-145-57.bb.dnainternet.fi [62.78.145.57])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 4AD93CC\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tSun, 11 Jul 2021 19:04:48 +0200 (CEST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com;\n\tdkim=fail reason=\"signature verification failed\" (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"lygq7FNQ\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1626023088;\n\tbh=83kLKJaoA6r5JWDzPD524avR/FCJ2i3tlSCaBtnlSgk=;\n\th=From:To:Subject:Date:From;\n\tb=lygq7FNQWVbC4d0dyM/U/78NAJd36/DY/kh9iTQYRBoodKdEdrEoOsWuiJNZue7/f\n\t/zMmbzE9MSoBnUOYzgKo1+WdROgFzrGHLqwqnVDFvMsgIT6cRvQR7KZXubzG9PY3bg\n\tv4XCxQ5lJRxECSti7vbyTX437hgJ19hL0lF6IHJ0=",
        "From": "Laurent Pinchart <laurent.pinchart@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Sun, 11 Jul 2021 20:03:56 +0300",
        "Message-Id": "<20210711170359.300-1-laurent.pinchart@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.31.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [PATCH v2 0/3] libcamera: Make Framebuffer class\n\tExtensible",
        "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": "Hello,\n\nThis small patch series makes the FrameBuffer class inherit from\nExtensible, for two reasons:\n\n- FrameBuffer being such a cornerstone of the libcamera API, it will\n  most likely need to be extended after stabilizing the public API.\n  Making the class Extensible prepares for this.\n\n- There's a todo item to hide the FrameBuffer::setRequest() function\n  from the public API, as it's meant to be called internally only. Patch\n  3/3 showcases how internal functions can be hidden from the public API\n  by moving them to the Private data class.\n\nThis v2 incorporates parts of the comments from reviews of v1. There are\nstill some ongoing discussions, which may benefit from patch 2/3 (new in\nv2) that shows how the _d() function can be used directly instead of\nusing the LIBCAMERA_D_PTR macro.\n\nLaurent Pinchart (3):\n  libcamera: base: class: Expose Extensible private data to other\n    classes\n  libcamera: Drop the LIBCAMERA_D_PTR macro in favour of the _d()\n    function\n  libcamera: framebuffer: Make FrameBuffer class Extensible\n\n include/libcamera/base/class.h           | 16 ++++++---\n include/libcamera/framebuffer.h          |  8 ++---\n include/libcamera/internal/framebuffer.h | 13 +++++++\n src/android/camera_buffer.h              | 15 +++-----\n src/android/camera_hal_config.cpp        |  3 +-\n src/libcamera/base/class.cpp             | 17 +++------\n src/libcamera/camera.cpp                 | 44 +++++++++---------------\n src/libcamera/camera_manager.cpp         | 16 ++++-----\n src/libcamera/framebuffer.cpp            | 34 ++++++++++--------\n src/libcamera/pipeline/ipu3/cio2.cpp     |  3 +-\n src/libcamera/pipeline/ipu3/frames.cpp   |  5 +--\n src/libcamera/request.cpp                |  7 ++--\n 12 files changed, 91 insertions(+), 90 deletions(-)"
}