NAME

Audio::Mad::Frame - Interface to mad_frame structure

SYPNOSIS

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)
}
	

DESCRIPTION

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.

METHODS

  • 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.

AUTHOR

Mark McConnell <mischke@cpan.org>