From patchwork Mon Feb 5 23:36:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 46062 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:7b08:b0:19e:8a94:b663 with SMTP id s8csp1074895pzh; Mon, 5 Feb 2024 15:34:57 -0800 (PST) X-Google-Smtp-Source: AGHT+IFT2Kru8a9nRXRPCgquF2SfCo2QTK//zHyOIk9m9+mj+9DnkakPlg5rs9d42siDxbDo0LB0 X-Received: by 2002:aa7:c713:0:b0:55e:e829:1461 with SMTP id i19-20020aa7c713000000b0055ee8291461mr405352edq.42.1707176097528; Mon, 05 Feb 2024 15:34:57 -0800 (PST) X-Forwarded-Encrypted: i=1; AJvYcCVDtS/9p11qWbGKnwEo46kfFN8Vrc0u94ccYXd6pUULs6ddhSWFVziHARoiKF8XrXRN9vHI9e8yUWzBi4GB9lfjGQY37OE1L7sd19MgHeLpnxsrQkeUKOHZlDRioG7Y4gHQvJ7eB+NpMR01D0ulIzIdejx915VnrSE0y4GRYkrCAyefznUGN8qmnXpH+lNSPxt3mClkoccVKwFmwAcUV4bGk4T//3aPv0boeMgRVeiovrGchsYDV8dHVIKVsEOEoqIjICcbGE8+GR1PpxjeTGmhV+kX7gBtRj5kCPgBofi2VwIK9Xm71CpE+FLo5R+cleY6MXiwB/bxSw0NDn8l5/Tq7//FWzH44GNElylMh12z6FQ4y5uaD1Fb09vXlrFskV/n1dGMjEphleVgTA4AoryJ9r0cxMPE+7kv5UucREFWyWd1Gl1FMLYKIk+BDI0y4E+MiAv+QhiWt6uzK0eySEVK0W9ubb1vtc7uaDz3rJRQZOrE1fZx7StnhtGK1Fx1hDaSOTS7F+THAz4b0nn3GNKXeW62+ePP5+sjZZiZsf2QZrJOh85m6TLIt5kRYXXfYsblpDzDqYdYWlaYUkG9IdrkU88ULr3lzfD1k4fVp6ugohfi532Zg1iSKW75t6Ma+Czb8SWgr6cYc38FrFFajLEJUYVdQUPrp6BHqYUKiEkzM03SUKNs11m+BJTHKmVu8USZmvGjIPLxV8vnHRQEE8f8cME98D63kSNwRGD+DaaCQbd0JYm9Xcar+TRt9Uf5qhpq6eITPGSD8pYFRPxSmABKS+kGKVrBtlGhMcvOJf53Olo3+avhCt2n7CyuaH0DY5a/0oVyWhNMIBkJkifljRSI/qdIxk0/oTdfSwLItad7+qSP8EJnjDybT4XSMFJQvf8jOCB78y+2id9RILs6G5rjSdYn/qQFaU8mI8R/lgnD804pBlZxKoB0Ci0Gvgn+CV4DlG 7J2AMQozo2JWMc7iQnBmJkXGdJVEUXCTjK80PJBSKRoU5XlQ0LeY6Yf3Cw9mvwgZXxW88cxLWwGK6NFCBn7Y991oSsTuIeBcwgrmKBVTGDQmziDRhFeibadvHvgq4jWPQef8qkxfrjhSLWa5jGvkOvt8OS58wfm5Y1du/w4NKHoiYeLZBNqXShFlg3vSWhgT/JGPl3x3jNSzCS1vcrOdIr7nVm4baYN3DhmfVJbhk5/GEdqKPY8f6HXP7Wkn6NZ3AJT5NcGKObOQdqzsnm1NwHtHtFfdNoHwdwhLuGyJdy8UY/PjASiKtm+ubCliiCm9+52d8G1OEGk4bgY1pEZfhuIGagN4mbam5lMZ3+Lb9fB4BjbZJteAHe+Efv1ESgotnRQuGgN1oK2Rm0t/siqj6twt8vkJTdrE7oOCccoghiM25ddA46T6eB9W3PQWBnY9xzktKL/w6R0uUY0sDmnJTI67oh77rvM7hXvm8QRuJxUBo7mNw+ZwGW0UFJMFl4JiCzDEaiiuzNdwrMN9d1K029QO3U/tfn4xsL+5nxOt7Wzm98mf8/S7BERfctdvYrljyUgz5SLkQe8z5YXWCMmBOtVtE5IOhgB9o1uAa+617kPTJNNXbIeaMDJe/N9WDBy662cXw= Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id v21-20020aa7d9d5000000b005605d24a24asi396501eds.401.2024.02.05.15.34.57; Mon, 05 Feb 2024 15:34:57 -0800 (PST) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@outlook.com header.s=selector1 header.b=J1VPC0vG; arc=fail (body hash mismatch); spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 4056868D15D; Tue, 6 Feb 2024 01:34:51 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR02-AM0-obe.outbound.protection.outlook.com (mail-am0eur02olkn2104.outbound.protection.outlook.com [40.92.49.104]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D01B868C9AA for ; Tue, 6 Feb 2024 01:34:44 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UNyzR5OonQKEiXq7Irmjo+rxRT27YJeJdfoeUiMzdvjBYnzVir6HmqpriXSz8RVagjtIkwcpg8CgtbHtVWiKNJ12PFWKol35k+xs+RoAaZwBbiW6h+dtdCc8c280RYzeR/rbTgJV++izmjhHY8KHMW7WZsgm7y8fXaHpTLssD4M2lEnm05xYUguLTlaMq6TmgEPiVF3FK5DYy4U/8ApPBilM1BLAXnB3hChMxzTkWfYOQAtvDzKYH/UhXbVs5W7bgXLDSy5Zld7JcQyVk20sNMWD9JAhUIQKM4MtVEVFm4lktdp2rDrp/+X0Hu5RQ/1LRzkG/33K9y5z7qcSnAw8Xw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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=YbfCKf19QCc4PDHIy07VALKh1+p1gG9W9EUcGFm1mvY=; b=SMWHj6MTUIGk1ePGY/2/MwPwVThYkeRLG5ITx6p7xRJnbTzKzUz6T0Lh7qRnNN63BsBiEu8UzbI9P3Y+12I5PUixqFAX1Srt9iggxx7IKzWSftm7e428BTI19y3M4SAFKNteN4J7agT3BHOfG2Gx9qHFqPO9RjpBFZdJ0zVhqNkYxhXExdDbB/fiIz2Kq0CNfK8/V3TEmU/iYOIaPwsy4can+Lvp2xoZio9KXsQqijw+EcrzjzUD14sT+sV7zZnTqtOU29GwUZRwbjnOHlHyvuHxaUknMgI7pUUUt8ggSIspv87xyW91uubM8UWFNIKy1u/FKYW6DlRx4dMeukcJZA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=YbfCKf19QCc4PDHIy07VALKh1+p1gG9W9EUcGFm1mvY=; b=J1VPC0vG6f3a2zT2iSQtqOx9jYZz87j7lW65wCtM1Ot73wF3itYK9a6jFTBFeezAI8DEQ32LMMeiPcRFBCsxmUUZA8yxVn27RRiPblQ9dJzhiVh3B018bYyuUNQugNbJ5w7FlFjxPseDLwDsjol1X5qtzHsXOI5e3Iqi+RRwJvTFJ7xTbE5ykpiyV3gBnzd3E2UsVH6WZF3q0aj/l5jJrBrYDYkQZnxYHQif7XwKeg7ukApN094ohyCjbgCmSHS2qOUbXevzDDHEa9IBUNsmDKFF58Jht3YpjyAvrKiLlwesowR5i+b6KK3b2U4vvaNT0NEaKI79ViyQtCjCYQVp1Q== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AM8P250MB0213.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:324::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7249.36; Mon, 5 Feb 2024 23:34:37 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::65aa:deb0:a18e:d48d%5]) with mapi id 15.20.7249.032; Mon, 5 Feb 2024 23:34:37 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 6 Feb 2024 00:36:13 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [EeSrZKqse2n53vutOLBbzXUfFieWWfPC] X-ClientProxiedBy: ZR0P278CA0160.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:41::18) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20240205233614.3950767-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AM8P250MB0213:EE_ X-MS-Office365-Filtering-Correlation-Id: 52fefd10-e763-43ef-daa9-08dc26a303df X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: vL2ev0dJvepssaWSlICDUDPtd6/f2Y7f64UauXPyJETW03Pff9bee5UQI5dqDcsrVVph1QyjqT6bqwDDUPL9gFLHXA237SL5cg4IOqmnQlupkFIc2o1nwqO6EZ/+43uqILi15zUnCAdAomCEVSggP5vNqbs7WuoAioBrkh3+iM80WWdU6mwI265exsC4QsNBZSGFtRfvActZIXfPLB0yS01o765/ippv0jAxvjWibcfbRvQFDGM5uU07KAoAH4gMk5LNvm4HxHN7G3QJeuxdsBy0ttHJmyIQQp9Qb/uaJMZBSA1ZBNI5nLGXWZo4sAmrWYu5FLEZ0i6gaD20l3r1dGCOGGRhDsQqy5Qs2IiEYMsj9qjWpkgCfC087G+J2qQEku9oGDiHj/HNSu7WTSbkmmgkdAjIIdeQM3DYd9wHMP93yPM8zxvLTK7SyrFc5ZSZsMR1ehlAeS4DU3LdsicVJYM6qQtf8l9nE2F/mwg5CTyl2tMwlB1Lf+OyAz7h77UCaLapj9bjbgU0T6u3JUrtlbPYKmBrVMJBgz0j6+A6lNcbvkGUAMby2MJKvDwYdGCdmgAsUoSrL7F+M1xqgFVB7/O9BN3iMRIMkRQc6ISCy18ivWkBcxivmKB+mI/KqqZ9 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: mIdnquiyURjhQbS+Mr5xdRxK9y/qCzdQYshKPPqQp8eVkVja5sFSI0A+9Cp5v1kJvJsd0COG4NR2llCWEcAEcslCmJupeSsFtNekZdzqfaIbj8ulvsVaN+Etf28djrHzivFrTEaw2pe0eJE6Td2loaysLwxzvglMqfdtb4HmHwD+W3x7WVNq8I9x9XC1OJqv/STMX5cKJOCJTdlyEl6RqXPVhary2eXKyepWcA4ZNfkJBrAnksXBOd0Hu/DK//kgctV47SNYe8fjzHMqO4BdsuNenpmvxxPzyu6HjT0UWJvgWioZZzC+cqbCkxDw+XuJCWIla2b5c+ZpRODvef6XU3Ha5UpBw187B3g3xDlY2RBXzzzSfic6iiajSktqPMEy9Q2PBBzNiCiOJEMNp+6G+mobYDRktKiOlbLB1FT79FexXl3ZaBGTidEjsBCZKw52EGQ2ssxlRYycaeTl6TPakCSCgh8AzLPeBknRMDI6Sxx9Anb4BH0L1+KIhe5M35nLMKEbI+tcOvawrV+i1DKyyvOefznl28EXP5wVnzMEtFeOFVdkV6c4jpLXW5txrbzsr1aQGKqeaW7HHJsxRCprbX1UnLM5n90Mvq5u6jC/8o+ZkQBq6wr5dXwuUNewScZLbO51ZvnEI5/nJRZ44mthN0KiLCsOBoQ+YCdvXviraXVz66TlrNVP/NoimQIgeUl+22mR5MxDdpAVys/0OgB0NoiSEbzfYFlc6IbM+IEE0R4XTAMga5SVps7h3XxebrQmi/cocDu4bJ9NnP74mU7LGysqAosrjUd+zA4LJRscJscaI4KpyTRG+UTe8S1sbnezn6AQUJX93px7q5qVmdV2+qRDxC/yWY9wNAVgSv1jMm+RXk7P0fVebj8TReAtBdQYzpQhlJMpIgmCmF1zM7v7I2I4My009b4wXKyvMIYyBdCv3E44TNI317+a5ah/97E6yWITDQ1AczG5MzlHVm4AAXPGOl8LHmPQ/Ayy+lPvC0yCQgKyUO5ca5PJMXO9C9ECo8niGc7qIaXdwNifryovwKsADjP5yo8vfUOllOkqFt96FuW4LyMCYfRAy+IIiMX5pm5GBVga8g5EilVOJiqEPapFNR7MtOmoUEUWAGp6407TzY+R0oapAfOuf4GxNJZJafdACmpiZtHEiDGHYqE+ffnSm0PIVJ6i7kbdhHZfBwN5PbBP6KtwDXtobdtELRsAetcrzJaSeA96KcIAsLuHDFARRbzXGAMUTa05/Owg6cfAnUXyc/oGFVv5SQwps0PO X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 52fefd10-e763-43ef-daa9-08dc26a303df X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Feb 2024 23:34:36.8084 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8P250MB0213 Subject: [FFmpeg-devel] [PATCH 5/6] avcodec/vc1dec: Remove AVCodec.pix_fmts arrays X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Andreas Rheinhardt Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 5bXrcFsg8U5t They are not intended for decoders (for which there is the get_format callback in case the user has a choice). Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1dec.c | 64 ++++++++++++++++++++------------------------- 1 file changed, 29 insertions(+), 35 deletions(-) diff --git a/libavcodec/vc1dec.c b/libavcodec/vc1dec.c index 4f4aa8aa07..e71b92eef8 100644 --- a/libavcodec/vc1dec.c +++ b/libavcodec/vc1dec.c @@ -72,6 +72,30 @@ typedef struct SpriteData { int effect_params1[15], effect_params2[10]; ///< effect parameters in 16.16 fixed point format } SpriteData; +static const enum AVPixelFormat vc1_hwaccel_pixfmt_list_420[] = { +#if CONFIG_VC1_DXVA2_HWACCEL + AV_PIX_FMT_DXVA2_VLD, +#endif +#if CONFIG_VC1_D3D11VA_HWACCEL + AV_PIX_FMT_D3D11VA_VLD, + AV_PIX_FMT_D3D11, +#endif +#if CONFIG_VC1_D3D12VA_HWACCEL + AV_PIX_FMT_D3D12, +#endif +#if CONFIG_VC1_NVDEC_HWACCEL + AV_PIX_FMT_CUDA, +#endif +#if CONFIG_VC1_VAAPI_HWACCEL + AV_PIX_FMT_VAAPI, +#endif +#if CONFIG_VC1_VDPAU_HWACCEL + AV_PIX_FMT_VDPAU, +#endif + AV_PIX_FMT_YUV420P, + AV_PIX_FMT_NONE +}; + static inline int get_fp_val(GetBitContext* gb) { return (get_bits_long(gb, 30) - (1 << 29)) << 1; @@ -417,7 +441,11 @@ static enum AVPixelFormat vc1_get_format(AVCodecContext *avctx) return AV_PIX_FMT_GRAY8; } - return ff_get_format(avctx, avctx->codec->pix_fmts); + if (avctx->codec_id == AV_CODEC_ID_VC1IMAGE || + avctx->codec_id == AV_CODEC_ID_WMV3IMAGE) + return AV_PIX_FMT_YUV420P; + + return ff_get_format(avctx, vc1_hwaccel_pixfmt_list_420); } av_cold int ff_vc1_decode_init(AVCodecContext *avctx) @@ -1354,30 +1382,6 @@ err: } -static const enum AVPixelFormat vc1_hwaccel_pixfmt_list_420[] = { -#if CONFIG_VC1_DXVA2_HWACCEL - AV_PIX_FMT_DXVA2_VLD, -#endif -#if CONFIG_VC1_D3D11VA_HWACCEL - AV_PIX_FMT_D3D11VA_VLD, - AV_PIX_FMT_D3D11, -#endif -#if CONFIG_VC1_D3D12VA_HWACCEL - AV_PIX_FMT_D3D12, -#endif -#if CONFIG_VC1_NVDEC_HWACCEL - AV_PIX_FMT_CUDA, -#endif -#if CONFIG_VC1_VAAPI_HWACCEL - AV_PIX_FMT_VAAPI, -#endif -#if CONFIG_VC1_VDPAU_HWACCEL - AV_PIX_FMT_VDPAU, -#endif - AV_PIX_FMT_YUV420P, - AV_PIX_FMT_NONE -}; - const FFCodec ff_vc1_decoder = { .p.name = "vc1", CODEC_LONG_NAME("SMPTE VC-1"), @@ -1389,7 +1393,6 @@ const FFCodec ff_vc1_decoder = { FF_CODEC_DECODE_CB(vc1_decode_frame), .flush = ff_mpeg_flush, .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, - .p.pix_fmts = vc1_hwaccel_pixfmt_list_420, .hw_configs = (const AVCodecHWConfigInternal *const []) { #if CONFIG_VC1_DXVA2_HWACCEL HWACCEL_DXVA2(vc1), @@ -1429,7 +1432,6 @@ const FFCodec ff_wmv3_decoder = { FF_CODEC_DECODE_CB(vc1_decode_frame), .flush = ff_mpeg_flush, .p.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_DELAY, - .p.pix_fmts = vc1_hwaccel_pixfmt_list_420, .hw_configs = (const AVCodecHWConfigInternal *const []) { #if CONFIG_WMV3_DXVA2_HWACCEL HWACCEL_DXVA2(wmv3), @@ -1470,10 +1472,6 @@ const FFCodec ff_wmv3image_decoder = { FF_CODEC_DECODE_CB(vc1_decode_frame), .p.capabilities = AV_CODEC_CAP_DR1, .flush = vc1_sprite_flush, - .p.pix_fmts = (const enum AVPixelFormat[]) { - AV_PIX_FMT_YUV420P, - AV_PIX_FMT_NONE - }, }; #endif @@ -1489,9 +1487,5 @@ const FFCodec ff_vc1image_decoder = { FF_CODEC_DECODE_CB(vc1_decode_frame), .p.capabilities = AV_CODEC_CAP_DR1, .flush = vc1_sprite_flush, - .p.pix_fmts = (const enum AVPixelFormat[]) { - AV_PIX_FMT_YUV420P, - AV_PIX_FMT_NONE - }, }; #endif