From patchwork Tue Nov 10 10:47:50 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 23531 Return-Path: X-Original-To: patchwork@ffaux-bg.ffmpeg.org Delivered-To: patchwork@ffaux-bg.ffmpeg.org Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by ffaux.localdomain (Postfix) with ESMTP id A051444ACE4 for ; Tue, 10 Nov 2020 13:01:35 +0200 (EET) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id F290268BEE9; Tue, 10 Nov 2020 12:50:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 20B4968BE48 for ; Tue, 10 Nov 2020 12:50:12 +0200 (EET) Received: by mail-wm1-f54.google.com with SMTP id w24so2552505wmi.0 for ; Tue, 10 Nov 2020 02:50:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references:reply-to :mime-version:content-transfer-encoding; bh=Km0opZp3yZoRibySuEdHS0HnJEI+BjXByLrv7vldUMQ=; b=JiUCNd5ZqxMHlpN73hlx167HebQoaVWrDz5I6XXQ5ScZcylWRp+55xDneyL7eYc5Hz 7j/OnAUFm8QW/N0ZJoG0ULF1SOshVkANf9eFVkgk5uNGn3wMdDMX9aSuPmpVUUHnaIMu +YjefTzysCBj8ISlvzhW+HOz8WHcJ37mOKgFzOzXMVsVVYeboAeELTdLarCSp1+KehmY OZdyJ3B3NhRKOmk20zLEB0ME3wdR/bbwAKmfcLLuYuuRmwTgLSOyE17Je93YHZ6Xjt92 8EaN9I8I82QCfplasEGKCD0rtahF6UmLlk7INh622wYqmlgFlK9iocmABPvhhXMVv1Zi +Lrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:reply-to:mime-version:content-transfer-encoding; bh=Km0opZp3yZoRibySuEdHS0HnJEI+BjXByLrv7vldUMQ=; b=Gej8tk8ZD4Rw17hsrDJeWOu0jdb9wDd46KTa+QL+D65dNZzbRWDKAd6ta1iwzYgX2M gUOlN8wVg6XtiTZEoqJvCVHmm2HRQG0a3ThPMrEC/DFkxITuJE39QWte60MLRt1NcSXq /K8kKJevz/Z2pMcZaW5F54a0Gi9gKDH5h1qDPeqGjUKvLChrzFtytmEUlfSw/kDz69NY 8tnRT8UCNlocTS1VUuXgT/NClfPLuz3YQxpVsyIhbjHpPhJUysH2x4NMvpFOi5vREJLD FMEoOC2uvtEhwh6bKn73os31o4nuKi54Q1jrZeC5vBf6NE3Yy+hofBrj6o/O6BKo6vMw Hk9g== X-Gm-Message-State: AOAM533EE13Ax5Q0ckSzZ1bDto93+T1KyhywShqLj0nJl1NlpciLe+uX bKqtFnCuxzHOfpO1Kel8+Zb4jyEKqPg= X-Google-Smtp-Source: ABdhPJw2G8KKqAGMLRPhZ0A5gkbX6Ae9irCPZ3S6xY8MDQGvfDE2WoqbBDO3QpsxB23tdGsKdNJhtA== X-Received: by 2002:a1c:490b:: with SMTP id w11mr4062605wma.101.1605005412218; Tue, 10 Nov 2020 02:50:12 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id l24sm2572543wmi.7.2020.11.10.02.50.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Nov 2020 02:50:11 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Tue, 10 Nov 2020 11:47:50 +0100 Message-Id: <20201110104851.321029-54-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201110104851.321029-1-andreas.rheinhardt@gmail.com> References: <20201110104851.321029-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 053/114] avcodec/qdm2: Avoid offsets table when initializing VLCs X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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" Signed-off-by: Andreas Rheinhardt --- libavcodec/qdm2_tablegen.h | 40 ++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/libavcodec/qdm2_tablegen.h b/libavcodec/qdm2_tablegen.h index b60989e343..e492f7bb60 100644 --- a/libavcodec/qdm2_tablegen.h +++ b/libavcodec/qdm2_tablegen.h @@ -109,46 +109,44 @@ static VLC vlc_tab_type30; static VLC vlc_tab_type34; static VLC vlc_tab_fft_tone_offset[5]; -static const uint16_t qdm2_vlc_offs[] = { - 0,260,566,598,894,1166,1230,1294,1678,1950,2214,2278,2310,2570,2834,3124,3448,3838, -}; - static VLC_TYPE qdm2_table[3838][2]; -static av_cold void build_vlc(VLC *vlc, int nb_bits, int nb_codes, int idx, - const uint8_t tab[][2]) +static av_cold void build_vlc(VLC *vlc, int nb_bits, int nb_codes, + unsigned *offset, const uint8_t tab[][2]) { - vlc->table = &qdm2_table[qdm2_vlc_offs[idx]]; - vlc->table_allocated = qdm2_vlc_offs[idx + 1] - qdm2_vlc_offs[idx]; + vlc->table = &qdm2_table[*offset]; + vlc->table_allocated = FF_ARRAY_ELEMS(qdm2_table) - *offset; ff_init_vlc_from_lengths(vlc, nb_bits, nb_codes, &tab[0][1], 2, &tab[0][0], 2, 1, -1, INIT_VLC_USE_NEW_STATIC | INIT_VLC_OUTPUT_LE); + *offset += vlc->table_size; } static av_cold void qdm2_init_vlc(void) { const uint8_t (*tab)[2] = tab_fft_tone_offset; + unsigned offset = 0; - build_vlc(&vlc_tab_level, 8, 24, 0, tab_level); - build_vlc(&vlc_tab_diff, 8, 33, 1, tab_diff); - build_vlc(&vlc_tab_run, 5, 6, 2, tab_run); + build_vlc(&vlc_tab_level, 8, 24, &offset, tab_level); + build_vlc(&vlc_tab_diff, 8, 33, &offset, tab_diff); + build_vlc(&vlc_tab_run, 5, 6, &offset, tab_run); - build_vlc(&fft_level_exp_alt_vlc, 8, 28, 3, fft_level_exp_alt); - build_vlc(&fft_level_exp_vlc, 8, 20, 4, fft_level_exp); + build_vlc(&fft_level_exp_alt_vlc, 8, 28, &offset, fft_level_exp_alt); + build_vlc(&fft_level_exp_vlc, 8, 20, &offset, fft_level_exp); - build_vlc(&fft_stereo_exp_vlc, 6, 7, 5, fft_stereo_exp); - build_vlc(&fft_stereo_phase_vlc, 6, 9, 6, fft_stereo_phase); + build_vlc(&fft_stereo_exp_vlc, 6, 7, &offset, fft_stereo_exp); + build_vlc(&fft_stereo_phase_vlc, 6, 9, &offset, fft_stereo_phase); - build_vlc(&vlc_tab_tone_level_idx_hi1, 8, 20, 7, tab_tone_level_idx_hi1); - build_vlc(&vlc_tab_tone_level_idx_mid, 8, 13, 8, tab_tone_level_idx_mid); - build_vlc(&vlc_tab_tone_level_idx_hi2, 8, 18, 9, tab_tone_level_idx_hi2); + build_vlc(&vlc_tab_tone_level_idx_hi1, 8, 20, &offset, tab_tone_level_idx_hi1); + build_vlc(&vlc_tab_tone_level_idx_mid, 8, 13, &offset, tab_tone_level_idx_mid); + build_vlc(&vlc_tab_tone_level_idx_hi2, 8, 18, &offset, tab_tone_level_idx_hi2); - build_vlc(&vlc_tab_type30, 6, 9, 10, tab_type30); - build_vlc(&vlc_tab_type34, 5, 10, 11, tab_type34); + build_vlc(&vlc_tab_type30, 6, 9, &offset, tab_type30); + build_vlc(&vlc_tab_type34, 5, 10, &offset, tab_type34); for (int i = 0; i < 5; i++) { build_vlc(&vlc_tab_fft_tone_offset[i], 8, tab_fft_tone_offset_sizes[i], - 12 + i, tab); + &offset, tab); tab += tab_fft_tone_offset_sizes[i]; } }