Show a patch.

GET /api/1.1/patches/22977/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 22977,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/22977/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/22977/",
    "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": "<20250319160146.61751-3-stefan.klug@ideasonboard.com>",
    "date": "2025-03-19T16:01:37",
    "name": "[2/2] ipa: rkisp1: agc: Set measurement window to full frame",
    "commit_ref": "2c66de06a04fe4cf9b2441ae0ac7838922d52251",
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "2fdf85ef54fcf73f7a1bd71066b6ebf7ba738d45",
    "submitter": {
        "id": 184,
        "url": "https://patchwork.libcamera.org/api/1.1/people/184/?format=api",
        "name": "Stefan Klug",
        "email": "stefan.klug@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/22977/mbox/",
    "series": [
        {
            "id": 5070,
            "url": "https://patchwork.libcamera.org/api/1.1/series/5070/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5070",
            "date": "2025-03-19T16:01:35",
            "name": "rkisp1: Fix metering modes",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/5070/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/22977/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/22977/checks/",
    "tags": {},
    "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 016D8C3301\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed, 19 Mar 2025 16:02:03 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id AE32F68958;\n\tWed, 19 Mar 2025 17:02:03 +0100 (CET)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 8432E68957\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed, 19 Mar 2025 17:02:01 +0100 (CET)",
            "from ideasonboard.com (unknown\n\t[IPv6:2a00:6020:448c:6c00:760:e5ca:4814:99c7])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 7D90A1E6;\n\tWed, 19 Mar 2025 17:00:18 +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=\"eAYYQqsB\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1742400018;\n\tbh=zI9Pe25uJV1j/LfDiMV2CdRrM3azElPfJy5XZBXWzvI=;\n\th=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n\tb=eAYYQqsB68XI9+DU6hDrSaKAvVPbW28VutuNr06Xcxpa0VwAxvlXN6OncYKxeHZYO\n\tHWelCRJAvcC7/fN1HB+eSw4bHiMBw/kjgJwSN/NC5tUXEHJcAbs2obvxLAulyo3zvV\n\tMLMMEgiX+DcSLUv6PVvCEeJ/HUR/Ve88SqWHht/Y=",
        "From": "Stefan Klug <stefan.klug@ideasonboard.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Stefan Klug <stefan.klug@ideasonboard.com>",
        "Subject": "[PATCH 2/2] ipa: rkisp1: agc: Set measurement window to full frame",
        "Date": "Wed, 19 Mar 2025 17:01:37 +0100",
        "Message-ID": "<20250319160146.61751-3-stefan.klug@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.43.0",
        "In-Reply-To": "<20250319160146.61751-1-stefan.klug@ideasonboard.com>",
        "References": "<20250319160146.61751-1-stefan.klug@ideasonboard.com>",
        "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": "With the availability of metering modes and the corresponding weights,\nthere is a flexible way of defining the area that gets taken into\naccount when AEGC is calculated. There is no need to reduce that window\nto an arbitrary region anymore. If need arises we can make this\nparameter user configurable or add a control for it.\n\nSigned-off-by: Stefan Klug <stefan.klug@ideasonboard.com>\n---\n src/ipa/rkisp1/algorithms/agc.cpp | 12 ++++--------\n 1 file changed, 4 insertions(+), 8 deletions(-)",
    "diff": "diff --git a/src/ipa/rkisp1/algorithms/agc.cpp b/src/ipa/rkisp1/algorithms/agc.cpp\nindex 101cad5d0893..b3ac9400b74f 100644\n--- a/src/ipa/rkisp1/algorithms/agc.cpp\n+++ b/src/ipa/rkisp1/algorithms/agc.cpp\n@@ -193,14 +193,10 @@ int Agc::configure(IPAContext &context, const IPACameraSensorInfo &configInfo)\n \tcontext.activeState.agc.minFrameDuration = std::chrono::microseconds(frameDurationLimits.min().get<int64_t>());\n \tcontext.activeState.agc.maxFrameDuration = std::chrono::microseconds(frameDurationLimits.max().get<int64_t>());\n \n-\t/*\n-\t * Define the measurement window for AGC as a centered rectangle\n-\t * covering 3/4 of the image width and height.\n-\t */\n-\tcontext.configuration.agc.measureWindow.h_offs = configInfo.outputSize.width / 8;\n-\tcontext.configuration.agc.measureWindow.v_offs = configInfo.outputSize.height / 8;\n-\tcontext.configuration.agc.measureWindow.h_size = 3 * configInfo.outputSize.width / 4;\n-\tcontext.configuration.agc.measureWindow.v_size = 3 * configInfo.outputSize.height / 4;\n+\tcontext.configuration.agc.measureWindow.h_offs = 0;\n+\tcontext.configuration.agc.measureWindow.v_offs = 0;\n+\tcontext.configuration.agc.measureWindow.h_size = configInfo.outputSize.width;\n+\tcontext.configuration.agc.measureWindow.v_size = configInfo.outputSize.height;\n \n \tsetLimits(context.configuration.sensor.minExposureTime,\n \t\t  context.configuration.sensor.maxExposureTime,\n",
    "prefixes": [
        "2/2"
    ]
}