Show a cover letter.

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

{
    "id": 13006,
    "url": "https://patchwork.libcamera.org/api/covers/13006/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/13006/",
    "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": "<20210716105631.158153-1-paul.elder@ideasonboard.com>",
    "date": "2021-07-16T10:56:10",
    "name": "[libcamera-devel,RFC,v4,00/21] Preliminary FULL plumbing",
    "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/13006/mbox/",
    "series": [
        {
            "id": 2244,
            "url": "https://patchwork.libcamera.org/api/series/2244/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=2244",
            "date": "2021-07-16T10:56:10",
            "name": "Preliminary FULL plumbing",
            "version": 4,
            "mbox": "https://patchwork.libcamera.org/series/2244/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/13006/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 D6D6FC3228\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 16 Jul 2021 10:56:53 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 249EF6853A;\n\tFri, 16 Jul 2021 12:56:53 +0200 (CEST)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 04DF868521\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 16 Jul 2021 12:56:51 +0200 (CEST)",
            "from pyrite.rasen.tech (unknown\n\t[IPv6:2400:4051:61:600:2c71:1b79:d06d:5032])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 578B33F0;\n\tFri, 16 Jul 2021 12:56:49 +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=\"SDzovBlw\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1626433010;\n\tbh=Pchpv+q/E5Ho48feOKxZPoRY3hqJG9ZzqLt0oayF7AY=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=SDzovBlwvWkGJiAls2L79LM88c+ElFiGga/iCqrgNdmiste9gW3pe6hgHZFcsws1a\n\tx9b0nYtxKdVWeKreNXO0lvhi6nv2f0E6D6px0kNr2omuLsro18i8v0TTS0d+vcoejV\n\t5O/XND6Q5QAgVETWYf0pSuRRbcmRpc+DHvOTzg4Q=",
        "From": "Paul Elder <paul.elder@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Date": "Fri, 16 Jul 2021 19:56:10 +0900",
        "Message-Id": "<20210716105631.158153-1-paul.elder@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.27.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[libcamera-devel] [RFC PATCH v4 00/21] Preliminary FULL plumbing",
        "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": "This series depends on \"android: Drive-by cleanups\".\n\nThis patch series adds controls and plumbing necessary for 5 controls to\nsatisfy FULL requirements:\n- AeLock\n- AeEnable (AE_MODE)\n- AwbLock\n- AwbMode\n- MaxLatency (SYNC_MAX_LATENCY)\n\nNew in v3, 1/21 adds a constructor for ControlInfo that takes boolean\nvalues. In v4, this has been upgraded so that it actually works.\n\nNew in v4, 2/21 adds convenience functions to CameraMetadata, and 3/21\nfixes some templates in CameraMetadata.\n\nPatch 5/21 has the plumbing for capability detection. New in v4, at the\nend we tally up all the requirements to enable capabilities, instead of\nturning them off as we set the static metadata. This cleans up the code\na lot\n\nNew in v3, patch 6/21 adds helpers for setting android metadata for\nlibcamera controls, to help keep the HAL capability tracking cleaner.\n\nNew in v4, patch 7/21 moves static and request and result keys into a\nset and member variable of CameraCapabilities, to ease adding new\ncontrols later.\n\nNew in v4, patch 8/21 adds skeletal manual and still request templates.\n\nPatches 9/21 to 12/21 add the necessary controls.\n\nPatches 9/21 and 13/21 to 16/21 plumb the controls into the HAL. They all\nplumb into the static metadata, and only a few into the result metadata.\nIn v4, they are also plumbed into processControls and result metadata,\nthough not yet to the manual and still templates.\n\nPatches 17/21 to 21/21 plumb the controls into the IPU3 pipeline\nhandler.\n\nI want review focused on the first half, patches 1/21 to 8/21, because\nthat is the foundation that the rest is built on top of. I'm hoping to\nmerge them before the other half.\n\n\nPaul Elder (21):\n  controls: Add boolean constructor for ControlInfo\n  android: metadata: Add hasEntry and entryContains\n  android: metadata: Fix addEntry template type\n  android: jpeg: get ISO from SENSOR_SENSITIVITY\n  android: Add infrastructure for determining capabilities and hardware\n    level\n  android: Add helpers for setting android metadata from libcamera\n    controls\n  android: capabilities: Make keys list into set and member variable\n  android: Add skeletal still and manual request templates\n  android, controls: Add and plumb MaxLatency control\n  controls: Replace AeLocked with AeState, and add AeLock\n  controls: Replace AwbEnable with AwbMode\n  controls: Replace AwbLocked with AwbState, and add AwbLock\n  android: Plumb AeEnable control\n  android: Plumb AeLock control\n  android: Plumb AwbMode control\n  android: Plumb AwbLock control\n  pipeline: ipu3: Set MaxLatency ControlInfo\n  pipeline: ipu3: Set AeEnable ControlInfo\n  pipeline: ipu3: Set AeLock ControlInfo\n  pipeline: ipu3: Set AwbMode ControlInfo\n  pipeline: ipu3: Set AwbLock ControlInfo\n\n include/libcamera/controls.h             |   2 +\n include/libcamera/ipa/raspberrypi.h      |   1 -\n src/android/camera_capabilities.cpp      | 642 +++++++++++++++++------\n src/android/camera_capabilities.h        |  20 +\n src/android/camera_device.cpp            |  43 +-\n src/android/camera_metadata.cpp          |  21 +\n src/android/camera_metadata.h            |   7 +-\n src/android/jpeg/post_processor_jpeg.cpp |   5 +-\n src/ipa/raspberrypi/raspberrypi.cpp      |  32 +-\n src/ipa/rkisp1/rkisp1.cpp                |  13 +-\n src/libcamera/control_ids.yaml           | 220 +++++---\n src/libcamera/controls.cpp               |  28 +\n src/libcamera/pipeline/ipu3/ipu3.cpp     |   5 +\n test/controls/control_info.cpp           |  33 ++\n test/controls/control_list.cpp           |   6 +-\n 15 files changed, 786 insertions(+), 292 deletions(-)"
}