#!/usr/bin/perl # based on fl3.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 + 3; BEGIN { use_ok("MPEG::Audio::Frame") }; my $i; 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 has CRC"); ok(!$frame->broken, "frame isn't broken"); is($frame->bitrate, 384, "bitrate"); is($frame->sample, 48000, "sample rate"); ok($frame->any_stereo, "frame is some kind of stereo"); $i++ if $frame->joint_stereo; } is(MPEG::Audio::Frame->read(*DATA), undef, "nothing else in the file"); ok($i, "at least some frames were intensity mode joint stereo"); __DATA__ d{ڈwfwUfDUD2 4ں ڜp1#<4锆ڭwpt4q?`@:]iڢ*̭Nq,m8pmۃm"d&AΘ2t(Qڑ:zzں·Eڲ6"ڽo$Iډڗ'/>`e@ZڵPڡ 8"Ƭ+4`ڑ/BDkc gڶzZ~a Zھ'])җںmJTL]p`Sگ_˄ /[Lo^\oqF$osF}/j>}{羄#ڊ-OfNڙ ڋGڢS9ڢN)ڭڭTefffffUD2M4ڪھھDQ%c4g3F|`I&ŢzڪU@gڳ0 P>8B:g"a`j9rAXh'L!zp տJړgb ~&}gS0fڃ."y[|٭KSXnڰڞ<e;wFڞm L%{)aR€ZڍGǓ&Kǰ릾/ڌݙ8-pZڿ~>3|ڲ؞'ڏű0ړ'ϑڬaXT:ڹo2eڌa}ړ) .ڶ_/۸0[i7k>A|' NDR) ={2dڣDZd< wUfUUUDDDD3!4ھھffXq G}ujڌc#EY2ڋ)l ڳ$ڼ5ڳ36>>Bԅ^ڇ~2zR1'h(fڜ;/ڹlQDO|bPС( ieI΃[n4ME-tT\>ڸXFAb  ueڔڐhMedl;l ڞUsڢiډ9hP-ڄ څWf{ډrs{h!fڄ1 ڹfw}ڦvڵچNX\40U{ڝucyڗ1ww{J8ڎRci&L| AڈUsږY\qJsYHDw3"3DUDDD33""ھc 8ھھ{\_cǟڈdkcXVڵ.ځt>Yݶe*#;ww&E,ڬs !&]wsbssgtYRR"Q7:nvaڈBa JwfI%{Pډ`ڕRfa^TDڛWڂ 0Qܯ]UڹB8罌UwnE{3 +ڼWZڨwRڄffXB;u[H*i)HfE`ڟڲ3dP [wk_~1NwtDXAP~njzڵ\Awڑ )HP7[kRJ1{ffÝPoڌ>C'u8ڹJ1wwEDWTWvU2U4ھW*+V4a mOK<6US a]A:EYnjڊ&g2ڲsgڥ7EMڀMnc-Oڳ\wڦڣϠAܠ(&8sCZ<(Z8gڶK_6k;"E3K%}OڪFt|9-ET]ڎNb1*RڒzIڃ5ss+ybP2`P*MIڐBڤ/IoڠW$<=~w|P؜Mڍ1ڞ2v"D:%++k!0ƇC]kݘ;0.Sy,780ڜNs>4ʏ8>fڅ1ڋCVK)1&'ڦ@+*$TStgڪD"4fveC!ھ(4ӎگھھڅ IyFEH:BC5i13fL(QMl]ڻA{pڐ8ښ S@h /isگAz ڜ> ڌ˚ڽ_ C\Pڍ$h6gڝVlڶY+%?چB ڼgbݩDcF8o%.q9ڞQlڵ2eEԗ7F&MJT+[$5ڻ]{6$Kڟک;Fuck)$u+`T%1ڕ+ڤ JM^Hyu-c4=@6k*IKo7maڛڂX3ƫ5\ڽuH5,S t`V:ڬw\z޶nkޭdiffwډ""DUeTC!QC mھf,Yڽ%Y*j{Ǒ4?W5sںsڥ$Rړ˘ڱgg`1vBfmWuUe)ګFRR=rt /Fnڙ͌L6ڐjڸڬT!ڄ#>U4ڥtYSXڨBTuG;ڪiIڭsڼbD~Oڍ6ڛfUVZBذ<;ڽ^ڛ9ڣmgڔMEjյڸ$~?Bڻ&2bکiR[JFfڕ)ip%ЗEWUsڪc%&1rڵ[UڍV6iUlSބk<ڼsË!ʪڭ*ځwfwwڻw"3DD3"ھU4ھھڻuei]\Sb@TUUڽwIg'ڃ}秗ڼ ڗURw^tdǧڦ31gz}}UIڕΈIe@aau: &ڏ4~OU[ZFnm>>JrS^ڃUU)1wI\ڙ}}ګU!_ ATdRf799HUUgwmcNڍiښ<)%URڈ!i&#Oޭ//UVGwھwmc޽چb`NU[fXɖ>=È tO%%UVHډ͌Unڿsstں\U[kXTDY㪙ڪt4VwvS 4Mھ8B;vլ2M"zMe5);Gڋqn6Fwڻ0|?6[wllmڍ|ZڻWfli/x4R%jjZQ ! im\ڭȦqjXںRg D8&JPs㦾eLBڀJA-ڗfu[ a0+d^<)w= 4dLYI#'eG=ڣq8ڐd<&Rhjڽb`=څ '\ݝ%Dx:GFڕѼKQA&el-cX}8Cẍں"-yxL%Րd99 @1ڼR;S(LljnyB! rrkOd=l-^ڹR00?ړߊP5H)av]a` KoVxcY dڣfwwwwD33!ھM0,ھ~ڃAid{څvڽjfds++]\t<^3| Kڰc[6ڒC<\saZڱ.\GAw45mXڂXPڞ^_ڞxl5NO^>ڷ5\{֬yڇl8s3333i= u*T#Џ=UڵjjZW+ږwwOXںB*[&L|}uto&.ANdڜɗ_zpέ*663Dp31jwvtrOPC hϣ< [\=]:ښZ-JGڽ{9Zb3&::5ڔ*ssGړ WRtfwwwwU""3!ھ]4ھ ڑڡvvj G#ڍIUdڻv1C 8gW_6ڪ:_ڿnnڏjjEڒXKn} [mհڹG)ڑ=*%B8hMm)Rۛکڦڐh!ڠs ږkFګkqqq۳ڲpnvJ4TIEegY_Kڈ. cC%VݛRڣ{} ;;]p|%8!"mj~~BAi4ڊX ) 8VIvtڢCBtڥ;u[ڶlXrrff}>_`g)QJUJ*ծ.CCGn1qnںSqMڇ2-IwwڈxfU̻Dھ}I#Mڦwxt9X,`Fzڇڪҷ7Je1X|U|UT)99i6osb(Jڐ:H Q'$ڜ%71KړFX+_ngo s)"HXV-څUDڑw|Mo ڵڔ)ڪi8G[ڎl T(4[Et**ډ|qڼnl9Ky=;&{ښ.^,ڡhB P8rHI ڛ3ڎπ07qڼԲlU+qoڠq0j~vB ZUq`؃A"< bڏ ^ա9;`dd7ڠAq.rTڙڈfn!""ھ0 ھaڸN.Ł`_/^. kڂ:cǑږX!]mm|Cڛf٥id9cQڦlPjbA`ڃ%IJڷJ#55cmeځgA#l*JMڑR8g685jھ>Oq9C`MVZyt'ʏVګlK#fm-~,>>fھ} UD׫dڄ! ځe{ 7ښ*ۋ9P#ڮl:Aڶi=Ižx<wڴm'I{ڎI2b !jr9DRk 5qxڻfƭ[idwڈwUDgݻ1ھ4ԒھnnMڝѬ֋E$}g 0E]ś8#ee`ڣ_/lapڸ86Yc'O 4,np:]/}FM4!#Md[;9#r9zMڹڧ#~W䪧'JOն|+Uڽ{gڜs63jVFcCڢ/vvydJڲt*hl|ڄO=Ummwso7$ 1~O%4Kګt<^.dھ^]o{Z h_`s9hasU\P*ڀ9gڳlڶ00E4< Ptھ3fwwwUDDwھھEMqϾQ::s9rڹcaξu|ڿnkuڼ aabbږK+feھ]ut44q1ڮ0.PXڪTW.\ڜUcK3jjږXkok{Zj Ԩuq(\[,ҍlzڧ `V\ A ڍq'>ڮCHHH$  J{ڸ l{gڣEڅBq8HG]ڭ^P::*/110E"\LE?=\^]Z4uuLڒdz~}e* `ښzjllR(~I)2IJP LXPCfwwwwf33U"ھھM4y N'U`Uw);$쁌 [Rڒ`8UiO=o}HJJ:9Nڈ}@cS>66zyݨԇ:fڈqW_Xr"!^]u: ww}VځPڛvڶrJ$Lw_J2Qvڱ?ڧgfLڈw};Aە)>>bb[-o7ڗLjw}S4Aڢ$rڵ`0ww}V rڥ>>@_/XbDw}[ aڍ ڵZ~\ٳڈw}_`36Dpڪvm2!ھ0ښھ$eڷy/(گ3+oڀ7jھo ځQ?@8y c n^?%S^׶ $d,̛ڕ?E BE9hڱ3D{ڮu̝ړFڪeڦn>PC-X#zUڶyE(ڳni{5Fy7гW,;}ڜ"iXJڶL ڽuw@ {ڨI[y/C(e$?De4Fڳ쵖ڳz2Y%_aڋh3 XTڢňڙڙtFAھھ4MھGeuڰ)bX~JZb=XJAwIiw DځaC|X :zڒ$q܌FژG)Wڜg.8ڲ,fs:iگm)+y<2ڡhfVy. {=fqڬFC!" .ڒ䷕%d2n/چt]5z޷Ű,幃AJ=h$ڎǍy|cWcXzھ~Nڕx`p89iGγTڝ^/ڣsZi՟'~ډv]5v2ژ}t:"Q'8gYցڠjaڛڪ@[u|5|gډe ̃ 8dڱwwڈڈfD33ھ]s U_aauuڄB"FF;GJQK#kk 4&S3kBLڇڟg`ڰUڝNAiDڡ˕ &etʚMK%PjڊF.3+Hک98uXID()ic!%w)bڹJ\ڻdc,|M]##33ڃ(" p`=ffwwwwwfU4"wڻھھy Edڊrrllږj8 ڛhKJ쒓y[QQQ@ځ}}jiמڶ06Çr䔕ml UTllxm^ژߛ~Rڷ))ډchxy&ڙXG8C>30pkڮPO߬B@"-=9!W^ڽuׂJߛ&Mں:?FAn1c6FګaðڰڄZZڐ&YYͫZw.=z)(HtJ$R(ڬ|bTפڤS('Pbڪ2ڜWMK;<ڣipldcڲK'u#yyڃAlڸqwwmcrKmo/0r3YڭMSڒ1ڣs,A&%Bگ]-ڽņEڎK]8ڿ?XSyTkJ2d֤tgvwwwwwf3"3ھھ蘒;\ܻӶ~©TBJL쬯T&L8ĉ3"&CEF ڐ> /0 ;ڶERoo%$-,,dd l*sdͿDڮV'' 3jڳ 0wo/1W+"ڑHH%%EڣNc23uȤM-.op ;kQڃ#"ڟχ]\ڄ׮<]ڶ&z<4Cr{"ڕ>h88444ڥK2ڮ|*}{ڢld=ڞҲ퍏߳6ڽ9Mڎ d,cۛڜq W>vfwwwwwffU3UھھUL1VڃCC-,qq'&(MO;ڵ6I%ڍBB 55d+WcߠڠTSګsrړVڮ2ڔNDڏrIJxwp߿ueu ~^\Xګډ)0`Ŋn >}z4_ ک^ھڬy8ڮE11KK**:ڲdڪs,50UUڄbbll۹wU2AX={MMA@f@ڬF#sFƃ22&&JIʊډ.]uWڻ_ieonڥK##cb:;Ɏ\4B6hڈ('Rڜڵ`P"|ODVڙڙuC"^ھھڶM4޺[V:4&NچRaӁڀTzr3xm)ڱ}^~9'-sڜw>ڠ1\}gmp{SSl;]ڴLIRڶګY*hr(]]\\ڎG+ڑکfc»ΎzY-6>ھ½zړ-gڣڶ>=`ڕڦͣ.֮Wn\ڴ9.f N&CBxxٳ% Dڙɬ֥RBږ@ڹIڵk ; lkXگ`tffwwwwwwffUD"ڀھھ0׋ɹ'&FIcFڒHAtڿں;;vM3Zڹڧ?ڽ"!wnzRIQ,8q))33 ?>QP͜HȮ'00+nn}}~~llTTvڨasUiRXگ/;;6E;ںu3M& 6$F$[]ڝڝcnr\#ڳVpt400//2rsfÇMkjxtۺjgYXډjڻ9%_|F˖ݭڤkkV`ڼڰ)X BBuv..ņ͝v1Hӝѵk[ZKK.[=J6 gڹwUfffgwffffD"ھھ84Mڢ|*TڽĈٴ.ݵ*ډ!%3fj V EڊծI^vڭIhڞUbDztProڟBڲTڊ5˸0d†ڄ-ӦڳcUx+uM9 @!|$$Oڻvڤ/eڬC.\8qڣcڳ Dډӧ2U_CܹbډӪ:h dڅ)$_VLA|Hڧύ|:REV۷NVlz43jhB*^ڶ(ODڽӧڏ>lٌUڰ68ک \ڸpҲڭZjլ8pڃjIP@cڇ ٢DFڎD_>k[Uy<Dڹ߈ڙڙS!( ھھ4#ڑ (ڃpEڀܘJڦ/v1melQjHڹ| xRkZiڷjrڳYj2z}#7FD6ډ:G~9xnڅZTڧ)sN`3ڌC% wjwc&; #Dh^Ey9*~B&Fs:Q(xR(cYїj0ay[)K%a6MuoJc\_7֊ڸ$ڀ$d'~گiڦ.JLwڷsэiڮk71eZV*3F'j"q=ڔ!|4%aو%Aڊ7eN@T~wwڈڈwuC!0ھھڎ0ʪڋ}}ڝ1C"C!yk maڈ}0t]Ē'Wwګ5D!qq1wu+]ځk5څeJw"koڇ\\rrza$U*A fIgOڥ׊E#(&}<]\swGGmڒI" ٥ڦou!ba H 0ڊ7"ڳr6{{ڌG#ڤR%Jڦ3d\&؟p\=\` ,w; ڊEL(3Q]Z3څ9ڣc%͈d.fwwwwwwwwffD2\ھھ0~ڡUVVUfeډƍjP JEQQMMMͻ;,E6m ڤOыjeک IGڏ'Nkal5k MMڳڵ*xX㣝]bbbڟ_a!2ګVsh2HLLڔssssڅ,+ThڑZ4ee__[[||yykk~~T\ڸ"DxQMڔ4*JP00АZk2_ߙ2feډabnn^]ڻyEkae"9ڹD224ڴOYY@e$ 4I6LwwGK;9ډihPڤɜگԲڻv 33ML#ڷt׈tffgwwwwfffUD3"ھھM3MYڗ'&AA&Kb["@گ80_>%%4sfڬڻ76ړ&''!!4bڜd7ϩRrEE &Qc2ڝظPڪՑ%76ߤ("ڡ9RJڰZ2Zڻڹ0ڏڙ1b ڶڑ&͑"MM ĹqbڏĺTڠ) ccխ*Lڙ&!گ6%z ڌx8!U"!Lڨ+׫<2گѤɝH΃mmC_/p\ڷwڡmڠp6EьFL'% &Luت ڹifڋEo7FEo~]mRRYQ&i獍C.g>ג6jj+ڕhڴ_ڎYM@,LڛDۍMqmy>Zq8t`P)ڙ.ڀT^*{}ډ*)TAڢQ&#/ځw`NڀEdڶCffwwwwwwfffUC!ڦھھYc aچ,XXggگYYddOOڟ>4e˛n*ڒ,V͢!⢗ڗFn 4z?LGGڊ*)hfڝl8 ToٳڥIڹg.Y2&Lڿ%%ڜss{{^^nޭX* 3l۵ڗ!ڝ((P~۶6@Xڙxyɩڳff͖fڌ0r"!BB21)2`@}EyEywm_~a0u㢈0YUl~"Rv_ڥUHb