Various short bugfixes

thomasvs/morituri#139
This commit is contained in:
JoeLametta
2015-11-29 16:25:38 +01:00
parent c29da6cb97
commit 9ade743d63
4 changed files with 25 additions and 6 deletions

View File

@@ -311,16 +311,18 @@ class AccurateRipChecksumTask(ChecksumTask):
self.debug('skipping frame %d', self._discFrameCounter)
return checksum
# self._bytes is updated after do_checksum_buffer
factor = self._bytes / 4 + 1
values = struct.unpack("<%dI" % (len(buf) / 4), buf)
for i, value in enumerate(values):
# self._bytes is updated after do_checksum_buffer
checksum += (self._bytes / 4 + i + 1) * value
checksum &= 0xFFFFFFFF
for value in values:
checksum += factor * value
factor += 1
# offset = self._bytes / 4 + i + 1
# if offset % common.SAMPLES_PER_FRAME == 0:
# print 'frame %d, ends before %d, last value %08x, CRC %08x' % (
# offset / common.SAMPLES_PER_FRAME, offset, value, sum)
checksum &= 0xFFFFFFFF
return checksum

View File

@@ -479,7 +479,7 @@ class Program(log.Loggable):
# gst-python 0.10.15.1 does not handle unicode -> utf8 string
# conversion
# see http://bugzilla.gnome.org/show_bug.cgi?id=584445
if self.metadata and self.metadata.various:
if self.metadata and not self.metadata.various:
ret["album-artist"] = albumArtist.encode('utf-8')
ret[gst.TAG_ARTIST] = trackArtist.encode('utf-8')
ret[gst.TAG_TITLE] = title.encode('utf-8')

View File

@@ -79,7 +79,10 @@ class Image(object, log.Loggable):
# CD's have a standard lead-in time of 2 seconds;
# checksums that use it should add it there
offset = self.cue.table.tracks[0].getIndex(1).relative
if verify.lengths.has_key(0):
offset = verify.lengths[0]
else:
offset = self.cue.table.tracks[0].getIndex(1).relative
tracks = []
@@ -211,6 +214,18 @@ class ImageVerifyTask(log.Loggable, task.MultiSeparateTask):
self._tasks = []
self.lengths = {}
try:
htoa = cue.table.tracks[0].indexes[0]
track = cue.table.tracks[0]
path = image.getRealPath(htoa.path)
assert type(path) is unicode, "%r is not unicode" % path
self.debug('schedule scan of audio length of %r', path)
taskk = AudioLengthTask(path)
self.addTask(taskk)
self._tasks.append((0, track, taskk))
except (KeyError, IndexError):
self.debug('no htoa track')
for trackIndex, track in enumerate(cue.table.tracks):
self.debug('verifying track %d', trackIndex + 1)
index = track.indexes[1]

View File

@@ -134,6 +134,8 @@ class Retag(logcommand.LogCommand):
print 'Not in MusicBrainz database, skipping'
continue
prog.metadata.discid = mbdiscid
# FIXME: this feels like we're poking at internals.
prog.cuePath = arg
prog.result = result.RipResult()