Simplify. See "[PATCH] simplify ff_set_fixed_vector()" thread on mailinglist.
authorRonald S. Bultje <rsbultje@gmail.com>
Thu, 28 Jan 2010 14:29:53 +0000 (14:29 +0000)
committerRonald S. Bultje <rsbultje@gmail.com>
Thu, 28 Jan 2010 14:29:53 +0000 (14:29 +0000)
Originally committed as revision 21510 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavcodec/acelp_vectors.c

index 0b478b7..c9a6f40 100644 (file)
@@ -245,14 +245,12 @@ void ff_set_fixed_vector(float *out, const AMRFixed *in, float scale, int size)
     for (i=0; i < in->n; i++) {
         int x   = in->x[i];
         float y = in->y[i] * scale;
-        out[x] += y;
 
-        x += in->pitch_lag;
-        while (x < size) {
-            y *= in->pitch_fac;
+        do {
             out[x] += y;
+            y *= in->pitch_fac;
             x += in->pitch_lag;
-        }
+        } while (x < size);
     }
 }
 
@@ -262,12 +260,10 @@ void ff_clear_fixed_vector(float *out, const AMRFixed *in, int size)
 
     for (i=0; i < in->n; i++) {
         int x  = in->x[i];
-        out[x] = 0.0;
 
-        x += in->pitch_lag;
-        while (x < size) {
+        do {
             out[x] = 0.0;
             x += in->pitch_lag;
-        }
+        } while (x < size);
     }
 }