From patchwork Fri Oct 24 15:10:56 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Julien Vuillaumier X-Patchwork-Id: 24808 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 9658DBE080 for ; Fri, 24 Oct 2025 15:11:46 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id E74E960976; Fri, 24 Oct 2025 17:11:45 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="htoAka+i"; dkim-atps=neutral Received: from GVXPR05CU001.outbound.protection.outlook.com (mail-swedencentralazlp170130007.outbound.protection.outlook.com [IPv6:2a01:111:f403:c202::7]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id EF32860976 for ; Fri, 24 Oct 2025 17:11:43 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Id87uq19RiU8ODBR86AOTo5LsvYgqmkwQEWD+qPpxriFIt7MO8iinbyhyQCqGMOtsRqheIHdhlfnbZNT9BhA2xpfnncGd8hNCn84FgzMabU4L2iabS8jCho/v6ZLmaFUeiyi5gyqIdTG4J3F02Q1PCxwt4cSBLGK/yJ7PteXr+TcDWR92BMiySIfbd3uc18So3GVjhLr6++/KaRwy/oWn4g8h0bpuiy2UuhGQejPcWP0UzEf2xLB8nn2JLa7Tbo77WAteLuYpbat4YsDkLQamNdgkusSeYEUaGQ9GSjp6S792y5r/GLkg5pAhUXOZsWvH5YPLqDLpTI1j4/DsBGUmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=bvBDxBP5EnQaaW8oghUXpUtQ+6j3oIpTEls8L33sCzs=; b=sONUXn09CAunrYaKe4geU91W3/FaEaIfa01uj8iGtsSzA3GL8sP9yclu+lEYMizt7LPGrleCFB2E8JV3x1g4whbmt5dMLNkr4qKAC2Gyl5y55nXzEAuul30jbYU0TUB3Vb8xhdFAqqjX1izPde+TbEiO4hw1QWInMq0jqyp3g8kv4kqoM+KnLfY1n/e8VUsW7c0G9Pg6nvkKmfaLUChxYGG85SrNnpD2kgPHOp5U9vIrTQKa3Rg4dobJNZtRrgRjJZNY0wrEI5BwDww+b78SdDvWYPNHaOvfdv4W26WoWffRrRUm6AfMf37z11rAejwRCzF3SQYEz6QbPVwfUlv6mA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=bvBDxBP5EnQaaW8oghUXpUtQ+6j3oIpTEls8L33sCzs=; b=htoAka+iBjnoumf3Wy7T6s7kLwS+bKoOG2vTQliQyEzM5OUnbwKVFBv8V0E4YbW8IQewPzlFx5hTtLT5mRLk8g+DOPDn7BtOVTJvL7PWx6scfsVZ9vlIg1deQg33yMv+T8Tuq/rfDqSjbbHl/b6MUFlZWApv5bQfEkps6PMQCZ5Mop04IeGtzZeeh2BGHdl8qKIcMkHQQr0j/ltxIsYlAxUU2YNRpr3ue/ZnWGBCO8RQsTTPC2XXKZZsc4hYkMuKEyT/EIH8eV4NyxB3hR9yZAEo6q1udvgzV/n/VWy7y8xjOjwYmgAYoniX+xxZ/vG2iJo8w+CtFmddl0iFyYr/Ag== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from AM9PR04MB8147.eurprd04.prod.outlook.com (2603:10a6:20b:3e0::22) by VI0PR04MB11784.eurprd04.prod.outlook.com (2603:10a6:800:2ea::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9253.13; Fri, 24 Oct 2025 15:11:42 +0000 Received: from AM9PR04MB8147.eurprd04.prod.outlook.com ([fe80::b387:72c6:e33c:8656]) by AM9PR04MB8147.eurprd04.prod.outlook.com ([fe80::b387:72c6:e33c:8656%7]) with mapi id 15.20.9253.011; Fri, 24 Oct 2025 15:11:42 +0000 From: Julien Vuillaumier To: libcamera-devel@lists.libcamera.org Cc: Julien Vuillaumier Subject: [RFC PATCH v1 0/2] libcamera: camera_sensor: Add support for an additional image stream Date: Fri, 24 Oct 2025 17:10:56 +0200 Message-Id: <20251024151058.1523308-1-julien.vuillaumier@nxp.com> X-Mailer: git-send-email 2.34.1 X-ClientProxiedBy: AM8P189CA0019.EURP189.PROD.OUTLOOK.COM (2603:10a6:20b:218::24) To AM9PR04MB8147.eurprd04.prod.outlook.com (2603:10a6:20b:3e0::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8147:EE_|VI0PR04MB11784:EE_ X-MS-Office365-Filtering-Correlation-Id: 9bd83060-1d35-42ae-04da-08de130fa332 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|19092799006|52116014|376014|366016|1800799024|38350700014; X-Microsoft-Antispam-Message-Info: kYXvzaYK9D0W7B5g/kWOElHqQ9WfA8iMKqHqoLmIQ4DrhAbBHhugoQTpywZ/BfnJE4T3t+7bwenQSX3bl6LWBDJPVie8hD8j7Hb4dijYYvSxGlDX/Qx4O+3CFOTsU5RA9xXnI0ZelQbjusUG9MH7MzMZdQwDXSyFEfA7o2CkGfiCDa0Z3w55eEZIiAwUootavfeIyHaYRi92UBu7klGVbSAoAYT0yONt5VNWLgHOnRxqH9EuKfDqadMGzkdr026V79KlcuBJEEOPlG1WkgAUc2DF8FrmpHFxVsK9YbfejzJC8zsyBSXFDZXOStjORc/IaWKII4JDxWh0atVGfJYxVyOhdA61PYleOLNQ+DPvKYr9ILvXKWen2XpLKnrPBQN4E/Z7aBvVW/+6eT4oChuz0vYGSZXcMBFQvISHnM3LAeUiU7q+rucRToRJ3zLzhsZ1xSqOgvPGtTCZpdcwjbvsHZ9zD7g03jogLpi4TsimaVdqd84BxuCSZb3TrfxPLWOxzGSQ/V51qGpj94LQjUpPKc/utBn4ZATQZj7PJTqilCGiKDYHmG6VJC72TQfQoaBjBNBH3xcjTBnLfQNCrcAZAjaonp1rp/ZxF7MqEZJnXwNg7iLVhtq46a89Zo8JoDwAh5YvWoru0ARlHtZrEUG0irRDZGFWeYDmRPTdLpezdD3ePfwaY+gKkdS3iaTZ4SctHb5FhIeTExy8i5u/SsZbiubVzo6yRWpyyZFJ3kVDS5de0YKw7dzqr1nTASNAgmls/B4sfE1S/OjeKRvTcvoDapBPN8ko2HdbpbdklNSQT7BgNMCSLcEXoIwn1nSCEgRpMrIGjTqmppSAqcuwcRatk0jwoe29/HCT7QimvC82AWpmrfMmTUBmhlMhl5MFhJamJTKgzChT+GRkT3EP3BVB8fejgyyueXHeGdmbwCa3L3r0izX68c1lXjdS/lbQp1B57wAQYSDHMu/gxETPNOmLEvwkgajRgoqDoiglzI0jlPyWuSWbOI6lx8g94vpbO/bjPm9Oupvjl6a248rYKy3NkRiU2g7fKI7p/ikmzM5lf7GR7Cj1W0U9JtGcFEvBgPQtAJcYFGOzo7jxHxdN+p7i1c6OM2RsowLcim3X/O2p8dA+zt8fbOwz+d4FrFnqAJmqONHFqI2wT5H1hA7PLAzyg9pzRFbbI1d3ZiIH1FINq/KfLUrcG4HSHPirDpKaNngs0z70rJGGNRB3kZ2oaTHW/zCClW0ScvJBVaet1oz62jOLk6wIWCIfVrias3hYZfMio1QHYwWp9WXzbdjh3wxxcTrHY9zl7oaBMVqPZWGASnmBXr4BD6vvZ6vUXDo0F6sz1B0YxU3y5+FikzoIY6nYnufXi/pdGSDs7srEcmScxVCVHVfUG3lbj+4WcmTuwtldfdUy8fENSZorpAUujQX9TmoIrxIv44VtlJ/18q9nl/RtRCrXSBHeksm6QFK97/h5NIL4+x+XI06gmwAO7RXfrO5CiHOIYaOQcUBLFin70acmXGSD/0ZDj0loaPBn3Iow X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR04MB8147.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(19092799006)(52116014)(376014)(366016)(1800799024)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 9gXrUjPbPAqN5z1k4q9oZoiPvkjgIgwy1Flew/kA8polMlPN3jzQ1t+fNIGOm8XoSrUbjsqybg33O5LUHUM6ulrQ6gIBiWmpUcN7LrdKg5Mn1ORae8cBBIPhnyidlFnWdRb6/8YEjZhyOI6gINLDd3CYRzcYbR8BMj2++iZ6B1d5KSPANcX2LkAFJAZ3V/jC+NGCukfrJUc3GyNpY5UVgXCLTC8IofWJhdw5R7/kPum73zhn5IZU1ANeRapHA6MVo50MgdBzigxxLRHMksTr/edANp3MBiDBtbDG12aGoNbtjXJBiLd2fzCRham0UXtzi5Whgp2eZbtWX4vjI6rQewySW08P0ZaS+aEukqUw4jID2EreNcF+O7l/81MNb9zrzo48by1D2UeSe1S9EGrhuAHUP1+b242XBYMnyyC60vKcXAN8uvaojr6nRscv79PU97Nok//sEJF3YlHiN1eMioAaiAXq5ArlDHvoAgtcb1mcV7KlXbPh6RVuccd+b/MD0OI5k7cXmx/1Pi9i8LK5lk2OoWk3D/l8JBrpnKZ3JEssvFmrJ6QQUo5lJAbI5NuhqqhemxIx9//7X6aAcWahWg7CVm8YQ/gzH7ZmhPK+ooSxlVCcyxBUYJtVGYrvU5kyNa/YnSvEubzJnWADU7ozs5EQp55eHBDOHc2e9wFdaCjXr2xCsEdasEDCsaHirqv7FipSZG6AxFbO0pw4rUVfJrhLgphuAjWQg9DGDboHdKc+QK1/aLsqWaIK07XEjbdcTJseEccDrq9OYg9nyAs+XvA8FX27PalwAsft6GooSDXjWVfzhBL2p1wQkN0462PPvyHtAgHjtXLaFaG5TEaPOPtxIcoZeDW2vv3Ju7cuxJCo2J5Ai45H2Fm89ck8hB0N/ai+J8dTuEsE6ke4hq096hFMgN4aJAwZNNu7oLDf0UewmQ5cq6AjRj62nZ8ZojVc0oggY9SDRPRroWuTPEnLic3c2TJHnVIrXJFrQV469eJiJDczg98XRuvWg407qzoUNSkA4gCAGrOaGhm4NM9yB3yPOsJVEUblirYGQEsEoABA36wMKSa7Y4lxYtlL6CLvwU5/R0t4XJVB9YLkLYd6y7r1i6LE/BpTz4MHaJy9qUwMZgSGyF44zvQoXfmXvOrwEu3RU3NADwyoDLO7gIdZ9zCQNERtq0KG6e9gCiwmVEtWlX/j7CxifV4SqSTkg7qBdUaxJntAfF3oZRMKdSqty6bkqmPQvZQpB0CGaZOoLUhRbAmpmdCH/AdNcalmdps8GHPu8tEjtKjoDSUzZwl3yhWRAqHcWYT/KUTtb17phRhB5fKha3vu4jY8172zxvuUJL2llR4oaQy7R9p0sOSrEy2ifljcy+WkFfyjsipLbu2B2iw1alKoUbZr+dvknzgWaV38RgrBPyritS/tjyigS5BJ0E26mnUnlM0Lwn458mLj8LgE5g/hkRRgj3gHRwMCwsmJXOW2zfBmC+RARGK7sVc51y6oVlt4WWI1QjCThsi9VNLcmZXf7z4erGWvAHTWhfYrSQnY6qfuXNVabNSjhkbD/hIZBirHSxjOqUCoksRXsd1bVSHs4ZODcaKDUY3AsAkxPRfyvTdiLZk7TAmY5g== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9bd83060-1d35-42ae-04da-08de130fa332 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8147.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Oct 2025 15:11:41.9258 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: oNKu3TMp8LiTdu9QjzplvW1ZHYXo7Ri1vhgy4HmcwhakkRiwonzWbnwNAgCKZPs2iSUd67dVhf3is/bUVflWDuwkbD53baiyMN9sVJF09zg= X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB11784 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" Hello, This RFC proposes 2 patches related to streams handling with sensors implementing the raw camera model. Those sensors may produce multiple streams from their internal pads, output to the source pad via routes. Patch (1) is a fix for sensors implementing an optional stream, for instance embedded data, meaning that the route associated to that stream is mutable. Querying the stream format on the source pad of the sensor requires the relevant mutable route to be enabled. Patch (2) adds support for an additional image stream, in addition to the main image that all sensors produce. That may be needed for different camera use cases, for instance: - HDR sensors that produce multiples exposures (DOL/DCG) on separate MIPI-CSI VC/DT channels - Sensors that produce alternate images from different context on separate channels - RGBIr sensor is one application. Thanks Julien Vuillaumier (2): libcamera: camera_sensor: Enable routes to query stream formats libcamera: camera_sensor: Add support for auxiliary image include/libcamera/internal/camera_sensor.h | 3 + src/libcamera/sensor/camera_sensor.cpp | 52 ++++++++ src/libcamera/sensor/camera_sensor_raw.cpp | 134 ++++++++++++++++++--- 3 files changed, 173 insertions(+), 16 deletions(-)