[SCM] libav/experimental: Simplify: do not overuse pointer aritmetic

siretart at users.alioth.debian.org siretart at users.alioth.debian.org
Sun Jun 30 16:25:32 UTC 2013


The following commit has been merged in the experimental branch:
commit 96e8987e5bc98e27c8583b4db7e948e9654b2d95
Author: Vitor Sessak <vitor1001 at gmail.com>
Date:   Thu Jul 17 23:48:53 2008 +0000

    Simplify: do not overuse pointer aritmetic
    
    Originally committed as revision 14271 to svn://svn.ffmpeg.org/ffmpeg/trunk

diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c
index 28dca65..bc7d9a9 100644
--- a/libavcodec/ra288.c
+++ b/libavcodec/ra288.c
@@ -111,19 +111,16 @@ static int pred(const float *in, float *tgt, int n)
     in--; // To avoid a -1 subtraction in the inner loop
 
     for (x=1; x <= n; x++) {
-        float *p1 = tgt + x - 1;
-        float *p2 = tgt;
-
         f1 = in[x+1];
 
         for (y=0; y < x - 1; y++)
             f1 += in[x-y]*tgt[y];
 
-        *(p1--) = f2 = -f1/f0;
-        for (y=x >> 1; y--;) {
-            float temp = *p2 + *p1 * f2;
-            *(p1--) += *p2 * f2;
-            *(p2++) = temp;
+        tgt[x-1] = f2 = -f1/f0;
+        for (y=0; y < x >> 1; y++) {
+            float temp = tgt[y] + tgt[x-y-2]*f2;
+            tgt[x-y-2] += tgt[y]*f2;
+            tgt[y] = temp;
         }
         if ((f0 += f1*f2) < 0)
             return 0;

-- 
Libav/FFmpeg packaging



More information about the pkg-multimedia-commits mailing list