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 127
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 131
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 132
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 133
iload 2 /* bufflen */
aload 1 /* format */
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
idiv
istore 3 /* frames */
start local 3 // int frames
3: .line 134
iload 3 /* frames */
i2d
ldc 1.0E9
dmul
4: .line 135
aload 1 /* format */
invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
f2d
5: .line 134
ddiv
d2l
lstore 4 /* nanos */
start local 4 // long nanos
6: .line 136
invokestatic java.lang.System.nanoTime:()J
lstore 6 /* now */
start local 6 // long now
7: .line 137
lload 6 /* now */
lload 4 /* nanos */
ladd
lstore 8 /* next */
start local 8 // long next
8: .line 138
iconst_0
istore 10 /* correction */
start local 10 // int correction
9: .line 140
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 141
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 142
aload 11
monitorexit
12: goto 88
13: .line 140
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 145
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 146
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 147
iload 10 /* correction */
ifne 38
20: .line 148
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 149
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 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: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 151
iconst_0
istore 10 /* correction */
24: .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
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 153
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 154
iconst_2
27: .line 153
idiv
28: .line 154
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 153
isub
istore 10 /* correction */
30: .line 156
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 157
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 158
iconst_2
33: .line 157
idiv
34: .line 158
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 157
isub
istore 10 /* correction */
36: .line 160
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 161
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 145
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 167
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 168
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 167
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 170
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 171
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 172
aload 12
monitorexit
51: goto 60
52: .line 170
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 175
StackMap locals:
StackMap stack:
lconst_1
invokestatic java.lang.Thread.sleep:(J)V
57: .line 176
goto 59
StackMap locals:
StackMap stack: java.lang.InterruptedException
58: pop
59: .line 166
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 181
StackMap locals:
StackMap stack:
iload 10 /* correction */
ifge 62
61: .line 182
iinc 10 /* correction */ 1
goto 77
62: .line 184
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 186
iconst_0
istore 13 /* n */
start local 13 // int n
64: .line 187
goto 73
65: .line 188
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 189
iload 13 /* n */
isub
67: .line 188
invokevirtual javax.sound.sampled.AudioInputStream.read:([BII)I
istore 14 /* s */
start local 14 // int s
68: .line 190
iload 14 /* s */
ifge 70
69: .line 191
new java.io.EOFException
dup
invokespecial java.io.EOFException.<init>:()V
athrow
70: .line 192
StackMap locals: int
StackMap stack:
iload 14 /* s */
ifne 72
71: .line 193
invokestatic java.lang.Thread.yield:()V
72: .line 194
StackMap locals:
StackMap stack:
iload 13 /* n */
iload 14 /* s */
iadd
istore 13 /* n */
end local 14 // int s
73: .line 187
StackMap locals:
StackMap stack:
iload 13 /* n */
aload 12 /* buff */
arraylength
if_icmpne 65
end local 13 // int n
74: .line 196
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 199
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 202
StackMap locals:
StackMap stack:
iload 10 /* correction */
ifle 81
78: .line 203
iinc 10 /* correction */ -1
79: .line 204
invokestatic java.lang.System.nanoTime:()J
lload 4 /* nanos */
ladd
lstore 8 /* next */
80: .line 205
goto 9
81: .line 207
StackMap locals:
StackMap stack:
lload 8 /* next */
invokestatic java.lang.System.nanoTime:()J
lsub
lstore 12 /* wait */
start local 12 // long wait
82: .line 208
lload 12 /* wait */
lconst_0
lcmp
ifle 86
83: .line 210
lload 12 /* wait */
ldc 1000000
ldiv
invokestatic java.lang.Thread.sleep:(J)V
84: .line 211
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 215
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 139
goto 9
88: .line 217
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