[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