From patchwork Tue Sep 13 11:33:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 37887 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:3b1c:b0:96:9ee8:5cfd with SMTP id c28csp627921pzh; Tue, 13 Sep 2022 04:33:44 -0700 (PDT) X-Google-Smtp-Source: AA6agR4yQuWWagjGUX+jNS+aooNg2T6eJYLQ1qTF8B2Vo0y5V9j0moO+mcatrOueVJiKoj+FfjSx X-Received: by 2002:a05:6402:3904:b0:451:f01c:9217 with SMTP id fe4-20020a056402390400b00451f01c9217mr5864359edb.78.1663068824139; Tue, 13 Sep 2022 04:33:44 -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 oz31-20020a1709077d9f00b0077c80ffcffesi1602752ejc.726.2022.09.13.04.33.43; Tue, 13 Sep 2022 04:33:44 -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=RgdybnvA; 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 C280168BB3E; Tue, 13 Sep 2022 14:33:32 +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-vi1eur05olkn2070.outbound.protection.outlook.com [40.92.90.70]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id ABB7E68BB1D for ; Tue, 13 Sep 2022 14:33:25 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ATZDevDTcmWC7EA+yz1OpceqHidNqopO8QeLenpWn79aX8kH2w+Fb9lQaUPg5YNmcxlbmoyv2bzbg6LWyMUFf4HeRUHNbvOYFVXUDJTatQeee9WCRHRVrdzJ1ANkN7shompbEWwjnEZ/kdbM8TmQcNc40WJgJil+yaRJdetci6pJhoBBXEqpNCJlppyBAXBvXnl8p6a+21HqtJgQW9bTQoXX/5wvUofqsdsz9FVyLx3AJVCMb/6ZqYwFz0l5plxFgDx7R8+xZACnk+xjKwPuTtVYjMMSVlFjzl+OpUPxybe/bT9GO41UCSz0l6LLGqzfuQwt4XEqNdxTyOxq+2M6NQ== 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=rgxV+eOSAIKgKGSD6cdxCm9aa8ph4KrL0L5NeBKm6EM=; b=FRZco8WkYaeoVna+tHE+7Al2h6B96Tj5UlKcBynksb8AemxZc2VFvbiThGvFm38sAgOnobJTA6JH2bxaEPe+WqUk7FIhPc7lh076zTraCT1rwNMi339/YpzeBc6oM7Fmzeo4GD+dZguy04QGWbwtqZlXAKnExHwep3eElNbmWnllSmfpuyE7I21QdXZJgOPOUiK39Y5IZcO3RdbZy3NhEpvLF/XbeB70GHDlg+LWhN4Hrpk3AB+oT3mTLc9+rZzB2wXNlqj2SZGX/pRZ86FRjjsl9R/Vi5+smRJehwQhMrr9/b3L+GmBhL8AXPKR2/1aKJhZCVB8Ec+DcOBViDqvag== 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=rgxV+eOSAIKgKGSD6cdxCm9aa8ph4KrL0L5NeBKm6EM=; b=RgdybnvAb9a5UcE+J3KVkJD4QPRJsEIK9aUBsfW+5PBb4zj+H8BsigL6iOJ+61DUZAgA7WufnTfHLTo9DRpKJ0VhR10sZsT3e/O5FK0AGEGvcBuk8mzhQ0Tr056JMnUnK6+vwDg5cJXMC+p4MEkZlHqd6PfPPWTBNf+pVd6AcqtFy+UjvLw4o1wSDi+PPjixnJxlPo+jUul59pCH3x5wnjDycj3k9JWg7w+uxx82trjO4nOazdDALHtYSmkH6USN2O3hqsuLSbFok6JSK3opLkp48kwFC5L8q5F5RDjJUg+LRlnZQsWnWIki8mtMONWrnh9fdBVTBJCpR7cIj4HLtw== Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) by AS8P250MB0072.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:374::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5612.22; Tue, 13 Sep 2022 11:33:15 +0000 Received: from GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::51a4:ed23:ea45:dfeb]) by GV1P250MB0737.EURP250.PROD.OUTLOOK.COM ([fe80::51a4:ed23:ea45:dfeb%7]) with mapi id 15.20.5612.022; Tue, 13 Sep 2022 11:33:15 +0000 From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 13 Sep 2022 13:33:01 +0200 Message-ID: X-Mailer: git-send-email 2.34.1 In-Reply-To: References: X-TMN: [9ltJKnUwACkbUNNM9aWPcTOoZGPhpv8G4a5y7xtse90=] X-ClientProxiedBy: AS9PR06CA0296.eurprd06.prod.outlook.com (2603:10a6:20b:45a::16) To GV1P250MB0737.EURP250.PROD.OUTLOOK.COM (2603:10a6:150:8e::17) X-Microsoft-Original-Message-ID: <20220913113310.451876-3-andreas.rheinhardt@outlook.com> MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: GV1P250MB0737:EE_|AS8P250MB0072:EE_ X-MS-Office365-Filtering-Correlation-Id: e8ad811b-0dc4-4cfa-9a53-08da957bbf89 X-MS-Exchange-SLBlob-MailProps: AZnQBsB9XmpEumVcsW5Tnf3Q/Hh5f4HAz/P/TdZaTMcnUti32fSQL0TE+UH0KN9ytTORtixHvKayLctxmdKOCvy3rNYpzP88ww5PK0wD3aqjc7g7qHKPCevZbSmOoXSTa/IAVyLb2P+FdckSlFNFahovXPSWV3pvhUMpdOlhOtc5V13UU5y5y6UrF2zDO8+j2QIQNmvajpKNWym8Ut+hmL6C8h8IcuoSDr+rqhM8iyaokcvcI9/oiuvj6tjj112/ahwZQX0NQf6v+kFME2/ndBfSK7zYHCIK5zou/Iq5rySGsm6RJSxXZhmQAIwD4BWoYR8t5u7P2kKYh9MQSxif0/OyTwdwac8UrOkniwfOpP6X7liHukV8FdDjiKV1IeuCsykfQnK4Dw8lNVbQTwqONvMNmfilwfdruWc6c4xyOkAFZibCDl+NqYqfbpTBM5TDFShISZlKQr4zroasmSCfszK/mSIz5Q7x+gOAd57g3OVn4Cis66r/g3jgFdND4zLliIuYOuhM1i3DOpwnyiPJ6DPxUH9vCyF1aWwVpNbvFsuM5UXgemA/ELJetWc1/UrnxDj4/4xWNYSOJHVdw4vj9hTtK/HMYnqDVU5dGJvIvBeSP2ra57EtlIa7dQ9Cdyu6JPVuG9ZsL/ns09Mr8yFi4Xrh6zo9VVXISgQQxR1wheT14cr54uxoQVtAX3Sjxia5T8Hy27MxcDsQwEbkJfc6hCeffkFgtiq1xbjH/+H//fIg81hpOt3X1NaDrfFUtBqM1/1IrMdpEoQ= X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: g4dfipIdDRNGF0n63cOZc0QbP1RdNORWtuC/UKnTZH8C/pCI/BV1MieKNb/d9OUK8qlELHLf9TKc05Q5p2UQWtdPxFGJ5h5Dq44hXFjcaLr9w39hsiwyPHtnh3HsrvIYtejI3nFNv4g0+Nfb4RthUCtN5ejHKsyW1toqVtkcGoiNBrKdEJVB1n55B5/iDJedNzVpaW3KQ0Dm2I4IEn6ka0fT4ieRlXi0csXadbD9NkcZ9czVXvAFRIXOixaur+VQEQKanX/7vOtJHx5RWfXaprkCq8T0KvgktstsqwiIpYqOGapIZGpQ+UGAfsBi6rK14xos+HtR+7a8R6lETPaltBzhI26VDq/g6+46JowkKYIbFSVhXFL8JJ+MMHnR0mUvI2MZiA5gTrrkYnhNHmJ9qPtLxtIWBWgSWVXvf2WtEBeSyNvd/CQZzwaG6lJsqZ/7WzG8mSnm3/B8JIjEGhnU8aYvjXljw/kvMRz3we9QFMwFfE+HBnp3TwTx9o/6aFWaPa/SMKPYXgoDT2cchqoMvPeBwL8GzMvKYJCdIsLYL6dJP0PkR2YYElsWT3anKNaaEqjb7zxIWzXf6TH8wAQ/X6/37SOUIqtSFxzRFtdrZjlpQ/+N21od42vtVaVtXzYvrAO/kQCdwS9Ka+U8nItakA== X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: HWPS/rqYpHJHUPldrN0Xdjk0tFEyogLgqxMMrmlWcETeQvFmlKCc97lKtFnpm2ZtFIeMw23JHAtGNV62vik7YVo6CAr8UyuI3R0cCQExki4nD3JSmrYO+duzpDMq+QdJMDuNafa3tEO3v6YshhCKl+emNt2MOBlpyhWUQMAIoJnSsNWuEJk4peFXk3HAlh9c+O6me2Z8bDNdPJqkD4BPjKnKE64szcEnV2GYEVBI/e74t+KtzqjH54wYZAUByte7U8FEDgwliL6Gb/o6Rqg46Bf+m7yVdtPN1aFS9oXvYPDMV6tjZ8j8xt0Mt1IIR8kV4SKpBry2fBtYfaJd2f4LM9HzRm0hyVfbuK3OxCxJz2+q3GYRBfsc/l0FE2mmG+Io2Y+fkjeCFYVQDWoxdvU6+fApj9nuLviXQRUm8hH7DJ2BXEyhWJBPyCH2B1/0D0McjGekcGVWFLgZ15+gC3ynI5413+aKDpEZw0nXOSyorGvEHWQmEpLMjSPkb+7D8u21wx6Kcvkwtx7g5nwl3s9w7bXDj7Xbl+AH7rFb601CI5JDRXpl5waLxqZyAZhYAONo6b2mLRXt9o8bysonfBw6gMe00gPFaT5bABmt+2L4CBcoKUP2gbvN4Oq6ChasdYJ0eua2IFcWAf383u+z0n4YJuGZ47rfrbGoXgqAhYP/+4fgnMZ+uUvUhSF8P5aJS//m2paNX8WfLJ+vCmBfBn9boqdgvhbTE1CIKg5VFtslXHoPRd/D95yLuTEgbQ9k84she0T8hL60IT1njc1WGw+D+aBzA6a2DsL5+4QpP8CKMnJEbNo31M/RbwUmq0yOc9K33T/Pz/9ozsJ7I6T7FKe6ezARpP82i8XYXZ4DUqwhyeRzQ8Cer93ersJnQR1Fu7Xqc4EG98hasRR10d8SlsdzwtZ3FrWYrM1qcw0MiOc8u/9KcadsM5YA+fND+RvGXKFi4ImGbjR1msAGaZL5KUXOYnhPWN109qwt/X5/5/WrYsJviYqDc3Ysp/IlicY/lSTy3JIIrajm8XiVp5TVFQd3iPi2DZZ6kUCXZ5dDHHUsGQyd9aHCjZsOJpUU9ayGIPlWozJysNUZbz3MS3fW3wjXe6g9w+Yb1m6qR3gSIGeh+lOcxCy+IL6XNQKFP2DSQLisTFN+88k1zhyX1g4F/ARerv+lo1wM3A+oSEGKUtUOGxmlIegz2tVsfLnj50J/I2kgkm3k6T4juAU499PxKISyrkhKZZDA/LOPO33ghUxmC8q3W/Z8rP1LKiR9qAlPVJ0WJN6BCEIbV72gxRJtEFzoIiBFD5LdB/aOGp1wEVNi3hCVuznRlvyVGFMi0b1Nghy7 X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e8ad811b-0dc4-4cfa-9a53-08da957bbf89 X-MS-Exchange-CrossTenant-AuthSource: GV1P250MB0737.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Sep 2022 11:33:15.5203 (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: AS8P250MB0072 Subject: [FFmpeg-devel] [PATCH 04/13] avcodec/dca_core, dcahuff: Don't use DCAVLC unnecessarily 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: mR/ToEaSvD0r The ff_dca_vlc_transition_mode VLCs don't use an offset at all, so just use ordinary VLCs for them. Signed-off-by: Andreas Rheinhardt --- libavcodec/dca_core.c | 3 ++- libavcodec/dcahuff.c | 8 +++----- libavcodec/dcahuff.h | 2 +- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/libavcodec/dca_core.c b/libavcodec/dca_core.c index bbf36ea678..499afc8204 100644 --- a/libavcodec/dca_core.c +++ b/libavcodec/dca_core.c @@ -456,7 +456,8 @@ static int parse_subframe_header(DCACoreDecoder *s, int sf, int sel = s->transition_mode_sel[ch]; for (band = 0; band < s->subband_vq_start[ch]; band++) if (s->bit_allocation[ch][band]) - s->transition_mode[sf][ch][band] = dca_get_vlc(&s->gb, &ff_dca_vlc_transition_mode, sel); + s->transition_mode[sf][ch][band] = get_vlc2(&s->gb, ff_dca_vlc_transition_mode[sel].table, + ff_dca_vlc_transition_mode[sel].bits,1); } } diff --git a/libavcodec/dcahuff.c b/libavcodec/dcahuff.c index 9b809cc415..49fb06eeb4 100644 --- a/libavcodec/dcahuff.c +++ b/libavcodec/dcahuff.c @@ -1233,7 +1233,7 @@ static const uint8_t rsd_bitvals[18] = { }; DCAVLC ff_dca_vlc_bit_allocation; -DCAVLC ff_dca_vlc_transition_mode; +VLC ff_dca_vlc_transition_mode[4]; DCAVLC ff_dca_vlc_scale_factor; DCAVLC ff_dca_vlc_quant_index[DCA_CODE_BOOKS]; @@ -1276,10 +1276,8 @@ av_cold void ff_dca_init_vlcs(void) DCA_INIT_VLC(ff_dca_vlc_scale_factor.vlc[i], SCALES_VLC_BITS, 129, scales_bits[i], scales_codes[i]); - ff_dca_vlc_transition_mode.offset = 0; - ff_dca_vlc_transition_mode.max_depth = 1; - for (i = 0; i < 4; i++) - DCA_INIT_VLC(ff_dca_vlc_transition_mode.vlc[i], tmode_vlc_bits[i], 4, + for (unsigned i = 0; i < FF_ARRAY_ELEMS(ff_dca_vlc_transition_mode); i++) + DCA_INIT_VLC(ff_dca_vlc_transition_mode[i], tmode_vlc_bits[i], 4, tmode_bits[i], tmode_codes[i]); for (i = 0; i < DCA_CODE_BOOKS; i++) { diff --git a/libavcodec/dcahuff.h b/libavcodec/dcahuff.h index c0e04b725a..87e1fd1cea 100644 --- a/libavcodec/dcahuff.h +++ b/libavcodec/dcahuff.h @@ -40,7 +40,7 @@ typedef struct DCAVLC { } DCAVLC; extern DCAVLC ff_dca_vlc_bit_allocation; -extern DCAVLC ff_dca_vlc_transition_mode; +extern VLC ff_dca_vlc_transition_mode[4]; extern DCAVLC ff_dca_vlc_scale_factor; extern DCAVLC ff_dca_vlc_quant_index[DCA_CODE_BOOKS];