From patchwork Sat Aug 20 04:32:02 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Almer X-Patchwork-Id: 228 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.134 with SMTP id o128csp701882vsd; Fri, 19 Aug 2016 21:33:04 -0700 (PDT) X-Received: by 10.28.9.210 with SMTP id 201mr6265312wmj.104.1471667584054; Fri, 19 Aug 2016 21:33:04 -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 ye5si9034521wjb.41.2016.08.19.21.33.02; Fri, 19 Aug 2016 21:33:04 -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=@gmail.com; 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 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 80AF8689AC3; Sat, 20 Aug 2016 07:32:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-oi0-f66.google.com (mail-oi0-f66.google.com [209.85.218.66]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4396E689AA0 for ; Sat, 20 Aug 2016 07:32:42 +0300 (EEST) Received: by mail-oi0-f66.google.com with SMTP id b22so7588732oii.3 for ; Fri, 19 Aug 2016 21:32:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:date:message-id; bh=KVed7NaSu6n8arAikb4OAujf1GfkuBA5gV4p1LhYNgw=; b=TETMPbX/UkOOkfmNOyTrMpjR582hs0rEC/Umx0QrBeUTrAg0ThTzn3B/GhTKK1kjeR 8a4Fg3HGlS2ScmmyolrUXA2SK4wZvXooiigBXsO6phDHd4uTL+3/3c2hoecY8zusSzbN jV4bg1BM79umSUm4gDYxKFSNT0HaaRWhSTVfEVMyu39/AJxrkpEuQbi/7vW8tS1Rbhg8 Oekz4E0gukleFNm/BaejGOgJPemIELB0dEjl992yaWUf0D7vTRsin6yekOk9CQdg2SlV XAC68K660OXRk/Dlx9P8LGNhugcFkZKGl6bHeSrKdsrM5UPiaDExaxqjBTOcgrnyBTjl l1PQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:message-id; bh=KVed7NaSu6n8arAikb4OAujf1GfkuBA5gV4p1LhYNgw=; b=lyTObj/MVa9Hl2k5zi45In41OsicP2WPkc33mycobgvDBIB7by/blEsSvkYJzJtB9l KMPbMmppC6hGrPxeIyGzhxyJn/VnnRgdB5Kxp4iRxdrWvk1a1pRtKP8dBD9JtCsk3gkr 3rq4X10uSUEvpEuSpKBt6homBlsKxxWplG78RWwfg3ufHX6M98y6H9S/u1THItk5g32H y0YAHlGLSOjhRRVxlFqn7w0xPPT2VVROBZ1I2GzMH37iyulfSM012OcqOgBoL9yqFFjz Vzu49z+ZYxw8lUONpjSGMLKMPgaqM5VVii9fBO8l7pxgzVBXsBmOg/GJuRoPsRuU6x9i DBbQ== X-Gm-Message-State: AEkoouvQG4GxbwfbPdGCUFSoFTxdaibV5rVURrbH08LhGumXiM+mWUWgxESHpPpItzjIXw== X-Received: by 10.157.18.235 with SMTP id g98mr6973646otg.98.1471667560965; Fri, 19 Aug 2016 21:32:40 -0700 (PDT) Received: from localhost.localdomain ([181.22.28.147]) by smtp.gmail.com with ESMTPSA id q4sm5695165oib.28.2016.08.19.21.32.39 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 19 Aug 2016 21:32:40 -0700 (PDT) From: James Almer To: ffmpeg-devel@ffmpeg.org Date: Sat, 20 Aug 2016 01:32:02 -0300 Message-Id: <20160820043202.6172-1-jamrial@gmail.com> X-Mailer: git-send-email 2.9.1 Subject: [FFmpeg-devel] [PATCH] avfilter/window_func: use a constant instead of acosh() 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Should fix compilation with non C99 compilers like msvc 2012, where acosh() is not available. Signed-off-by: James Almer --- A fallback function like static av_always_inline double acosh(double x) { return log(x + sqrt((x * x) - 1.0)); } could be added to libm.h if acosh() is needed sometime in the future for values that can't be computed at compile time. The above example doesn't take into account things like x == NaN and x < 1.0, though. libavfilter/window_func.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavfilter/window_func.c b/libavfilter/window_func.c index fcdf6ea..acf1b20 100644 --- a/libavfilter/window_func.c +++ b/libavfilter/window_func.c @@ -117,7 +117,7 @@ void ff_generate_window_func(float *lut, int N, int win_func, float *overlap) *overlap = 0.33; break; case WFUNC_DOLPH: { - double b = cosh(acosh(pow(10., 3)) / (N-1)), sum, t, c, norm = 0; + double b = cosh(7.6009022095419887 / (N-1)), sum, t, c, norm = 0; int j; for (c = 1 - 1 / (b*b), n = (N-1) / 2; n >= 0; --n) { for (sum = !n, b = t = j = 1; j <= n && sum != t; b *= (n-j) * (1./j), ++j)