mirror of
https://github.com/claunia/cuetools.net.git
synced 2025-12-16 18:14:25 +00:00
bug 13: CUERipper didn't report track quality
This commit is contained in:
@@ -381,8 +381,7 @@ namespace CUERipper
|
||||
toolStripStatusLabel1.Text = status;
|
||||
toolStripProgressBar1.Value = Math.Max(0, Math.Min(100, (int)(percentTrck * 100)));
|
||||
|
||||
progressBarErrors.Maximum = (int)(Math.Log(e.PassEnd - e.PassStart + 1) * 10);
|
||||
progressBarErrors.Value = Math.Min(progressBarErrors.Maximum, (int)(Math.Log(e.ErrorsCount + 1) * 10));
|
||||
progressBarErrors.Value = Math.Min(progressBarErrors.Maximum, (int)(100 * Math.Log(e.ErrorsCount / 10.0 + 1) / Math.Log((e.PassEnd - e.PassStart) / 10.0 + 1)));
|
||||
progressBarErrors.Enabled = e.Pass >= audioSource.CorrectionQuality;
|
||||
|
||||
progressBarCD.Maximum = (int) audioSource.TOC.AudioLength;
|
||||
@@ -408,7 +407,7 @@ namespace CUERipper
|
||||
cueSheet.CTDB.Submit(
|
||||
(int)cueSheet.ArVerify.WorstConfidence() + 1,
|
||||
audioSource.CorrectionQuality == 0 ? 0 :
|
||||
100 - (int)(7 * Math.Log(audioSource.ErrorsCount + 1)), // ErrorsCount==1 ~= 95, ErrorsCount==max ~= 5;
|
||||
(int)(100 * (1.0 - Math.Log(audioSource.ErrorsCount + 1) / Math.Log(audioSource.TOC.AudioLength + 1))),
|
||||
cueSheet.Metadata.Artist,
|
||||
cueSheet.Metadata.Title,
|
||||
cueSheet.TOC.Barcode);
|
||||
@@ -1376,17 +1375,6 @@ namespace CUERipper
|
||||
tt.FrameOffset = 150 + (int)selectedDriveInfo.drive.TOC[i].Start;
|
||||
entry.Tracks.Add(tt);
|
||||
}
|
||||
/*
|
||||
foreach (CUETrackMetadata t in data.selectedRelease.metadata.Tracks)
|
||||
{
|
||||
Freedb.Track tt = new Freedb.Track();
|
||||
if (t.Artist != "" && t.Artist != entry.Artist)
|
||||
tt.Title = t.Artist + " / " + t.Title;
|
||||
else
|
||||
tt.Title = t.Title;
|
||||
tt.FrameOffset = 150 + (int)selectedDriveInfo.drive.TOC[i++].Start;
|
||||
entry.Tracks.Add(tt);
|
||||
}*/
|
||||
|
||||
FreedbHelper m_freedb = new FreedbHelper();
|
||||
|
||||
|
||||
@@ -83,6 +83,15 @@ namespace CUETools.Processor
|
||||
|
||||
#region EAC
|
||||
|
||||
private static double GetRangeQuality(CUESheet sheet, uint start, uint length)
|
||||
{
|
||||
int errCount = 0;
|
||||
for (uint iSector = start; iSector < start + length; iSector++)
|
||||
if (sheet.CDRipper.Errors[(int)iSector - (int)sheet.TOC[sheet.TOC.FirstAudio][0].Start])
|
||||
errCount++;
|
||||
return 100 * (1.0 - Math.Log(errCount / 5.0 + 1) / Math.Log(length / 5.0 + 1));
|
||||
}
|
||||
|
||||
public static string GetExactAudioCopyLog(CUESheet sheet)
|
||||
{
|
||||
StringWriter logWriter = new StringWriter(CultureInfo.InvariantCulture);
|
||||
@@ -149,7 +158,7 @@ namespace CUETools.Processor
|
||||
|
||||
logWriter.WriteLine();
|
||||
logWriter.WriteLine(" Peak level {0:F1} %", (sheet.ArVerify.PeakLevel(track + 1) * 1000 / 65534) * 0.1);
|
||||
logWriter.WriteLine(" Track quality 100.0 %");
|
||||
logWriter.WriteLine(" Track quality {0:F1} %", GetRangeQuality(sheet, sheet.TOC[track + sheet.TOC.FirstAudio].Start, sheet.TOC[track + sheet.TOC.FirstAudio].Length));
|
||||
if (sheet.ArTestVerify != null)
|
||||
logWriter.WriteLine(" Test CRC {0:X8}", sheet.ArTestVerify.CRC32(track + 1));
|
||||
logWriter.WriteLine(" Copy CRC {0:X8}", sheet.ArVerify.CRC32(track + 1));
|
||||
@@ -181,7 +190,7 @@ namespace CUETools.Processor
|
||||
wereErrors = sheet.PrintErrors(logWriter, sheet.TOC[sheet.TOC.FirstAudio][0].Start, sheet.TOC.AudioLength);
|
||||
logWriter.WriteLine();
|
||||
logWriter.WriteLine(" Peak level {0:F1} %", (sheet.ArVerify.PeakLevel() * 1000 / 65535) * 0.1);
|
||||
logWriter.WriteLine(" Range quality 100.0 %");
|
||||
logWriter.WriteLine(" Range quality {0:F1} %", GetRangeQuality(sheet, sheet.TOC[sheet.TOC.FirstAudio][0].Start, sheet.TOC.AudioLength));
|
||||
if (sheet.ArTestVerify != null)
|
||||
logWriter.WriteLine(" Test CRC {0:X8}", sheet.ArTestVerify.CRC32(0));
|
||||
logWriter.WriteLine(" Copy CRC {0:X8}", sheet.ArVerify.CRC32(0));
|
||||
|
||||
Reference in New Issue
Block a user