From patchwork Sat Sep 3 20:30:11 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37636 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:139a:b0:8f:1db5:eae2 with SMTP id w26csp1746363pzh; Sat, 3 Sep 2022 13:30:35 -0700 (PDT) X-Google-Smtp-Source: AA6agR5XTSfeSmTEZBZawQToyHXSdskh6LFVPohnNuMmlelhk9foPi78qf0S13abSTypIGvikOAx X-Received: by 2002:a17:907:1ca9:b0:741:4f9a:5984 with SMTP id nb41-20020a1709071ca900b007414f9a5984mr23810943ejc.86.1662237035421; Sat, 03 Sep 2022 13:30:35 -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 qb23-20020a1709077e9700b0073d8a8fedbfsi3198169ejc.386.2022.09.03.13.30.34; Sat, 03 Sep 2022 13:30:35 -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=er+3CIxF; 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 8373768B559; Sat, 3 Sep 2022 23:30:31 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-oln040092073045.outbound.protection.outlook.com [40.92.73.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 081DC68B7DF for ; Sat, 3 Sep 2022 23:30:23 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JRETZj4RmUFjs7ghlJFF9T64CN9c4mvxmREZxLXO24X9ZuwV4US41Mf9nJYghAjleghKVbUm73dp5cao8bFFwV2pv6pSkXYxypXEIh9sKvm3AwJ/wqDt99pgjJbVkABYTI3CwDCePwoBxJQQrJqXZl69e7bkN4CfCvGXwypHhSiczu54RnbTY+AQCaHiARWvR+eyWbyMVVce3/WSJM+wln1Dru7dZ3iUr4nV6fZCbr54An3WPKbtXPa8sr3HNlF5bHCBDB5Z4nZFCn1+UPCEN955Pt/TOoGA1W8HSYVuJDgmTWbpup49G45lOMpCdT+AAvYCezU7t+F58t7LUQ/bCw== 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=xDzNI4PHfhM80FCqmKbd79QJqt51fDtqiCd8iKvLdwo=; b=eiQjJicWo7Uak3b6DTJNPdoJfyNPBXQBclA2bR8zt9cW+bp60FNoFXhcyc6UBhh3HrhqutZYatsNA97o0T78FlnfpIj29AUMNJjKIJl2lldCyZ6bWcdY0/PmA3gSvnM92njxhsEDGt4tXUyQy5AOCKrFYIiqmd+lQscXrdKOpfHxaDzyspmREcP3OmKbJcnZurDB12ttmEpg6GNmfOAInSvu0+jpwIVr50rbvJe7CQcu2V4VAPmp3qHiytiYzYk3wUlF5azKXA4RaQoOcC4Fhff/0R+1bySDlk0eD8zG8vILwPN6a7JYREf14aaYbKebnl+625q9WG9hBANTDGdBSw== 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=xDzNI4PHfhM80FCqmKbd79QJqt51fDtqiCd8iKvLdwo=; b=er+3CIxFi16+ZO5TQCVt8HmLNWyLh26DyPe0I5VqD3rRoSqlPc91o9vmYoNpg3W79hCw3u77YBXEhlh/llUeVk8Oe8KjlWZo4e51tRm/ANxgURA+98dnfJ6vr5zN9HgJjDZYqVQjQw5HOkpaASCSRBQjL3amE1b7XaKCuOFFva3ejjZ+IR0+t5qwY8F453fke5UhwZvHSndkejYIbS/fUtreZV6GdM9mQP8n3zeZIIJLiEbO7VOT8RxTr6jf2vn8m9v4KFTe7pdAL+PQ5LZaoC8seq1ZqMTH9MWUqCxd7aNO3e3cRcc7LXZHVfU1YL17Q3A9RgZdvOuGwqCuS3jzFQ== Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) by DB4P250MB0928.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:383::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5588.14; Sat, 3 Sep 2022 20:30:21 +0000 Received: from AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f85a:9a02:f8be:7c47]) by AS8P250MB0744.EURP250.PROD.OUTLOOK.COM ([fe80::f85a:9a02:f8be:7c47%2]) with mapi id 15.20.5588.010; Sat, 3 Sep 2022 20:30:21 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Sat, 3 Sep 2022 22:30:11 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 X-TMN: [BNhz3juziUyEpp1OUJzAPxg6lXADWYHLa6kBVTDc2o0=] X-ClientProxiedBy: ZR0P278CA0042.CHEP278.PROD.OUTLOOK.COM (2603:10a6:910:1d::11) To AS8P250MB0744.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:541::14) X-Microsoft-Original-Message-ID: <20220903203015.1960864-1-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: c9140b79-3184-4f49-b8d8-08da8deb1f17 X-MS-Exchange-SLBlob-MailProps: feAVlmA1hHVJajBbP41IGVvcEX4IAvp8OjIx2V4JeIlZoCifK7fLEoShJosie0G8bY/O9ucnM4RdgIDt/4SW7tHC58D8rn1/RJMO1gHxnHkEVJTTs9dN+EZ4JaNvTSYd2jFy+8Wltw07rTkOEW7+z4Pxj2QBgtTUMPOqvelng53Gy6fsPcEZmJnzSD9r38+1vjKSnuNPnpb8gAOK1e/K7YBnQzpoRRP38J+/YxlX+lR5cvtCDLrEs2fhR6B2PtKOEJMJXuEYvANHJml9rPEl4TwVkNNGosbW+Qul13zgFIJZwhAEGg+eGz3AXTbajkwMqrg9TVNbpRnJsNu2HF5EuUKAkB5ofg9q8D05G1P6Y5PEjPYKm6WEiMu/FyjalxHGB00dsxpJ1zz6KfMb5P6V3vu1Uk+tw1QHEMOXuXBsFm3Sc2yNjneaPvVsbduv8BgLYrlinvd0UvFUkNW+F7KZDoCKKN99qhx834Ja/ed2+sTpX7xxLKqolw05nIji3ULT+rErLmxwmj4N0RTgbAFSyqLBps4Nvp7Vj6XJcNHw2gWE5oeYZhKIVfd+6HdCoOBsLt8rwf/NMhQmJCuf9yUty2X08ZQt4W0O2Wc/flH2/Z8a/Max+jAblKHaouTJq9VSJ9UZekPcXrg3fQ1UUXEQ/2roOLJLN8dkDKh/dIA9T7jZ1YJThj9WJw0c1finDDEzV2kUFF8yUtMSSUW/qph4tg== X-MS-TrafficTypeDiagnostic: DB4P250MB0928:EE_ X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 2HpiSYwNocno/8GMzukp87vRkbpUyDNIoFzvl8cAAG21iCRUbXsMCvLiUImahtaL19wd3jxqfsOX3aSK2gkdebzgama2YuUlnbJcT1n+dQzcfewkABHmz6b20xqU165E9PJp9U7voj7ShcppxEtYw4FJnuzXYoAlzoeq3hnX6k9600s/S6OSSYBMexPsGKdNuXtt4qYFkUPS4RLMOiftnRHksnlRFXsiaR5t5x7SX1CJoU+Bo54krdZci38J5HRvdjUsx5oUnrSuiC58IQBG+ksRbBIeRZ99dmW0h4lnvr+wz03v52KS9v+2oXpjTNfykA5ZnscIKi7XLyD7xOq10ejo4QDtqEXYPSWNEtrgmEnnkTnegoDmUkoTNDbJ1mvD/kcnd9ADYstS4aXVnmINSDvU0eV06uCN17PunIYuvB61MWJY0MgUp8EwPFP9DxQQ1/JpQ2nzlHIQS04mcRG5nJ4/AXoZjBLES8I34PvILX7hcPXAobJdUeJzXarT1duPAox6PG9eHqDygvlaMXiSzcM1HqPOUrHMVoC5XDTP8Q8KUJPG/1D5ZzKHLRHMGNSMy28INViYWcA6awtn7WAu2h5EqWCpXG3Aih1StL2mlUEPD77dALI7ST6ln1OaqEjW1mwPc1XMpFG/2f0u/+kKpA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: MxPy2oPXj78Q9lUCkpj26sJzusVYyjJWpU5U0xLw9Xr/SGjNZO86LK/BOcz/6obO/t3ElMCj+ockqHxw49gIU1ltp0rRaYSKvEeqI+dpp10geErLpLg77YNZuBDWy+4HfAwbUMrV8I0xFNGHiYfi3FJtqSEZjMXGC1WCgW5acGL64+JLlhaLzXfoXGLnZo3xBJLbc3ynd2lnKh8lPEmS/89fhRTc0wwuXVEmzd0YdhEhWzje7WupkbTI0YpSA/xwHTgaUT0HsqBGij3WjKQK2XU5LJdc3fm1uITnz3nR8kKiJAS1SFMPomllO62VJb+09XbJI8IXjZlvehr/n3V0FEuW8vkYqeb5csHzWwg9q2hOfQCSRJACIuxOKTiDDSabQoUQywvGsSg9YpoCS3uhaerw1FUWCZtAhNHFzDDrt4vCYCN4Aqt8biuGFlme0mcj9YqX/VfiGL1LrRUTv5xFlxOZzHI0oLfg0nhkGhaZ0gKFtfFXX3xHIVF7znx6J06NpV9pZwX4J6Zn71jT1zhLWHKCtBQVUcYr0u0D1InJ5Zmqqz+7oPgekPtud7vzWqIeWwLFAu2TXeXLiPYKHgt9PNr1/yfJ0qH/mujdGB3nQUXxNsF5G0mZYDyds3hxeKKJNUrRuHWqWz6nAlxKvbNcD5H6z3IWmnDQd+lnl1m7mF5wZgEZDTuq2ZvTuu3FjsiAdLdex4+Rwz8Bef/YJxAAfeEg8kV1GNxMCsIkWGNROw82PFthaVO9q/38us3l4AkvkejbUSn0cvuOiaTPJNYO56+c6v5Tb8fbZMDGIHeHP4fEKf2s+GXHQs8MQ5utdYXrUyJeYKDJPcQvw0wa8/v8Tsm/R6SCrPj82bYtTMdhO8NRgABoicrB2VqW7WMTmLWkrZwQLkYRzc5VnqdfOrWLJCgp/X1y1JCm70PTjXjZis1FEaXqSxnMJVzALFop4agTAM9tCaO6OJ3/XIZc8P2KMDz+zGqFFdmeLfC+Yb1O25EBTk2iSW2868TMZgDu1k6g6UfAkzTduUphFs2Mk7/uG6jCRkAUIF5YzLR+RHRczja7r3HfGlTBfN2XBVWZfsHTwwNL0y0r1wBCOjYiRpL9BfvM2SYSltBcY44P6nJWUvL5K+bC+WzS2ILXZ5Czcn97KUPMvKoWHuaMqtv/+0lh1r/1XAjKazDjyHzcyZiy/JaVFc7ZVjLrTspm2V2/IsGkT2knGoAP0O/fT93+tx+Wxs8gBxh2w+usKrCKJ0yFZdmpgaGM//7chYLCygM1i1l0hVvupGP+1S+5MqAC9sHpkYanOAmT68eyjhalvoaW6KydBmMwxunEzz7tyBN7OhfA X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c9140b79-3184-4f49-b8d8-08da8deb1f17 X-MS-Exchange-CrossTenant-AuthSource: AS8P250MB0744.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Sep 2022 20:30:21.2480 (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: DB4P250MB0928 Subject: [FFmpeg-devel] [PATCH 1/5] avcodec/cfhd, cfhddata: Simplify check for escape 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: FsUUqT7n+oxH cfhd.c checked for level being equal to a certain codebook- dependent constant and to run being two. The first check is actually redundant, as all codebooks contain only one (real) entry with run == 2 (as is usual with VLCs, this one real entry has several corresponding entries in the table). But given that no entry has a run of zero (except incomplete entries which just signal that one needs to do another round of parsing), one can actually use that as sentinel. This patch does so. Signed-off-by: Andreas Rheinhardt --- One could now deduplicate reading the RL VLCs; or one could branch based upon whether (codebook == 0) || (codebook == 1) or not as this is the actual check in dequant_and_decompand(). libavcodec/cfhd.c | 4 ++-- libavcodec/cfhddata.c | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/cfhd.c b/libavcodec/cfhd.c index 7afbbac59e..90b3d0a850 100644 --- a/libavcodec/cfhd.c +++ b/libavcodec/cfhd.c @@ -819,7 +819,7 @@ static int cfhd_decode(AVCodecContext *avctx, AVFrame *pic, VLC_BITS, 3, 1); /* escape */ - if (level == 64 && run == 2) + if (!run) break; count += run; @@ -850,7 +850,7 @@ static int cfhd_decode(AVCodecContext *avctx, AVFrame *pic, VLC_BITS, 3, 1); /* escape */ - if (level == 255 && run == 2) + if (!run) break; count += run; diff --git a/libavcodec/cfhddata.c b/libavcodec/cfhddata.c index 67bd8e66db..212dccadb9 100644 --- a/libavcodec/cfhddata.c +++ b/libavcodec/cfhddata.c @@ -72,7 +72,7 @@ static const uint16_t table_9_vlc_run[NB_VLC_TABLE_9] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 2, + 1, 0, }; static const uint8_t table_9_vlc_level[NB_VLC_TABLE_9] = { @@ -226,7 +226,7 @@ static const uint16_t table_18_vlc_run[NB_VLC_TABLE_18] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 0, }; static const uint8_t table_18_vlc_level[NB_VLC_TABLE_18] = {