From 0c164a93e05b8fd0dc293364ee2dff7652322395 Mon Sep 17 00:00:00 2001 From: Adrian Sampson Date: Tue, 11 Nov 2014 10:16:15 -0800 Subject: [PATCH] Use Mutagen MP4 codec reporting Not released yet. See: https://bitbucket.org/lazka/mutagen/commits/2c03ac7019a711c42f7630361fc1eba53ba05a06 --- beets/mediafile.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/beets/mediafile.py b/beets/mediafile.py index 9b50aaa57..ce42621a8 100644 --- a/beets/mediafile.py +++ b/beets/mediafile.py @@ -1340,15 +1340,20 @@ class MediaFile(object): raise FileTypeError(path) elif (type(self.mgfile).__name__ == 'M4A' or type(self.mgfile).__name__ == 'MP4'): - # This hack differentiates AAC and ALAC until we find a more - # deterministic approach. Mutagen only sets the bitrate - # for AAC files. See: - # https://github.com/sampsyo/beets/pull/295 - if hasattr(self.mgfile.info, 'bitrate') and \ - self.mgfile.info.bitrate > 0: - self.type = 'aac' + if hasattr(self.mgfile.info, 'codec'): + if self.mgfile.codec and self.mgfile.codec.startswith('alac'): + self.type = 'alac' + else: + self.type = 'aac' else: - self.type = 'alac' + # This hack differentiates AAC and ALAC on versions of + # Mutagen < 1.26. Once Mutagen > 1.26 is out and + # required by beets, we can remove this. + if hasattr(self.mgfile.info, 'bitrate') and \ + self.mgfile.info.bitrate > 0: + self.type = 'aac' + else: + self.type = 'alac' elif (type(self.mgfile).__name__ == 'ID3' or type(self.mgfile).__name__ == 'MP3'): self.type = 'mp3'