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 1EA3E478AF for ; Tue, 26 Sep 2023 22:18:37 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C230768CA6F; Wed, 27 Sep 2023 01:17:27 +0300 (EEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2064.outbound.protection.outlook.com [40.92.90.64]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DA9DF68CAB5 for ; Wed, 27 Sep 2023 01:17:25 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jBuIKKrRClAw0rJtVN2ChGsQ//ai/A6YhPaT0TDXqEJn983oM0A0CogwjxwD7h441Uonq6q5Sw6mkokbW+CJv57i18EwqSl/CmLx0hpW03JuZ5/RWXVUp7WOcWGVWYYU/a2lS6Hxkf5V33A8/cJxlDbf6pLGUA3OhgONXdYHp/YMuglrv2IEtWhZxTA9tBC/6LSObzVghqTIPtglWsHS+KOLE5ZGkUlHsqN/+ivu+k6QUUexEvzq+WG+O+gUCymMrF6Ksdc1pEoJYKgEqy4XNipMD5VHv3RqJFBhIjY4D4mft4icUrcsYCu4yKO7xHYILXdWwqaxOBX+sOAJwBjNYA== 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=KyG7tBiV/nk9tk+s4dPNL/4D6Ww+kZdYyNXYaPk+WgQ=; b=QWQ0tEjUHE4Rap/deBKN0afaF6oimG0ykWklgswy3+p8lUne5oZ9xySah94yEhZ+dsEDYcbMbxWzYXn11+WFSPkBkuXZd7l0UoSQZWif5nj4aY8ygdtv86uQEq8+ngVIXEUMsuBOFjca92gCHKxKyaFKXI52kP4rjJLuRNU8fPG2UGVArBEoC43EXEI+9FmCTY30BILVGWuyZx0P0QSvByhUEV3PwuV9CfJoNEWAhKCn73oBUMJRBy6AKfj363hgptDsK+O71pusDM0iWVhuAj3Mm0+FBu9J/rTgWBEyunmVKz6t1yK6Cw9uEF4p50Uy6P/Cim0z2+cvCtryCNLFXQ== 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=KyG7tBiV/nk9tk+s4dPNL/4D6Ww+kZdYyNXYaPk+WgQ=; b=Meg1K0vJLKV9wfL9M3Sq2TYRtNVRC5bGhx01mhi/VznicgdpgTVN45uwXRMkbK2luFUVs2+wK9YWQeMFxd/o0MHkmwUb+TEzzxw4U6BKOIGLjjFEJpY/E714/JIBKfi7E2xj/Yqx4gzf0k4bLP72WX29tkcB10Hh8QkYp1ob2tDTPwA3gRvDRqdVuuN9tDJ9nmTPnqO6wNCg6eAjezhTXxb1tc98bNvozycvEYtsLgvoIN1MKlsNihWXITnjkdfGqPbG0hUjw1bQUMMa1yDekC1/jcOlJLPv0xoOwTSU+m6PIB0jQZs/Lqh+4n8NkXTrij6lt6kYnUOMZzwWx2sjng== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS4P250MB0413.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:4c0::8) 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:24 +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:24 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Sep 2023 00:16:47 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [I7WhnmEfBathOdB/FNBtIeQzTUVAkfPB] 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-15-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS4P250MB0413:EE_ X-MS-Office365-Filtering-Correlation-Id: b06a4be8-a15e-48be-5296-08dbbede5c3c X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mTwnMXf9Fa4OiBe/iWjbiu+MCqFtApEvi4etDwhf1KiHN1ZV3M0rsbx9ovqrx16gPy9Ub47uHrLDYIqzGXKQaov6WaFTJiCYm4va1UyR72d2L5k9uSnm3RmlK9CxxUQAd5MjzKfnoobFWdgIrJntObrEUweW1KbSknRW0WA6pz3z8utyM+qEvZlleFkpvecpFdqrln8ZqFJgDRFV9699cgik+g0/Tf0wkA2rwDNBAV94/ckHHi0zD1mlAz55lL9gNQ+EqExnrjDCavDSnrUv+jYkGAUhRzPq21EusLTOE0JhhBiMknnsbY8Jx4SFt4ztsiKMioUFHxpKstGKBwBr4dPlFFLTc2hCJaL7vbfEshmbHu6o/NJMKBkB5lRyS+xfbY86k2sSfF9XL1BwKkSqED7Bngy7VUIjF5WNbKrCSXZYqLwsRKkJSRQxrQGt8kPbRwWYoH204UfOjtZCifzJ5Ke3ey9LM6oZ7oBjbQLJHzPjWEyy4o5zkdVtPHQYY5M1VBTHWMX9XhCq7T+6rYVS8Tc7e+fkgXDTUjtyZAxg0LsTjYtyHRPdMSpKXMaQO/8qtuw40AmK5Z3e2YZ6apccwVdIG3QPr2Pzhn7kPieANuV7goCbDs5RvBpmxt0rPoVD X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?0Zr+uwmrLIZVWKJXWn7OSMlxCrpmd+ug5R5HYr/Jkc8OYrHLYkcZIrl/aumZ?= =?us-ascii?Q?1g7cWvasO8dAIVKj9sk2/2lyi3BzYjFFaB9lJYML7Zw4DQ9kBCCD5AAA+6Ro?= =?us-ascii?Q?F1vTGp8w4OcDUGGlHdEfy67PdPcgwQfzvk/xCGqmztWHyZ+z1kY63nyidij9?= =?us-ascii?Q?A6o+5s4CMdSl70bfLblVU/aBwfsi18wJlcIzSPHXPHeWaP19q0Of8EfRL6Ye?= =?us-ascii?Q?4q1OwlJDiJ3K0p/v2wlKJ7I+pq5sfn9opnj3NQyXiEahgBkBSbyeaXSOeLI0?= =?us-ascii?Q?h+K4BJotV/uFEV2Kfd9+ZJMzZFsfd5dya3ea9IsB3/tNY54auR1PBzFfev/0?= =?us-ascii?Q?RnuArd7Vf1q3loZ5Ov/FCYmRMsag+3ZApuyRtXlvggKO/OZUuPgklvJ0KNQ0?= =?us-ascii?Q?XOf4DLZcnjJfA4h0kz/gIRyuNc5Fk8WbZWa69TiRI4ydBx/edO4STiazYh3i?= =?us-ascii?Q?83fR6MzX7drmDRMvIU2fUxT6eKTn18GeT5dmNy1JylymkExMTiL9/ZtCvgBs?= =?us-ascii?Q?+SHDiqvVX+95YELFpPNICFomkLdceP+5FK8409Rjz2oLcLLlH4kaShUd/1+2?= =?us-ascii?Q?m9rnAxXrk8xS2Wn9Nq7ESqMY5GRnC3dlnGjbTuMJanYav+fi7ElckEtmlFic?= =?us-ascii?Q?9CK6+zd7IBeKpcWdptmf0FdtMB0SvTnbVh52OxPeBiGhqk0t8RCI6Qx+G29k?= =?us-ascii?Q?vC37q9VqSvaj0gG11lZrWFvGkiBN64/kw5jYQ/ZD/dI0D7JLv4KdT+haWR7E?= =?us-ascii?Q?riCQko/DbYqnB+IydBSZlM5FOcBct6iClSK43xiTiwOJNKY2wsARmLZt+y86?= =?us-ascii?Q?xb50Fr2mGocHG2hi+ReTG9v1qJYixUuvMrdBwiJFu/h9FtSdDoqZ60aKHL0c?= =?us-ascii?Q?4Dsh2ZzqL3fq8fhm8BQOIIOKQAPYeZM4G2KzOj6gNBFLQ+rUdTuYm81Jk5nj?= =?us-ascii?Q?WtsHL5XQdTyzHEvn/g0lurlR9G17SWDuJqW6I2DL8M8TgjnshlXsLl5+muAn?= =?us-ascii?Q?uJRIFO44pdTYgySN6p2YWiMnoSOsXD1x7dXZupptTzPBw2E3Hg/BA18j3GWu?= =?us-ascii?Q?UxfrbMi01b3fNEldeYKjclpfcZJFnTRI/aCabSIrbb7BXP2+8cQYJ+UWBc8y?= =?us-ascii?Q?mRqeHni49/+6qq1tGmSwWj4cvUlI0YZJiwzKxCP965n7kWfTe1VQgYrPtpQ7?= =?us-ascii?Q?D+IAceVHlDhRVHhZbXsxokeXX7OIbmU/XOQuKvm+hvy//TLwc3Dkjg0qTzPx?= =?us-ascii?Q?y49jstY61LdROezC7I/x?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b06a4be8-a15e-48be-5296-08dbbede5c3c 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:24.5100 (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: AS4P250MB0413 Subject: [FFmpeg-devel] [PATCH 16/61] avcodec/intrax8: 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/intrax8.c | 46 +++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 26 deletions(-) diff --git a/libavcodec/intrax8.c b/libavcodec/intrax8.c index 0d90e37007..b6aacb170a 100644 --- a/libavcodec/intrax8.c +++ b/libavcodec/intrax8.c @@ -45,49 +45,43 @@ #define AC_VLC_MTD MAX_TABLE_DEPTH(AC_VLC_BITS, MAX_AC_VLC_BITS) #define OR_VLC_MTD MAX_TABLE_DEPTH(OR_VLC_BITS, MAX_OR_VLC_BITS) -static VLC j_ac_vlc[2][2][8]; // [quant < 13], [intra / inter], [select] -static VLC j_dc_vlc[2][8]; // [quant], [select] -static VLC j_orient_vlc[2][4]; // [quant], [select] +static const VLCElem *j_ac_vlc[2][2][8]; // [quant < 13], [intra / inter], [select] +static const VLCElem *j_dc_vlc[2][8]; // [quant], [select] +static const VLCElem *j_orient_vlc[2][4]; // [quant], [select] -static av_cold void x8_init_vlc(VLC *vlc, int nb_bits, int nb_codes, - int *offset, const uint8_t table[][2]) +static av_cold const VLCElem *x8_init_vlc(VLCInitState *state, int nb_bits, + int nb_codes, const uint8_t table[][2]) { - static VLCElem vlc_buf[VLC_BUFFER_SIZE]; - - vlc->table = &vlc_buf[*offset]; - vlc->table_allocated = VLC_BUFFER_SIZE - *offset; - ff_vlc_init_from_lengths(vlc, nb_bits, nb_codes, &table[0][1], 2, - &table[0][0], 2, 1, 0, VLC_INIT_STATIC_OVERLONG, NULL); - *offset += vlc->table_size; + return ff_vlc_init_tables_from_lengths(state, nb_bits, nb_codes, &table[0][1], 2, + &table[0][0], 2, 1, 0, 0); } static av_cold void x8_vlc_init(void) { + static VLCElem vlc_buf[VLC_BUFFER_SIZE]; + VLCInitState state = VLC_INIT_STATE(vlc_buf); int i; - int offset = 0; // set ac tables for (int i = 0; i < 2; i++) for (int j = 0; j < 2; j++) for (int k = 0; k < 8; k++) - x8_init_vlc(&j_ac_vlc[i][j][k], AC_VLC_BITS, 77, - &offset, x8_ac_quant_table[i][j][k]); + j_ac_vlc[i][j][k] = x8_init_vlc(&state, AC_VLC_BITS, 77, + x8_ac_quant_table[i][j][k]); // set dc tables for (int i = 0; i < 2; i++) for (int j = 0; j < 8; j++) - x8_init_vlc(&j_dc_vlc[i][j], DC_VLC_BITS, 34, &offset, - x8_dc_quant_table[i][j]); + j_dc_vlc[i][j] = x8_init_vlc(&state, DC_VLC_BITS, 34, + x8_dc_quant_table[i][j]); // set orient tables for (i = 0; i < 2; i++) - x8_init_vlc(&j_orient_vlc[0][i], OR_VLC_BITS, 12, - &offset, x8_orient_highquant_table[i]); + j_orient_vlc[0][i] = x8_init_vlc(&state, OR_VLC_BITS, 12, + x8_orient_highquant_table[i]); for (i = 0; i < 4; i++) - x8_init_vlc(&j_orient_vlc[1][i], OR_VLC_BITS, 12, - &offset, x8_orient_lowquant_table[i]); - - av_assert2(offset == VLC_BUFFER_SIZE); + j_orient_vlc[1][i] = x8_init_vlc(&state, OR_VLC_BITS, 12, + x8_orient_lowquant_table[i]); } static void x8_reset_vlc_tables(IntraX8Context *w) @@ -108,7 +102,7 @@ static inline void x8_select_ac_table(IntraX8Context *const w, int mode) table_index = get_bits(w->gb, 3); // 2 modes use same tables - w->j_ac_vlc_table[mode] = j_ac_vlc[w->quant < 13][mode >> 1][table_index].table; + w->j_ac_vlc_table[mode] = j_ac_vlc[w->quant < 13][mode >> 1][table_index]; av_assert2(j_ac_vlc[mode]); } @@ -116,7 +110,7 @@ static inline int x8_get_orient_vlc(IntraX8Context *w) { if (!w->j_orient_vlc_table) { int table_index = get_bits(w->gb, 1 + (w->quant < 13)); - w->j_orient_vlc_table = j_orient_vlc[w->quant < 13][table_index].table; + w->j_orient_vlc_table = j_orient_vlc[w->quant < 13][table_index]; } return get_vlc2(w->gb, w->j_orient_vlc_table, OR_VLC_BITS, OR_VLC_MTD); @@ -258,7 +252,7 @@ static int x8_get_dc_rlf(IntraX8Context *const w, const int mode, if (!w->j_dc_vlc_table[mode]) { int table_index = get_bits(w->gb, 3); // 4 modes, same table - w->j_dc_vlc_table[mode] = j_dc_vlc[w->quant < 13][table_index].table; + w->j_dc_vlc_table[mode] = j_dc_vlc[w->quant < 13][table_index]; } i = get_vlc2(w->gb, w->j_dc_vlc_table[mode], DC_VLC_BITS, DC_VLC_MTD); -- 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".