Commit 08533939 authored by Vitor Sessak's avatar Vitor Sessak

Simplify rms()

Originally committed as revision 13276 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent c2c237a0
...@@ -181,30 +181,24 @@ static void final(const short *i1, const short *i2, ...@@ -181,30 +181,24 @@ static void final(const short *i1, const short *i2,
static unsigned int rms(const int *data, int f) static unsigned int rms(const int *data, int f)
{ {
const int *c;
int x; int x;
unsigned int res; unsigned int res = 0x10000;
int b; int b = 0;
c = data;
b = 0;
res = 0x10000;
for (x=0; x<10; x++) { for (x=0; x<10; x++) {
res = (((0x1000000 - (*c) * (*c)) >> 12) * res) >> 12; res = (((0x1000000 - (*data) * (*data)) >> 12) * res) >> 12;
if (res == 0) if (res == 0)
return 0; return 0;
if (res <= 0x3fff) { if (res > 0x10000)
return 0; /* We're screwed, might as well go out with a bang. :P */
while (res <= 0x3fff) { while (res <= 0x3fff) {
b++; b++;
res <<= 2; res <<= 2;
} }
} else { data++;
if (res > 0x10000)
return 0; /* We're screwed, might as well go out with a bang. :P */
}
c++;
} }
if (res > 0) if (res > 0)
......
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