{"id":22372,"url":"https://patchwork.libcamera.org/api/1.1/patches/22372/?format=json","web_url":"https://patchwork.libcamera.org/patch/22372/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/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":"<20241217022422.4054343-1-qi.hou@nxp.com>","date":"2024-12-17T02:24:22","name":"[v3] gstreamer: Read correct colorimetry from caps into the stream configuration","commit_ref":null,"pull_url":null,"state":"superseded","archived":false,"hash":"c1d954a37cee8c1db53f95a3b11eaed108a8e633","submitter":{"id":195,"url":"https://patchwork.libcamera.org/api/1.1/people/195/?format=json","name":"Qi Hou","email":"qi.hou@nxp.com"},"delegate":null,"mbox":"https://patchwork.libcamera.org/patch/22372/mbox/","series":[{"id":4899,"url":"https://patchwork.libcamera.org/api/1.1/series/4899/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=4899","date":"2024-12-17T02:24:22","name":"[v3] gstreamer: Read correct colorimetry from caps into the stream configuration","version":3,"mbox":"https://patchwork.libcamera.org/series/4899/mbox/"}],"comments":"https://patchwork.libcamera.org/api/patches/22372/comments/","check":"pending","checks":"https://patchwork.libcamera.org/api/patches/22372/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 DF049C32F6\n\tfor <parsemail@patchwork.libcamera.org>;\n\tTue, 17 Dec 2024 02:24:49 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id 2707461899;\n\tTue, 17 Dec 2024 03:24:49 +0100 (CET)","from EUR05-AM6-obe.outbound.protection.outlook.com\n\t(mail-am6eur05on20622.outbound.protection.outlook.com\n\t[IPv6:2a01:111:f403:2612::622])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 6D35E61899\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 17 Dec 2024 03:24:46 +0100 (CET)","from PAXPR04MB8285.eurprd04.prod.outlook.com\n\t(2603:10a6:102:1ca::15)\n\tby AM0PR04MB6913.eurprd04.prod.outlook.com (2603:10a6:208:184::24)\n\twith Microsoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8251.22;\n\tTue, 17 Dec 2024 02:24:45 +0000","from PAXPR04MB8285.eurprd04.prod.outlook.com\n\t([fe80::e003:8fb:64ea:acfd]) by\n\tPAXPR04MB8285.eurprd04.prod.outlook.com\n\t([fe80::e003:8fb:64ea:acfd%6]) with mapi id 15.20.8251.015;\n\tTue, 17 Dec 2024 02:24:45 +0000"],"Authentication-Results":["lancelot.ideasonboard.com; dkim=pass (2048-bit key;\n\tunprotected) header.d=nxp.com header.i=@nxp.com header.b=\"OYlycmQk\";\n\tdkim-atps=neutral","dkim=none (message not signed)\n\theader.d=none;dmarc=none action=none header.from=nxp.com;"],"ARC-Seal":"i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;\n\tb=OYNHm1C5UNIsSRBay5PyvmCtAF/CcgPEeUFAyXuLKNJIIPcDDKcKTJPGJlqB8oILV/J0w2VV7rucoZwn/9Dq1XcIhH93O3As5jSVHxUgFd0s/tH+PW6BIINRdc9rtf01x5vEa61HAByyggBAVTiM4ykA1Lbnudrbncpm/qD6KmXus0m4uie7h9eUHYg/fsKKgOBz85cogORzq8x5rIW+CwDrgJHp9g6IV4auLAEAgG5Fclc1S2D+vk1orsTXgz8bor9tiB4lKeX8/KZvYQ+TlSBcoGQgxhLnfw8gmNIiEn/a8bTe3GJQhzXLdTUXKd52JtZcYC+xo7cSO3viZdc96w==","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=RRGXOhgffpYX+spCJQhe1Smv74p6QDDz8/4cGqE3iSY=;\n\tb=f1VPEMSf5eNQTBT35bIEaXbGky2v/3/7N4lk9UV2XLrToKRKw5D2mavYJcZHo/oWINLOvKzqT4g5tSz9MjTSKRaR+V++QPgBJKpY9M4s2qMMQR26N162WFLFfAr2DHumlPmlBQOnSKt3BCqwsMTVVHIhaxnOjPhG5zw8u9gT1iM/8PTmTPLU0GdBUbJ883OjWFnVykPudRdY3Q5z1l0PeWMR5c45eqHKnSkeEJofvMW8kyolEJ5yUoJCDGbCb/mkBqh+b+xxVwIFafe2apXOZ394QFtoyR47K5VbLx1+mP6x9xsxSdn8xxBSVzna1frk+enhuf8smEHYTljjISc0TA==","ARC-Authentication-Results":"i=1; mx.microsoft.com 1; spf=pass\n\tsmtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com;\n\tdkim=pass header.d=nxp.com; arc=none","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1;\n\th=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n\tbh=RRGXOhgffpYX+spCJQhe1Smv74p6QDDz8/4cGqE3iSY=;\n\tb=OYlycmQkPaeiiA9zSyz5MB9Bj4hYttmPBJpJMlZ4GM60xMi/G519njffH7q+83/salHvxbspQpzHr9m3G9zVV63ujZ2Egu88AJkE1lbrpBMPtSFOEADl9r6F6MowVBtNFm7Edz1SzoffZDlABYsgoNMhSl/M70kmHDcxAcpCkJbvV01W96ptLDyGftU4M5Wr82kufSKVpepfx0nBxT503ZJBtDtok++NWDKUFvSFwGehoKqqhhsW6b9dsFSfe4gLrtY8aX2BbXCpnCIy61kBm0T+P+60fblcHEwZx5/P05NUrhW+OBqWqOx/1als5neiTAcuEs28ekahE0Cil74ZwQ==","From":"Hou Qi <qi.hou@nxp.com>","To":"libcamera-devel@lists.libcamera.org","Cc":"jared.hu@nxp.com,\n\tqi.hou@nxp.com,\n\tjulien.vuillaumier@nxp.com","Subject":"[PATCH v3] gstreamer: Read correct colorimetry from caps into the\n\tstream configuration","Date":"Tue, 17 Dec 2024 11:24:22 +0900","Message-Id":"<20241217022422.4054343-1-qi.hou@nxp.com>","X-Mailer":"git-send-email 2.34.1","Content-Transfer-Encoding":"8bit","Content-Type":"text/plain","X-ClientProxiedBy":"SGAP274CA0010.SGPP274.PROD.OUTLOOK.COM\n\t(2603:1096:4:b6::22)\n\tTo PAXPR04MB8285.eurprd04.prod.outlook.com\n\t(2603:10a6:102:1ca::15)","MIME-Version":"1.0","X-MS-PublicTrafficType":"Email","X-MS-TrafficTypeDiagnostic":"PAXPR04MB8285:EE_|AM0PR04MB6913:EE_","X-MS-Office365-Filtering-Correlation-Id":"70b68bfd-9d21-47be-68c2-08dd1e41f8b5","X-MS-Exchange-SenderADCheck":"1","X-MS-Exchange-AntiSpam-Relay":"0","X-Microsoft-Antispam":"BCL:0;\n\tARA:13230040|376014|1800799024|366016|52116014|38350700014; ","X-Microsoft-Antispam-Message-Info":"rGEVeH1copepD1VZyHfl6OB6ig7J4K71m/pSYZ03Q58n5PTywOv0vlY0HjlUcmva0Q0Pn0SMabZV2B7JQiYUs+m0osFAlW/kVrMIvIC6i8XSih9LOxcX9zjmCbpClroVJwMwVR3fkZ+5OL9HvCz3JEQ8k+Z5621DdFuyCGYZ2ZnYgIt0/b33sD9Bv+VyH7kUUq8aVdxPShWZsEDF/SA5RTAT+W1QqE5RN/zuL66crG0KK9BMCsULe/uhXstVqQySB8NHR7BlX5xg8gVrqC8v779aVMEfpWtOsx128/ZrpRVCmVDaukNzJV6qBjY0P5V8Hz7Unj6lQsJuYPf5KvRnCQiRWzJUCWirI586dLLIxS1AWEm0VjF5bDvCPHw6edPgy/xhnhSkE9xeLEHt6YayTTduhiCvYFoLOZF6yOK9s60LxphLwtea0JRDWLRlJ3zjixT7D/ZWPUQpiAFVmeiDdL/aratCrlwfhoOEwBF0jSP4ecFDye84nWrLUJ/lxBSDHOPslJvypUH463QoQkagctTSWV8vdxSMW+n/ouj47JgVkQ2weYqedOC5kedqfDIan1dZAD/JWOapBPC18c2byHo+k1EdjHoC/hizbnyyCG3IQ5KZGn2hnL5515f5z73I2BLwSWebrqh0zqSKXUipBIvypSqIlc6+SrkdmNMSFqcegKTFRa8rgwDTnqmql4tYleUAj6l0e3cXZfuPJruEdfbhaohr7Pp4Jn9LQIpuIoYOgnuxyhPWMJz5c4ur2z36K6mny3ko1L2Q8FuYqcaXooWCcJYjVEGLrsUdzXyztaDTbBqPTw7H7a548BC0you9ZYvbtwESZU7wDn/ho35BP3yBCzHA02RPRAuoSibRopmWEsmLobhqzrmFMgYOLB20jAm/22WZAoHbjk2t3b6XjbFPRgHfaRb1hYMVUAAFDW8QjkxqpcSg2iQBHAdzE9QU9spZYLZt6KOM5/ucvx8W1DEKDc0b+iWidZNaZLz7eBcKnD3vvu6Vn93/jSIRGejDgoyoGiOoBm83NFQ0HqHOUEvmhbSzDpALlRSyjahn756FmWt4QpLUGumF5zp26wyuz5lqSZm9iiRveykgi4qyBcJv9yTWjcX1z0WUpdZ6hu0gMTtkN1M1NNxmAypRkMFX1yZPDdwJY14/gnY8O9eXovELCrn42JsPyCa3QC8p6oqrPp8Tow1EoCcPNOOOni5uF243srS8KtGb9TkzKP7PVZbPBM8s5rdgtIYkJZonM2jARJTSEghr7paQzA5e6E+w9JcyIt6dRmZB1yvUokvjBc6wVXC8Xn6p8OVBmPEJ8i4MxFkxigxHvjJ64PhMO/0mnBBE62unOq0dQmJbpnJKeXo+3eiQSnU5I+7b8Qz523Ti3g+6Toemm6j1KB2SqOqU0FeB9Z5xQls5dBXnaw5OD97sAarZii3G6dyCtPPCKEQXoOLfvu9rXTGj5U6XA8ks","X-Forefront-Antispam-Report":"CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;\n\tIPV:NLI; SFV:NSPM; H:PAXPR04MB8285.eurprd04.prod.outlook.com; PTR:;\n\tCAT:NONE; \n\tSFS:(13230040)(376014)(1800799024)(366016)(52116014)(38350700014);\n\tDIR:OUT; SFP:1101; ","X-MS-Exchange-AntiSpam-MessageData-ChunkCount":"1","X-MS-Exchange-AntiSpam-MessageData-0":"6uRbCeRaLVc7OcKieWMi/MqARMwdJQU+l1v8ETXltGuMkXWwwE0LIpE3lDhY5q0L6fFmOenKOccGC7/oateB75blcm1BgKlQ+qrlz8f6xoUP1jiuEWSAHZf5oJx+6lbTc58lzklFkXN7/xUDwdn68gB3i6dN9XAs6StReqjG2dr1iTs8m/rCVTnSYExrArlL9+aQWgNRApIABV8mOHhgZi4mcT7OqVNR9mRPYtMoTnVTFcVNNslZW3JIDP7VfHejvgGIHxzWO0q9PfYKEX1qB3vGXtpsgd02dvgPDeXdi7XIBH7hDO5OC7S290A0EJ0EEPmt4Npf0dnJYNWA/yWNIuB1dZ+BRF5IDP6R6LOVMipToiaFrx7i+ArxkKohUnORhXFt+zTAuPa73wpRM/OYKru2zVpFb/urLOYgfbE8dGUhI6thQWRLasIQG14OQLbT1/2lzjtxZERWiGe1bxfnvXwjUxvfgIq5tmch1Kqmg7XBse4YbCIQKvUBitixp7uLZh1AguBmu+Qw4YEC7+KiVv4ef5eJhdXAnfOU5ILfwOkVjQVRPN46km3/Y9iBM6xbiTRGEgLGbGqNQ4bXNeRF3vJlgRZI446swqLZognA0j61vr2CtvVcwIcerW4sAQYho3Rl6nJfh9WhloHC4uYrLC7DMd+/R3DWEooI9FK1cMpdytAOmuhwFJPH4PI6zaeEoJgJFG8WbwsccUfeuoLKxGN1JmuPQPKg9XYfLyDpmVyit1UNmbSFaAEbHEypzZbuF7A798dJzNtCXdPFCjYcFJzmWkrsVO1SV/u6f5YlJrUOWF02C3hxihVJyFnQVZELVLnlj8gvfoma2+tWPs22XpeFIwq338G64flMyqUuAY87mRCk4w5oxDyf1pUymHOa1WJiw05jArwBxB3kS5niFYlSQfM0gjGTX/JTAHZdUM78u198P1Wnc7tyMVOhAvmff5ywqS8DJn6QpTBT/04yCcfV1lM8Q2MPGxhslkEobggW8S5M5o0FMYgPNgWmV4IlWinaK90D/ngdG6mfetQhXxNHdvegU8ukBie6ojvXlf9kKQdtxWTRSZToRAsFi0f3XWS96W8TQ8NQ2lW8xG9aZVTU2rlIfNuRx2VECxNyG77eKV8vO810n2QNVJesQFEN89irBZtlL25zwM2Fp9FErY16RKrcnZxGvA9zuzKgh6jLPefHtzaiVQq1LQnYiMmwF382dxwsbnggDg4A4zN+xGuFe7QDafyX0AfAq4Q/WyPQYq+MbAKgUqBZdvpgXtEu5uNrOqgkCHHt1L+eS+rQjTY339UVLjSOrBseCt/7hHtg7Kiy8jiPNz7NHmid/YvM6am19HMt+dmiVW+C6cuHxQF4ho3oEW90gu2jSRkMZ2WngxAx15/EYrLgVYhmAuskr6xTGhokOjJ3iuoallWqgz22CVnMLjxyfjTW3qiPnBxWy84jlA6CmkIGjRgZIC8uHaRlAhbEYBV291KrF0XDcOKdBB1TdEx/gF3YIlcAoghsHVFpqPJSLQdDe2spfh4gyJTqDmcC1QkyZa9nhEhsNaSawpEiaZl/Fli2nguD+AU=","X-OriginatorOrg":"nxp.com","X-MS-Exchange-CrossTenant-Network-Message-Id":"70b68bfd-9d21-47be-68c2-08dd1e41f8b5","X-MS-Exchange-CrossTenant-AuthSource":"PAXPR04MB8285.eurprd04.prod.outlook.com","X-MS-Exchange-CrossTenant-AuthAs":"Internal","X-MS-Exchange-CrossTenant-OriginalArrivalTime":"17 Dec 2024 02:24:45.2897\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":"IyOAozVYzqgYiEvFGZaHLbf2dzXWBMF/xwylYY2/SSZxDH17Wa67pEev3X/vSG1O","X-MS-Exchange-Transport-CrossTenantHeadersStamped":"AM0PR04MB6913","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":"When libcamerasrc is negotiating with downstream element, it first\nextracts colorimetry field from downstream supported caps, then set\nthis colorimetry to its stream configuration and propagates the\ncolorimetry downstream.\n\nCurrently libamerasrc only considers the case there is one colorimetry\nin colorimetry field of downstream caps. But the issue is that\ndownstream caps may report a list of supported colorimetry, which\ncauses libcamerasrc to set unknown colorimetry to stream configuration\nand negotiate fail with downstream element.\n\nIn order to fix the issue, need to fixate colorimetry field before\ngetting colorimetry string.\n\nSigned-off-by: Hou Qi <qi.hou@nxp.com>\n---\n src/gstreamer/gstlibcamera-utils.cpp | 5 ++++-\n 1 file changed, 4 insertions(+), 1 deletion(-)","diff":"diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\nindex a466b305..7b34c759 100644\n--- a/src/gstreamer/gstlibcamera-utils.cpp\n+++ b/src/gstreamer/gstlibcamera-utils.cpp\n@@ -493,9 +493,12 @@ void gst_libcamera_configure_stream_from_caps(StreamConfiguration &stream_cfg,\n \n \t/* Configure colorimetry */\n \tif (gst_structure_has_field(s, \"colorimetry\")) {\n-\t\tconst gchar *colorimetry_str = gst_structure_get_string(s, \"colorimetry\");\n+\t\tconst gchar *colorimetry_str;\n \t\tGstVideoColorimetry colorimetry;\n \n+\t\tgst_structure_fixate_field(s, \"colorimetry\");\n+\t\tcolorimetry_str = gst_structure_get_string(s, \"colorimetry\");\n+\n \t\tif (!gst_video_colorimetry_from_string(&colorimetry, colorimetry_str))\n \t\t\tg_critical(\"Invalid colorimetry %s\", colorimetry_str);\n \n","prefixes":["v3"]}