Audio::Mad::Frame - Interface to mad_frame structure
my $frame = new Audio::Mad::Frame; FRAME: while(1) { if ($frame->decode($stream) == -1) { print "stream error: " . $stream->error() . "\n"; last FRAME; } my $layer = $frame->layer(); my $mode = $frame->mode(); my $bitrate = $frame->bitrate(); my $samplerate = $frame->samplerate(); my $timer = $frame->duration(); #see Audio::Mad::Timer my $flags = $frame->flags(); # do something with the frame. usually requires # Audio::Mad::Synth (see docs) }
This package provides an interface to the underlying mad_frame structure used in the decoder library. Most of the functions and underlying data are exposed to perl.
new
Allocates and initializes a new mad_frame structure, and provides us with a handle to access it.
decode(stream)
Fully decodes the next available frame from 'stream' and stores the information in it's internal structure.
decode_header(stream)
Much the same as 'decode' but it only decodes the header information from the next frame. You can access the frame data at this point, however, the frame is not ready for synthesizing (or a ->mute call). To finish the decoding, just call ->decode() again on the stream; although it's not required (e.g., you can seek/quit/etc)
mute
Mutes all the sub-band samples in the current frame structure. It's usually prudent to call this after seeking around on a stream, to avoid hearing scratches and pops.
layer
mode
flags
bitrate
samplerate
These functions retrieve the information from the currently decoded frame header. layer, mode, and flags correspond to the MAD_LAYER_, MAD_MODE_, and MAD_FLAG_ constants. bitrate and samplerate are represented as integers.
duration
Returns the duration of the currently decoded frame as an Audio::Mad::Timer object. See Audio::Mad::Timer's manpage for details on what this means.
NCHANNELS
Returns number of channels in current frame. 1 or 2.
NSBSAMPLES
Returns number of samples in this frame.
Mark McConnell <mischke@cpan.org>
To install Audio::Mad, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Audio::Mad
CPAN shell
perl -MCPAN -e shell install Audio::Mad
For more information on module installation, please visit the detailed CPAN module installation guide.