From patchwork Tue Aug 18 03:10:46 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: 27835 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 E3B3EC3308 for ; Tue, 18 Aug 2026 03:10:58 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 121A0682B1; Tue, 18 Aug 2026 05:10:58 +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="HqmLgpp6"; 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 71B1F6819C for ; Tue, 18 Aug 2026 05:10:56 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=BxSsSUl29xwVlde9zl/XLjJBARCjlTbn1L7bz6y/BGZ3ah2gEqeflE2/M+n494v7gWZkiUgfOgYuQ0CxsEFavh7lCHCG2Xrf1/4gUfemwfkoveE72q/Y1tl/oSNq/Yeaf/1gdnxN7obZ3E5Qegu08FKHiW8/yyl3Dplc5dMAettF9aoUq6JA3e1j/FcYP3QKGhmYD3DvCQ5t6OCHHQgnPE1egUBmcwpEYzaDwXk2tSpA1F664mgX2OVBR0u2aLpRoPBRwjbPto9iYXPMGHsEQbOu3vws5weZpnriTtdFeEpoJLtmySg8fpmtILYdv1XD5Nj7TKkzTYBRlaLgoJxudg== 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=K4A33IX8bxGsHmNVbr4AfpGDpFWYf1PVGOOcA9M2n9E=; b=YKOXkk6j0HbBukV/bPEnQbWLjXmDp8C30GOfEHcYAQ/GDhgpIMToepimktqLtnsG68hCUFLroUSJo3tzHBfhDM9P99r5ptW1zXuiiya6f5Gz4UmC5pHf4G5Zb6tEXB82KUEfSwsSStTWlSAEJodLRqn7KLNy5cYSDXYFtO0DGyH5Vul9hbybbOCNkQk22Zb/CtgaLEpg9uxpKYGcv3CYCo63QxyL08lUTasfu7Z0a5UohLBUvVwNhsm91e0/jFbB8vX7Dk6tP7JYAdaUqHWfcGzvWodE30dDHQdJYnFP7ojTbPD1JFihmhLM9N8gDNvNm87zyz0sbdAGhb6JJKjaqg== 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=K4A33IX8bxGsHmNVbr4AfpGDpFWYf1PVGOOcA9M2n9E=; b=HqmLgpp6aturXydR6B9PZCNoh/1YhVXzSAamemgCrRPgz4ll5x2Gi5atu6AOsqJnI8Z+6X/MpXmUc1vI77AjJRdqYhiDncCCaSk0zumooaMBU0gPQWywjNUl9SwYsNdHe5ApIDzGExNPEz0V47CcD2+dgCOQ9ilCeuuDThDfbiHxQhh6Ac7+Wiz+xlvSRNjEvStQ7TVujeYCDgHuCygZCA+bUky72WWNHTLN12esiHWjCrk/redyR5Igd+ZbZzBOZqsBapLZNsW00xC3fTk+nB0ebze4hdbClo0YhxzyCiRVghNiXO/gQM/f/9Bq3SuRxffLuZ7FF3Yqf8eaZR+hgA== 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 PA6PR04MB11946.eurprd04.prod.outlook.com (2603:10a6:102:513::11) 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 03:10:54 +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 03:10:54 +0000 From: elliot.chen@oss.nxp.com To: libcamera-devel@lists.libcamera.org Cc: Elliot Chen Subject: [PATCH v2] gstreamer: Reconfigure when peer caps gain extra fields Date: Tue, 18 Aug 2026 12:10:46 +0900 Message-Id: <20260818031046.2791348-1-elliot.chen@oss.nxp.com> X-Mailer: git-send-email 2.34.1 X-ClientProxiedBy: SI1PR02CA0015.apcprd02.prod.outlook.com (2603:1096:4:1f7::18) To AM9PR04MB8244.eurprd04.prod.outlook.com (2603:10a6:20b:3e0::24) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AM9PR04MB8244:EE_|PA6PR04MB11946:EE_ X-MS-Office365-Filtering-Correlation-Id: 772082d9-460b-4672-5e07-08defcd65097 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|23010399003|1800799024|366016|19092799006|376014|56012099006|10067099003|6133799003|18002099003|11063799006; X-Microsoft-Antispam-Message-Info: p1axuBTKM22/Eq9xEPLsDe2vYSxqx+GN47Z0dOsDb9dxM68a3pf090/94xXHshnbZZ4SrekCAhrbAgMFNmPrw4oKRYsuyj/yLV4CIzy5wTCu99DH34pOM/vfOVb2qvNOrfJRFjmWSuql3vnE1/kJ7KV/g2aGDgwjE5eUcCFlh/AUyoS5EjWgI9qlW+Q1xqHHO6jMsK++DSZsvlG1ZzCOONtTqcnhKE+tdXRlzUrVpbEuq0kSMqai9se1/skHIN087wefXDpvLX9cvjrseyeAuUg8vu0x/9InCCDKgKDPUTk1VZES88mNRQqvor9s1G0ZKDlRBNWbditTjGZ42lVGOCX4Cet0/1qunawShNgjxREnJbdT3uToboXjCSMfHNfm+pakWoiW7LBThCWusTKWiQi/vD07SbzldIn4krYABdP9rdQ/6ldFebV1b2ffsCRiDZ3rG5NzY3raUBRX+EzSXbCU4etpc6uNTl3qUHRfGgyspVWF1aGDsSk6pK19p40WnSksBOJlqoqhm+bdQcEIHPcf/IWxPs8vLn0Uqs+7kyYs0/k0oQ6ZZcVq7UfyV26T1rlP0hJMqXbbEFZCHsaROY7mzDp3Qw+3DSvYy8IbfnrPUrViumvA/n80YU08Ob83K3oaMbmIv4V5snmEWokhLb5ItBqj+WBXPPVv7x0D4Bk= 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)(23010399003)(1800799024)(366016)(19092799006)(376014)(56012099006)(10067099003)(6133799003)(18002099003)(11063799006); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MWiPNT9LAPBWhs6WemA62CdJAVwkyyQwh4Roq079pPqTFjQWOUbVsLei58GgRbJdZy3TXgu/2a33Vx90CqZjvG2Sf8LDe7Ivn4m4hzMb3wuFxycerqkPUWZH51e3Y0TTYCjz3HK1GUr3dCTb7ez6p01SEj1NCnhTUP0wHfCPjAYMIwEK8DLxfLzWNnO1KLG/4Q3yZIlkvQANcatG1cH1ho/x2gqS+9gF4YsWCxWVXqc88ICj0HROqvhyTa+jSmUS8X7a2tFJ2gX8H5DirgKQw4VU2k54hMeykmRXsSMHwq+7z21OP1pvMk2OledG6F19ardm0TfNm9Z/Cm0eWvF2D43LOzry8BNb0di2WW4hAoIIM7h7i+aSudu29QB6daJAzaRk3ZXviRFa17b2nuqQs3lLwUwHJyr1QNB3Ts6hDuipRsWdPRyxd9pzl3qORx+wW0KVf6gAXrUDO11XOQZD45Mb+MkKWrasjVtodIVQPSPQ8SwOR8MGYm8ov/iaraObvNIY1RQwg2q3GB1kzch4JFtI/oQIFG3utS2/RHWpkZCTLbGJ9MzMH2XQYci22wHdoSYvrBvbsX/ha+TWD1s9bYCup0Moq3Dx8gS9bla4NXvaGEMzoLI/UaV0KK35mWr8rZ/eon9TwiMaapTAMy6wxjnYN+FtIBQjA1oN3swVHsSWWClQ6UfMsrK8tKvdsaJkVYjkxx8XSnTGiqGaypgSxB/m6rtScAXpVQRUK3S7AiQXxxif52BYxiQUg7TK+Z8kzMPLUGkPAMxysGNI2KMky08/DO/Fasli1PFH6M0N5Y35DL671vvxfsOfuy0VzAYNv1XzcwU+Av+wcJtU07mTiGrLu3JaKqleZxGGCR8tzH6MvSsaGocAWXMMWTdTGpahvTMgcIONwjz6YKpixbSzaF80QLd4yGVeHAkKqBtGQgVBiKjG0Vm4qTi6Kq58l7dhYtT1CYdRoBvfBVYNSk9P57RfCU9FQzRB6nnddXznotR2WaBSKjhPQ/pIcXTsj4Sj8KcwXAUYp0Pdy1uUge0eF3nexu5t7PSs3doPokzspLk5aAwUkkqIYLDvwEHxrCNCzvcqrUcmcgr3nBgxO1pKrEHQVT3Ltvj+zgegUHPH5iI5hcwDoeyJ/1arPRjm2M6BBGc1SRXdsze1JNmfmjS/79dIt0XUGPEQfgErVDEZMJS3DiStt/nxWiOw7rY5JyE+lpNnAX9Vwp01shCAE8NvOiGnCQQIIJ6RxlbyB5TfS2D8w5Ie7FLJt44YKcovlbio70Hfx9ysyFzCrEis824eRIlsXw5VKF07Tn2R4jWBzvu9FfK24bLnip43BDqhC5xGBqX0CfRqCq68BnmKPA0VX1Qdg/ekeBRdDnTx8MJJx+tm/F932LMoVy5M9JZb9hXSlLvV3ves0cShk4vuxLE8OLGzt8yRU9zz29cO+knaDStyDVBlJqefZXW8cxFWVhM9e7o4gfGM0TOe1wEUW3gRMn29brsEMbXskeBUsJfgppXEsxfjBnrJRIsAj6tf5nzJgOZ9d9t/qmBPbAXXS6yVr9oTw3yB/HDopSSmyVBTpz5VCO//AyjiV9Ys1VOmOu83AfZC1HAUr8JS8+dSmWEiinU88JVJNqSxdyQ/JpXPstAti/jCTaFGzAmSvscPsFocEEGB5937U8OdpK6SqtbjEBXvOxszydtApAp6swb3FE32rNuWHvptzshJTEoXDEy3f5JDrvF4GfxhjkqUX1T0UKbY7M3kQ6A2e2bKJ4wgTdPGZAUA1XdyGBqj/yTQgORs X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 772082d9-460b-4672-5e07-08defcd65097 X-MS-Exchange-CrossTenant-AuthSource: AM9PR04MB8244.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Aug 2026 03:10:54.4351 (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: VZWRVYFYeIrJ8FQUqqAqwEiTXCNdLpRYfJcHB0UZ8xuUDvVHkKTkvjOI1k/8UfPVzXgIQfs8jeZL3JB0TP++mWHrxjoYTGj5exKvE8RcLYf4NqW6I7pOAQKn/3msub4P X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA6PR04MB11946 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 --- 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..24a4293a5 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 *CapsStruct = gst_caps_get_structure(caps, 0); + const GstStructure *peerCapsStruct = gst_caps_get_structure(peercaps, 0); + if (!gst_structure_is_equal(CapsStruct, peerCapsStruct)) { + reconfigure = true; + break; + } } }