mirror of
https://github.com/claunia/cuetools.net.git
synced 2025-12-16 18:14:25 +00:00
Backed out changeset: 883e51ca8287
This commit is contained in:
@@ -693,7 +693,7 @@ namespace CUETools.Codecs
|
||||
}
|
||||
}
|
||||
|
||||
public static unsafe bool
|
||||
public static unsafe void
|
||||
encode_residual_long(int* res, int* smp, int n, int order,
|
||||
int* coefs, int shift)
|
||||
{
|
||||
@@ -704,16 +704,13 @@ namespace CUETools.Codecs
|
||||
int* r = res + order;
|
||||
int c0 = coefs[0];
|
||||
int c1 = coefs[1];
|
||||
long overflows = 0L;
|
||||
switch (order)
|
||||
{
|
||||
case 1:
|
||||
for (int i = n - order; i > 0; i--)
|
||||
{
|
||||
long pred = c0 * (long)*(s++);
|
||||
pred = *s - (pred >> shift);
|
||||
overflows += (pred ^ (pred >> 63)) >> 30;
|
||||
*(r++) = (int)pred;
|
||||
*(r++) = *s - (int)(pred >> shift);
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
@@ -721,9 +718,7 @@ namespace CUETools.Codecs
|
||||
{
|
||||
long pred = c1 * (long)*(s++);
|
||||
pred += c0 * (long)*(s++);
|
||||
pred = *(s--) - (pred >> shift);
|
||||
overflows += (pred ^ (pred >> 63)) >> 30;
|
||||
*(r++) = (int)pred;
|
||||
*(r++) = *(s--) - (int)(pred >> shift);
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
@@ -732,9 +727,7 @@ namespace CUETools.Codecs
|
||||
long pred = coefs[2] * (long)*(s++);
|
||||
pred += c1 * (long)*(s++);
|
||||
pred += c0 * (long)*(s++);
|
||||
pred = *s - (pred >> shift);
|
||||
overflows += (pred ^ (pred >> 63)) >> 30;
|
||||
*(r++) = (int)pred;
|
||||
*(r++) = *s - (int)(pred >> shift);
|
||||
s -= 2;
|
||||
}
|
||||
break;
|
||||
@@ -745,9 +738,7 @@ namespace CUETools.Codecs
|
||||
pred += coefs[2] * (long)*(s++);
|
||||
pred += c1 * (long)*(s++);
|
||||
pred += c0 * (long)*(s++);
|
||||
pred = *s - (pred >> shift);
|
||||
overflows += (pred ^ (pred >> 63)) >> 30;
|
||||
*(r++) = (int)pred;
|
||||
*(r++) = *s - (int)(pred >> shift);
|
||||
s -= 3;
|
||||
}
|
||||
break;
|
||||
@@ -759,9 +750,7 @@ namespace CUETools.Codecs
|
||||
pred += coefs[2] * (long)*(s++);
|
||||
pred += c1 * (long)*(s++);
|
||||
pred += c0 * (long)*(s++);
|
||||
pred = *s - (pred >> shift);
|
||||
overflows += (pred ^ (pred >> 63)) >> 30;
|
||||
*(r++) = (int)pred;
|
||||
*(r++) = *s - (int)(pred >> shift);
|
||||
s -= 4;
|
||||
}
|
||||
break;
|
||||
@@ -774,9 +763,7 @@ namespace CUETools.Codecs
|
||||
pred += coefs[2] * (long)*(s++);
|
||||
pred += c1 * (long)*(s++);
|
||||
pred += c0 * (long)*(s++);
|
||||
pred = *s - (pred >> shift);
|
||||
overflows += (pred ^ (pred >> 63)) >> 30;
|
||||
*(r++) = (int)pred;
|
||||
*(r++) = *s - (int)(pred >> shift);
|
||||
s -= 5;
|
||||
}
|
||||
break;
|
||||
@@ -790,9 +777,7 @@ namespace CUETools.Codecs
|
||||
pred += coefs[2] * (long)*(s++);
|
||||
pred += c1 * (long)*(s++);
|
||||
pred += c0 * (long)*(s++);
|
||||
pred = *s - (pred >> shift);
|
||||
overflows += (pred ^ (pred >> 63)) >> 30;
|
||||
*(r++) = (int)pred;
|
||||
*(r++) = *s - (int)(pred >> shift);
|
||||
s -= 6;
|
||||
}
|
||||
break;
|
||||
@@ -807,9 +792,7 @@ namespace CUETools.Codecs
|
||||
pred += coefs[2] * (long)*(s++);
|
||||
pred += c1 * (long)*(s++);
|
||||
pred += c0 * (long)*(s++);
|
||||
pred = *s - (pred >> shift);
|
||||
overflows += (pred ^ (pred >> 63)) >> 30;
|
||||
*(r++) = (int)pred;
|
||||
*(r++) = *s - (int)(pred >> shift);
|
||||
s -= 7;
|
||||
}
|
||||
break;
|
||||
@@ -830,13 +813,10 @@ namespace CUETools.Codecs
|
||||
pred += coefs[2] * (long)*(s++);
|
||||
pred += c1 * (long)*(s++);
|
||||
pred += c0 * (long)*(s++);
|
||||
pred = *s - (pred >> shift);
|
||||
overflows += (pred ^ (pred >> 63)) >> 30;
|
||||
*(r++) = (int)pred;
|
||||
*(r++) = *s - (int)(pred >> shift);
|
||||
}
|
||||
break;
|
||||
}
|
||||
return overflows == 0;
|
||||
}
|
||||
|
||||
public static unsafe void
|
||||
|
||||
Reference in New Issue
Block a user