From patchwork Fri Sep 25 15:18:16 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexi Birlinger X-Patchwork-Id: 28382 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 CD4F2BE173 for ; Fri, 25 Sep 2026 15:30:21 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id A85CD689C9; Fri, 25 Sep 2026 17:30:20 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="eGSO25+2"; dkim-atps=neutral Received: from AS8PR04CU009.outbound.protection.outlook.com (mail-westeuropeazlp170110003.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::3]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 974E168983 for ; Fri, 25 Sep 2026 17:30:18 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=bNJzmTn5plA2C12ASTUQCzRyAIMAtW1hoq1RF6ZD7hQlvTH31mjao3x23urK1klvTRZAjFNedU8SKR/gVy+Bc7dma7hp5vmumIw817HcsZPEOdMM02ZjT0htqjTzs7r2g17ZjNGA/gVXJUB60YPPg/yssEHisC3plSjMHMI9pXo4jGtP1GNqlOb6wVYUgMP7aTy4OpiQq9JbgGJXRhl9OAA3oMPr0yizzeEM2WmK2BPAhHu8QqAsjPVJvsVH9+mr8sMz3RF6Y2R5IX8cAefIVhcbwx0I4vpJJHur0MSXtkeYlFZr7AQ/Kr6x1Tg10d36Brgx6Tmdy3+PENLtx7jpWg== 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=BPiBtvOS4Nqosq/8RoycS/RiatJxVj6VTdvwxd9DTQU=; b=HZ/6UUN2A23Jo0vlWDjj123wG94/9WKVtiFbvCLQNOqaNT2w5XRTwSwbpb35eszOY08WvAwLUSAZk6I9GkZ5Rj32tv03uP+2+nla9ps0BT1CuaJFZD0PFEnwwn4mYzn/ZiTjxlZSBnZO9vzMo/PrtP9i2WUlJbddsGg2DYGiCtjKMxIPc3fdn/TYCyCpmfjWnx/CM0q4Pz/HrY7ljmkUI0+sMDFh+lMCaI0V8CbIDtbWlLza5SlZSivSWpy3ukQ8/bskF0b2IVmNUjMHCzOR0uIwvafwPgbhZ3oreARMWc+qCp8y1Higjqrj+IQpL0peNNU3wXY7bKSTNDDBLVgAhw== 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=BPiBtvOS4Nqosq/8RoycS/RiatJxVj6VTdvwxd9DTQU=; b=eGSO25+26fj3//V2BybWNvI/DpK6x/71PEBqJX66FXXF0tP0g3+4IeHdyqHTQ+YswGLD7Sf6eTxMUplSK8iO/UebzgXJe/CAFHm0PuSUisDffKp/DRwwczX0qXpjkMzIabhgIlm2PnATwGgGet6c1pE672kOFGeYMpYUchuQnVD6K2q4iTY37hpDHGP/S0z1cMhtTZdzRqvlLss2eDw1BD9AfJ/80nqz0nDJCGSmSwyI+6PnqiL2PBUqLVsVqUl6IExMAr+kUpijShOGBMPT6KmXUltN9Gh3+AyZ9QJL/EYsRuL5wNu3ThGZy+6nTMGc7kMSVRNvVu0RccGWahnAtw== Authentication-Results: mx.microsoft.com 1; dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from GV2PR04MB11980.eurprd04.prod.outlook.com (2603:10a6:150:2f3::16) by DBBPR04MB7803.eurprd04.prod.outlook.com (2603:10a6:10:1e5::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.451.18; Fri, 25 Sep 2026 15:30:17 +0000 Received: from GV2PR04MB11980.eurprd04.prod.outlook.com ([fe80::20be:665:a67:ec03]) by GV2PR04MB11980.eurprd04.prod.outlook.com ([fe80::20be:665:a67:ec03%5]) with mapi id 15.21.0451.014; Fri, 25 Sep 2026 15:30:16 +0000 From: Alexi Birlinger To: libcamera-devel@lists.libcamera.org Cc: julien.vuillaumier@nxp.com, Alexi Birlinger Subject: [PATCH v2] libcamera: pipeline: simple: Reject multiple processed streams with software ISP Date: Fri, 25 Sep 2026 17:18:16 +0200 Message-Id: <20260925151816.909725-1-alexi.birlinger@nxp.com> X-Mailer: git-send-email 2.34.1 X-ClientProxiedBy: AM0PR02CA0117.eurprd02.prod.outlook.com (2603:10a6:20b:28c::14) To GV2PR04MB11980.eurprd04.prod.outlook.com (2603:10a6:150:2f3::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11980:EE_|DBBPR04MB7803:EE_ X-MS-Office365-Filtering-Correlation-Id: f2c8c22f-51b4-4c43-77c4-08df1b19e69f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|19092799006|23010399003|376014|366016|1800799024|56012099006|6133799003|10067099003|18002099003|11063799006; X-Microsoft-Antispam-Message-Info: fey20/zD7BV+2Kdoeqp6hmybvLZbS7nKgXk3r3n/zwoA6+8KmhohmUitwpG/FYP9T6lPK5WOjpjEuXifJWf1SKlyGmGz9pED4ttTXtZSROuxZmDSwUJ4JuxszNLd0Mlp9aOUhxOgPRpHOnGx6ZXMJmTQ7AsCay7SIvRDsKZC2LlL0Hs97HIT1hdVFdg4RWUW4aVKDTkkyIq9xtxhDzqalk4L4BmwPPG3YXtAb1/Xxz8Vju1vnnsVbnZHqHUzm8y9af+j9PZrShJZeqtnUY+Ihc6gJJGlmzJSdSKv08XHtduCVFfRzxRnmwmPcmzafGNpwlLfOg5///8ODmg5WEaCN6P5pMHwyLftIlQtyA23jN9VICXM2K4qejQYTdndD7lhKs9NxTlxtZM/UuQHyUsLVv0NCecfGzux0dX8SozcRZpyPlhuKry20Dv1QJrbRK2EF/oXyPxhlOLQQiLZRzwuF0qddT/wNDwUVJssYZysDeOWg28dCfydQHSQ1w+J6qPTKsSklAg3JCJnODQj9bM5AVFD5GUTMutFk/7NK6VOuqNLO+xIUjdIwE9Pdk1by+4CuUi13XC4C9jolNo0U7ok+MvvcqJ9Z+SG+4/oyi0Sngm5fBuoQotixfBx98LL6b+3KTqkk1ulgJ67IxhXgL00J6OxP2meoHTyWZ5KV4dOr64= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:GV2PR04MB11980.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(19092799006)(23010399003)(376014)(366016)(1800799024)(56012099006)(6133799003)(10067099003)(18002099003)(11063799006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: CLTcRUiUMlzcDWJLmNPXgW+dZw4cSxPoGlmtwh3aZHFW6FWZnlYAXjYaK5Dn5eTwBZPk0zwsGYHNz/jANCA401/O9SFBVUamVvYAsa9xwC1jKDj2QcgY0ahF6JevNbul24ETvQ33SPwuNaAqA9a7VleoWoivVnILKTVQXiHMjWGdXLHb44AhYajgJWlXpMdhd4Kpo5rdWFXPXY0QbnHFKt5Qk8BbZ/lKzAJpNeO24ZWvbXhhXpQ6Q/+iN9mzEi0aOWOZvffGVwIn+d2hC0i0uDRsGrwzMCB86bmKKRLtJdGhQMWEamFYSo27fgif3eOUeC3HlVN/bdKOhEbOcyUe9IZlcSfXlQn97jpaZ4pzuDmZorfp9Li7RPF2r8Fsi8fgfhPHuH8nXMOBTUrFXUWZjg8TcjnJ29V+zgkc4gFSsnpfZDvwYWo37yZbPIAUKycDQqLBAIU0r/vihxNhpCfmW/CKZV7/iFIWlum+eTFZEJ2Cf5SYfOeUHvQnON1SYQhzVkIPL9grtHGm5Ozr95D/fJT3FvoZ/NoFOaf7ZfVoVyXYfYi3Xtv26lxjppE2wMz2EwdrCceAQOcfMiROQxMTXYpGxKHInfA9ESurRHWuUnTQzwVH3xnsGrOc+7n/1h9GJz/TZfwGOrQrzbMXTKM74skddXffby39QXF9D6JrUiMr5GP+RmkbpLlqQbQX8QlHuixfdM5NBNgBkKk+p01oycIBWfIz22vDJCNdpZpsNJhPgx97QVnrXLQA15R7DUazwH15vci+Kuz7oeCd9OqkVwV9JjbNNfUcmJ4dB765KytY1iT/o60emf2qojsR6jskkg49dq9c9BeQb/77cTNi262aV8H/S2QXgwX4er62USRqziSRnEOWJF/pVSKIHnR1tlKPRyMr3OgB6vDHSlFq9/5n4VdmuFq2A8w2O+NV2ZVy8M0yw8+Xi95hyhelR4m9a0uwp3mWnvXrK3UtRjP4jH/m0uC1Gj9olfzLEG+sU3v7zzJhqbRyvaaQGoxYFxI+FlC+VepIoKOyQB+KiptArJ8rFDHv31l/Vt/lkz2AyFFjaNZscNYyQD9+gSBdsvUqTsqm3KhcLmJL6JkmugOfse2+1RwW1RGcJDG8B/fQIs4yu4dNPN4cfalDWqHYo3UloCIURB+hw2MoHrcOPKyyQZOHHdBNw8XIh3aIbynbC7d80fohW/5v82NiZsHR6C+3qYEPhF+ssZN1M5g9gjJTnA12tFEf4x2i2L43UjAUJ5fCrXEYdwdBfcIaZajSxXmdIbbWVXr21YYG0/Ei1vs5565bUV1smkA7dqT8T8MkQ8UGaZRQHplXrpc8wC2bLx7TTd2hKK8t1qvHyPziOeFb8KvXsZHqzy0lLa+BhzEt7PSzaIRPxxTfUQVLSauy6bs2NmVGnH8yqrRQtskta+1juq9HjHtRDolBs+mvQAgDSb+2z30RTwOgMmAKCdCKUZMA8gLIun0nyT19n6rbXO3fPvWjGMjqqume6ABQNTs+KP3H59HzPpce/K+CAjyHzjRPY4HEo4zrEwnTR+Jx6utJp2xgbFtGt9fbfESMLwNdtIP+ZG0qithOgYrkTQ0WrYZjX2hDlfY8bGBkChu4DYakysmiWv2d9dzAnIsXCW5ENX9vWgu2EFOIboZK7LGXuUHdJ2MvSD826IIPDFdNMcoOuU3nPyEzjWUioZo514j2/Cf12gc6aRDUkXgrv7i1eq2xRzO0PDzm8W32zKXRk9b2sQ== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: f2c8c22f-51b4-4c43-77c4-08df1b19e69f X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11980.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Sep 2026 15:30:16.9082 (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: K5W3zGMgEJmYcellO+oi+i+/pNtocxAYWeROTe9g+vN4TGg0+VOhVqNI0VdAlmRQ4S0N+MulGn8B2QgZhzQZkA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR04MB7803 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 software ISP is defined with 2 streams. However, it only supports a single processed stream, with an optional raw stream. Return a null configuration early in generateConfiguration() when multiple processed streams are requested while the software ISP is enabled. Additionally, adjust validate() to enforce the same restriction, as the user is allowed to modify the configuration after it has been generated. Signed-off-by: Alexi Birlinger --- src/libcamera/pipeline/simple/simple.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp index 35c29ceca..27eb728f3 100644 --- a/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp @@ -1183,6 +1183,13 @@ CameraConfiguration::Status SimpleCameraConfiguration::validate() return Invalid; } + unsigned int processedCount = config_.size() - rawCount; + if (data_->pipe()->swIspEnabled() && processedCount > 1) { + LOG(SimplePipeline, Error) + << "Software ISP does not support multiple processed streams"; + return Invalid; + } + /* * Find the best configuration for the pipeline using a heuristic. * First select the pixel format based on the raw streams followed by @@ -1427,6 +1434,11 @@ SimplePipelineHandler::generateConfiguration(Camera *camera, std::span