From patchwork Sun Oct 30 23:56:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 39056 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:8e01:b0:a3:a294:714c with SMTP id y1csp607201pzj; Sun, 30 Oct 2022 16:56:53 -0700 (PDT) X-Google-Smtp-Source: AMsMyM5FDUJd0fBXRH7p6yPfs5Yp5pxHXdbwdm7AMTVy4Jrahi+WOBUSP+YILCNSr2inp8oPireL X-Received: by 2002:a50:d5d5:0:b0:461:a30b:67a2 with SMTP id g21-20020a50d5d5000000b00461a30b67a2mr11133223edj.104.1667174213699; Sun, 30 Oct 2022 16:56:53 -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 j27-20020a170906279b00b00791bcf8aa61si4345754ejc.505.2022.10.30.16.56.53; Sun, 30 Oct 2022 16:56:53 -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=Mxiw5kWd; 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 E67B368BD8A; Mon, 31 Oct 2022 01:56:44 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05olkn2043.outbound.protection.outlook.com [40.92.91.43]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 04A5E68BD60 for ; Mon, 31 Oct 2022 01:56:39 +0200 (EET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M637GZ4wTW2pGVCrLkn3DuGaLF6HrJ9OuWjuHZDIQV0W3xqhxWt2zxWdJHXtI8oWGuC6W9zEsk2IjK5B6bN249TERmDSsNMYRd3gaCdUFBxgqFpU26UOeP8h9vgSmKEYMU/AJviixR9l8wxlPhB+WFGFtAauVX0TVvkCtp+EiI6ABi1FOpcPM88DyP21D39c+zcI8UEP4IxxgvSV4SQXvhYxuPP+lX/Y+7Y5i8iF2bxvi8vcHQY0fDS/m/pQ0POyV8Xpc5aY1JgnAivlKBrnWrMaUKBta7Wn6AiQDsgYC6RTnze7XUJEcl/IU4Hi3GGThLsa62tUmC4AhFGEsT4UJA== 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=N2UeoqIWcOWyrkU81xHBoslBf1cDV1XU1QqipqQi3Pc=; b=lKVoP8YzgW/oFzsVTvz+KSKmIzmT5yyQVrwU1Vd7add8H1G7t966mwujr295EhsNzl+2cWxT3W825/av4VTRMLiVfVGuZxjcv/HgXj236HT/UuLSOaH73S3RVYRkRvF0+PdNpv2lYxGqKiwDNCtk2qDExnPamxelZrtmZP8bix+McW84C/9gk/BZe5JwR3YGHXSktqE6oYmu8gavPzmZ8PmWEU/0Nsb56v4cJ32UtWAo6nx8Nmj8txewgaJszjpRTKZpsYZwR+dsZAqGCLFWnsxitJ9EmUDJWlX+qsND8PdW3YgADpLTYBkf9WUPnL5SA+F/tiin7WijCBc8OocnFw== 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=N2UeoqIWcOWyrkU81xHBoslBf1cDV1XU1QqipqQi3Pc=; b=Mxiw5kWdzBLzsUWI87D10w5urvjEHJQX2bZ2K2YTO2xZ6QZH+7m88nWnb+dE4fZf2X2W9JCHP1CPVmnHBF+35onfI6vgp3fZ2FMJkFMdV94T28iYYbUZpAxBO9J4d7c1BQdDaYzmT4miA4PA3FVgYk6jy9PlArnnuYLE/Vt8Qgkd56e0sPwMosjlwGfSi3F9tmH2Q1rRDEhT7RoXP1opTj79LUOEUqgxH3pLfIdx42H80379mEsi3zLu0GHJA47SxDU4+f6nR8CrExXwwYE1YbnjWwO6B5L4U7o5TlytcRbmcYB943HGomGaZt+/8ERwWO8Zxgu7dMP1IJz3oxFjrg== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by GV1P250MB0857.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:97::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5769.19; Sun, 30 Oct 2022 23:56:31 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::739a:8740:19c5:925c%5]) with mapi id 15.20.5769.019; Sun, 30 Oct 2022 23:56:31 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Mon, 31 Oct 2022 00:56:16 +0100 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [Mi4h6vXFb0lUX9eDYv4zW2v8PfahZ8bHbMT4nEwKGA0=] X-ClientProxiedBy: FR0P281CA0146.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:96::20) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20221030235631.11750-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|GV1P250MB0857:EE_ X-MS-Office365-Filtering-Correlation-Id: 9233c81f-1de1-4906-dd17-08dabad25e61 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmqZLd1X3toBDX9YZ7dpDxvLNS/Nd1F6g0m1bDVrBvWFF1Ry30LmEtC3zWAwUJiGCbpHf4dON0IEHhMjf3F/5WjKwvKe6mTeb/E/I5RPwemZrsWBqdmJwRy03NuQETCESOZ1XiAMyV6HfypdHwy0+MPG0D0DivUsEX+X9fEM/qQCXRzRvrFLrNm0ni337M+wBKoKw3iWhtLoSbEsIY5Sd2PqhpoKrQ51GMk0oWamQZIA/uZ/bYkAW66PUzK0cYPfOC/HhNssM+cg55bxhrLeMPbh6jtS0pAY4q5rk3mtLgUYaTApbe4CxWPoXp14JNLFMee3Rw4fLoVsGPWrgfwqC004XoLhsWRmh3dIaKHstgiDl7uYvvEbMAY2ZI3L0pZrsdAG3bl/2V8HQFt7BqrffdS8l3QS5UJjCTZJ2RA3eKIXrd5aMJs4htxksSh1uyaL/b7tLrCNf4lu960QLAu9fxRihmW0eslX/CNDZTf+qZYb11fRTH4tEOdpIgXQYF4rGpnntJ++eg5pYxTKJPk0/skEuFR/tiExVRhbDaDsGVWowtUab5RSCIWgtq/J3yhV2uJWpHPFu6eSROULMobir7kkoyFqx16TUZN1P+qgoYLKJRsmPjJv37JTeo3RieiS9lozeeUrrmggeXCkdl57xo5A4+QMvNbeTanmpbZcgK7WFxD+F7o/a4Q1Np3i+UTiejMXQ/sKYd6B7ldukATZuluLop23rxzZbHq9SaLpg+p4AtLEduUhKSmbfwtG98K77Eg= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: mfIT7fVyLiVdvvxbPbKrhFq/zp38STDeCPGVwhpylSAuTzho7bVrGkRIf7BEktVM5g1BkFy12Lu/cgRDA6nXjAytbnzJvAzosZD349usiEYvJRggiuBXEUxMSxrVZuGmadmKU7K0JaWnzEuL8SH6EMkGMhR836aWp+43TWv7OVtBq6fSbwVsel82GaMj4YSkF4pxS+zqbuf8Qpv7gxE9NLzSl4MJsZni6JhBggQp23L0s0rfdvuwZC0t2XrwHqMQQPhfLCuUxc5RYm5+Nlx9NlTvj3rnRpyJBUTdbJtO7XoXkH74reiL/PBNPM7Rg/58qlxMQnwfMhF+CRfsQjFt0hk8nWzxFSEgTW0V/CcDoKNc5mDZkuwKAYKuE4315zyw8axWs06bfdAIaKvPOKinCEDxV3p/jJKPvNxh1bOYsKzsV9UnfO9bLdk62BLIoWVQXilx73rpAD8YRcRn1dMN2iaF4Sw4geOXpAw0tYlcK6GYBKgBqdTEftO+EXsy0V23NB5LoHsx/SPQ7K9Ugx5ZsIg93cADwSbxoSZCiKzdXi6KK7DorU9JTd3ZJ8d2a5vfgd4Laty9KiP+e1XeAvK6XIrIZF7cnb28VHWgr+rc5kJbFezbR9ZgTMprUJ0P5+lqBEGbIxxMFKh5PHr0tM4vOvRN5bVxJn7NJSOAeSVdCTksH2LQUT5J6q6z8tM/jjLQ X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: bH0LXNtn5whZcqr5lTctvO2ume6aePC0BioAYFCTZISDP9hIBPV8oMQUYk95uNJS6XvGuMvlrksWqp8nrPSElX3zUR/QBS9uS6JOoyJOSVp2wmNFv+q3/s4cvv+y7fhx4+yUjlVBWR376ee5NcouvnMlUF1icdyP8zS04PtlOrbDDb9cd8EPX4fY/nS/7Tr7GiImoCTwaQEtSWV3uF7GvT9KPsYkDZ4EVbtPuBONXJAyfpRteOyq5UA7R+BkSqhBJTEZLdpcUilFE9nOpcgUA7gDVR78GN68sTedNM0lfyFuPRpKavuAK2mBO57JTYab3SezdvI16JjqWtLno0kVHgceLuvraVZBKKETNGoBYYB5VNKPsV6kXQM2zRRhl+xBPigI1A9EjwoBwnsST5CYKwEJiDYPqe7mkN0W2qUpuE8Bzwiq8n47sKMhniuUc8oGz82Prrvh/gk8w7fpzHsJUohvaHxcAEFgNdVvrRoxmW9nh9yB/5X6ubeeEnH8/K1+CTPVaT+R6ipEHCNf2s9gzmjpPEtcCoClN7/6cyWiniG15PkXbcYwGJ8CSvzDrPTcSQodMs0f/rfNvUHw4p4xOCthfp46+ELMCjpBqNxVFvhb2WBfQOKC7HKp1F73f6rbuH9PDm5lMXIJwZGQEbqdg0zOKQn20+63KCHHgu5RgDYhF286BsYcwU0Rc6LwSLyscjcsvtH5FbTrn7R7UqN5DPwX1kGmhMR0fJI2cm7lkYETZrBculII9af7gOpW6Ux6obt5U3KBncHy1T79/TnSHiXVhPuj1DIjs5nHMGrRje48OZXAl1o49pzSKj6bZvcQAB95WG8Jkx4NQ1799D6krSFEA2nPzrtdomBw3ssN2JqshJgcq30+8zywnDEdg5Oi07unkg4tHVbHYuPI1cX+GIPHehGdGXw1VaqwGiM91pV2mM6YEhRi3fmxsfd9sRUiaCHKKWs9uGB9fgENh6EaQgPVAk0EE8Rdt0f/Sf2X+W1QBQ1Q3PWk5qjqgqnzLGD1CPztG2VTu+qA55V3OKP5rpia2oK0pU+BOlOV1MCGPTwLPp/GBgjQ4CJoYCFTgpO5G1uWuaM7PeAS9jDbpiSFqBG/64QksASIUar06gJHCm69fM4cE8mZVyR5Ll4TgPn2WXMfVWiTNC2OnzA7m6ol9BqmHC1glia5vKA19ga71Ebg5BAlJNbLc1WLUSdae/nPPu6Yi87fVBaFtYTnCXyjSXylOrT/ELZAu8PkCSYnIDw8UVa5y0Vh7VIhzTuNC45wgYS9mg9qcyaGqoREVwiBe5kOqMWdc4iOXW14TC2q8ef5PnIvax/CvHXWbD80m9jx X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9233c81f-1de1-4906-dd17-08dabad25e61 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 30 Oct 2022 23:56:31.7435 (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: GV1P250MB0857 Subject: [FFmpeg-devel] [PATCH 04/19] avcodec/vc1: Don't use VLC to read bfraction 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: srwmwUwNmJLt The VLC here is very simple, so that it can just be read by two get_bits(). Signed-off-by: Andreas Rheinhardt --- libavcodec/vc1.c | 8 ++++---- libavcodec/vc1data.c | 21 --------------------- libavcodec/vc1data.h | 4 ---- 3 files changed, 4 insertions(+), 29 deletions(-) diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index 9b4e951baa..f6468b54c7 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -613,7 +613,10 @@ static void rotate_luts(VC1Context *v) } static int read_bfraction(VC1Context *v, GetBitContext* gb) { - int bfraction_lut_index = get_vlc2(gb, ff_vc1_bfraction_vlc.table, VC1_BFRACTION_VLC_BITS, 1); + int bfraction_lut_index = get_bits(gb, 3); + + if (bfraction_lut_index == 7) + bfraction_lut_index = 7 + get_bits(gb, 4); if (bfraction_lut_index == 21) { av_log(v->s.avctx, AV_LOG_ERROR, "bfraction invalid\n"); @@ -1582,9 +1585,6 @@ static av_cold void vc1_init_static(void) { static VLCElem vlc_table[32372]; - INIT_VLC_STATIC(&ff_vc1_bfraction_vlc, VC1_BFRACTION_VLC_BITS, 23, - ff_vc1_bfraction_bits, 1, 1, - ff_vc1_bfraction_codes, 1, 1, 1 << VC1_BFRACTION_VLC_BITS); INIT_VLC_STATIC(&ff_vc1_norm2_vlc, VC1_NORM2_VLC_BITS, 4, ff_vc1_norm2_bits, 1, 1, ff_vc1_norm2_codes, 1, 1, 1 << VC1_NORM2_VLC_BITS); diff --git a/libavcodec/vc1data.c b/libavcodec/vc1data.c index 844bc0f5c5..01a9767d51 100644 --- a/libavcodec/vc1data.c +++ b/libavcodec/vc1data.c @@ -102,8 +102,6 @@ const uint8_t ff_vc1_pquant_table[3][32] = { * @todo TODO move this into the context */ //@{ -#define VC1_BFRACTION_VLC_BITS 7 -VLC ff_vc1_bfraction_vlc; #define VC1_IMODE_VLC_BITS 4 VLC ff_vc1_imode_vlc; #define VC1_NORM2_VLC_BITS 3 @@ -171,25 +169,6 @@ const int16_t ff_vc1_bfraction_lut[23] = { }; #endif -const uint8_t ff_vc1_bfraction_bits[23] = { - 3, 3, 3, 3, - 3, 3, 3, - 7, 7, 7, 7, - 7, 7, 7, 7, - 7, 7, 7, 7, - 7, 7, - 7, 7 -}; -const uint8_t ff_vc1_bfraction_codes[23] = { - 0, 1, 2, 3, - 4, 5, 6, - 112, 113, 114, 115, - 116, 117, 118, 119, - 120, 121, 122, 123, - 124, 125, - 126, 127 -}; - //Same as H.264 const AVRational ff_vc1_pixel_aspect[16] = { { 0, 1 }, diff --git a/libavcodec/vc1data.h b/libavcodec/vc1data.h index 90dd8baf61..3e45ef1e79 100644 --- a/libavcodec/vc1data.h +++ b/libavcodec/vc1data.h @@ -53,8 +53,6 @@ extern const uint8_t ff_vc1_mbmode_intfrp[2][15][4]; * @todo TODO move this into the context */ //@{ -#define VC1_BFRACTION_VLC_BITS 7 -extern VLC ff_vc1_bfraction_vlc; #define VC1_IMODE_VLC_BITS 4 extern VLC ff_vc1_imode_vlc; #define VC1_NORM2_VLC_BITS 3 @@ -100,8 +98,6 @@ extern VLC ff_vc1_ac_coeff_table[8]; /* pre-computed scales for all bfractions and base=256 */ extern const int16_t ff_vc1_bfraction_lut[23]; -extern const uint8_t ff_vc1_bfraction_bits[23]; -extern const uint8_t ff_vc1_bfraction_codes[23]; //Same as H.264 extern const AVRational ff_vc1_pixel_aspect[16];