From patchwork Fri Oct 23 10:58:17 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jai Luthra X-Patchwork-Id: 28579 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 9F123C324C for ; Fri, 23 Oct 2026 10:59:32 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 579FE68FAE; Fri, 23 Oct 2026 12:59:32 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="SO/X/QwN"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 1850A68FA6 for ; Fri, 23 Oct 2026 12:59:31 +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 CDF271C9B; Fri, 23 Oct 2026 12:57:21 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1792753042; bh=sWUDQC26jbLGjRAViEgRgaphlD08yxVgFHCFCkd5uew=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=SO/X/QwNwCmWccukAjYPw8hpcOVxC1uIkuxhBrS1ZK4JnUWXxKqXLmo1PWhwON0YA q3E9MEFYSTRVN93C8e7dPCoVt5RnefUdGXoaRMon/tcnADnKRLJKBxBr/7x90QjS9h xv95Dz5SN9P0MlUxUU+F6qLbcbGkHosJHSa8UMPA= From: Jai Luthra Date: Fri, 23 Oct 2026 16:28:17 +0530 Subject: [PATCH WIP RFC 09/26] libcamera: camera_sensor_raw: Enumerate formats using sink pads MIME-Version: 1.0 Message-Id: <20261023-b4-raw-model-v1-9-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=1326; i=jai.luthra@ideasonboard.com; h=from:subject:message-id; bh=sWUDQC26jbLGjRAViEgRgaphlD08yxVgFHCFCkd5uew=; b=owEBbQKS/ZANAwAKAUPekfkkmnFFAcsmYgBq2z3LCYkM960/XjgDpCPXY7RMPbyLbvpcvmPC/ 1+Nm8mDZpSJAjMEAAEKAB0WIQRN4NgY5dV16NRar8VD3pH5JJpxRQUCats9ywAKCRBD3pH5JJpx RWZaEADMaZK8VKnitJM+ebrAMyJwTzivxgHD1L4RUazmOGygweMmunWdNe9ns+ODUp9wx2cic4X yUGXeVyGHrYwSFojygybUGbM6jAkPqBTPXJRFfhKStc3vuK4H0H7rdz7KC3pMgAJ4Uov8Wj/l+d uoxNKOwC3c6xZUghfr8JUSY9kWEqeZfol7ZUr8EU+Zs+GNCrkNOvJfp4nusjl8Us5NdiqYpE4if Wb7Qj8FK9W+XTGriBoR1DkRTHwEsSPaJ9cWnO6QOBGxJd9QPtFk0KPSjAP1W3MOwooFT0nJs9o0 wJd/qmWLhik2cT7VyqLgs+UHoWzSwBmnaRVHK8cozzMjes9Q9EzY2T+YT3D8oRP1US/n46UrP1k kTfT9KtkMzUy5SWnhaQnmZmxueJY3tD68UyjH4acyKCE4Z+K1OI4jn9frnRphU/AD/BFbIl8j3+ ZFCZWP41QNinGsjwJ9XSaWqaA7EBZtZDNN6TEEsT6MXA79Y27GB9syTJx9mfEYF1LRTDMr/wZGb OFBLZWLYIzC1FL8mClgdaQdKwLIeh7PhkbQ2UTV9kkC+RJJUYVFKTso8skgPT1bdtNjDG91VlRF 6acLnL2EDOkCn/pVH/bl897+D+Xr4W2dCZdhTFIaR0Jpj9oXbgfkQ9DUGcKx1yj+9QtFYCA+9hl 2DHFZkLwVUOcs6Q== 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" The sensor may enumerate multiple formats when queried for a source pad/stream, as it can pad or sometimes truncate the data before putting it on the bus. But it is guaranteed to enumerate a single format (native size) on the internal pad. Use that to figure out the identify the type of a stream, as it is cleaner. Signed-off-by: Jai Luthra --- src/libcamera/sensor/camera_sensor_raw.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcamera/sensor/camera_sensor_raw.cpp b/src/libcamera/sensor/camera_sensor_raw.cpp index b7ac9d90f523..29ea9406ad0d 100644 --- a/src/libcamera/sensor/camera_sensor_raw.cpp +++ b/src/libcamera/sensor/camera_sensor_raw.cpp @@ -276,7 +276,7 @@ std::optional CameraSensorRaw::init() } /* Identify the stream type based on the supported formats. */ - V4L2Subdevice::Formats formats = subdev_->formats(route.source); + V4L2Subdevice::Formats formats = subdev_->formats(route.sink); std::optional type; @@ -291,7 +291,7 @@ std::optional CameraSensorRaw::init() if (!type) { LOG(CameraSensor, Warning) - << "No known format on pad " << route.source; + << "No known format on pad " << route.sink; continue; }