Show a cover letter.

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

{
    "id": 22331,
    "url": "https://patchwork.libcamera.org/api/covers/22331/?format=api",
    "web_url": "https://patchwork.libcamera.org/cover/22331/",
    "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": "<20241216043954.3506855-1-paul.elder@ideasonboard.com>",
    "date": "2024-12-16T04:39:46",
    "name": "[v5,0/8] AEGC controls",
    "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/22331/mbox/",
    "series": [
        {
            "id": 4892,
            "url": "https://patchwork.libcamera.org/api/series/4892/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4892",
            "date": "2024-12-16T04:39:46",
            "name": "AEGC controls",
            "version": 5,
            "mbox": "https://patchwork.libcamera.org/series/4892/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/covers/22331/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 E591CC32F6\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 16 Dec 2024 04:40:20 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id D4AA467F3A;\n\tMon, 16 Dec 2024 05:40:19 +0100 (CET)",
            "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 0877D62C8A\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Dec 2024 05:40:18 +0100 (CET)",
            "from neptunite.flets-east.jp (unknown\n\t[IPv6:2404:7a81:160:2100:c11a:e451:861f:3d32])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9521313C;\n\tMon, 16 Dec 2024 05:39:40 +0100 (CET)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"dR7N2aPv\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1734323981;\n\tbh=GQ/nOqmhprdVo9tcPhmeo4y3jgc+QQNtsGXMY5IOm4g=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=dR7N2aPvhfzuHz7tsfL+POXTddMxhr25UonVTpFNdqtLW24fC6xQ/0lzG1tsgejw8\n\t4tqbbmU/AJ6bjdfQVg6ykQss2C5ukR0uELfU0SjjszujQ2tWezCNPsVEURRwPR2Fpd\n\tDWd6iS92Ik2vIg0rGtBuq/kH2AMuOLkhkp/riz0A=",
        "From": "Paul Elder <paul.elder@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Paul Elder <paul.elder@ideasonboard.com>",
        "Subject": "[PATCH v5 0/8] AEGC controls",
        "Date": "Mon, 16 Dec 2024 13:39:46 +0900",
        "Message-Id": "<20241216043954.3506855-1-paul.elder@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.39.2",
        "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": "This patch series introduces a new set of AEGC controls that allow:\n- flicker avoidance when switching from auto to manual\n- shutter priority / gain priority\n\nTo achieve this, we remove the existing AeEnable control and add two\nseparate controls that control enabling/disabling auto-exposure and\nauto-gain. The definition of AeState is also made more concrete. The\nfirst two patches add the new controls, as well as documentation and\ndesign rationale.\n\nThe rest of the patches naturally update the existing users of AeEnable,\nbefore finally removing the control altogether.\n\nv4 mainly improves documentation and implements the proper behavior when\ntransitioning between auto and manual modes for the rkisp1.\n\nv5 is mostly minor wording changes, plus a fix to the rkisp1 aegc\nimplementation to support mixed manual-auto ae modes (aka \"shutter\npriority\" / \"gain priority\").\n\nThanks,\n\nPaul\n\nJacopo Mondi (4):\n  libcamera: uvcvideo: Register ExposureTimeMode control\n  test: ipa_data_serialization: Use DebugMetadataEnable\n  ipa: raspberry: Port to the new AEGC controls\n  controls: Remove AeEnable and AeLocked\n\nPaul Elder (4):\n  controls: Introduce AEGC-related controls\n  Documentation: design: ae: Document the design for AE controls\n  ipa: rkisp1: Port to the new AEGC controls\n  gstreamer: Generate the new AEGC controls\n\n Documentation/design/ae.rst                   | 320 ++++++++++++++++++\n Documentation/index.rst                       |   4 +-\n Documentation/meson.build                     |   1 +\n src/ipa/rkisp1/algorithms/agc.cpp             | 122 +++++--\n src/ipa/rkisp1/ipa_context.cpp                |  24 +-\n src/ipa/rkisp1/ipa_context.h                  |   8 +-\n src/ipa/rpi/common/ipa_base.cpp               |  74 +++-\n src/ipa/rpi/controller/agc_algorithm.h        |   8 +-\n src/ipa/rpi/controller/rpi/agc.cpp            |  52 ++-\n src/ipa/rpi/controller/rpi/agc.h              |   8 +-\n src/ipa/rpi/controller/rpi/agc_channel.cpp    |  24 +-\n src/ipa/rpi/controller/rpi/agc_channel.h      |   8 +-\n src/libcamera/control_ids_core.yaml           | 268 +++++++++++++--\n src/libcamera/control_ids_draft.yaml          |  29 --\n src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  |  53 ++-\n .../ipa_data_serializer_test.cpp              |   2 +-\n utils/codegen/gen-gst-controls.py             |   5 +-\n 17 files changed, 890 insertions(+), 120 deletions(-)\n create mode 100644 Documentation/design/ae.rst"
}