Simplify eq()
Originally committed as revision 13278 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
2279dd9e41
commit
be2c232f43
@ -252,37 +252,23 @@ static void dec1(Real144_internal *glob, const int *data, const int *inp,
|
|||||||
|
|
||||||
static int eq(const short *in, int *target)
|
static int eq(const short *in, int *target)
|
||||||
{
|
{
|
||||||
int retval;
|
int retval = 0;
|
||||||
int a;
|
int b, c, i;
|
||||||
int b;
|
|
||||||
int c;
|
|
||||||
unsigned int u;
|
unsigned int u;
|
||||||
const short *sptr;
|
|
||||||
int *ptr1, *ptr2, *ptr3;
|
|
||||||
int *bp1, *bp2;
|
|
||||||
int buffer1[10];
|
int buffer1[10];
|
||||||
int buffer2[10];
|
int buffer2[10];
|
||||||
|
int *bp1 = buffer1;
|
||||||
|
int *bp2 = buffer2;
|
||||||
|
|
||||||
retval = 0;
|
for (i=0; i < 10; i++)
|
||||||
bp1 = buffer1;
|
buffer2[i] = in[i];
|
||||||
bp2 = buffer2;
|
|
||||||
ptr2 = (ptr3 = buffer2) + 9;
|
|
||||||
sptr = in;
|
|
||||||
|
|
||||||
while (ptr2 >= ptr3)
|
u = target[9] = bp2[9];
|
||||||
*(ptr3++) = *(sptr++);
|
|
||||||
|
|
||||||
target += 9;
|
if (u + 0x1000 > 0x1fff)
|
||||||
a = bp2[9];
|
|
||||||
*target = a;
|
|
||||||
|
|
||||||
if (a + 0x1000 > 0x1fff)
|
|
||||||
return 0; /* We're screwed, might as well go out with a bang. :P */
|
return 0; /* We're screwed, might as well go out with a bang. :P */
|
||||||
|
|
||||||
c = 8;
|
for (c=8; c >= 0; c--) {
|
||||||
u = a;
|
|
||||||
|
|
||||||
while (c >= 0) {
|
|
||||||
if (u == 0x1000)
|
if (u == 0x1000)
|
||||||
u++;
|
u++;
|
||||||
|
|
||||||
@ -294,13 +280,10 @@ static int eq(const short *in, int *target)
|
|||||||
if (b == 0)
|
if (b == 0)
|
||||||
b++;
|
b++;
|
||||||
|
|
||||||
ptr2 = bp1;
|
|
||||||
ptr1 = (ptr3 = bp2) + c;
|
|
||||||
|
|
||||||
for (u=0; u<=c; u++)
|
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)
|
if ((u + 0x1000) > 0x1fff)
|
||||||
retval = 1;
|
retval = 1;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user