From 1bc873acd6e15eaca8c2aebfd7dc6472b0429c50 Mon Sep 17 00:00:00 2001
From: Michael Niedermayer <michael@niedermayer.cc>
Date: Wed, 7 Oct 2015 17:57:58 +0200
Subject: [PATCH] swresample/resample: manually unroll the main loop in
 bessel()

About 10% faster

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
---
 libswresample/resample.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/libswresample/resample.c b/libswresample/resample.c
index d6737d956a0..036eff391fd 100644
--- a/libswresample/resample.c
+++ b/libswresample/resample.c
@@ -51,11 +51,13 @@ static double bessel(double x){
     x= x*x/4;
     t = x;
     v = 1 + x;
-    for(i=1; v != lastv; i++){
-        lastv=v;
+    for(i=1; v != lastv; i+=2){
         t *= x*inv[i];
         v += t;
-        av_assert2(i<99);
+        lastv=v;
+        t *= x*inv[i + 1];
+        v += t;
+        av_assert2(i<98);
     }
     return v;
 }
-- 
GitLab