public class android.graphics.SurfaceTexture
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.graphics.SurfaceTexture
  super_class: java.lang.Object
{
  private final android.os.Looper mCreatorLooper;
    descriptor: Landroid/os/Looper;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.os.Handler mOnFrameAvailableHandler;
    descriptor: Landroid/os/Handler;
    flags: (0x0002) ACC_PRIVATE

  private long mSurfaceTexture;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long mProducer;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private long mFrameAvailableListener;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private boolean mIsSingleBuffered;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  public void <init>(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.graphics.SurfaceTexture this
        start local 1 // int texName
         0: .line 113
            aload 0 /* this */
            iload 1 /* texName */
            iconst_0
            invokespecial android.graphics.SurfaceTexture.<init>:(IZ)V
         1: .line 114
            return
        end local 1 // int texName
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    2     0     this  Landroid/graphics/SurfaceTexture;
            0    2     1  texName  I
    MethodParameters:
         Name  Flags
      texName  

  public void <init>(int, boolean);
    descriptor: (IZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=3, args_size=3
        start local 0 // android.graphics.SurfaceTexture this
        start local 1 // int texName
        start local 2 // boolean singleBufferMode
         0: .line 133
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 134
            aload 0 /* this */
            invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
            putfield android.graphics.SurfaceTexture.mCreatorLooper:Landroid/os/Looper;
         2: .line 135
            aload 0 /* this */
            iload 2 /* singleBufferMode */
            putfield android.graphics.SurfaceTexture.mIsSingleBuffered:Z
         3: .line 136
            aload 0 /* this */
            iconst_0
            iload 1 /* texName */
            iload 2 /* singleBufferMode */
            new java.lang.ref.WeakReference
            dup
            aload 0 /* this */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            invokevirtual android.graphics.SurfaceTexture.nativeInit:(ZIZLjava/lang/ref/WeakReference;)V
         4: .line 137
            return
        end local 2 // boolean singleBufferMode
        end local 1 // int texName
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Landroid/graphics/SurfaceTexture;
            0    5     1           texName  I
            0    5     2  singleBufferMode  Z
    MethodParameters:
                  Name  Flags
      texName           
      singleBufferMode  

  public void <init>(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=7, locals=2, args_size=2
        start local 0 // android.graphics.SurfaceTexture this
        start local 1 // boolean singleBufferMode
         0: .line 160
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 161
            aload 0 /* this */
            invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
            putfield android.graphics.SurfaceTexture.mCreatorLooper:Landroid/os/Looper;
         2: .line 162
            aload 0 /* this */
            iload 1 /* singleBufferMode */
            putfield android.graphics.SurfaceTexture.mIsSingleBuffered:Z
         3: .line 163
            aload 0 /* this */
            iconst_1
            iconst_0
            iload 1 /* singleBufferMode */
            new java.lang.ref.WeakReference
            dup
            aload 0 /* this */
            invokespecial java.lang.ref.WeakReference.<init>:(Ljava/lang/Object;)V
            invokevirtual android.graphics.SurfaceTexture.nativeInit:(ZIZLjava/lang/ref/WeakReference;)V
         4: .line 164
            return
        end local 1 // boolean singleBufferMode
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    5     0              this  Landroid/graphics/SurfaceTexture;
            0    5     1  singleBufferMode  Z
    MethodParameters:
                  Name  Flags
      singleBufferMode  

  public void setOnFrameAvailableListener(android.graphics.SurfaceTexture$OnFrameAvailableListener);
    descriptor: (Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.graphics.SurfaceTexture this
        start local 1 // android.graphics.SurfaceTexture$OnFrameAvailableListener listener
         0: .line 178
            aload 0 /* this */
            aload 1 /* listener */
            aconst_null
            invokevirtual android.graphics.SurfaceTexture.setOnFrameAvailableListener:(Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;Landroid/os/Handler;)V
         1: .line 179
            return
        end local 1 // android.graphics.SurfaceTexture$OnFrameAvailableListener listener
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    2     0      this  Landroid/graphics/SurfaceTexture;
            0    2     1  listener  Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
    MethodParameters:
          Name  Flags
      listener  

  public void setOnFrameAvailableListener(android.graphics.SurfaceTexture$OnFrameAvailableListener, android.os.Handler);
    descriptor: (Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;Landroid/os/Handler;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=4, args_size=3
        start local 0 // android.graphics.SurfaceTexture this
        start local 1 // android.graphics.SurfaceTexture$OnFrameAvailableListener listener
        start local 2 // android.os.Handler handler
         0: .line 197
            aload 1 /* listener */
            ifnull 7
         1: .line 201
            aload 2 /* handler */
            ifnull 2
            aload 2 /* handler */
            invokevirtual android.os.Handler.getLooper:()Landroid/os/Looper;
            goto 4
         2: .line 202
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.graphics.SurfaceTexture.mCreatorLooper:Landroid/os/Looper;
            ifnull 3
            aload 0 /* this */
            getfield android.graphics.SurfaceTexture.mCreatorLooper:Landroid/os/Looper;
            goto 4
      StackMap locals:
      StackMap stack:
         3: invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
         4: .line 201
      StackMap locals:
      StackMap stack: android.os.Looper
            astore 3 /* looper */
        start local 3 // android.os.Looper looper
         5: .line 203
            aload 0 /* this */
            new android.graphics.SurfaceTexture$1
            dup
            aload 0 /* this */
            aload 3 /* looper */
            aconst_null
            iconst_1
            aload 1 /* listener */
            invokespecial android.graphics.SurfaceTexture$1.<init>:(Landroid/graphics/SurfaceTexture;Landroid/os/Looper;Landroid/os/Handler$Callback;ZLandroid/graphics/SurfaceTexture$OnFrameAvailableListener;)V
            putfield android.graphics.SurfaceTexture.mOnFrameAvailableHandler:Landroid/os/Handler;
        end local 3 // android.os.Looper looper
         6: .line 209
            goto 8
         7: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aconst_null
            putfield android.graphics.SurfaceTexture.mOnFrameAvailableHandler:Landroid/os/Handler;
         8: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 2 // android.os.Handler handler
        end local 1 // android.graphics.SurfaceTexture$OnFrameAvailableListener listener
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    9     0      this  Landroid/graphics/SurfaceTexture;
            0    9     1  listener  Landroid/graphics/SurfaceTexture$OnFrameAvailableListener;
            0    9     2   handler  Landroid/os/Handler;
            5    6     3    looper  Landroid/os/Looper;
    MethodParameters:
          Name  Flags
      listener  final
      handler   

  public void setDefaultBufferSize(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.graphics.SurfaceTexture this
        start local 1 // int width
        start local 2 // int height
         0: .line 234
            aload 0 /* this */
            iload 1 /* width */
            iload 2 /* height */
            invokevirtual android.graphics.SurfaceTexture.nativeSetDefaultBufferSize:(II)V
         1: .line 235
            return
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Landroid/graphics/SurfaceTexture;
            0    2     1   width  I
            0    2     2  height  I
    MethodParameters:
        Name  Flags
      width   
      height  

  public void updateTexImage();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.graphics.SurfaceTexture this
         0: .line 243
            aload 0 /* this */
            invokevirtual android.graphics.SurfaceTexture.nativeUpdateTexImage:()V
         1: .line 244
            return
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/graphics/SurfaceTexture;

  public void releaseTexImage();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.graphics.SurfaceTexture this
         0: .line 252
            aload 0 /* this */
            invokevirtual android.graphics.SurfaceTexture.nativeReleaseTexImage:()V
         1: .line 253
            return
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/graphics/SurfaceTexture;

  public void detachFromGLContext();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.graphics.SurfaceTexture this
         0: .line 267
            aload 0 /* this */
            invokevirtual android.graphics.SurfaceTexture.nativeDetachFromGLContext:()I
            istore 1 /* err */
        start local 1 // int err
         1: .line 268
            iload 1 /* err */
            ifeq 3
         2: .line 269
            new java.lang.RuntimeException
            dup
            ldc "Error during detachFromGLContext (see logcat for details)"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 271
      StackMap locals: int
      StackMap stack:
            return
        end local 1 // int err
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/graphics/SurfaceTexture;
            1    4     1   err  I

  public void attachToGLContext(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.graphics.SurfaceTexture this
        start local 1 // int texName
         0: .line 287
            aload 0 /* this */
            iload 1 /* texName */
            invokevirtual android.graphics.SurfaceTexture.nativeAttachToGLContext:(I)I
            istore 2 /* err */
        start local 2 // int err
         1: .line 288
            iload 2 /* err */
            ifeq 3
         2: .line 289
            new java.lang.RuntimeException
            dup
            ldc "Error during attachToGLContext (see logcat for details)"
            invokespecial java.lang.RuntimeException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 291
      StackMap locals: int
      StackMap stack:
            return
        end local 2 // int err
        end local 1 // int texName
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    4     0     this  Landroid/graphics/SurfaceTexture;
            0    4     1  texName  I
            1    4     2      err  I
    MethodParameters:
         Name  Flags
      texName  

  public void getTransformMatrix(float[]);
    descriptor: ([F)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.graphics.SurfaceTexture this
        start local 1 // float[] mtx
         0: .line 311
            aload 1 /* mtx */
            arraylength
            bipush 16
            if_icmpeq 2
         1: .line 312
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         2: .line 314
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* mtx */
            invokevirtual android.graphics.SurfaceTexture.nativeGetTransformMatrix:([F)V
         3: .line 315
            return
        end local 1 // float[] mtx
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Landroid/graphics/SurfaceTexture;
            0    4     1   mtx  [F
    MethodParameters:
      Name  Flags
      mtx   

  public long getTimestamp();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.graphics.SurfaceTexture this
         0: .line 335
            aload 0 /* this */
            invokevirtual android.graphics.SurfaceTexture.nativeGetTimestamp:()J
            lreturn
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/graphics/SurfaceTexture;

  public void release();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.graphics.SurfaceTexture this
         0: .line 356
            aload 0 /* this */
            invokevirtual android.graphics.SurfaceTexture.nativeRelease:()V
         1: .line 357
            return
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/graphics/SurfaceTexture;

  public boolean isReleased();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.graphics.SurfaceTexture this
         0: .line 365
            aload 0 /* this */
            invokevirtual android.graphics.SurfaceTexture.nativeIsReleased:()Z
            ireturn
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/graphics/SurfaceTexture;

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.graphics.SurfaceTexture this
         0: .line 371
            aload 0 /* this */
            invokevirtual android.graphics.SurfaceTexture.nativeFinalize:()V
         1: .line 372
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 1
         3: .line 373
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         4: .line 374
            aload 1
            athrow
         5: .line 373
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         6: .line 375
            return
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/graphics/SurfaceTexture;
      Exception table:
        from    to  target  type
           0     2       2  any
    Exceptions:
      throws java.lang.Throwable

  private static void postEventFromNative(java.lang.ref.WeakReference<android.graphics.SurfaceTexture>);
    descriptor: (Ljava/lang/ref/WeakReference;)V
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=3, args_size=1
        start local 0 // java.lang.ref.WeakReference weakSelf
         0: .line 382
            aload 0 /* weakSelf */
            invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
            checkcast android.graphics.SurfaceTexture
            astore 1 /* st */
        start local 1 // android.graphics.SurfaceTexture st
         1: .line 383
            aload 1 /* st */
            ifnull 5
         2: .line 384
            aload 1 /* st */
            getfield android.graphics.SurfaceTexture.mOnFrameAvailableHandler:Landroid/os/Handler;
            astore 2 /* handler */
        start local 2 // android.os.Handler handler
         3: .line 385
            aload 2 /* handler */
            ifnull 5
         4: .line 386
            aload 2 /* handler */
            iconst_0
            invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
            pop
        end local 2 // android.os.Handler handler
         5: .line 389
      StackMap locals: android.graphics.SurfaceTexture
      StackMap stack:
            return
        end local 1 // android.graphics.SurfaceTexture st
        end local 0 // java.lang.ref.WeakReference weakSelf
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    6     0  weakSelf  Ljava/lang/ref/WeakReference<Landroid/graphics/SurfaceTexture;>;
            1    6     1        st  Landroid/graphics/SurfaceTexture;
            3    5     2   handler  Landroid/os/Handler;
    Signature: (Ljava/lang/ref/WeakReference<Landroid/graphics/SurfaceTexture;>;)V
    MethodParameters:
          Name  Flags
      weakSelf  

  public boolean isSingleBuffered();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.graphics.SurfaceTexture this
         0: .line 396
            aload 0 /* this */
            getfield android.graphics.SurfaceTexture.mIsSingleBuffered:Z
            ireturn
        end local 0 // android.graphics.SurfaceTexture this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/graphics/SurfaceTexture;

  private native void nativeInit(boolean, int, boolean, java.lang.ref.WeakReference<android.graphics.SurfaceTexture>);
    descriptor: (ZIZLjava/lang/ref/WeakReference;)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws android.view.Surface$OutOfResourcesException
    Signature: (ZIZLjava/lang/ref/WeakReference<Landroid/graphics/SurfaceTexture;>;)V
    MethodParameters:
                  Name  Flags
      isDetached        
      texName           
      singleBufferMode  
      weakSelf          

  private native void nativeFinalize();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private native void nativeGetTransformMatrix(float[]);
    descriptor: ([F)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
      Name  Flags
      mtx   

  private native long nativeGetTimestamp();
    descriptor: ()J
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private native void nativeSetDefaultBufferSize(int, int);
    descriptor: (II)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
        Name  Flags
      width   
      height  

  private native void nativeUpdateTexImage();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private native void nativeReleaseTexImage();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private native int nativeDetachFromGLContext();
    descriptor: ()I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private native int nativeAttachToGLContext(int);
    descriptor: (I)I
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
         Name  Flags
      texName  

  private native void nativeRelease();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private native boolean nativeIsReleased();
    descriptor: ()Z
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
}
SourceFile: "SurfaceTexture.java"
NestMembers:
  android.graphics.SurfaceTexture$1  android.graphics.SurfaceTexture$OnFrameAvailableListener  android.graphics.SurfaceTexture$OutOfResourcesException
InnerClasses:
  android.graphics.SurfaceTexture$1
  public abstract OnFrameAvailableListener = android.graphics.SurfaceTexture$OnFrameAvailableListener of android.graphics.SurfaceTexture
  public OutOfResourcesException = android.graphics.SurfaceTexture$OutOfResourcesException of android.graphics.SurfaceTexture
  public abstract Callback = android.os.Handler$Callback of android.os.Handler
  public OutOfResourcesException = android.view.Surface$OutOfResourcesException of android.view.Surface