Show a patch.

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

{
    "id": 22532,
    "url": "https://patchwork.libcamera.org/api/1.1/patches/22532/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/22532/",
    "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": "<20250113133405.12167-4-mzamazal@redhat.com>",
    "date": "2025-01-13T13:34:02",
    "name": "[v3,3/6] ipa: simple: Report the ColourGains in metadata",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": false,
    "hash": "9a759b25b17c7d455d7b257a706b6c051a6f427e",
    "submitter": {
        "id": 177,
        "url": "https://patchwork.libcamera.org/api/1.1/people/177/?format=api",
        "name": "Milan Zamazal",
        "email": "mzamazal@redhat.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/22532/mbox/",
    "series": [
        {
            "id": 4945,
            "url": "https://patchwork.libcamera.org/api/1.1/series/4945/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4945",
            "date": "2025-01-13T13:33:59",
            "name": "ipa: simple: Introduce metadata reporting",
            "version": 3,
            "mbox": "https://patchwork.libcamera.org/series/4945/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/22532/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/22532/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 27DD4C32F6\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 13 Jan 2025 13:34:37 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C500B68549;\n\tMon, 13 Jan 2025 14:34:35 +0100 (CET)",
            "from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.129.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 575FF6851C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 13 Jan 2025 14:34:30 +0100 (CET)",
            "from mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com\n\t(ec2-54-186-198-63.us-west-2.compute.amazonaws.com [54.186.198.63])\n\tby relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n\tcipher=TLS_AES_256_GCM_SHA384) id us-mta-673-LbMAj8N-N6qhQkhxSjb4mw-1;\n\tMon, 13 Jan 2025 08:34:25 -0500",
            "from mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com\n\t[10.30.177.17])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\tkey-exchange X25519 server-signature RSA-PSS (2048 bits)\n\tserver-digest SHA256) (No client certificate requested)\n\tby mx-prod-mc-01.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS id 87A09195F14B; Mon, 13 Jan 2025 13:34:24 +0000 (UTC)",
            "from mzamazal-thinkpadp1gen3.tpbc.com (unknown [10.45.224.6])\n\tby mx-prod-int-05.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id E89B81955BE3; Mon, 13 Jan 2025 13:34:22 +0000 (UTC)"
        ],
        "Authentication-Results": "lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"jSCK7e0x\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1736775269;\n\th=from:from:reply-to:subject:subject:date:date:message-id:message-id:\n\tto:to:cc:cc:mime-version:mime-version:content-type:content-type:\n\tcontent-transfer-encoding:content-transfer-encoding:\n\tin-reply-to:in-reply-to:references:references;\n\tbh=qXpamGuF7G1RjObdOdOOC5RnGXdx/ZwAX2vjlsGyeuE=;\n\tb=jSCK7e0xJpyxoo1KCU5xZEGZeSXOWELreuVJVzoFj3S7UedCmwiFUqk1j1YeVU010R7VeQ\n\tx4ofzzxe0zrCDx4hs6P8f30YDNtgirrW/C/6VisZ4ybAox0h9DUuKDM6LgkDHA2xse731u\n\tB5qBeX4SviDmg03cOHmu10VKoUL+32c=",
        "X-MC-Unique": "LbMAj8N-N6qhQkhxSjb4mw-1",
        "X-Mimecast-MFC-AGG-ID": "LbMAj8N-N6qhQkhxSjb4mw",
        "From": "Milan Zamazal <mzamazal@redhat.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Kieran Bingham <kieran.bingham@ideasonboard.com>, Laurent Pinchart\n\t<laurent.pinchart@ideasonboard.com>, =?utf-8?b?QmFybmFiw6FzIFDFkWN6?=\n\t=?utf-8?q?e?= <pobrn@protonmail.com>",
        "Subject": "[PATCH v3 3/6] ipa: simple: Report the ColourGains in metadata",
        "Date": "Mon, 13 Jan 2025 14:34:02 +0100",
        "Message-ID": "<20250113133405.12167-4-mzamazal@redhat.com>",
        "In-Reply-To": "<20250113133405.12167-1-mzamazal@redhat.com>",
        "References": "<20250113133405.12167-1-mzamazal@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 3.0 on 10.30.177.17",
        "X-Mimecast-Spam-Score": "0",
        "X-Mimecast-MFC-PROC-ID": "il2lYuqO-VH3XtlWqPN3kPCTBXlxp6wciPY0bYwfnvI_1736775264",
        "X-Mimecast-Originator": "redhat.com",
        "Content-Transfer-Encoding": "8bit",
        "content-type": "text/plain; charset=\"US-ASCII\"; x-default=true",
        "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": "From: Kieran Bingham <kieran.bingham@ideasonboard.com>\n\nProvide the determined colour gains back into the metadata\nto add to completed requests.\n\nMetadata must be set before computing the new gain values in order to\nreport the metadata used to process the image rather than the metadata\ndetermined from the image (and to be used for processing the next\nimage).\n\nSigned-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n---\n src/ipa/simple/algorithms/awb.cpp | 11 +++++++++--\n 1 file changed, 9 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/src/ipa/simple/algorithms/awb.cpp b/src/ipa/simple/algorithms/awb.cpp\nindex 195de41d..95ff4434 100644\n--- a/src/ipa/simple/algorithms/awb.cpp\n+++ b/src/ipa/simple/algorithms/awb.cpp\n@@ -14,6 +14,8 @@\n \n #include \"simple/ipa_context.h\"\n \n+#include \"control_ids.h\"\n+\n namespace libcamera {\n \n LOG_DEFINE_CATEGORY(IPASoftAwb)\n@@ -33,10 +35,16 @@ void Awb::process(IPAContext &context,\n \t\t  [[maybe_unused]] const uint32_t frame,\n \t\t  [[maybe_unused]] IPAFrameContext &frameContext,\n \t\t  const SwIspStats *stats,\n-\t\t  [[maybe_unused]] ControlList &metadata)\n+\t\t  ControlList &metadata)\n {\n \tconst SwIspStats::Histogram &histogram = stats->yHistogram;\n \tconst uint8_t blackLevel = context.activeState.blc.level;\n+\tauto &gains = context.activeState.gains;\n+\n+\tconst float maxGain = 1024.0;\n+\tconst float mdGains[] = { static_cast<float>(gains.red / maxGain),\n+\t\t\t\t  static_cast<float>(gains.blue / maxGain) };\n+\tmetadata.set(controls::ColourGains, mdGains);\n \n \t/*\n \t * Black level must be subtracted to get the correct AWB ratios, they\n@@ -54,7 +62,6 @@ void Awb::process(IPAContext &context,\n \t * Calculate red and blue gains for AWB.\n \t * Clamp max gain at 4.0, this also avoids 0 division.\n \t */\n-\tauto &gains = context.activeState.gains;\n \tgains.red = sumR <= sumG / 4 ? 4.0 : static_cast<double>(sumG) / sumR;\n \tgains.blue = sumB <= sumG / 4 ? 4.0 : static_cast<double>(sumG) / sumB;\n \t/* Green gain is fixed to 1.0 */\n",
    "prefixes": [
        "v3",
        "3/6"
    ]
}