Simplify do_voice().

Patch by Vitor Sessak (vitor1001 gmail com)

Originally committed as revision 13124 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Vitor Sessak 2008-05-11 18:47:16 +00:00 committed by Alexander Strange
parent 0d493edd0b
commit 1d46ba661c
1 changed files with 8 additions and 15 deletions

View File

@ -106,28 +106,21 @@ static int t_sqrt(unsigned int x)
static void do_voice(int *a1, int *a2)
{
int buffer[10];
int *b1, *b2;
int *b1 = buffer;
int *b2 = a2;
int x, y;
int *ptr;
b1 = buffer;
b2 = a2;
for (x=0; x < 10; x++) {
b1[x] = (*a1) << 4;
b1[x] = a1[x] << 4;
for (y=0; y < x; y++)
b1[y] = ((a1[x] * (b2[x-y-1])) >> 12) + b2[y];
if(x > 0) {
ptr = b2 + x;
for (y=0; y <= x - 1; y++)
b1[y] = (((*a1) * (*(--ptr))) >> 12) + b2[y];
}
FFSWAP(int *, b1, b2);
a1++;
}
ptr = a2 + 10;
while (ptr > a2)
(*a2++) >>= 4;
for (x=0; x < 10; x++)
a2[x] >>= 4;
}