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 6C888478BE for ; Tue, 26 Sep 2023 22:20:34 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 22E3868CB05; Wed, 27 Sep 2023 01:18:48 +0300 (EEST) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-db3eur04olkn2087.outbound.protection.outlook.com [40.92.74.87]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6AF0E68CAA5 for ; Wed, 27 Sep 2023 01:18:46 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=lm2mwUPjzjAjkFCuW9dmOxF+lk0yGYIrpP6vPl1JGiwqdgtYUYCHKCNI7qO5K0tE/pEb7SXwSAChw5EpCl421A4v8xtvls6tiRjdqfLYKTjfC+iWmI3KwcloqtP61EbLWlfrhAF3MGJMj/iwHjxrekbVwaWw9nCI5Nda0IdHvwwMJLSjGSJOHXrtTLJCqYq59xEobYkhTa7ubWzC0SHDNX96NCht8J/a9Fz4WBhAMHRZ4JJg7bIlhahYj2L1xZK0Rn1QN8nmr9w4yADixSxh3qVjGpGv1coer7o93evlqW0Xvo80XAnRo4Ktq9bB8oa67s95Pm/tMhaM6A7fQDqx+A== 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=fiWnCQBcltX7ESrEYWNGw7AHuEK8U5VL67kt/0rqUnk=; b=FWZrQHSuaCKDa0zsflLP1ORbM6T+6BUOJ05nFSeIYWsQkpAZfpiA4rmbvbTJbsFggL6TlyLfCZ2n5i/jBwE2WY85pOHLCkowMaXjJhmUqZ7YWDNi/17/rdnpS5liz4TRH/CzF0mW0PhVtrFjvzbN8mq2MAEp4lRpOY/wCahtknDhlcLh9jbNFMuLIw0XOM+4TaQZGotYIp5scRwUaiCweDgO4bIpLg5ySykPQk7ZTPUhtTxT8NQ/PXAHu988sfvjKD1NyTBbB9OrSv7t7viUTtQ2DA54vSGE0geLYNHH7IFADICiQjChloJgIsADWj3Jnuf0mo4v3p60BzjC2/bfRQ== 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=fiWnCQBcltX7ESrEYWNGw7AHuEK8U5VL67kt/0rqUnk=; b=DCwqnh9zAmU+fft8Oofskv2M6Rfi8ihPKqbLIUAI4/0mGtesD78HVXVwNbSaCBFLYbILmg6snJLYkksUPyyrCDQg0kyqy+kP1SUGsOT87c5KJUKQWJay7VaYqGUVURcfedtb0k6HWSRlR0jtSoKM26eKgNyeJEsiBjRVOaKlcbdYpoiPcATLAAk+7fmIwo0dTYtEPrVGDMOFm8UBdkRRSeMNL2mtVMWZiEhjog/+tWlAOBwYehPol25hw/RYJHjF8MNGVh4VlXT8yiBjfNht9Gb+LZTdzYpcF4gjiuJCfjNVD4zXbCOGHgjJtNaSRiG6z1oR6DhQ22iphL7L9j9nJA== 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:18:45 +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:18:44 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Sep 2023 00:17:00 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [rlAlmYa55bl5oZoqpxexYAN9jUcZDbXG] 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-28-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: 72a26b7a-ca98-427c-00ef-08dbbede8c33 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: K4TXQaEX3l79g/4Ta+r8lnAPR0VO33QcdZuI4/xIYzqSjfLVJXL0/RmBpW4hBaLXbxgZWsLcwu4gF9Gu7kthhtgOlJrAtlwdTVpKMGvN6243NeYQHEdwctmTe/Akqh+nlLdK9HrcyPoRUw8IqaS0b4maqw7ORJ6/4BRJaSoVUvYwwm6K2Sc+WB06iEogZudFMdVUgt9S1fxGmSTr3ytdCAFDl7sc/30F599uw2kHoVe3b2G5yM4/ejA90MEj7o1viTXe6EzyVs+7EIiGWlqVnPu1B/IB4IwiCPU2Mhpsl835MX1o6fz1n4JhHeUGCXR0/RWM0MT3DD4q5GQvtS3CA7yAEN0FQuQvJTy9zLz16cZUSpXIvvAWRVT+rNWnxw9WSwTl8kAaWaZXh337ajKvVoFXicpRO2FfBDDzHxcqu3M+eFSL23KIKuUglq0QxsdJd0zH8iweTREK7RjxhYcn6GgYn7eV9VJ8m7oJeTAqeuVh5+iYpkCrLz+MnkPuDqyf2ezwfMwCAfC5ZtW31OeSoRHWpuO4Am6kmsZkRtinCB8PEcXxqbfGXYkd7s3Di0GtQZKt5BH8BhjrF6KZTWG0XLch8/3krCQ62qHmIUdwDVM= X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?CB3r0VAnVRpL9/bJGiMQB/glBpY+c0yfiORjpzwU+vkjLdQaCm/5ghBPiiZE?= =?us-ascii?Q?0JYQxiDHu8g4jVykWjg+Ywm9V9pRFvKJKvE+JDoHxStt46g2hpR5ilgqb1Lo?= =?us-ascii?Q?qnCflMhO55OtKUFnGrjTvXLzMWPpsopzKWB+rPUCfdV6K6+pXdW3WFjszBu/?= =?us-ascii?Q?OdiE31uoDymxwqm4iDZOz9+D6R3Zcp+HAWTuUAD+HzTAOIs5dWN7DR7ATh0z?= =?us-ascii?Q?Di9LaWHsx9e0VGn2KBrvmCHkrkifnKagXpyt6XX5sXtd3Xm2ubuXNGUclp6E?= =?us-ascii?Q?DHEVAHyyYEg8Mt3mVeiVk7j2dSLAyyAEYx13/xKs0vYz2KN/6ojHuaoHcj0L?= =?us-ascii?Q?DESUAOs3qWVY7OtTjVVSh3H1mDsTq71fBvM4+nnzTVDYw4OZ2Lv6NXgrYrwL?= =?us-ascii?Q?MLUBoG6ri09RZWKB8qUjFo2dmzzdWNpHulD4ZQOP5xLmsJ4iJca7UN8l86gk?= =?us-ascii?Q?iHzI46fvdnJ9mA8RCK93htlYDD+HPSIfDPi2tCEMRevazT8j+AzTakBF6vEO?= =?us-ascii?Q?Wd0CBvAf1+hoXusvHy/NEGuRC/g4LppVmjc9dFb527ZFXuGw9sGhVq9rQ4/1?= =?us-ascii?Q?IIhR5VjYfVJBqnBGb1v0TOUPpku0YaKIe1MHooc2gJclXXMohI9cu972LZiE?= =?us-ascii?Q?Z4f7w+WHcOoyLO7rhaozFfeF8eggpS9a99vJov7QiqMmSwwA1O9f7uQugtCd?= =?us-ascii?Q?1NZ9TCAEu8uf1zaa9gMd0PbvMMM8AjDwhLZoPpQyG/A6EixcxtUqpb7LdvCX?= =?us-ascii?Q?ro1mEib7HcRiFWA/QtVvyQLzwarOJQART7bkI/2A6xb2RZsIY4QzkmEQHDm3?= =?us-ascii?Q?Yvrzvzeyk+eVJGUbRCmFPSU7eOTyb1YFMKoQOgGljkSIpyUsbt5oFn6/pOSA?= =?us-ascii?Q?OdZCcjcQ4OrdpsuElNc2IKas1rww0XsYFV1zxy3g+mfu6bGLOAGVMkQFmkm5?= =?us-ascii?Q?aI1oNFCmBgxkyUkiCoMRsZzgsBjHk7+hRyTAxh9DZ9BdnTmNJYmZV854OQOb?= =?us-ascii?Q?5z5DoJwCn0wRiCzcaTYinODunpp6s4siklJiBeN2L/4IokZn7E0mY7kBoWv4?= =?us-ascii?Q?B2uWgYLQUeS/zai844K79tVxd5SMkCIKT0Xdb45UA4fMSuUrKA/hBImNzYJS?= =?us-ascii?Q?gRMg23b/GX8+rWP5Lw4IDOAdtJWdUT+0rmNUZt0GWxwHoCcNcokRpOg0VYtC?= =?us-ascii?Q?Urqj4Suo+RUc9M0/27Np20pUBSpExE/ayhWnmwBbdSJOUTC2DxucMB4BBSsb?= =?us-ascii?Q?Bz6QtyfpIamV9iKnqwWV?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 72a26b7a-ca98-427c-00ef-08dbbede8c33 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:18:44.9718 (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 29/61] avcodec/mobiclip: Avoid unnecessary VLC structure 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 besides VLC.table is basically write-only and only VLC.table needs to be retained. Signed-off-by: Andreas Rheinhardt --- libavcodec/mobiclip.c | 41 ++++++++++++++++++----------------------- 1 file changed, 18 insertions(+), 23 deletions(-) diff --git a/libavcodec/mobiclip.c b/libavcodec/mobiclip.c index 98c0f55a5c..144fec6363 100644 --- a/libavcodec/mobiclip.c +++ b/libavcodec/mobiclip.c @@ -274,28 +274,26 @@ typedef struct MobiClipContext { BswapDSPContext bdsp; } MobiClipContext; -static VLC rl_vlc[2]; -static VLC mv_vlc[2][16]; +static const VLCElem *rl_vlc[2]; +static const VLCElem *mv_vlc[2][16]; static av_cold void mobiclip_init_static(void) { - VLC_INIT_STATIC_FROM_LENGTHS(&rl_vlc[0], MOBI_RL_VLC_BITS, 104, - bits0, sizeof(*bits0), - syms0, sizeof(*syms0), sizeof(*syms0), - 0, 0, 1 << MOBI_RL_VLC_BITS); - VLC_INIT_STATIC_FROM_LENGTHS(&rl_vlc[1], MOBI_RL_VLC_BITS, 104, - bits0, sizeof(*bits0), - syms1, sizeof(*syms1), sizeof(*syms1), - 0, 0, 1 << MOBI_RL_VLC_BITS); + static VLCElem vlc_buf[(2 << MOBI_RL_VLC_BITS) + (2 * 16 << MOBI_MV_VLC_BITS)]; + VLCInitState state =VLC_INIT_STATE(vlc_buf); + for (int i = 0; i < 2; i++) { - static VLCElem vlc_buf[2 * 16 << MOBI_MV_VLC_BITS]; + rl_vlc[i] = + ff_vlc_init_tables_from_lengths(&state, MOBI_RL_VLC_BITS, 104, + bits0, sizeof(*bits0), + syms0, sizeof(*syms0), sizeof(*syms0), + 0, 0); for (int j = 0; j < 16; j++) { - mv_vlc[i][j].table = &vlc_buf[(16 * i + j) << MOBI_MV_VLC_BITS]; - mv_vlc[i][j].table_allocated = 1 << MOBI_MV_VLC_BITS; - ff_vlc_init_from_lengths(&mv_vlc[i][j], MOBI_MV_VLC_BITS, mv_len[j], - mv_bits[i][j], sizeof(*mv_bits[i][j]), - mv_syms[i][j], sizeof(*mv_syms[i][j]), sizeof(*mv_syms[i][j]), - 0, VLC_INIT_USE_STATIC, NULL); + mv_vlc[i][j] = + ff_vlc_init_tables_from_lengths(&state, MOBI_MV_VLC_BITS, mv_len[j], + mv_bits[i][j], sizeof(*mv_bits[i][j]), + mv_syms[i][j], sizeof(*mv_syms[i][j]), sizeof(*mv_syms[i][j]), + 0, 0); } } } @@ -410,8 +408,7 @@ static void read_run_encoding(AVCodecContext *avctx, { MobiClipContext *s = avctx->priv_data; GetBitContext *gb = &s->gb; - int n = get_vlc2(gb, rl_vlc[s->dct_tab_idx].table, - MOBI_RL_VLC_BITS, 1); + int n = get_vlc2(gb, rl_vlc[s->dct_tab_idx], MOBI_RL_VLC_BITS, 1); *last = (n >> 11) == 1; *run = (n >> 5) & 0x3F; @@ -1195,8 +1192,7 @@ static int predict_motion(AVCodecContext *avctx, for (int i = 0; i < 2; i++) { int ret, idx2; - idx2 = get_vlc2(gb, mv_vlc[s->moflex][tidx].table, - MOBI_MV_VLC_BITS, 1); + idx2 = get_vlc2(gb, mv_vlc[s->moflex][tidx], MOBI_MV_VLC_BITS, 1); ret = predict_motion(avctx, width, height, idx2, offsetm, offsetx + i * adjx, offsety + i * adjy); @@ -1272,8 +1268,7 @@ static int mobiclip_decode(AVCodecContext *avctx, AVFrame *rframe, motion[x / 16 + 2].x = 0; motion[x / 16 + 2].y = 0; - idx = get_vlc2(gb, mv_vlc[s->moflex][0].table, - MOBI_MV_VLC_BITS, 1); + idx = get_vlc2(gb, mv_vlc[s->moflex][0], MOBI_MV_VLC_BITS, 1); if (idx == 6 || idx == 7) { ret = decode_macroblock(avctx, frame, x, y, idx == 7); -- 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".