diff --git a/ChangeLog b/ChangeLog index ee1c259..41fba5f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2012-11-27 Thomas Vander Stichele + + * morituri/common/program.py: + * morituri/program/cdparanoia.py: + * morituri/result/result.py: + Track ripping speed for test and encode per-track. + 2012-11-25 Thomas Vander Stichele patch by: mustbenice diff --git a/morituri/common/program.py b/morituri/common/program.py index 049884d..76d9c1d 100644 --- a/morituri/common/program.py +++ b/morituri/common/program.py @@ -476,6 +476,9 @@ class Program(log.Loggable): trackResult.quality = t.quality trackResult.testspeed = t.testspeed trackResult.copyspeed = t.copyspeed + # we want rerips to add cumulatively to the time + trackResult.testduration += t.testduration + trackResult.copyduration += t.copyduration if trackResult.filename != t.path: trackResult.filename = t.path diff --git a/morituri/program/cdparanoia.py b/morituri/program/cdparanoia.py index c7d8462..31ba244 100644 --- a/morituri/program/cdparanoia.py +++ b/morituri/program/cdparanoia.py @@ -205,6 +205,7 @@ class ReadTrackTask(log.Loggable, task.Task): description = "Reading track" quality = None # set at end of reading speed = None + duration = None # in seconds _MAXERROR = 100 # number of errors detected by parser @@ -373,7 +374,8 @@ class ReadTrackTask(log.Loggable, task.Task): self.exception = ReturnCodeError(self._popen.returncode) self.quality = self._parser.getTrackQuality() - self.speed = (offsetLength / 75.0) / (end_time - self._start_time) + self.duration = end_time - self._start_time + self.speed = (offsetLength / 75.0) / self.duration self.stop() return @@ -382,6 +384,7 @@ class ReadTrackTask(log.Loggable, task.Task): class ReadVerifyTrackTask(log.Loggable, task.MultiSeparateTask): """ I am a task that reads and verifies a track using cdparanoia. + I also encode the track. The path where the file is stored can be changed if necessary, for example if the file name is too long. @@ -390,6 +393,12 @@ class ReadVerifyTrackTask(log.Loggable, task.MultiSeparateTask): @ivar checksum: the checksum of the track; set if they match. @ivar testchecksum: the test checksum of the track. @ivar copychecksum: the copy checksum of the track. + @ivar testspeed: the test speed of the track, as a multiple of + track duration. + @ivar copyspeed: the copy speed of the track, as a multiple of + track duration. + @ivar testduration: the test duration of the track, in seconds. + @ivar copyduration: the copy duration of the track, in seconds. @ivar peak: the peak level of the track """ @@ -400,6 +409,8 @@ class ReadVerifyTrackTask(log.Loggable, task.MultiSeparateTask): quality = None testspeed = None copyspeed = None + testduration = None + copyduration = None _tmpwavpath = None _tmppath = None @@ -481,6 +492,8 @@ class ReadVerifyTrackTask(log.Loggable, task.MultiSeparateTask): self.debug('peak: %r', self.peak) self.testspeed = self.tasks[0].speed self.copyspeed = self.tasks[2].speed + self.testduration = self.tasks[0].duration + self.copyduration = self.tasks[2].duration self.testchecksum = c1 = self.tasks[1].checksum self.copychecksum = c2 = self.tasks[3].checksum diff --git a/morituri/result/result.py b/morituri/result/result.py index 73f1809..58bb7e2 100644 --- a/morituri/result/result.py +++ b/morituri/result/result.py @@ -62,6 +62,8 @@ class TrackResult: quality = 0.0 testspeed = 0.0 copyspeed = 0.0 + testduration = 0.0 + copyduration = 0.0 testcrc = None copycrc = None accurip = False # whether it's in the database