thomasvs / morituri

For those about to RIP - a Unix CD ripper preferring accuracy over speed
GNU General Public License v3.0
301 stars 42 forks source link

ZeroDivisionError in program/cdparanoia.py's getTrackQuality() #46

Open Freso opened 10 years ago

Freso commented 10 years ago

The output from the ripping session:

MusicBrainz lookup URL http://mm.musicbrainz.org/bare/cdlookup.html?toc=1+1+332955+150&tracks=1&id=hdJUmiZ9Vnnvl_xjfHLFUgpUbd0-
Disc duration: 01:13:57.400, 1 audio tracks

Matching releases:

Artist  : [nature sounds]
Title   : Ocean Waves at Dawn
Duration: 01:13:57.400
URL     : http://musicbrainz.org/release/1e053f42-b001-42bb-98a0-2e4cb49bec47
Release : 1e053f42-b001-42bb-98a0-2e4cb49bec47
Type    : Album

** Message: pygobject_register_sinkfunc is deprecated (GstObject)
Creating output directory [nature sounds] - Ocean Waves at Dawn (1997) [FLAC]
Ripping track 1 of 1: 01. [nature sounds] - Ocean Waves at Dawn.flac
Ripping track 1 of 1 (try 2): 01. [nature sounds] - Ocean Waves at Dawn.flac
Traceback (most recent call last):                 
  File "/usr/lib/python2.7/site-packages/morituri/extern/task/task.py", line 511, in c
    callable(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/morituri/program/cdparanoia.py", line 309, in _read
    self._done()
  File "/usr/lib/python2.7/site-packages/morituri/program/cdparanoia.py", line 383, in _done
    self.quality = self._parser.getTrackQuality()
  File "/usr/lib/python2.7/site-packages/morituri/program/cdparanoia.py", line 199, in getTrackQuality
    return min(frames * 2.0 / reads, 1.0)
ZeroDivisionError: float division by zero
Ripping track 1 of 1 (try 3): 01. [nature sounds] - Ocean Waves at Dawn.flac
Traceback (most recent call last):                 
  File "/usr/lib/python2.7/site-packages/morituri/extern/task/task.py", line 511, in c
    callable(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/morituri/program/cdparanoia.py", line 309, in _read
    self._done()
  File "/usr/lib/python2.7/site-packages/morituri/program/cdparanoia.py", line 383, in _done
    self.quality = self._parser.getTrackQuality()
  File "/usr/lib/python2.7/site-packages/morituri/program/cdparanoia.py", line 199, in getTrackQuality
    return min(frames * 2.0 / reads, 1.0)
ZeroDivisionError: float division by zero
Ripping track 1 of 1 (try 4): 01. [nature sounds] - Ocean Waves at Dawn.flac
Traceback (most recent call last):                 
  File "/usr/lib/python2.7/site-packages/morituri/extern/task/task.py", line 511, in c
    callable(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/morituri/program/cdparanoia.py", line 309, in _read
    self._done()
  File "/usr/lib/python2.7/site-packages/morituri/program/cdparanoia.py", line 383, in _done
    self.quality = self._parser.getTrackQuality()
  File "/usr/lib/python2.7/site-packages/morituri/program/cdparanoia.py", line 199, in getTrackQuality
    return min(frames * 2.0 / reads, 1.0)
ZeroDivisionError: float division by zero
Ripping track 1 of 1 (try 5): 01. [nature sounds] - Ocean Waves at Dawn.flac
Traceback (most recent call last):                 
  File "/usr/lib/python2.7/site-packages/morituri/extern/task/task.py", line 511, in c
    callable(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/morituri/program/cdparanoia.py", line 309, in _read
    self._done()
  File "/usr/lib/python2.7/site-packages/morituri/program/cdparanoia.py", line 383, in _done
    self.quality = self._parser.getTrackQuality()
  File "/usr/lib/python2.7/site-packages/morituri/program/cdparanoia.py", line 199, in getTrackQuality
    return min(frames * 2.0 / reads, 1.0)
ZeroDivisionError: float division by zero
ERROR [15360] "rip"                            rip               sep 29 23:45:44      Giving up on track 1 after 5 times (morituri/rip/cd.py:385)
Giving up on track 1 after 5 times

Perhaps because it only has the one track? I've ripped other one-track albums before though...

tlc commented 10 years ago

I hit one of these too. This is what cdparanoia writes:

$ cdparanoia --stderr-progress --sample-offset=667 --force-cdrom-device /dev/sr0 1[00:00:00.00]-1[00:02:49.66] /tmp/tmpdNf9Mg.morituri.wav
Sending all callbacks to stderr for wrapper script
cdparanoia III release 10.3pre (September 16, 2008)

Time/sector offset goes beyond end of specified track.

Here are some RIP_DEBUG lines before the call.

Doing various tasks separately   0 %            ^MLOG   [26159]                                  default           Dec 20 08:56:44      notifying progress: 0.0 on 'Doing various tasks separately' (morituri/extern/task/task.py:168)
DEBUG [26159]                                  default           Dec 20 08:56:44      MultiSeparateTask.next() (morituri/extern/task/task.py:398)
DEBUG [26159]                                  default           Dec 20 08:56:44      BaseMultiTask.next(): starting task 1 of 6: <morituri.program.cdparanoia.ReadTrackTask object at 0x318fad0> (morituri/extern/task/task.py:341)
Doing various tasks separately   0 %            ^MDEBUG [26159]                                  default           Dec 20 08:56:44      Adding listener <morituri.program.cdparanoia.ReadVerifyTrackTask object at 0x318fa50> (morituri/extern/task/task.py:227)
DEBUG [26159]                                  default           Dec 20 08:56:44      starting (morituri/extern/task/task.py:132)
Reading track 1 of 11 (try 5) (1 of 6) ...   0 %^MLOG   [26159]                                  default           Dec 20 08:56:44      notifying progress: 0.0 on 'Reading track 1 of 11 (try 5) (1 of 6) ...' (morituri/extern/task/task.py:168)
LOG   [26159]                                  default           Dec 20 08:56:44      notifying progress: 0.0 on 'Reading track 1 of 11 (try 5)' (morituri/extern/task/task.py:168)
DEBUG [26159]                                  default           Dec 20 08:56:44      Ripping from 0 to 12741 (inclusive) (morituri/program/cdparanoia.py:274)
DEBUG [26159]                                  default           Dec 20 08:56:44      Starting at track 1, offset 0 (morituri/program/cdparanoia.py:276)DEBUG [26159]                                  default           Dec 20 08:56:44      Stopping at track 1, offset 12741 (morituri/program/cdparanoia.py:278)
DEBUG [26159]                                  default           Dec 20 08:56:44      Running cdparanoia --stderr-progress --sample-offset=667 --force-cdrom-device /dev/sr0 1[00:00:00.00]-1[00:02:49.66] /tmp/tmpP3iNFf.morituri.wav (morituri/program/cdparanoia.py:289)
tlc commented 10 years ago

Full log. http://pastebin.com/kd37km8Q

jmtd commented 9 years ago

I've hit this error with a 25-track CD, attempting to rip track 1. https://gist.github.com/jmtd/41450be5406b175a69b1