From patchwork Mon Oct 2 10:51:59 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 44091 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:1204:b0:15d:8365:d4b8 with SMTP id v4csp1315407pzf; Mon, 2 Oct 2023 03:51:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGCqYVQByjxak7/dG5MZ5d1XXSnsWpK+X7QbhPQhfwLGL3QfEbBGRGFeFGv2oJkEvIFIRFp X-Received: by 2002:a17:907:270e:b0:9b2:6db8:e0fa with SMTP id w14-20020a170907270e00b009b26db8e0famr9565839ejk.41.1696243865403; Mon, 02 Oct 2023 03:51:05 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id rv2-20020a17090710c200b0098e16f844f5si19033088ejb.715.2023.10.02.03.51.04; Mon, 02 Oct 2023 03:51:05 -0700 (PDT) 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=kA1+PPjK; 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 437C468CD71; Mon, 2 Oct 2023 13:51:02 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01olkn2102.outbound.protection.outlook.com [40.92.65.102]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AF4BD68CA67 for ; Mon, 2 Oct 2023 13:50:55 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=gftvgbiveslpq0HoEX8DiwolioJ3GZISdGL9UPzNRPxYE/3MlVjwvazQyCg+KsVtG75chtBSjPJwoU0V6kB+s0+99+iRf0e34TUPrys/e6pYHiMCzgTmoGoqjDWl3cYhZpIY5AfIU+U3txTgzAsVHuk0a74YiEB8VeLcTogquIKnfFWJDemGm5vCPiZw/pqzyKvsW+euNOJLZPXLEFgezaVosDtQ4w7jIBhWYeu0JE08lCGdSIFcUAkcDKDlj2iSJmF25DS35Ic5kXWWFh06o8KCMGrZN/5QfnGH0KAcDu546pSgwxYMCE1FDa4mL5Q/w6rp/hgmaqSMg/Z+JpsRsA== 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=TxxWqtWxJ2Nd87zk1DyZahX4B7ERo1BcVBcj7Lppias=; b=H0jSIkyaUJc/CaxLFz/lZbuiOnjw7pGhYPf/vquI5HotO8O993quoXveQY9KUlSDtuMdt1LxZSUK03Nx2EI8hX4/BQB4qlLURnCkGVwb2UxQBVl1U/ARrZ+kEN6oSpKTh321X2VjWw6aHE4CtYifKav0FIZp/zbVuCte31yY8XDV4S+HqF2rDBDfrxX2IC5kMs8VRF59UNmXAn1BhSOF5zm3ZtgUI6oOYX85WPAM5QiCdmHH4t6kCVH4IQQl8uopHNBr/eKB68Zx81BiFNCNqK9b8lt80mWUhD1j58spvUFpzfgDkFnpfpiUWe1+abhmY2PW6gvK5xT+PTLOhyZYbw== 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=TxxWqtWxJ2Nd87zk1DyZahX4B7ERo1BcVBcj7Lppias=; b=kA1+PPjKXMFXJPlkvhCOGhgPTPfHDBTztgL72EH57g9B2QGrMJ7ehTuzyeARAKcFI3pLOlNXNzvsW+uUCGpr61Xft/IRTz8VkxUQX9AfcCsBfPrSDHXubPOThJZEsr6fjzdXESOtXHy6KMEH0VDVQn32VtYbXNG2wESC15t+Sywp2q/u3CgTX1rA83BvMMbxhzKpBUYbKRQoYKJOjgrrNx1aatmgRMDtHJL61ebID3GxNUBcUtwWwGwhhtygrQWGYsT0oFnYjl65bb/mD0SNrt6KU7K6QrrUH+HOvc7Zm+a9xIJttu8IfGZmsL/LB2VL4XlF2fanIU4ufSkShmrM4A== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by AS8P250MB0203.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37a::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6838.30; Mon, 2 Oct 2023 10:50:54 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::5e01:aea5:d3a8:cafa%3]) with mapi id 15.20.6792.026; Mon, 2 Oct 2023 10:50:54 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 2 Oct 2023 12:51:59 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [VJttrZnuKkFJWzBSLKXnJjQtvhwPC0Dg] X-ClientProxiedBy: ZR2P278CA0015.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:50::19) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20231002105202.835642-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: AS8P250MB0744:EE_|AS8P250MB0203:EE_ X-MS-Office365-Filtering-Correlation-Id: 0e2c151e-99dc-461a-76a9-08dbc3357360 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: IbL+1ANQ2e1SnCT1OiJyIL387svikIGJfGloaIW2xYM8wGn7KyqnCD8hG3Y2+n5F9trIUjDAPKvuC0IvsLjsCG5QKS4KThmmJSnC6rBHPbXdnhCqQUf4E7f7rSKzRdtWR3nrIpSERr1USJDTLHfayQcNTMzwnothr+5X2ttHaVpRCphm9ANeIGmDVNMfpRP7wpCRyYJ5sO1XDjIJqQrprjJWft8d1jNNgeOd9PTZAziptbrlj1igCEgoW7cFnQGdXu+N35RuPOipT3Gv3+omaoK3ieuvgGfAkyrN4ogK9wrU0H64Jxpe2SCYm/ENJcCmHhmSydB1+01ZKPgRC6Y3wumhuxZac+UpMMELstwNG04HLZay0CtPmnVpQOrQ2NSi30v8O1oNbYQbuGtusQeEqKmSpl0jr/IuS5ji0U8F3fOS5I0s9nNbMayoxe1GonzqC6SqmWUxU5xpxkIvTkqZzckvm2KwOxUmLNUv41ymh1w5ljAmLtduNjfoyYVabCnLQ0DQClPW0Mn0x9nifWh/DOFb/TTY/rz+cvRKQqnYVdRifhQl70fvCvVJfc+8r/uI3zfEqZEASaPaJ0dshFtQWsdO6EQ77TN+ioydeNIKhiefsiWJgJinuE7VeJOOi62R X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: ev53Fk8PWx++mCFI0WGKX/7gNfFwXDMQYqXWpz4csE5Jl6GohknmYdbjeIV8IJgcIQsQwvv5MYu0a22bUAg63ObuazTFez/EKlY7azFCEBD7zloy6LXURdJ40oV9YmTj/0nimPaVJ9FrUplV6dZDL48xDFJxsydt0wFoZ641BL5dfR52m5fD8gCLKXi5ycaXnkXnIkbKpU8Sb8wQyD363+1aIzWi52SWb4CZyJz6dFo/LtDrZ0D/8hGSH4cdheUUJCjlWSrUMx6lpdG1ggZJ7vorzp0t0ium9XgfEu9jn2+mn502EP8t8+u5EF8e9hZ7m0GxS163wShE08KKWcfreT9gSGV94/LNgkc3MFzwejJ1R18X5fc5J53zxmNjzOJiuSaI4EeDkIM/0JR7TxazcAY5HuGzVDrrH/u7TjbghUPeZ02OACAJBgM9DmXkslosB79NJ1o3yp/67ZVyOVG0M6EFPo1wB4FHi993A1M9AVdCyGtyRK4AZ1XIWhvTIObCo+0bLXqkNpkEy7Du+tetrVwJ5nxoh1wrA+4i27pX5Kc3eDNJ91ZVlNLJcXl2OECEeeBUj9fTYG7J6N31C1BL2oQl/KkCIMNAIrKCMfYKy5RTqMYqoNq5G0h2xs0sleKMa/wGQhcOOIzZbiyIBVmtipz9oDXvRVQTqEPirL07y/4sjbndMyq9QE5VGCGKu0yF3eOu7BoPk9MSEwkaaerDUTlC77niCqAm7hvxVyEte7IucJ4rWjYJ5cou88c2phS/x84wrp1c4douuk53cx1ruc9IwQacXJ06PLymhlsrvLfwbZNhaRMeavdUADQrZh6ue3nVX+Sutvl/UORoaddKRI2NP362Z/uQNee7NNOio2sCvJzK956XtiWEXgnulk8kaqOUIet9hNy8LCLh4YVI3talbspAjxc1wmbcUQUw8Kh/cbwXESW5jChv2wz6VMnny/Bb3SNrugs3kgKC5ELXrQbhY0uhYmVxZWIv52yaUGv+WI052BMTSY5NPkCzlOzMcUx6svGNZxDndG6B3R56p8ZupCAgbsmM0Oatjffgu3ue+wlnFgTqKLtyteCLUDBwlif8ZIsFfWpp0H/sBmoly7GnTCVxBmyw5it8dJ2K4D4cWF5nyFi2mIIgNRf+f6J06ABA+17mlE88ZTq+mhFwcanbz8HsDJ7NJWRKosz89LFYprMDeTU6GPQjnLLOcaEQenI22tHPJou/mbb2uewBXcJED+lFaYYVqt5cULGEAogFw7xDFhVrHe25w8QX/sP8 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0e2c151e-99dc-461a-76a9-08dbc3357360 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Oct 2023 10:50:54.2768 (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: AS8P250MB0203 Subject: [FFmpeg-devel] [PATCH 5/8] avcodec/mpeg12dec: Don't initialize IDCT more than once 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: L60NtYX0v5PH Before 998c9f15d1ca8c7489775ebcca51623b915988f1, the IDCTDSPContext has only been initialized in ff_mpv_common_init() which is deferred until immediately before decoding a picture; to nevertheless parse the quant matrices in sequence headers or quant matrix extensions, a dummy (identity) permutation has been stored in the codec's init function; after ff_mpv_common_init() which could change the permutation the matrices were repermutated. Yet since said commit, the IDCTDSPContext is initialized during init and does not change afterwards (unless the user forces different CPU flags), so there is no need to reinitialize it; the repermutation code can be removed as well. Signed-off-by: Andreas Rheinhardt --- libavcodec/mpeg12dec.c | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/libavcodec/mpeg12dec.c b/libavcodec/mpeg12dec.c index 92ef6944fa..d2dbcd5b61 100644 --- a/libavcodec/mpeg12dec.c +++ b/libavcodec/mpeg12dec.c @@ -1057,8 +1057,6 @@ static av_cold int mpeg_decode_init(AVCodecContext *avctx) avctx->coded_width = avctx->coded_height = 0; // do not trust dimensions from input ff_mpv_decode_init(s2, avctx); - /* we need some permutation to store matrices, - * until the decoder sets the real permutation. */ ff_mpv_idct_init(s2); ff_mpeg12_init_vlcs(); @@ -1093,18 +1091,6 @@ static int mpeg_decode_update_thread_context(AVCodecContext *avctx, } #endif -static void quant_matrix_rebuild(uint16_t *matrix, const uint8_t *old_perm, - const uint8_t *new_perm) -{ - uint16_t temp_matrix[64]; - int i; - - memcpy(temp_matrix, matrix, 64 * sizeof(uint16_t)); - - for (i = 0; i < 64; i++) - matrix[new_perm[i]] = temp_matrix[old_perm[i]]; -} - static const enum AVPixelFormat mpeg1_hwaccel_pixfmt_list_420[] = { #if CONFIG_MPEG1_NVDEC_HWACCEL AV_PIX_FMT_CUDA, @@ -1177,7 +1163,6 @@ static int mpeg_decode_postinit(AVCodecContext *avctx) { Mpeg1Context *s1 = avctx->priv_data; MpegEncContext *s = &s1->mpeg_enc_ctx; - uint8_t old_permutation[64]; int ret; if (avctx->codec_id == AV_CODEC_ID_MPEG1VIDEO) { @@ -1297,19 +1282,9 @@ FF_ENABLE_DEPRECATION_WARNINGS avctx->pix_fmt = mpeg_get_pixelformat(avctx); - /* Quantization matrices may need reordering - * if DCT permutation is changed. */ - memcpy(old_permutation, s->idsp.idct_permutation, 64 * sizeof(uint8_t)); - - ff_mpv_idct_init(s); if ((ret = ff_mpv_common_init(s)) < 0) return ret; - quant_matrix_rebuild(s->intra_matrix, old_permutation, s->idsp.idct_permutation); - quant_matrix_rebuild(s->inter_matrix, old_permutation, s->idsp.idct_permutation); - quant_matrix_rebuild(s->chroma_intra_matrix, old_permutation, s->idsp.idct_permutation); - quant_matrix_rebuild(s->chroma_inter_matrix, old_permutation, s->idsp.idct_permutation); - s1->mpeg_enc_ctx_allocated = 1; } return 0; @@ -2169,7 +2144,6 @@ static int vcr2_init_sequence(AVCodecContext *avctx) avctx->pix_fmt = mpeg_get_pixelformat(avctx); - ff_mpv_idct_init(s); if ((ret = ff_mpv_common_init(s)) < 0) return ret; s1->mpeg_enc_ctx_allocated = 1;