diff --git a/autotests/samplefiles/test.ape b/autotests/samplefiles/test.ape index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@("fileType"); QTest::addColumn("mimeType"); + QTest::addRow("ape") + << QStringLiteral("ape") + << QStringLiteral("audio/x-ape") + ; + QTest::addRow("musepack") << QStringLiteral("mpc") << QStringLiteral("audio/x-musepack") ; + + QTest::addRow("wavpack") + << QStringLiteral("wv") + << QStringLiteral("audio/x-wavpack") + ; } void TagLibExtractorTest::testMp4() diff --git a/src/extractors/taglibextractor.cpp b/src/extractors/taglibextractor.cpp --- a/src/extractors/taglibextractor.cpp +++ b/src/extractors/taglibextractor.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include @@ -39,6 +40,7 @@ #include #include #include +#include #include #include @@ -744,6 +746,16 @@ if (mpcFile.hasAPETag()) { extractApeTags(mpcFile.APETag(), data); } + } else if (mimeType == QLatin1String("audio/x-ape")) { + TagLib::APE::File apeFile(&stream, true); + if (apeFile.hasAPETag()) { + extractApeTags(apeFile.APETag(), data); + } + } else if (mimeType == QLatin1String("audio/x-wavpack")) { + TagLib::WavPack::File wavpackFile(&stream, true); + if (wavpackFile.hasAPETag()) { + extractApeTags(wavpackFile.APETag(), data); + } } else if (mimeType == QLatin1String("audio/flac")) { TagLib::FLAC::File flacFile(&stream, TagLib::ID3v2::FrameFactory::instance(), true); if (flacFile.hasXiphComment()) {