Skip to content

Commit fb9f9b5

Browse files
committed
Backed out changeset: 883e51ca8287
1 parent 13899d3 commit fb9f9b5

File tree

3 files changed

+22
-73
lines changed

3 files changed

+22
-73
lines changed

CUETools.Codecs.FLACCL/FLACCLWriter.cs

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1363,14 +1363,7 @@ unsafe void encode_residual(FLACCLTask task, int channelsCount, int iFrame)
13631363
fixed (int* coefs = task.frame.subframes[ch].best.coefs)
13641364
{
13651365
if (Settings.PCM.BitsPerSample > 16)
1366-
{
1367-
if (!lpc.encode_residual_long(task.frame.subframes[ch].best.residual, task.frame.subframes[ch].samples, task.frame.blocksize, task.frame.subframes[ch].best.order, coefs, task.frame.subframes[ch].best.shift))
1368-
{
1369-
task.frame.subframes[ch].best.type = SubframeType.Verbatim;
1370-
task.frame.subframes[ch].best.size = (uint)(task.frame.subframes[ch].obits * task.frame.blocksize);
1371-
return;
1372-
}
1373-
}
1366+
lpc.encode_residual_long(task.frame.subframes[ch].best.residual, task.frame.subframes[ch].samples, task.frame.blocksize, task.frame.subframes[ch].best.order, coefs, task.frame.subframes[ch].best.shift);
13741367
else
13751368
lpc.encode_residual(task.frame.subframes[ch].best.residual, task.frame.subframes[ch].samples, task.frame.blocksize, task.frame.subframes[ch].best.order, coefs, task.frame.subframes[ch].best.shift);
13761369
}

CUETools.Codecs.FLAKE/FlakeWriter.cs

Lines changed: 11 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1156,10 +1156,7 @@ unsafe void postprocess_coefs(FlacFrame frame, FlacSubframe sf, int ch)
11561156
fixed (int* coefs = frame.current.coefs)
11571157
{
11581158
if ((csum << frame.subframes[ch].obits) >= 1UL << 32)
1159-
{
1160-
if (!lpc.encode_residual_long(frame.current.residual, frame.subframes[ch].samples, frame.blocksize, frame.current.order, coefs, frame.current.shift))
1161-
continue;
1162-
}
1159+
lpc.encode_residual_long(frame.current.residual, frame.subframes[ch].samples, frame.blocksize, frame.current.order, coefs, frame.current.shift);
11631160
else
11641161
lpc.encode_residual(frame.current.residual, frame.subframes[ch].samples, frame.blocksize, frame.current.order, coefs, frame.current.shift);
11651162
}
@@ -1277,10 +1274,7 @@ unsafe void encode_residual_lpc_sub(FlacFrame frame, float* lpcs, int iWindow, i
12771274
csum += (ulong)Math.Abs(coefs[i - 1]);
12781275

12791276
if ((csum << frame.subframes[ch].obits) >= 1UL << 32)
1280-
{
1281-
if (!lpc.encode_residual_long(frame.current.residual, frame.subframes[ch].samples, frame.blocksize, frame.current.order, coefs, frame.current.shift))
1282-
continue;
1283-
}
1277+
lpc.encode_residual_long(frame.current.residual, frame.subframes[ch].samples, frame.blocksize, frame.current.order, coefs, frame.current.shift);
12841278
else
12851279
lpc.encode_residual(frame.current.residual, frame.subframes[ch].samples, frame.blocksize, frame.current.order, coefs, frame.current.shift);
12861280

@@ -2276,33 +2270,15 @@ unsafe int output_frame()
22762270

22772271
if (verify != null)
22782272
{
2279-
try
2280-
{
2281-
int decoded = verify.DecodeFrame(frame_buffer, 0, fs);
2282-
if (decoded != fs || verify.Remaining != bs)
2283-
throw new Exception(Properties.Resources.ExceptionValidationFailed);
2284-
fixed (int* s = verifyBuffer, r = verify.Samples)
2285-
{
2286-
for (int ch = 0; ch < channels; ch++)
2287-
if (AudioSamples.MemCmp(s + ch * Flake.MAX_BLOCKSIZE, r + ch * Flake.MAX_BLOCKSIZE, bs))
2288-
throw new Exception(Properties.Resources.ExceptionValidationFailed);
2289-
}
2290-
}
2291-
catch (Exception ex)
2292-
{
2293-
//if (channels == 2)
2294-
//{
2295-
// var sw = new WAVWriter("verify.wav", new WAVWriterSettings(this.Settings.PCM));
2296-
// sw.FinalSampleCount = this.frame.blocksize;
2297-
// var ab = new AudioBuffer(this.Settings.PCM, this.frame.blocksize);
2298-
// ab.Prepare(this.frame.blocksize);
2299-
// fixed (int* abs = ab.Samples, s = verifyBuffer)
2300-
// AudioSamples.Interlace(abs, s, s + Flake.MAX_BLOCKSIZE, this.frame.blocksize);
2301-
// sw.Write(ab);
2302-
// sw.Close();
2303-
//}
2304-
throw ex;
2305-
}
2273+
int decoded = verify.DecodeFrame(frame_buffer, 0, fs);
2274+
if (decoded != fs || verify.Remaining != bs)
2275+
throw new Exception(Properties.Resources.ExceptionValidationFailed);
2276+
fixed (int* s = verifyBuffer, r = verify.Samples)
2277+
{
2278+
for (int ch = 0; ch < channels; ch++)
2279+
if (AudioSamples.MemCmp(s + ch * Flake.MAX_BLOCKSIZE, r + ch * Flake.MAX_BLOCKSIZE, bs))
2280+
throw new Exception(Properties.Resources.ExceptionValidationFailed);
2281+
}
23062282
}
23072283

23082284
if (bs < m_blockSize)

CUETools.Codecs/LPC.cs

Lines changed: 10 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,7 @@ public static unsafe void
693693
}
694694
}
695695

696-
public static unsafe bool
696+
public static unsafe void
697697
encode_residual_long(int* res, int* smp, int n, int order,
698698
int* coefs, int shift)
699699
{
@@ -704,26 +704,21 @@ public static unsafe bool
704704
int* r = res + order;
705705
int c0 = coefs[0];
706706
int c1 = coefs[1];
707-
long overflows = 0L;
708707
switch (order)
709708
{
710709
case 1:
711710
for (int i = n - order; i > 0; i--)
712711
{
713712
long pred = c0 * (long)*(s++);
714-
pred = *s - (pred >> shift);
715-
overflows += (pred ^ (pred >> 63)) >> 30;
716-
*(r++) = (int)pred;
713+
*(r++) = *s - (int)(pred >> shift);
717714
}
718715
break;
719716
case 2:
720717
for (int i = n - order; i > 0; i--)
721718
{
722719
long pred = c1 * (long)*(s++);
723720
pred += c0 * (long)*(s++);
724-
pred = *(s--) - (pred >> shift);
725-
overflows += (pred ^ (pred >> 63)) >> 30;
726-
*(r++) = (int)pred;
721+
*(r++) = *(s--) - (int)(pred >> shift);
727722
}
728723
break;
729724
case 3:
@@ -732,9 +727,7 @@ public static unsafe bool
732727
long pred = coefs[2] * (long)*(s++);
733728
pred += c1 * (long)*(s++);
734729
pred += c0 * (long)*(s++);
735-
pred = *s - (pred >> shift);
736-
overflows += (pred ^ (pred >> 63)) >> 30;
737-
*(r++) = (int)pred;
730+
*(r++) = *s - (int)(pred >> shift);
738731
s -= 2;
739732
}
740733
break;
@@ -745,9 +738,7 @@ public static unsafe bool
745738
pred += coefs[2] * (long)*(s++);
746739
pred += c1 * (long)*(s++);
747740
pred += c0 * (long)*(s++);
748-
pred = *s - (pred >> shift);
749-
overflows += (pred ^ (pred >> 63)) >> 30;
750-
*(r++) = (int)pred;
741+
*(r++) = *s - (int)(pred >> shift);
751742
s -= 3;
752743
}
753744
break;
@@ -759,9 +750,7 @@ public static unsafe bool
759750
pred += coefs[2] * (long)*(s++);
760751
pred += c1 * (long)*(s++);
761752
pred += c0 * (long)*(s++);
762-
pred = *s - (pred >> shift);
763-
overflows += (pred ^ (pred >> 63)) >> 30;
764-
*(r++) = (int)pred;
753+
*(r++) = *s - (int)(pred >> shift);
765754
s -= 4;
766755
}
767756
break;
@@ -774,9 +763,7 @@ public static unsafe bool
774763
pred += coefs[2] * (long)*(s++);
775764
pred += c1 * (long)*(s++);
776765
pred += c0 * (long)*(s++);
777-
pred = *s - (pred >> shift);
778-
overflows += (pred ^ (pred >> 63)) >> 30;
779-
*(r++) = (int)pred;
766+
*(r++) = *s - (int)(pred >> shift);
780767
s -= 5;
781768
}
782769
break;
@@ -790,9 +777,7 @@ public static unsafe bool
790777
pred += coefs[2] * (long)*(s++);
791778
pred += c1 * (long)*(s++);
792779
pred += c0 * (long)*(s++);
793-
pred = *s - (pred >> shift);
794-
overflows += (pred ^ (pred >> 63)) >> 30;
795-
*(r++) = (int)pred;
780+
*(r++) = *s - (int)(pred >> shift);
796781
s -= 6;
797782
}
798783
break;
@@ -807,9 +792,7 @@ public static unsafe bool
807792
pred += coefs[2] * (long)*(s++);
808793
pred += c1 * (long)*(s++);
809794
pred += c0 * (long)*(s++);
810-
pred = *s - (pred >> shift);
811-
overflows += (pred ^ (pred >> 63)) >> 30;
812-
*(r++) = (int)pred;
795+
*(r++) = *s - (int)(pred >> shift);
813796
s -= 7;
814797
}
815798
break;
@@ -830,13 +813,10 @@ public static unsafe bool
830813
pred += coefs[2] * (long)*(s++);
831814
pred += c1 * (long)*(s++);
832815
pred += c0 * (long)*(s++);
833-
pred = *s - (pred >> shift);
834-
overflows += (pred ^ (pred >> 63)) >> 30;
835-
*(r++) = (int)pred;
816+
*(r++) = *s - (int)(pred >> shift);
836817
}
837818
break;
838819
}
839-
return overflows == 0;
840820
}
841821

842822
public static unsafe void

0 commit comments

Comments
 (0)