#!/usr/bin/perl # based on fl8.mpg # http://bmrc.berkeley.edu/ftp/pub/multimedia/mpeg/mpeg2/conformance-bitstreams/audio/mpeg1/compliance/ use strict; use integer; my $n; use Test::More tests => ($n = 49) * 8 + 2; BEGIN { use_ok("MPEG::Audio::Frame") }; for (1 .. $n){ isa_ok(my $frame = MPEG::Audio::Frame->read(*DATA), "MPEG::Audio::Frame", "frame $_"); ok($frame->mpeg1, "frame is MPEG1"); ok($frame->layer1, "frame is layer I"); ok(!$frame->has_crc, "frame doesn't have CRC"); ok(!$frame->broken, "frame isn't broken"); is($frame->bitrate, 384, "bitrate"); is($frame->sample, 44100, "sample rate"); ok($frame->stereo, "stereo"); } is(MPEG::Audio::Frame->read(*DATA), undef, "nothing else in the file"); __DATA__ ݙwwwffUfDU3D3""<ں _`ڿz@{}wmXڠt]gh\..-ÇڵfUڀ )ڂ`q#>r"Dsv"fmڵWBг 5{yhP ;"$xډ.ڶڈO}e.I9Bwj(nۿǣ(*ڈ0FÎrY@RT?ڗv]""!Bt!{qwm[o]yy)';ڽ$K,QC 0 1DݵWMNihڛn}k^9wfpکa0 t4ڢ9$ڐ@ڍkڢ*m@]^eeysڧ71RS6WkwzU. =k[JB[U9|qڝipڕ*(ږ]vX:{چdͪ9sZU#ڑpP[/{4vd\ڟ8qa IJX9fCjqHxGkm<{ڪ PfUUUUDDDDDD33""0ھھ 4mٲlTTڊ)$sڣchچWڶ?hڰ/^ڽÆQGmڷ΄-g9wws$fH}xd8 Xag:1ffIOI-ZځdHڇm )G:R{dFWaNڗ xںvێ7ڭc'9͌mfͭzn S&I(aus1sgvTgڙ3*duaښhAڔ2sUI%kWڲ`ɖWچ{ַsڔV%Hٖej ڊ&u9c!BsڈmFTڻwsڞxaqe9kcvdڛR5`ϡڟd:Dێ9eq9g:QwڙnEfUUUUDDDDDD33""4Qھھ3eڄamukB"e&Rxڤ!%Daiڨ qIkVڸAkfڈEQsH"yys)Δڢ[mGڹsrڞyeYji{FZiZ Xڱ'FLV$kW{!9ڼs~o1eu){ QfIG[`j~ڦY41{"J?KڕWU* qƚ%)Rڜ'vdRAdcږǎک}uv1ڌa!Fu&Lex'r۞vڎ9Jsڄ#wmڵ&Mg-xy^(isڭc$ItYh˧ڗN\UVuaڌ^:Rc%'xPfUUDDDDD3333""Zc\qqڎ:%'9{vfPڈ݈wfUDDDDD3333""M4߾ھھ5otL0c#ڂ RڭX9!!ڴk]ȹڜsPnjڌcffwm~ڿvZlڴ\ryɳhkcIZ"m[ VwwJI#R1sچgxV[/&MlUb6hAs9!"Dw|FvvlRQfwڙI%t:/sqiť,YZڶRbdIR{rvǏڄww.i)I! wxډW毭_[d-qHyRJc"!ڙVD3:g} (t:XbfڙUUmڵ{4i?ff7c!AsڢmbGOڽfTکI)HxڈwffUUDDDDDD33""4iھھ爐RG0ۆ@yیZBssWvU#ݧ<~~\u9sڧ61fm`08)iڧǾ#wvUf|ځ~ ͌GffZM)2U秨Pڗ!uViURw8Sښ||ڇ i1AfnEe"?+Xѡ}ڄ'79ڭ#ڗvVg3G9̂pÆڪ:sskfwEY,ڇ/BhEnܹڞxkT9ڌTڄUڄzڴڐ)eYg9k! JRwwI`0ڸ|yړ&Luׄ!A'6hVVڂ5k1zI{wnE@fDUUUEDDDDD33""0ھھzښځڂPbRS4*vvL*LdI#%7:scIݶTEX%IxAaZڊ @4Pvڠڳ0ڭJ\AmZ]b ē2fsڇHE)=d֪ڳ6hГ 4iڵƹW\Q6ZAΔڝۑUWnv"ER]E& kNȪ͛>6BRQo^ڌThچU" 2ڼWږyڥO{ZֹuTD*ھ}-JJږ=ǯ|0ڮ9"KT6~"E6 ADuڍڤ-o{j(@p |N8ڶ#Ōfm%PfUUUUEDDDDD33""4Qھھb Xژ[nm rT܊ڥ,kzڐ,,ںQES{F1ZU[IU2efMRڛh[BmUX 2ړrMׯ^צL\ں /JRZ׾Um%Vlڍ+ޭڝujڪ9{, ګ DŮE: 91k\Aeڶ]:ڪ^\6uiHĥ=s7"Ǐ{A_ +$ڮ9xRUBQڔuڗ (n%3F/|c2܀BPSl<0֥ڞsIUګY`čWzqeq$srړ3mڪc$2ʢI$ڭX͌Um%PUE33UUUUUDDD33""E ?ھھツL ڗ2.9 - .t!*ڻڲYOUwmy}B1Rڝnڟ}ړ;&wڊxDDC M6Q.N6<{ȹrOٕdڑ祕稢ZhڄWڈV/ڬ_ s$8.9-k4Cm4uBJtBچhڙeڢ{ھ"!(Nڦ0aJ! 3uڪ,,|k$ښLJ8ڔ| jeU(k':fڙnEqD"<0uSU622̲̳o{;I"uIUf}Y]xYiJs{YIa7793DA4﨤 B -ȭ#J~1ڟ}E$ڒ(sviPUwڈ33DUUEDDDD33"ニ mھھハ% v1wڙ{#B cڼCjڰ[{Uڦq[JLHѣWjcSD+pMA$bc-jv8߿ڎ#Wfc8Iڭ7ڊ)$-l!ڧQ,KڧN)ړ̞ڤQDښpA4ֹ"&[VXڟuH;aԗYVZ)1dDCk,R0ߛ PR#T0:1ڈmkڻx: pfڦ ڎ7};5ڬ-ڎ0a|Uګ4 `IږWeڗ]jSޫU"3Fڒl\"ભڱƢڑsڝs]PUfU""3DUUUDD43""0eھe._`xښmkq9JsVU6ڮڻO?ڰFO;9ڪRbyEOYjyڈkiE!Jc H;.]ڬ >mL(ڥ5ډVڥJڥUʫaڅ)7ڞ{ڛ*ڊQڱ0A ڂ@گڦmڣ.0\b$$nH ]y$kQډ" کPDzm$Q$ڔέb"W]njmM9ږeI٘ar25ڭk33jڽ1+@ D BfI_~9"DNP\% Fwچ)M)Z+mjX(ڌ~%$ڎ),ګQ*mژgvI^zbsڻH*~*|Tڅ"MSL2[{xKڥT ?9y[mڵV9猒ړ̪ڸڲY+~wďM3]jfR{Uff"3DUUUDD33"8Mھaڶڐ "-Wv8JYXŚeVDCݥUq 1ݵV9)e~[ZkusژB"EY)w]ΧXjBUmڌyYڄƵښEXaڃځƗڈDU%mec#AEUhRQcڲXUn1mڹ$R%VYjw}iul[Umچ:eڵZijֹڮ^o=aڰUmڌ5ڥ9ݵZiڟ>::pڶaw;UIqڢZڽ%Wڞjrqf P!WUm}ke&1TdRQvOZڍjsڛUmkڎ8aUڵX xQT_ڷ"tUmڌGڥVEX ڍT 0:ڒ[UIeeka IPUffw""3DUUDD3""MI/ھߋ##6;cRe8G!ݻډ5ڬiP%T $}ڒEl7ڲ;֪S"69sڍOOڤ%}VڼcY ::2X6`GAlkJQfѣښڤf0ݖ적UڸJRڕ$QRGSLMpێڪLlBK j85yx |0Uk'8Eۻڄ54Ö]Q*)JLbĈnNMHHFURwka1I_~GF~q,ڪC)D6Ҧ]]ڊccښh/)EY"%(ŌsPffwwڈffڪ""3DDD3"ھMM?ھp0kkv;>^ڿ~EZRsITRڨ(ڙLڄFIURfڌe&1U6gfVXZdʵD&HGۥٚ2Iejյڶ>>=t| TU&iڌ[V,Z4ppyyzfLfΏ~0%ڰUmΔvՋT\W+ݻ\ڟmU[ڙ{ھ!t چK%f 44VFiΥڛX zzڮc1>IURUcJ!ڃ'YTqz bkUT͌wm^l^^ڑdsU(چkbPffwwڈgf3""3333"ھMAھ゚=ړ(igӳ׸9:ʪک6ڼxu=<=ڟ>}j|'?c5UڈwfaBNڎ&V͟_R"mڻD"6>}[Z֟Oڤ?ڗ&TڲVD]X0dɦڢR`@ҥǓ3ڪLڮ,ĸnGڌ|ڈUm&ffgv ngjڗf 0چ;B#ګtٱ1/($IXrU[mݚ!x(&&(Mv0 D*=zCD6 ک4IڨڙwڑbDfڪv[N2ډ;L̶„CÈx-YHUVFYPvwwڈUUD""3333""ھQ4ܲھリ32kͦ9$h+A="S.6e^^bH\.Gx#ڽ[Uֆڝ-, 8O9?5+rLBڅ}Nڨwڗ^ڟnHwxXhiIQQQhc$# ڗڜڊMM%%Pڨ`ځX%`d {$ڢ&b*ڛm[ѯڻڋM4[o$)2ڷ$˼˻r*ڂڸ"e${1wwDnEqp==@ڠDb*ګUPgC%*Jmڞ(%rsںUV :֨AdmU<= x"ڷk{[,U;LyyM <d["UڷwxڤPfwwwwwU݈"""333"ھ0ھww'(HGڦa nmVF&jUxwefG#g IU&]UӨژڈGڸ 2mUڴUXihaOEjٕYU Y[{vVVژɦڇv mUdV\ˋڅv;qi7I@ٝ[V7GFjk y<ڹ]ڄmVF]ډV(XWWWژىf&3l*ڦdYګHFVZzzڂJ+^ڑUV$HXY&&ښhP(&YVxvקڦfh('~? GqlڹV4hXVGFڿP)BSmUYڢTvwwڈwUU"""33""ھy4ھ\\<_?6Hs1 ڌ[[`ڠX,e4D%9)ĔIUVDږ., ceڌu8>I*lZ֒ڪMD7"ڂ`bq8XW]ڎ>; FڛZmڈW쌒7IںHڠڌJ%2j&&@%%"u-e/mimVV33EƣKڃڎߖڲ*3=6fg'$Uچ$kVwm%Rک;ڰBڴQ H_XL(<(ڞyFL*fRmU"Uڭ<UVmrkhU,O;Ii/x Jmڭ-ړڂAډLt tڏEڃU[mWLN'c)ږ,弙pˏ*ڪMk!ڽ+Qwځ콒ԖڥUnII]ڼLECbڡn=zHmCGGF3ܹI'Er)2UUnEڈ#Hŋ,`aC >x*ڍPaZ+2I >ڜUm;:ڲ)K˥$6 ڪi6ڒGځKh\.T~ڗ)Tm$PwwwڈUDfݻ""""""ھ3 Eھif4ښa0vڻgѡr`BVm&>>ښfeDڞo7ڔvڄfcچ9$mQQzzڟAڎFMeOF""!m)$bTXڈD!ӎ7ZF-)mdmڛWGFVW''Kړs/neћVI)*:9ȈdK,G!Mdڹ Jڛ``{{^Vk8 cN~ڥzڵm)ڑb" ڪ}A˓O i&ڒI[mڶW緶&'5]utaFRYm"!X^Hc!"zڕnEڧ`ڰ\wڨ>Nm&ۑb"%$i\ڭNJ&1XQOTIdmPfwwڈfDU3"""ھQ4߾ھdڠП،GmoUU\ȴhN@@JR ڵkZڸŵ|ڪITڧuvڻT{=UrHĉ766EbڪcVڰQ~ڷsڭYӡ!ڝoڔIT~iگ3UU$ڋ2cڛcdg =X+wk+YNꪹ_>}}ڊdGsځNrfUTRHںth`cF{ Ŗ)ڹPfwwڈwUUD""ھ0ھݝڟi&Y XUڇUdڑV4fچڛMXk5bafs2f1TU9yzaڰ,%']mڶ7q{UlXoossA&s7с]vWڿN p^UڵX((n962f|FeaVJEooڂAڈ SkYGvUډVfg'& zRڞ/ֵUڌuU[ڄW"GSڐcڟ>h}1FUYig;w;ڍG:")q%SyU[I%GGcۭ׻zzc"ڿڙ!UWڇw3gg8_U[I%ڒllwژ̉ڄ&__1ph &PfwwڈwUDU"ھ<4ھ0ژ 3y翞ZktCmUUUZڣRE"ڂA'gcQDRY^BUUUjձڞM&Bp6&*op%Y*ĕUUZ{{bZhD"21ژ$ڐH@*EUUYӢڢ<ڂ]]qŮ8ړ̞IUUUjחhfUaWa]qGڅ-mUUUڳeڈD*ژeڌf:|LbdUUU*ڣggd2NڴRQe Aa3UZ!!ښxm֎ڎqm5IUUUrjhhgA m6ڞjy 47UUUv"!ɣQt<ڢsڹڢUUarriiڃA1S)I#P@$%ڵUUPwwxڈUDDDھEM_ھトڄccڈ_/ڷܲY(EڕQڌڄllڔlmtht8eږc0 0[*׽UU^"gpL ڡQDڽ 319ڽ pWr3]wJ3ڌ30UUW89),B x*KmڽB {'1ڊCEŬ,[Gڍk^{`{UUUU}~ڇ ډĂ@s;`s˛ڠ󓎎ڙ< @1a &̖^UUrrsslln{ڊt#ڠրZڪtrڊLIzdR(M7ھ(lھIGڽUUb"%"P8کk˥ͶPB^ ڪgڳQ'ڋچIx1UUPڇwڈf33ڈھツ qھn څO7.;\`-*.کT\Ug3"%>Zh;ڻtz:m4 Z3 P#Bڍ }ڪi \-r9'ڣTڧz5m9/UV/.d7[ڵ˝lڣ چoϿ<ڨ5bY ڳZڀbU ڛmږnUUYDڛB!/x: &K34*=pb~qqډD A>wfdUU^O/ڏETGBծw2ˮJcQ_/`eUڠvڻ]UUx;ڼrts!ڐb@ڠFiV*ڪggK?ڍeXڇ/څUTwwwڈfDDU"ھcM<ھ85/w; چ ڴ tjpڻJX#c[n+[-ڍFڌa㇎͵UzzQQau:+ڥJsکVzyڍէSڼ^R S1LiNUWhi96 '.^ږZj՚IUbbeeb"O%A k^]"7U}}yyhhtfS'[ڮ  kaڄB`FVFF&%EzE"i4ZRuڟF}8UڵAAB ګW9}_YdUPwwڈwD3D3ھ4rqX, p6ړJS)nnZڥ)C:ڈU[[ddXuby<ڎE%%ڭReK69ڱȅVVV}>v; idڱwwc&ZOڄ%wU`baڋڀ@l887:!0-feV p8 yڄa>1wU^ޞڣ1M sڹ6ڈAk@2ڹηuVJJ1ډ,4Dllk]Ԣ:ڑKZZwU]ڝfcڑ# a0ڞu"1*qSuUյڵvڻdhڴYkkZښmUi_O'{VګWڽ)9 KXUUڱUUڪt: ZZ{/ HiZuy<6:QڙD@ڇwڈwU33UھY0ڦsN6 $lG>37 ೂ୺o7k6C"1Ygxڙ/Kڽ-e,dcm8ڜF#ډDV+cb sO;者XV!s9l6FEUjڳ*Ĩ ^t42):d2y;ڣQ;ڻډ$ھZSڧKb1کWDfLrqqUړRGSڄ8OotP/X 6ڙi4ڞx$3WWaچf""DN*ګEU=="DP}6666rʣکڂ]~ rrqɖh <$EJ|:qU]\گ.]*fFFbG#|>"q6f_g}ڒIU@wwڈwUDDUݪ"ھ0UXX mmKڞe+ڭ>[`ڡ I$pڸeȢ)NڨfeehhApbډJBnH^kmڽ،GK%ڐaQLr}xo 'WXxyL~Lڛk5ڜAǴgaf&ڭY  iihaV]Uڛ p8(yڌ{ *bڜSrr5aڐɔڄ…m)uіXڶVXXVS)m6Q(4+Yd)#ޞ Oڍښs u||nn_/Sڨd1oss}7ڴPJma0d2IR}k5ھwڈf3"D"ھ4ڎ77#pڸIMl6#TdənڔaC ڸ<ڞV{ڽ.T* ڒXUmګ@2(hg~M!ڰbq8ڠ@mڭ%̗;XE$ړ!Sکs6+Yڜ`wnRڗSڝejeņÉڮXu.wn1Nm9ڽVEo7Fudy<ڬVڈI.ڎGWWsjڵOb w;ڕ*Un1^z^u&kڶa0D%ڏGڙn1҇@ڇf3za0~?wkZjNvڸ+ڕL`0(Pwmڲڐ''*w[. RڡwmJSOF{xix<$gSt:#FڈG_ں wwڈf3"3DھI# קڧ'%"ڒAiړIbXݷqm+i{$dcT)WoO&k5ڶۉDڟow xyW9fڳiw FڞIF4Z684u:}rT"EW~;C $(!֛N1}hv Tڡ .d&~~ڜ\x l6/pIU~w9ډڔJV+ψDڳUmU(کED fwwڈwfD33f݉ھメC aڙ2NNjj3ږK ڊNxA#׬Mq5?իkkc3X*ڰBڇwTWW T}>ڜEveJB1 H )~5坰vWgaڡl:%ډDa[6YڝB g{==II;]z1Uڽ=@ֳ;s&ڎi`@~~ee`\/ڕ)ڈ~{`ڂpLڦ5ZڧӍ-,ڬUcEfv.-yymڶޯWC˘řڙR*ɔss}ڿG$htC3PYA"HhgWWlڶ|fړGggַwwm,XpmZ-ڄ@ 5O⣊(PwwڈxfD"3ݻھMA}}? q8ڥ"5ڭnN,zk+ڎC~m@< ]\ڵؔJG#z=kڣkk8_kH$Z-@eJcY%ZV(+Ɉz=%2ڴٹ;"ڻV!ڷ7EEIuںYڀAڌӣU46a^]Qpڷs9Z[Oڞ$ڳNŜXOSکU(T,ڎń!ڵfjPkkkkN+t9uLڱ,FAڏ{{ssG#Wڅªڑ!nڦs5׈ڛ[Pڜ.^G#~ڿchښJS͕ڶ!ڷ2ڙA>|3KPfwwxڈwfD""33ھ4|mmڍNPm=ڏ'CBr3x_˼(Llnڏ#RڜFڔmWSڞ]iipp>_.M^(ڄVRBʚU*F&Wgj4^3,}'w( $ϧԂAڃ>>Oڟ)$ڛ?;ڱcړIviڪʼnڴڷcTvyyvfdQ89\ګ^ڽڥ(g,ڙ44::CCM'[ }}Tmڷu,*Wfz56n{32dڋr*Ma[ BPNڲRY4ڙeڽsmo7*ڜ8yydd#iڴ ZZl ڈRU2dڼ!ڊd2wڋ