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 365AD478B4 for ; Tue, 26 Sep 2023 22:19:04 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E67C768CACA; Wed, 27 Sep 2023 01:17:40 +0300 (EEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04olkn2061.outbound.protection.outlook.com [40.92.75.61]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2D88E68CACA for ; Wed, 27 Sep 2023 01:17:38 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=P44T/rx+OuriY73xwrnvVRqqF1qo0ucpZSyRnPvjmb0ubAvI1KpRzvUeZcpUtwA8yxj5QsWUGhahVF/DhX47MN0YV3DrftRzkPSdMKm+7hOONcGKtEta7158HWNIAJxLLDH3PY8AVXmrvJg/MwujO4OCP08ZIKaDjgw4eoi7u8oD7hEoYdBWRNjReYM1XkGvBHf3Cd7E/DAtLYuLzmq+wkGrX7Lxq0GvNeT9yDgGiCK+uAJqhrkBHkUhlMvPuj+UuqeYcQPCrdvjUmsv3fJ9XcmrXV4mcqpcxPjAGIYXuzv1yyf8DLugDdXMnADeTXYauQHoyjRCUCPlZkm66i+MZA== 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=gHt/A3OOek8sJTnIkMzL7Mu/43QltixZdTRgkCqch4Y=; b=bcruSp2Jn/0KiwX/eQvqfYSh8v0qXjfZJwVW8LWDG6Y4hzuWPIo8ScKD23vsHn6SAfrDhRaOwA1vlw1JmNB5DQm+URhl7zjy+9vwM5uW4TEoliJCokAqDho9LkGGH/8O13WdpmaNPk37pD2SGGsgL32m6sAGIgx5O+1rf91Ih0FKKifJLq1y+V8GiHJAxNcxibGebpv6W0oys7jFwCMDLsOY/EiIl5Yd/4H3/Bbk1B/RVvDPd/l+m8JmgnbTgyGl7+X/3xc0wVTfRyZEyoHt/7z3fZjM2FVLsxm00oa4icxnuXfqNRtVHQK5lrPL8aBaq9MStXuXJ0ebRsxbOPrX6A== 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=gHt/A3OOek8sJTnIkMzL7Mu/43QltixZdTRgkCqch4Y=; b=hei3g6+qcpQKgFRoRu4sm+zYuPn0Z7GZMvYMcJwV+miexILOQrtOVBETB80u8nxw13hk4zIBVNlDY4WSsgj7cRmG8gkFhH/0gVAyHDb+XXbzuNEgipyZssIeoOUoz1mjU2PPtTEHo/I6kTfZo+DR6cW4ESuXWtQvJs5j8B543iIpWI3trnAdZKw0vMy01qjjrMKxiDDUjLLDTWva8AsVrkR57eiSfchO1NNXE6r2wzitP8V3w8E7FSV7eTBHZUzPT8CvtG260G+8bjU2KChRM3+VNeYtJ/yu1qxR2JUS/GDvSgFh7YekS8izJpJTDkJBpO65YUxJRy3AS/S0ejYy0A== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by DU2P250MB0189.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:275::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Tue, 26 Sep 2023 22:17:37 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::9d42:7b4f:71ef:c76a]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::9d42:7b4f:71ef:c76a%3]) with mapi id 15.20.6813.027; Tue, 26 Sep 2023 22:17:36 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Sep 2023 00:16:50 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [RFoQdCfggQs/uTZ2Dkm4Ehl0NYKNlgLA] X-ClientProxiedBy: FR3P281CA0019.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1c::6) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20230926221732.3711507-18-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|DU2P250MB0189:EE_ X-MS-Office365-Filtering-Correlation-Id: 43866024-5314-49b3-76f0-08dbbede6395 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tlC3BxKstaMdqpGFPpr9YLTbKdK6THGEAr2+PDUj0D2MLRVn5w15bciGE9ZSprmvMJSkl2wjvJ+GODsoGlFIlRIvFhy/bhL/XoMP6Z+xg60+/nlbA3kWc1C7g+BKzuS55bzMzQK3TjnSjzCXriplhy59tCV3sHtkWH5ClQXvnCxX8yrRBmgTwG8HziGINbrUb9/b4rdjjUR+L+PrTh+/F8NgZiYOknfPQ9apkSpK4zovR5fgxDuEd0AdfEcJzYeqzfX4xOetvqJjnGG6SqlukQMI5hS6DQAos610KOvtBcg34GCPKTLkG9fAdJ+l46EkMjopXm2+T8vTOrBoHzxTcJDtnzGu+FDR88Za/Svn3UpKSnzbs6v1gMa3HU3WvB2XBbyQIcZzHIBEB8p/LIlofO4CnWTQOxxW5PXOdVfQw64oVzu/k1MKA3Jp/A2juqj3zQHqcnWpCJyYJH1e2W1FboT6JoGRg0jeGFHMI4+PSMvwCFFg4rv/yDYGWWIDRot1+b2mW1t/xnHPgXuWnW+fWC1Q2Qj1g9hQQq+dQ6pH4tSYG87LKBi9zez5HawTtqNRijnnXOmOMHnPyA1IWcyDJdtYpqkYeHE8+/7tQbm9L/wrsxMBLCoarjgRKyTSvRxY X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?W2zpxniks7ylaFZDBzSNX0Gi2Ur0o045wj7SAvYxdaMxmooKWsS/ZGKhu8gj?= =?us-ascii?Q?W98jS9mRZQ4cH6LfCm+vtI1SZNW5otRuFUlTuCMuhoX3mk9aoc7B3/VhLtps?= =?us-ascii?Q?mvVZLLWHD+CAcAAGuk71pImu2f9ZBNpuwE7I7yG9qwUrhCmyybYJvMku03vu?= =?us-ascii?Q?zcpFlgL+7mTQbdExUu1yxTfYz+u2Ao41KfupBo0gRfkq2clQ2iskTSIOZYxm?= =?us-ascii?Q?n7QuPZwuznsArvgFq0A9uEdkX/I7UOLR17TKTJL7h4VSjv7QthmW9Iex0lc4?= =?us-ascii?Q?EI2v3B1MNqrjmT7Xt5qKlzOBgmIpscjeBegW3n7w4mx5isHUSK0ZJRVnEsU+?= =?us-ascii?Q?tAN4LmKnPYroHCRaRrpwVOan/n6eTtVNBgl1aE6i/HZy66yFhV7fN8Du8uLM?= =?us-ascii?Q?pc0b9nn9XT/gJDeTp1DgGayPXN8+UIQtNtvmsnii+lNl+xWJwmcoqBCxtNbM?= =?us-ascii?Q?FsOnyBx8i/fA++KhJsIazVswl0MoRbrzAzLujy9pVX4zgxBGxATvq9qq+mA1?= =?us-ascii?Q?9JyItNkGxslK/BhfwoOexOHwkv/TTg4LfzD22cT9CUWlSzFjVs2L6aoL4D0e?= =?us-ascii?Q?WjULilp4ntdvX6A8HB+kUgT9k9CtkKjBAAVew62pgeulY7Zl1o5t/ZUFy1Iu?= =?us-ascii?Q?PjCMAu+oY9UloWgQNOH/n0YAnzNNTalHuko+al5ICeIZjU0yvae3yfmSbsuN?= =?us-ascii?Q?Ltl7YHu9MIibo3ak/wj8d8jgMpCLy1vm0hfNVlKI4S2M8y6Q163i4CajRw1A?= =?us-ascii?Q?+eEO7+T7WjFXV3yIA9KXX8n+3B0lUmJ2447u8ytUhVzH42KJMObC0UCWFi/r?= =?us-ascii?Q?pwUzUW4aW6564F0Cd4IQLRisL3MoM4vb87VBSHZ3u/OESktGIqgygOCijYSI?= =?us-ascii?Q?3HVA4kvdBVP9DbN6F7G+HAKoCdDWfrBY+U63LPh37TYAul9Jd+8MWTc0BB91?= =?us-ascii?Q?j41YdXz9FtXT6AANCrF3KQT3OOIxpSE/sCQdvzHX0peoQtYTXQJyxAG7sQUb?= =?us-ascii?Q?+bT0ZYlnV1T7gkGmKTM3hmuB8M8B5MADgEGkRyRi0/X8qOFUsrVINckHovgT?= =?us-ascii?Q?RDX0kTY2Vj8CHkooK3sfHOPyKvlAfoh2QNGoYIGm1qqNtpDpH62fJUrRFZi+?= =?us-ascii?Q?s74Bc8ULO9tR7RzDaWbwNH581DURZrYTUBdnfkAaN+Gt+VmkUpWZZrqMdqWJ?= =?us-ascii?Q?BSdXPphQgzLYD27Mi8Hhf2C68rtGquL9bnHTZZWSlpdghZ15d+6yOQwmfkr4?= =?us-ascii?Q?Dhai5DUIiafXp0tw+mWY?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 43866024-5314-49b3-76f0-08dbbede6395 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Sep 2023 22:17:36.8336 (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: DU2P250MB0189 Subject: [FFmpeg-devel] [PATCH 19/61] avcodec/imc: Avoid superfluous VLC structures 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: Of all these VLCs here, only VLC.table was really used after init, so use the ff_vlc_init_tables API to get rid of them. Signed-off-by: Andreas Rheinhardt --- libavcodec/imc.c | 28 +++++++++++----------------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/libavcodec/imc.c b/libavcodec/imc.c index 754ceff958..99eb089236 100644 --- a/libavcodec/imc.c +++ b/libavcodec/imc.c @@ -106,7 +106,7 @@ typedef struct IMCContext { AVCodecContext *avctx; } IMCContext; -static VLC huffman_vlc[4][4]; +static const VLCElem *huffman_vlc[4][4]; #define IMC_VLC_BITS 9 #define VLC_TABLES_SIZE 9512 @@ -171,16 +171,15 @@ static av_cold void iac_generate_tabs(IMCContext *q, int sampling_rate) static av_cold void imc_init_static(void) { + VLCInitState state = VLC_INIT_STATE(vlc_tables); /* initialize the VLC tables */ - for (int i = 0, offset = 0; i < 4 ; i++) { + for (int i = 0; i < 4 ; i++) { for (int j = 0; j < 4; j++) { - huffman_vlc[i][j].table = &vlc_tables[offset]; - huffman_vlc[i][j].table_allocated = VLC_TABLES_SIZE - offset; - ff_vlc_init_from_lengths(&huffman_vlc[i][j], IMC_VLC_BITS, imc_huffman_sizes[i], - imc_huffman_lens[i][j], 1, - imc_huffman_syms[i][j], 1, 1, - 0, VLC_INIT_STATIC_OVERLONG, NULL); - offset += huffman_vlc[i][j].table_size; + huffman_vlc[i][j] = + ff_vlc_init_tables_from_lengths(&state, IMC_VLC_BITS, imc_huffman_sizes[i], + imc_huffman_lens[i][j], 1, + imc_huffman_syms[i][j], 1, 1, + 0, 0); } } } @@ -311,16 +310,11 @@ static void imc_read_level_coeffs(IMCContext *q, int stream_format_code, int *levlCoeffs) { int i; - VLC *hufftab[4]; int start = 0; const uint8_t *cb_sel; - int s; + int s = stream_format_code >> 1; + const VLCElem * const *const hufftab = huffman_vlc[s]; - s = stream_format_code >> 1; - hufftab[0] = &huffman_vlc[s][0]; - hufftab[1] = &huffman_vlc[s][1]; - hufftab[2] = &huffman_vlc[s][2]; - hufftab[3] = &huffman_vlc[s][3]; cb_sel = imc_cb_select[s]; if (stream_format_code & 4) @@ -328,7 +322,7 @@ static void imc_read_level_coeffs(IMCContext *q, int stream_format_code, if (start) levlCoeffs[0] = get_bits(&q->gb, 7); for (i = start; i < BANDS; i++) { - levlCoeffs[i] = get_vlc2(&q->gb, hufftab[cb_sel[i]]->table, + levlCoeffs[i] = get_vlc2(&q->gb, hufftab[cb_sel[i]], IMC_VLC_BITS, 2); if (levlCoeffs[i] == 17) levlCoeffs[i] += get_bits(&q->gb, 4); -- 2.34.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".