[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kfilemetadata] src/extractors: Add support for opus files in TagLibExtractor
From:       Juan Palacios <jpalaciosdev () gmail ! com>
Date:       2015-01-31 19:47:08
Message-ID: E1YHe0a-00012a-W4 () scm ! kde ! org
[Download RAW message or body]

Git commit 59a8813fa5710ef5f572c6590e42b8bc08c4a766 by Juan Palacios.
Committed on 31/01/2015 at 20:41.
Pushed by jpalacios into branch 'master'.

Add support for opus files in TagLibExtractor

REVIEW: 122324

M  +14   -2    src/extractors/taglibextractor.cpp

http://commits.kde.org/kfilemetadata/59a8813fa5710ef5f572c6590e42b8bc08c4a766

diff --git a/src/extractors/taglibextractor.cpp b/src/extractors/taglibextractor.cpp
index 7d78756..163bea5 100644
--- a/src/extractors/taglibextractor.cpp
+++ b/src/extractors/taglibextractor.cpp
@@ -32,6 +32,7 @@
 #include <taglib.h>
 #include <tag.h>
 #include <vorbisfile.h>
+#include <opusfile.h>
 #include <xiphcomment.h>
 
 #include <QDateTime>
@@ -46,7 +47,7 @@ TagLibExtractor::TagLibExtractor(QObject* parent)
 QStringList TagLibExtractor::mimetypes() const
 {
     QStringList types;
-    // MP3 FLAC, MPC, Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.
+    // MP3, FLAC, Vorbis, Opus,  MPC, Speex, WavPack TrueAudio, WAV, AIFF, MP4 and ASF files.
     // MP3
     types << QStringLiteral("audio/mpeg");
     types << QStringLiteral("audio/mpeg3"); types << QStringLiteral("audio/x-mpeg");
@@ -57,9 +58,12 @@ QStringList TagLibExtractor::mimetypes() const
     // MPC
     types << QStringLiteral("audio/x-musepack");
 
-    //OGG
+    // Vorbis
     types << QStringLiteral("audio/ogg"); types << QStringLiteral("audio/x-vorbis+ogg");
 
+    // Opus
+    types << QStringLiteral("audio/opus"); types << QStringLiteral("audio/x-opus+ogg");
+
     // WAV
     types << QStringLiteral("audio/wav");
 
@@ -175,6 +179,14 @@ void TagLibExtractor::extract(ExtractionResult* result)
             }
         }
 
+        // Opus files.
+        if (mimeType == "audio/opus" || mimeType == "audio/x-opus+ogg") {
+            TagLib::Ogg::Opus::File opusFile(fileUrl.toUtf8().data(), true);
+            if (opusFile.tag() && !opusFile.tag()->isEmpty()) {
+                lstOgg = opusFile.tag()->fieldListMap();
+            }
+        }
+
         // Handling OGG container tags.
         if (!lstOgg.isEmpty()) {
             TagLib::Ogg::FieldListMap::ConstIterator itOgg;

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic