{"id":24172,"url":"https://patchwork.libcamera.org/api/1.1/patches/24172/?format=json","web_url":"https://patchwork.libcamera.org/patch/24172/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20250821134141.83236-4-mzamazal@redhat.com>","date":"2025-08-21T13:41:39","name":"[3/5] 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/1.1/people/177/?format=json","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/24172/mbox/","series":[{"id":5397,"url":"https://patchwork.libcamera.org/api/1.1/series/5397/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=5397","date":"2025-08-21T13:41:36","name":"Fix stats related problems in software ISP","version":1,"mbox":"https://patchwork.libcamera.org/series/5397/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/24172/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/24172/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 05E73BEFBE\n\tfor <parsemail@patchwork.libcamera.org>;\n\tThu, 21 Aug 2025 13:42:03 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1BAE7692E7;\n\tThu, 21 Aug 2025 15:42:03 +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 AF67E692E6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tThu, 21 Aug 2025 15:42:00 +0200 (CEST)","from mx-prod-mc-08.mail-002.prod.us-west-2.aws.redhat.com\n\t(ec2-35-165-154-97.us-west-2.compute.amazonaws.com [35.165.154.97])\n\tby relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3,\n\tcipher=TLS_AES_256_GCM_SHA384) id us-mta-388-KdcMey6uO7Oat09s8gmaFQ-1;\n\tThu, 21 Aug 2025 09:41:57 -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-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTPS id B47681800359; Thu, 21 Aug 2025 13:41:56 +0000 (UTC)","from mzamazal-thinkpadp1gen7.tpbc.com (unknown [10.45.224.162])\n\tby mx-prod-int-08.mail-002.prod.us-west-2.aws.redhat.com (Postfix)\n\twith ESMTP id 1B332180047F; Thu, 21 Aug 2025 13:41:54 +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=\"MjdajqiJ\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1755783719;\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=wpChjG77ZHEUeywoW7E5UEvUmsBXgEoU1mM9xlPYWpk=;\n\tb=MjdajqiJNxthoNZDjfYApZDttRWiMpwLie9KB21OKZonhD2qYJeDO9XUHvHCn3iP6NsTa1\n\tsNJlJxkwX8Hfshv8PfdHmUCKTvPEsElzS/n5G394dQh6wpzPbs5qKWhMpM911xDmOvGqAu\n\tszAZek+eLAWOd7zl91GW8kbSVqnRPWU=","X-MC-Unique":"KdcMey6uO7Oat09s8gmaFQ-1","X-Mimecast-MFC-AGG-ID":"KdcMey6uO7Oat09s8gmaFQ_1755783716","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","Subject":"[PATCH 3/5] libcamera: software_isp: Check processed window size\n\talignment","Date":"Thu, 21 Aug 2025 15:41:39 +0200","Message-ID":"<20250821134141.83236-4-mzamazal@redhat.com>","In-Reply-To":"<20250821134141.83236-1-mzamazal@redhat.com>","References":"<20250821134141.83236-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":"iIzTYZ8ryxzHepz-cmEcsAkYyg_IK8wBv73GuM3OsS8_1755783716","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 window of the image that should be debayered must be aligned to the\nbayer pattern size.  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\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":["3/5"]}