Patch Detail
Show a patch.
GET /api/patches/24432/?format=api
{ "id": 24432, "url": "https://patchwork.libcamera.org/api/patches/24432/?format=api", "web_url": "https://patchwork.libcamera.org/patch/24432/", "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": "<20250919173709.220881-4-mzamazal@redhat.com>", "date": "2025-09-19T17:37:06", "name": "[v3,3/6] libcamera: software_isp: Check processed window size alignment", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": false, "hash": "d0e7f0c0c9c167ccc6c3bd01e69a023d0278da67", "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/24432/mbox/", "series": [ { "id": 5451, "url": "https://patchwork.libcamera.org/api/series/5451/?format=api", "web_url": "https://patchwork.libcamera.org/project/libcamera/list/?series=5451", "date": "2025-09-19T17:37:03", "name": "Fix stats related problems in software ISP", "version": 3, "mbox": "https://patchwork.libcamera.org/series/5451/mbox/" } ], "comments": "https://patchwork.libcamera.org/api/patches/24432/comments/", "check": "pending", "checks": "https://patchwork.libcamera.org/api/patches/24432/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 844D7BE173\n\tfor <parsemail@patchwork.libcamera.org>;\n\tFri, 19 Sep 2025 17:37:38 +0000 (UTC)", "from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id B0EC56B5A0;\n\tFri, 19 Sep 2025 19:37:37 +0200 (CEST)", "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 EF1476B59C\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tFri, 19 Sep 2025 19:37:34 +0200 (CEST)", "from mx-prod-mc-03.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-331-qswc3F01P12NRQaI8BG7kA-1;\n\tFri, 19 Sep 2025 13:37:32 -0400", "from mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com\n\t(mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com\n\t[10.30.177.111])\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-03.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS id E84D319560B4; Fri, 19 Sep 2025 17:37:30 +0000 (UTC)", "from mzamazal-thinkpadp1gen7.tpbc.com (unknown [10.44.32.9])\n\tby mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id CCF621800451; Fri, 19 Sep 2025 17:37:28 +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=\"J+eZOL/Q\"; dkim-atps=neutral", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1758303453;\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=TZtyDTE8UfRKpafCu2pq9XDPW+bf3vhkTSKUacKzmV4=;\n\tb=J+eZOL/Qcz00I/WzV2w380XS/RzK+0bRCktt2hJ+PN+OAYrReA455R1LkomNvDqcSRJwnq\n\tPGInjJk+7cBdBhPuuRT0DXpMGbgJp92BkWlmp2xUaIE46G3bYbSwl+WbxnAtkskqsmWNXH\n\tWaKzjTeu1EAETEVqupXBBM4DfEUhNP0=", "X-MC-Unique": "qswc3F01P12NRQaI8BG7kA-1", "X-Mimecast-MFC-AGG-ID": "qswc3F01P12NRQaI8BG7kA_1758303451", "From": "Milan Zamazal <mzamazal@redhat.com>", "To": "libcamera-devel@lists.libcamera.org", "Cc": "Milan Zamazal <mzamazal@redhat.com>, pobrn@protonmail.com,\n\tmail@maciej.szmigiero.name, =?utf-8?q?Barnab=C3=A1s_P=C5=91cze?=\n\t<barnabas.pocze@ideasonboard.com>", "Subject": "[PATCH v3 3/6] libcamera: software_isp: Check processed window size\n\talignment", "Date": "Fri, 19 Sep 2025 19:37:06 +0200", "Message-ID": "<20250919173709.220881-4-mzamazal@redhat.com>", "In-Reply-To": "<20250919173709.220881-1-mzamazal@redhat.com>", "References": "<20250919173709.220881-1-mzamazal@redhat.com>", "MIME-Version": "1.0", "X-Scanned-By": "MIMEDefang 3.4.1 on 10.30.177.111", "X-Mimecast-Spam-Score": "0", "X-Mimecast-MFC-PROC-ID": "FkTVUetBrhCYj350q0YvsiHwzES82AQLHD1HwdLViMw_1758303451", "X-Mimecast-Originator": "redhat.com", "Content-Type": "text/plain; charset=UTF-8", "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": "The window of the image that should be debayered must be aligned to the\nbayer pattern size (this is a requirement of the current debayering\nimplementation). This is already ensured for the window corner\ncoordinates but not for the window sizes.\n\nWe can either make the window sizes aligned similarly to how the window\ncorner coordinates are aligned or reject an unaligned configuration.\nThis patches chooses the latter as using a different window size than\nthe requested output size could lead to artefacts. Since such a\nsituation is not expected to occur in correctly set up environments, the\nchange should have no negative impact.\n\nReviewed-by: Barnabás Pőcze <barnabas.pocze@ideasonboard.com>\nReviewed-by: Maciej S. Szmigiero <mail@maciej.szmigiero.name>\nSigned-off-by: Milan Zamazal <mzamazal@redhat.com>\n---\n src/libcamera/software_isp/debayer_cpu.cpp | 10 ++++++++++\n 1 file changed, 10 insertions(+)", "diff": "diff --git a/src/libcamera/software_isp/debayer_cpu.cpp b/src/libcamera/software_isp/debayer_cpu.cpp\nindex 185edd814..3200b0c53 100644\n--- a/src/libcamera/software_isp/debayer_cpu.cpp\n+++ b/src/libcamera/software_isp/debayer_cpu.cpp\n@@ -539,7 +539,17 @@ int DebayerCpu::configure(const StreamConfiguration &inputCfg,\n \twindow_.y = ((inputCfg.size.height - outputCfg.size.height) / 2) &\n \t\t ~(inputConfig_.patternSize.height - 1);\n \twindow_.width = outputCfg.size.width;\n+\tif (window_.width % inputConfig_.patternSize.width != 0) {\n+\t\tLOG(Debayer, Error)\n+\t\t\t<< \"Output width is not a multiple of the bayer pattern width\";\n+\t\treturn -EINVAL;\n+\t}\n \twindow_.height = outputCfg.size.height;\n+\tif (window_.height % inputConfig_.patternSize.height != 0) {\n+\t\tLOG(Debayer, Error)\n+\t\t\t<< \"Output height is not a multiple of the bayer pattern height\";\n+\t\treturn -EINVAL;\n+\t}\n \n \t/*\n \t * Set the stats window to the whole processed window. Its coordinates are\n", "prefixes": [ "v3", "3/6" ] }