/** * @test * @bug 6938426 * @summary Tests that Alaw encoder works properly in multithreaded environment * @author Alex Menkov */ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.InputStream; import java.util.Arrays; import javax.sound.sampled.AudioFormat; import javax.sound.sampled.AudioInputStream; import javax.sound.sampled.AudioSystem; public class AlawEncoderSync { static final int THREAD_COUNT = 20; static final AudioFormat pcmFormat = new AudioFormat(8000f, 16, 2, true, false); static final int STREAM_LENGTH = 10; // in seconds static byte[] pcmBuffer; static final AudioFormat alawFormat = new AudioFormat(AudioFormat.Encoding.ALAW, 8000f, 8, 2, 2, 8000f, false); static final ConversionThread[] threads = new ConversionThread[THREAD_COUNT]; public static void main(String[] args) { preparePCMBuffer(); log("pcmStream size: " + pcmBuffer.length); for (int i=0; i 0) { throw new RuntimeException("test FAILED"); } log("test PASSED."); } static void preparePCMBuffer() { pcmBuffer = new byte[STREAM_LENGTH * (int)pcmFormat.getSampleRate() * (pcmFormat.getSampleSizeInBits() / 8) * pcmFormat.getChannels()]; for (int i=0; i