From patchwork Fri Nov 20 07:19:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 23946 Delivered-To: andriy.gelman@gmail.com Received: by 2002:a25:c00a:0:0:0:0:0 with SMTP id c10csp953118ybf; Thu, 19 Nov 2020 23:33:01 -0800 (PST) X-Google-Smtp-Source: ABdhPJyHcGhrwyzMVBMJSXwu50OFWvAgmyXEBx4pKU0k0e8+28pZAHeZeYq+LtaV43S93Tb+GcxD X-Received: by 2002:adf:8284:: with SMTP id 4mr14727935wrc.386.1605857581067; Thu, 19 Nov 2020 23:33:01 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605857581; cv=none; d=google.com; s=arc-20160816; b=FJXqZ5U8yjIvpDwjffrexFprGHPmz2+XE78xax/giKhu5uoLSad67FjgqUgJC1hKH8 XX14myebDEI+C8vc/lzEhTANG72+AFC0LPElnyr2Nu7cuT32tbXeCYWiVvaU2cJ3RPVa L6xxjAA1QVv7drVt9x0DgeafNvD0aZQ5lAmlcUxOQUPXgYcd8jokxaTNJHUilth2o+kX qBnur2sDzkU6qB0BBxRoTWB+f6ys5KG/JNyK/djTceuKYdsTAf22L4oTcYLQCZZxsAsB cxQVEfDTFlhbPhrl8ruvmvjkRl0rKu4wk6JKmm1eA+2XF+cUFB1LPIMANMIBqNz87XeD 0rdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to :message-id:date:to:from:dkim-signature:delivered-to; bh=sAxTL77oRFz3u35lveuqqPL7XhcckOo41n+RYJuRLyk=; b=pMeDcuM5808hFQA3eH6ncLFw+baBYKYo8QKjqrKM0PDTTsgU1jjg5gPDYvEDNx/K0h EYlRsHLwskrxpXL6osNsNLsnXgrynQi4pdjchjHFhzwgTfYRHxGicTAy/pW+G7uma26/ s/plVOKnB6P+Gt3Im8oGHrrmzbEj+2wWlfWl8PkP1dQQn7SU/18I6jUp7BAnHqN+mvve gA6A3mNhpInGtv1CABgdFzdEu7leQ5QRxV+iG3HwF1B0trYn77KScJqCsfW9SK/dtpZ1 hhSnN12HcmdZTyJcirFrtVjhshECmwVSZzvyG8Ysp78hXY31Ccm7DXiUeY/jtvFFpluH 8JkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b="hBmF/8GG"; 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=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id i81si2103842wma.190.2020.11.19.23.33.00; Thu, 19 Nov 2020 23:33:01 -0800 (PST) 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=@gmail.com header.s=20161025 header.b="hBmF/8GG"; 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=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6847968BB0F; Fri, 20 Nov 2020 09:25:11 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-ed1-f67.google.com (mail-ed1-f67.google.com [209.85.208.67]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0338168BA8C for ; Fri, 20 Nov 2020 09:25:01 +0200 (EET) Received: by mail-ed1-f67.google.com with SMTP id d18so8469631edt.7 for ; Thu, 19 Nov 2020 23:25:01 -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=gifL3XzHolExl39r/lMMME2GcIGJ7TCUD7k8259OhPI=; b=hBmF/8GGdXwPItCHPX8weltGiaNa7CDVrIoKuOkKat++058WeplSi30sFEDaP9OvmK nC/2zB935FTahU0dcUNUXeNDTeD6lm86hu7VjvUCZikK4eIcwIK8sbGErUfjcFiIMjmo 5af6w2fwXHEWatxKrqptYi78W7aFwUgB935uHE1r0hQrJ0jsHp8JtJfVPS6Us7V0rCW7 SClUFoiInwTp95qkxHE5bi+RrSZONg8X5Vm7Oolkt8BEZD0SsgdUPx3Y0rpasX/vqEE+ svPXYsjYrixcYadTzNTkRX+t5Uw/B8o1FBX0NeKpHOOFpnEMD72LtFYwrS0fqxBwKVAC +8IA== 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=gifL3XzHolExl39r/lMMME2GcIGJ7TCUD7k8259OhPI=; b=ReOFzGl/NnDNI6E/XClWoTQT0Ox3WbnK2mNPiy9lIctzlTN0jdUOimOoI/2ZjPhpWY 7mbObOtagubkEK7bB5JPPqCwcyBwXEzOU/7kgT4cfe3UPwTYj39/0yl/cbcGMrguc3Ap +TJSugpHAQ+x32IgttC4EN91lmPrPO2PX+nZ5ThN+cPiOUFCX5drw1jsvO1VBWTFJgav VUVfKAg9frvWBqAlkA6ib5HGbTd8SmncTUjUoDJhVeWzeYuozvujq75veF3qtjfSUpuJ K1m197/oSKcYCGRpih8BgnWYXRaaBAvb0upeQZ5lOa9vcY8YgP58ueC3mMCcJoEKLbvM jnoQ== X-Gm-Message-State: AOAM532+vsBfsD/e5q/v831UmQ2cviC9r1Oqm2MBUbJ0BT2GziQNLAzX 7IaZ9eFmRsjR0E4no8AXRVnEusg7MKsGmw== X-Received: by 2002:a05:6402:3098:: with SMTP id de24mr33471246edb.155.1605857101150; Thu, 19 Nov 2020 23:25:01 -0800 (PST) Received: from sblaptop.fritz.box (ipbcc1aa4b.dynamic.kabel-deutschland.de. [188.193.170.75]) by smtp.gmail.com with ESMTPSA id lz27sm779419ejb.39.2020.11.19.23.25.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Nov 2020 23:25:00 -0800 (PST) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 20 Nov 2020 08:19:23 +0100 Message-Id: <20201120072116.818090-51-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20201120072116.818090-1-andreas.rheinhardt@gmail.com> References: <20201120072116.818090-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 050/162] avcodec/mpc8: Apply offsets 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" X-TUID: G9u48Ru72wkr Content-Length: 6521 Signed-off-by: Andreas Rheinhardt --- libavcodec/mpc8.c | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c index 920180e92d..b5f89c845b 100644 --- a/libavcodec/mpc8.c +++ b/libavcodec/mpc8.c @@ -39,9 +39,6 @@ static VLC band_vlc, scfi_vlc[2], dscf_vlc[2], res_vlc[2]; static VLC q1_vlc, q2_vlc[2], q3_vlc[2], quant_vlc[4][2], q9up_vlc; -static const int q3_offsets[2] = { MPC8_Q3_OFFSET, MPC8_Q4_OFFSET }; -static const int quant_offsets[6] = { MPC8_Q5_OFFSET, MPC8_Q6_OFFSET, MPC8_Q7_OFFSET, MPC8_Q8_OFFSET }; - static inline int mpc8_dec_base(GetBitContext *gb, int k, int n) { int len = mpc8_cnk_len[k-1][n-1] - 1; @@ -163,10 +160,10 @@ static av_cold int mpc8_decode_init(AVCodecContext * avctx) INIT_VLC_STATIC_FROM_LENGTHS(&q3_vlc[0], MPC8_Q3_BITS, MPC8_Q3_SIZE, mpc8_q3_bits, 1, - mpc8_q3_syms, 1, 1, 0, 0, 512); + mpc8_q3_syms, 1, 1, MPC8_Q3_OFFSET, 0, 512); INIT_VLC_STATIC_FROM_LENGTHS(&q3_vlc[1], MPC8_Q4_BITS, MPC8_Q4_SIZE, mpc8_q4_bits, 1, - mpc8_q4_syms, 1, 1, 0, 0, 516); + mpc8_q4_syms, 1, 1, MPC8_Q4_OFFSET, 0, 516); for(i = 0; i < 2; i++){ res_vlc[i].table = &codes_table[vlc_offsets[0+i]]; @@ -188,25 +185,25 @@ static av_cold int mpc8_decode_init(AVCodecContext * avctx) ff_init_vlc_from_lengths(&quant_vlc[0][i], MPC8_Q5_BITS, MPC8_Q5_SIZE, mpc8_q5_bits[i], 1, mpc8_q5_syms[i], 1, 1, - 0, INIT_VLC_USE_NEW_STATIC, NULL); + MPC8_Q5_OFFSET, INIT_VLC_USE_NEW_STATIC, NULL); quant_vlc[1][i].table = &codes_table[vlc_offsets[6+i]]; quant_vlc[1][i].table_allocated = vlc_offsets[7+i] - vlc_offsets[6+i]; ff_init_vlc_from_lengths(&quant_vlc[1][i], MPC8_Q6_BITS, MPC8_Q6_SIZE, mpc8_q6_bits[i], 1, mpc8_q6_syms[i], 1, 1, - 0, INIT_VLC_USE_NEW_STATIC, NULL); + MPC8_Q6_OFFSET, INIT_VLC_USE_NEW_STATIC, NULL); quant_vlc[2][i].table = &codes_table[vlc_offsets[8+i]]; quant_vlc[2][i].table_allocated = vlc_offsets[9+i] - vlc_offsets[8+i]; ff_init_vlc_from_lengths(&quant_vlc[2][i], MPC8_Q7_BITS, MPC8_Q7_SIZE, mpc8_q7_bits[i], 1, mpc8_q7_syms[i], 1, 1, - 0, INIT_VLC_USE_NEW_STATIC, NULL); + MPC8_Q7_OFFSET, INIT_VLC_USE_NEW_STATIC, NULL); quant_vlc[3][i].table = &codes_table[vlc_offsets[10+i]]; quant_vlc[3][i].table_allocated = vlc_offsets[11+i] - vlc_offsets[10+i]; ff_init_vlc_from_lengths(&quant_vlc[3][i], MPC8_Q8_BITS, MPC8_Q8_SIZE, mpc8_q8_bits[i], 1, mpc8_q8_syms[i], 1, 1, - 0, INIT_VLC_USE_NEW_STATIC, NULL); + MPC8_Q8_OFFSET, INIT_VLC_USE_NEW_STATIC, NULL); } vlc_initialized = 1; @@ -359,7 +356,7 @@ static int mpc8_decode_frame(AVCodecContext * avctx, void *data, case 3: case 4: for(j = 0; j < SAMPLES_PER_BAND; j += 2){ - t = get_vlc2(gb, q3_vlc[res - 3].table, MPC8_Q3_BITS, 2) + q3_offsets[res - 3]; + t = get_vlc2(gb, q3_vlc[res - 3].table, MPC8_Q3_BITS, 2); c->Q[ch][off + j + 1] = t >> 4; c->Q[ch][off + j + 0] = sign_extend(t, 4); } @@ -370,8 +367,8 @@ static int mpc8_decode_frame(AVCodecContext * avctx, void *data, case 8: cnt = 2 * mpc8_thres[res]; for(j = 0; j < SAMPLES_PER_BAND; j++){ - t = get_vlc2(gb, quant_vlc[res - 5][cnt > mpc8_thres[res]].table, quant_vlc[res - 5][cnt > mpc8_thres[res]].bits, 2) + quant_offsets[res - 5]; - c->Q[ch][off + j] = t; + const VLC *vlc = &quant_vlc[res - 5][cnt > mpc8_thres[res]]; + c->Q[ch][off + j] = get_vlc2(gb, vlc->table, vlc->bits, 2); cnt = (cnt >> 1) + FFABS(c->Q[ch][off + j]); } break;