code: protected AudioInputStream getAudioInputStream(InputStream inputStream,
              long lFileLengthInBytes) throws UnsupportedAudioFileException,
              IOException {
          LOG.log(Level.FINE, "TAudioFileReader.getAudioInputStream(InputStream, long): begin (class: {0})", getClass().getSimpleName());
          if (isRereading()) {
              if (!inputStream.markSupported()) {
                  inputStream = new BufferedInputStream(inputStream,
                          getMarkLimit());
              }
              inputStream.mark(getMarkLimit());
          }
          AudioFileFormat audioFileFormat = getAudioFileFormat(inputStream,
                  lFileLengthInBytes);
          if (isRereading()) {
              inputStream.reset();
          }
          AudioInputStream audioInputStream = new AudioInputStream(inputStream,
                  audioFileFormat.getFormat(), audioFileFormat.getFrameLength());
          LOG.log(Level.FINE, "TAudioFileReader.getAudioInputStream(InputStream, long): end");
          return audioInputStream;
      }
docs: Get an AudioInputStream (internal implementation). This implementation
  calls getAudioFileFormat() with the same arguments as passed in here.
  Then, it constructs an AudioInputStream instance. This instance takes the
  passed inputStream in the state it is left after getAudioFileFormat() did
  its work. In other words, the implementation here assumes that
  getAudioFileFormat() reads the entire header up to a position exactly
  where the audio data starts. If this can't be realized for a certain
  format, this method should be overridden.
  
  @param inputStream The InputStream to read from. It should be tested if
  it is markable. If not, and it is re-reading, wrap it into a
  BufferedInputStream with getMarkLimit() size.
  @param lFileLengthInBytes The size of the originating file, if known. If
  it isn't known, AudioSystem.NOT_SPECIFIED should be passed. This value
  may be used for byteLength in AudioFileFormat, if this value can't be
  derived from the information in the file header.
  @return
  @throws javax.sound.sampled.UnsupportedAudioFileException
  @throws java.io.IOException