Package javazoom.jl.decoder
Class Bitstream
- java.lang.Object
-
- javazoom.jl.decoder.Bitstream
-
- All Implemented Interfaces:
BitstreamErrors,JavaLayerErrors
public final class Bitstream extends java.lang.Object implements BitstreamErrors
TheBistreamclass 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
Constructors Constructor Description Bitstream(java.io.InputStream in)Construct a IBitstream that reads data from a given InputStream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()Close the Bitstream.voidcloseFrame()Close MP3 frame.intget_bits(int number_of_bits)Read bits from buffer into the lower bits of an unsigned int.java.io.InputStreamgetRawID3v2()Return raw ID3v2 frames + header.intheader_pos()Return position of the first audio header.booleanisSyncCurrentPosition(int syncmode)Determines if the next 4 bytes of the stream represent a frame header.booleanisSyncMark(int headerstring, int syncmode, int word)protected BitstreamExceptionnewBitstreamException(int errorcode)protected BitstreamExceptionnewBitstreamException(int errorcode, java.lang.Throwable throwable)intreadBits(int n)intreadCheckedBits(int n)HeaderreadFrame()Reads and parses the next frame from the input source.voidunreadFrame()Unreads the bytes read from the frame.
-
-
-
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 BitstreamExceptionClose 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 BitstreamExceptionUnreads the bytes read from the frame.- Throws:
BitstreamException
-
closeFrame
public void closeFrame()
Close MP3 frame.
-
isSyncCurrentPosition
public boolean isSyncCurrentPosition(int syncmode) throws BitstreamExceptionDetermines 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)
-
-