PICARD-1187: Add DSF file support

This commit is contained in:
Laurent Monin
2018-02-09 16:39:26 +01:00
parent 9013dc1a23
commit 374849faef
3 changed files with 33 additions and 0 deletions

View File

@@ -86,11 +86,13 @@ def open_(filename):
from picard.formats.id3 import (
AiffFile,
DSFFile,
MP3File,
TrueAudioFile,
)
if AiffFile:
register_format(AiffFile)
register_format(DSFFile)
register_format(MP3File)
register_format(TrueAudioFile)

View File

@@ -18,6 +18,7 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
import mutagen.apev2
import mutagen.dsf
import mutagen.mp3
import mutagen.trueaudio
try:
@@ -595,6 +596,36 @@ class TrueAudioFile(ID3File):
metadata['~format'] = self.NAME
class DSFFile(ID3File):
"""DSF file."""
EXTENSIONS = [".dsf", '.dff']
NAME = "DSF"
_File = mutagen.dsf.DSF
def _get_file(self, filename):
return mutagen.dsf.DSF(filename)
def _info(self, metadata, file):
super()._info(metadata, file)
metadata['~format'] = self.NAME
def _get_tags(self, filename):
file = self._get_file(filename)
if file.tags is None:
file.add_tags()
return file.tags
def _save_tags(self, tags, filename):
if config.setting['write_id3v23']:
tags.update_to_v23()
separator = config.setting['id3v23_join_with']
tags.save(filename, v2_version=3, v23_sep=separator)
else:
tags.update_to_v24()
tags.save(filename, v2_version=4)
if mutagen.aiff:
class AiffFile(ID3File):

BIN
test/data/test.dsf Normal file

Binary file not shown.