Show a cover letter.

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

{
    "id": 19982,
    "url": "https://patchwork.libcamera.org/api/1.1/covers/19982/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/19982/",
    "project": {
        "id": 1,
        "url": "https://patchwork.libcamera.org/api/1.1/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": "<20240502133046.1976565-1-dan.scally@ideasonboard.com>",
    "date": "2024-05-02T13:30:38",
    "name": "[v4,0/8] Centralise Agc into libipa",
    "submitter": {
        "id": 156,
        "url": "https://patchwork.libcamera.org/api/1.1/people/156/?format=api",
        "name": "Dan Scally",
        "email": "dan.scally@ideasonboard.com"
    },
    "mbox": "https://patchwork.libcamera.org/cover/19982/mbox/",
    "series": [
        {
            "id": 4284,
            "url": "https://patchwork.libcamera.org/api/1.1/series/4284/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4284",
            "date": "2024-05-02T13:30:38",
            "name": "Centralise Agc into libipa",
            "version": 4,
            "mbox": "https://patchwork.libcamera.org/series/4284/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/19982/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 32622BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu,  2 May 2024 13:31:18 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C1E5963420;\n\tThu,  2 May 2024 15:31:16 +0200 (CEST)",
            "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 54064633EB\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu,  2 May 2024 15:31:14 +0200 (CEST)",
            "from mail.ideasonboard.com\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 8FB67552;\n\tThu,  2 May 2024 15:30:16 +0200 (CEST)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"rc1OtWAB\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1714656616;\n\tbh=nlTwzAI2D1DEwATSLTQTwHsnKc2sEQcJNqXjUi7cKuY=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=rc1OtWAB8fuepehwz6O1K5ylhMM4yqxdL9Y8qE9B5aMJ7ZXr2gQOJU5R/xb2z5Yjd\n\tSZ54+iyj7JDvfZjHZy3zKn+0ra4VcKV45sfakJG1XBbGpeuWzZ433Xni9g9lAERLjs\n\t1UH+2gR4YlOSDbuo3bJa53fVrjWKoKFXtuZCoAUw=",
        "From": "Daniel Scally <dan.scally@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Daniel Scally <dan.scally@ideasonboard.com>",
        "Subject": "[PATCH v4 0/8] Centralise Agc into libipa",
        "Date": "Thu,  2 May 2024 14:30:38 +0100",
        "Message-Id": "<20240502133046.1976565-1-dan.scally@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "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": "Hello all\n\nVersion 4 of the centralised AGC series. As before the series **does** alter the\ncalculated shutter time and gain for both the IPU3 and RkISP1 compared to their\nbespoke implementations, for two reasons:\n\n1. A bug in the way they were implemented meant that an over-exposed image was\n   corrected more slowly than an under-exposed one. This is fixed and will\n   improve both IPAs' response to a too-bright image.\n2. The default kRelativeLuminanceTarget is centrally set to 0.16 which matches\n   the value from the IPU3 implementation. In the RkISP1 implementation that\n   value was set to 0.4 with a \\todo to see why they were different.\n   \nWithout those two changes, the shutter time and gain calculated after this\nseries matches those calculated by their independent implementations. The second\npoint still requires some discussion I believe; it could be that the different\nmechanisms through which we estimate luminance (which are enforced by the\ndifferent statistics we get from the hardware) means we can't have a single\ntarget and need to have one for each algorithm...or perhaps I'm missing\nsomething.\n\nThanks\nDan\n\nDaniel Scally (7):\n  ipa: libipa: Allow creation of empty Histogram\n  libcamera: controls: Generate enum value-name maps\n  ipa: libipa: Add AgcMeanLuminance base class\n  ipa: ipu3: Derive ipu3::algorithms::Agc from AgcMeanLuminance\n  ipa: ipu3: Remove bespoke AGC functions from IPU3\n  ipa: rkisp1: Derive rkisp1::algorithms::Agc from AgcMeanLuminance\n  ipa: rkisp1: Remove bespoke Agc functions\n\nPaul Elder (1):\n  ipa: libipa: Add ExposureModeHelper\n\n include/libcamera/control_ids.h.in      |   2 +\n include/libcamera/property_ids.h.in     |   2 +\n src/ipa/ipu3/algorithms/agc.cpp         | 282 ++++--------\n src/ipa/ipu3/algorithms/agc.h           |  27 +-\n src/ipa/ipu3/ipa_context.cpp            |   3 +\n src/ipa/ipu3/ipa_context.h              |   5 +\n src/ipa/ipu3/ipu3.cpp                   |   3 +-\n src/ipa/libipa/agc_mean_luminance.cpp   | 577 ++++++++++++++++++++++++\n src/ipa/libipa/agc_mean_luminance.h     |  96 ++++\n src/ipa/libipa/exposure_mode_helper.cpp | 246 ++++++++++\n src/ipa/libipa/exposure_mode_helper.h   |  53 +++\n src/ipa/libipa/histogram.cpp            |   9 +\n src/ipa/libipa/histogram.h              |   1 +\n src/ipa/libipa/meson.build              |   4 +\n src/ipa/rkisp1/algorithms/agc.cpp       | 274 +++--------\n src/ipa/rkisp1/algorithms/agc.h         |  16 +-\n src/ipa/rkisp1/ipa_context.h            |   5 +\n src/ipa/rkisp1/rkisp1.cpp               |   3 +-\n utils/gen-controls.py                   |  19 +\n 19 files changed, 1200 insertions(+), 427 deletions(-)\n create mode 100644 src/ipa/libipa/agc_mean_luminance.cpp\n create mode 100644 src/ipa/libipa/agc_mean_luminance.h\n create mode 100644 src/ipa/libipa/exposure_mode_helper.cpp\n create mode 100644 src/ipa/libipa/exposure_mode_helper.h"
}