From patchwork Fri Aug 21 09:41:47 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexi Birlinger X-Patchwork-Id: 27953 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 3ABBCC3337 for ; Fri, 21 Aug 2026 09:53:09 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id EBF0C6834B; Fri, 21 Aug 2026 11:53:08 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="ZqY/N0Vf"; dkim-atps=neutral Received: from DB3PR0202CU003.outbound.protection.outlook.com (mail-northeuropeazlp170100001.outbound.protection.outlook.com [IPv6:2a01:111:f403:c200::1]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id E5D776807E for ; Fri, 21 Aug 2026 11:53:07 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=txWtwUOELB9NdUQGHmU8U6TrdU0R8IP0+TVWHsUFxfzUqobdThtfv2/nqDnP9yKvija924VWId7FBnkUBFiQyFu8QQlhrqZvPgfbcKqe2TMA7cmAGs7JC1chELK37jbmkzaQeKhkjgbL3uFf+hy2WJJ/nYlza+/oo5nbOzDBxdPBlRI2r6If74ix6HEP/pFv2i/QDZth18NR7uL2HQ+DlSjh7IVOkSpmGMDCNlv9NvmEOxJMvs8Uu5OToDpWBrPGaR600zynMzThP4BnvMGZkQOQl28Bf8KjB8L1VcanN7UGO42E3KKSGDUDg5Q+gy+YXn6oAFdPs3VG0RWdAhagMw== 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=hjBfRmlZi6qRVzbSNq1wWL0uVly04EN6Urii2fnQ1tI=; b=TMsDMHLNR+6MGcoFe/Vgi5KMqjk5QA9PcZYuNFKTxQ1SK3geQSQDCu/X1JaUyoHWvGvAH8F840HUcbAMGiqFnk9CzQPxgSw5qyZ1wE9VOszMrkBTc83fGAs0xF477Rn9HoUOY04hMS33ex0FRrYsr4cTKUNiLAxvJUUvLirv9a4ONfg1y0nR0hC9UaUjfxS9RXRMX2Dn0MsD5RMFmIJ3QHQDDxuEIwhNQ7EOOriHd+64tyhVPpiRCOnRpiASbJOSxtTm2Wh22G+Mz5oJveo2srHsabk/K8Pn64CmTuh7Cm/VNOMmOuwTDh3olgRQgPVSBIqTWavpQb6hAEhEkXZ7uA== 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=hjBfRmlZi6qRVzbSNq1wWL0uVly04EN6Urii2fnQ1tI=; b=ZqY/N0VfTXe9Q4G/zMvUJB4kNsMYdH9gu2nSF5Vy1jDYJ+OOs3yRyDkmvLX+krBA/incZ8ya5TcSNnOBoTcEsTOea/3mCjqrHmhLD6vsUpJ4KB8xvesxfQBclwxEWrub6TPOHIymPmPF7s8DymhGNyt92sSR8QWv1IZa7pnCpH8dfWGZTOxeqhGnGQ07C4s6eZWoPJhlRYFP09npHPyXMUd9xFFi0ZlMTYHxhq7nsXPeRtnrOcvS4hyNoYScMVH8bguek9+aFXrNv+yVOwTYWiSpgOrzOSQrzeGZruA/G5zZ7NPQwPh2OIxCEhmHNAVmfuoLiiuMaTcSzwgI4bvbcg== Authentication-Results: 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 PAXPR04MB9519.eurprd04.prod.outlook.com (2603:10a6:102:22e::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.339.10; Fri, 21 Aug 2026 09:53:04 +0000 Received: from GV2PR04MB11980.eurprd04.prod.outlook.com ([fe80::20be:665:a67:ec03]) by GV2PR04MB11980.eurprd04.prod.outlook.com ([fe80::20be:665:a67:ec03%3]) with mapi id 15.21.0339.008; Fri, 21 Aug 2026 09:53:04 +0000 From: Alexi Birlinger To: libcamera-devel@lists.libcamera.org Cc: julien.vuillaumier@nxp.com, Alexi Birlinger Subject: [PATCH v1] libcamera: pipeline: simple: Delay stream count for software ISP Date: Fri, 21 Aug 2026 11:41:47 +0200 Message-Id: <20260821094147.2251802-1-alexi.birlinger@nxp.com> X-Mailer: git-send-email 2.34.1 X-ClientProxiedBy: FR4P281CA0113.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:bb::7) To GV2PR04MB11980.eurprd04.prod.outlook.com (2603:10a6:150:2f3::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV2PR04MB11980:EE_|PAXPR04MB9519:EE_ X-MS-Office365-Filtering-Correlation-Id: 56478adc-b747-4e91-0bc5-08deff69fe9e X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|19092799006|23010399003|366016|376014|1800799024|6133799003|10067099003|56012099006|11063799006|18002099003; X-Microsoft-Antispam-Message-Info: njL3xLOLDpRxw78UtTaeJccY7dMmUJ0iH5gOOhKezWzi357j3+TSLuZtIHqBGGy+hv5Kv+iCzcyqSXETij9qAGOKNPDEP/aoRXJeZHOdCQ6mGTQz5KNERpShicqHm37en+QlK3YYb5h92iu1gZlIeprQjHYDbKKPbfdYTwOaML9elUU5pGXG2SwM7RB3IqZJI7gGP3/86kBqdLkvYFa3/R5+kksslM/fw4VfOEwgdkww8TrQtDfeFpnyeA6tt+37JSxuo56Pgni7tSKVqqrG0oUcRqD4PLm1aV2Yy7psqYczAkZ79+jMXsvyF3LeV/LJFrCRzM8KZp6K4JJG4a/NrDpvxT/FA84Gz3cbzvA9h6Vm+35I5ArPK1QJo5g26IWPD6Hj12WWYzh1icn/ZD22Bty74fyyBT81ebR+kyKx7FQ7cfLqNxwZzH3fMRDpUVDwdedknkiywcYCpEwk4JPS2z8wK5ZNfPFi219ENU1x/wXJnNnfnn0U9/jbH9aw0e6uHDTt6g8PoYDSjEdaC5qupuX4S7AXzqMfDh9TAXjlMdFykkYSqnbxSIavRwWr4oYgH1XN/LofdyoHmxyg8Uj2veWLJCQ/s+TbKX4iqsEK2gg6tt6juMh2t2utCQYuG8A2iU/qQx9JA5PQarGXZ3+p43WDYiHxM612yQd3F3OVCB8= 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)(366016)(376014)(1800799024)(6133799003)(10067099003)(56012099006)(11063799006)(18002099003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: VNragOTqQ3GIaTA3DcsFJigTifOVxcD4DeIHHSbgXgyHiaoZn5Rs3/cVmdtw+HypdHUeKiZWEfZLreSOE3Ki+bNukqc5PKamIxCzIM6GD39+KxGhbPbVkZaZhmKgowyZLgNustofnEDipU1/CFEoRslWbwoGS7OTQohLgSjtqCT4BRjV9Ubv83ITvmvaeFZOxRIgVkeBs1a726Nktk4Fody9vafnsHOtWtzoZOArAoJGiQpop23wmT9duxQqJ/AzxHbnjuU1e8UdelLtKKsnZHquWi01IoxoAm8WaIxJ+yEkeAdwhYWgFfj/pbbnKx+vuxl4aQRwQXFneyKq9d1HYfHQySxMrR4p6xJqabUsezILWnvPgduokkAm25DqV6Jnbba3wWyErzSHIG3RkwoCiKYGaKS2wtWxAWSCxeYmg7rKvkLnKpwm7Jg0kxwEQ+C1azOJrEitGI22N8A/5m2/UV3VrCIVKqD9q8DBlgcmQ2iBYozcPuK9nLjexnRvXm5LQDLPsW1bQsue6a5y9cwfTiPu/uL8nPrhz4ksZC/nV8nyob7Ubsj7fN3oRL4IdKT27gRumM2y5j3ibiGDH34sZKPgT6bbzO2b3XMcr51eoEl/OyhyPf4iF2lOxGi+PztIPtaEOdl1WNnUSEk1jIgP6Vz4sD5Uii/5kfm3Sn41r1UYb5471C4ahPQnZZo851arI1U2TGtv7a0U3RDsGnxDKGMzcL9hIjYJrvzpABH3TDf4qMOTuPBeLbPYJMVI/zvSng1lx9W2QMaLBgMoGdDaBXZB35l9RakMd9dCA5bnqV/7cGrhtgkxXe7+AM/UjxeQ6GYj9F72PrZvnkBKjZTKJu/qBRRQPh/ry7+wWMVgvezR/+Jdn3hkTvjiSFy5DtQa/FCr/qwbg/8AoTA5G/Z6ieL2gZfg39VyWIZPFr5V4JF493aBgEieKtCWoLG3YB1377HziiyoHGSCPN0P1nk3b+DoAvC0lE3759L3fB4aHXDiI75z8SNJXoWd9zYH5T+B7vwYHnGCb6hFqXxtxKU6tFgHg/V/EDmyT2tbqqVNc7hYl66RKJGKT3mFrmPMFEZAgEIhfoXSI21V4vtnumSY60kInPitgJ5UPuDxKrFBewGbOyJHw/cXliyKZZ59mMIChhwcd3PvLofvkiwGgoPIjrlMQbcO9NJ+7VVcVhFpcfMMt8JCabfrGATyFWnWMqLJIJc4h55x5nWnxwtZXifuqW5SsdbrpTgV+AVYz1bhslIdB846MAB7zw7j4mHs7PX8c1nsKTTAjmXGJ/6JeN43ABvMg+be8PdwKcrroikcijJv4lIGKT02jCROtFlPLDz3VL68AWBQpCf9YIdEW1Pwwv5uTBvfo4FuDBFBLKSYBNgGL0yyz8B99BJGg8JOWM70DgINXLzmIp+vEwS37BAXzsahm9Il8Nb3qEXU1rX6Kdauve0l6ViLUa1PEt/HMtXKWcLFFcl0lyDCUSERA/UmTJIgRbRjWQnzjyiyJbHUWAkUQozGuaPxTIuAy5nzbaExLu4s/nfei2cQkSnD3WYn78FDlmGqCuIY5Gigfm/aH0Qr5eCqTHJlvzjBOln/APTHlsM+vRDEce+NBSPGH4CSr1ZsUJf8PVJFXIj2As3MhdViIpyvNQ+lX2DMV6QQzAEa5BVAeVnWk3CVOa279hdADo8TYrNBnD9h/ThpZm7A/1Pq2M8eqVlrcmuV9x0f/05q8wff8hyg6bkxBuQTZeb8qQ== X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 56478adc-b747-4e91-0bc5-08deff69fe9e X-MS-Exchange-CrossTenant-AuthSource: GV2PR04MB11980.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Aug 2026 09:53:04.2735 (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: OU+KUUnJEsMJle0OInraf/kf43WT2Ty28TpWkY/K6Dkok9GXkJ2giKh1Scsj8v25tiZAJ/DmUhDN6ZiiWniMEQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR04MB9519 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" When using the software ISP, the simple pipeline handler exposes 2 streams. However, the configuration file can disable the software ISP, and the current code sets the stream count before reading the configuration file, resulting in an incorrect number of streams. Move the stream count assignment after the configuration file is processed to ensure the correct number of streams is exposed based on the actual software ISP usage. Signed-off-by: Alexi Birlinger Reviewed-by: Barnabás Pőcze --- src/libcamera/pipeline/simple/simple.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp index 02a98f594..e20f08b67 100644 --- a/src/libcamera/pipeline/simple/simple.cpp +++ b/src/libcamera/pipeline/simple/simple.cpp @@ -1880,16 +1880,6 @@ bool SimplePipelineHandler::matchDevice(std::shared_ptr media, } } - if (info.swIspEnabled) { - /* - * When the software ISP is enabled, the simple pipeline handler - * exposes the raw stream, giving a total of two streams. This - * is mutually exclusive with the presence of a converter. - */ - ASSERT(!converter_); - numStreams = 2; - } - swIspEnabled_ = info.swIspEnabled; const GlobalConfiguration &configuration = cameraManager()->_d()->configuration(); for (const ValueNode &entry : @@ -1905,6 +1895,16 @@ bool SimplePipelineHandler::matchDevice(std::shared_ptr media, } } + if (swIspEnabled_) { + /* + * When the software ISP is enabled, the simple pipeline handler + * exposes the raw stream, giving a total of two streams. This + * is mutually exclusive with the presence of a converter. + */ + ASSERT(!converter_); + numStreams = 2; + } + /* Locate the sensors. */ std::vector sensors = locateSensors(media.get()); if (sensors.empty()) {