Commit 2279dd9e authored by Vitor Sessak's avatar Vitor Sessak
Browse files

Simplify final()

Originally committed as revision 13277 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent 08533939
...@@ -145,38 +145,33 @@ static void add_wav(int n, int f, int m1, int m2, int m3, const short *s1, ...@@ -145,38 +145,33 @@ static void add_wav(int n, int f, int m1, int m2, int m3, const short *s1,
static void final(const short *i1, const short *i2, static void final(const short *i1, const short *i2,
void *out, int *statbuf, int len) void *out, int *statbuf, int len)
{ {
int x, sum, i; int x, i;
int buffer[10];
short *ptr;
short *ptr2;
unsigned short int work[50]; unsigned short int work[50];
short *ptr = work;
memcpy(work, statbuf,20); memcpy(work, statbuf,20);
memcpy(work + 10, i2, len * 2); memcpy(work + 10, i2, len * 2);
for(i=0; i<10; i++) for (i=0; i<len; i++) {
buffer[9-i] = i1[i]; int sum = 0;
ptr2 = (ptr = work) + len;
while (ptr < ptr2) { for(x=0; x<10; x++)
for(sum=0, x=0; x<=9; x++) sum += i1[9-x] * ptr[x];
sum += buffer[x] * (ptr[x]);
sum = sum >> 12; sum >>= 12;
x = ptr[10] - sum;
if (x<-32768 || x>32767) { if (ptr[10] - sum < -32768 || ptr[10] - sum > 32767) {
memset(out, 0, len * 2); memset(out, 0, len * 2);
memset(statbuf, 0, 20); memset(statbuf, 0, 20);
return; return;
} }
ptr[10] = x; ptr[10] -= sum;
ptr++; ptr++;
} }
memcpy(out, ptr+10 - len, len * 2);
memcpy(statbuf, ptr, 20); memcpy(out, work+10, len * 2);
memcpy(statbuf, work + 40, 20);
} }
static unsigned int rms(const int *data, int f) static unsigned int rms(const int *data, int f)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment