Show a patch.

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

{
    "id": 25619,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/25619/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/25619/",
    "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": "<20251229194152.1087528-1-kieran.bingham@ideasonboard.com>",
    "date": "2025-12-29T19:41:52",
    "name": "libcamera: software_isp: Always report saturation metadata",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "ec17e041431619d8b09bbe68d21be2fe17a78220",
    "submitter": {
        "id": 4,
        "url": "https://patchwork.libcamera.org/api/1.1/people/4/?format=api",
        "name": "Kieran Bingham",
        "email": "kieran.bingham@ideasonboard.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/25619/mbox/",
    "series": [
        {
            "id": 5678,
            "url": "https://patchwork.libcamera.org/api/1.1/series/5678/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5678",
            "date": "2025-12-29T19:41:52",
            "name": "libcamera: software_isp: Always report saturation metadata",
            "version": 1,
            "mbox": "https://patchwork.libcamera.org/series/5678/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/25619/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/25619/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 B85FABDCC0\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 29 Dec 2025 19:42:02 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 9002661FB5;\n\tMon, 29 Dec 2025 20:42:01 +0100 (CET)",
            "from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[213.167.242.64])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 21566610A6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 29 Dec 2025 20:42:00 +0100 (CET)",
            "from Monstersaurus.infra.iob\n\t(cpc89244-aztw30-2-0-cust6594.18-1.cable.virginm.net [86.31.185.195])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 83A27BCA;\n\tMon, 29 Dec 2025 20:41:44 +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=\"ac5+c09i\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1767037304;\n\tbh=l6Y8PSS6t4pvYzgIfa+M5yYCdlwzElxzZUgqXqrVHPk=;\n\th=From:To:Cc:Subject:Date:From;\n\tb=ac5+c09iZAwQB56oJj+kmELG5TNK0JGP8Mf1PaxqKJFJagEELrz8NDBXJVKsgIoyn\n\tWx57Ljzlc6XHEk97cQIcMWWLSBWD4tKonlHkB1Uyz2HcmtVisgAS6taRlkXORwaPRA\n\teN75gsvfxpyfgNpP6JaCCL+t8jBc56tVldmww4Gg=",
        "From": "Kieran Bingham <kieran.bingham@ideasonboard.com>",
        "To": "libcamera devel <libcamera-devel@lists.libcamera.org>",
        "Cc": "Kieran Bingham <kieran.bingham@ideasonboard.com>",
        "Subject": "[PATCH] libcamera: software_isp: Always report saturation metadata",
        "Date": "Mon, 29 Dec 2025 19:41:52 +0000",
        "Message-ID": "<20251229194152.1087528-1-kieran.bingham@ideasonboard.com>",
        "X-Mailer": "git-send-email 2.52.0",
        "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": "When the saturation is applied the metadata is reported for one frame\nonly.  Once the colour temperature and saturation is stable, the\nmetadata for the saturation is not stored into the frame context and\ntherefore not reported in the completed request metadata.\n\nUpdate the CCM component to also store the applied saturation in the\nframeContext so that it can be reported in the metadata.\n\nFixes: 59ac34b728c5 (\"libcamera: software_isp: Add saturation control\")\nSigned-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n\nThis is visible when the CCM is enabled, which is more convenient to\ntest now that we have the GPU ISP enablement where I noticed this - but\nit's still applicable directly to mainline too.\n\n src/ipa/simple/algorithms/ccm.cpp | 1 +\n 1 file changed, 1 insertion(+)",
    "diff": "diff --git a/src/ipa/simple/algorithms/ccm.cpp b/src/ipa/simple/algorithms/ccm.cpp\nindex 0a98406c1a3a..f28b1037d2d2 100644\n--- a/src/ipa/simple/algorithms/ccm.cpp\n+++ b/src/ipa/simple/algorithms/ccm.cpp\n@@ -95,6 +95,7 @@ void Ccm::prepare(IPAContext &context, const uint32_t frame,\n \t    utils::abs_diff(ct, lastCt_) < kTemperatureThreshold &&\n \t    saturation == lastSaturation_) {\n \t\tframeContext.ccm.ccm = context.activeState.ccm.ccm;\n+\t\tframeContext.saturation = saturation;\n \t\tcontext.activeState.ccm.changed = false;\n \t\treturn;\n \t}\n",
    "prefixes": []
}