Browse Source

Simplify rms()

Originally committed as revision 13276 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Vitor Sessak 18 years ago
parent
commit
0853393979
1 changed files with 8 additions and 14 deletions
  1. +8
    -14
      libavcodec/ra144.c

+ 8
- 14
libavcodec/ra144.c View File

@@ -181,30 +181,24 @@ static void final(const short *i1, const short *i2,

static unsigned int rms(const int *data, int f)
{
const int *c;
int x;
unsigned int res;
int b;
unsigned int res = 0x10000;
int b = 0;

c = data;
b = 0;
res = 0x10000;
for (x=0; x<10; x++) {
res = (((0x1000000 - (*c) * (*c)) >> 12) * res) >> 12;
res = (((0x1000000 - (*data) * (*data)) >> 12) * res) >> 12;

if (res == 0)
return 0;

if (res <= 0x3fff) {
while (res <= 0x3fff) {
b++;
res <<= 2;
}
} else {
if (res > 0x10000)
return 0; /* We're screwed, might as well go out with a bang. :P */

while (res <= 0x3fff) {
b++;
res <<= 2;
}
c++;
data++;
}

if (res > 0)


Loading…
Cancel
Save