Fix AccurateRip summary reporting
The values stored in variables _inARDatabase and _accuratelyRipped were double incremented when both AR v1 and AR V2 entries were present e/o matched, leading to a wrong calculation and potentially erroneous summary reporting. After this fix, in case of double matches only one is counted against each track.
This commit is contained in:
@@ -116,7 +116,10 @@ class WhipperLogger(result.Logger):
|
|||||||
for t in ripResult.tracks:
|
for t in ripResult.tracks:
|
||||||
if not t.filename:
|
if not t.filename:
|
||||||
continue
|
continue
|
||||||
lines.extend(self.trackLog(t))
|
track_lines, ARDB_entry, ARDB_match = self.trackLog(t)
|
||||||
|
self._inARDatabase += int(ARDB_entry)
|
||||||
|
self._accuratelyRipped += int(ARDB_match)
|
||||||
|
lines.extend(track_lines)
|
||||||
lines.append("")
|
lines.append("")
|
||||||
duration += t.testduration + t.copyduration
|
duration += t.testduration + t.copyduration
|
||||||
|
|
||||||
@@ -204,23 +207,25 @@ class WhipperLogger(result.Logger):
|
|||||||
lines.append(" Copy CRC: %08X" % trackResult.copycrc)
|
lines.append(" Copy CRC: %08X" % trackResult.copycrc)
|
||||||
|
|
||||||
# AccurateRip track status
|
# AccurateRip track status
|
||||||
for v in ('v1', 'v2'):
|
ARDB_entry = 0
|
||||||
if trackResult.AR[v]['DBCRC']:
|
ARDB_match = 0
|
||||||
|
for v in ("v1", "v2"):
|
||||||
|
if trackResult.AR[v]["DBCRC"]:
|
||||||
lines.append(" AccurateRip %s:" % v)
|
lines.append(" AccurateRip %s:" % v)
|
||||||
self._inARDatabase += 1
|
ARDB_entry += 1
|
||||||
if trackResult.AR[v]['CRC'] == trackResult.AR[v]['DBCRC']:
|
if trackResult.AR[v]["CRC"] == trackResult.AR[v]["DBCRC"]:
|
||||||
lines.append(" Result: Found, exact match")
|
lines.append(" Result: Found, exact match")
|
||||||
self._accuratelyRipped += 1
|
ARDB_match += 1
|
||||||
else:
|
else:
|
||||||
lines.append(" Result: Found, NO exact match")
|
lines.append(" Result: Found, NO exact match")
|
||||||
lines.append(
|
lines.append(
|
||||||
" Confidence: %d" % trackResult.AR[v]['DBConfidence']
|
" Confidence: %d" % trackResult.AR[v]["DBConfidence"]
|
||||||
)
|
)
|
||||||
lines.append(
|
lines.append(
|
||||||
" Local CRC: %s" % trackResult.AR[v]['CRC'].upper()
|
" Local CRC: %s" % trackResult.AR[v]["CRC"].upper()
|
||||||
)
|
)
|
||||||
lines.append(
|
lines.append(
|
||||||
" Remote CRC: %s" % trackResult.AR[v]['DBCRC'].upper()
|
" Remote CRC: %s" % trackResult.AR[v]["DBCRC"].upper()
|
||||||
)
|
)
|
||||||
elif trackResult.number != 0:
|
elif trackResult.number != 0:
|
||||||
lines.append(" AccurateRip %s:" % v)
|
lines.append(" AccurateRip %s:" % v)
|
||||||
@@ -234,4 +239,4 @@ class WhipperLogger(result.Logger):
|
|||||||
else:
|
else:
|
||||||
self._errors = True
|
self._errors = True
|
||||||
lines.append(" Status: Error, CRC mismatch")
|
lines.append(" Status: Error, CRC mismatch")
|
||||||
return lines
|
return lines, bool(ARDB_entry), bool(ARDB_match)
|
||||||
|
|||||||
Reference in New Issue
Block a user