From patchwork Fri Oct 23 10:58:15 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jai Luthra X-Patchwork-Id: 28577 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 7559CC324C for ; Fri, 23 Oct 2026 10:59:22 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 3172168FB6; Fri, 23 Oct 2026 12:59:22 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (1024-bit key; unprotected) header.d=ideasonboard.com header.i=@ideasonboard.com header.b="VZOUN3Ql"; dkim-atps=neutral Received: from perceval.ideasonboard.com (perceval.ideasonboard.com [213.167.242.64]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 492A868FA6 for ; Fri, 23 Oct 2026 12:59:20 +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 10E4612B2; Fri, 23 Oct 2026 12:57:10 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com; s=mail; t=1792753031; bh=DVgmyCD1U0ItVkBVLQE0ZFxQAfsouLvl3bv/NyrmOuo=; h=From:Date:Subject:References:In-Reply-To:To:Cc:From; b=VZOUN3QlJ4OHcoQR0yaSsldtbXKQDirpaDWXQtAplTr7ll810Ra3dZZ8AGb+GLOJx rhgNFBAlqgzCsU7Jb/znzzQZQliqDbo9c0QzCBEbsmfiIUvxrda7+CCcmz7JAV3DCr GtzGy+hh9HkLEzI5uutHapneHxnRZHKmknIqGH0A= From: Jai Luthra Date: Fri, 23 Oct 2026 16:28:15 +0530 Subject: [PATCH WIP RFC 07/26] libcamera: Drop MediaBusFormatInfo::Type::EmbeddedData MIME-Version: 1.0 Message-Id: <20261023-b4-raw-model-v1-7-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=2432; i=jai.luthra@ideasonboard.com; h=from:subject:message-id; bh=DVgmyCD1U0ItVkBVLQE0ZFxQAfsouLvl3bv/NyrmOuo=; b=owEBbQKS/ZANAwAKAUPekfkkmnFFAcsmYgBq2z3JR0oFUW5euxQFmS3uppdLj794fAGVNE3rq 344239Kq7yJAjMEAAEKAB0WIQRN4NgY5dV16NRar8VD3pH5JJpxRQUCats9yQAKCRBD3pH5JJpx RUxVD/9LZD2F/4yhJDNGR68hb+99Z0+EpUhMd2UgVRbWS4w5aRsHTleu5kMChcl8n0h3c9mAuFp OPEy/jUkKjMHShvbFgBfuUFlhq13PKgfGhLHqQODUsNLy56u5mWMVKPFmL/KDjUkFtnKFBDZ2hc q+kqI2Tm3L7qV4erJ/Ck5HCOz69AdyRJqxrRNR8/bjZ3Ww2xiyTGy1m91DAt4wUybIgDm59sBgZ Ggw+Nl32rJJ+QskymDoLAtiERJVa8wgsXu2JKfbRFLP2OcLUl3xNkCthURNcS5xOcR1K9FA056J lgKRU3URT6wSx+jzhnf2wnc4zIGne5yRCABQO4anRs2lFxUsbQasneeWniY+mGc1aAxcDonOyAG B+6S7M9SMEacRBTZfxJPBCA6nFi9A98At4WwT2Kn1QtF7h1zMNRAhUOrDjC2reIBrGc9RSCp6uY 2w1/HNIGxTQwlpxAys9DqbXl1za9FBA2UDP7Q99Rknh73+XmM7VCksFUIlKCcSBLLukkvhmEHsv yBivI/i+KMFNT//QYBSNCGfP8Ph13vv3u88n1d+LEdthxs7VXGsZANqq8S1dismbtdZfHdA3vt3 13oK+2xdxuz+QkoWosi9bj1UMpmD/7D+/8NKM8jUalYdL30kUW7ZE+XfK1DDXRp1YK/SyXPBrzt b0rtKt4/F40JtHg== 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 layout used by the sensor for the sensor registers or other metadata transmitted through the embedded line is advertised through the new V4L2_CID_METADATA_LAYOUT control, as opposed to being tied the mbus code advertised by the sensor on the sink pad. So drop the Type:EmbeddedData from the enum. Also drop the check for it in the CameraSensorRaw class. Signed-off-by: Jai Luthra --- include/libcamera/internal/v4l2_subdevice.h | 1 - src/libcamera/sensor/camera_sensor_raw.cpp | 13 ------------- src/libcamera/v4l2_subdevice.cpp | 3 --- 3 files changed, 17 deletions(-) diff --git a/include/libcamera/internal/v4l2_subdevice.h b/include/libcamera/internal/v4l2_subdevice.h index 93003ccf3532..510963aea668 100644 --- a/include/libcamera/internal/v4l2_subdevice.h +++ b/include/libcamera/internal/v4l2_subdevice.h @@ -37,7 +37,6 @@ public: enum class Type { Image, Metadata, - EmbeddedData, }; bool isValid() const { return code != 0; } diff --git a/src/libcamera/sensor/camera_sensor_raw.cpp b/src/libcamera/sensor/camera_sensor_raw.cpp index 75479813c533..59799a1c150c 100644 --- a/src/libcamera/sensor/camera_sensor_raw.cpp +++ b/src/libcamera/sensor/camera_sensor_raw.cpp @@ -311,19 +311,6 @@ std::optional CameraSensorRaw::init() break; case MediaBusFormatInfo::Type::Metadata: - /* - * Skip metadata streams that are not sensor embedded - * data. The source stream reports a generic metadata - * format, check the sink stream for the exact format. - */ - formats = subdev_->formats(route.sink); - if (formats.size() != 1) - continue; - - if (MediaBusFormatInfo::info(formats.cbegin()->first).type != - MediaBusFormatInfo::Type::EmbeddedData) - continue; - if (streams_.edata) { LOG(CameraSensor, Error) << "Multiple internal embedded data streams (" diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp index db5eab9a709d..36f17e23da8e 100644 --- a/src/libcamera/v4l2_subdevice.cpp +++ b/src/libcamera/v4l2_subdevice.cpp @@ -81,9 +81,6 @@ LOG_DECLARE_CATEGORY(V4L2) * * \var MediaBusFormatInfo::Type::Metadata * \brief The format describes generic metadata - * - * \var MediaBusFormatInfo::Type::EmbeddedData - * \brief The format describes sensor embedded data */ namespace {