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