class com.sun.media.sound.SoftJitterCorrector$JitterStream extends java.io.InputStream
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.media.sound.SoftJitterCorrector$JitterStream
super_class: java.io.InputStream
{
static int MAX_BUFFER_SIZE;
descriptor: I
flags: (0x0008) ACC_STATIC
boolean active;
descriptor: Z
flags: (0x0000)
java.lang.Thread thread;
descriptor: Ljava/lang/Thread;
flags: (0x0000)
javax.sound.sampled.AudioInputStream stream;
descriptor: Ljavax/sound/sampled/AudioInputStream;
flags: (0x0000)
int writepos;
descriptor: I
flags: (0x0000)
int readpos;
descriptor: I
flags: (0x0000)
byte[][] buffers;
descriptor: [[B
flags: (0x0000)
private final java.lang.Object buffers_mutex;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
int w_count;
descriptor: I
flags: (0x0000)
int w_min_tol;
descriptor: I
flags: (0x0000)
int w_max_tol;
descriptor: I
flags: (0x0000)
int w;
descriptor: I
flags: (0x0000)
int w_min;
descriptor: I
flags: (0x0000)
int bbuffer_pos;
descriptor: I
flags: (0x0000)
int bbuffer_max;
descriptor: I
flags: (0x0000)
byte[] bbuffer;
descriptor: [B
flags: (0x0000)
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc 1048576
putstatic com.sun.media.sound.SoftJitterCorrector$JitterStream.MAX_BUFFER_SIZE:I
return
LocalVariableTable:
Start End Slot Name Signature
public byte[] nextReadBuffer();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers_mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.writepos:I
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
if_icmple 9
2: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.writepos:I
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
isub
istore 2
start local 2 3: iload 2
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min:I
if_icmpge 5
4: aload 0
iload 2
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min:I
5: StackMap locals: java.lang.Object int
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
istore 3
start local 3 6: aload 0
dup
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
iconst_1
iadd
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
7: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
iload 3
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
arraylength
irem
aaload
aload 1
monitorexit
8: areturn
end local 3 end local 2 9: StackMap locals:
StackMap stack:
aload 0
iconst_m1
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min:I
10: aload 0
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_count:I
iconst_1
isub
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w:I
11: aload 1
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 1
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
lconst_1
invokestatic java.lang.Thread.sleep:(J)V
16: goto 19
StackMap locals:
StackMap stack: java.lang.InterruptedException
17: pop
18: aconst_null
areturn
19: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers_mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
20: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.writepos:I
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
if_icmple 28
21: aload 0
iconst_0
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w:I
22: aload 0
iconst_m1
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min:I
23: aload 0
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_count:I
iconst_1
isub
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w:I
24: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
istore 2
start local 2 25: aload 0
dup
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
iconst_1
iadd
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
26: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
iload 2
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
arraylength
irem
aaload
aload 1
monitorexit
27: areturn
end local 2 28: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
29: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
30: aload 1
monitorexit
31: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 32 0 this Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
3 9 2 w_m I
6 9 3 buffpos I
25 28 2 buffpos I
Exception table:
from to target type
1 8 13 any
9 12 13 any
13 14 13 any
15 16 17 Class java.lang.InterruptedException
20 27 30 any
28 29 30 any
30 31 30 any
public byte[] nextWriteBuffer();
descriptor: ()[B
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers_mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.writepos:I
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
arraylength
irem
aaload
aload 1
monitorexit
2: areturn
3: StackMap locals: com.sun.media.sound.SoftJitterCorrector$JitterStream java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public void commit();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers_mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
dup
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.writepos:I
iconst_1
iadd
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.writepos:I
2: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.writepos:I
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
isub
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
arraylength
if_icmple 6
3: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.writepos:I
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
isub
bipush 10
iadd
istore 2
start local 2 4: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
arraylength
iconst_2
imul
iload 2
invokestatic java.lang.Math.max:(II)I
istore 2
5: aload 0
iload 2
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
iconst_0
aaload
arraylength
multianewarray [[B 2
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
end local 2 6: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
7: goto 10
StackMap locals:
StackMap stack: java.lang.Throwable
8: aload 1
monitorexit
9: athrow
10: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
4 6 2 newsize I
Exception table:
from to target type
1 7 8 any
8 9 8 any
void <init>(javax.sound.sampled.AudioInputStream, int, int);
descriptor: (Ljavax/sound/sampled/AudioInputStream;II)V
flags: (0x0000)
Code:
stack=9, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.io.InputStream.<init>:()V
1: aload 0
iconst_1
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.active:Z
2: aload 0
iconst_0
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.writepos:I
3: aload 0
iconst_0
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
4: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers_mutex:Ljava/lang/Object;
5: aload 0
sipush 1000
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_count:I
6: aload 0
iconst_2
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min_tol:I
7: aload 0
bipush 10
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_max_tol:I
8: aload 0
iconst_0
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w:I
9: aload 0
iconst_m1
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min:I
10: aload 0
iconst_0
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer_pos:I
11: aload 0
iconst_0
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer_max:I
12: aload 0
aconst_null
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer:[B
13: aload 0
bipush 10
iload 2
iload 3
idiv
imul
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_count:I
14: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_count:I
bipush 100
if_icmpge 16
15: aload 0
bipush 100
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_count:I
16: StackMap locals: com.sun.media.sound.SoftJitterCorrector$JitterStream javax.sound.sampled.AudioInputStream int int
StackMap stack:
aload 0
17: iload 2
iload 3
idiv
bipush 10
iadd
iload 3
multianewarray [[B 2
18: putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
19: aload 0
getstatic com.sun.media.sound.SoftJitterCorrector$JitterStream.MAX_BUFFER_SIZE:I
iload 3
idiv
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer_max:I
20: aload 0
aload 1
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.stream:Ljavax/sound/sampled/AudioInputStream;
21: new com.sun.media.sound.SoftJitterCorrector$JitterStream$1
dup
aload 0
invokespecial com.sun.media.sound.SoftJitterCorrector$JitterStream$1.<init>:(Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;)V
astore 4
start local 4 22: aload 0
new java.lang.Thread
dup
aconst_null
aload 4
ldc "JitterCorrector"
lconst_0
iconst_0
invokespecial java.lang.Thread.<init>:(Ljava/lang/ThreadGroup;Ljava/lang/Runnable;Ljava/lang/String;JZ)V
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.thread:Ljava/lang/Thread;
23: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.thread:Ljava/lang/Thread;
iconst_1
invokevirtual java.lang.Thread.setDaemon:(Z)V
24: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.thread:Ljava/lang/Thread;
bipush 10
invokevirtual java.lang.Thread.setPriority:(I)V
25: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.thread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.start:()V
26: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
0 27 1 s Ljavax/sound/sampled/AudioInputStream;
0 27 2 buffersize I
0 27 3 smallbuffersize I
22 27 4 runnable Ljava/lang/Runnable;
MethodParameters:
Name Flags
s
buffersize
smallbuffersize
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
dup
astore 1
monitorenter
1: aload 0
iconst_0
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.active:Z
2: aload 1
monitorexit
3: goto 6
StackMap locals: com.sun.media.sound.SoftJitterCorrector$JitterStream com.sun.media.sound.SoftJitterCorrector$JitterStream
StackMap stack: java.lang.Throwable
4: aload 1
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.thread:Ljava/lang/Thread;
invokevirtual java.lang.Thread.join:()V
7: goto 9
StackMap locals:
StackMap stack: java.lang.InterruptedException
8: pop
9: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.stream:Ljavax/sound/sampled/AudioInputStream;
invokevirtual javax.sound.sampled.AudioInputStream.close:()V
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
Exception table:
from to target type
1 3 4 any
4 5 4 any
6 7 8 Class java.lang.InterruptedException
Exceptions:
throws java.io.IOException
public int read();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: iconst_1
newarray 8
astore 1
start local 1 1: aload 0
aload 1
invokevirtual com.sun.media.sound.SoftJitterCorrector$JitterStream.read:([B)I
iconst_m1
if_icmpne 3
2: iconst_m1
ireturn
3: StackMap locals: byte[]
StackMap stack:
aload 1
iconst_0
baload
sipush 255
iand
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
1 4 1 b [B
Exceptions:
throws java.io.IOException
public void fillBuffer();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
aload 0
invokevirtual com.sun.media.sound.SoftJitterCorrector$JitterStream.nextReadBuffer:()[B
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer:[B
1: aload 0
iconst_0
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer_pos:I
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
public int read(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer:[B
ifnonnull 2
1: aload 0
invokevirtual com.sun.media.sound.SoftJitterCorrector$JitterStream.fillBuffer:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer:[B
arraylength
istore 4
start local 4 3: iload 2
iload 3
iadd
istore 5
start local 5 4: goto 13
5: StackMap locals: int int
StackMap stack:
aload 0
invokevirtual com.sun.media.sound.SoftJitterCorrector$JitterStream.available:()I
ifne 7
6: aload 0
invokevirtual com.sun.media.sound.SoftJitterCorrector$JitterStream.fillBuffer:()V
goto 13
7: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer:[B
astore 6
start local 6 8: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer_pos:I
istore 7
start local 7 9: goto 11
10: StackMap locals: byte[] int
StackMap stack:
aload 1
iload 2
iinc 2 1
aload 6
iload 7
iinc 7 1
baload
bastore
11: StackMap locals:
StackMap stack:
iload 2
iload 5
if_icmpge 12
iload 7
iload 4
if_icmplt 10
12: StackMap locals:
StackMap stack:
aload 0
iload 7
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer_pos:I
end local 7 end local 6 13: StackMap locals:
StackMap stack:
iload 2
iload 5
if_icmplt 5
14: iload 3
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 15 0 this Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
0 15 1 b [B
0 15 2 off I
0 15 3 len I
3 15 4 bbuffer_len I
4 15 5 offlen I
8 13 6 bbuffer [B
9 13 7 bbuffer_pos I
MethodParameters:
Name Flags
b
off
len
public int available();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer:[B
arraylength
aload 0
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer_pos:I
isub
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
}
SourceFile: "SoftJitterCorrector.java"
NestHost: com.sun.media.sound.SoftJitterCorrector
InnerClasses:
private JitterStream = com.sun.media.sound.SoftJitterCorrector$JitterStream of com.sun.media.sound.SoftJitterCorrector
com.sun.media.sound.SoftJitterCorrector$JitterStream$1