MPEG-Audio-Frame
view release on metacpan or search on metacpan
lib/MPEG/Audio/Frame.pm view on Meta::CPAN
###
my @protbits = (
[ 128, 256 ], # layer one
undef,
[ 136, 256 ], # layer three
);
my @consts;
sub B ($) { $_[0] == 12 ? 3 : (1 + ($_[0] / 4)) }
sub M ($) {
my $s = 0;
$s += $consts[$_][1] for (0 .. $_[0]-1);
$s%=8;
my $v = '';
vec($v,8-$_,1) = 1 for $s+1 .. $s+$consts[$_[0]][1];
"0x" . unpack("H*", $v);
}
sub R ($) {
my $i = 0;
my $m = eval "M_$consts[$_[0]][0]()";
$i++ until (($m >> $i) & 1);
$i;
}
BEGIN {
@consts = (
# [ $name, $width ]
[ SYNC => 3 ],
( run in 1.328 second using v1.01-cache-2.11-cpan-524268b4103 )