From 1332d44ff6d5b769d21a63c156e501f735e5ca5b Mon Sep 17 00:00:00 2001 From: Urs Fleisch Date: Mon, 21 Dec 2020 15:41:57 +0100 Subject: [PATCH] WAV: Test properties of file with WAVE_FORMAT_EXTENSIBLE uint8we.wav: http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/Samples/AFsp/M1F1-uint8WE-AFsp.wav --- tests/data/uint8we.wav | Bin 0 -> 47240 bytes tests/test_wav.cpp | 15 +++++++++++++++ 2 files changed, 15 insertions(+) create mode 100644 tests/data/uint8we.wav diff --git a/tests/data/uint8we.wav b/tests/data/uint8we.wav new file mode 100644 index 0000000000000000000000000000000000000000..9623db2291a78e96fadbeeb7ca7e58d2daf89688 GIT binary patch literal 47240 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%0D$ezK;h2C#Esef zO7FuG&_6Ie(VboH5HhAG)YwgC+$$n%As<06>FO@69ap_`>lnDE{zl59)V5xocIu8O z5!1z8TOtLd|H7KFa6}DGBzCt40Vd%~;r7Yyugvr2JTDZpHi755%MtLV^ zy%OH=w7Nw&Ncch4TY@?D>Zxj;{HshJe$<# zh&0YOx|6I(hpk6;?8q`j+ud4wNv>gwV~qCDVSMCsXsm#4NqHG^YYa85$0YeM8fyYE zXVgOZ*vS@qHI>VV^99_XMXe2$a!V`QraMm(ZPh*@Cq^F0)Bw8aR{>qzT?weQ#oPL^ z#=0IqN>0dlEs2gg)88V7Db??GYS60sB=noHi@?2>y3m)>Bw*Jq#CULwc~>}P#(j0t zMp<-BN}C#cW48Vhaw_b7JW*}4haR-oVljfP&QU5&-gZZ*y)s%Ozw1-2jgcGak4S3h z_=skzizBXTyg|%s=rR9<1_}<;drVCd4t=Xs#!(uf!S_)EXOcR$C!Zrmw1-~PNC{Q` z)yMWiiYT8ULG~e9wFmatM?KFe!F7yg9~%z*>*$FsTC3K+u1YwUDeI0SwOAyUN0NKU zpS9$+{gl^U5mD2^+;ds&7P_LwOo_eVTG6IwHihH#4~2n7144bx+Gh6_4|Jzz^l(?U1Zo8cXeYAAJI(8*UVlRAw5sP`RA&a~ z6}79qv@Q7?(f=_RIp?Z5wN#WM$FjDM)`KN&E!v8ng-uY8+`4b>Rvj=t-QnvT?|O() zLS;^9S`O|fSGR;b)IAI9qNbtiC$?M9dP-3}ht%WE5o_vuL0fLpaYj`))$3N;75ilT z&^6K}D5)k;0+d4O7^9+YF{}dhsUtDuR(?AZX?KjEr*~MikM*1{JXhqj!j#6)ZMLW` z()RPAcCK3q%El-Nze$WDhH+oFM5MO@Pv&Q}pw?FQ!{!KmRBP@SZF`xF zv0Xpcyp+PBFGGUTo;%<=A2}{!hnuvq4|S_bob5Pg*lN7@yLvX2_qEi9_Kn^OCn#LY zQH{M6E9j|XL@GJ@Tv?101GJm1DJ{cps9Tj&d(KK{+uiFT->EZdzc+epZv%tS_*okH zj=|VF9pgs%ulpX_*4Ao_zsldQ@-}E4Sl4nDZ3e|{+1c4RniAoBtleslwPEb5R1CYh zt`qIoW8-Zui$U}@-N>p+DsuuA;Ve+v9j!ZCnfwwd}19nq+1AeG~w6J ztU>X*-yvUhyCJFjUF7w;wtbc3Z@277i`h(?2d62RC{s&SJ(hynF_%P{=y$Xq?;X!! zr&?NF5jsFkC!ZZ-p?8#HWkBs1EjvF5rH+#b!M3B_m?>?y?sqNa)(HrX4j(b5tQnSg z4JmM!dNs{#zn0T|>?hid`aTD}e|^tmW{_ihZClS-jufvNLdc5!jdr81?brOSTaGan zeYbTVA>q+mA=Fpk9eq@{zrEHIbPHNpqt?6jJ6e`r(Qb{ea#{DgZuh=?)!5f9M}MQ; zdhQe-@vd9mw_CTYL`KWeuGUJe(dr)8do7TZ8d;B(~L&om&xNdiEq3v((tt{kryjy!Vs}7<;UhC+mCFvIW>LWx8%p>E2%{kLSAe`nwvguU~Dm#`=Dl`h7r; z8d0U+~2&;Z%h7`0>7oeZz=G%K!Jyko2Nf~ z@ZiDkeWQ8$$-~y8uYc|D{m$?F?%(~L|Kjid?(cl z^HJmLUpsjC(Zj=k@cX~_PygXN@BH3_)5gh@#>1npf9>~APW!*t{^Z%ogTs^dC(YAG z4-XzSnqU9gH{SW$H@@}Y!8_ml_IKW)m2dvzZ~T*Q{{FZAoBx#ezp0&Xe)}8W`49Ph S5AvJ8{|DdskND>8w*Nm^KnY*~ literal 0 HcmV?d00001 diff --git a/tests/test_wav.cpp b/tests/test_wav.cpp index fd0c04f7..e94864ba 100644 --- a/tests/test_wav.cpp +++ b/tests/test_wav.cpp @@ -52,6 +52,7 @@ class TestWAV : public CppUnit::TestFixture CPPUNIT_TEST(testFuzzedFile2); CPPUNIT_TEST(testStripAndProperties); CPPUNIT_TEST(testPCMWithFactChunk); + CPPUNIT_TEST(testWaveFormatExtensible); CPPUNIT_TEST_SUITE_END(); public: @@ -305,6 +306,20 @@ public: CPPUNIT_ASSERT_EQUAL(1, f.audioProperties()->format()); } + void testWaveFormatExtensible() + { + RIFF::WAV::File f(TEST_FILE_PATH_C("uint8we.wav")); + CPPUNIT_ASSERT(f.audioProperties()); + CPPUNIT_ASSERT_EQUAL(2, f.audioProperties()->lengthInSeconds()); + CPPUNIT_ASSERT_EQUAL(2937, f.audioProperties()->lengthInMilliseconds()); + CPPUNIT_ASSERT_EQUAL(128, f.audioProperties()->bitrate()); + CPPUNIT_ASSERT_EQUAL(2, f.audioProperties()->channels()); + CPPUNIT_ASSERT_EQUAL(8000, f.audioProperties()->sampleRate()); + CPPUNIT_ASSERT_EQUAL(8, f.audioProperties()->bitsPerSample()); + CPPUNIT_ASSERT_EQUAL(23493U, f.audioProperties()->sampleFrames()); + CPPUNIT_ASSERT_EQUAL(1, f.audioProperties()->format()); + } + }; CPPUNIT_TEST_SUITE_REGISTRATION(TestWAV);