From patchwork Thu Sep 19 22:17:05 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andreas Rheinhardt X-Patchwork-Id: 15160 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 7B8494483B9 for ; Fri, 20 Sep 2019 01:24:39 +0300 (EEST) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 6351F689E26; Fri, 20 Sep 2019 01:24:39 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm1-f65.google.com (mail-wm1-f65.google.com [209.85.128.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id AE33C689D84 for ; Fri, 20 Sep 2019 01:24:33 +0300 (EEST) Received: by mail-wm1-f65.google.com with SMTP id y21so149712wmi.0 for ; Thu, 19 Sep 2019 15:24:33 -0700 (PDT) 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 :mime-version:content-transfer-encoding; bh=mRPZ1uWlnjhp7en61JhS8VK93lOS2DYbk7nYPbgl5FQ=; b=TcDIsBB5MiOW0/wPhP1r9zG/PZRQWtbNFAJFsfx4b0fh3isTuTSgacaF7dz4fh9bJB eNcumtD0YmoCgKKF1yVdGbE6j+YCsnZJ7ZQGPU5+Asr7xcU9uKwpynYvaXdNrioW26xN ZeFadSKC+6Ye0RSKrEXf6e03E0zO/leqGVJMgVQFFwsb57O3OBMEzJhaay3i1OyF43Xv NlGl+4jsNskWH5BsOgHd7D6Wsb8ilYOvbGDNOxshAJeIs+58MtlfwMwbX3psJmP7QVOA dnaA44AdPyAgMUEtkfboVD1eEKvKfJtsJrS4191oexGGc0SqcL8mDGm7ItKuHysmhxq8 Gu3A== 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:mime-version:content-transfer-encoding; bh=mRPZ1uWlnjhp7en61JhS8VK93lOS2DYbk7nYPbgl5FQ=; b=G2wrM40IVLP9GEQ4XT9I1SdJW6A/fEVQp66dlbwGwq5JBBurR+UG6swPMD/9MDbVlj o8nWlVRi3JFujnjINjG5bpRTYvItieGsxGBBHk7/BIpyWOf+GmjzmXEFGi/PGbfxxaAn Q9jXp4pMjRr7eBZGb5f5I72cPQF5UKvhkDekAbn/3IeZZAXhJuetrtjrhQCFM5OWhS4l GdIhcl6BSYCFJ6doNCTTFS1awClHj4ksvUO8qB0F+wAcOPVLFI98LOEO9DQNU9UMgTus AKx9nvxBcu5UI8AvDICN3xWwDcLS6LYnd/vDdzsJm+mj2XA1fZuEOtXAn1Vl/TeBUFZT 7ekg== X-Gm-Message-State: APjAAAU0BVbIjNap7o81y6rn4luHoA4aWiS7hvasTPfxUP8SHZ1d0+O5 +GLkt0cgAJCZjPPG0mwEruiheTDt X-Google-Smtp-Source: APXvYqz7FY/QeVD993N1TZgbp/dQLN1rJQ/K5CYfDNX1jn2dF9QXkTlS4wKxQTH10MY8r8by9OmpIw== X-Received: by 2002:a05:600c:2290:: with SMTP id 16mr90878wmf.161.1568931873084; Thu, 19 Sep 2019 15:24:33 -0700 (PDT) Received: from sblaptop.fritz.box (ipbcc0f857.dynamic.kabel-deutschland.de. [188.192.248.87]) by smtp.gmail.com with ESMTPSA id y12sm49955wrn.74.2019.09.19.15.24.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 19 Sep 2019 15:24:32 -0700 (PDT) From: Andreas Rheinhardt To: ffmpeg-devel@ffmpeg.org Date: Fri, 20 Sep 2019 00:17:05 +0200 Message-Id: <20190919221706.16529-11-andreas.rheinhardt@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190919221706.16529-1-andreas.rheinhardt@gmail.com> References: <20190919221706.16529-1-andreas.rheinhardt@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 10/11] avcodec/truespeech: Fix invalid shifts 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" Fixes the truespeech FATE-test as well as the truespeech bugs reported in ticket #8159. Signed-off-by: Andreas Rheinhardt --- libavcodec/truespeech.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/libavcodec/truespeech.c b/libavcodec/truespeech.c index d4ddfcbf9c..f08f5f2680 100644 --- a/libavcodec/truespeech.c +++ b/libavcodec/truespeech.c @@ -133,7 +133,7 @@ static void truespeech_correlate_filter(TSContext *dec) memcpy(tmp, dec->cvector, i * sizeof(*tmp)); for(j = 0; j < i; j++) dec->cvector[j] = ((tmp[i - j - 1] * dec->vector[i]) + - (dec->cvector[j] << 15) + 0x4000) >> 15; + dec->cvector[j] * (1 << 15) + 0x4000) >> 15; } dec->cvector[i] = (8 - dec->vector[i]) >> 3; } @@ -256,7 +256,7 @@ static void truespeech_synth(TSContext *dec, int16_t *out, int quart) int sum = 0; for(k = 0; k < 8; k++) sum += ptr0[k] * ptr1[k]; - sum = (sum + (out[i] << 12) + 0x800) >> 12; + sum = (sum + out[i] * (1 << 12) + 0x800) >> 12; out[i] = av_clip(sum, -0x7FFE, 0x7FFE); for(k = 7; k > 0; k--) ptr0[k] = ptr0[k - 1]; @@ -274,7 +274,7 @@ static void truespeech_synth(TSContext *dec, int16_t *out, int quart) for(k = 7; k > 0; k--) ptr0[k] = ptr0[k - 1]; ptr0[0] = out[i]; - out[i] = ((out[i] << 12) - sum) >> 12; + out[i] = (out[i] * (1 << 12) - sum) >> 12; } for(i = 0; i < 8; i++) @@ -282,7 +282,7 @@ static void truespeech_synth(TSContext *dec, int16_t *out, int quart) ptr0 = dec->tmp3; for(i = 0; i < 60; i++){ - int sum = out[i] << 12; + int sum = out[i] * (1 << 12); for(k = 0; k < 8; k++) sum += ptr0[k] * t[k]; for(k = 7; k > 0; k--)