diff --git a/autotests/samplefiles/test.aif b/autotests/samplefiles/test.aif index f564bb834ec866a28a20f86a31b6b93bcde8e049..3230ceecd1723fdbca9360295c03e2c90ffbe656 GIT binary patch literal 10796 zc%1E8Yitx%6h8CV_g1=X!BQ5wEv*HDWnTr_NMO6&EsO1T*_}f5hq!HrWof%DyHlVB z3?Pp}#6W!^iAlj1`U_B0FfoFN3W-S-74VN05j4htPb4PmxifcpB*Z8`{B^(0z30ri zXU^R3-gEc-m%>mT)Qc~%b!50p<;FZze+tVYb z6!5n+<6Te;96+f8#(9=&pdlS!6bZOcH(>Lnm1IVdd`vZF$AV0CgSKqxc~jO4Qe7{l>E zNHjGDARl#NO<^nHbmS8RScz={)gQ$+g%ebrOsbIAbkdSrL{)CaRynBYpI~B>~{C9A~=K+d1u;$H>|~MQdlH zc4L;r)1r=&9SN(xIuOX3qCuc`^1+En?R`ASFzz~kJ!t#~d6KZ24=yd_(|eoMouX@m zh6!jT-1nnC5p@gd@A6u#sdNpBsr;!?5BXJEwvcNxmB&sCs-1xFwov;FD$A+7K&3C{ z4~0+$TVsKSn^usp5@<&1Z^~LiBA2yB;nu8$n=&vbvtNN9jC#F6uQM7929wEXwie}C zEf(weg2FLH6H7`bO)Rn79TnA8j`Hb~?e;0NrcTFMc)g`nwR2{>@2mEB-6RNSGMTIv zYjIv)vAfJ(=Kjyfz6UlVuCGzx%7M3Wf{n`_hfCeCT z^32(Dqu-qW_QH1;FMa>Rm7jn4^|#;uxccWc!i&T0%i*@XY{-ijML{$WUL3!QIM_s8 znM+^bTWE-{C@gocHx||J+;iZlX|gAJd2D-n#5}ITJ6d^#P*a)xJ7OE|h}m^wH+Y=` ztAHocCfHyuoa#!~oO);D5N&M}AyMBQ23;dOovcho!c*HWa1gzf$h&jt?Z_$<&fK zA-;sDaIdG@<8gG>Q%C#l9Q)*W7r4;RL%k;5>ZPRP9bHyuX literal 9310 zc%1FoL2AN47zNVweUSSZyM2I8ZxbQ4JW>@`f=LBy1 zK6vEMpP5|XE@OGC$g#-#aK{DtU|bp=n&}p{r7EVSqbe z=n>C)-}uw5KS#iFX;S%e4oh5!h=_=Yh=_=Yh=_=Yh=}MWMLHP)(OI6+wS$j4TiEfn z)0h0#`t~DBWPXyU&hL)is`q&~p!S0w4mn2qK OCj8*lwVeYI{aZi3Fy?Cj diff --git a/autotests/samplefiles/test.mp3 b/autotests/samplefiles/test.mp3 index 39bcaabbbee0d3bf0cd7782351c2b8ec63570948..8c0588086bef7f9ceccbb3bdb6ddb5cb64f6ce0a GIT binary patch literal 11211 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 MBLCB%{tM;*02xnCA^-pY literal 11211 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 diff --git a/autotests/samplefiles/test.wav b/autotests/samplefiles/test.wav index abf71b2afc670f9baf5c177afcdde011a35a2ba5..ab5ae8f7cf54d2824753cecac5da6af446899d3b GIT binary patch literal 10838 zc%1E8du&rx7(chS?`^WOfnyBT4RAnktd9X(B-oX16!$3W9Sr{vyY*5ETQ}Mcm=P<; zV-hhiUr1sye4>8=iV7x19-=~GGDUg#j}s9z#(+;WCiOe_p2FDL?%v+6TMXZF?)mQ5 z-}#;IJLfz1oO`o+du3(qOoWzMmfBXf2KAW;AqxKP&qrLLkQ%vNLDxCZA0IUm5`+UBB-9=QB;ph* zSw!!i(gs9u>xAQzb`l=_$GCVh@IX5FZgd?Yk}gtDUDDblRbo02?>HgiBgOyV02kf8 zAzdEy!W?~99r8ex;;|XN?h<8A=uDW<#wv`G( zwEjnQU_-<4MRKU7!d`F^?J{;_fwaiJ(4@C(5w2+jlD&YjGe%I9P#ABpg=HKz1L!I! z7Jtwi2r`!H3IedSGuPF1Plv+#JjmMC+RFNZOuh91u*jeo7;9ZEX;H=c{H(=c zw<4rC0r%ckmxrCbx}EhPI>-is#jD#rD11KrEy`S6X|F^SMWOxhhr)eyj%|Z?CAeyz ziPX?kjmA(iBnPd!%7!vQ$5tPdTuOl`sMkT6Nc6{`Os8m0$4+I*cpVq-b~#sXgEFm) z*FT5LX#m!;8#)5|QnZL*Bef3g-OMvL!sR8RKMa?mE}q$q$8(p8^RUEdETMPFP&VkR z;72*p9|fJ-&0{F+QMZUpQ+@Uf%S%GiHGoW^;Z~ z+5CCN`-)9wBPO9V8cljydQL`0jKg-E8OXdM+kiSU0CDJV`z z1US{@3Z+V|(WU|5Fw7Q3(=s`&P{<)SsEv3j$aRXb1qO>UYl%x$xHj9kY4<+$l!}AL z#?|*;n`&zEZ`NqX-<>ldciKHg(`U>ym(H0xudLj<&{kQs$iCRgG%Q`#xctFpH@nia z%DXxc>{z#cL+2w;Y}vYPd)JdYx}SOWx#wTl^Wxr@UwQSl*WcLx=39r}e&_JJ@4bKI z=)vNeSPlyg^PXPUHbm=4_B`K_|x@YfBXH9KmWS%_dhr;3Z^e2 zQRC7{suqjhKjI&9uWyA52fm`6b*({$Vw1^4Q2EhNSVi}m0H$|WM5hb- jUCnE5(#y73CJ&_50vfs!hmQ*0Qw1byzEt}~u&9c}^ohjpcVa6}>LF|NkKgC2ZjPN)AGOFmQAW^u4G58ik_Ekc(mDieZQVXvCS3nC&LsJS zwD?x9B*M8+vo4yAQ_%)sN+%GP6n`LrQ-@a?a^b+N-c?Hzs=$5Y&z&u^RZeKNvBD^q zI`OE8_h^6^U;(bj{EkoBsYcK0JZf4`tFkhSRY$p8I7&90-lXNI*Z-V4hF+=EdvM("fileType"); QTest::addColumn("mimeType"); + QTest::addRow("aiff") + << QStringLiteral("aif") + << QStringLiteral("audio/x-aiff") + ; + QTest::addRow("mp3") << QStringLiteral("mp3") << QStringLiteral("audio/mpeg") ; + + QTest::addRow("wav") + << QStringLiteral("wav") + << QStringLiteral("audio/wav") + ; } void TagLibExtractorTest::testApe() diff --git a/src/extractors/taglibextractor.cpp b/src/extractors/taglibextractor.cpp --- a/src/extractors/taglibextractor.cpp +++ b/src/extractors/taglibextractor.cpp @@ -816,6 +816,13 @@ if (mpegFile.hasID3v2Tag()) { extractId3Tags(mpegFile.ID3v2Tag(), data); } + } else if ((mimeType == QLatin1String("audio/x-aiff")) || (mimeType == QLatin1String("audio/wav"))) { + /* For some reason, TagLib::RIFF::AIFF::File and TagLib::RIFF::WAV::File tag() return + * only an invalid pointer. Use the dynamic_cast instead. */ + TagLib::ID3v2::Tag* ID3v2Tag = dynamic_cast(tags); + if (ID3v2Tag) { + extractId3Tags(ID3v2Tag, data); + } } else if (mimeType == QLatin1String("audio/mp4")) { TagLib::MP4::File mp4File(&stream, true); if (mp4File.hasMP4Tag()) {