From patchwork Tue Sep 26 22:16:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 43927 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:2a18:b0:15d:8365:d4b8 with SMTP id e24csp2208399pzh; Tue, 26 Sep 2023 15:17:37 -0700 (PDT) X-Google-Smtp-Source: AGHT+IH+u/u0LH+slzCyaU4mOjSSnUPosrA8gVksNmb/R14UDSXZ+vw57bHNoqf17hmMsQcE2yYu X-Received: by 2002:aa7:d3ca:0:b0:533:2327:1eed with SMTP id o10-20020aa7d3ca000000b0053323271eedmr321606edr.24.1695766657226; Tue, 26 Sep 2023 15:17:37 -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 k21-20020aa7d8d5000000b005346d97acf7si1602707eds.225.2023.09.26.15.17.36; Tue, 26 Sep 2023 15:17:37 -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=XSjmRG6N; 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 CCFE168C9FF; Wed, 27 Sep 2023 01:16:54 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05olkn2059.outbound.protection.outlook.com [40.92.90.59]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9DBB068CA83 for ; Wed, 27 Sep 2023 01:16:53 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nc0imneX7BaqZqO4Dwgs6kiefrlQziwhTpzOtPZ6ngxLggIfu0sOHM1sE4kiy3fAm6fSySKpdW+KSO4N7sVTgQ5x6mx5AvQJ5By4k4peMEwGvrgMzT4SlmTvB7V5xZTu0c7Pi13/K7sBOYXwuFs4dn2Se5Pj/B4QB3bx3o4ehq3bsWdWWAURV7lgJkNhaQfKKrNdd8ZJMhrL3zt64e1YKRiwAvimoV8xYPpdWy2K4mv1z+zreLNcv5HW/b6pwunNw941GA1DqflfUGHWxMk9IpgbN7jzOMDxDhKHslWpEuIEDFQqs1VHJYxzsmZXWj/L0ZeUefc0J9ed0DN1pK4cBA== 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=byAvG6IbNcbACSyfeuHHrhJQMWlIvnE+sHdhA0gekWA=; b=JPInP4oAab85pKh5yJdDwL8RpMN+RsqHFwCOfhDld2PZ6WGdhGCpDJAldYyI5/4BfeAQ5+UY2Oh4HQRB0VdwnsSRHvS8Zmnjk166CZWHIXAeXAowocaV5kNFxf92vjSswvirJmYGazLixNPmli3egYY0hpFWSPxI4Qi6TtgBe6IacC06+8WETwq7jvTHBdtDm0HjHmN/40UE+9ZUgFP5/qYRl+1HpeQeP/uxUpZOcNn3JSOBa5YaBrnhQGSEmCjT5FSIFGAabKEcsHviHG5on2InhOcNlx6vjl0w3MT3M18wFKAoYbzcURP8v8MzdMa9daCEa3aGynXYgAUHayxCDA== 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=byAvG6IbNcbACSyfeuHHrhJQMWlIvnE+sHdhA0gekWA=; b=XSjmRG6NFxtTHvzZwg0J44tUT8fskfMeOxbwappdkhinkYenlL+UBzkaRoFP1GUpESjD5Ht/kndB0NOJpb9RB/MFC9jPDc7tjkYaZo6vFoffl1KWfqNxxDBMmTQnV5TOzFt8bXwMLPrqOjNVT76IHXggJYrgXZYcp+EJydaDiXuDLGrzauXsSGc4nvkTVYVcILQgFBv1XNdthWbzMggUDo5fC55BoW7HM/GvpCK40zYysvmghAGggEyYpjdusxrEjsTpOw+eZST4nSnAyGB8olfQ1IYMakpn/4brhAhzQt2au9UR45WpaYxPviJxvtkZz1B9gXE7iJMNU6LYEuOWNA== 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:16:52 +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:16:52 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Wed, 27 Sep 2023 00:16:40 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [3bLRai27YvIpT+nHkoQc+kjgpjbovIQ4] 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-8-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: 5c7b85b5-7972-4456-9eb2-08dbbede48f2 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: rxhtxNsKkwcvz6emByHOo7MtEycbrIl41p76luSpHeYJqJ7J7lysW6DWYrT7R3i54MP13j6pIJ4bPzX7CKo50g+kReskj/Cek7hBeBKVMR0EGnHMptjpQUOSu8E353OaHk4dTZD1mm14O34/FkiPnJ01ZodZYJ8zhxPd1yZRvlET1sIIyUxa/4xjY4k5nDa70/638C1553ziGOZKNkdK/NygU3g7JTow0IaJSnq99DjkSIHSvSh/KgcysdBGN8eJOZiz1HOjKGld9ZqsJecfQdCysex6f5JyxyO2H2g/e6D3ukiZCb/8Tqdug3oDmzSgFKmFG/NSeIKg/UG8d7NbmMV0rpTFD2BsNKvoWfabF3Mnl5zYVftQ6lGPTzqGpnLv3mz01zwoRUXfr3V27LIiGTbefUb2NLBzzsLFlCZkhKVMV9HSRzFHnQBz9dx/TJT0I82WYZRZnzNkxH7RvkThhVJgSTxc+Sf2Os5O5Se3OzkaoEFi5IXBqg1tFkCHQbOqJgLpybNMvgNLFFVbmYJ515rUthQim8xRDkB+gmWXikjrGOewu5rWCwbdDnu8BjGRH8oQKnkZTKqH/kfBpcm407Of0RWYchqBuxdRGSleQw3QHobQlKJXwcLhcJC6JURi X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: sJtNIh6G1U/GHd+Bqgl53WrPVLn0CnK1I9xYFXDBtdGyqg3l1CGXw4IzyakewpJ7qYFVxiiEkULPZOhFxAE2M0IAnPVdfXUMiybGay7+CXdp594SQ/mezY7eTv+TEy/XSwsaZA3Smagn/8bL5vgDf2bPGV7ICJSDGHgPJswYjA8PPtyOKiv/+NvhB26wF9iiNuHvC/07sg4ryuMvzXXKoPkVpRhZ+HvNfSOAKJNFip0mw47YhGWxvTLUgdFXHzqBdnLF4J2DNcr/SVvOTlsuewWL6Z4droSexdUwWyNWov/KZmr5rWPKpZ1MpPd6nEJjWkwM84RKOZyDQqj20U27X2/aC9OeiziC4euhEc+kXdYp2ROTA1e+XsYVH4OCHCtepLIHmxS2WkrTf0+Mfk0WpHyVazsAGW7EID7egqefgDGK4a8YMVO7rGA0vWBQtm6oQFNUwsTELxIOANU79Ol3Z7MXj5nrqpGfkXfNdo+nrlxkyZkBQwFbrjI4088gzuR/LVXuu06PTGu85eiUOCzz3jFvjohb3/aKs5SEfrD5Tkvxz/4kzjBE5hxlPDD5BTfm84rpJPxfXteynBM4UGniK+yRc30fS2QW4Bllp8qDbw08FmKTdz1elEjGs+gSzvfpA78rCMTOnl/WtGXd/UZvXLlmAlJkkC13bfWjfmUGsgjgpqfVZ50mBianNFYIT0Zc5nkxzpGEzI9mc67i5ignlKZ8ln+0GgHGBQMnZGOPiweiY8fRGptJgEgpgSJjsJTQGw97XLHOEMusJzX+eHTSPQuKO7UBB6Ep3LJaHMYbyHWAbAtFVVF06K2SwKQ806ED7r82GK9wBs2PspNOBxH+V/GgpPEgyP7H+3j22a+Z2G9gGshwk3fOeYJRSFZgo2P+m0TVUmsC4suGy3z7QFwSwcG4VOvzeoPTFJC5gM0ZKX2dQqwV9QwE2ZAgJpO5q+Foh6Mr3GX5qO/Fw1rlDZYQ0nV1AE422A4lItacFQRpaX3s1pLdkRRSDseK0HMt35u82rqTXdrJeHdNyctkAV/QUaN6bU2dYz2AM23j+oLtMUMocrF+LywknxglTmwHWvJf6pmxReV/Xh4dGe24fFs2Fu5DM4ZUneOQI8QQGJ1JIPmCYxhWE8ZWf5mKdDkYxuH1qlYxnVRsZ2sGLI6SjsOFRmiJX36v+uLRCSgM0dWyR+1lMR+p1D5fjSeScL0RklBcTyNa/EH5Z0chnL3/GKwODimtFkZoBid/5QSyu8kgyVm1J5tkUa+Nitf09D/r/TKj X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5c7b85b5-7972-4456-9eb2-08dbbede48f2 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:16:52.1500 (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 09/61] avcodec/h261dec: 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: H+fpRBsrCqtP 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/h261dec.c | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/libavcodec/h261dec.c b/libavcodec/h261dec.c index c41b96c3c7..6eb69c1120 100644 --- a/libavcodec/h261dec.c +++ b/libavcodec/h261dec.c @@ -44,10 +44,10 @@ #define MBA_STUFFING 33 #define MBA_STARTCODE 34 -static VLC h261_mba_vlc; -static VLC h261_mtype_vlc; -static VLC h261_mv_vlc; -static VLC h261_cbp_vlc; +static VLCElem h261_mba_vlc[540]; +static VLCElem h261_mtype_vlc[80]; +static VLCElem h261_mv_vlc[144]; +static VLCElem h261_cbp_vlc[512]; typedef struct H261DecContext { MpegEncContext s; @@ -64,18 +64,18 @@ typedef struct H261DecContext { static av_cold void h261_decode_init_static(void) { - VLC_INIT_STATIC(&h261_mba_vlc, H261_MBA_VLC_BITS, 35, - ff_h261_mba_bits, 1, 1, - ff_h261_mba_code, 1, 1, 540); - VLC_INIT_STATIC(&h261_mtype_vlc, H261_MTYPE_VLC_BITS, 10, - ff_h261_mtype_bits, 1, 1, - ff_h261_mtype_code, 1, 1, 80); - VLC_INIT_STATIC(&h261_mv_vlc, H261_MV_VLC_BITS, 17, - &ff_h261_mv_tab[0][1], 2, 1, - &ff_h261_mv_tab[0][0], 2, 1, 144); - VLC_INIT_STATIC(&h261_cbp_vlc, H261_CBP_VLC_BITS, 63, - &ff_h261_cbp_tab[0][1], 2, 1, - &ff_h261_cbp_tab[0][0], 2, 1, 512); + VLC_INIT_STATIC_TABLE(h261_mba_vlc, H261_MBA_VLC_BITS, 35, + ff_h261_mba_bits, 1, 1, + ff_h261_mba_code, 1, 1, 0); + VLC_INIT_STATIC_TABLE(h261_mtype_vlc, H261_MTYPE_VLC_BITS, 10, + ff_h261_mtype_bits, 1, 1, + ff_h261_mtype_code, 1, 1, 0); + VLC_INIT_STATIC_TABLE(h261_mv_vlc, H261_MV_VLC_BITS, 17, + &ff_h261_mv_tab[0][1], 2, 1, + &ff_h261_mv_tab[0][0], 2, 1, 0); + VLC_INIT_STATIC_TABLE(h261_cbp_vlc, H261_CBP_VLC_BITS, 63, + &ff_h261_cbp_tab[0][1], 2, 1, + &ff_h261_cbp_tab[0][0], 2, 1, 0); INIT_FIRST_VLC_RL(ff_h261_rl_tcoeff, 552); } @@ -254,7 +254,7 @@ static const int mvmap[17] = { static int decode_mv_component(GetBitContext *gb, int v) { - int mv_diff = get_vlc2(gb, h261_mv_vlc.table, H261_MV_VLC_BITS, 2); + int mv_diff = get_vlc2(gb, h261_mv_vlc, H261_MV_VLC_BITS, 2); /* check if mv_diff is valid */ if (mv_diff < 0) @@ -379,7 +379,7 @@ static int h261_decode_mb(H261DecContext *h) cbp = 63; // Read mba do { - h->mba_diff = get_vlc2(&s->gb, h261_mba_vlc.table, + h->mba_diff = get_vlc2(&s->gb, h261_mba_vlc, H261_MBA_VLC_BITS, 2); /* Check for slice end */ @@ -410,7 +410,7 @@ static int h261_decode_mb(H261DecContext *h) h261_init_dest(s); // Read mtype - com->mtype = get_vlc2(&s->gb, h261_mtype_vlc.table, H261_MTYPE_VLC_BITS, 2); + com->mtype = get_vlc2(&s->gb, h261_mtype_vlc, H261_MTYPE_VLC_BITS, 2); if (com->mtype < 0) { av_log(s->avctx, AV_LOG_ERROR, "Invalid mtype index %d\n", com->mtype); @@ -450,7 +450,7 @@ static int h261_decode_mb(H261DecContext *h) // Read cbp if (HAS_CBP(com->mtype)) - cbp = get_vlc2(&s->gb, h261_cbp_vlc.table, H261_CBP_VLC_BITS, 1) + 1; + cbp = get_vlc2(&s->gb, h261_cbp_vlc, H261_CBP_VLC_BITS, 1) + 1; if (s->mb_intra) { s->current_picture.mb_type[xy] = MB_TYPE_INTRA;