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
{
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=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 3
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: 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 4: aload 1
invokevirtual javax.sound.sampled.AudioInputStream.getFrameLength:()J
ldc -1
lcmp
ifne 6
5: new java.io.IOException
dup
ldc "stream length not specified"
invokespecial java.io.IOException.<init>:(Ljava/lang/String;)V
athrow
6: 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
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/media/sound/WaveFileWriter;
0 7 1 stream Ljavax/sound/sampled/AudioInputStream;
0 7 2 fileType Ljavax/sound/sampled/AudioFileFormat$Type;
0 7 3 out Ljava/io/OutputStream;
4 7 4 waveFileFormat Lcom/sun/media/sound/WaveFileFormat;
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 1
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
2: aload 3
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
3: 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 4: aconst_null
astore 6
aconst_null
astore 7
5: new java.io.FileOutputStream
dup
aload 3
invokespecial java.io.FileOutputStream.<init>:(Ljava/io/File;)V
astore 8
start local 8 6: new java.io.BufferedOutputStream
dup
aload 8
invokespecial java.io.BufferedOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 9
start local 9 7: aload 0
aload 1
aload 4
aload 9
invokevirtual com.sun.media.sound.WaveFileWriter.writeWaveFile:(Ljava/io/InputStream;Lcom/sun/media/sound/WaveFileFormat;Ljava/io/OutputStream;)I
istore 5
start local 5 8: aload 9
ifnull 11
aload 9
invokevirtual java.io.BufferedOutputStream.close:()V
goto 11
end local 5 StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat top java.lang.Throwable java.lang.Throwable java.io.FileOutputStream java.io.BufferedOutputStream
StackMap stack: java.lang.Throwable
9: astore 6
aload 9
ifnull 10
aload 9
invokevirtual java.io.BufferedOutputStream.close:()V
end local 9 StackMap locals:
StackMap stack:
10: aload 6
athrow
start local 5 StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat int java.lang.Throwable java.lang.Throwable java.io.FileOutputStream
StackMap stack:
11: aload 8
ifnull 19
aload 8
invokevirtual java.io.FileOutputStream.close:()V
goto 19
end local 5 StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat top java.lang.Throwable java.lang.Throwable java.io.FileOutputStream
StackMap stack: java.lang.Throwable
12: astore 7
aload 6
ifnonnull 13
aload 7
astore 6
goto 14
StackMap locals:
StackMap stack:
13: aload 6
aload 7
if_acmpeq 14
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
14: aload 8
ifnull 15
aload 8
invokevirtual java.io.FileOutputStream.close:()V
end local 8 StackMap locals:
StackMap stack:
15: aload 6
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
16: astore 7
aload 6
ifnonnull 17
aload 7
astore 6
goto 18
StackMap locals:
StackMap stack:
17: aload 6
aload 7
if_acmpeq 18
aload 6
aload 7
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
18: aload 6
athrow
start local 5 19: StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat int
StackMap stack:
aload 4
invokevirtual com.sun.media.sound.WaveFileFormat.getByteLength:()I
iconst_m1
if_icmpne 38
20: iload 5
aload 4
invokevirtual com.sun.media.sound.WaveFileFormat.getHeaderSize:()I
isub
istore 6
start local 6 21: iload 6
aload 4
invokevirtual com.sun.media.sound.WaveFileFormat.getHeaderSize:()I
iadd
bipush 8
isub
istore 7
start local 7 22: aconst_null
astore 8
aconst_null
astore 9
23: 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 24: aload 10
iconst_4
invokevirtual java.io.RandomAccessFile.skipBytes:(I)I
pop
25: aload 10
aload 0
iload 7
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.RandomAccessFile.writeInt:(I)V
26: aload 10
bipush 12
27: aload 4
invokevirtual com.sun.media.sound.WaveFileFormat.getWaveType:()I
28: invokestatic com.sun.media.sound.WaveFileFormat.getFmtChunkSize:(I)I
iadd
29: iconst_4
iadd
30: invokevirtual java.io.RandomAccessFile.skipBytes:(I)I
pop
31: aload 10
aload 0
iload 6
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.RandomAccessFile.writeInt:(I)V
32: aload 10
ifnull 38
aload 10
invokevirtual java.io.RandomAccessFile.close:()V
goto 38
StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat int int int java.lang.Throwable java.lang.Throwable java.io.RandomAccessFile
StackMap stack: java.lang.Throwable
33: astore 8
aload 10
ifnull 34
aload 10
invokevirtual java.io.RandomAccessFile.close:()V
end local 10 StackMap locals:
StackMap stack:
34: aload 8
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
35: astore 9
aload 8
ifnonnull 36
aload 9
astore 8
goto 37
StackMap locals:
StackMap stack:
36: aload 8
aload 9
if_acmpeq 37
aload 8
aload 9
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
37: aload 8
athrow
end local 7 end local 6 38: StackMap locals: com.sun.media.sound.WaveFileWriter javax.sound.sampled.AudioInputStream javax.sound.sampled.AudioFileFormat$Type java.io.File com.sun.media.sound.WaveFileFormat int
StackMap stack:
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 39 0 this Lcom/sun/media/sound/WaveFileWriter;
0 39 1 stream Ljavax/sound/sampled/AudioInputStream;
0 39 2 fileType Ljavax/sound/sampled/AudioFileFormat$Type;
0 39 3 out Ljava/io/File;
4 39 4 waveFileFormat Lcom/sun/media/sound/WaveFileFormat;
8 9 5 bytesWritten I
11 12 5 bytesWritten I
19 39 5 bytesWritten I
6 15 8 fos Ljava/io/FileOutputStream;
7 10 9 bos Ljava/io/BufferedOutputStream;
21 38 6 dataLength I
22 38 7 riffLength I
24 34 10 raf Ljava/io/RandomAccessFile;
Exception table:
from to target type
7 8 9 any
6 11 12 any
5 16 16 any
24 32 33 any
23 35 35 any
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: aload 0
aload 1
aload 2
invokevirtual com.sun.media.sound.WaveFileWriter.isFileTypeSupported:(Ljavax/sound/sampled/AudioFileFormat$Type;Ljavax/sound/sampled/AudioInputStream;)Z
ifne 2
1: 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
2: StackMap locals:
StackMap stack:
aconst_null
astore 3
start local 3 3: aconst_null
astore 4
start local 4 4: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
astore 5
start local 5 5: aload 2
invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
astore 6
start local 6 6: aload 6
invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
astore 7
start local 7 7: 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
i2l
39: aload 3
40: aload 2
invokevirtual javax.sound.sampled.AudioInputStream.getFrameLength:()J
l2i
i2l
41: invokespecial com.sun.media.sound.WaveFileFormat.<init>:(Ljavax/sound/sampled/AudioFileFormat$Type;JLjavax/sound/sampled/AudioFormat;J)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;
3 43 3 format Ljavax/sound/sampled/AudioFormat;
4 43 4 fileFormat Lcom/sun/media/sound/WaveFileFormat;
5 43 5 encoding Ljavax/sound/sampled/AudioFormat$Encoding;
6 43 6 streamFormat Ljavax/sound/sampled/AudioFormat;
7 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: aload 2
astore 21
start local 21 21: aload 2
instanceof javax.sound.sampled.AudioInputStream
ifeq 54
22: aload 2
checkcast javax.sound.sampled.AudioInputStream
invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
astore 19
23: aload 19
invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
astore 20
24: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 20
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 38
25: iload 11
bipush 8
if_icmpne 38
26: iconst_1
istore 9
27: new javax.sound.sampled.AudioFormat
dup
28: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
29: aload 19
invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
30: aload 19
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
31: aload 19
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
32: aload 19
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
33: aload 19
invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
34: iconst_0
35: invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
36: aload 2
checkcast javax.sound.sampled.AudioInputStream
37: invokestatic javax.sound.sampled.AudioSystem.getAudioInputStream:(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioInputStream;
astore 21
38: 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 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 20
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 39
aload 19
invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
ifne 41
39: StackMap locals:
StackMap stack:
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 20
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 40
aload 19
invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
ifeq 41
40: StackMap locals:
StackMap stack:
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
aload 20
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 54
aload 19
invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
ifeq 54
41: StackMap locals:
StackMap stack:
iload 11
bipush 8
if_icmpeq 54
42: iconst_1
istore 9
43: new javax.sound.sampled.AudioFormat
dup
44: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
45: aload 19
invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
46: aload 19
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
47: aload 19
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
48: aload 19
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
49: aload 19
invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
50: iconst_0
51: invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
52: aload 2
checkcast javax.sound.sampled.AudioInputStream
53: invokestatic javax.sound.sampled.AudioSystem.getAudioInputStream:(Ljavax/sound/sampled/AudioFormat;Ljavax/sound/sampled/AudioInputStream;)Ljavax/sound/sampled/AudioInputStream;
astore 21
54: StackMap locals:
StackMap stack:
aconst_null
astore 23
aconst_null
astore 24
55: new java.io.ByteArrayOutputStream
dup
invokespecial java.io.ByteArrayOutputStream.<init>:()V
astore 25
start local 25 56: new java.io.DataOutputStream
dup
aload 25
invokespecial java.io.DataOutputStream.<init>:(Ljava/io/OutputStream;)V
astore 26
start local 26 57: aload 26
iload 5
invokevirtual java.io.DataOutputStream.writeInt:(I)V
58: aload 26
aload 0
iload 18
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
59: aload 26
iload 6
invokevirtual java.io.DataOutputStream.writeInt:(I)V
60: aload 26
iload 7
invokevirtual java.io.DataOutputStream.writeInt:(I)V
61: aload 26
aload 0
iload 8
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
62: aload 26
aload 0
iload 9
invokevirtual com.sun.media.sound.WaveFileWriter.big2littleShort:(S)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
63: aload 26
aload 0
iload 10
invokevirtual com.sun.media.sound.WaveFileWriter.big2littleShort:(S)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
64: aload 26
aload 0
iload 12
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
65: aload 26
aload 0
iload 14
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
66: aload 26
aload 0
iload 15
invokevirtual com.sun.media.sound.WaveFileWriter.big2littleShort:(S)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
67: aload 26
aload 0
iload 11
invokevirtual com.sun.media.sound.WaveFileWriter.big2littleShort:(S)S
invokevirtual java.io.DataOutputStream.writeShort:(I)V
68: iload 9
iconst_1
if_icmpeq 70
69: aload 26
iconst_0
invokevirtual java.io.DataOutputStream.writeShort:(I)V
70: 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 javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding java.io.InputStream top java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream java.io.DataOutputStream
StackMap stack:
aload 26
iload 16
invokevirtual java.io.DataOutputStream.writeInt:(I)V
71: aload 26
aload 0
iload 17
invokevirtual com.sun.media.sound.WaveFileWriter.big2little:(I)I
invokevirtual java.io.DataOutputStream.writeInt:(I)V
72: aload 25
invokevirtual java.io.ByteArrayOutputStream.toByteArray:()[B
astore 22
start local 22 73: aload 26
ifnull 76
aload 26
invokevirtual java.io.DataOutputStream.close:()V
goto 76
end local 22 StackMap locals:
StackMap stack: java.lang.Throwable
74: astore 23
aload 26
ifnull 75
aload 26
invokevirtual java.io.DataOutputStream.close:()V
end local 26 StackMap locals:
StackMap stack:
75: aload 23
athrow
start local 22 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 javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding java.io.InputStream byte[] java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream
StackMap stack:
76: aload 25
ifnull 84
aload 25
invokevirtual java.io.ByteArrayOutputStream.close:()V
goto 84
end local 22 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 javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding java.io.InputStream top java.lang.Throwable java.lang.Throwable java.io.ByteArrayOutputStream
StackMap stack: java.lang.Throwable
77: astore 24
aload 23
ifnonnull 78
aload 24
astore 23
goto 79
StackMap locals:
StackMap stack:
78: aload 23
aload 24
if_acmpeq 79
aload 23
aload 24
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
79: aload 25
ifnull 80
aload 25
invokevirtual java.io.ByteArrayOutputStream.close:()V
end local 25 StackMap locals:
StackMap stack:
80: aload 23
athrow
StackMap locals:
StackMap stack: java.lang.Throwable
81: astore 24
aload 23
ifnonnull 82
aload 24
astore 23
goto 83
StackMap locals:
StackMap stack:
82: aload 23
aload 24
if_acmpeq 83
aload 23
aload 24
invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
StackMap locals:
StackMap stack:
83: aload 23
athrow
start local 22 84: 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 javax.sound.sampled.AudioFormat javax.sound.sampled.AudioFormat$Encoding java.io.InputStream byte[]
StackMap stack:
new java.io.SequenceInputStream
dup
new java.io.ByteArrayInputStream
dup
aload 22
invokespecial java.io.ByteArrayInputStream.<init>:([B)V
85: new com.sun.media.sound.SunFileWriter$NoCloseInputStream
dup
aload 0
aload 21
invokespecial com.sun.media.sound.SunFileWriter$NoCloseInputStream.<init>:(Lcom/sun/media/sound/SunFileWriter;Ljava/io/InputStream;)V
86: invokespecial java.io.SequenceInputStream.<init>:(Ljava/io/InputStream;Ljava/io/InputStream;)V
areturn
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 87 0 this Lcom/sun/media/sound/WaveFileWriter;
0 87 1 waveFileFormat Lcom/sun/media/sound/WaveFileFormat;
0 87 2 audioStream Ljava/io/InputStream;
1 87 3 audioFormat Ljavax/sound/sampled/AudioFormat;
2 87 4 headerLength I
3 87 5 riffMagic I
4 87 6 waveMagic I
5 87 7 fmtMagic I
6 87 8 fmtLength I
7 87 9 wav_type S
8 87 10 channels S
9 87 11 sampleSizeInBits S
10 87 12 sampleRate I
11 87 13 frameSizeInBytes I
13 87 14 avgBytesPerSec I
14 87 15 blockAlign S
15 87 16 dataMagic I
16 87 17 dataLength I
18 87 18 riffLength I
19 87 19 audioStreamFormat Ljavax/sound/sampled/AudioFormat;
20 87 20 encoding Ljavax/sound/sampled/AudioFormat$Encoding;
21 87 21 codedAudioStream Ljava/io/InputStream;
73 74 22 header [B
76 77 22 header [B
84 87 22 header [B
56 80 25 baos Ljava/io/ByteArrayOutputStream;
57 75 26 dos Ljava/io/DataOutputStream;
Exception table:
from to target type
57 73 74 any
56 76 77 any
55 81 81 any
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
waveFileFormat
audioStream
}
SourceFile: "WaveFileWriter.java"
InnerClasses:
final NoCloseInputStream = com.sun.media.sound.SunFileWriter$NoCloseInputStream of com.sun.media.sound.SunFileWriter
public Type = javax.sound.sampled.AudioFileFormat$Type of javax.sound.sampled.AudioFileFormat
public Encoding = javax.sound.sampled.AudioFormat$Encoding of javax.sound.sampled.AudioFormat