Browse Source

filter duration: workaround on mutagen bugs

sometimes mutagen cannot determine audio file length. This doesn't lead
to exceptions, but to eventuduration being estimated as 0. This is
now considered an error.
In that case, the audio file is played.
boyska 4 năm trước cách đây
mục cha
commit
76ffb69dbf
1 tập tin đã thay đổi với 3 bổ sung0 xóa
  1. 3 0
      larigira/filters/basic.py

+ 3 - 0
larigira/filters/basic.py

@@ -64,6 +64,9 @@ def percentwait(songs, context, conf, getdur=get_duration):
             continue
             continue
         eventduration += songduration
         eventduration += songduration
 
 
+    if eventduration == 0:
+        # must be an error! mutagen support is not always perfect
+        return True, 'mutagen could not calculate length of %s' % uri
     wait = eventduration * (percentwait / 100.0)
     wait = eventduration * (percentwait / 100.0)
     if remaining > wait:
     if remaining > wait:
         return False, "remaining %d max allowed %d" % (remaining, wait)
         return False, "remaining %d max allowed %d" % (remaining, wait)