aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec/ra144.c
diff options
context:
space:
mode:
authorVitor Sessak <vitor1001@gmail.com>2008-05-24 12:33:00 +0000
committerVitor Sessak <vitor1001@gmail.com>2008-05-24 12:33:00 +0000
commitbe2c232f43ba9bad5e989f6c84dc4e081bb79a6d (patch)
tree84d7fff573c7cc646a6fbde0deb8b2a749a6d4bd /libavcodec/ra144.c
parent2279dd9e41ea31ee80545c8eed10d79452628b39 (diff)
downloadffmpeg-be2c232f43ba9bad5e989f6c84dc4e081bb79a6d.tar.gz
Simplify eq()
Originally committed as revision 13278 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/ra144.c')
-rw-r--r--libavcodec/ra144.c39
1 files changed, 11 insertions, 28 deletions
diff --git a/libavcodec/ra144.c b/libavcodec/ra144.c
index 18f304d1e0..5fd2a245dc 100644
--- a/libavcodec/ra144.c
+++ b/libavcodec/ra144.c
@@ -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;