Browse Source

Simplify eq()

Originally committed as revision 13278 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Vitor Sessak 17 years ago
parent
commit
be2c232f43
1 changed files with 11 additions and 28 deletions
  1. +11
    -28
      libavcodec/ra144.c

+ 11
- 28
libavcodec/ra144.c View File

@@ -252,37 +252,23 @@ static void dec1(Real144_internal *glob, const int *data, const int *inp,

static int eq(const short *in, int *target)
{
int retval;
int a;
int b;
int c;
int retval = 0;
int b, c, i;
unsigned int u;
const short *sptr;
int *ptr1, *ptr2, *ptr3;
int *bp1, *bp2;
int buffer1[10];
int buffer2[10];
int *bp1 = buffer1;
int *bp2 = buffer2;

retval = 0;
bp1 = buffer1;
bp2 = buffer2;
ptr2 = (ptr3 = buffer2) + 9;
sptr = in;

while (ptr2 >= ptr3)
*(ptr3++) = *(sptr++);
for (i=0; i < 10; i++)
buffer2[i] = in[i];

target += 9;
a = bp2[9];
*target = a;
u = target[9] = bp2[9];

if (a + 0x1000 > 0x1fff)
if (u + 0x1000 > 0x1fff)
return 0; /* We're screwed, might as well go out with a bang. :P */

c = 8;
u = a;

while (c >= 0) {
for (c=8; c >= 0; c--) {
if (u == 0x1000)
u++;

@@ -294,13 +280,10 @@ static int eq(const short *in, int *target)
if (b == 0)
b++;

ptr2 = bp1;
ptr1 = (ptr3 = bp2) + c;

for (u=0; u<=c; u++)
*(ptr2++) = ((*(ptr3++) - (((*target) * (*(ptr1--))) >> 12)) * (0x1000000 / b)) >> 12;
bp1[u] = ((bp2[u] - ((target[c+1] * bp2[c-u]) >> 12)) * (0x1000000 / b)) >> 12;

*(--target) = u = bp1[(c--)];
target[c] = u = bp1[c];

if ((u + 0x1000) > 0x1fff)
retval = 1;


Loading…
Cancel
Save