From patchwork Tue Aug 18 09:45:07 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Elliot Chen (OSS)" X-Patchwork-Id: 27836 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 A0744C3308 for ; Tue, 18 Aug 2026 09:45:22 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id B66EA682B4; Tue, 18 Aug 2026 11:45:21 +0200 (CEST) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="Y5bXJXPy"; dkim-atps=neutral Received: from AM0PR02CU008.outbound.protection.outlook.com (mail-westeuropeazlp170130006.outbound.protection.outlook.com [IPv6:2a01:111:f403:c201::6]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 8E1A867E44 for ; Tue, 18 Aug 2026 11:45:19 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=cmKZU751URzWWZbVsyrLdyfuar/BVV+SLvwl0CLeurJ+N7+p+mJtszGgD/hJtYqyfsUYFCvEfULgcpLFnrCWHGVqNR5rcPHFEJKF7e4vsZVDv30UaMExgVXUds0aui73rP/LLMHKeeWMDGewEG+R93wSQYFbHfzdBZnNiZgRYmgqYcaJ8U7EiQiVDWse+rfSk7j5rWtav20sO4LOaacj2NN8KcaqdXD9qg9ymPQnLIq9098u1IU1qYdojKO6tiqezQufypgnevsw1HL8XNajVkW5vhk61b7qBTB6ZnmwyB4zgREg5svq/JAy6IvEXWJJpQcpjMOXsglM3SXPFxb/jQ== 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=aSfEhQ+7QMTSr/cxT7MdfewYzgsreG2hyF38ZhbAbqo=; b=wHPTSSnFHDf7RaN8NeVYxx9AN3SlUx3PIpa4C4wUCCzvhw3oqMSvEbJEajM679V3gfEj8fTY6GdTZl0CRGtrZLJreOMN+hRJ5OGb8ufq1WUpaG4undLauM/nJUY3wpgsfetKpfiYEDoW2arfnzazSUzYIIFF7doAP+rm4JRvYj+wq5woyIs8lZErqivd/FomFrPKpt32zxkGbf/Jw9iz518lu7TiweedPO1Jj/MbkTUhyVL4StB/6HvGyqA79Kpjnuc8M55G+MT4CYlCZPPh1YTMDBYSX1VbbaZzbq5rzHTNC72HCaob4QVGa1gI1b/PH2O55+9fD/4Q2mDmvhVhiw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oss.nxp.com; dmarc=pass action=none header.from=oss.nxp.com; dkim=pass header.d=oss.nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com; s=selector1-NXP1-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=aSfEhQ+7QMTSr/cxT7MdfewYzgsreG2hyF38ZhbAbqo=; b=Y5bXJXPyuByU563CfWB0qRt1UsavhiMr8tXG5U+3Wb8k5lW3ZnZXIrzpviXsvL5uhzpZmNXYmjDiVV7SkUzaCTZ2DH95oh+NfOCFZuFAhEM9Nt7q5k7UYEc/gyMc/FzPByN+MfLOb3IzFiPfjloK37Ozn1pEScHPMEs1MfZjMwbKjtIK6HURImZZT71ATzww9dLUY3fHSKouehIrDZw1rCU06/b05yI5dksi6+sN7AucQFMycs84WT7rCqb8jEEXvfcptqFYkz6mUH/3UsHF1sLX4toNy/jxg23ihJGpWRz4WWlXFOc5jMmBsPZy5KZX5bP4W5Xg0mY+/kp7onUxeg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from AM9PR04MB8244.eurprd04.prod.outlook.com (2603:10a6:20b:3e0::24) by GV4PR04MB11823.eurprd04.prod.outlook.com (2603:10a6:150:2db::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.315.17; Tue, 18 Aug 2026 09:45:16 +0000 Received: from AM9PR04MB8244.eurprd04.prod.outlook.com ([fe80::a59f:4bc2:f026:4012]) by AM9PR04MB8244.eurprd04.prod.outlook.com ([fe80::a59f:4bc2:f026:4012%4]) with mapi id 15.21.0315.016; Tue, 18 Aug 2026 09:45:14 +0000 From: elliot.chen@oss.nxp.com To: libcamera-devel@lists.libcamera.org Cc: Elliot Chen Subject: [PATCH v3] gstreamer: Reconfigure when peer caps gain extra fields Date: Tue, 18 Aug 2026 18:45:07 +0900 Message-Id: <20260818094507.4082940-1-elliot.chen@oss.nxp.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260818031046.2791348-1-elliot.chen@oss.nxp.com> References: <20260818031046.2791348-1-elliot.chen@oss.nxp.com> X-ClientProxiedBy: SI2PR06CA0016.apcprd06.prod.outlook.com (2603:1096:4:186::22) To AM9PR04MB8244.eurprd04.prod.outlook.com (2603:10a6:20b:3e0::24) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8244:EE_|GV4PR04MB11823:EE_ X-MS-Office365-Filtering-Correlation-Id: 00af6bcb-e779-4e33-c91b-08defd0d670d X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|376014|366016|19092799006|1800799024|23010399003|22082099003|18002099003|11063799006|56012099006|10067099003|6133799003; X-Microsoft-Antispam-Message-Info: eWDkPxwP1+4hYPA36QyNqDzjJ4/zZpH479HiV+H2QJNsyLePOcQ1O+8bKKIkxN+un/irXPtKAzixf+sDnJ91mRqIPPW5WUNJplLaty5vtBJkBx4pMnWcuEzZvUC7VYymC1MmyZHCfnIa2BcIip82RHaZYUrYBLSKSi1PgbHgbooX6i5YCRiU2ZJNeeXfknUtx+nzcnd73FpzK8is+GP1Oa/TRCt088SZxv2P389WwgL1fnxC5TyR6DbV80x0ejiCPIGfzXkZ2p27X3q3wQulglSeK1+yo8q/vHScFiiRa7HIRUL14ciNfHxqbRW9rLLHA4gImDVOE3LlAdU6tK2RlFR5IZO8heRvmxMW1lXHwqqzjNpXcIJbz2eHxwJqcZz2T2f6/GDbaDl4XAfUK/2nfM/1K+DyHDyupUCdyg3HdVSx1RcE8wlYCjDz0voIBuxdlye9aKsMQuFCI7nMYRvnkBtkmTQIVD9vt/9MzUYIlwo4DqRFl72LDjhbqh0Pco+IKvKW3oBaQd3l5dgwsXMr3QQWtEUJGcArLgD87D+ykCF5UgnfPHioR+e42XDH1NAZSiJAGPk0375oBN3WoLP3OIEo8ub6HX1XwvtwESPyJjxVkJN9iR3uquP84/OO/Q+MRnTRIvKEtQCYlZSHJw/6rZItFLTKxi/k9YR1GJYTbcQ= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM9PR04MB8244.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(366016)(19092799006)(1800799024)(23010399003)(22082099003)(18002099003)(11063799006)(56012099006)(10067099003)(6133799003); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: F+sjJ7fqJPlHTT6s/dsHcsokpVUU9x2IHNDKSkpjYw0E6OvndHpeOAwe5d2Fv9WRZmJ+f96lv/LfvDMxuf+lG7iHKuajua6O1MJQS4/dRsU+UBs5h+tiRmOrxWnYkoGw08kexMiaI0z5o1MILQiARAmeVbtmiT55GdGucJHMwfLwZ8nTs6/e01gCWPdbn/3sySXP8iNZvIl0ySaX5nmYL785Id0sB29Gzkrx4tsU++Q/Kc8PxGkubUw1evkMc0IBP48+jfjQy7QMtgnyM+HrYU+6YMUv1Md0HDBzJyIjb9f4+rz4ulibTkTrmk8cOGNRbHobq/Dof+rMrQK5XJuGlfliCVmmumCTDuXFYu9tpcSnVnTBA++Ldl1HN5kwkDsjKr1JaCPHWGbjOzDDja2oiNLh2xPQtT4GKMrkNw20JwJXuds7SSyiGEjfkCf1xMJy0vw+RzQuWSGDa6OfU8TAuYD1Mak2dTPmeV+W12swsev3d3MxfVX1VqsepP1KAdVDQ5A7y1pqcLSKOJ3LiMqjRAfTqyaX1nCLDn1ic6c1kJSoG2EBNihGbsAvyNYaddNqN2d/hQ2m37Ygh0xAEgVRjTwykB0xeCEdNdywoyGzYIF4Rk1htCe4Svvhp/Rrgtr6pJE1YCsr9M0hbR4j2hUnly0yBeydr1ksYIG84jkJg9IZ366oG+TxjP5Wb3HVsyN2mAu7+/7LQS6HgCK/scmIy7bBDWSaJf5JiIAI78NXg/wVWd9KD60sR0qhALOqjsuJH/ygOrMjOz6L0c2fcjc13Xka42wj1gQaApgJ0Cy/UtT/7xAhuw1LjA7vFnjHE8RB45B5IQLZzrc+vDROobiOcAWKn5DARItkGUMtqw6rlmlHl92OHFnSct62HpAYsSmjl6ITmMI64p4R6+Ysnzi5jmvGkhjj0GYJXMhJAnn5mFE5Jh82cFF6FIpYdSArVn05FlQDui4PJwM8nYKTL8ByO1p288ZVyP0g98diLe6fIKG0EJV8sOl9oeTbB30r27PqtrZI3fOt08KYe5FObI8cmYsmGa5RrSI74n29q5UXSrVu1wXwtFBId8G1D28w5yW0jUyWXu7g9wzdOqA0cDObsiMZwfj3OOmrUjmm2Meh1jaTWuI6EEd+t2OQVf5vtJ0N7nNdT5ChnneBWARyGnl72ig5pK0M1ve+bF0xL193VDsQpHgvu3NdMuP3gTPia0dJ1DKKj8p/+am0zfE4Lhr1a24GBuvXAqOPYlwLSjkN1ChG3uTEcCn4WDHEAQYWmrf02PBNrAnsfVhX+J7KhUjPpnX9K4cTzf0JnUZyQozpswY25S13VjPz2kqCY9JcP/F+wzxIjkBX6CMD6ae+A25/Vo6xbT39mC3IwYFbkjlHs3RpiEPt0WG1vodzGkDZzeBt4nxpeIUJ9tVl9G9zpkLV5ruS5Lw1Ooh9RUE+5RkJryddB+3648GcqEJfGBJnkfAi6Jy3ymVivAauOzbXn+ZvoTg4o1QrjcscdC1rb91XASJazFBrmU1eIzwyyNv+7ymkO+jQ7LAx0ysiUPopGYbdKehRdcrhSGGoHvOI9VEVkwElc+Do2PilZPgE69TX3fTuRK9J8nPSiNbnKGx1/x2mmy9k8zqCHCN/qwQTuFc5UhZB2caoMjh8+0M+bpdFfUmzMB9s/i9EzcOd/wZ19BKUJxKMHK13l0GV199hJSmRE8xWlzK941GZ8YH481gVzj8Ee6F/qkswFe1mmP8nMf3YZAdkMxC28TFaFYX9LRPTS41I6FAMECgCm2KGjls3FZm3 X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 00af6bcb-e779-4e33-c91b-08defd0d670d X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8244.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2026 09:45:14.1337 (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: W/uaiLYhNLpRmoNRfS5SBBsbenLdJTZsFvE+yhl6QR05x/kfDS2Y4sd+sQKL/IUdoY3leOsTLVTpJ/lPsAU83/kbclgQFkiUqFFrHR83wbaDyTVEF9Q/dezD1YdRYnuz X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV4PR04MB11823 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" From: Elliot Chen After initial negotiation, a downstream element may append extra fields to the caps (e.g. colorimetry). The existing check only handles empty peer caps. Add a structure comparison to detect such changes and trigger reconfiguration with caps renegotiation. Signed-off-by: Elliot Chen Reviewed-by: Jacopo Mondi Reviewed-by: Jacopo Mondi --- Changes in v3: - rename caps structure Changes in v2: - remove redundant checks both for caps and peercaps Changes in v1: - Initial submission --- src/gstreamer/gstlibcamerasrc.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp index 9061f9163..9541aa3f6 100644 --- a/src/gstreamer/gstlibcamerasrc.cpp +++ b/src/gstreamer/gstlibcamerasrc.cpp @@ -744,6 +744,18 @@ gst_libcamera_src_task_run(gpointer user_data) reconfigure = true; break; } + + /* + * Caps may gain extra fields after the initial negotiation (e.g. + * colorimetry added by a downstream element). Detect such changes + * and trigger reconfiguration. + */ + const GstStructure *caps0 = gst_caps_get_structure(caps, 0); + const GstStructure *peercaps0 = gst_caps_get_structure(peercaps, 0); + if (!gst_structure_is_equal(caps0, peercaps0)) { + reconfigure = true; + break; + } } }