mirror of
https://github.com/beetbox/beets.git
synced 2025-12-06 08:39:17 +01:00
fix crasher w/ old APE files (#159)
This commit is contained in:
parent
6b49bb11ae
commit
d4d74dd68b
4 changed files with 13 additions and 4 deletions
1
NEWS
1
NEWS
|
|
@ -41,6 +41,7 @@
|
|||
* Fix a bug where some files would be erroneously interpreted as MP4.
|
||||
* Fix permission bits applied to album art files.
|
||||
* Fix malformed MusicBrainz queries caused by null characters.
|
||||
# Fix a bug with old versions of the Monkey's Audio format.
|
||||
* Retry in more cases when MusicBrainz servers are slow/overloaded.
|
||||
* The old "albumify" plugin for upgrading databases was removed.
|
||||
|
||||
|
|
|
|||
|
|
@ -715,10 +715,14 @@ class MediaFile(object):
|
|||
@property
|
||||
def bitrate(self):
|
||||
if self.type in ('flac', 'ape'):
|
||||
if hasattr(self.mgfile.info, 'bits_per_sample'):
|
||||
# Simulate bitrate for lossless formats.
|
||||
#fixme: The utility of this guess is questionable.
|
||||
return self.mgfile.info.sample_rate * \
|
||||
self.mgfile.info.bits_per_sample
|
||||
else:
|
||||
# Old APE file format.
|
||||
return 0
|
||||
elif self.type == 'wv':
|
||||
# Mutagen doesn't provide enough information.
|
||||
return 0
|
||||
|
|
|
|||
BIN
test/rsrc/oldape.ape
Normal file
BIN
test/rsrc/oldape.ape
Normal file
Binary file not shown.
|
|
@ -63,6 +63,10 @@ class EdgeTest(unittest.TestCase):
|
|||
self.assertEqual(f.disc, 4)
|
||||
self.assertEqual(f.disctotal, 5)
|
||||
|
||||
def test_old_ape_version_bitrate(self):
|
||||
f = beets.mediafile.MediaFile(os.path.join('rsrc', 'oldape.ape'))
|
||||
self.assertEqual(f.bitrate, 0)
|
||||
|
||||
_sc = beets.mediafile._safe_cast
|
||||
class InvalidValueToleranceTest(unittest.TestCase):
|
||||
def test_packed_integer_with_extra_chars(self):
|
||||
|
|
|
|||
Loading…
Reference in a new issue