< prev index next >
src/java.desktop/share/classes/com/sun/media/sound/WaveFloatFileReader.java
Print this page
*** 30,51 ****
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioFormat.Encoding;
import javax.sound.sampled.AudioInputStream;
- import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.UnsupportedAudioFileException;
/**
* Floating-point encoded (format 3) WAVE file loader.
*
* @author Karl Helgason
*/
public final class WaveFloatFileReader extends SunFileReader {
@Override
! AudioFileFormat getAudioFileFormatImpl(final InputStream stream)
throws UnsupportedAudioFileException, IOException {
RIFFReader riffiterator = new RIFFReader(stream);
if (!riffiterator.getFormat().equals("RIFF"))
throw new UnsupportedAudioFileException();
--- 30,50 ----
import javax.sound.sampled.AudioFileFormat;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioFormat.Encoding;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.UnsupportedAudioFileException;
/**
* Floating-point encoded (format 3) WAVE file loader.
*
* @author Karl Helgason
*/
public final class WaveFloatFileReader extends SunFileReader {
@Override
! StandardFileFormat getAudioFileFormatImpl(final InputStream stream)
throws UnsupportedAudioFileException, IOException {
RIFFReader riffiterator = new RIFFReader(stream);
if (!riffiterator.getFormat().equals("RIFF"))
throw new UnsupportedAudioFileException();
*** 86,118 ****
throw new UnsupportedAudioFileException();
}
AudioFormat audioformat = new AudioFormat(
Encoding.PCM_FLOAT, samplerate, bits, channels,
framesize, samplerate, false);
! long frameLength = dataSize / audioformat.getFrameSize();
! if (frameLength > Integer.MAX_VALUE) {
! frameLength = AudioSystem.NOT_SPECIFIED;
! }
!
! return new AudioFileFormat(AudioFileFormat.Type.WAVE, audioformat,
! (int) frameLength);
}
@Override
public AudioInputStream getAudioInputStream(final InputStream stream)
throws UnsupportedAudioFileException, IOException {
! final AudioFileFormat format = getAudioFileFormat(stream);
// we've got everything, the stream is supported and it is at the
// beginning of the header, so find the data chunk again and return an
// AudioInputStream
final RIFFReader riffiterator = new RIFFReader(stream);
while (riffiterator.hasNextChunk()) {
RIFFReader chunk = riffiterator.nextChunk();
if (chunk.getFormat().equals("data")) {
- final AudioFormat af = format.getFormat();
- final long length = chunk.getSize() / af.getFrameSize();
return new AudioInputStream(chunk, af, length);
}
}
throw new UnsupportedAudioFileException();
}
--- 85,112 ----
throw new UnsupportedAudioFileException();
}
AudioFormat audioformat = new AudioFormat(
Encoding.PCM_FLOAT, samplerate, bits, channels,
framesize, samplerate, false);
! return new StandardFileFormat(AudioFileFormat.Type.WAVE, audioformat,
! dataSize / audioformat.getFrameSize());
}
@Override
public AudioInputStream getAudioInputStream(final InputStream stream)
throws UnsupportedAudioFileException, IOException {
! final StandardFileFormat format = getAudioFileFormat(stream);
! final AudioFormat af = format.getFormat();
! final long length = format.getLongFrameLength();
// we've got everything, the stream is supported and it is at the
// beginning of the header, so find the data chunk again and return an
// AudioInputStream
final RIFFReader riffiterator = new RIFFReader(stream);
while (riffiterator.hasNextChunk()) {
RIFFReader chunk = riffiterator.nextChunk();
if (chunk.getFormat().equals("data")) {
return new AudioInputStream(chunk, af, length);
}
}
throw new UnsupportedAudioFileException();
}
< prev index next >