From patchwork Tue Dec 17 02:24:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hou Qi X-Patchwork-Id: 22372 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 DF049C32F6 for ; Tue, 17 Dec 2024 02:24:49 +0000 (UTC) Received: from lancelot.ideasonboard.com (localhost [IPv6:::1]) by lancelot.ideasonboard.com (Postfix) with ESMTP id 2707461899; Tue, 17 Dec 2024 03:24:49 +0100 (CET) Authentication-Results: lancelot.ideasonboard.com; dkim=pass (2048-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="OYlycmQk"; dkim-atps=neutral Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20622.outbound.protection.outlook.com [IPv6:2a01:111:f403:2612::622]) by lancelot.ideasonboard.com (Postfix) with ESMTPS id 6D35E61899 for ; Tue, 17 Dec 2024 03:24:46 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=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; 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=RRGXOhgffpYX+spCJQhe1Smv74p6QDDz8/4cGqE3iSY=; b=f1VPEMSf5eNQTBT35bIEaXbGky2v/3/7N4lk9UV2XLrToKRKw5D2mavYJcZHo/oWINLOvKzqT4g5tSz9MjTSKRaR+V++QPgBJKpY9M4s2qMMQR26N162WFLFfAr2DHumlPmlBQOnSKt3BCqwsMTVVHIhaxnOjPhG5zw8u9gT1iM/8PTmTPLU0GdBUbJ883OjWFnVykPudRdY3Q5z1l0PeWMR5c45eqHKnSkeEJofvMW8kyolEJ5yUoJCDGbCb/mkBqh+b+xxVwIFafe2apXOZ394QFtoyR47K5VbLx1+mP6x9xsxSdn8xxBSVzna1frk+enhuf8smEHYTljjISc0TA== 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=RRGXOhgffpYX+spCJQhe1Smv74p6QDDz8/4cGqE3iSY=; b=OYlycmQkPaeiiA9zSyz5MB9Bj4hYttmPBJpJMlZ4GM60xMi/G519njffH7q+83/salHvxbspQpzHr9m3G9zVV63ujZ2Egu88AJkE1lbrpBMPtSFOEADl9r6F6MowVBtNFm7Edz1SzoffZDlABYsgoNMhSl/M70kmHDcxAcpCkJbvV01W96ptLDyGftU4M5Wr82kufSKVpepfx0nBxT503ZJBtDtok++NWDKUFvSFwGehoKqqhhsW6b9dsFSfe4gLrtY8aX2BbXCpnCIy61kBm0T+P+60fblcHEwZx5/P05NUrhW+OBqWqOx/1als5neiTAcuEs28ekahE0Cil74ZwQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nxp.com; Received: from PAXPR04MB8285.eurprd04.prod.outlook.com (2603:10a6:102:1ca::15) by AM0PR04MB6913.eurprd04.prod.outlook.com (2603:10a6:208:184::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8251.22; Tue, 17 Dec 2024 02:24:45 +0000 Received: from PAXPR04MB8285.eurprd04.prod.outlook.com ([fe80::e003:8fb:64ea:acfd]) by PAXPR04MB8285.eurprd04.prod.outlook.com ([fe80::e003:8fb:64ea:acfd%6]) with mapi id 15.20.8251.015; Tue, 17 Dec 2024 02:24:45 +0000 From: Hou Qi To: libcamera-devel@lists.libcamera.org Cc: jared.hu@nxp.com, qi.hou@nxp.com, julien.vuillaumier@nxp.com Subject: [PATCH v3] gstreamer: Read correct colorimetry from caps into the stream 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 X-ClientProxiedBy: SGAP274CA0010.SGPP274.PROD.OUTLOOK.COM (2603:1096:4:b6::22) To PAXPR04MB8285.eurprd04.prod.outlook.com (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; ARA: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:; IPV:NLI; SFV:NSPM; H:PAXPR04MB8285.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(376014)(1800799024)(366016)(52116014)(38350700014); DIR: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 (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: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libcamera-devel-bounces@lists.libcamera.org Sender: "libcamera-devel" When libcamerasrc is negotiating with downstream element, it first extracts colorimetry field from downstream supported caps, then set this colorimetry to its stream configuration and propagates the colorimetry downstream. Currently libamerasrc only considers the case there is one colorimetry in colorimetry field of downstream caps. But the issue is that downstream caps may report a list of supported colorimetry, which causes libcamerasrc to set unknown colorimetry to stream configuration and negotiate fail with downstream element. In order to fix the issue, need to fixate colorimetry field before getting colorimetry string. Signed-off-by: Hou Qi Reviewed-by: Nicolas Dufresne Reviewed-by: Laurent Pinchart --- src/gstreamer/gstlibcamera-utils.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp index a466b305..7b34c759 100644 --- a/src/gstreamer/gstlibcamera-utils.cpp +++ b/src/gstreamer/gstlibcamera-utils.cpp @@ -493,9 +493,12 @@ void gst_libcamera_configure_stream_from_caps(StreamConfiguration &stream_cfg, /* Configure colorimetry */ if (gst_structure_has_field(s, "colorimetry")) { - const gchar *colorimetry_str = gst_structure_get_string(s, "colorimetry"); + const gchar *colorimetry_str; GstVideoColorimetry colorimetry; + gst_structure_fixate_field(s, "colorimetry"); + colorimetry_str = gst_structure_get_string(s, "colorimetry"); + if (!gst_video_colorimetry_from_string(&colorimetry, colorimetry_str)) g_critical("Invalid colorimetry %s", colorimetry_str);