[{"id":37138,"web_url":"https://patchwork.libcamera.org/comment/37138/","msgid":"<1836409c-f84e-456c-821f-4890ee9d1995@ideasonboard.com>","date":"2025-12-01T12:20:01","subject":"Re: [PATCH v2 14/22] libcamera: software_isp: Move\n\tisStandardBayerOrder to base class","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"Hi\n\n2025. 11. 27. 3:22 keltezéssel, Bryan O'Donoghue írta:\n> isStandardBayerOrder is useful to both CPU and GPU debayer logic and\n> reusable as-is for both.\n> \n> Move to shared location in base class.\n> \n> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n> Reviewed-by: Milan Zamazal <mzamazal@redhat.com>\n> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n> ---\n>   src/libcamera/software_isp/debayer.cpp     | 10 ++++++++++\n>   src/libcamera/software_isp/debayer.h       |  2 ++\n>   src/libcamera/software_isp/debayer_cpu.cpp |  6 ------\n>   3 files changed, 12 insertions(+), 6 deletions(-)\n> \n> diff --git a/src/libcamera/software_isp/debayer.cpp b/src/libcamera/software_isp/debayer.cpp\n> index 158128f30..1d135b278 100644\n> --- a/src/libcamera/software_isp/debayer.cpp\n> +++ b/src/libcamera/software_isp/debayer.cpp\n> @@ -379,4 +379,14 @@ void Debayer::dmaSyncBegin(std::vector<DmaSyncer> &dmaSyncers, FrameBuffer *inpu\n>   \t}\n>   }\n>   \n> +/**\n> + * \\fn void Debayer::isStandardBayerOrder(BayerFormat::Order order)\n> + * \\brief Common method to validate standard 2x2 Bayer pattern of 2 Green, 1 Blue, 1 Red pixels.\n> + */\n> +bool Debayer::isStandardBayerOrder(BayerFormat::Order order)\n> +{\n> +\treturn order == BayerFormat::BGGR || order == BayerFormat::GBRG ||\n> +\t       order == BayerFormat::GRBG || order == BayerFormat::RGGB;\n> +}\n> +\n>   } /* namespace libcamera */\n> diff --git a/src/libcamera/software_isp/debayer.h b/src/libcamera/software_isp/debayer.h\n> index d2893d81b..451c1c9ac 100644\n> --- a/src/libcamera/software_isp/debayer.h\n> +++ b/src/libcamera/software_isp/debayer.h\n> @@ -20,6 +20,7 @@\n>   #include <libcamera/geometry.h>\n>   #include <libcamera/stream.h>\n>   \n> +#include \"libcamera/internal/bayer_format.h\"\n>   #include \"libcamera/internal/dma_buf_allocator.h\"\n>   #include \"libcamera/internal/global_configuration.h\"\n>   #include \"libcamera/internal/software_isp/benchmark.h\"\n> @@ -88,6 +89,7 @@ private:\n>   protected:\n>   \tvoid setParams(DebayerParams &params);\n>   \tvoid dmaSyncBegin(std::vector<DmaSyncer> &dmaSyncers, FrameBuffer *input, FrameBuffer *output);\n> +\tbool isStandardBayerOrder(BayerFormat::Order order);\n\nThis does not need to be a member function, so at least make it `static`.\n\n\nRegards,\nBarnabás Pőcze\n\n\n>   };\n>   \n>   } /* namespace libcamera */\n> diff --git a/src/libcamera/software_isp/debayer_cpu.cpp b/src/libcamera/software_isp/debayer_cpu.cpp\n> index 8f1b4e53d..00738c56b 100644\n> --- a/src/libcamera/software_isp/debayer_cpu.cpp\n> +++ b/src/libcamera/software_isp/debayer_cpu.cpp\n> @@ -288,12 +288,6 @@ void DebayerCpu::debayer10P_RGRG_BGR888(uint8_t *dst, const uint8_t *src[])\n>   \t}\n>   }\n>   \n> -static bool isStandardBayerOrder(BayerFormat::Order order)\n> -{\n> -\treturn order == BayerFormat::BGGR || order == BayerFormat::GBRG ||\n> -\t       order == BayerFormat::GRBG || order == BayerFormat::RGGB;\n> -}\n> -\n>   /*\n>    * Setup the Debayer object according to the passed in parameters.\n>    * Return 0 on success, a negative errno value on failure","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 A85B3C0F1B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  1 Dec 2025 12:20:07 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 12C2160B2C;\n\tMon,  1 Dec 2025 13:20:07 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2A1EE60A7B\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon,  1 Dec 2025 13:20:05 +0100 (CET)","from [192.168.33.24] (185.182.214.104.nat.pool.zt.hu\n\t[185.182.214.104])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 9D28DB3;\n\tMon,  1 Dec 2025 13:17:51 +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=\"ahQPp32i\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1764591472;\n\tbh=B4sO4tTpTP99RdJ+SesOQobKuSkPHSTcAvEPZDH/omk=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=ahQPp32igEBzw6e5X5hHAzUUA3c1+VUslNh1WBFuxKlIWF+jHuQLlM7DgX5uFPZ0u\n\tcmMHPXUsN9+8Y+EVczOtCcqdT5W9JqhmVfCd0ByLfL7q97dDEAl4v73ESdN68xfxmh\n\tjGEPmPIf6iVQRXWCHHt0JCBe0qwFmItwP3xWQM9M=","Message-ID":"<1836409c-f84e-456c-821f-4890ee9d1995@ideasonboard.com>","Date":"Mon, 1 Dec 2025 13:20:01 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 14/22] libcamera: software_isp: Move\n\tisStandardBayerOrder to base class","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"pavel@ucw.cz, Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tMilan Zamazal <mzamazal@redhat.com>","References":"<20251127022256.178929-1-bryan.odonoghue@linaro.org>\n\t<20251127022256.178929-15-bryan.odonoghue@linaro.org>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<20251127022256.178929-15-bryan.odonoghue@linaro.org>","Content-Type":"text/plain; charset=UTF-8; format=flowed","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>"}},{"id":37151,"web_url":"https://patchwork.libcamera.org/comment/37151/","msgid":"<c54fdb57-7317-40b9-a364-99e682b12daa@linaro.org>","date":"2025-12-01T23:00:48","subject":"Re: [PATCH v2 14/22] libcamera: software_isp: Move\n\tisStandardBayerOrder to base class","submitter":{"id":175,"url":"https://patchwork.libcamera.org/api/people/175/","name":"Bryan O'Donoghue","email":"bryan.odonoghue@linaro.org"},"content":"On 01/12/2025 12:20, Barnabás Pőcze wrote:\n> Hi\n> \n> 2025. 11. 27. 3:22 keltezéssel, Bryan O'Donoghue írta:\n>> isStandardBayerOrder is useful to both CPU and GPU debayer logic and\n>> reusable as-is for both.\n>>\n>> Move to shared location in base class.\n>>\n>> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>> Reviewed-by: Milan Zamazal <mzamazal@redhat.com>\n>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n>> ---\n>>   src/libcamera/software_isp/debayer.cpp     | 10 ++++++++++\n>>   src/libcamera/software_isp/debayer.h       |  2 ++\n>>   src/libcamera/software_isp/debayer_cpu.cpp |  6 ------\n>>   3 files changed, 12 insertions(+), 6 deletions(-)\n>>\n>> diff --git a/src/libcamera/software_isp/debayer.cpp b/src/libcamera/ \n>> software_isp/debayer.cpp\n>> index 158128f30..1d135b278 100644\n>> --- a/src/libcamera/software_isp/debayer.cpp\n>> +++ b/src/libcamera/software_isp/debayer.cpp\n>> @@ -379,4 +379,14 @@ void Debayer::dmaSyncBegin(std::vector<DmaSyncer> \n>> &dmaSyncers, FrameBuffer *inpu\n>>       }\n>>   }\n>> +/**\n>> + * \\fn void Debayer::isStandardBayerOrder(BayerFormat::Order order)\n>> + * \\brief Common method to validate standard 2x2 Bayer pattern of 2 \n>> Green, 1 Blue, 1 Red pixels.\n>> + */\n>> +bool Debayer::isStandardBayerOrder(BayerFormat::Order order)\n>> +{\n>> +    return order == BayerFormat::BGGR || order == BayerFormat::GBRG ||\n>> +           order == BayerFormat::GRBG || order == BayerFormat::RGGB;\n>> +}\n>> +\n>>   } /* namespace libcamera */\n>> diff --git a/src/libcamera/software_isp/debayer.h b/src/libcamera/ \n>> software_isp/debayer.h\n>> index d2893d81b..451c1c9ac 100644\n>> --- a/src/libcamera/software_isp/debayer.h\n>> +++ b/src/libcamera/software_isp/debayer.h\n>> @@ -20,6 +20,7 @@\n>>   #include <libcamera/geometry.h>\n>>   #include <libcamera/stream.h>\n>> +#include \"libcamera/internal/bayer_format.h\"\n>>   #include \"libcamera/internal/dma_buf_allocator.h\"\n>>   #include \"libcamera/internal/global_configuration.h\"\n>>   #include \"libcamera/internal/software_isp/benchmark.h\"\n>> @@ -88,6 +89,7 @@ private:\n>>   protected:\n>>       void setParams(DebayerParams &params);\n>>       void dmaSyncBegin(std::vector<DmaSyncer> &dmaSyncers, \n>> FrameBuffer *input, FrameBuffer *output);\n>> +    bool isStandardBayerOrder(BayerFormat::Order order);\n> \n> This does not need to be a member function, so at least make it `static`.\n\nlol\n\n[PATCH v4 02/23] libcamera: software_isp: Make isStandardBayerOrder static\n\nnp so\n\n---\nbod","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 9B240C3257\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon,  1 Dec 2025 23:00:54 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 8497260C72;\n\tTue,  2 Dec 2025 00:00:53 +0100 (CET)","from mail-wr1-x42f.google.com (mail-wr1-x42f.google.com\n\t[IPv6:2a00:1450:4864:20::42f])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6F163606E6\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Dec 2025 00:00:51 +0100 (CET)","by mail-wr1-x42f.google.com with SMTP id\n\tffacd0b85a97d-42e2d5e119fso1144446f8f.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 01 Dec 2025 15:00:51 -0800 (PST)","from [192.168.0.27] (188-141-3-146.dynamic.upc.ie. [188.141.3.146])\n\tby smtp.gmail.com with ESMTPSA id\n\tffacd0b85a97d-42e1c5c3c81sm29298864f8f.3.2025.12.01.15.00.49\n\t(version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128);\n\tMon, 01 Dec 2025 15:00:50 -0800 (PST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=linaro.org header.i=@linaro.org\n\theader.b=\"cXRJPs0h\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=linaro.org; s=google; t=1764630051; x=1765234851;\n\tdarn=lists.libcamera.org; \n\th=content-transfer-encoding:in-reply-to:content-language:from\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:from:to:cc:subject:date:message-id:reply-to;\n\tbh=6REF7eT82L8b6TwKJj3YSq0T3Lx2tnVyBkbBQlMSa+M=;\n\tb=cXRJPs0h5GX9Pr8wiTGEuv2OTr+uHPLsbDb2ZjaivS47bhmgz1LrWDYwL0dvTigd3d\n\tEScrq8k8cSHVCNyMwdwh5aU0XuG75UELg/7JxfWuPXdhY43ISPtmpd7v7/NhVFsujPKv\n\tdNb8AwW77+PUFDoqQ8G59rbzdZDrSJu6DlqklePvtbNYHLh++oRQviLwnHrwt03A7v6Q\n\twxVh8d39i0H7Lt5ZANvYTmKjORZQBAJwV2s8WRV8cNbbOLgDeKxvxWK8hIj+LolBKYCQ\n\tf/hPyUBn7Zf84WAkCP6kKgPJdww/772Z0/U9Iy4aGoIG9rP3PMtJihkvveL1qr4lzbHk\n\tT2sA==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1764630051; x=1765234851;\n\th=content-transfer-encoding:in-reply-to:content-language:from\n\t:references:cc:to:subject:user-agent:mime-version:date:message-id\n\t:x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id\n\t:reply-to;\n\tbh=6REF7eT82L8b6TwKJj3YSq0T3Lx2tnVyBkbBQlMSa+M=;\n\tb=C9maIHQhDIiXOvBdABFWYw2CePGc3oG1FW0amhkIvdZGZkb8BcWI5NxrUZKC7Saz+b\n\tW2t8Rucwy0zWQmflJo+l60AS5YfJWU+7X5IFDNGFIOFJrl9waCSgKOd/zGFlifwxNWuz\n\te/ndv50z2GlznRbGSpkyb+TjDK4NNr2mpdCEf9Qwha2Le0vupyw8L9kWfTKUMisUBptA\n\tqtrodi3xvanqCCqucvJecmTYu//ZvxF573ooQMZfSqRx62UUjXHnJEznVNJDPuL9PAnh\n\tPG8rtWNHtfvHt/WBAiTwEbbw0fC2xMaC8wp29oxMuufzWTxbscuNT9Sy6wgCy0/aQ3sO\n\tLE8A==","X-Forwarded-Encrypted":"i=1;\n\tAJvYcCUlj1ggFOyHlc3f9qISwMOU0OkDDA5y5uLVJK/mhTiKZ7fYYxeZccZm1eJklWWclFPedvt8ObEZbu6/1l/SPok=@lists.libcamera.org","X-Gm-Message-State":"AOJu0YyuEoFNT1+X6T2DF1XkR014k0IXa7AjEn+OlN+3EjqTE75k2bzb\n\t0Ak1DMvYdPvnmZ/eHkC5AaJqr9ky/IRiR0g6ATQA1elinsIKAuX22l+Hyd1AMFuVkVU=","X-Gm-Gg":"ASbGncuUsKcKz/8F+yAU2KaZYLls6le2dIySQuqEBKTkKJsAFA+DPo7D9veIdDQ1vKu\n\tvtJcJ5NbnJ46ublFheBLui0+Wjjh9paZ5FtYSDAE7ZT46XXNhf0sjOYoZery3zVQfW9vA/Je3qp\n\tSR8quxuQzF1dDVLrOPkXUXMBYeeiE9CLMz81LZoEHtNqqazdN0ceALWAnaMpcO1Mu1Tr0MMTvB8\n\t4ccBrJSPvr2CT1b1YOPb40zRmXN6toINKco1dKMWVDhV8Vc+1Fpe4AUUUndtTmqQ/IdRgtiYEFU\n\t2uO8X4/waNO8dm61+iszqebWVOpkRspjxmaq4N3XtM/KCpEvDEOcuJZwGpikZAvhmbUAj/qVwyc\n\tSjSn7KyIhX9um/Ez0uGjo+lLXvZs3O0m8cexyRQCOp8evB5URIpQK53299xaSuVgpBOBMNylA4d\n\toUKx8X0jhJiUrqooDbvGZSd+k6TQl0LMUw9FBsFWXRwruNotFgRPoD","X-Google-Smtp-Source":"AGHT+IGo1D8jyVJUtBQ4cCQut3K7xLmpxbt+GuTRgEQ6p4wvB5CZsgvzgl394V3dwG9u9uIeIt1irQ==","X-Received":"by 2002:adf:8bcf:0:b0:42b:3806:2ba0 with SMTP id\n\tffacd0b85a97d-42cc1ab887fmr30988946f8f.2.1764630050797; \n\tMon, 01 Dec 2025 15:00:50 -0800 (PST)","Message-ID":"<c54fdb57-7317-40b9-a364-99e682b12daa@linaro.org>","Date":"Mon, 1 Dec 2025 23:00:48 +0000","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 14/22] libcamera: software_isp: Move\n\tisStandardBayerOrder to base class","To":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"pavel@ucw.cz, Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tMilan Zamazal <mzamazal@redhat.com>","References":"<20251127022256.178929-1-bryan.odonoghue@linaro.org>\n\t<20251127022256.178929-15-bryan.odonoghue@linaro.org>\n\t<1836409c-f84e-456c-821f-4890ee9d1995@ideasonboard.com>","From":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Content-Language":"en-US","In-Reply-To":"<1836409c-f84e-456c-821f-4890ee9d1995@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","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>"}},{"id":37154,"web_url":"https://patchwork.libcamera.org/comment/37154/","msgid":"<2ea20ab6-a648-4b38-a1f1-2868a369e033@ideasonboard.com>","date":"2025-12-02T08:04:14","subject":"Re: [PATCH v2 14/22] libcamera: software_isp: Move\n\tisStandardBayerOrder to base class","submitter":{"id":216,"url":"https://patchwork.libcamera.org/api/people/216/","name":"Barnabás Pőcze","email":"barnabas.pocze@ideasonboard.com"},"content":"2025. 12. 02. 0:00 keltezéssel, Bryan O'Donoghue írta:\n> On 01/12/2025 12:20, Barnabás Pőcze wrote:\n>> Hi\n>>\n>> 2025. 11. 27. 3:22 keltezéssel, Bryan O'Donoghue írta:\n>>> isStandardBayerOrder is useful to both CPU and GPU debayer logic and\n>>> reusable as-is for both.\n>>>\n>>> Move to shared location in base class.\n>>>\n>>> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>\n>>> Reviewed-by: Milan Zamazal <mzamazal@redhat.com>\n>>> Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>\n>>> ---\n>>>   src/libcamera/software_isp/debayer.cpp     | 10 ++++++++++\n>>>   src/libcamera/software_isp/debayer.h       |  2 ++\n>>>   src/libcamera/software_isp/debayer_cpu.cpp |  6 ------\n>>>   3 files changed, 12 insertions(+), 6 deletions(-)\n>>>\n>>> diff --git a/src/libcamera/software_isp/debayer.cpp b/src/libcamera/ software_isp/debayer.cpp\n>>> index 158128f30..1d135b278 100644\n>>> --- a/src/libcamera/software_isp/debayer.cpp\n>>> +++ b/src/libcamera/software_isp/debayer.cpp\n>>> @@ -379,4 +379,14 @@ void Debayer::dmaSyncBegin(std::vector<DmaSyncer> &dmaSyncers, FrameBuffer *inpu\n>>>       }\n>>>   }\n>>> +/**\n>>> + * \\fn void Debayer::isStandardBayerOrder(BayerFormat::Order order)\n>>> + * \\brief Common method to validate standard 2x2 Bayer pattern of 2 Green, 1 Blue, 1 Red pixels.\n>>> + */\n>>> +bool Debayer::isStandardBayerOrder(BayerFormat::Order order)\n>>> +{\n>>> +    return order == BayerFormat::BGGR || order == BayerFormat::GBRG ||\n>>> +           order == BayerFormat::GRBG || order == BayerFormat::RGGB;\n>>> +}\n>>> +\n>>>   } /* namespace libcamera */\n>>> diff --git a/src/libcamera/software_isp/debayer.h b/src/libcamera/ software_isp/debayer.h\n>>> index d2893d81b..451c1c9ac 100644\n>>> --- a/src/libcamera/software_isp/debayer.h\n>>> +++ b/src/libcamera/software_isp/debayer.h\n>>> @@ -20,6 +20,7 @@\n>>>   #include <libcamera/geometry.h>\n>>>   #include <libcamera/stream.h>\n>>> +#include \"libcamera/internal/bayer_format.h\"\n>>>   #include \"libcamera/internal/dma_buf_allocator.h\"\n>>>   #include \"libcamera/internal/global_configuration.h\"\n>>>   #include \"libcamera/internal/software_isp/benchmark.h\"\n>>> @@ -88,6 +89,7 @@ private:\n>>>   protected:\n>>>       void setParams(DebayerParams &params);\n>>>       void dmaSyncBegin(std::vector<DmaSyncer> &dmaSyncers, FrameBuffer *input, FrameBuffer *output);\n>>> +    bool isStandardBayerOrder(BayerFormat::Order order);\n>>\n>> This does not need to be a member function, so at least make it `static`.\n> \n> lol\n> \n> [PATCH v4 02/23] libcamera: software_isp: Make isStandardBayerOrder static\n\nOops, I didn't notice that. In any case I think it probably make sense to squash it into this change.\n\n\n> \n> np so\n> \n> ---\n> bod","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 4FBD7BD80A\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue,  2 Dec 2025 08:04:22 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 1E1A960C71;\n\tTue,  2 Dec 2025 09:04:21 +0100 (CET)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id D548F609E0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue,  2 Dec 2025 09:04:19 +0100 (CET)","from [192.168.33.23] (185.182.214.104.nat.pool.zt.hu\n\t[185.182.214.104])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id DB6E11D50;\n\tTue,  2 Dec 2025 09:02:04 +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=\"NyEX9pFe\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1764662525;\n\tbh=YikXCG1gnWH5KAoGkeK/1nus1qe6gft5ZnImrhPvNK8=;\n\th=Date:Subject:To:Cc:References:From:In-Reply-To:From;\n\tb=NyEX9pFeRk6oMEVBWu6MbH5msD91DFJWM03xSa0iLI+RDCoYJySbbtU4j08oaAER3\n\tnnAn1GjDW71NTvBNZBTlL71ljALJ9Gv4+7pv8NhFsPOQp243a3oYf0NMzdfpADV4vQ\n\t/zryl/7N6TzMqU7pf5x18YzT/UiV9aJjSm63YX4Y=","Message-ID":"<2ea20ab6-a648-4b38-a1f1-2868a369e033@ideasonboard.com>","Date":"Tue, 2 Dec 2025 09:04:14 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v2 14/22] libcamera: software_isp: Move\n\tisStandardBayerOrder to base class","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>,\n\tlibcamera-devel@lists.libcamera.org","Cc":"pavel@ucw.cz, Kieran Bingham <kieran.bingham@ideasonboard.com>,\n\tMilan Zamazal <mzamazal@redhat.com>","References":"<20251127022256.178929-1-bryan.odonoghue@linaro.org>\n\t<20251127022256.178929-15-bryan.odonoghue@linaro.org>\n\t<1836409c-f84e-456c-821f-4890ee9d1995@ideasonboard.com>\n\t<c54fdb57-7317-40b9-a364-99e682b12daa@linaro.org>","From":"=?utf-8?q?Barnab=C3=A1s_P=C5=91cze?= <barnabas.pocze@ideasonboard.com>","Content-Language":"en-US, hu-HU","In-Reply-To":"<c54fdb57-7317-40b9-a364-99e682b12daa@linaro.org>","Content-Type":"text/plain; charset=UTF-8; format=flowed","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>"}}]