From 4e892129407cc2db636e30116c2f80af792fc050 Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Fri, 13 Jun 2014 19:17:51 +0200 Subject: [PATCH] Support .ogv video files --- picard/formats/__init__.py | 2 ++ picard/formats/vorbis.py | 21 ++++++++++++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/picard/formats/__init__.py b/picard/formats/__init__.py index 5a340283e..4a538d353 100644 --- a/picard/formats/__init__.py +++ b/picard/formats/__init__.py @@ -180,6 +180,7 @@ from picard.formats.vorbis import ( OggSpeexFile, OggVorbisFile, OggAudioFile, + OggVideoFile, OggOpusFile, with_opus, ) @@ -190,6 +191,7 @@ register_format(OggVorbisFile) if with_opus: register_format(OggOpusFile) register_format(OggAudioFile) +register_format(OggVideoFile) try: from picard.formats.mp4 import MP4File diff --git a/picard/formats/vorbis.py b/picard/formats/vorbis.py index c78489a1f..2873f6fd5 100644 --- a/picard/formats/vorbis.py +++ b/picard/formats/vorbis.py @@ -290,9 +290,8 @@ class OggOpusFile(VCommentFile): metadata['~format'] = self.NAME -def OggAudioFile(filename): - """Generic Ogg audio file.""" - options = [OggFLACFile, OggSpeexFile, OggVorbisFile] +def _select_ogg_type(filename, options): + """Select the best matching Ogg file type.""" fileobj = file(filename, "rb") results = [] try: @@ -307,5 +306,21 @@ def OggAudioFile(filename): raise mutagen.ogg.error("unknown Ogg audio format") return results[-1][2](filename) + +def OggAudioFile(filename): + """Generic Ogg audio file.""" + options = [OggFLACFile, OggSpeexFile, OggVorbisFile] + return _select_ogg_type(filename, options) + + OggAudioFile.EXTENSIONS = [".oga"] OggAudioFile.NAME = "Ogg Audio" + + +def OggVideoFile(filename): + """Generic Ogg video file.""" + options = [OggTheoraFile] + return _select_ogg_type(filename, options) + +OggVideoFile.EXTENSIONS = [".ogv"] +OggVideoFile.NAME = "Ogg Video"