public final class com.sun.media.sound.WaveFileWriter extends com.sun.media.sound.SunFileWriter
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.media.sound.WaveFileWriter
super_class: com.sun.media.sound.SunFileWriter
{
static final int RIFF_MAGIC;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1380533830
static final int WAVE_MAGIC;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1463899717
static final int FMT_MAGIC;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1718449184
static final int DATA_MAGIC;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1684108385
static final int WAVE_FORMAT_UNKNOWN;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 0
static final int WAVE_FORMAT_PCM;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 1
static final int WAVE_FORMAT_ADPCM;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 2
static final int WAVE_FORMAT_ALAW;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 6
static final int WAVE_FORMAT_MULAW;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 7
static final int WAVE_FORMAT_OKI_ADPCM;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 16
static final int WAVE_FORMAT_DIGISTD;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 21
static final int WAVE_FORMAT_DIGIFIX;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 22
static final int WAVE_IBM_FORMAT_MULAW;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 257
static final int WAVE_IBM_FORMAT_ALAW;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 258
static final int WAVE_IBM_FORMAT_ADPCM;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 259
static final int WAVE_FORMAT_DVI_ADPCM;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 17
static final int WAVE_FORMAT_SX7383;
descriptor: I
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: 7175
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: aload 0
iconst_1
anewarray javax.sound.sampled.AudioFileFormat$Type
dup
iconst_0
getstatic javax.sound.sampled.AudioFileFormat$Type.WAVE:Ljavax/sound/sampled/AudioFileFormat$Type;
aastore
invokespecial com.sun.media.sound.SunFileWriter.<init>:([Ljavax/sound/sampled/AudioFileFormat$Type;)V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/media/sound/WaveFileWriter;
public javax.sound.sampled.AudioFileFormat$Type[] getAudioFileTypes(javax.sound.sampled.AudioInputStream);
descriptor: (Ljavax/sound/sampled/AudioInputStream;)[Ljavax/sound/sampled/AudioFileFormat$Type;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.media.sound.WaveFileWriter.types:[Ljavax/sound/sampled/AudioFileFormat$Type;
arraylength
anewarray javax.sound.sampled.AudioFileFormat$Type
astore 2
start local 2 1: aload 0
getfield com.sun.media.sound.WaveFileWriter.types:[Ljavax/sound/sampled/AudioFileFormat$Type;
iconst_0
aload 2
iconst_0
aload 0
getfield com.sun.media.sound.WaveFileWriter.types:[Ljavax/sound/sampled/AudioFileFormat$Type;
arraylength
invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
2: aload 1
invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
astore 3
start local 3 3: aload 3
invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
astore 4
start local 4 4: getstatic javax.sound.sampled.AudioFormat$Encoding.ALAW:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 4
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifne 8
5: getstatic javax.sound.sampled.AudioFormat$Encoding.ULAW:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 4
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifne 8
6: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 4
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifne 8
7: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 4
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 9
8: StackMap locals: javax.sound.sampled.AudioFileFormat$Type[] javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding
StackMap stack:
aload 2
areturn
9: StackMap locals:
StackMap stack:
iconst_0
anewarray javax.sound.sampled.AudioFileFormat$Type
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/media/sound/WaveFileWriter;
0 10 1 stream Ljavax/sound/sampled/AudioInputStream;
1 10 2 filetypes [Ljavax/sound/sampled/AudioFileFormat$Type;
3 10 3 format Ljavax/sound/sampled/AudioFormat;
4 10 4 encoding Ljavax/sound/sampled/AudioFormat$Encoding;
MethodParameters:
Name Flags
stream
public int write(javax.sound.sampled.AudioInputStream, javax.sound.sampled.AudioFileFormat$Type, java.io.OutputStream);
descriptor: (Ljavax/sound/sampled/AudioInputStream;Ljavax/sound/sampled/AudioFileFormat$Type;Ljava/io/OutputStream;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=6, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
aload 1
invokevirtual com.sun.media.sound.WaveFileWriter.getAudioFileFormat:(Ljavax/sound/sampled/AudioFileFormat$Type;Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioFileFormat;
checkcast com.sun.media.sound.WaveFileFormat
astore 4
start local 4 1: aload 1
invokevirtual javax.sound.sampled.AudioInputStream.getFrameLength:()J
ldc -1
lcmp
ifne 3
2: new java.io.IOException
dup
ldc "stream length not specified"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: com.sun.media.sound.WaveFileFormat
StackMap stack:
aload 0
aload 1
aload 4
aload 3
invokevirtual com.sun.media.sound.WaveFileWriter.writeWaveFile:(Ljava/io/InputStream;Lcom/sun/media/sound/WaveFileFormat;Ljava/io/OutputStream;)I
istore 5
start local 5 4: iload 5
ireturn
end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/media/sound/WaveFileWriter;
0 5 1 stream Ljavax/sound/sampled/AudioInputStream;
0 5 2 fileType Ljavax/sound/sampled/AudioFileFormat$Type;
0 5 3 out Ljava/io/OutputStream;
1 5 4 waveFileFormat Lcom/sun/media/sound/WaveFileFormat;
4 5 5 bytesWritten I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
stream
fileType
out
public int write(javax.sound.sampled.AudioInputStream, javax.sound.sampled.AudioFileFormat$Type, java.io.File);
descriptor: (Ljavax/sound/sampled/AudioInputStream;Ljavax/sound/sampled/AudioFileFormat$Type;Ljava/io/File;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=11, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 2
aload 1
invokevirtual com.sun.media.sound.WaveFileWriter.getAudioFileFormat:(Ljavax/sound/sampled/AudioFileFormat$Type;Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioFileFormat;
checkcast com.sun.media.sound.WaveFileFormat
astore 4
start local 4 1: new java.io.FileOutputStream
dup
aload 3
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 5
start local 5 2: new java.io.BufferedOutputStream
dup
aload 5
sipush 4096
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;I)V
astore 6
start local 6 3: aload 0
aload 1
aload 4
aload 6
invokevirtual com.sun.media.sound.WaveFileWriter.writeWaveFile:(Ljava/io/InputStream;Lcom/sun/media/sound/WaveFileFormat;Ljava/io/OutputStream;)I
istore 7
start local 7 4: aload 6
invokevirtual java.io.BufferedOutputStream.close:()V
5: aload 4
invokevirtual com.sun.media.sound.WaveFileFormat.getByteLength:()I
iconst_m1
if_icmpne 14
6: iload 7
aload 4
invokevirtual com.sun.media.sound.WaveFileFormat.getHeaderSize:()I
isub
istore 8
start local 8 7: iload 8
aload 4
invokevirtual com.sun.media.sound.WaveFileFormat.getHeaderSize:()I
iadd
bipush 8
isub
istore 9
start local 9 8: new java.io.RandomAccessFile
dup
aload 3
ldc "rw"
invokespecial java.io.RandomAccessFile.<init>:(Ljava/io/File;Ljava/lang/String;)V
astore 10
start local 10 9: aload 10
iconst_4
invokevirtual java.io.RandomAccessFile.skipBytes:(I)I
pop
10: aload 10
aload 0
iload 9
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.RandomAccessFile.writeInt:(I)V
11: aload 10
bipush 12
aload 4
invokevirtual com.sun.media.sound.WaveFileFormat.getWaveType:()I
invokestatic com.sun.media.sound.WaveFileFormat.getFmtChunkSize:(I)I
iadd
iconst_4
iadd
invokevirtual java.io.RandomAccessFile.skipBytes:(I)I
pop
12: aload 10
aload 0
iload 8
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.RandomAccessFile.writeInt:(I)V
13: aload 10
invokevirtual java.io.RandomAccessFile.close:()V
end local 10 end local 9 end local 8 14: StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat java.io.FileOutputStream java.io.BufferedOutputStream int
StackMap stack:
iload 7
ireturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/sun/media/sound/WaveFileWriter;
0 15 1 stream Ljavax/sound/sampled/AudioInputStream;
0 15 2 fileType Ljavax/sound/sampled/AudioFileFormat$Type;
0 15 3 out Ljava/io/File;
1 15 4 waveFileFormat Lcom/sun/media/sound/WaveFileFormat;
2 15 5 fos Ljava/io/FileOutputStream;
3 15 6 bos Ljava/io/BufferedOutputStream;
4 15 7 bytesWritten I
7 14 8 dataLength I
8 14 9 riffLength I
9 14 10 raf Ljava/io/RandomAccessFile;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
stream
fileType
out
private javax.sound.sampled.AudioFileFormat getAudioFileFormat(javax.sound.sampled.AudioFileFormat$Type, javax.sound.sampled.AudioInputStream);
descriptor: (Ljavax/sound/sampled/AudioFileFormat$Type;Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioFileFormat;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aconst_null
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
astore 5
start local 5 3: aload 2
invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
astore 6
start local 6 4: aload 6
invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
astore 7
start local 7 5: aload 0
getfield com.sun.media.sound.WaveFileWriter.types:[Ljavax/sound/sampled/AudioFileFormat$Type;
iconst_0
aaload
aload 1
invokevirtual javax.sound.sampled.AudioFileFormat$Type.equals:(Ljava/lang/Object;)Z
ifne 7
6: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "File type "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " not supported."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
7: StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioFileFormat$Type javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFormat com.sun.media.sound.WaveFileFormat javax.sound.sampled.AudioFormat$Encoding javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding
StackMap stack:
iconst_1
istore 10
start local 10 8: getstatic javax.sound.sampled.AudioFormat$Encoding.ALAW:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 7
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifne 10
9: getstatic javax.sound.sampled.AudioFormat$Encoding.ULAW:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 7
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 17
10: StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioFileFormat$Type javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFormat com.sun.media.sound.WaveFileFormat javax.sound.sampled.AudioFormat$Encoding javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding top top int
StackMap stack:
aload 7
astore 5
11: aload 6
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
istore 8
start local 8 12: aload 7
getstatic javax.sound.sampled.AudioFormat$Encoding.ALAW:Ljavax/sound/sampled/AudioFormat$Encoding;
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 15
13: bipush 6
istore 10
14: goto 23
15: StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioFileFormat$Type javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFormat com.sun.media.sound.WaveFileFormat javax.sound.sampled.AudioFormat$Encoding javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding int top int
StackMap stack:
bipush 7
istore 10
16: goto 23
end local 8 StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioFileFormat$Type javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFormat com.sun.media.sound.WaveFileFormat javax.sound.sampled.AudioFormat$Encoding javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding top top int
StackMap stack:
17: aload 6
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
bipush 8
if_icmpne 21
18: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
astore 5
19: bipush 8
istore 8
start local 8 20: goto 23
end local 8 21: StackMap locals:
StackMap stack:
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
astore 5
22: aload 6
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
istore 8
start local 8 23: StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioFileFormat$Type javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFormat com.sun.media.sound.WaveFileFormat javax.sound.sampled.AudioFormat$Encoding javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding int top int
StackMap stack:
new javax.sound.sampled.AudioFormat
dup
aload 5
24: aload 6
invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
25: iload 8
26: aload 6
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
27: aload 6
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
28: aload 6
invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
29: iconst_0
30: invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
astore 3
31: aload 2
invokevirtual javax.sound.sampled.AudioInputStream.getFrameLength:()J
ldc -1
lcmp
ifeq 36
32: aload 2
invokevirtual javax.sound.sampled.AudioInputStream.getFrameLength:()J
l2i
aload 6
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
imul
33: iload 10
invokestatic com.sun.media.sound.WaveFileFormat.getHeaderSize:(I)I
34: iadd
istore 9
start local 9 35: goto 37
end local 9 36: StackMap locals:
StackMap stack:
iconst_m1
istore 9
start local 9 37: StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioFileFormat$Type javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFormat com.sun.media.sound.WaveFileFormat javax.sound.sampled.AudioFormat$Encoding javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding int int int
StackMap stack:
new com.sun.media.sound.WaveFileFormat
dup
getstatic javax.sound.sampled.AudioFileFormat$Type.WAVE:Ljavax/sound/sampled/AudioFileFormat$Type;
38: iload 9
39: aload 3
40: aload 2
invokevirtual javax.sound.sampled.AudioInputStream.getFrameLength:()J
l2i
41: invokespecial com.sun.media.sound.WaveFileFormat.<init>:(Ljavax/sound/sampled/AudioFileFormat$Type;ILjavax/sound/sampled/AudioFormat;I)V
astore 4
42: aload 4
areturn
end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 43 0 this Lcom/sun/media/sound/WaveFileWriter;
0 43 1 type Ljavax/sound/sampled/AudioFileFormat$Type;
0 43 2 stream Ljavax/sound/sampled/AudioInputStream;
1 43 3 format Ljavax/sound/sampled/AudioFormat;
2 43 4 fileFormat Lcom/sun/media/sound/WaveFileFormat;
3 43 5 encoding Ljavax/sound/sampled/AudioFormat$Encoding;
4 43 6 streamFormat Ljavax/sound/sampled/AudioFormat;
5 43 7 streamEncoding Ljavax/sound/sampled/AudioFormat$Encoding;
12 17 8 sampleSizeInBits I
20 21 8 sampleSizeInBits I
23 43 8 sampleSizeInBits I
35 36 9 fileSize I
37 43 9 fileSize I
8 43 10 waveType I
MethodParameters:
Name Flags
type
stream
private int writeWaveFile(java.io.InputStream, com.sun.media.sound.WaveFileFormat, java.io.OutputStream);
descriptor: (Ljava/io/InputStream;Lcom/sun/media/sound/WaveFileFormat;Ljava/io/OutputStream;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=9, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iconst_0
istore 4
start local 4 1: iconst_0
istore 5
start local 5 2: aload 0
aload 2
aload 1
invokevirtual com.sun.media.sound.WaveFileWriter.getFileStream:(Lcom/sun/media/sound/WaveFileFormat;Ljava/io/InputStream;)Ljava/io/InputStream;
astore 6
start local 6 3: sipush 4096
newarray 8
astore 7
start local 7 4: aload 2
invokevirtual com.sun.media.sound.WaveFileFormat.getByteLength:()I
istore 8
start local 8 5: goto 18
6: StackMap locals: com.sun.media.sound.WaveFileWriter java.io.InputStream com.sun.media.sound.WaveFileFormat java.io.OutputStream int int java.io.InputStream byte[] int
StackMap stack:
iload 8
ifle 16
7: iload 4
iload 8
if_icmpge 12
8: aload 3
aload 7
iconst_0
iload 4
invokevirtual java.io.OutputStream.write:([BII)V
9: iload 5
iload 4
iadd
istore 5
10: iload 8
iload 4
isub
istore 8
11: goto 18
12: StackMap locals:
StackMap stack:
aload 3
aload 7
iconst_0
iload 8
invokevirtual java.io.OutputStream.write:([BII)V
13: iload 5
iload 8
iadd
istore 5
14: iconst_0
istore 8
15: goto 19
16: StackMap locals:
StackMap stack:
aload 3
aload 7
iconst_0
iload 4
invokevirtual java.io.OutputStream.write:([BII)V
17: iload 5
iload 4
iadd
istore 5
18: StackMap locals:
StackMap stack:
aload 6
aload 7
invokevirtual java.io.InputStream.read:([B)I
dup
istore 4
ifge 6
19: StackMap locals:
StackMap stack:
iload 5
ireturn
end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lcom/sun/media/sound/WaveFileWriter;
0 20 1 in Ljava/io/InputStream;
0 20 2 waveFileFormat Lcom/sun/media/sound/WaveFileFormat;
0 20 3 out Ljava/io/OutputStream;
1 20 4 bytesRead I
2 20 5 bytesWritten I
3 20 6 fileStream Ljava/io/InputStream;
4 20 7 buffer [B
5 20 8 maxLength I
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
in
waveFileFormat
out
private java.io.InputStream getFileStream(com.sun.media.sound.WaveFileFormat, java.io.InputStream);
descriptor: (Lcom/sun/media/sound/WaveFileFormat;Ljava/io/InputStream;)Ljava/io/InputStream;
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=27, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.sun.media.sound.WaveFileFormat.getFormat:()Ljavax/sound/sampled/AudioFormat;
astore 3
start local 3 1: aload 1
invokevirtual com.sun.media.sound.WaveFileFormat.getHeaderSize:()I
istore 4
start local 4 2: ldc 1380533830
istore 5
start local 5 3: ldc 1463899717
istore 6
start local 6 4: ldc 1718449184
istore 7
start local 7 5: aload 1
invokevirtual com.sun.media.sound.WaveFileFormat.getWaveType:()I
invokestatic com.sun.media.sound.WaveFileFormat.getFmtChunkSize:(I)I
istore 8
start local 8 6: aload 1
invokevirtual com.sun.media.sound.WaveFileFormat.getWaveType:()I
i2s
istore 9
start local 9 7: aload 3
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
i2s
istore 10
start local 10 8: aload 3
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
i2s
istore 11
start local 11 9: aload 3
invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
f2i
istore 12
start local 12 10: aload 3
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
istore 13
start local 13 11: aload 3
invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
pop
12: iload 10
iload 11
imul
iload 12
imul
bipush 8
idiv
istore 14
start local 14 13: iload 11
bipush 8
idiv
iload 10
imul
i2s
istore 15
start local 15 14: ldc 1684108385
istore 16
start local 16 15: aload 1
invokevirtual com.sun.media.sound.WaveFileFormat.getFrameLength:()I
iload 13
imul
istore 17
start local 17 16: aload 1
invokevirtual com.sun.media.sound.WaveFileFormat.getByteLength:()I
pop
17: iload 17
iload 4
iadd
bipush 8
isub
istore 18
start local 18 18: aconst_null
astore 19
start local 19 19: aconst_null
astore 20
start local 20 20: aconst_null
astore 21
start local 21 21: aconst_null
astore 22
start local 22 22: aconst_null
astore 23
start local 23 23: aconst_null
astore 24
start local 24 24: aconst_null
astore 25
start local 25 25: aload 2
astore 26
start local 26 26: aload 2
instanceof javax.sound.sampled.AudioInputStream
ifeq 59
27: aload 2
checkcast javax.sound.sampled.AudioInputStream
invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
astore 24
28: aload 24
invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
astore 25
29: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 25
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 43
30: iload 11
bipush 8
if_icmpne 43
31: iconst_1
istore 9
32: new javax.sound.sampled.AudioFormat
dup
33: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
34: aload 24
invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
35: aload 24
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
36: aload 24
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
37: aload 24
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
38: aload 24
invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
39: iconst_0
40: invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
41: aload 2
checkcast javax.sound.sampled.AudioInputStream
42: invokestatic javax.sound.sampled.AudioSystem.getAudioInputStream:(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioInputStream;
astore 26
43: StackMap locals: com.sun.media.sound.WaveFileWriter com.sun.media.sound.WaveFileFormat java.io.InputStream javax.sound.sampled.AudioFormat int int int int int int int int int int int int int int int byte[] java.io.ByteArrayInputStream java.io.ByteArrayOutputStream java.io.DataOutputStream java.io.SequenceInputStream javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding java.io.InputStream
StackMap stack:
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 25
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 44
aload 24
invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
ifne 46
44: StackMap locals:
StackMap stack:
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 25
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 45
aload 24
invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
ifeq 46
45: StackMap locals:
StackMap stack:
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 25
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 59
aload 24
invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
ifeq 59
46: StackMap locals:
StackMap stack:
iload 11
bipush 8
if_icmpeq 59
47: iconst_1
istore 9
48: new javax.sound.sampled.AudioFormat
dup
49: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
50: aload 24
invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
51: aload 24
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
52: aload 24
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
53: aload 24
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
54: aload 24
invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
55: iconst_0
56: invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
57: aload 2
checkcast javax.sound.sampled.AudioInputStream
58: invokestatic javax.sound.sampled.AudioSystem.getAudioInputStream:(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioInputStream;
astore 26
59: StackMap locals:
StackMap stack:
new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 21
60: new java.io.DataOutputStream
dup
aload 21
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 22
61: aload 22
iload 5
invokevirtual java.io.DataOutputStream.writeInt:(I)V
62: aload 22
aload 0
iload 18
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
63: aload 22
iload 6
invokevirtual java.io.DataOutputStream.writeInt:(I)V
64: aload 22
iload 7
invokevirtual java.io.DataOutputStream.writeInt:(I)V
65: aload 22
aload 0
iload 8
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
66: aload 22
aload 0
iload 9
invokevirtual com.sun.media.sound.WaveFileWriter.big2littleShort:(S)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
67: aload 22
aload 0
iload 10
invokevirtual com.sun.media.sound.WaveFileWriter.big2littleShort:(S)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
68: aload 22
aload 0
iload 12
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
69: aload 22
aload 0
iload 14
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
70: aload 22
aload 0
iload 15
invokevirtual com.sun.media.sound.WaveFileWriter.big2littleShort:(S)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
71: aload 22
aload 0
iload 11
invokevirtual com.sun.media.sound.WaveFileWriter.big2littleShort:(S)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
72: iload 9
iconst_1
if_icmpeq 74
73: aload 22
iconst_0
invokevirtual java.io.DataOutputStream.writeShort:(I)V
74: StackMap locals:
StackMap stack:
aload 22
iload 16
invokevirtual java.io.DataOutputStream.writeInt:(I)V
75: aload 22
aload 0
iload 17
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
76: aload 22
invokevirtual java.io.DataOutputStream.close:()V
77: aload 21
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
astore 19
78: new java.io.ByteArrayInputStream
dup
aload 19
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
astore 20
79: new java.io.SequenceInputStream
dup
aload 20
aload 26
invokespecial java.io.SequenceInputStream.<init>:(Ljava/io/InputStream;Ljava/io/InputStream;)V
astore 23
80: aload 23
areturn
end local 26 end local 25 end local 24 end local 23 end local 22 end local 21 end local 20 end local 19 end local 18 end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 81 0 this Lcom/sun/media/sound/WaveFileWriter;
0 81 1 waveFileFormat Lcom/sun/media/sound/WaveFileFormat;
0 81 2 audioStream Ljava/io/InputStream;
1 81 3 audioFormat Ljavax/sound/sampled/AudioFormat;
2 81 4 headerLength I
3 81 5 riffMagic I
4 81 6 waveMagic I
5 81 7 fmtMagic I
6 81 8 fmtLength I
7 81 9 wav_type S
8 81 10 channels S
9 81 11 sampleSizeInBits S
10 81 12 sampleRate I
11 81 13 frameSizeInBytes I
13 81 14 avgBytesPerSec I
14 81 15 blockAlign S
15 81 16 dataMagic I
16 81 17 dataLength I
18 81 18 riffLength I
19 81 19 header [B
20 81 20 headerStream Ljava/io/ByteArrayInputStream;
21 81 21 baos Ljava/io/ByteArrayOutputStream;
22 81 22 dos Ljava/io/DataOutputStream;
23 81 23 waveStream Ljava/io/SequenceInputStream;
24 81 24 audioStreamFormat Ljavax/sound/sampled/AudioFormat;
25 81 25 encoding Ljavax/sound/sampled/AudioFormat$Encoding;
26 81 26 codedAudioStream Ljava/io/InputStream;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
waveFileFormat
audioStream
}
SourceFile: "WaveFileWriter.java"
InnerClasses:
public Type = javax.sound.sampled.AudioFileFormat$Type of javax.sound.sampled.AudioFileFormat
public Encoding = javax.sound.sampled.AudioFormat$Encoding of javax.sound.sampled.AudioFormat