Hi,
I have been developing an application using tritonus
and java layer. When playing an mp3 for several hours I
get the following exception:
java.lang.ArrayIndexOutOfBoundsException
at java.lang.System.arraycopy(Native Method)
at
org.tritonus.share.TCircularBuffer.write(TCircularBuffer.java:223)
at
org.tritonus.sampled.convert.javalayer.MpegFormatConversionProvider$D
ecodedMpegAudioInputStream.execute(MpegFormatConversionProvider.java:486)
at
org.tritonus.share.TCircularBuffer.read(TCircularBuffer.java:134)
at
org.tritonus.share.sampled.convert.TAsynchronousFilteredAudioInputStr
eam.read(TAsynchronousFilteredAudioInputStream.java:189)
at
com.slim.softsqueeze.player.JavaSoundPlayer.playFrame(JavaSoundPlayer
.java:140)
at
com.slim.softsqueeze.player.AbstractPlayer.run(AbstractPlayer.java:12
3)
at java.lang.Thread.run(Thread.java:534)
Having looked into this it appears that the m_writePos
and m_readPos integer wraps around Integer.MAX_VALUE
and becomes negative.
The attached patch fixes this.
Regards,
Richard
Patch for TCircularBuffer