{"id":27512,"url":"https://patchwork.libcamera.org/api/patches/27512/?format=json","web_url":"https://patchwork.libcamera.org/patch/27512/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20260728054311.482231-1-elliot.chen@oss.nxp.com>","date":"2026-07-28T05:43:11","name":"gstreamer: Reconfigure when peer caps gain extra fields","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"2d15020ea094280d45ba3718abebd694ccb381ef","submitter":{"id":443,"url":"https://patchwork.libcamera.org/api/people/443/?format=json","name":"Elliot Chen (OSS)","email":"elliot.chen@oss.nxp.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/27512/mbox/","series":[{"id":6087,"url":"https://patchwork.libcamera.org/api/series/6087/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=6087","date":"2026-07-28T05:43:11","name":"gstreamer: Reconfigure when peer caps gain extra fields","version":1,"mbox":"https://patchwork.libcamera.org/series/6087/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/27512/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/27512/checks/","tags":{},"headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 14524C328C\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 28 Jul 2026 05:43:26 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2399467F90;\n\tTue, 28 Jul 2026 07:43:25 +0200 (CEST)","from DUZPR83CU001.outbound.protection.outlook.com\n\t(mail-northeuropeazlp170120005.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:c200::5])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 2F51A67EE4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 28 Jul 2026 07:43:23 +0200 (CEST)","from AM9PR04MB8244.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:3e0::24)\n\tby AM8PR04MB7746.eurprd04.prod.outlook.com (2603:10a6:20b:235::20)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.270.12;\n\tTue, 28 Jul 2026 05:43:21 +0000","from AM9PR04MB8244.eurprd04.prod.outlook.com\n\t([fe80::a59f:4bc2:f026:4012]) by\n\tAM9PR04MB8244.eurprd04.prod.outlook.com\n\t([fe80::a59f:4bc2:f026:4012%4]) with mapi id 15.21.0270.009;\n\tTue, 28 Jul 2026 05:43:21 +0000"],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=NXP1.onmicrosoft.com\n\theader.i=@NXP1.onmicrosoft.com header.b=\"cBYwCbPl\"; \n\tdkim-atps=neutral","dkim=none (message not signed)\n\theader.d=none;dmarc=none action=none header.from=oss.nxp.com;"],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n\tb=eFd9GTvComC3pLxil3vvOrPkhYWl9AFyyuEoRtuZhk7+47tQZ20DRHT313k6SfxdCt11d1n+twW6W7ZdgFfInr/wEZElyQit5YS5XbwTbQNW/caXOvLsszSJhdEFkr9FzRoxDbKSAEP5lC6tUX0UxOt8LY9Wcu2ejlkQ73+TMjhto9Yn8H55D2cKKaYeeEa0LT1BEl2gGuU3rwoeZQpAKDy3utIb1L4Cm4z04akYZbZGrDUGlcW42dG+DvytOSlzIliAvajmUFclRrqgz251kCujHinHqy52kzj22LC2ZUlB0WNZIcxEGtp7Ccff1PgY21AKs+QzbGysUHfkwAnMsw==","ARC-Message-Signature":"i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n\ts=arcselector10001;\n\th=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;\n\tbh=sfEBzuK/FwKlHPftaiGPLDKRLroajDgRNqWrp+dO64E=;\n\tb=OZHzbPCLopKNg/ZjGDBfhTMOBFYQ6DamMRXU6J5QWA0dV+bJ8hUu20xtNn/GpED8Kx4XUfEsBM6Itfps7tAhJixelikXHU7k8IVgawMgG0U2BRuOIWKKAoex48XA0jtoHkSBP5uW+WwVxcwn8Svx5ygCfVmCl7U5aCUAIR2o+VAOXXmlYH0m8AOtBGCTWYIS6JSF4pZ14wh6PxEClYYxSqlvYgc9k91Eo+n9S9vfzv1cC4WHP4itFHTOugVRysPPY3FuQTR0JEIOeTFjwkx9n1Yp4FNPEUtLDkdYEZFRekmQMYUa9N0uXoZnHjwGTjM8VrMiYTqzwVDBxFW39dFLJg==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n\tsmtp.mailfrom=oss.nxp.com;\n\tdmarc=pass action=none header.from=oss.nxp.com; \n\tdkim=pass header.d=oss.nxp.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=NXP1.onmicrosoft.com;\n\ts=selector1-NXP1-onmicrosoft-com;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=sfEBzuK/FwKlHPftaiGPLDKRLroajDgRNqWrp+dO64E=;\n\tb=cBYwCbPlvGSS8t9YTIou2b2Ui9T9Qr0XKRAcysT1414/ptJRdYrY7l1ZVTbIP3Xp7FNbrwLfPS2e3UdRN3Xm01xAr8Gxb4e8MKQkzfStWTPF6Nq8M9c3Zd5RAFjn+zWFEBcTZ2HW9PI6ygUQhexK+MuksaYyPra9mMNC8wgzjnxiJ/GOVTIv3SY3eBk13aTVvlDVFjBL/7DOZ1OCaZzYJU92A51dAD72NtQM4ykmyC/Kcgm5FfBnOfFl4FT9HETvd89i/1jUYDKShlp5hw8XPOYiTNd/jP0+btt+vkXrNGoAlW/e78AM3LCCBJL3QNY4U5lqdCCgFggw80xuIzQLxg==","From":"elliot.chen@oss.nxp.com","To":"libcamera-devel@lists.libcamera.org,\n\telliot.chen@nxp.com","Subject":"[PATCH] gstreamer: Reconfigure when peer caps gain extra fields","Date":"Tue, 28 Jul 2026 14:43:11 +0900","Message-Id":"<20260728054311.482231-1-elliot.chen@oss.nxp.com>","X-Mailer":"git-send-email 2.34.1","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"MA5P287CA0123.INDP287.PROD.OUTLOOK.COM\n\t(2603:1096:a01:1d0::17) To AM9PR04MB8244.eurprd04.prod.outlook.com\n\t(2603:10a6:20b:3e0::24)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"AM9PR04MB8244:EE_|AM8PR04MB7746:EE_","X-MS-Office365-Filtering-Correlation-Id":"66fd914d-c1d0-4910-1b7e-08deec6b21de","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n\tARA:13230040|376014|366016|19092799006|1800799024|23010399003|56012099006|11063799006|10067099003|6133799003|18002099003;","X-Microsoft-Antispam-Message-Info":"48uxWXvu9f0o+fKOpshRlY9fr8HpY5GcoEYDdpknQcKBpiLfoQqCVC8Ex+sPHjTiA7JTeGqCXRslV9e1oR4Q2gW2Tg3lJEeqWxwL/Ig4HEP7+9LSdhLgk3vNWeQpK3CRou3udIh4OKuBRNf5P0+cEyZ0nccRRUF8BvEgavceob6gOPvr5yXt6yCGrrlg/B6uKEjt0j3BBVrbdXR76IFRESH1VVnk9AyaGj6JGaNGSUSAG9hrG8l17S3ZmjoH5wwfV8YcC+7PZGHX+uLPVOW4BuxSfbasr/geFSTsYCiIV3N0qlzARcCxjMCzZPpggQi7N72IzHtllBwGWTkQO4wEvMDf6TWSp6lCYNI/PqR50nPGV2jnOvlN6oLjFjfHxvmhQTkXohuiQ9ZhRyqWdTCtdqkvcOTZDdPYZlwB5dj/msIvZBocHPVfhJbUlRc4eeeb2WWBZmGwQlL8c5eqasAmTluhDo4OPQzKmO4S1LYDzBpk6L50q1VdP8fCXhCgQEqHe7QYiKF6v39cJNw+XBN/oq3HN+8mko5RIuAPhLMvmI1XpZN5MuhK0ir8wt/Diy2kZx6J5lFmMNn7oKLfQcyZ97m25MchbzIzUNuQUJqN9lxHFPdLWGhuDdaLFbkgpgAS1hNFatqgZfyFPzUyGdBEgf2BIdzTtzbaLnSPLLVKYjo=","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:AM9PR04MB8244.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(376014)(366016)(19092799006)(1800799024)(23010399003)(56012099006)(11063799006)(10067099003)(6133799003)(18002099003);\n\tDIR:OUT; SFP:1101; ","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"Vw9kp3L1nltOHLdIDhqpWSRrOWJqmXDkm/T4SCLGPinxHa724C6+6Eh6l6l9vnLWE02wyd5XyhwmP779kWr09Pj2Jnln9swM8iM5E+GSvuT125QuZmIgroe018MYi/vTsyM+YmqZSvcPlC4/9vhOMUFhYO6sgayDQnPDhOXe9fzonyg66JvM9fuvufjEL3hRPa1fpg3v5IT8zDtzEmV4xma9ux3PGLtUcKG2Uy+ZhEeNs/Y0cjRUkXrY6/p8JkQLpvx+uZjnajz6KGZVjdXvLT0CPCT3fG540daOQruJYPYsZuZ0+wEdKqsteqamP3ctiT5w/O5IjAZ9WzrIIugKVECPLkBlJQwrZHXZkq7HqYB0Z8aPcvRDBkRu+WvxDsiLJPpynkIaUzpHAf/k5KVISYR/IlLHvP5c2HyXdPHtFm2xTZX41Xj3zNuczYRjVkavobV0Zbr4Dp3NHtwvNjWZl237l8jDSENv44H6vih0WwpOWWZYauGAb0D1nKf6HISzIiM3xM+lzxvRHmP2YGkX+OX+mnisFudFUsIuQUp8JtehkaY+co7ngMluYoIKseFRiSdS3dOHTHEC/aAxk+27Fr+HcdliOvfEeCE92P6AOEE9lwB2b89m7LMf06ULq8Z8FSHf9Phb8S6/T79pD1bPnB4bevrRlO4J0gEJ6XADK49X25S7HpOdWZa5JaiNtMC5+0DbB9sWtG81z64zeOR5Iyxn6SF39J4NXqDGtkATCcjmqXm+kg1wrjf/s/hXjOhgKF2AiwvTehei2fg2fFD2d+w8PUpUXxDBK4iRt4IozvBhvvG0ORXfDVcaPiKCG1B0VFm5cxjwJioes43vouCRv0k1hC2gG9RreBng9kITQ/YLlhIhycmK77L6X2VcWt4eZAUb5K/yADcImX1oWIzGvgDN2+AB60XiYvmKG4OdsmuR7z7SsMlwSs3mMUzO9hz5Hk8+flEccfVmUm+AoGa1i62mG003lMpxaGo2oV3rbESi+HXCT2yTCT+MJgfnc6/rurohmEKvqUS2bxjsknKmar2rDwACFaTRUZv6WvX8TdhwnLsusrwkTa7yLHtO+XGA5WaCMtmdN04KF06vvI9EN3Hu+/XxTLpu69zcwsLCIXovn+cPNpuxSAWYu+KqKGEXMAmIpWYx7njW/sxJC+W3VKB3n0Ce80DMwprzUtBNpzzlxW8KHrbf8BsmjaWcrevVP0+YHAtZ1Ug++2MUtAqhz+k0pKE/CzwHXHGUL8n4bE0Ee26GUzb04F72UEGT9r7tY9RX5m+loZ9qOaGcutsDPFyD3E+cmHeAzKcMLWscudY5X25ibj0fiRowitoYnCA3O10fYMLe4RndNepb/IX3Ks5tZN1zEVByDMDLp71OPnTaU2B90CrboRGbDKc+52Q40AnRM/O+YyvKiUTN6IxPioL6KgmhfB1UX++mbXOOlBsTNqcjmfNDTK3kv0A58pwmLVB1LjtbxVekob3IgPiQKD8E29XiryuASXbes3vPkBHnwpm8PI43Xwf8WWpb3/0QeJD6VtQsDA1N3cYUNdnE4amkj37KBSwAyrGvrOTZREWVaNfiPQZ7uaaa51VIIr2I0Q58OagG7VJcgduQaZsAB/cUJw2aWzXY4XewIOvO9yJbqW4Q7Irs2j9nr4HOeyv+w0MELYBm8pAeuG5sRIR02Q1IbuHLEFqK1LZEuldoHqAaZSW9ZZF8W6K6JKcXT73rN1U/vr8D86gILZLsvZNhkTNaSGym+G7HlLffLc1tAOHZNWSiENi8nEAQP+bSrrU/","X-OriginatorOrg":"oss.nxp.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"66fd914d-c1d0-4910-1b7e-08deec6b21de","X-MS-Exchange-CrossTenant-AuthSource":"AM9PR04MB8244.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"28 Jul 2026 05:43:21.0414\n\t(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":"I5xxfrFVWKyCE9OkFgHthZPGKXBnvJghZdP/i9HimRqG9GNLG4fOOjQ+o2cMRGDxQ0hMnmmYKmfY1CARjOT3QXQ5y9cMB/E2RVrNqm3SQVPoatNhQGrqG/VyVe2h/xwk","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"AM8PR04MB7746","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"},"content":"From: Elliot Chen <elliot.chen@nxp.com>\n\nAfter initial negotiation, a downstream element may append extra\nfields to the caps (e.g. colorimetry). The existing check only\nhandles empty peer caps. Add a structure comparison to detect such\nchanges and trigger reconfiguration with caps renegotiation.\n\nSigned-off-by: Elliot Chen <elliot.chen@nxp.com>\n---\n src/gstreamer/gstlibcamerasrc.cpp | 12 ++++++++++++\n 1 file changed, 12 insertions(+)","diff":"diff --git a/src/gstreamer/gstlibcamerasrc.cpp b/src/gstreamer/gstlibcamerasrc.cpp\nindex 9061f9163..88717b048 100644\n--- a/src/gstreamer/gstlibcamerasrc.cpp\n+++ b/src/gstreamer/gstlibcamerasrc.cpp\n@@ -744,6 +744,18 @@ gst_libcamera_src_task_run(gpointer user_data)\n \t\t\t\treconfigure = true;\n \t\t\t\tbreak;\n \t\t\t}\n+\n+\t\t\t/*\n+\t\t\t * Caps may gain extra fields after the initial negotiation (e.g.\n+\t\t\t * colorimetry added by a downstream element). Detect such changes\n+\t\t\t * and trigger reconfiguration.\n+\t\t\t */\n+\t\t\tconst GstStructure *s = caps ? gst_caps_get_structure(caps, 0) : nullptr;\n+\t\t\tconst GstStructure *peer_s = peercaps ? gst_caps_get_structure(peercaps, 0) : nullptr;\n+\t\t\tif (!s || !peer_s || !gst_structure_is_equal(s, peer_s)) {\n+\t\t\t\treconfigure = true;\n+\t\t\t\tbreak;\n+\t\t\t}\n \t\t}\n \t}\n \n","prefixes":[]}