Show a cover letter.

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

{
    "id": 10273,
    "url": "https://patchwork.libcamera.org/api/covers/10273/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/10273/",
    "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": "<20201028010051.3830668-1-niklas.soderlund@ragnatech.se>",
    "date": "2020-10-28T01:00:42",
    "name": "[libcamera-devel,0/9] libcamera: Add helper for controls that take effect with a delay",
    "submitter": {
        "id": 5,
        "url": "https://patchwork.libcamera.org/api/people/5/?format=api",
        "name": "Niklas Söderlund",
        "email": "niklas.soderlund@ragnatech.se"
    },
    "mbox": "https://patchwork.libcamera.org/cover/10273/mbox/",
    "series": [
        {
            "id": 1423,
            "url": "https://patchwork.libcamera.org/api/series/1423/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=1423",
            "date": "2020-10-28T01:00:42",
            "name": "libcamera: Add helper for controls that take effect with a delay",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/1423/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/10273/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 DBE73C3B5C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 28 Oct 2020 01:01:11 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 4388B62237;\n\tWed, 28 Oct 2020 02:01:11 +0100 (CET)",
            "from bin-mail-out-05.binero.net (bin-mail-out-05.binero.net\n\t[195.74.38.228])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 7A8F0621C2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 28 Oct 2020 02:01:09 +0100 (CET)",
            "from bismarck.berto.se (p4fca2458.dip0.t-ipconnect.de\n\t[79.202.36.88])\n\tby bin-vsp-out-03.atm.binero.net (Halon) with ESMTPA\n\tid 07a5e639-18b9-11eb-954c-0050569116f7;\n\tWed, 28 Oct 2020 02:01:01 +0100 (CET)"
        ],
        "X-Halon-ID": "07a5e639-18b9-11eb-954c-0050569116f7",
        "Authorized-sender": "niklas.soderlund@fsdn.se",
        "From": "=?utf-8?q?Niklas_S=C3=B6derlund?= <niklas.soderlund@ragnatech.se>",
        "To": "libcamera-devel@lists.libcamera.org, david.plowman@raspberrypi.com,\n\tnaush@raspberrypi.com",
        "Date": "Wed, 28 Oct 2020 02:00:42 +0100",
        "Message-Id": "<20201028010051.3830668-1-niklas.soderlund@ragnatech.se>",
        "X-Mailer": "git-send-email 2.29.1",
        "MIME-Version": "1.0",
        "Subject": "[libcamera-devel] [PATCH 0/9] libcamera: Add helper for controls\n\tthat take effect with a delay",
        "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>",
        "Content-Type": "text/plain; charset=\"utf-8\"",
        "Content-Transfer-Encoding": "base64",
        "Errors-To": "libcamera-devel-bounces@lists.libcamera.org",
        "Sender": "\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"
    },
    "content": "Hello,\n\nThis series adds a new helper class to libcamera-core based on the \nStaggerdCtrl principle from the Raspberry Pi pipeline handler. The new \nhelper matches perfectly the RPi implementation and can therefore \nreplace the pipeline specific implementation. There are slight changes \nin the API of the two but noting preventing it to be a drop in \nreplacement.\n\nThe major new addition to the DelayedControls implementation is the \nability to queue controls a hard of time. This allows the concept of \npipeline depth we already have for buffers to be extended to controls.\n\nPatch 1/9 and 2/9 adds the new core helper and its unit test. Patch 3/9 \nand 4/9 replaces StaggerdCtrl with DelayedControls in the Raspberry Pi \npipeline handler. Patch 5/9 adds an interface based on DelayedControls \nto CameraSensor. And last 6/9 - 9/9 make use of the new helper in the \nRkISP1 pipeline to completely remove another local helper (Timeline).\n\nThe RkISP1 IPA feels much snappier after this change but this is \nanecdotal and no real measurements have been done as the RkISP1 IPA at \nthis stage is neither advanced nor tuned.\n\nNiklas Söderlund (9):\n  libcamera: v4l2_device: Move start of frame detection to V4L2Device\n  libcamera: delayed_controls: Add helper for controls that applies with\n    a delay\n  test: delayed_controls: Add test case for DelayedControls\n  libcamera: raspberrypi: Switch to DelayedControls\n  libcamera: raspberrypi: Remove StaggeredCtrl\n  libcamera: camera_sensor: Expose a DelayedControls interface\n  libcamera: pipeline: rkisp1: Use CameraSensor and delayed controls\n  libcamera: pipeline: rkisp1: Use SOF event to warn about late\n    parameters\n  libcamera: pipeline: rkisp1: Remove Timeline\n\n include/libcamera/internal/camera_sensor.h    |   5 +\n include/libcamera/internal/delayed_controls.h |  87 +++++\n include/libcamera/internal/v4l2_device.h      |  13 +-\n include/libcamera/internal/v4l2_videodevice.h |   8 -\n src/libcamera/camera_sensor.cpp               |  31 ++\n src/libcamera/delayed_controls.cpp            | 282 ++++++++++++++++\n src/libcamera/meson.build                     |   1 +\n .../pipeline/raspberrypi/meson.build          |   1 -\n .../pipeline/raspberrypi/raspberrypi.cpp      |  44 ++-\n .../pipeline/raspberrypi/staggered_ctrl.cpp   | 174 ----------\n .../pipeline/raspberrypi/staggered_ctrl.h     |  96 ------\n src/libcamera/pipeline/rkisp1/meson.build     |   1 -\n src/libcamera/pipeline/rkisp1/rkisp1.cpp      | 158 +++------\n src/libcamera/pipeline/rkisp1/timeline.cpp    | 227 -------------\n src/libcamera/pipeline/rkisp1/timeline.h      |  72 ----\n src/libcamera/v4l2_device.cpp                 |  76 ++++-\n src/libcamera/v4l2_videodevice.cpp            |  75 +----\n test/delayed_contols.cpp                      | 307 ++++++++++++++++++\n test/meson.build                              |   1 +\n 19 files changed, 858 insertions(+), 801 deletions(-)\n create mode 100644 include/libcamera/internal/delayed_controls.h\n create mode 100644 src/libcamera/delayed_controls.cpp\n delete mode 100644 src/libcamera/pipeline/raspberrypi/staggered_ctrl.cpp\n delete mode 100644 src/libcamera/pipeline/raspberrypi/staggered_ctrl.h\n delete mode 100644 src/libcamera/pipeline/rkisp1/timeline.cpp\n delete mode 100644 src/libcamera/pipeline/rkisp1/timeline.h\n create mode 100644 test/delayed_contols.cpp"
}