#!/usr/bin/perl -w # based on he_mode.bin # 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 = 128) * 7 + 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->layer3, "frame is layer III"); ok(!$frame->broken, "frame isn't broken"); is($frame->bitrate, 128, 'bitrate'); is($frame->sample, 44100, 'sample rate'); my $mode = (qw/ mono dual_channel stereo normal_joint_stereo ms_stereo_only intensity_stereo_only ms_and_intensity_stereo intensity_stereo_only intensity_and_ms_stereo intensity_stereo_only ms_and_intensity_stereo mono mono /)[($_-1) / 10]; ok(eval "\$frame->$mode", "frame is $mode"); # UGG! fscking 5.005 won't let me just say $obj->$meth. } is(MPEG::Audio::Frame->read(*DATA), undef, "nothing else in the file"); __DATA__ g,X ,y_kE <",y_kE <",y_kE <"g,X ,y_kE <"g,X ,y_kE <"g,X ,y_kE <"g,X ,y_kE <"g,X ,y_kE <"g,X ,y_kE <"g,X ,y_kE <"g,X ,y_kE c+s1,y_V27??g,X ,y_kE c+s1,y_V27??:@CvHg,]f5 ,y_kE c+s1,y_V27??:@CvHg,]f5 ,y_kE c+s1,y_V27??:@CvHg,]f5 ,y_kE c+s1,y_V27??:@CvHg,]f5 ,y_kE c+s1,y_V27??:@CvHg,]f5 ,y_kE c+s1,y_V27??:@CvHg,]f5 ,y_kE c+s1,y_V27??:@CvHg,]f5 ,y_kE c+s1,y_V27??:@CvHg,]f5 ,y_kE c+s1,y_V27??:@CvHg,]f5 ,y_kE <"?WZc?+s1:@CvHg,]f5 ,y_kE <"?WZc?+s1:@#9`vHg,X ,y_kE <"?WZc?+s1:@#9`vHg,X ,y_kE <"?WZc?+s1:@#9`vHg,X ,y_kE <"?WZc?+s1:@#9`vHg,X ,y_kE <"?WZc?+s1:@#9`vHg,X ,y_kE <"?WZc?+s1:@#9`vHg,X ,y_kE <"?WZc?+s1:@#9`vHg,X ,y_kE <"?WZc?+s1:@#9`vHg,X ,y_kE <"?WZc?+s1:@#9`vHg,X ,y_kE <"?WZc?+s1:@#9`vHg,X ,y_kE <"?WZc?+s1@:@#9`vHg,X ,y_kE <"?WZc?+s1@:@#9`vHg,X ,y_kE <"?WZc?+s1@:@#9`vHg,X ,y_kE <"?WZc?+s1@:@#9`vHg,X ,y_kE <"?WZc?+s1@:@#9`vHg,X ,y_kE <"?WZc?+s1@:@#9`vHg,X ,y_kE <"?WZc?+s1@:@#9`vHg,X ,y_kE <"?WZc?+s1@:@#9`vHg,X ,y_kE <"?WZc?+s1@:@#9`vHg,X ,y_kE c`ǕV_@F6 @:@#9`vHg,X ,y_kE c`ǕV_@F6 `:@ `ig,- H,y_kE c`ǕV_@F6 `:@ `ig,- H,y_kE c`ǕV_@F6 `:@ `ig,- H,y_kE c`ǕV_@F6 `:@ `ig,- H,y_kE c`ǕV_@F6 `:@ `ig,- H,y_kE c`ǕV_@F6 `:@ `ig,- H,y_kE c`ǕV_@F6 `:@ `ig,- H,y_kE c`ǕV_@F6 `:@ `ig,- H,y_kE c`ǕV_@F6 `:@ `ig,- H,y_kE ]X<#F731wpc+\``:@ `ig,- H,y_kE ]X<#F731wpc+\`P:@ ct"{,2eP,y_kE ]X<#F731wpc+\`P:@ ct"{,2eP,y_kE ]X<#F731wpc+\`P:@ ct"{,2eP,y_kE ]X<#F731wpc+\`P:@ ct"{,2eP,y_kE ]X<#F731wpc+\`P:@ ct"{,2eP,y_kE ]X<#F731wpc+\`P:@ ct"{,2eP,y_kE ]X<#F731wpc+\`P:@ ct"{,2eP,y_kE ]X<#F731wpc+\`P:@ ct"{,2eP,y_kE ]X<#F731wpc+\`P:@ ct"{,2eP,y_kE ]c|,y_kE ]c|P:@ ct"{,2eP,y_kE ]c|,y_kE ]c|p:@ٳP"{,f@,y_kE ]c|,y_kE ]c|p:@ٳP"{,f@,y_kE ]c|,y_kE ]c|p:@ٳP"{,f@,y_kE ]c|,y_kE ]c|p:@ٳP"{,f@,y_kE ]c|,y_kE ]c|p:@ٳP"{,f@,y_kE ]c|,y_kE ]c|p:@ٳP"{,f@,y_kE ]c|,y_kE ]c|p:@ٳP"{,f@,y_kE ]c|,y_kE ]c|p:@ٳP"{,f@,y_kE ]c|,y_kE ]c|p:@ٳP"{,f@,y_kE ]c|,y_k`F#t]cp:@ٳP"{,f@.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P:@ٳP"d{,ր!e.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'KTɳʜ,Sp %*p.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'KTɳʜ,Sp %*p.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'KTɳʜ,Sp %*p.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'KTɳʜ,Sp %*p.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'KTɳʜ,Sp %*p.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'KTɳʜ,Sp %*p.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'KTɳʜ,Sp %*p.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'KTɳʜ,Sp %*p.Pe <G83?__$-PeAh2\˗a #383_=HAT_P'KTɳʜ,Sp %*p.Pe <G83?__$-PeAh2\˗a #383_=HAT_p'KTɳ,SJ&$ .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'KTɳ,SJ&$ .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'KTɳ,SJ&$ .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'KTɳ,SJ&$ .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'KTɳ,SJ&$ .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'KTɳ,SJ&$ .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'KTɳ,SJ&$ .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'KTɳ,SJ&$ .Pe <G83?__$-PeAoǕVo?Og@F7~p'KTɳ,SJ&$ .Pe G# TPeqWZX?wap'KTɳd{,ր!fϨ.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'K:"ɳHFd{,ր!e.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'Kɳڜ,Sp %jp.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'Kɳڜ,Sp %jp.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'Kɳڜ,Sp %jp.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'Kɳڜ,Sp %jp.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'Kɳڜ,Sp %jp.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'Kɳڜ,Sp %jp.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'Kɳڜ,Sp %jp.Pe <G83?__$-r.Pe0?\˔r #x0pgwGI[@2\˗a #380P'Kɳڜ,Sp %jp.Pe <G83?__$-PeAh2\˗a #383_=HAT_P'Kɳڜ,Sp %jp.Pe <G83?__$-PeAh2\˗a #383_=HAT_p'Kɳ,SJ&d .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'Kɳ,SJ&d .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'Kɳ,SJ&d .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'Kɳ,SJ&d .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'Kɳ,SJ&d .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'Kɳ,SJ&d .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'Kɳ,SJ&d .Pe <G83?__$-PeAh2\˗a #383_=HAT_p'Kɳ,SJ&d .Pe <G83?__$-PeAoǕVo?Og@F7~p'Kɳ,SJ&d ,y_kE <"?p'Kɳd{,ր!f,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?{,`e ,y_kE <"?