public final class android.media.ResampleInputStream extends java.io.InputStream
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.media.ResampleInputStream
  super_class: java.io.InputStream
{
  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "ResampleInputStream"

  private java.io.InputStream mInputStream;
    descriptor: Ljava/io/InputStream;
    flags: (0x0002) ACC_PRIVATE

  private final int mRateIn;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int mRateOut;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private byte[] mBuf;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private int mBufCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private static final int mFirLength;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 29

  private final byte[] mOneByte;
    descriptor: [B
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 30
            ldc "media_jni"
            invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
         1: .line 47
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>(java.io.InputStream, int, int);
    descriptor: (Ljava/io/InputStream;II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // android.media.ResampleInputStream this
        start local 1 // java.io.InputStream inputStream
        start local 2 // int rateIn
        start local 3 // int rateOut
         0: .line 59
            aload 0 /* this */
            invokespecial java.io.InputStream.<init>:()V
         1: .line 50
            aload 0 /* this */
            iconst_1
            newarray 8
            putfield android.media.ResampleInputStream.mOneByte:[B
         2: .line 61
            iload 2 /* rateIn */
            iconst_2
            iload 3 /* rateOut */
            imul
            if_icmpeq 3
            new java.lang.IllegalArgumentException
            dup
            ldc "only support 2:1 at the moment"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 62
      StackMap locals: android.media.ResampleInputStream java.io.InputStream int int
      StackMap stack:
            iconst_2
            istore 2 /* rateIn */
         4: .line 63
            iconst_1
            istore 3 /* rateOut */
         5: .line 65
            aload 0 /* this */
            aload 1 /* inputStream */
            putfield android.media.ResampleInputStream.mInputStream:Ljava/io/InputStream;
         6: .line 66
            aload 0 /* this */
            iload 2 /* rateIn */
            putfield android.media.ResampleInputStream.mRateIn:I
         7: .line 67
            aload 0 /* this */
            iload 3 /* rateOut */
            putfield android.media.ResampleInputStream.mRateOut:I
         8: .line 68
            return
        end local 3 // int rateOut
        end local 2 // int rateIn
        end local 1 // java.io.InputStream inputStream
        end local 0 // android.media.ResampleInputStream this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    9     0         this  Landroid/media/ResampleInputStream;
            0    9     1  inputStream  Ljava/io/InputStream;
            0    9     2       rateIn  I
            0    9     3      rateOut  I
    MethodParameters:
             Name  Flags
      inputStream  
      rateIn       
      rateOut      

  public int read();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // android.media.ResampleInputStream this
         0: .line 72
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mOneByte:[B
            iconst_0
            iconst_1
            invokevirtual android.media.ResampleInputStream.read:([BII)I
            istore 1 /* rtn */
        start local 1 // int rtn
         1: .line 73
            iload 1 /* rtn */
            iconst_1
            if_icmpne 2
            sipush 255
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mOneByte:[B
            iconst_0
            baload
            iand
            goto 3
      StackMap locals: int
      StackMap stack:
         2: iconst_m1
      StackMap locals:
      StackMap stack: int
         3: ireturn
        end local 1 // int rtn
        end local 0 // android.media.ResampleInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/ResampleInputStream;
            1    4     1   rtn  I
    Exceptions:
      throws java.io.IOException

  public int read(byte[]);
    descriptor: ([B)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // android.media.ResampleInputStream this
        start local 1 // byte[] b
         0: .line 78
            aload 0 /* this */
            aload 1 /* b */
            iconst_0
            aload 1 /* b */
            arraylength
            invokevirtual android.media.ResampleInputStream.read:([BII)I
            ireturn
        end local 1 // byte[] b
        end local 0 // android.media.ResampleInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/ResampleInputStream;
            0    1     1     b  [B
    Exceptions:
      throws java.io.IOException
    MethodParameters:
      Name  Flags
      b     

  public int read(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=7, args_size=4
        start local 0 // android.media.ResampleInputStream this
        start local 1 // byte[] b
        start local 2 // int offset
        start local 3 // int length
         0: .line 83
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mInputStream:Ljava/io/InputStream;
            ifnonnull 1
            new java.lang.IllegalStateException
            dup
            ldc "not open"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         1: .line 86
      StackMap locals:
      StackMap stack:
            iload 3 /* length */
            iconst_2
            idiv
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mRateIn:I
            imul
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mRateOut:I
            idiv
            bipush 29
            iadd
            iconst_2
            imul
            istore 4 /* nIn */
        start local 4 // int nIn
         2: .line 87
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBuf:[B
            ifnonnull 5
         3: .line 88
            aload 0 /* this */
            iload 4 /* nIn */
            newarray 8
            putfield android.media.ResampleInputStream.mBuf:[B
         4: .line 89
            goto 9
      StackMap locals: int
      StackMap stack:
         5: iload 4 /* nIn */
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBuf:[B
            arraylength
            if_icmple 9
         6: .line 90
            iload 4 /* nIn */
            newarray 8
            astore 5 /* bf */
        start local 5 // byte[] bf
         7: .line 91
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBuf:[B
            iconst_0
            aload 5 /* bf */
            iconst_0
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBufCount:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         8: .line 92
            aload 0 /* this */
            aload 5 /* bf */
            putfield android.media.ResampleInputStream.mBuf:[B
        end local 5 // byte[] bf
         9: .line 97
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBufCount:I
            iconst_2
            idiv
            bipush 29
            isub
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mRateOut:I
            imul
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mRateIn:I
            idiv
            iconst_2
            imul
            istore 5 /* len */
        start local 5 // int len
        10: .line 98
            iload 5 /* len */
            ifle 15
        11: .line 99
            iload 5 /* len */
            iload 3 /* length */
            if_icmpge 12
            iload 5 /* len */
            goto 13
      StackMap locals: int
      StackMap stack:
        12: iload 3 /* length */
            iconst_2
            idiv
            iconst_2
            imul
      StackMap locals:
      StackMap stack: int
        13: istore 3 /* length */
        14: .line 100
            goto 19
        15: .line 103
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mInputStream:Ljava/io/InputStream;
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBuf:[B
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBufCount:I
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBuf:[B
            arraylength
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBufCount:I
            isub
            invokevirtual java.io.InputStream.read:([BII)I
            istore 6 /* n */
        start local 6 // int n
        16: .line 104
            iload 6 /* n */
            iconst_m1
            if_icmpne 17
            iconst_m1
            ireturn
        17: .line 105
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            dup
            getfield android.media.ResampleInputStream.mBufCount:I
            iload 6 /* n */
            iadd
            putfield android.media.ResampleInputStream.mBufCount:I
        end local 6 // int n
        end local 5 // int len
        18: .line 96
            goto 9
        19: .line 109
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBuf:[B
            iconst_0
            aload 1 /* b */
            iload 2 /* offset */
            iload 3 /* length */
            iconst_2
            idiv
            invokestatic android.media.ResampleInputStream.fir21:([BI[BII)V
        20: .line 112
            iload 3 /* length */
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mRateIn:I
            imul
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mRateOut:I
            idiv
            istore 5 /* nFwd */
        start local 5 // int nFwd
        21: .line 113
            aload 0 /* this */
            dup
            getfield android.media.ResampleInputStream.mBufCount:I
            iload 5 /* nFwd */
            isub
            putfield android.media.ResampleInputStream.mBufCount:I
        22: .line 114
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBufCount:I
            ifle 23
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBuf:[B
            iload 5 /* nFwd */
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBuf:[B
            iconst_0
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mBufCount:I
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
        23: .line 116
      StackMap locals: int
      StackMap stack:
            iload 3 /* length */
            ireturn
        end local 5 // int nFwd
        end local 4 // int nIn
        end local 3 // int length
        end local 2 // int offset
        end local 1 // byte[] b
        end local 0 // android.media.ResampleInputStream this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   24     0    this  Landroid/media/ResampleInputStream;
            0   24     1       b  [B
            0   24     2  offset  I
            0   24     3  length  I
            2   24     4     nIn  I
            7    9     5      bf  [B
           10   18     5     len  I
           16   18     6       n  I
           21   24     5    nFwd  I
    Exceptions:
      throws java.io.IOException
    MethodParameters:
        Name  Flags
      b       
      offset  
      length  

  public void close();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // android.media.ResampleInputStream this
         0: .line 130
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mInputStream:Ljava/io/InputStream;
            ifnull 5
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mInputStream:Ljava/io/InputStream;
            invokevirtual java.io.InputStream.close:()V
         1: .line 131
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 1
         3: .line 132
            aload 0 /* this */
            aconst_null
            putfield android.media.ResampleInputStream.mInputStream:Ljava/io/InputStream;
         4: .line 133
            aload 1
            athrow
         5: .line 132
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.media.ResampleInputStream.mInputStream:Ljava/io/InputStream;
         6: .line 134
            return
        end local 0 // android.media.ResampleInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/media/ResampleInputStream;
      Exception table:
        from    to  target  type
           0     2       2  any
    Exceptions:
      throws java.io.IOException

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.media.ResampleInputStream this
         0: .line 138
            aload 0 /* this */
            getfield android.media.ResampleInputStream.mInputStream:Ljava/io/InputStream;
            ifnull 3
         1: .line 139
            aload 0 /* this */
            invokevirtual android.media.ResampleInputStream.close:()V
         2: .line 140
            new java.lang.IllegalStateException
            dup
            ldc "someone forgot to close ResampleInputStream"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 142
      StackMap locals:
      StackMap stack:
            return
        end local 0 // android.media.ResampleInputStream this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/media/ResampleInputStream;
    Exceptions:
      throws java.lang.Throwable

  private static native void fir21(byte[], int, byte[], int, int);
    descriptor: ([BI[BII)V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
    MethodParameters:
           Name  Flags
      in         
      inOffset   
      out        
      outOffset  
      npoints    
}
SourceFile: "ResampleInputStream.java"