From patchwork Fri Apr 18 08:54:16 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ming Qian\(OSS\)" X-Patchwork-Id: 883382 Received: from EUR03-VI1-obe.outbound.protection.outlook.com (mail-vi1eur03on2043.outbound.protection.outlook.com [40.107.103.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1B31A2505C7; Fri, 18 Apr 2025 08:55:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.103.43 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744966507; cv=fail; b=R7rYL/zBv043wjzGR5Xogy+SU8npHrcK9c14D2Xzq8ueNoX5xJzBfVFXOijViDIszstfNvo3oEha93yjjolcDeJBKd+swvNVH1lWRkboGgZB/AhTvL0fVUWhCsd0LTeHIYVHWlyti2A1spHm1cVfPO4pMakypW0Hitlz2WD+mgQ= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744966507; c=relaxed/simple; bh=gJstuIF1CKhxbM+Glcrj45L6zsdko9sMKWoNtVmGBls=; h=From:To:Cc:Subject:Date:Message-ID:Content-Type:MIME-Version; b=Rmu4EFybE3wrseD7JQrW3waz9mktum8vj4nusRw6ESUn0dL8nO9OqQacalnuNjWcQXSr0ecGX3H8UEkr2FFnvgFQ/b99bjG0kC99Ik+SO7iD4iRbkZ6VAJitZJdmmfwvQG9xsI3XPHqO/OfgvqsCIL8MVUuMi66Kv4EK41nbEDg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=uOMb3q2v; arc=fail smtp.client-ip=40.107.103.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="uOMb3q2v" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=I0DlZUNGud6HeArwHMm12nxHnU3rYdiEAeL1AAXNTnTtAcfTmFmQtkaeb3MMtrTKGpA9EkQzwI+PM4mCiIlr5844P5s6MN4TOm6t3aDRXXVe6WvpjOZDzpL+b9UhqoMoPKnKXev8LOOGe46a9oe3cicJiJI0xh2e2AuIwV0nm71e8+Wpgc9ZDDGmhSTFFowx4BFqUi2weu60nwrHFDg42bPR5gD2JajrihVwFZpkqTZXI1jP8TVWFQrdMQjwNXHGNp4dC+9rsOItgZv64qrYqO1XxqQ7M6Pd/s9zCFDSzpprz2F7Mqy9TIqTsfdsZLqJD/BapgneILXXmnxLBsK19w== 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=siBnGeU+wvlM1+a3keg5az999ARuoeHCGZClqtH4URQ=; b=UM+7UohdWMem1MhjptmaS9injKCWl7+h9Fs0bO+nbpjbIVyyPW3iQNObs04la/UJSHzqc+GJb0xBnL/XCZHS2CYzOAh9cSMAt4lJ8tBqOZXzKBZ4E7RhyoQP6c/Ed8NK1vKYPjHh0Q2h+GyTRbKEQHpngvSRICvy6VE2tAtSShSEm/ruN3aRl/zpkSYtdQy5whRD3czmHQOXNs7Aj6yXUkWmhtWGhtLeslFpJ+DHOa95x7iKpbTkTxHzzrVumjaK/6zw4f2bJPq5FwrvXP8aw/3CZraDsv4oTU84oiLSzuh1z6JJBZJYc1YOdkXKfs9ZLkLg3V4ma+QD3FQNnObY0w== 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=siBnGeU+wvlM1+a3keg5az999ARuoeHCGZClqtH4URQ=; b=uOMb3q2vVgiXx/4kFJT9CM4PN/WPK5JHiX4NniBqHC+UYQC62PbCid34k4Qw1NBv6WoEl0qvHfLxiZiaDwvZRTITpKt27bXusxx+0d5AJQg+kaKi84XBZUbr6zx0pqRajsrv+kcJGpGky2x3ut52KYHECVoFkhsHB+mtSUWWRIxGO2rX82LIpJScen5nkA3vcecPG/RDFCfni0Fbq/cPbiZUF3KNVNARrSHQ/gJXlefcnO7aQ07iVgT5SA4elbNEcH4/zlc2EJxJ5BFYeVABvX63AOieLgqQ5QstMIftNdrM+9v8R9VZejb1S8fyi0Os27UE5Ery1c+tFxWuGjJ3lQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) by VI0PR04MB10638.eurprd04.prod.outlook.com (2603:10a6:800:268::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 08:55:01 +0000 Received: from PAXPR04MB8254.eurprd04.prod.outlook.com ([fe80::2755:55ac:5d6f:4f87]) by PAXPR04MB8254.eurprd04.prod.outlook.com ([fe80::2755:55ac:5d6f:4f87%4]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 08:55:01 +0000 From: ming.qian@oss.nxp.com To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl Cc: nicolas@ndufresne.ca, sebastian.fricke@collabora.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, xiahong.bao@nxp.com, eagle.zhou@nxp.com, imx@lists.linux.dev, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 1/4] media: v4l: dev-decoder: Add source change V4L2_EVENT_SRC_CH_COLORSPACE Date: Fri, 18 Apr 2025 16:54:16 +0800 Message-ID: <20250418085422.193-1-ming.qian@oss.nxp.com> X-Mailer: git-send-email 2.48.1.windows.1 X-ClientProxiedBy: SG2PR03CA0130.apcprd03.prod.outlook.com (2603:1096:4:91::34) To PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8254:EE_|VI0PR04MB10638:EE_ X-MS-Office365-Filtering-Correlation-Id: 4e1dbb14-a858-4ef7-3671-08dd7e56b443 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|7416014|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: reBS7ibi4jActVTTlBeerUXscXEjlSnhTi9FeGLc+4qktI84eYb+5sAWKXoPo4vP3LY/sYDhmYj3Z9wpaXosvX6UwFNBlbAEDQL3x6j7cYhXWsLdat6/3u7ABwyIuyG8emOWNfV2/GRnFxWvAALXZFeJ/9ip73rPl0Qi/1zEco+Mk+Ifj1ru5clNBPEW3fNCREApFGG2O00ZTQ3x42n4Ua2jgc4cT7voQ6xHZMb3MMJXCMBU1k+jl1p+b2QQc9x+iB1s6wIYlwI0Be3/up4OO2T+hXqhRuLLIWWQuP37mYeuhiy6zPXlHFYyDmVAv1YP3s2lPQBdiJkv3XJwn0Jqr3TbiPxSg23wMtcrNbFSZUZyq2FBw+m3fOhwWbhdvv8Amz242lwk8yREKQlJjauDS9UU3q3IpiZAp9mlnq8ysJFQp5IAnNMh1HghEf//WLfacI3mrG9IumQAEjraNqeDvG2quLp4y7KORm9o0Y+R5J1xWE2AkRhfPpvzcphH07mkozgA/DGt/g7xLL4/kWPY6wagdA1JsPrNfqLAjabGrxyzNtxKHpoCzp56Qz8KAh20W7Ru3ZNeHEPjjXly68NZBj+msEsTWjX37IhCLqVrlYhtXiW3knLOaotdSlhhN5e4RrOTnCTYlXmuRHYJYosGLsWOvDv0KyV22j3AOaoHEhHVZfBS8iTkw0HiBY6yzzq+l74FB8ILigpOJU36YopeCJx4I6TJF6yfuHcbB0x+iaqokeTyFaBNqYTeyRBsB1dbroZo1bUGGSvoxCLMEPduWjJeAM4RKxbNtGypDoe6EwwuSmQkc08QOBr5uXdQoCwNJ1ozuwD55YRgjdW0hCM8YcPtn7p0ZLiX7AcL+MjwwZidlJ99Jjd0ougTCtDd0L5b32C6Ac9DQKltWL32nAG5L3uhJHZ3gOTgi37jDhVpCKSF3mOYqeP6PqYVE/jKe2b7MANZRJhbNc57sHX6V2A2IWbNpSA5H60AI9iBInqJx8yXVkbXOnEQ29uVGacqgbYNNCdp6/mt+tx6GK6xAaNk1FUqIl51vQ/jryV3vYYGSUv1CEvoITRp/Zy9ZFPbFqto85CADHDxW7pFaG9jbjIZK2C/YFSMjfAn3PRdMOpH//qEffNeyawzaGM0B8bpEIloy6/s2IjmTY+GAKaETzqHgYJDvhG6utvvFAKQjOgoKPmD/cRau5kt9QpQMDQ5MEpVwLvhAr5QY047ZHAzjbKAqiseerYa0N8Y5CDdjzjcPB+UmgZUF/BCEwL8hY5lZ7m4clIzUSPhy+HYYkl8iRBHc1m4lR/P1IKDxwU0Equxk4KIZAJA3/UuF+mQY5p2CxB4SfnWD8cN10p2dnsC4vtxPaVq2KSAFNYVPpIRBQpFuW8Z/cCRWucYXuoeqzsrrCXs9FIWj367at/Uc0cU2QE9koc+80cksD1ZyTPjkTRqjzP+/QrptOu6e7P+skVQh8YHemDzcbQHYpGuXp8JovahzwCLNw17qivkGrdu+tNNogI= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR04MB8254.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(7416014)(52116014)(376014)(366016)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: vmNbRZjZdr1Ug4F1wFGgEqiD5GU9BxJDWwLjBnnHIg/2jJfEbVNzdzpXGia8UFs+8QX7uH7TUaSbDt8e1ysXA7CZWoF1SZYb6cq/x44zuU61OqMC3pz2fgiVxQTJgKVVmDlXWFa7FCHhDF59XbEJJcNZuQtT/HOrJGn4lYFFuKUNLxhc6RQyag54GuIVNLvt7EBHCWFrtinZSXni/C9e6ignsdXVRJoj7pvscxce+hqaBeu8FlfIdKlnzFwL4VpKmiMz187JZyan92wqZWM2S5Ds1VwKSQsEXOBNZAIvLLollk4zRnESPvo62CN+ce3eMSXeouPl4Yd1RMgYZbvRRWlQ6QvlBDCGEUL8HYKVPvxLBYeP9IcKFLyvpihw2Qpj22RZmAOa+RoeSReStwbOoHkAoideefFlCVHBL0janGzvdLnB9TkwAtyIOlURYVcw35hxzqqcPnOjSLCwMBdbLEi+ukvAMJziBS4kADnW9odEu+BVRTDPrKtvAOZO1Uqj9qb8EVQh++fmP1rVVS2p+n8lAjjXDvWA1owg3XjKMY3SIQeElVuO++3oWjmHKUfbySYKpP7WoDT0NqZNOSfog7G4Ue1e4zMgYbB9EklQ4tlJKGEdmH7MSruf7rZO8C/GXs7JfUwAailD1KL8mHHl56anRhfRpVtSJm4PiEiRcQnGFzpu84Y1GVGpjHgt2DBoDUIosc3e4N4Yv/mUvOQHCvLQshmqEpwFrIgWm/CRsLBnggHjFH5hhGv7Rw4xYp2uf3lue6Hidt/04NMUehUdUrtcbv8XUGXIk2gtcTrThmzHPqXDKhSMfnUI+cy1AqUHXVcDsXrz9HFTJnP0EVdIhEbO6GLG3wdM2nDH/UAg4wLXDMyMd5hfHgbSbMttYzxu/8l+aRzCto4LgO2QYIR39Y7/2vPmeXGYbYGgtA2gPTKA5H+++3Q+cZkYJ6B1bkspW38qwLSFkUNbX4jq00sl4EPhLKRaLXuNxt4F9QU6gcduJkMXKWpZEn4gPKSn8TptifEAy2GCfQH90FG9hZk0KHSb1TJYPOWM93s0mGwpgvsjNGbbDG1l4AXj0Jf3Yh4Nora1v8ONGSY2aV7629gVj5PWcmejmf1rGnRY8OEV2td9mcxXOHCflZgCp8Bh1ak4wape3OpO2hd19q3Ernr58Wu3LnR93tqNt42Qho5lzCieFaEhJs7f3VSGGT35f3h9a7msZ6xrIkxZ1CM0Av1zeQ+fT0/ygWIhsRXPr6IOdQEMLozqXAcAwF/EHWvwt6Jfy1yW4cRvwQ/cnQJnCmRnXENS9+hqU29OxxdVBoW/lwZCsMlb+B1jci6o0h6IFsH72onWyB6MALVhziUxIPXSkfZ1Flxm3/Gf1RLvSdUlBfTLiwLn9WPpYX8g5jq5ScTqH2TCMMWmzjgW0fAJRJMbF39SLCldf+N0kwpklYLA292RLttECcmWY2qLod933D3H/QBaxJ7joycn1qeeeq5yKpTZQxG8+1+0/YtAeoUOWgWhQnGpRm646USj3maf1UgtMFIOidgbLndqp5CgqlRtS63y+bflEV9bGJo75CfB5YkGWmFkz9/3dersFgF/hSef X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4e1dbb14-a858-4ef7-3671-08dd7e56b443 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8254.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 08:55:01.5666 (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: /sFrVzdQuaJSemfKjJTxleqGEh6/xjotJTweYkNPKClY660zpIQESjmefXDkT8/8K2wG8vLcrceihNMADHMT4Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB10638 From: Ming Qian Add a new source change V4L2_EVENT_SRC_CH_COLORSPACE that indicates colorspace change in the stream. The change V4L2_EVENT_SRC_CH_RESOLUTION will always affect the allocation, but V4L2_EVENT_SRC_CH_COLORSPACE won't. Signed-off-by: Ming Qian --- v3 - Improve the description according to comments .../userspace-api/media/v4l/vidioc-dqevent.rst | 12 ++++++++++++ .../userspace-api/media/videodev2.h.rst.exceptions | 1 + include/uapi/linux/videodev2.h | 1 + 3 files changed, 14 insertions(+) diff --git a/Documentation/userspace-api/media/v4l/vidioc-dqevent.rst b/Documentation/userspace-api/media/v4l/vidioc-dqevent.rst index 8db103760930..f317af57a92c 100644 --- a/Documentation/userspace-api/media/v4l/vidioc-dqevent.rst +++ b/Documentation/userspace-api/media/v4l/vidioc-dqevent.rst @@ -369,6 +369,18 @@ call. loss of signal and so restarting streaming I/O is required in order for the hardware to synchronize to the video signal. + * - ``V4L2_EVENT_SRC_CH_COLORSPACE`` + - 0x0002 + - This event gets triggered when a colorspace change is detected at + an input. This can come from a video decoder or a video receiver. + Applications will query the new colorspace information + (if any, the signal may also have been lost). If the signal is lost, + then that is a CH_RESOLUTION change, not CH_COLORSPACE. + + For stateful decoders follow the guidelines in :ref:`decoder`. + If CH_COLORSPACE is set, but not CH_RESOLUTION, then only the + colorspace changed and there is no need to reallocate buffers. + Return Value ============ diff --git a/Documentation/userspace-api/media/videodev2.h.rst.exceptions b/Documentation/userspace-api/media/videodev2.h.rst.exceptions index 35d3456cc812..ac47c6d9448b 100644 --- a/Documentation/userspace-api/media/videodev2.h.rst.exceptions +++ b/Documentation/userspace-api/media/videodev2.h.rst.exceptions @@ -526,6 +526,7 @@ replace define V4L2_EVENT_CTRL_CH_RANGE ctrl-changes-flags replace define V4L2_EVENT_CTRL_CH_DIMENSIONS ctrl-changes-flags replace define V4L2_EVENT_SRC_CH_RESOLUTION src-changes-flags +replace define V4L2_EVENT_SRC_CH_COLORSPACE src-changes-flags replace define V4L2_EVENT_MD_FL_HAVE_FRAME_SEQ :c:type:`v4l2_event_motion_det` diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h index c8cb2796130f..242242c8e57b 100644 --- a/include/uapi/linux/videodev2.h +++ b/include/uapi/linux/videodev2.h @@ -2559,6 +2559,7 @@ struct v4l2_event_frame_sync { }; #define V4L2_EVENT_SRC_CH_RESOLUTION (1 << 0) +#define V4L2_EVENT_SRC_CH_COLORSPACE (1 << 1) struct v4l2_event_src_change { __u32 changes; From patchwork Fri Apr 18 08:54:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ming Qian\(OSS\)" X-Patchwork-Id: 882474 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2040.outbound.protection.outlook.com [40.107.105.40]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5438B26FD90; Fri, 18 Apr 2025 08:55:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.105.40 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744966512; cv=fail; b=g95M8T7KaZT5NDZTaSenMKP8gO5mEnYdS9D75BuOW476p8+/bBw1P286xGNe/5qEt5reBGgfZy9tzrmP1pfm8MGSArnbRzbAzwiau9LNBOAtsgkVBlJfMzRDfRmnP39luos8uKXegqQJSg/eBiesOjdpfCZON+m4+Xbq1sae0U4= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744966512; c=relaxed/simple; bh=7QoIWGn4LExeqzKNFZ9dpfBgFg6gk1w9oq2Tc8ZBeME=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=TRWQb2bqmLiR/zFYsU5VVM1rPrncKLNgljKZ2wjY3hZ6PCsnMrIunnw00od3o+s6KwHxDSdtZHrcMKT7vqPfijbaVUreL/MUfkxb5ueeSqIfJAQ0OTGCN4R09qKYHExOeo6zQVBvYRSQsUgUrybBAyskJJEjGs63lUVGq2Gsv0g= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=aRRP4lHN; arc=fail smtp.client-ip=40.107.105.40 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="aRRP4lHN" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=L+s952ri/gBhvVKPfeQgqzisci214P1UUi3fDqx2ndSydjUQDwM5/PNP21b86MO0Tjs+de2QQpH6kqFfrL/7Tj25PrKJY/i5Ese7Je7OC3QnYqjunNhc7Kn38M0UGfYc+BcadZjOYAmhdNwDAss7MzOWMzDcS+1nktgHNBBx/2TJyf6J4cJMz1p+4N1HLziuIwxsiZjXLkLotWY4AHKYsyF+jU0zF0d7KP/tpwnh5rV3nH2hPEvZ6Srp+gIESf7UxvQChFtP6ATIZ3Zr2+PqlGC3ZCNUfsSds5MLY0q4dZSeDq2Vgoy6hjCFD0y9yv6hDsdxu2MHvIWTP4NsQWthBg== 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=Gf0jQyJXJbh0GIVslBpxdpDBoPcwDClwvnC7scn6OXI=; b=fj175P9OERL5iPgQIRlr7lYF2TkQ05It+DWp/w3fBhuS9ZPbKQIFHsf3ZRwXIn+LLraLKO4QQaz/ap2Vz8XlTlZV87EANoxyowe316awBm+jQTudT4kGiXpB64M0tT+xEBOyoYRoDnIKFifXBw4W1Wtfy3W3MYbsgYN9kG8/9MFCl1wCIyOcLc52x8pzK3oi2LLJAuIsNp0er89g6t3Z0E6qWRZqcm/MU9/okG5GYfRB4FXBUfZU/8Nuqo9X4i0muiV1rPexqk+KjG7PX4g4k9LyT/UDHQOMPFL4Pgqs+xQ+3kgfMlLOenQpRCQa136FYYzG+ulakRZJhVonvV1qag== 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=Gf0jQyJXJbh0GIVslBpxdpDBoPcwDClwvnC7scn6OXI=; b=aRRP4lHNgiKEy+v67nelheeEDip2myXh0EH3yuFEWJUisGlvU/nkbFFKH5M5Apt7BnWblfzvW/BAZ7N9n6mVDpqAtSDsUzFQ5TDqn8MayXP6O5sbspqWGiD6ZxUsBN0wPfRMmkHDOHq/l7pqVwwVBFegn0piLUsjRaVMQmnDKAD92SMZjP+zVz4ixt+dYphGYbAHmhWaTSQU9heCg+5yRfJ9DtSTQM0cqwM2kAgAkDcDUy38KCf3/0Sq7ISvp4LKltOcOgJARm7ejH8OJ1iZUwI3DTfypX88/zSJZzmv7vSnQfrHlMlJRVLsw2W0qATv9iEh/ZHa1nXQfsdDb9juAg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) by VI0PR04MB10638.eurprd04.prod.outlook.com (2603:10a6:800:268::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 08:55:07 +0000 Received: from PAXPR04MB8254.eurprd04.prod.outlook.com ([fe80::2755:55ac:5d6f:4f87]) by PAXPR04MB8254.eurprd04.prod.outlook.com ([fe80::2755:55ac:5d6f:4f87%4]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 08:55:07 +0000 From: ming.qian@oss.nxp.com To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl Cc: nicolas@ndufresne.ca, sebastian.fricke@collabora.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, xiahong.bao@nxp.com, eagle.zhou@nxp.com, imx@lists.linux.dev, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 2/4] media: docs: dev-decoder: Trigger dynamic source change for colorspace Date: Fri, 18 Apr 2025 16:54:17 +0800 Message-ID: <20250418085422.193-2-ming.qian@oss.nxp.com> X-Mailer: git-send-email 2.48.1.windows.1 In-Reply-To: <20250418085422.193-1-ming.qian@oss.nxp.com> References: <20250418085422.193-1-ming.qian@oss.nxp.com> X-ClientProxiedBy: SG2PR03CA0130.apcprd03.prod.outlook.com (2603:1096:4:91::34) To PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8254:EE_|VI0PR04MB10638:EE_ X-MS-Office365-Filtering-Correlation-Id: ba534594-bb99-4d01-0b89-08dd7e56b77e X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|7416014|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: I0EixdZUMwcicsalLDgFjFunSlKh+SOww1/x1Z53bdb28o/i8xEEkYtIzUPd5/GqvwW1HjHsZCzs2oXFhrVnzy/DnrBKKeHywsnnCJ7ZC3FFoClNk9QqXnQiFBpPJ0hnFIFhiOAdI+MkslvgSLokTmA2hqYj6exvD5sFrT7Cz9x8wMhSkudRR9Jh6jNZjhg1inTYQV8PJflw0SZ53N/SvtGwNKWRMpAW+rdS7cvjAOhptSgrIbobuA9HexVs84qDTRlvJVPFILn892HpL68rXK8ZUC1Y/Mu4AVooWRvKHPkMLjQhzxxbJ4SyiRbOOYEl+RMeMWdqmsINoGqGOkz98BXjAV04lJ/WDXYbpEuEsRHbx5mHqCxGGPPNu3qJgtM+E2heuebN3Pf5ps5MVxWJ+FtM4B54GKWGiaynpIdXsx/v2QRefV6OZrVvhxYV0+N2fT5F60sixkOQT7TMiN6cHxfnVeTkTeStUkl1raF/TcxFJkFi7iTq0G/UH8d1Ws/CL3a7Z2Tps9BXBzdjCOglvgxXnrec5N1lm7iEIPWLm5ZEuMRu7psHloo4qtP5f3Syd3XDpMvYl+npnxw6/aVaAXW1ymYU8WaEhkMHE95Fcq2JzMx1h+jkByNNlqsMiRniTGa+O4cN3hCd3yoGg0fCQ5m5/BJnoOWopLVHjf9Qkpb790rWrzZHISxk7DVGvYpg88qMnhAjI4jtLL/oM2NoMGSxes/kqdpCZWq4j3CtqcFLIF95D+k6TFsuoovdin7HhC+uXYUKqLab46uGZT3smxcqSXx4k/Bk38+hcDTncu2Jo1V6ZjU7kdVAI5+WlP42JvJK4Wlw2lPzzkTi6I5nuDxktdUL7ANbrCs7WUFTPDawQflQzqh+boNSebeHDYRcdqCARpDtor0z4QRq9Gdy2LzOAJ/6GKZ6ZdkvWrwFGwR9l/+adoMV9+QscAo0pb8G8B3E5CIqDwfIhJRlaUbwX6ngBJGQFDvrtIhKTBcuVsfzvbjO7RK9Ipi31oOJZKl+kKC9TWuy8Wn7hN5WDH2RpL8Pb9/XvV1FlkP0f1b1p34oCosueUszKBIS4worBa+tuE3RlS1uXZm5QL9lxg2Njia9HtSZaSzBmbyVxtxeCVrkImfgt/YpIWRhkvOm8FDUg+29lEDRN5nm/M+lNFCg9pi1tRkZ96T7ZkalXuvdUQirgd7xq4eyLBz98jr+8XdfsRhA57bwxsioV4pKOm9cGx/drW6aycCpb4A/J3iD7v3/ror3MmSVt+EOgEtPui639UGCNxafLLFl6AS5+Qg3idHVwLODFpoEmbyApQnrx8oKP/ULwFTTpE0lnF1c4YMaCB0FDXWXRoIr6OyYAttBviGT1Hm/xBuBtY0K6i5NDbjFLQhnDfo29tm7LRpwUcGfFKPrZQtf4NqRNWa3IUHIALWu1EjyrcHVXHMI44VK+42MT4VzfXfZ/pO4SNHtiOiHL0fxuwZmu1Gw8EylsZaT6ShOml+GaEqlHJvpt7LEONA= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR04MB8254.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(7416014)(52116014)(376014)(366016)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: CPSE7yr3l0iCZ684xHeMJG72zyVAq28Zvh5CCWzVmTJkL2ZuDKJQ6X+3+NRzFy4JKnKOBQLdfX/y6meGP3pZAawf50ufW1UabTs77f/s0zqA4E5Wc61o73qWdeSXUMRU2B873ABfRkDJhy2zDqbEcuWkv9Z6fgMvug93kHDiP6LsvvtUT75JZ7RDmpl1eA7RjimGUkcUyoaofq7lmhFIBoKMz3dC2YM+7L02nFO5OeWOKb6GcmCri+FHv5DRIPUv7igTGHzqJ9JVfFGfY53J5rVjwBDKhxjVyuv6uPoXx5xpecoSU8SlSmb78BoZyqRzDdWpZyTXSBvS7Bouy791KBv+dXnTwGoDUUBv+5CV3fwhlcVnBpT8Le+d8SqAS0omcybXpfIUtA3aA3KkTMKHIu5kR/8bBzNgkZphRMnB0cKLMtjfJALLFEz2sSIDpeMbOsF25uDl0Lutn+wg7NSTvjQeFoLVNBcAqEzFBC2dlgPmu/g1dylNDIkgemdRh5p7XQRkSEvK9A0Y1uArrQqTRZwecPLjVvZHZ5QzMa/0PSJTlwYBZfWIzl2wJgUx44feGyeIrzCUFbAxrhYtOsqiESiPeA4VxNcrffX1HIoRYqhT1tbNOQwDfB4XbiqtthnVguo9+G2zT4iKaB+9psmVR5xWTab5Wv8nVGxiwyYHlpPIDJu9VO6wcRS822y1kgwVcb5e6qpFECI+DE8xmEyrHLMgcyPjbyY+/QOCTZNWAYUJi1SGNMKf2n+lG/T5urRBlA8/pcrW5ij99xRDQZ15gYi+XPLoWV24t9zYJQ6d4CGyx6JhJ9iJwrHbSpFn9dh9+mozu1FA1HcKkkVaXlE1daV0QOwD9gGLOLArm+HAuJOTWjrbloR6qYxkMf7BfOTCB+m2jjd2/uVZK+eI0I+fgbIZVvNtqayAO3btuIaVuJzldO7g7lAYe1OW8Ly4ndtuqhhOIyolkds+2Kxycy8Y+xVyfhdMsrl9nzZC5VJWdLc3MX7tiD9RyE2wX3QIptP6aDhTHXWLJYZPKCEhdzYj6ojiwvmKzVDRXsAo6LFEgxWfTJNlfK/pTACNaTsb6pgaKQHCmKYeDw7PF08N7WQ+rSMDMpENEwX9qpo5fd1puZxWqvnb/zedyEAN5TlGM1MCsj86weDCDvnV6gr0Hg26QCV1mr0OGxNoOG//6YNFcn99oHTjlHt3sXXpY6OXfSWDj6dXSlEq3DtEC6my1AHB3tTX/CrgciZXXabisS0CYNWMW3ydQeLkHNB2b7SN2rYOgk7qjs39+7KdE5n7U0Fd21YQA2h5hfMueLbSD6AyFMSF2XkPdsAPLRqNfMbC6OJTWMqCUYCOzbmEz6nDvSPPtY9B/uf0PKrDQW4TK6A3ZuKgIr427YwD7zlDMzFZV3Xt9dtyXW4wrLI6NhBxkQ26AhuhQnJjQkZmichMJNQ+4Zf6AaLp3A3ZDp5oJs1W9Rr4c8WbbcuOlgSYkgvw6SPOsLpCU9JyUrhF307JHBHk4Lm8rls9ddtEuS+CI4LBWGTOTlhM4HQIRnBuMQvFvRs+KBAVnXMb3LFONK6/YsHfjTlJkkqPuKvSRXKPLLv8P5Kx X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ba534594-bb99-4d01-0b89-08dd7e56b77e X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8254.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 08:55:07.3495 (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: g2UDp5HIgKEni4ZdoClbXHuynozdqkAtH/E5p1EVMbf3A3NRJlXqMF2WG1m5UVycCl3OlpmUm/UxlDsOpoQriw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB10638 From: Ming Qian If colorspace changes, the client needs to renegotiate the pipeline, otherwise the decoded frame may not be displayed correctly. When a colorspace change in the stream, the decoder sends a V4L2_EVENT_SOURCE_CHANGE event with changes set to V4L2_EVENT_SRC_CH_COLORSPACE. After client receive this source change event, then client can switch to the correct stream setting. And each frame can be displayed properly. So add colorspace as a trigger parameter for dynamic resolution change. Signed-off-by: Ming Qian --- v2 - Add V4L2_EVENT_SRC_CH_COLORSPACE for colorspace source change event .../userspace-api/media/v4l/dev-decoder.rst | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/Documentation/userspace-api/media/v4l/dev-decoder.rst b/Documentation/userspace-api/media/v4l/dev-decoder.rst index ef8e8cf31f90..51d6da3eea4a 100644 --- a/Documentation/userspace-api/media/v4l/dev-decoder.rst +++ b/Documentation/userspace-api/media/v4l/dev-decoder.rst @@ -784,8 +784,8 @@ before the sequence started. Last of the buffers will have the must check if there is any pending event and: * if a ``V4L2_EVENT_SOURCE_CHANGE`` event with ``changes`` set to - ``V4L2_EVENT_SRC_CH_RESOLUTION`` is pending, the `Dynamic Resolution - Change` sequence needs to be followed, + ``V4L2_EVENT_SRC_CH_RESOLUTION`` or ``V4L2_EVENT_SRC_CH_COLORSPACE`` is pending, + the `Dynamic Resolution Change` sequence needs to be followed, * if a ``V4L2_EVENT_EOS`` event is pending, the `End of Stream` sequence needs to be followed. @@ -932,13 +932,17 @@ reflected by corresponding queries): * the minimum number of buffers needed for decoding, -* bit-depth of the bitstream has been changed. +* bit-depth of the bitstream has been changed, + +* colorspace of the bitstream has been changed. Whenever that happens, the decoder must proceed as follows: 1. After encountering a resolution change in the stream, the decoder sends a ``V4L2_EVENT_SOURCE_CHANGE`` event with ``changes`` set to - ``V4L2_EVENT_SRC_CH_RESOLUTION``. + ``V4L2_EVENT_SRC_CH_RESOLUTION``, or a colorspace change in the stream, the + decoder sends a ``V4L2_EVENT_SOURCE_CHANGE`` event with ``changes`` set to + ``V4L2_EVENT_SRC_CH_COLORSPACE``. .. important:: @@ -946,6 +950,11 @@ Whenever that happens, the decoder must proceed as follows: values applying to the stream after the resolution change, including queue formats, selection rectangles and controls. +.. note:: + A ``V4L2_EVENT_SOURCE_CHANGE`` event with ``changes`` set to + ``V4L2_EVENT_SRC_CH_RESOLUTION`` will affect the allocation, but + ``V4L2_EVENT_SRC_CH_COLORSPACE`` won't. + 2. The decoder will then process and decode all remaining buffers from before the resolution change point. From patchwork Fri Apr 18 08:54:18 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ming Qian\(OSS\)" X-Patchwork-Id: 883381 Received: from EUR03-AM7-obe.outbound.protection.outlook.com (mail-am7eur03on2049.outbound.protection.outlook.com [40.107.105.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D30C426B2BF; Fri, 18 Apr 2025 08:55:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.105.49 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744966518; cv=fail; b=V/KfwNkLfbuOmmv81W0PQ0GRsWcbAaI7/ODecosJAnZrlfZ7RexYYXmpIu6vYglTI/T3nC+wihw6nO5jYLANgGICmTLKAnYZlS6YYXxLSeCz3A931NqSdc4P42/Q5VeOwi0XFxOf34BgHCKQW/zwP95Ji+GgIoEvWMwfTE7Hi8s= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744966518; c=relaxed/simple; bh=Du/ZEy1xzyN+kAuJxgErVYK23LVjJkUcbw1cPp1bpME=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=Ejc5uBLNCCYYcjD4PIMonGIzcHyVTZ1rZsEE9maMSV39YZ5TzU0ISKpfTSfADDjUeL7KPKwHCtdH8s3aIHDu21oaHNr2/fLxZopHGRMzTkFunV7TdAtSCLHvMlk49Pg22yQl5HuyliO637JyeWx0V99cBTxQKobBHcYyUjxFrQc= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=rcAF4KVy; arc=fail smtp.client-ip=40.107.105.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="rcAF4KVy" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=btmfuVCKKtRntykH4xrfSRIzr1pPxQNiEx0FEuqgLzQ+53yvx2/1J+bkU1+LvbqcObeXzDP9j5YBVF0CZ+SHhSstL/e3MjVYi61yN5exp+JfNAwiRj5KNS/+fgdj9ROE7y7sjj46FbAM6OlYnPMSEruIwv75OXMbeUKDU4Pt1cArBczYv2OzF2/LNXp9zjK1c6YR15w13DCpRcX3I9L/nLoB31d8oYi8jUWwI85rV2h3VC2HSC+8AGTRXd0GDu9JxBdUVBmkh9DyrE8dEiwHZZM8up83tUgmFeJ8ZykbqWI8IGOy2jhcvxbKzpRiMcv9dqBVzts0Lq4YDs6gxu/Wvg== 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=PIQSkq+wDta2lUmn0nqSCSFiu7vaB1pMOxPo4BOLauQ=; b=ipUsIbnH1lBw9N5w/gED5VtjRAY0f0qPhuW982qTDWaZmZyQzYF3Jq5Aelt/BTe4HgoiDMxqHdg8tgq+E8e2p1jaUNL35SzjTnIWvqLf5QyOORuTBf1TAfCVSONKmZQ3ra6cYuvjeCJ1p0INckJ0n44+0gFQOLWgXRefdVMCO/Qp777xcsIc4QHj1r+XrnGxtbcGalux96hC2d69LtF3O+4ltOGJRQGS2KHXaaVSSOkkj+hEWllTLh89L6NEDFwIgxK8Aed1kd0DWZXdA03fkSOkFBshuOGSPX+4uczRzDWT7EfIPBfIqSfKLUejLBy95wLx+lKri9qckZktbwovzQ== 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=PIQSkq+wDta2lUmn0nqSCSFiu7vaB1pMOxPo4BOLauQ=; b=rcAF4KVyd1awYN92oNVM/1fYMhMyurWgvPzpZL6+4lqxUoKm14NMeQfV4q+ozvsNbXlz7Yr09UuugJLtA9wu00MfdzV56K8az04FQDNQBP1cVQjr6vsap97j/9CGF1SchgRuDxxQFQbGq58Ss/XHOjN7qK6r7m1uFaU9tnaXFxfLSWxCPIWSQDarQkHiS11peZTr/P0Zwu607ZJ2m39Rrtpwcs4nO+c30v4cuW1g6lOLPue7Eo0CWODwNBxNZLlb9cW21CJaO+XYYeSsXJ70b3vmq+BcpLUCHKzeEVeGXc+EMseAwNeJrxzJgVc2bMxf/9rG5bGbbBbOhY1w6jHFTQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) by VI0PR04MB10638.eurprd04.prod.outlook.com (2603:10a6:800:268::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 08:55:13 +0000 Received: from PAXPR04MB8254.eurprd04.prod.outlook.com ([fe80::2755:55ac:5d6f:4f87]) by PAXPR04MB8254.eurprd04.prod.outlook.com ([fe80::2755:55ac:5d6f:4f87%4]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 08:55:13 +0000 From: ming.qian@oss.nxp.com To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl Cc: nicolas@ndufresne.ca, sebastian.fricke@collabora.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, xiahong.bao@nxp.com, eagle.zhou@nxp.com, imx@lists.linux.dev, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 3/4] media: amphion: Clear last_buffer_dequeued flag for DEC_CMD_START Date: Fri, 18 Apr 2025 16:54:18 +0800 Message-ID: <20250418085422.193-3-ming.qian@oss.nxp.com> X-Mailer: git-send-email 2.48.1.windows.1 In-Reply-To: <20250418085422.193-1-ming.qian@oss.nxp.com> References: <20250418085422.193-1-ming.qian@oss.nxp.com> X-ClientProxiedBy: SG2PR03CA0130.apcprd03.prod.outlook.com (2603:1096:4:91::34) To PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8254:EE_|VI0PR04MB10638:EE_ X-MS-Office365-Filtering-Correlation-Id: 4ccb4815-0f74-45c2-3034-08dd7e56bae3 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|7416014|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: Srd9ywzGX+mO+oXr9trvg0pz4pd0Q/cNWuB6xy2KBdoNpclctN2L+IU7T2kcATGhY2Jkf8uwKspH/AKWoQjN6wRhD9mCNTUlK5kaibWKQW1Be0JLZJV69VWPiH++RLm+6Iuc3KKVQe/TjmzBPdEPGxow2GySssq9rUuSy1Guq14zly1S2qZAI3TDIzD1PhHKW/56pNF5Z7OB4olkDdgXUQaq9bgx9JgJjQdWutawJg2EG2HokCWZyR51iIZWdZS1IGdg6TfrY3lSNy34wUeOE5RxNkjdT+rXXulaba3J8keIem8BR0OsO+3I8R8NyA0NItm7lCAM1xxnhxAIGzqVoTf97Sh4SaoMBE2zNr5Afgv4g5CWxtGrzq3X9TiLphH9JMpYti/jdprvUdJGYHZCuQYsu51VawXPwdUzYZSKnybVyCLHBuYGBUic2AcnOIbU9EgqWMqE5hBMWT4Yvw1gi6L/uaLatS6C1+oYiMuOdvO/ux8b/VJxQxT0ydkaKpYO0rBIrwvPfm28hIwd4uwIVugbX38DlLsgVLolkb29MYcD/AbKtDXNiZNj0bP8MvWE61od6/f9dwcgEsO9rYqxcQTDNGwWrG6JNxhaF5pAIIOjRzfYrDs/AqKwHT87DnZOTFrDL/UAqmYroaGbKnAWbfryokba4akf/ZvuNFkQN9h5GISps/mxJ2vRVNoqMdOg0DJh21173Zsu472iMeGhSHVXKsFtFndeaApraALI26gGiPy6X+qf+R+sLA4U0wLQkPHvJLDuENtz91Sc6ZKWslZLQ6Fog8iYAv1l7TjD8ZRAnl5bpF6rBk2d+rN8mxGYFfP30Z2cTqucKdFnLY7GpidK6i/+cYJeUe8838W5CiRFVkQhulCKHDKOmofrA5efrUJ+DBPPudNobERRvDeaw7sHIUqotdsMl0eLzhMby601HBgEjQY0TGRM0V4z0kKF1nBrTBD+F6qNF+2zZNSMXdh8i9NM7e/FOhS5+NmB/dWOtidGrE7xV7V1dXLSrvVeCOshE5IJLuyJSQdnw1SwTDZugfGwax21ByepPtqwTkQoezkSdn4HrYSFjhviqeNPRLuxxW082NDjFdnfLIAcLONjFvCq7fnWYS5xU9zstTUkLxqKJqjOSGq4Wqwgj+95bXGIHpEzC6X2ey4zYgAgpXmYETAizXVm83cbP1ECFPvdCVdGMk/+YCZi2uehVUU8Zekm4ESzLGBLsZN3xDiXWJGiCI2lUz44cD5lr4xvbetCd5s6feN6JHLwjBj/NDEhZi1DtNUzj8eNzShGQuQFLoylOv1R/oLGFC5cRvGWWytmF+Ik3wQ7GALFXV0ADvq8/zsqC+c1rIdfvd3pMRFFCedvneJDpzayHIFWdrMotoR/dRNtjCzEWXN5kAH1raPEvUWiiqJYmdNYK+Aoc5VlsyPZvrgBLZb5uFzCAiR6p9k0Qw5IpObzDMMgfPpz1WhcKVh4pi1Xj5rQ1l6tdL+OWBN8AE/cCru31Y5EuQCSmcM= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR04MB8254.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(7416014)(52116014)(376014)(366016)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 7xVc+UOzxoRe5vJ0d+MtfGhKtnyWc0dppT0w+YSdE+9XrJBHHmfCbWnNy4pOkMiP7BR/wjlaO/mcRGvMwH9H0Xi/rgbsrzzM3gT07sn7XSqz1QUMFWU7U6KiLg2c06sZhn+ZgYeGg9qNX2C1llnn5aXfzwNj3scJw1J1EWs/XJ43bqugtxBLZ50O5xPc77hEChU7QJtdfDtAU2q0aAtM7O13aVTiBtM8rTuai1wLxDX/bSxECXnYq6uXCA5YsfvPY0o/c7hRCGHtGc+risHETkxM5AvmQTy8noRI0ZzokGaVpsSfrW4JQSpLlsgqZ8a3rR4VIZ7PY28tS+g4T+/z0JKckM+hVS9HnoFxKaG3P+oo5ZNQh+yxTjQo6BcvW2FRXGCMZ5XYjuZrK8vg1odQ8g+794rhdaTl4IDgqj9i4hZUCpYj7m/qZ2hW0wLDBevwWFEOmZhH1emIyZNFN/ou7pzwuySU0fA6BAT627HMru2zEZxKXMfzNhPiRsUuHGIHU0ZgnPeVi19WZRy/vZUOtrLsyO8ykdNJN4eorZDNLxhbOYJ0/ura4ytvJNx+BrVS5427X/U5B4D4c8Wca3wmDMVKm6dN2/wUTSkgJrYaFHcMdcSEMQOoA4UepNbcYynRZBc+Bt4Lu1Bu5OQF8uwgvA59Cv4iXb3O2S3xr6j599pKVwxNGzzdBHzi1V74dHsOwTQbSDkGVUWsJMk9tcchNtQMzF1L5M3u8dxkVuW2wkesipIjHjWO1sj6GATJyTY5Jlm+iUfnjryR7i6mpMEE5Fam8B07jCf6V1X9VJDK8lkq4KTB6sRhh8tSJgGokGlv2deDGLVVk6XBSbFSf8//twl12sRVl3KAiYnDHZhraB5XNQ3Ttsg/hNcQhuawVj+i59uupqAp5gY/HpTt/vduJs6mmqrZiMnNMVuseIMAz77ROPizKHq8lin9znvWE//CjGG7hGlpIwI4jqiVvCbFgATBEkFEds15IwHyLZl6PCu4Os28TdsTM3vtTb8tIIyaXEruqPf17nlnTaeWMgKTO0Dkc94hVEdsOzXR+5UdqzpOyeV578PIz8pgP03bMQt7vja4gnn7Chzbrtb9sQZKcsSn56q2req6dK0gnZ20N44BdpICsPgSGbJl4FCifWTN3sMqnJohui6pnDUC9HICfSIeT6YrJtBx8cO6nQCrB/YI3zNKuCNnCvPwKrums6ze4wfzEp7ImuhD80Y2O15S+bWZGXtafZac8O462//k/mZAKkwPngXgeKr0aDirTjRyCewhKjN8VRpoON5LH1wrCM1ND5+9koi2980mm3bepWoEpsHUbZTEI+ACmKpZfvzPynOccEmHTd9pvFXXpMhghe7OuZdslEmKZd3Gf8LvIZnFV7nRgUQGog0SvnUOCBOs5KrISylAOIjsEmywMUpLIYOpO9zDTsVBK7nkj1O/61rdRsTT8HqXFm9ZJPPNINUoaY+2g4QikmId8oEjua40UYHiaZjviafA0lbMv3ZPMwH5HM/r68a6fmYrFDNfpWmmNkErFQdh6cGonrbP5x4V47YVVYtC29IpLlv1XVg1miI6C9nSZMXCyNaHLbk1BoEN X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4ccb4815-0f74-45c2-3034-08dd7e56bae3 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8254.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 08:55:13.3406 (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: KGiCOcFb198UTkwdkWqlA269rklYlCjCNwmwMDONPZZFNOpIhXYlRy704bQK0ql9oAWmVW+2BLOan0t6BEdfjQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB10638 From: Ming Qian The V4L2_DEC_CMD_START command may be used to handle the dynamic source change, which will triggers an implicit decoder drain. The last_buffer_dequeued flag is set in the implicit decoder drain, so driver need to clear it to continue the following decoding flow. Signed-off-by: Ming Qian --- drivers/media/platform/amphion/vdec.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/media/platform/amphion/vdec.c b/drivers/media/platform/amphion/vdec.c index d812b86f001e..ee0a7572ed15 100644 --- a/drivers/media/platform/amphion/vdec.c +++ b/drivers/media/platform/amphion/vdec.c @@ -728,6 +728,7 @@ static int vdec_decoder_cmd(struct file *file, void *fh, struct v4l2_decoder_cmd switch (cmd->cmd) { case V4L2_DEC_CMD_START: vdec_cmd_start(inst); + vb2_clear_last_buffer_dequeued(v4l2_m2m_get_dst_vq(inst->fh.m2m_ctx)); break; case V4L2_DEC_CMD_STOP: vdec_cmd_stop(inst); From patchwork Fri Apr 18 08:54:19 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ming Qian\(OSS\)" X-Patchwork-Id: 882473 Received: from EUR03-DBA-obe.outbound.protection.outlook.com (mail-dbaeur03on2076.outbound.protection.outlook.com [40.107.104.76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1FA4D26B2BF; Fri, 18 Apr 2025 08:55:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.104.76 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744966525; cv=fail; b=YT9zk21Vq7BoN5iy9qeur/Wr6oykTuo9qubjKDSSAivq1RtF2BaVaN6Dhtd0CUnhx4GrQJv6yleDcNG/8XhTsmcMlHNl/GY7h554vWeBj4rvXxJv8zco51s6J1wy57vYcGC7DPPI4vT9Plrnjb4aBq8UUtbJSOIfHxyOGanHJL0= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744966525; c=relaxed/simple; bh=J4AWaYH4+1wrO3dR0948dYLPYMQNOYp77EwrZFcZEuY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: Content-Type:MIME-Version; b=e1nUjq7w2J0JisWu/i543ncZHKAYPM/VuWkHsI89pyXuWTjlH/TaqJRqWhDZEAXrCTOa1xmLb9amYA5C40b9id2rRq/nyoMh27UIWUsdxvd5pwngpDxEc3THsSGW6SFquDbjTuuWG3DEYmZotqP7u5Hz63HEwXahdSvH2vHGwnE= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com; spf=pass smtp.mailfrom=oss.nxp.com; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b=V8pECoWh; arc=fail smtp.client-ip=40.107.104.76 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.nxp.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=NXP1.onmicrosoft.com header.i=@NXP1.onmicrosoft.com header.b="V8pECoWh" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=yOQJomdeImXoIc2h/+nX9u/+LHiHJx28JczTDV5CylikG1cdx5uOoaMSfl3m5jYACDTHub6lMAybiDHbm3ESlC6BiJ2UDjNe6/8o3chU6qT+Mg2TUiWb9o6pkuZZ65SwB7qkitn6Pfaaivh46cckeL4gwJPoZh9fgAYeTzwvEjmhCyx+/NzNid4VDZcj3oBg3vzOFYHn8rmg0D6OJODaiIPp7rlBACUcIJYp7h/hT4Tsoq3B2oP2uY7PLNbrBXqfJM93NIFHeve3xoLeD2VeX160uIWknhe7W3BlV7YOQ8r92rVKtUf47F8NwKj00ElVwH0bLrF2SKqSOoy9K0sy7Q== 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=9dFyqdmuwsvDInRXdL06B5S8jaxZJkHZabllnIYlmYY=; b=tpYR17Zj2e5xAtzbEyeu/EHqN/x8WP1zz7DwbaAC7722vSgVCbpyCAumWtfygaFGOAxENekgb4pvvnV/PJacBDe1AGkMq7StHYzSwopRtEA+RbRkrI8QSY36dcVJ6YlPJ/LEhiRApNh0pQOTg+GcoA7z0aWber1kjyuu0esuPAN7n+V8zc/yH6wABN9tnSi45fzGev6bwwcXEruyqurGXHROEdJTrvYpq61F/tGtnh7rOZotzy1BR9XzhHpj/BrJv2ZMmzC5OroTvxxaYPldnjEevnKXNK1myKcZKaGp9ah2kYhVjHojzsnvKn1jmBrdfN0DEkyuMYDf5FjAx6IQuw== 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=9dFyqdmuwsvDInRXdL06B5S8jaxZJkHZabllnIYlmYY=; b=V8pECoWh2hoPyAvEwNAOsxUqmxlIHGHeuuT1zOrHgpqgzo9BNUN9harU/GI7ytX+JGi9s/3ZnBVMbVGGjbxvhZjiQeewIliJIdvKmCVcoyOBjbQ+L3Io22qW9Q/KjZayKuMTzAfO4u+JPkn51RKHbtjhsopOfkk3WKR0hAYuB7H3JE9UbtsjWZGtdzOmyYwhP3rYKgDslxMzEPu2XGGbjnjVFX/2w0GodXdt4JKgMZVZSUg8UcTa4m1v6ABTw5WWlY57EAiSKQqhZu/Ltrh6fmG5jWAhc1bvn+Oa49oe8OKeMUA0QP8S1vmxVFqHrUSNZTBunI2iAFu18ixJUUZMsg== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=oss.nxp.com; Received: from PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) by VI0PR04MB10638.eurprd04.prod.outlook.com (2603:10a6:800:268::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8655.22; Fri, 18 Apr 2025 08:55:20 +0000 Received: from PAXPR04MB8254.eurprd04.prod.outlook.com ([fe80::2755:55ac:5d6f:4f87]) by PAXPR04MB8254.eurprd04.prod.outlook.com ([fe80::2755:55ac:5d6f:4f87%4]) with mapi id 15.20.8655.022; Fri, 18 Apr 2025 08:55:20 +0000 From: ming.qian@oss.nxp.com To: mchehab@kernel.org, hverkuil-cisco@xs4all.nl Cc: nicolas@ndufresne.ca, sebastian.fricke@collabora.com, shawnguo@kernel.org, s.hauer@pengutronix.de, kernel@pengutronix.de, festevam@gmail.com, linux-imx@nxp.com, xiahong.bao@nxp.com, eagle.zhou@nxp.com, imx@lists.linux.dev, linux-media@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 4/4] media: amphion: Trigger source change if colorspace chagned Date: Fri, 18 Apr 2025 16:54:19 +0800 Message-ID: <20250418085422.193-4-ming.qian@oss.nxp.com> X-Mailer: git-send-email 2.48.1.windows.1 In-Reply-To: <20250418085422.193-1-ming.qian@oss.nxp.com> References: <20250418085422.193-1-ming.qian@oss.nxp.com> X-ClientProxiedBy: SG2PR03CA0130.apcprd03.prod.outlook.com (2603:1096:4:91::34) To PAXPR04MB8254.eurprd04.prod.outlook.com (2603:10a6:102:1cd::24) Precedence: bulk X-Mailing-List: linux-media@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: PAXPR04MB8254:EE_|VI0PR04MB10638:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a6df9eb-266f-44ff-af8e-08dd7e56beb6 X-MS-Exchange-SharedMailbox-RoutingAgent-Processed: True X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|1800799024|7416014|52116014|376014|366016|38350700014; X-Microsoft-Antispam-Message-Info: ZaBhHLQl+oSdsFaLahgrkBNul6J+18zaBa84kXYwQwADRfjCJ5R6z5ORABJ4GnwDb3Fr2JhxxDLEDrpMYHRQqTmXjIs6Ri4CJ2P1zbFAo3L+xJTLSGiie6xroHk5fiwCrZ2ZQg4kBv/WuCNcFmQHPP898SJLJouQJJVqJ3gJhNAf6/EwZjyinMMFSAUgwVvcW9znhvW0/onJKIO32QV44mSCWv3+v/3byl9JP+RODd4dCuEY5i737XxcOCCw+pS5vra1AGs+ud6U8zfj75PJ0w7yT1QI1p86yYKKSQwR1zrIt1nJ1Va7oC9nblpmZ/tKKy8p466lbt4D4CMTPsM3cQU5eA2H/WYG0OyWyc6rTtjT6X3xnoJjrGBfDuNT2EkT1ovFX65KRtuZ97pKv7s13mZIDqhMrwj3PSaL+xHZsPwCKRCaQeR/5hMPQY1FGDyd2pG8D7c9VRHNbZzI64IFiJ2oWWlZGfOW6uJYmzHJ7sSQsr2VNS008IeM+oavdyD9GkoxAaNcCIXlMq3nVAIb+5sXID14BwhmZNZyyfJefzhakixnlCzndjEb6nkXdeaEM6byXICzRgXPBtuK1ZCaL4Y4DT6lUj5yu5LQlkFYm56t4EZkHIcW6/AgjBwecuSsZnAp2xYqr4QYrmYfeBG9KV8nSIKwKasJuIQkIRmO0mfOb7e7PQdW8O5PVJ2T+cFvLDKd6hqYTrNq6DCQmbpDc9YIrRIpC24be7wvKSR5p1u6giP936qKytnNpDfGdNgy6hbT2bvlw7nhKy/Z3Og1kcVFf579/SowKTwtHy586MXJxenkr5igceW9hnSImPUVqqrcaMQ8glZLy+OkElgMPTXUX8GTKoZRdOkG/EBPV9a21pb2iQaHDZr21awq25g8bisfhphLeRGyV81LIvHbuJKZzMLSLkz2zBT8IMumKvXhy+a+KuzxfUij+ROmeT7AlDSlyquuQuGj34n5xKfjDPCH2iPXq+IMOp3kFT7L3QiAI3mkkHIUetAB+n6NbUKZD3VhI3DX3JFtgEv2ogp62s8MuzZuAlQXYJpY72o6+LpW8ozFu6UvqrwWPlwWjqkNorqlSQW0ZnMO6qFornypukYx3nDkRW+7g/csFTmTJJokivHitZeb3JoDqROWzyx7HWDBnJI6uXBfgXuO9l3NcifcLku7vPXSX8eDTkT1W0PiRGtSYFhs29j92QDjPFLflzcYdvtHmcMOFCHOb6DFFbXDYVU736Ze2cnbOGRDkzb5+X3XG9ywf9IvAka7UIsdJPZt8abA+jIdCVS7sna4lZGg1n+djX4+nY01rtZgN6JwVyc/+wYymfqU7qAL1sUY9X2DRyQs0rFqk3vA8XGkCFxpWAY56QjBTnHYpRGz23SARTK8wbjpTGrna3cJZKs8vJjct1ygAkZhGfETOn1lBB5DDspGzGOvNVeV7IV6S0816ZQ9BfWZWxI1N+nH0YZB3jvjgoORy5oeiGYVnap7OFrFsjI1/dLxV/pt7ds5gBs= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR04MB8254.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(7416014)(52116014)(376014)(366016)(38350700014); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: E3j1ZGu0UJdN1aZl5Wg6QaK3vvTNLTwN71SNRtP7RBpmLu7QF+uYFu7eaL48N/h5aX2jImlZC25njeRs3nNb4cGhQRoaGgr03uCrSG1pVM2jkQjvsPKZ9cjIrbGYqiFlEJpFqN6SvCnLA0u9Tj5tlbvps5lKtKVf10eS3POZwu5IDyI7aK1z/6VM2bDZFul8QjcofT2opmSsekhYxNSIPh+N6d2LMHH6r1m9AVJPQCoyc36eYXKP/IdwS6ZGHt8bKCMF/DgRXVBIxzXKeH3ZIjp9OfVn84+Tl9ux2n39C9dnhRkkF11tn/ocNMhkt440yNnBurxug40CA0Z6GKmvIGBSRcKz+TVMdauoUehnk2jlY0hWenfYvWEiUk0RQBi/qMaqCqD0Awj0h1DVQ07DIDKzdOoNE9ZBqElTV3Stu7FSmBRYMJRoNlDrVh45QD5Bh+hxYABKHHEIYZpWN8WoiZekFn2Jxs68u1LstQbCBbj8pldH6V79AQEXVl4oCedhGENkQBtouFdBPewehGY87w7iAOC9x8WUC31I2U3UWqZGMQd5DvgkkCmiUxpFnAoOeuHOUk3KpCKLJvA+6mYJuqxtTfTqVu3O10eWw+PtuPh28/gzzwZDLm+9m3HzbQ6nEbsio0Yfzrms5AtGIde2+C1cXb99VQBM/pD/L/v05X0c2I9+nLHmnMXx8YsS0zirq3C1WrG4pB2Nl7Lowg6kiX48OrmCAlO+e5SFdENnin/Il3+Fq4VdagHyGycTFsOaV8JhaUTZMHlrjpJck76Z0AZIvZ0c/IwdXpneFuWu+nyiwmX+zWiderqDNRb707Wnpnkh/wubEAA5MVs1jvML6I3b3C6DrkD5W1go5Yt6TKxWQJI/NG+4ov41IxQ9P27+OZ2JgM5Kb37w7Cp9PnE8nA5MUVwduxd2wvbSQp/QcYAlobLqBFLjRXAq7+oUrDjZVelU/9QwRS53nmRftsbuhg18W2jlnIzmrjRf4vtqd1ZZoAqAJte6azgtRx6bP4E5MzLHk+IRY6cnAd/OJ/URWisHkfCNFYMIZ+k3fpYm6EcGLMmuFLDAK6LbBfdStHM93cmeWWmqiWrdtRd3II+q8N8jvh5JNGI+tyUlySB/k6BsY4G0378QaKxGSiQhfrmpkhi2aW0YWOXZAmPbAcgYrWPNN+ehfMDlJXy2sxvYsg2QDGmrNhQjw9LQ5ykY/6AQ9rCaCuf/wMEFFvc8E/EIS+My+FCqD5Xm/SNvTkNBF7/Rje8zB6ve691VjhQeD5I/xgTaoXrAC9Z/sgT8MgKNl9laO0U/lwBNT0tmHdmAY42AF5SQuCuKxV8d8mCHG3YlleOosjCWLzS5IrLxmQf9oj54iLNEsTAMpt59f6ShLm0NxuFHU5nPZrfPwREqi48f62li6j5gvUEO59I2jxLzhxhfX97twx8n9z2WkyxQuyLbQcXCK+kx51+pMVBgjcW4FWf8YVFjAQ7vjeSPVNzHouDaLOdZAlpsRd6VMrQBxAiQXVHe+unf70uZ1hBO1mFVhMeJjhosuPrW3OTvjWQzHnEGW1Bb6ip1eQLPDBj4DcVpuIaJl+qHakOvtfQPNoGY X-OriginatorOrg: oss.nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a6df9eb-266f-44ff-af8e-08dd7e56beb6 X-MS-Exchange-CrossTenant-AuthSource: PAXPR04MB8254.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Apr 2025 08:55:20.1064 (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: OLXWdzzNw5BBaEbXzksZepjpYu88Xb3liPFjTlOWQS3Oau7slu/AMMbFj3gp7Q1LQWKhin1C8dYYlYoVb4kyrQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI0PR04MB10638 From: Ming Qian After encountering a colorspace change in the stream, the decoder sends a V4L2_EVENT_SOURCE_CHANGE event with changes set to V4L2_EVENT_SRC_CH_COLORSPACE. Then the client can handle the colorspace change without any buffer reallocation Signed-off-by: Ming Qian --- drivers/media/platform/amphion/vdec.c | 89 +++++++++++++++-------- drivers/media/platform/amphion/vpu.h | 1 + drivers/media/platform/amphion/vpu_v4l2.c | 7 +- 3 files changed, 63 insertions(+), 34 deletions(-) diff --git a/drivers/media/platform/amphion/vdec.c b/drivers/media/platform/amphion/vdec.c index ee0a7572ed15..f4979d537b97 100644 --- a/drivers/media/platform/amphion/vdec.c +++ b/drivers/media/platform/amphion/vdec.c @@ -369,12 +369,16 @@ static void vdec_handle_resolution_change(struct vpu_inst *inst) if (!vdec->source_change) return; + if (inst->changes) { + vpu_notify_source_change(inst); + inst->changes = 0; + } + q = v4l2_m2m_get_dst_vq(inst->fh.m2m_ctx); if (!list_empty(&q->done_list)) return; vdec->source_change--; - vpu_notify_source_change(inst); vpu_set_last_buffer_dequeued(inst, false); } @@ -954,10 +958,11 @@ static void vdec_stop_done(struct vpu_inst *inst) vpu_inst_unlock(inst); } -static bool vdec_check_source_change(struct vpu_inst *inst) +static bool vdec_check_source_change(struct vpu_inst *inst, struct vpu_dec_codec_info *hdr) { struct vdec_t *vdec = inst->priv; const struct vpu_format *sibling; + u32 changes = 0; if (!inst->fh.m2m_ctx) return false; @@ -966,27 +971,41 @@ static bool vdec_check_source_change(struct vpu_inst *inst) return false; sibling = vpu_helper_find_sibling(inst, inst->cap_format.type, inst->cap_format.pixfmt); - if (sibling && vdec->codec_info.pixfmt == sibling->pixfmt) - vdec->codec_info.pixfmt = inst->cap_format.pixfmt; + if (sibling && hdr->pixfmt == sibling->pixfmt) + hdr->pixfmt = inst->cap_format.pixfmt; if (!vb2_is_streaming(v4l2_m2m_get_dst_vq(inst->fh.m2m_ctx))) - return true; - if (inst->cap_format.pixfmt != vdec->codec_info.pixfmt) - return true; - if (inst->cap_format.width != vdec->codec_info.decoded_width) - return true; - if (inst->cap_format.height != vdec->codec_info.decoded_height) - return true; + changes |= V4L2_EVENT_SRC_CH_RESOLUTION; + if (inst->cap_format.pixfmt != hdr->pixfmt) + changes |= V4L2_EVENT_SRC_CH_RESOLUTION; + if (inst->cap_format.width != hdr->decoded_width) + changes |= V4L2_EVENT_SRC_CH_RESOLUTION; + if (inst->cap_format.height != hdr->decoded_height) + changes |= V4L2_EVENT_SRC_CH_RESOLUTION; if (vpu_get_num_buffers(inst, inst->cap_format.type) < inst->min_buffer_cap) + changes |= V4L2_EVENT_SRC_CH_RESOLUTION; + if (inst->crop.left != hdr->offset_x) + changes |= V4L2_EVENT_SRC_CH_RESOLUTION; + if (inst->crop.top != hdr->offset_y) + changes |= V4L2_EVENT_SRC_CH_RESOLUTION; + if (inst->crop.width != hdr->width) + changes |= V4L2_EVENT_SRC_CH_RESOLUTION; + if (inst->crop.height != hdr->height) + changes |= V4L2_EVENT_SRC_CH_RESOLUTION; + if (!hdr->progressive) + changes |= V4L2_EVENT_SRC_CH_RESOLUTION; + + if (vdec->seq_hdr_found && + (hdr->color_primaries != vdec->codec_info.color_primaries || + hdr->transfer_chars != vdec->codec_info.transfer_chars || + hdr->matrix_coeffs != vdec->codec_info.matrix_coeffs || + hdr->full_range != vdec->codec_info.full_range)) + changes |= V4L2_EVENT_SRC_CH_COLORSPACE; + + if (changes) { + inst->changes |= changes; return true; - if (inst->crop.left != vdec->codec_info.offset_x) - return true; - if (inst->crop.top != vdec->codec_info.offset_y) - return true; - if (inst->crop.width != vdec->codec_info.width) - return true; - if (inst->crop.height != vdec->codec_info.height) - return true; + } return false; } @@ -1337,20 +1356,25 @@ static void vdec_event_seq_hdr(struct vpu_inst *inst, struct vpu_dec_codec_info struct vdec_t *vdec = inst->priv; vpu_inst_lock(inst); - memcpy(&vdec->codec_info, hdr, sizeof(vdec->codec_info)); - vpu_trace(inst->dev, "[%d] %d x %d, crop : (%d, %d) %d x %d, %d, %d\n", + vpu_trace(inst->dev, + "[%d] %d x %d, crop : (%d, %d) %d x %d, %d, %d, colorspace: %d, %d, %d, %d\n", inst->id, - vdec->codec_info.decoded_width, - vdec->codec_info.decoded_height, - vdec->codec_info.offset_x, - vdec->codec_info.offset_y, - vdec->codec_info.width, - vdec->codec_info.height, + hdr->decoded_width, + hdr->decoded_height, + hdr->offset_x, + hdr->offset_y, + hdr->width, + hdr->height, hdr->num_ref_frms, - hdr->num_dpb_frms); + hdr->num_dpb_frms, + hdr->color_primaries, + hdr->transfer_chars, + hdr->matrix_coeffs, + hdr->full_range); inst->min_buffer_cap = hdr->num_ref_frms + hdr->num_dpb_frms; - vdec->is_source_changed = vdec_check_source_change(inst); + vdec->is_source_changed = vdec_check_source_change(inst, hdr); + memcpy(&vdec->codec_info, hdr, sizeof(vdec->codec_info)); vdec_init_fmt(inst); vdec_init_crop(inst); vdec_init_mbi(inst); @@ -1379,7 +1403,12 @@ static void vdec_event_resolution_change(struct vpu_inst *inst) { struct vdec_t *vdec = inst->priv; - vpu_trace(inst->dev, "[%d]\n", inst->id); + vpu_trace(inst->dev, "[%d] input : %d, decoded : %d, display : %d, sequence : %d\n", + inst->id, + vdec->params.frame_count, + vdec->decoded_frame_count, + vdec->display_frame_count, + vdec->sequence); vpu_inst_lock(inst); vdec->seq_tag = vdec->codec_info.tag; vdec_clear_fs(&vdec->mbi); diff --git a/drivers/media/platform/amphion/vpu.h b/drivers/media/platform/amphion/vpu.h index 76bfd6b26170..d8100da160d1 100644 --- a/drivers/media/platform/amphion/vpu.h +++ b/drivers/media/platform/amphion/vpu.h @@ -272,6 +272,7 @@ struct vpu_inst { u8 xfer_func; u32 sequence; u32 extra_size; + u32 changes; u32 flows[16]; u32 flow_idx; diff --git a/drivers/media/platform/amphion/vpu_v4l2.c b/drivers/media/platform/amphion/vpu_v4l2.c index 74668fa362e2..37ef706c29dd 100644 --- a/drivers/media/platform/amphion/vpu_v4l2.c +++ b/drivers/media/platform/amphion/vpu_v4l2.c @@ -96,13 +96,12 @@ int vpu_notify_eos(struct vpu_inst *inst) int vpu_notify_source_change(struct vpu_inst *inst) { - static const struct v4l2_event ev = { - .id = 0, + const struct v4l2_event ev = { .type = V4L2_EVENT_SOURCE_CHANGE, - .u.src_change.changes = V4L2_EVENT_SRC_CH_RESOLUTION + .u.src_change.changes = inst->changes }; - vpu_trace(inst->dev, "[%d]\n", inst->id); + vpu_trace(inst->dev, "[%d] source change 0x%x\n", inst->id, inst->changes); v4l2_event_queue_fh(&inst->fh, &ev); return 0; }