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