From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id A36604AB31 for ; Wed, 12 Jun 2024 13:50:24 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9931168D92E; Wed, 12 Jun 2024 16:50:17 +0300 (EEST) Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02olkn2085.outbound.protection.outlook.com [40.92.50.85]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3CD6068D921 for ; Wed, 12 Jun 2024 16:50:11 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=i0H3L2utwAnTyJfIzsYt2gZ1UuhkEPF6HEWMljpKw5So65MFw6J2HNvcS+HMO/MSp8xwLGesdViUp7L4zHUm+/H88WYO7ic1IC3cZd5sgx9Jf1Q/KBW5HQStJTihaE+Ewoin9DIePzniftQk/tyo9tFE/NpLCYpyhb6RZA9MV5Yxxy1+qg4onJtJYH4pU2P/+i7KNtgq5+PcPZDVi/xjo9LgnNmzVzdvq/A5Ig6avk6MTni2TLBr+J82Jzf9NUD28qIRiBRhikcPdAqLFV5fERiI7tp7EQUjr3ozME+Ui/6n6O7lEXtGSJMzPxCDfzjrtr9hh6Fuz/Nl1KdBRWJmlA== 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=0aD57oSbDFkclCmuNQClL3kgInmNl+Vhd/Gyfa8/A0g=; b=QtaOFv9DOPHgS00PxV0YwLHH1igcB45c5ldJ/J2LcZp04Rry8VQM9WZGAE0OLYbiCiD8hFCLDteaZXHVR+aGannaXb85am6SIZfeGBXqPkUjX7qEz/9pc4bJKsnq64FTEx6ZKp8bCTu7wbfwbDkEcQ2O5HeCpP0GVi1gNoQMsIo7k8QSPKIzlP5Tb1cRJm6BBiyC9/y6M8NbxV/o5aK1JA7um3sYhBHMHFUYGyf5G+JF+bnwVvzr7sjfwqhdNk8OcAR/P38+EUPi9pXBHthumXOeSSR+K0ctP0a7Hmke7EeaFS8XgtmA7Ns5crKQNnwI7yMEj/54O6aeOYtV91ClCg== 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=0aD57oSbDFkclCmuNQClL3kgInmNl+Vhd/Gyfa8/A0g=; b=Fca5R+7JRQC11kdhMCPniBZt0Ceq1+xy1n35XqU2oyg00rbZMzM4f/NYLUrBxDes12lndMYYulinZu+kl4nWrpbG4rkbpg4LRJ0xB2xmxA72J3yh9FlVIWot7cgvs1KvBpJ/0j4g/uZ0L49EB8YxBt1GTXCtkrlHXOSWzuPTySMerumrb3hnG1vtTvFurvrkhtvcYtb+p8KJovqyiEvumMBsgMkLBnEVjm/TuFuKdWwsMY/V98xSTBmWnUssY0G46iH9mhJDB1FFJINB67ol7ieK+tbaQp/JYAqfZIolcJbZaUfO5szL6XvTgCwaxzPwfU6ZEFojEk9ZdJ26bWIwDQ== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0054.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:359::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.37; Wed, 12 Jun 2024 13:50:03 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::d6a1:e3af:a5f1:b614%3]) with mapi id 15.20.7633.036; Wed, 12 Jun 2024 13:50:03 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 12 Jun 2024 15:48:01 +0200 Message-ID: X-Mailer: git-send-email 2.40.1 In-Reply-To: References: X-TMN: [6VAGB5380uctasWpoRlQPLnc885dJTNwc60At98pnJA=] X-ClientProxiedBy: ZR0P278CA0189.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:44::6) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20240612134853.2102377-4-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0054:EE_ X-MS-Office365-Filtering-Correlation-Id: 62fb33c9-8e8a-45df-1ff4-08dc8ae68f37 X-Microsoft-Antispam: BCL:0; ARA:14566002|461199020|440099020|3412199017|1710799020; X-Microsoft-Antispam-Message-Info: Qsd/exnt1bclz0V7LNbW4XWaBVUJI78Xsv5mxIZuDTY6bFgfeDuxNQM8Pk3Q3ZQtp7Dr8ITsYiz5ss+Yp2bquFd+YRFq+s/DU2rK9IK7ftHOmiTaZG2cwHbmLfnl3c2hrOXeok07p+THg59HwQvraki8dkwAJjixT8Z8xp0JNeiIeQZqd8SYkWCYdJceY72+6O29rQKPv93dhmFsYS69KuJZfvFSrtZfixlTjOBmv+7+G7TAC9LWD8Sa5sQZHMXliGiBUEti1Bx8doZpfnufP840Bhq0UmpS2QwVdteN/nS3LGXOZDqQicZDJxJ3BZAqPQRN1lAhOyMbg7LbW9jKDT3wtQ3An+FQ61q7iBFAHZPjXHK7CBQf9fhg9Ld6dG3gAJGK/zObB7bywWcxtrXrxjmeIU3+AYZkGpwmRQE8WEqDvJkU6g2oWO1VxDHZ/k9IdWJJmDAf6gDlhttrPNjeshLyBkEjRniiKQGAg+Gwg9PORUtcuRXf3A3hLqqRPJYqSwShe4eiuM5IG2uVEtiJ6vmu1cTSpdRJ3+M5YJ2852PfwgnDjnP/hmBQqdl3TZv/vQ0q+zWWY4WyfD+I9KQs/cI1PhjZ8pJ6Hxg6oiA7mBZJR6YLN50z+IyFaAUE1cGB X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?9AbdYk+b9cdikIa9rTTPCwWdbHByb2fPYWZnJRj4O57oIjfgmcvkHzJT8TJN?= =?us-ascii?Q?FeCC3HT+1nO2+w8FPeu1h8xaAFyAzrXRyJ8ZnBR9TVDeEbeMiTVv83P4JxW/?= =?us-ascii?Q?vtjblOPWXJvVEbq+UVMoRRQvKZws5rbhhjK3BK36d5NpUw6Kljl3z+ByAzdV?= =?us-ascii?Q?sKtCBQg0Llzp20WmkWjoImOFy4ExJRelfgOvslegmRIsdWi2mC0q0OVUV0GF?= =?us-ascii?Q?F/c+3zxhvf9cLTodcbPGTTM1UDqJD/bNZwMu+F16ZQadNT1x7dejL76kCVWw?= =?us-ascii?Q?sIqLb4dlBo+Jv0tYTpYDkX5BbGKqaNHRptaoHbOMqBhaPBKEHsMUdDKf7EAi?= =?us-ascii?Q?oNQaI+EsIa5qvt/a9PmERoaKgreAnu1plen9PdPyh9r7n7pZeWE2HH9VUzlV?= =?us-ascii?Q?YDVd4HEKMbh9+hN9YpIiP7dLuEWRc6a2FV3EIXMA/klljWXLmevaMxafe0/h?= =?us-ascii?Q?gHQJ43UIZmPEsO+RRwzM8hdGCtBLvA9tXy7UxGQ2azpTq5SfypaNUm2HKQbn?= =?us-ascii?Q?DEji3nXdHCouzR1wP18gcHZ4OkWh4T5Kcy8iTaQy9QGA8EhlqLoMJaTmQPe1?= =?us-ascii?Q?c3+i3Scz9SjXvAMy87bHmgmc089lUxAAT5f9ruyXgEZfQggZacnU4T9KpkGr?= =?us-ascii?Q?9f/LUcs+D8KP1DANX/UYdD7Itq76qVDQYfAXQE6yff4+mQJgEMXGWjwM3PB8?= =?us-ascii?Q?n7KxjhK7KxVtYiyVH2IBaPQNa5yJ16SY7gJt6qVVKqxnH8H2jyIkqZSths9Y?= =?us-ascii?Q?raS6SgU47t4YrNmMRqJEULnBGc+4MruMl2qcKRnnW5LbvddkKqhaCdaGqska?= =?us-ascii?Q?UvSLivKRkqvBQeWEXDJJgkiTWhUGb6qD9UNFXXunQPKL8OrposgRIrMFgBBN?= =?us-ascii?Q?wpBhJ7hrWm6UD1NxLYEIMx69oRIbtMWgRrkohCHTAz23U7w2h0jO/edQ3WR1?= =?us-ascii?Q?EYvVIG9KB307F7M9L2M/fGJPZ9SVCOSrw22cedb7L41EBo4jKR1AzUJMbAKN?= =?us-ascii?Q?8jSZi1xz7CVBQ+Xv0PdGtJFKFDRt6i0K0poO9IGyS/vBKFlqxd2Ekia1+S0H?= =?us-ascii?Q?TjjCq2a3YZWeykcrhWIoIdxq/lxDMxkgdSsmK4dttm+3HzdLoHMSOVPiuM2I?= =?us-ascii?Q?sOokmklBwMwGXh6CpZ1UTMqiI56H85EQt4+gQNxR7q62ozccXUKwYnWd+ZLn?= =?us-ascii?Q?HmSOyBmWVugdU40xY4vBwhIaniv+KmsUgW8OLV6IaJDJCBWS/etkdj6JjHYc?= =?us-ascii?Q?T7Z9ScJVzbcASK+Kp4Wfe8OJIKH76ihlSP5M4XpXqQ=3D=3D?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 62fb33c9-8e8a-45df-1ff4-08dc8ae68f37 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jun 2024 13:50:03.1119 (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: AS8P250MB0054 Subject: [FFmpeg-devel] [PATCH 05/57] avcodec/mpegvideo_dec: Set dct_unquantize ptrs only once when possible 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Everything except dct_unquantize_intra for MPEG-4 need only be set once. Signed-off-by: Andreas Rheinhardt --- libavcodec/h263dec.c | 8 ++++++++ libavcodec/mpegvideo_dec.c | 21 +++++++-------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/libavcodec/h263dec.c b/libavcodec/h263dec.c index eee7978452..666675fcf1 100644 --- a/libavcodec/h263dec.c +++ b/libavcodec/h263dec.c @@ -110,6 +110,9 @@ av_cold int ff_h263_decode_init(AVCodecContext *avctx) avctx->chroma_sample_location = AVCHROMA_LOC_CENTER; break; case AV_CODEC_ID_MPEG4: + // dct_unquantize_inter is only used with MPEG-2 quantizers, + // so we can already set dct_unquantize_inter here once and for all. + s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter; break; case AV_CODEC_ID_MSMPEG4V1: s->h263_pred = 1; @@ -523,6 +526,11 @@ retry: goto retry; if (s->studio_profile != (s->idsp.idct == NULL)) ff_mpv_idct_init(s); + if (s->mpeg_quant) { + s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra; + } else { + s->dct_unquantize_intra = s->dct_unquantize_h263_intra; + } } /* After H.263 & MPEG-4 header decode we have the height, width, diff --git a/libavcodec/mpegvideo_dec.c b/libavcodec/mpegvideo_dec.c index 0a50cfac5b..ad35505819 100644 --- a/libavcodec/mpegvideo_dec.c +++ b/libavcodec/mpegvideo_dec.c @@ -59,6 +59,13 @@ int ff_mpv_decode_init(MpegEncContext *s, AVCodecContext *avctx) s->codec_tag = ff_toupper4(avctx->codec_tag); ff_mpv_idct_init(s); + + // dct_unquantize defaults for H.261 and H.263; + // they might change on a per-frame basis for MPEG-4. + // Unused by the MPEG-1/2 decoders. + s->dct_unquantize_intra = s->dct_unquantize_h263_intra; + s->dct_unquantize_inter = s->dct_unquantize_h263_inter; + ff_h264chroma_init(&s->h264chroma, 8); //for lowres if (s->picture_pool) // VC-1 can call this multiple times @@ -393,20 +400,6 @@ int ff_mpv_frame_start(MpegEncContext *s, AVCodecContext *avctx) if (ret < 0) return ret; - /* set dequantizer, we can't do it during init as - * it might change for MPEG-4 and we can't do it in the header - * decode as init is not called for MPEG-4 there yet */ - if (s->mpeg_quant || s->codec_id == AV_CODEC_ID_MPEG2VIDEO) { - s->dct_unquantize_intra = s->dct_unquantize_mpeg2_intra; - s->dct_unquantize_inter = s->dct_unquantize_mpeg2_inter; - } else if (s->out_format == FMT_H263 || s->out_format == FMT_H261) { - s->dct_unquantize_intra = s->dct_unquantize_h263_intra; - s->dct_unquantize_inter = s->dct_unquantize_h263_inter; - } else { - s->dct_unquantize_intra = s->dct_unquantize_mpeg1_intra; - s->dct_unquantize_inter = s->dct_unquantize_mpeg1_inter; - } - if (s->avctx->debug & FF_DEBUG_NOMC) color_frame(s->cur_pic.ptr->f, 0x80); -- 2.40.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".