diff --git a/autotests/embeddedimagedatatest.cpp b/autotests/embeddedimagedatatest.cpp --- a/autotests/embeddedimagedatatest.cpp +++ b/autotests/embeddedimagedatatest.cpp @@ -55,6 +55,14 @@ { QTest::addColumn("fileName"); + QTest::addRow("aiff") + << QStringLiteral("test.aif") + ; + + QTest::addRow("ape") + << QStringLiteral("test.ape") + ; + QTest::addRow("opus") << QStringLiteral("test.opus") ; @@ -79,6 +87,17 @@ << QStringLiteral("test.mpc") ; + QTest::addRow("speex") + << QStringLiteral("test.spx") + ; + + QTest::addRow("wav") + << QStringLiteral("test.wav") + ; + + QTest::addRow("wavpack") + << QStringLiteral("test.wv") + ; } QTEST_GUILESS_MAIN(EmbeddedImageDataTest) diff --git a/autotests/samplefiles/test.spx b/autotests/samplefiles/test.spx index 0000000000000000000000000000000000000000..0000000000000000000000000000000000000000 GIT binary patch literal 0 Hc$@ #include #include +#include +#include +#include +#include +#include +#include #include #include @@ -60,10 +66,17 @@ QStringLiteral("audio/mpeg3"), QStringLiteral("audio/ogg"), QStringLiteral("audio/opus"), + QStringLiteral("audio/speex"), + QStringLiteral("audio/wav"), + QStringLiteral("audio/x-aiff"), + QStringLiteral("audio/x-ape"), QStringLiteral("audio/x-mpeg"), QStringLiteral("audio/x-musepack"), QStringLiteral("audio/x-opus+ogg"), + QStringLiteral("audio/x-speex"), QStringLiteral("audio/x-vorbis+ogg"), + QStringLiteral("audio/x-wav"), + QStringLiteral("audio/x-wavpack"), }; EmbeddedImageData::EmbeddedImageData() @@ -114,6 +127,21 @@ return getFrontCoverFromID3(mpegFile.ID3v2Tag()); } + } else if (mimeType == QLatin1String("audio/x-aiff")) { + + TagLib::RIFF::AIFF::File aiffFile(&stream, true); + if (aiffFile.hasID3v2Tag()) { + return getFrontCoverFromID3(aiffFile.tag()); + } + + } else if ((mimeType == QLatin1String("audio/wav")) + || (mimeType == QLatin1String("audio/x-wav"))) { + + TagLib::RIFF::WAV::File wavFile(&stream, true); + if (wavFile.hasID3v2Tag()) { + return getFrontCoverFromID3(wavFile.ID3v2Tag()); + } + } else if (mimeType == QLatin1String("audio/mp4")) { TagLib::MP4::File mp4File(&stream, true); @@ -128,6 +156,20 @@ return getFrontCoverFromApe(mpcFile.APETag()); } + } else if (mimeType == QLatin1String("audio/x-ape")) { + + TagLib::APE::File apeFile(&stream, true); + if (apeFile.hasAPETag()) { + return getFrontCoverFromApe(apeFile.APETag()); + } + + } else if (mimeType == QLatin1String("audio/x-wavpack")) { + + TagLib::WavPack::File wavpackFile(&stream, true); + if (wavpackFile.hasAPETag()) { + return getFrontCoverFromApe(wavpackFile.APETag()); + } + } else if (mimeType == QLatin1String("audio/flac")) { TagLib::FLAC::File flacFile(&stream, TagLib::ID3v2::FrameFactory::instance(), true); @@ -140,14 +182,23 @@ if (oggFile.tag()) { return getFrontCoverFromFlacPicture(oggFile.tag()->pictureList()); } + } else if ((mimeType == QLatin1String("audio/opus")) || (mimeType == QLatin1String("audio/x-opus+ogg"))) { TagLib::Ogg::Opus::File opusFile(&stream, true); if (opusFile.tag()) { return getFrontCoverFromFlacPicture(opusFile.tag()->pictureList()); } + + } else if (mimeType == QLatin1String("audio/speex") || mimeType == QLatin1String("audio/x-speex")) { + + TagLib::Ogg::Speex::File speexFile(&stream, true); + if (speexFile.tag()) { + return getFrontCoverFromFlacPicture(speexFile.tag()->pictureList()); + } + } return QByteArray(); }