From patchwork Fri Oct 23 10:58:28 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jai Luthra X-Patchwork-Id: 28590 Return-Path: X-Original-To: parsemail@patchwork.libcamera.org Delivered-To: parsemail@patchwork.libcamera.org Received: from lancelot.ideasonboard.com (lancelot.ideasonboard.com [92.243.16.209]) by patchwork.libcamera.org (Postfix) with ESMTPS id D9D95C324C for ; Fri, 23 Oct 2026 11:00:35 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 8BE9168FEA; Fri, 23 Oct 2026 13:00:35 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="mDIVTkX/"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id A0B6068FD7 for ; Fri, 23 Oct 2026 13:00:33 +0200 (CEST) Received: from mail.ideasonboard.com (unknown [IPv6:2401:4900:1c30:59f6:be2b:2877:6bc4:392]) by perceval.ideasonboard.com (Postfix) with ESMTPSA id 6464D1E4; Fri, 23 Oct 2026 12:58:24 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1792753104; bh=lSGdpBhMtCC4W4mXO09O2Y4Fm/FYUv82i6AUrMs5dJ8=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=mDIVTkX/gUNTT+jyXTbqdrK+SBkMYHa8PnZVgvHtY+Bk7J3m4owOaLIuNONGFHNxg 4knQVgBotKj6qU6ZQGLyar7vEcfp92o0Glkmw7k4JvskiOAAQHvZkcvSrOxUPhEcYq wac+GcnznlGAYYBuZRPJh55ywmAT9LZ4L1hgjjVs= From: Jai Luthra Date: Fri, 23 Oct 2026 16:28:28 +0530 Subject: [PATCH WIP RFC 20/26] pipeline: rpi: Use CameraSensor::isMono() helper MIME-Version: 1.0 Message-Id: <20261023-b4-raw-model-v1-20-eadb9948901b@ideasonboard.com> References: <20261023-b4-raw-model-v1-0-eadb9948901b@ideasonboard.com> In-Reply-To: <20261023-b4-raw-model-v1-0-eadb9948901b@ideasonboard.com> To: libcamera-devel@lists.libcamera.org Cc: Laurent Pinchart , Kieran Bingham , Sakari Ailus , Naushir Patuck , Jai Luthra X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1500; i=jai.luthra@ideasonboard.com; h=from:subject:message-id; bh=lSGdpBhMtCC4W4mXO09O2Y4Fm/FYUv82i6AUrMs5dJ8=; b=owEBbQKS/ZANAwAKAUPekfkkmnFFAcsmYgBq2z3W6gcOItdt10tmJoHQeKz1yDNugDOdfzXd3 48Mb1whS1+JAjMEAAEKAB0WIQRN4NgY5dV16NRar8VD3pH5JJpxRQUCats91gAKCRBD3pH5JJpx RdnxEACNi50GtSCtirLBfZEMeB8rBdk6j0D9qitEeNlu0BQrVhmKdbZdO1vDALVrMpmZ4pDrTDc 384oVaqzuq3qr2PHmrdrffv0GTSAQYBGtTFpJnr/qU27r6CicP37+6ZGVFkvMLjG9V/70iDLHNc r8sWb182yUfeJB4xRJzslCEIQh9Zpjl6lDfaos4rUFAhRUWbyFRvtTSR2gqk0Pc2X4vnrlbDfkM 9pLFGYskTLXfCIc1HkocioZzbzXHlK1WNcvBNVNFozUSn2cWW/cR5Ng0aoUd4EhvJ/R8rfAe7KA SC6FhDJRc7ranzpTl042ClGAytI+cM3Oc2XAWsJOP00WhwxH7dyNt1wiCRm84zNvQ25iy+k0RIv 5H2N0q+g7L1qnerZjK8HkgGvbxSX200ivvoh7PXx+0Bf7HUVQTZJkxuz6za/EcExWWUjIO5EOeW lAgeNA0PJbZYd4Z0/Eouca8YK8I/lld6JTekRJtvIBnUm5FusDuYv4evKUoX5AFhD9p42TiIbQI oBO8wlqOkHtVBsIEnD/MBuDslKeug/r6b7Ui/p2xNTbo4DJK0ioLQ30I5pxpvYRPqQgmtX06OzP H1wZnDZpcTfxBgpeEEspKlIYlMn7gnTZkXPgGzrs8j5AEY5SZwWF9CbfWferOdk+KtAUAURS0bb cmF0u9a+CYSa0Zw== X-Developer-Key: i=jai.luthra@ideasonboard.com; a=openpgp; fpr=4DE0D818E5D575E8D45AAFC543DE91F9249A7145 X-BeenThere: libcamera-devel@lists.libcamera.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" With the raw sensor model in place, the media bus codes may no longer indicate the bayer order or if the pixel data is monochrome. Rely on the newly introduced CameraSensor::isMono() helper instead. Signed-off-by: Jai Luthra --- src/libcamera/pipeline/rpi/common/pipeline_base.cpp | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp index 7ea48f62cc3d..435f460bbf8c 100644 --- a/src/libcamera/pipeline/rpi/common/pipeline_base.cpp +++ b/src/libcamera/pipeline/rpi/common/pipeline_base.cpp @@ -71,14 +71,6 @@ mbusCodeToPixelFormat(unsigned int code, BayerFormat::Packing packingReq) return pix; } -bool isMonoSensor(std::unique_ptr &sensor) -{ - unsigned int mbusCode = sensor->mbusCodes()[0]; - const BayerFormat &bayer = BayerFormat::fromMbusCode(mbusCode); - - return bayer.cfa.order == ColorFilterArray::Order::MONO; -} - const std::vector validColorSpaces = { ColorSpace::Sycc, ColorSpace::Smpte170m, @@ -1190,7 +1182,7 @@ int CameraData::loadIPA(ipa::RPi::InitResult *result) /* The configuration (tuning file) is made from the sensor name. */ std::string model = sensor_->model(); - if (isMonoSensor(sensor_)) + if (sensor_->isMono()) model += "_mono"; std::string configurationFile = ipa_->configurationFile(model + ".json");