[{"id":34482,"web_url":"https://patchwork.libcamera.org/comment/34482/","msgid":"<85o6unk0n5.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","date":"2025-06-16T18:21:50","subject":"Re: [PATCH 11/35] libcamera: software_isp: Move\n\tisStandardBayerOrder to base class","submitter":{"id":177,"url":"https://patchwork.libcamera.org/api/people/177/","name":"Milan Zamazal","email":"mzamazal@redhat.com"},"content":"Hi Bryan,\n\nBryan O'Donoghue <bryan.odonoghue@linaro.org> writes:\n\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> 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>  src/libcamera/software_isp/debayer_cpu.h   |  1 -\n>  4 files changed, 12 insertions(+), 7 deletions(-)\n>\n> diff --git a/src/libcamera/software_isp/debayer.cpp b/src/libcamera/software_isp/debayer.cpp\n> index 75e4bffa..d0e17d20 100644\n> --- a/src/libcamera/software_isp/debayer.cpp\n> +++ b/src/libcamera/software_isp/debayer.cpp\n> @@ -227,4 +227,14 @@ void Debayer::dmaSyncBegin(std::vector<DmaSyncer> &dmaSyncers, FrameBuffer *inpu\n>  \t\tdmaSyncers.emplace_back(plane.fd, DmaSyncer::SyncType::Write);\n>  }\n>  \n> +/**\n> + * \\fn void Debayer::isStandardBayerOrder(BayerFormat::Order order)\n> + * \\brief Common method to validate standard Bayer order\n\nWhen adding this, it might be useful to explain what \"standard Bayer\norder\" is.\n\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 0af66b55..214bcdd3 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/software_isp/benchmark.h\"\n>  #include \"libcamera/internal/software_isp/debayer_params.h\"\n> @@ -87,6 +88,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>  };\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 4ef573a3..e5649284 100644\n> --- a/src/libcamera/software_isp/debayer_cpu.cpp\n> +++ b/src/libcamera/software_isp/debayer_cpu.cpp\n> @@ -282,12 +282,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\n> diff --git a/src/libcamera/software_isp/debayer_cpu.h b/src/libcamera/software_isp/debayer_cpu.h\n> index 0b4b16e1..a043a954 100644\n> --- a/src/libcamera/software_isp/debayer_cpu.h\n> +++ b/src/libcamera/software_isp/debayer_cpu.h\n> @@ -17,7 +17,6 @@\n>  \n>  #include <libcamera/base/object.h>\n>  \n> -#include \"libcamera/internal/bayer_format.h\"\n>  #include \"libcamera/internal/software_isp/swstats_cpu.h\"\n>  \n>  #include \"debayer.h\"","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 1D3B9BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tMon, 16 Jun 2025 18:22:00 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 48F7068DCF;\n\tMon, 16 Jun 2025 20:21:59 +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 4BF1668DC0\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Jun 2025 20:21:57 +0200 (CEST)","from mail-wm1-f70.google.com (mail-wm1-f70.google.com\n\t[209.85.128.70]) by relay.mimecast.com with ESMTP with STARTTLS\n\t(version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id\n\tus-mta-262-wYms0m37OcSnjIcKgiO0Sw-1; Mon, 16 Jun 2025 14:21:54 -0400","by mail-wm1-f70.google.com with SMTP id\n\t5b1f17b1804b1-45311704d22so31701695e9.2\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tMon, 16 Jun 2025 11:21:54 -0700 (PDT)","from mzamazal-thinkpadp1gen7.tpbc.csb\n\t(ip-77-48-47-2.net.vodafone.cz. [77.48.47.2])\n\tby smtp.gmail.com with ESMTPSA id\n\t5b1f17b1804b1-4532e244392sm151506925e9.22.2025.06.16.11.21.51\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tMon, 16 Jun 2025 11:21:52 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=redhat.com header.i=@redhat.com\n\theader.b=\"HGRSgetw\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com;\n\ts=mimecast20190719; t=1750098116;\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\tin-reply-to:in-reply-to:references:references;\n\tbh=sOVLIt76XXeHKMktf+O0w9rgFdyHeLferp2ATZKwuu4=;\n\tb=HGRSgetwJd5dSwtoaMcBtcK+I2sH9h3aWkif/0ussnwq3dauTRZM36LMoEDeJ+JjlZ/zDW\n\tZzQu9xAUHO7nwrwNZG4qHOlVGaYOk8yoNLmhTGiQlElYdrcQ3CHz9VbO+hDDvpMyyX7k1m\n\tp3nNclIBkVCswykhsvgjm6M/2ZRul24=","X-MC-Unique":"wYms0m37OcSnjIcKgiO0Sw-1","X-Mimecast-MFC-AGG-ID":"wYms0m37OcSnjIcKgiO0Sw_1750098114","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20230601; t=1750098113; x=1750702913;\n\th=mime-version:user-agent:message-id:date:references:in-reply-to\n\t:subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date\n\t:message-id:reply-to;\n\tbh=sOVLIt76XXeHKMktf+O0w9rgFdyHeLferp2ATZKwuu4=;\n\tb=NMyB8I2o0O298oqog1gGrwEv0K31pwQWvUQWsfCEezjVcj92/wy2UTp5vJ6sdCPvwd\n\tC3kAI0GwcL9alqr9YQOLETp4hnQ6YGqtiDl7yj+8qQcwALpJXnsnxscTNG41exH69pfB\n\tjoVEu7Zh+XE2TFUJargSRnzHkfgtosms8bckQumXvW30ODvIT5b9Eo0B8ofCV78BZMXB\n\tWYO92Xv4yx0V5vwOS+FK59t8RUrptd2Csz4bqxDDo05QHvWVeGU8rLmokUylHeDzwZ1D\n\tapwTDJbpjhqR9lXhAr8HqkdnHO+IbrJayySBUgL2PYRtBvGKZRXHSTum9hphA1XSVWlU\n\tZ4Fg==","X-Gm-Message-State":"AOJu0YwHL+V7t30YS7LsZM5sqLWPgcHDqLmVwsvmAT+P7NavMVqwBXjC\n\t8Vx/rfx+IZMY3K26pbIponFCvLoqMLKCOKxS3bb/sAUo2arFBLUTtWCj00jOS6kVTIH6Rk5+x6q\n\tpEXVfbMM4l/C8r1sECx61UiA8R/7M1TuNjbbtipdrA1GSc0PXZ8QPnBqvw3Bxvnj3MyzH9htEpA\n\tSjnwZueZrXCVZ/olqKFP+Cyg6Q/wWPpNmBNl5kuz/1Sa7jwP00rmYJW2Od4ik=","X-Gm-Gg":"ASbGncvzpMJewJJzI9l89FHnimiTnf17Kft9KeOdKEet6z/+aZZmgCVe5ucw5/38hBP\n\ty/5K82SmNOk/8Ig8MI5CLXtCzLO3xb1R6HMDr9mhyKjNvPmdnK/f0mGWIJK7sGcy4+nWu3na8vO\n\tcH3jUmsvXv8c5Pzs5ZWJIt1kamvi2DX/gNBtQeNw1yNYthcyIcqoyIzgwzuYtUvWmbaXUEMeRyB\n\toki/pX7StXD7aCSARvWbSlqijwzmaIuKAjWthWRePCnCy9a926E46MLEhVHP8nMnHxm9dtv3QZ8\n\tj76NQNg5ZEWfg4zqW04dNyGJkdiH3kPB9ELDE5/2CMo9AnjWwz+aTapKu8eQjj5Rbx0Dq+Ng/hs\n\t=","X-Received":["by 2002:a05:600c:1e27:b0:450:d568:909b with SMTP id\n\t5b1f17b1804b1-453430e5651mr72265575e9.14.1750098113223; \n\tMon, 16 Jun 2025 11:21:53 -0700 (PDT)","by 2002:a05:600c:1e27:b0:450:d568:909b with SMTP id\n\t5b1f17b1804b1-453430e5651mr72265445e9.14.1750098112832; \n\tMon, 16 Jun 2025 11:21:52 -0700 (PDT)"],"X-Google-Smtp-Source":"AGHT+IEcLg17fEa3frob8hKpWtqQnHBlM9Am6FNetaEeX6Pfm4/Y18lwIHYqn/U3duPApI8iEuFxdQ==","From":"Milan Zamazal <mzamazal@redhat.com>","To":"Bryan O'Donoghue <bryan.odonoghue@linaro.org>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH 11/35] libcamera: software_isp: Move\n\tisStandardBayerOrder to base class","In-Reply-To":"<20250611013245.133785-12-bryan.odonoghue@linaro.org> (Bryan\n\tO'Donoghue's message of \"Wed, 11 Jun 2025 02:32:21 +0100\")","References":"<20250611013245.133785-1-bryan.odonoghue@linaro.org>\n\t<20250611013245.133785-12-bryan.odonoghue@linaro.org>","Date":"Mon, 16 Jun 2025 20:21:50 +0200","Message-ID":"<85o6unk0n5.fsf@mzamazal-thinkpadp1gen7.tpbc.csb>","User-Agent":"Gnus/5.13 (Gnus v5.13)","MIME-Version":"1.0","X-Mimecast-Spam-Score":"0","X-Mimecast-MFC-PROC-ID":"LJAr3uZxJQ75BBFb2KbIC1PHkTVq2OqOaBw3gYyKqHg_1750098114","X-Mimecast-Originator":"redhat.com","Content-Type":"text/plain","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>"}}]