handle exceptions on verifying empty or half-done tracks

This commit is contained in:
Thomas Vander Stichele
2013-07-22 01:54:00 +02:00
parent d52b008751
commit 697aafc21d

View File

@@ -32,6 +32,8 @@ from morituri.common import common, log, mbngs, cache, path
from morituri.program import cdrdao, cdparanoia from morituri.program import cdrdao, cdparanoia
from morituri.image import image from morituri.image import image
from morituri.extern.task import task, gstreamer
# FIXME: should Program have a runner ? # FIXME: should Program have a runner ?
@@ -522,7 +524,17 @@ class Program(log.Loggable):
t = checksum.CRC32Task(trackResult.filename) t = checksum.CRC32Task(trackResult.filename)
runner.run(t) try:
runner.run(t)
except task.TaskException, e:
if isinstance(e.exception, common.MissingFrames):
self.warning('missing frames for %r' % trackResult.filename)
return False
elif isinstance(e.exception, gstreamer.GstException):
self.warning('GstException %r' % (e.exception, ))
return False
else:
raise
ret = trackResult.testcrc == t.checksum ret = trackResult.testcrc == t.checksum
log.debug('program', log.debug('program',