Show a patch.

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

{
    "id": 21411,
    "url": "https://patchwork.libcamera.org/api/patches/21411/?format=api",
    "web_url": "https://patchwork.libcamera.org/patch/21411/",
    "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": "<20240927134624.801004-19-mzamazal@redhat.com>",
    "date": "2024-09-27T13:46:24",
    "name": "[v8,18/18] libcamera: software_isp: Update black level only on exposure changes",
    "commit_ref": "6c0aefdaf92b62e77bdc3b8add2b8107e50a5544",
    "pull_url": null,
    "state": "accepted",
    "archived": false,
    "hash": "feb651b254c616944991b5e82e803ce5450723a5",
    "submitter": {
        "id": 177,
        "url": "https://patchwork.libcamera.org/api/people/177/?format=api",
        "name": "Milan Zamazal",
        "email": "mzamazal@redhat.com"
    },
    "delegate": null,
    "mbox": "https://patchwork.libcamera.org/patch/21411/mbox/",
    "series": [
        {
            "id": 4634,
            "url": "https://patchwork.libcamera.org/api/series/4634/?format=api",
            "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=4634",
            "date": "2024-09-27T13:46:06",
            "name": "Software ISP refactoring",
            "version": 8,
            "mbox": "https://patchwork.libcamera.org/series/4634/mbox/"
        }
    ],
    "comments": "https://patchwork.libcamera.org/api/patches/21411/comments/",
    "check": "pending",
    "checks": "https://patchwork.libcamera.org/api/patches/21411/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 AA620C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 27 Sep 2024 13:47:27 +0000 (UTC)",
            "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 21B4A63538;\n\tFri, 27 Sep 2024 15:47:27 +0200 (CEST)",
            "from us-smtp-delivery-124.mimecast.com\n\t(us-smtp-delivery-124.mimecast.com [170.10.133.124])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 63E4265363\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 27 Sep 2024 15:47:22 +0200 (CEST)",
            "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-258-f8tqYpAENPGLGn3eKT9Dkw-1;\n\tFri, 27 Sep 2024 09:47:20 -0400",
            "from mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (unknown\n\t[10.30.177.40])\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 00793196E091; Fri, 27 Sep 2024 13:47:19 +0000 (UTC)",
            "from nuthatch.redhat.com (unknown [10.45.224.123])\n\tby mx-prod-int-04.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 065581956054; Fri, 27 Sep 2024 13:47:15 +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=\"aKw/rMGc\"; dkim-atps=neutral",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1727444841;\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=zupN8/7GcXQN2C20THK1O1zf82x5dzlEgVthLF6tXFo=;\n\tb=aKw/rMGcAlVyE11tQafNx9ioSp/9iMPmjyHObM0q13RCrmZ6uwA7DsKxhGSx5EiAcDzxY3\n\t3NEfCxHeSPl8h0JcRmZw14lCttj53jpu4xYekhyaCud3DcC2CaUzyx+tlkZqQqbMMEcx40\n\tpWjy7zTYdMxMK/vs5ed9r5lV65/+SNw=",
        "X-MC-Unique": "f8tqYpAENPGLGn3eKT9Dkw-1",
        "From": "Milan Zamazal <mzamazal@redhat.com>",
        "To": "libcamera-devel@lists.libcamera.org",
        "Cc": "Milan Zamazal <mzamazal@redhat.com>,\n\tUmang Jain <umang.jain@ideasonboard.com>,\n\tLaurent Pinchart <laurent.pinchart@ideasonboard.com>,\n\tDaniel Scally <dan.scally@ideasonboard.com>,\n\tKieran Bingham <kieran.bingham@ideasonboard.com>",
        "Subject": "[PATCH v8 18/18] libcamera: software_isp: Update black level only on\n\texposure changes",
        "Date": "Fri, 27 Sep 2024 15:46:24 +0200",
        "Message-ID": "<20240927134624.801004-19-mzamazal@redhat.com>",
        "In-Reply-To": "<20240927134624.801004-1-mzamazal@redhat.com>",
        "References": "<20240927134624.801004-1-mzamazal@redhat.com>",
        "MIME-Version": "1.0",
        "X-Scanned-By": "MIMEDefang 3.0 on 10.30.177.40",
        "X-Mimecast-Spam-Score": "0",
        "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": "The black level is likely to get updated, if ever, only after exposure\nor gain changes.  Don't compute its possible updates if exposure and\ngain are unchanged.\n\nIt's probably not worth trying to implement something more\nsophisticated.  Better to spend the effort on supporting tuning files.\n\nSigned-off-by: Milan Zamazal <mzamazal@redhat.com>\nReviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\nReviewed-by: Umang Jain <umang.jain@ideasonboard.com>\n---\n src/ipa/simple/algorithms/blc.cpp | 9 ++++++++-\n src/ipa/simple/algorithms/blc.h   | 4 ++++\n 2 files changed, 12 insertions(+), 1 deletion(-)",
    "diff": "diff --git a/src/ipa/simple/algorithms/blc.cpp b/src/ipa/simple/algorithms/blc.cpp\nindex 755108b05..b9f2aaa6d 100644\n--- a/src/ipa/simple/algorithms/blc.cpp\n+++ b/src/ipa/simple/algorithms/blc.cpp\n@@ -30,10 +30,15 @@ int BlackLevel::configure(IPAContext &context,\n \n void BlackLevel::process(IPAContext &context,\n \t\t\t [[maybe_unused]] const uint32_t frame,\n-\t\t\t [[maybe_unused]] IPAFrameContext &frameContext,\n+\t\t\t IPAFrameContext &frameContext,\n \t\t\t const SwIspStats *stats,\n \t\t\t [[maybe_unused]] ControlList &metadata)\n {\n+\tif (frameContext.sensor.exposure == exposure_ &&\n+\t    frameContext.sensor.gain == gain_) {\n+\t\treturn;\n+\t}\n+\n \tconst SwIspStats::Histogram &histogram = stats->yHistogram;\n \n \t/*\n@@ -54,6 +59,8 @@ void BlackLevel::process(IPAContext &context,\n \t\tseen += histogram[i];\n \t\tif (seen >= pixelThreshold) {\n \t\t\tcontext.activeState.blc.level = i * histogramRatio;\n+\t\t\texposure_ = frameContext.sensor.exposure;\n+\t\t\tgain_ = frameContext.sensor.gain;\n \t\t\tLOG(IPASoftBL, Debug)\n \t\t\t\t<< \"Auto-set black level: \"\n \t\t\t\t<< i << \"/\" << SwIspStats::kYHistogramSize\ndiff --git a/src/ipa/simple/algorithms/blc.h b/src/ipa/simple/algorithms/blc.h\nindex 49bdcc610..828ad8b18 100644\n--- a/src/ipa/simple/algorithms/blc.h\n+++ b/src/ipa/simple/algorithms/blc.h\n@@ -24,6 +24,10 @@ public:\n \t\t     IPAFrameContext &frameContext,\n \t\t     const SwIspStats *stats,\n \t\t     ControlList &metadata) override;\n+\n+private:\n+\tuint32_t exposure_;\n+\tdouble gain_;\n };\n \n } /* namespace ipa::soft::algorithms */\n",
    "prefixes": [
        "v8",
        "18/18"
    ]
}