United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-5053380 Interface SourceDataLine dose not output sound correctly in j2re 1.5.0beta1.
JDK-5053380 : Interface SourceDataLine dose not output sound correctly in j2re 1.5.0beta1.

Details
Type:
Bug
Submit Date:
2004-05-26
Status:
Resolved
Updated Date:
2004-07-09
Project Name:
JDK
Resolved Date:
2004-07-09
Component:
client-libs
OS:
windows_xp
Sub-Component:
javax.sound
CPU:
x86
Priority:
P4
Resolution:
Fixed
Affected Versions:
5.0
Fixed Versions:
5.0 (b58)

Related Reports
Duplicate:
Relates:

Sub Tasks

Description

Name: gm110360			Date: 05/26/2004


FULL PRODUCT VERSION :
1.5.0beta-b32c(1.5.0beta1)

ADDITIONAL OS VERSION INFORMATION :
Windows XP SP1

EXTRA RELEVANT SYSTEM CONFIGURATION :
Audio device is SigmaTel C-Major Audio.

A DESCRIPTION OF THE PROBLEM :
In case of  j2re 1.5.0beta1, audio applet, which can work correctly on j2re 1.4.2_04, did not work correctly. Please refer the following  informations.
-sample rate 32000bit/sec, sampleSizeInBits is 16bit, mono, signed, little endian sourceDataLine use.
- It seems distorted audio which could not catch the communication.

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1.make sourceDataLine.
2. write audio data.
3. I hear it but output audio is distored.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
1.OK
2.OK
3.I expected audio output correctly in j2re 1.5.0.
ACTUAL -
1.OK
2.OK
3.Audio output Distorted

ERROR MESSAGES/STACK TRACES THAT OCCUR :
nothing.

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
create routine:
	
	private static final int SAMPLE_RATE = 32000;
	
	private static final int CHANNEL = 1;
	
	private static final int BITS = 16;


				format = new AudioFormat(SAMPLE_RATE, BITS, CHANNEL, true, false);
				
				DataLine.Info info = new DataLine.Info(SourceDataLine.class, format);
				System.err.println(info.toString());
				if(!AudioSystem.isLineSupported(info)){
					System.out.println("Line type is not supported: "+info);
					return;
				}
				try{
					sourceLine = (SourceDataLine)AudioSystem.getLine(info);
					sourceLine.open();
				} catch(LineUnavailableException e){
				  System.out.println(e);
				  sourceLine.close();
				  return;
				}

Output routine:
sourceLine.write(b, off, available);
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
nothing.
(Incident Review ID: 275118) 
======================================================================

                                    

Comments
EVALUATION

Contacted submitter for more information.
###@###.### 2004-06-01

Thanks for the complete test program. It uses in fact a wrong call to SourceDataLine.open:
	sourceLine.open();

You should use 
	sourceLine.open(format);

As the API specifies, open() without any parameters will open it with a "default format", which may well be different for different implementations. For more information, see javadoc for Line.open().

It can be argued that the default format should be set to the format in the DataLine.Info class that was used to retrieve this line, if that Info class only has one format specified. Apparently, the 1.4.2 implementation did that.

I leave this bug open to evaluate this.
###@###.### 2004-06-17


The same problem occurs when using Clip's default format:
  // create an info object
  info = new DataLine.Info(Clip.class, ais.getFormat());
  // get Clip from AudioSystem. This Clip is known to
  // support our audio format
  clip = (Clip) AudioSystem.getLine(info);
  // open the clip
  clip.open(clip.getFormat(), data, 0, data.length);

Apparently, this mis-use of DataLine.Info's audio format is quite common.
###@###.### 2004-06-18

Decided to provide backwards compatibility and add an implementation in 1.5. The specification in the javadoc will be updated to make it official, see bug 5067526 for more info.
###@###.### 2004-06-23
                                     
2004-06-23
PUBLIC COMMENTS

1.5 will be fixed so that it remains compatible with older versions. The javadoc will be changed to document this behavior.
###@###.### 2004-06-23
                                     
2004-06-23
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
tiger-rc

FIXED IN:
tiger-rc

INTEGRATED IN:
tiger-b58
tiger-rc


                                     
2004-07-28



Hardware and Software, Engineered to Work Together