javazoom.jl.decoder
Class Bitstream

java.lang.Object
  extended by javazoom.jl.decoder.Bitstream
All Implemented Interfaces:
BitstreamErrors, JavaLayerErrors

public final class Bitstream
extends java.lang.Object
implements BitstreamErrors

The Bistream class is responsible for parsing an MPEG audio bitstream. REVIEW: much of the parsing currently occurs in the various decoders. This should be moved into this class and associated inner classes.


Field Summary
 
Fields inherited from interface javazoom.jl.decoder.BitstreamErrors
BITSTREAM_LAST, INVALIDFRAME, STREAM_EOF, STREAM_ERROR, UNEXPECTED_EOF, UNKNOWN_ERROR, UNKNOWN_SAMPLE_RATE
 
Fields inherited from interface javazoom.jl.decoder.JavaLayerErrors
BITSTREAM_ERROR, DECODER_ERROR
 
Constructor Summary
Bitstream(java.io.InputStream in)
          Construct a IBitstream that reads data from a given InputStream.
 
Method Summary
 void close()
          Close the Bitstream.
 void closeFrame()
          Close MP3 frame.
 int get_bits(int number_of_bits)
          Read bits from buffer into the lower bits of an unsigned int.
 java.io.InputStream getRawID3v2()
          Return raw ID3v2 frames + header.
 int header_pos()
          Return position of the first audio header.
 boolean isSyncCurrentPosition(int syncmode)
          Determines if the next 4 bytes of the stream represent a frame header.
 boolean isSyncMark(int headerstring, int syncmode, int word)
           
protected  BitstreamException newBitstreamException(int errorcode)
           
protected  BitstreamException newBitstreamException(int errorcode, java.lang.Throwable throwable)
           
 int readBits(int n)
           
 int readCheckedBits(int n)
           
 Header readFrame()
          Reads and parses the next frame from the input source.
 void unreadFrame()
          Unreads the bytes read from the frame.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Bitstream

public Bitstream(java.io.InputStream in)
Construct a IBitstream that reads data from a given InputStream.

Parameters:
in - The InputStream to read from.
Method Detail

header_pos

public int header_pos()
Return position of the first audio header.

Returns:
size of ID3v2 tag frames.

getRawID3v2

public java.io.InputStream getRawID3v2()
Return raw ID3v2 frames + header.

Returns:
ID3v2 InputStream or null if ID3v2 frames are not available.

close

public void close()
           throws BitstreamException
Close the Bitstream.

Throws:
BitstreamException

readFrame

public Header readFrame()
                 throws BitstreamException
Reads and parses the next frame from the input source.

Returns:
the Header describing details of the frame read, or null if the end of the stream has been reached.
Throws:
BitstreamException

unreadFrame

public void unreadFrame()
                 throws BitstreamException
Unreads the bytes read from the frame.

Throws:
BitstreamException

closeFrame

public void closeFrame()
Close MP3 frame.


isSyncCurrentPosition

public boolean isSyncCurrentPosition(int syncmode)
                              throws BitstreamException
Determines if the next 4 bytes of the stream represent a frame header.

Throws:
BitstreamException

readBits

public int readBits(int n)

readCheckedBits

public int readCheckedBits(int n)

newBitstreamException

protected BitstreamException newBitstreamException(int errorcode)

newBitstreamException

protected BitstreamException newBitstreamException(int errorcode,
                                                   java.lang.Throwable throwable)

isSyncMark

public boolean isSyncMark(int headerstring,
                          int syncmode,
                          int word)

get_bits

public int get_bits(int number_of_bits)
Read bits from buffer into the lower bits of an unsigned int. The LSB contains the latest read bit of the stream. (1 <= number_of_bits <= 16)



JavaZOOM 1999-2008