class com.sun.media.sound.SoftJitterCorrector$JitterStream$1 implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.media.sound.SoftJitterCorrector$JitterStream$1
super_class: java.lang.Object
{
final com.sun.media.sound.SoftJitterCorrector$JitterStream this$1;
descriptor: Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.sun.media.sound.SoftJitterCorrector$JitterStream);
descriptor: (Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // com.sun.media.sound.SoftJitterCorrector$JitterStream$1 this
0: .line 126
aload 0 /* this */
aload 1
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
aload 0 /* this */
invokespecial java.lang.Object.<init>:()V
return
end local 0 // com.sun.media.sound.SoftJitterCorrector$JitterStream$1 this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftJitterCorrector$JitterStream$1;
MethodParameters:
Name Flags
this$0 final
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=15, args_size=1
start local 0 // com.sun.media.sound.SoftJitterCorrector$JitterStream$1 this
0: .line 129
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.stream:Ljavax/sound/sampled/AudioInputStream;
invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
astore 1 /* format */
start local 1 // javax.sound.sampled.AudioFormat format
1: .line 130
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
iconst_0
aaload
arraylength
istore 2 /* bufflen */
start local 2 // int bufflen
2: .line 131
iload 2 /* bufflen */
aload 1 /* format */
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
idiv
istore 3 /* frames */
start local 3 // int frames
3: .line 132
iload 3 /* frames */
i2d
ldc 1.0E9
dmul
4: .line 133
aload 1 /* format */
invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
f2d
5: .line 132
ddiv
d2l
lstore 4 /* nanos */
start local 4 // long nanos
6: .line 134
invokestatic java.lang.System.nanoTime:()J
lstore 6 /* now */
start local 6 // long now
7: .line 135
lload 6 /* now */
lload 4 /* nanos */
ladd
lstore 8 /* next */
start local 8 // long next
8: .line 136
iconst_0
istore 10 /* correction */
start local 10 // int correction
9: .line 138
StackMap locals: com.sun.media.sound.SoftJitterCorrector$JitterStream$1 javax.sound.sampled.AudioFormat int int long long long int
StackMap stack:
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
dup
astore 11
monitorenter
10: .line 139
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.active:Z
ifne 13
11: .line 140
aload 11
monitorexit
12: goto 88
13: .line 138
StackMap locals: com.sun.media.sound.SoftJitterCorrector$JitterStream
StackMap stack:
aload 11
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 11
monitorexit
16: athrow
17: .line 143
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
dup
astore 12
monitorenter
18: .line 144
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.writepos:I
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
isub
istore 11 /* curbuffsize */
start local 11 // int curbuffsize
19: .line 145
iload 10 /* correction */
ifne 38
20: .line 146
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
dup
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w:I
iconst_1
iadd
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w:I
21: .line 147
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min:I
ldc 2147483647
if_icmpeq 38
22: .line 148
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w:I
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_count:I
if_icmpne 38
23: .line 149
iconst_0
istore 10 /* correction */
24: .line 150
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min:I
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min_tol:I
if_icmpge 30
25: .line 151
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min_tol:I
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_max_tol:I
iadd
26: .line 152
iconst_2
27: .line 151
idiv
28: .line 152
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min:I
29: .line 151
isub
istore 10 /* correction */
30: .line 154
StackMap locals: int byte[][]
StackMap stack:
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min:I
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_max_tol:I
if_icmple 36
31: .line 155
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min_tol:I
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_max_tol:I
iadd
32: .line 156
iconst_2
33: .line 155
idiv
34: .line 156
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min:I
35: .line 155
isub
istore 10 /* correction */
36: .line 158
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
iconst_0
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w:I
37: .line 159
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
ldc 2147483647
putfield com.sun.media.sound.SoftJitterCorrector$JitterStream.w_min:I
38: .line 143
StackMap locals:
StackMap stack:
aload 12
monitorexit
39: goto 59
end local 11 // int curbuffsize
StackMap locals: com.sun.media.sound.SoftJitterCorrector$JitterStream$1 javax.sound.sampled.AudioFormat int int long long long int top byte[][]
StackMap stack: java.lang.Throwable
40: aload 12
monitorexit
41: athrow
start local 11 // int curbuffsize
42: .line 165
StackMap locals: com.sun.media.sound.SoftJitterCorrector$JitterStream$1 javax.sound.sampled.AudioFormat int int long long long int int
StackMap stack:
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.buffers:[[B
dup
astore 12
monitorenter
43: .line 166
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.writepos:I
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.readpos:I
isub
istore 11 /* curbuffsize */
44: .line 165
aload 12
monitorexit
45: goto 48
StackMap locals: com.sun.media.sound.SoftJitterCorrector$JitterStream$1 javax.sound.sampled.AudioFormat int int long long long int int byte[][]
StackMap stack: java.lang.Throwable
46: aload 12
monitorexit
47: athrow
48: .line 168
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
dup
astore 12
monitorenter
49: .line 169
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.active:Z
ifne 52
50: .line 170
aload 12
monitorexit
51: goto 60
52: .line 168
StackMap locals: com.sun.media.sound.SoftJitterCorrector$JitterStream
StackMap stack:
aload 12
monitorexit
53: goto 56
StackMap locals:
StackMap stack: java.lang.Throwable
54: aload 12
monitorexit
55: athrow
56: .line 173
StackMap locals:
StackMap stack:
lconst_1
invokestatic java.lang.Thread.sleep:(J)V
57: .line 174
goto 59
StackMap locals:
StackMap stack: java.lang.InterruptedException
58: pop
59: .line 164
StackMap locals:
StackMap stack:
iload 11 /* curbuffsize */
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.bbuffer_max:I
if_icmpgt 42
60: .line 179
StackMap locals:
StackMap stack:
iload 10 /* correction */
ifge 62
61: .line 180
iinc 10 /* correction */ 1
goto 77
62: .line 182
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
invokevirtual com.sun.media.sound.SoftJitterCorrector$JitterStream.nextWriteBuffer:()[B
astore 12 /* buff */
start local 12 // byte[] buff
63: .line 184
iconst_0
istore 13 /* n */
start local 13 // int n
64: .line 185
goto 73
65: .line 186
StackMap locals: byte[] int
StackMap stack:
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream.stream:Ljavax/sound/sampled/AudioInputStream;
aload 12 /* buff */
iload 13 /* n */
aload 12 /* buff */
arraylength
66: .line 187
iload 13 /* n */
isub
67: .line 186
invokevirtual javax.sound.sampled.AudioInputStream.read:([BII)I
istore 14 /* s */
start local 14 // int s
68: .line 188
iload 14 /* s */
ifge 70
69: .line 189
new java.io.EOFException
dup
invokespecial java.io.EOFException.<init>:()V
athrow
70: .line 190
StackMap locals: int
StackMap stack:
iload 14 /* s */
ifne 72
71: .line 191
invokestatic java.lang.Thread.yield:()V
72: .line 192
StackMap locals:
StackMap stack:
iload 13 /* n */
iload 14 /* s */
iadd
istore 13 /* n */
end local 14 // int s
73: .line 185
StackMap locals:
StackMap stack:
iload 13 /* n */
aload 12 /* buff */
arraylength
if_icmpne 65
end local 13 // int n
74: .line 194
goto 76
StackMap locals: com.sun.media.sound.SoftJitterCorrector$JitterStream$1 javax.sound.sampled.AudioFormat int int long long long int int byte[]
StackMap stack: java.io.IOException
75: pop
76: .line 197
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield com.sun.media.sound.SoftJitterCorrector$JitterStream$1.this$1:Lcom/sun/media/sound/SoftJitterCorrector$JitterStream;
invokevirtual com.sun.media.sound.SoftJitterCorrector$JitterStream.commit:()V
end local 12 // byte[] buff
77: .line 200
StackMap locals:
StackMap stack:
iload 10 /* correction */
ifle 81
78: .line 201
iinc 10 /* correction */ -1
79: .line 202
invokestatic java.lang.System.nanoTime:()J
lload 4 /* nanos */
ladd
lstore 8 /* next */
80: .line 203
goto 9
81: .line 205
StackMap locals:
StackMap stack:
lload 8 /* next */
invokestatic java.lang.System.nanoTime:()J
lsub
lstore 12 /* wait */
start local 12 // long wait
82: .line 206
lload 12 /* wait */
lconst_0
lcmp
ifle 86
83: .line 208
lload 12 /* wait */
ldc 1000000
ldiv
invokestatic java.lang.Thread.sleep:(J)V
84: .line 209
goto 86
StackMap locals: com.sun.media.sound.SoftJitterCorrector$JitterStream$1 javax.sound.sampled.AudioFormat int int long long long int int long
StackMap stack: java.lang.InterruptedException
85: pop
86: .line 213
StackMap locals:
StackMap stack:
lload 8 /* next */
lload 4 /* nanos */
ladd
lstore 8 /* next */
end local 12 // long wait
end local 11 // int curbuffsize
87: .line 137
goto 9
88: .line 215
StackMap locals:
StackMap stack:
return
end local 10 // int correction
end local 8 // long next
end local 6 // long now
end local 4 // long nanos
end local 3 // int frames
end local 2 // int bufflen
end local 1 // javax.sound.sampled.AudioFormat format
end local 0 // com.sun.media.sound.SoftJitterCorrector$JitterStream$1 this
LocalVariableTable:
Start End Slot Name Signature
0 89 0 this Lcom/sun/media/sound/SoftJitterCorrector$JitterStream$1;
1 89 1 format Ljavax/sound/sampled/AudioFormat;
2 89 2 bufflen I
3 89 3 frames I
6 89 4 nanos J
7 89 6 now J
8 89 8 next J
9 89 10 correction I
19 40 11 curbuffsize I
42 87 11 curbuffsize I
63 77 12 buff [B
64 74 13 n I
68 73 14 s I
82 87 12 wait J
Exception table:
from to target type
10 12 15 any
13 14 15 any
15 16 15 any
18 39 40 any
40 41 40 any
43 45 46 any
46 47 46 any
49 51 54 any
52 53 54 any
54 55 54 any
56 57 58 Class java.lang.InterruptedException
63 74 75 Class java.io.IOException
83 84 85 Class java.lang.InterruptedException
}
SourceFile: "SoftJitterCorrector.java"
EnclosingMethod: com.sun.media.sound.SoftJitterCorrector$JitterStream.<init>:(Ljavax/sound/sampled/AudioInputStream;II)V
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