public class android.media.ImageReader implements java.lang.AutoCloseable
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.media.ImageReader
super_class: java.lang.Object
{
private static final int ACQUIRE_SUCCESS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private static final int ACQUIRE_NO_BUFS;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int ACQUIRE_MAX_IMAGES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final long BUFFER_USAGE_UNKNOWN;
descriptor: J
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 0
private final int mWidth;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mHeight;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mFormat;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mMaxImages;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int mNumPlanes;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final android.view.Surface mSurface;
descriptor: Landroid/view/Surface;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private int mEstimatedNativeAllocBytes;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object mListenerLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.lang.Object mCloseLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private boolean mIsReaderValid;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private android.media.ImageReader$OnImageAvailableListener mListener;
descriptor: Landroid/media/ImageReader$OnImageAvailableListener;
flags: (0x0002) ACC_PRIVATE
private android.media.ImageReader$ListenerHandler mListenerHandler;
descriptor: Landroid/media/ImageReader$ListenerHandler;
flags: (0x0002) ACC_PRIVATE
private java.util.List<android.media.Image> mAcquiredImages;
descriptor: Ljava/util/List;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/List<Landroid/media/Image;>;
private long mNativeContext;
descriptor: J
flags: (0x0002) ACC_PRIVATE
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc "media_jni"
invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
1: invokestatic android.media.ImageReader.nativeClassInit:()V
2: return
LocalVariableTable:
Start End Slot Name Signature
public static android.media.ImageReader newInstance(int, int, int, int);
descriptor: (IIII)Landroid/media/ImageReader;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: new android.media.ImageReader
dup
iload 0
iload 1
iload 2
iload 3
lconst_0
invokespecial android.media.ImageReader.<init>:(IIIIJ)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 width I
0 1 1 height I
0 1 2 format I
0 1 3 maxImages I
MethodParameters:
Name Flags
width
height
format
maxImages
public static android.media.ImageReader newInstance(int, int, int, int, long);
descriptor: (IIIIJ)Landroid/media/ImageReader;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=8, locals=6, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 2
lload 4
invokestatic android.media.ImageReader.isFormatUsageCombinationAllowed:(IJ)Z
ifne 4
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Format usage combination is not supported: format = "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc ", usage = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
lload 4
invokevirtual java.lang.StringBuilder.append:(J)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
new android.media.ImageReader
dup
iload 0
iload 1
iload 2
iload 3
lload 4
invokespecial android.media.ImageReader.<init>:(IIIIJ)V
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 width I
0 5 1 height I
0 5 2 format I
0 5 3 maxImages I
0 5 4 usage J
MethodParameters:
Name Flags
width
height
format
maxImages
usage
protected void <init>(int, int, int, int, long);
descriptor: (IIIIJ)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=7, args_size=6
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problems: \n\tThe import dalvik.system cannot be resolved\n\tThe import java.nio.NioUtils cannot be resolved\n\tVMRuntime cannot be resolved\n\tVMRuntime cannot be resolved\n\tNioUtils cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/ImageReader;
MethodParameters:
Name Flags
width
height
format
maxImages
usage
public int getWidth();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.ImageReader.mWidth:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/ImageReader;
public int getHeight();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.ImageReader.mHeight:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/ImageReader;
public int getImageFormat();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.ImageReader.mFormat:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/ImageReader;
public int getMaxImages();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.ImageReader.mMaxImages:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/ImageReader;
public android.view.Surface getSurface();
descriptor: ()Landroid/view/Surface;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.ImageReader.mSurface:Landroid/view/Surface;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/ImageReader;
public android.media.Image acquireLatestImage();
descriptor: ()Landroid/media/Image;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=6, args_size=1
start local 0 0: aload 0
invokevirtual android.media.ImageReader.acquireNextImage:()Landroid/media/Image;
astore 1
start local 1 1: aload 1
ifnonnull 3
2: aconst_null
areturn
3: StackMap locals: android.media.Image
StackMap stack:
aload 0
invokevirtual android.media.ImageReader.acquireNextImageNoThrowISE:()Landroid/media/Image;
astore 2
start local 2 4: aload 2
ifnonnull 11
5: aload 1
astore 3
start local 3 6: aconst_null
astore 1
7: aload 3
astore 5
8: aload 1
ifnull 10
9: aload 1
invokevirtual android.media.Image.close:()V
10: StackMap locals: android.media.ImageReader android.media.Image android.media.Image android.media.Image top android.media.Image
StackMap stack:
aload 5
areturn
end local 3 11: StackMap locals: android.media.ImageReader android.media.Image android.media.Image
StackMap stack:
aload 1
invokevirtual android.media.Image.close:()V
12: aload 2
astore 1
end local 2 13: goto 3
14: StackMap locals: android.media.ImageReader android.media.Image
StackMap stack: java.lang.Throwable
astore 4
15: aload 1
ifnull 17
16: aload 1
invokevirtual android.media.Image.close:()V
17: StackMap locals: android.media.ImageReader android.media.Image top top java.lang.Throwable
StackMap stack:
aload 4
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Landroid/media/ImageReader;
1 18 1 image Landroid/media/Image;
4 13 2 next Landroid/media/Image;
6 11 3 result Landroid/media/Image;
Exception table:
from to target type
3 8 14 any
11 14 14 any
public android.media.Image acquireNextImageNoThrowISE();
descriptor: ()Landroid/media/Image;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: new android.media.ImageReader$SurfaceImage
dup
aload 0
aload 0
getfield android.media.ImageReader.mFormat:I
invokespecial android.media.ImageReader$SurfaceImage.<init>:(Landroid/media/ImageReader;I)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual android.media.ImageReader.acquireNextSurfaceImage:(Landroid/media/ImageReader$SurfaceImage;)I
ifne 2
aload 1
goto 3
StackMap locals: android.media.ImageReader$SurfaceImage
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: android.media.ImageReader$SurfaceImage
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/media/ImageReader;
1 4 1 si Landroid/media/ImageReader$SurfaceImage;
private int acquireNextSurfaceImage(android.media.ImageReader$SurfaceImage);
descriptor: (Landroid/media/ImageReader$SurfaceImage;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.ImageReader.mCloseLock:Ljava/lang/Object;
dup
astore 2
monitorenter
1: iconst_1
istore 3
start local 3 2: aload 0
getfield android.media.ImageReader.mIsReaderValid:Z
ifeq 4
3: aload 0
aload 1
invokevirtual android.media.ImageReader.nativeImageSetup:(Landroid/media/Image;)I
istore 3
4: StackMap locals: java.lang.Object int
StackMap stack:
iload 3
tableswitch { // 0 - 2
0: 5
1: 6
2: 6
default: 7
}
5: StackMap locals:
StackMap stack:
aload 1
iconst_1
putfield android.media.ImageReader$SurfaceImage.mIsImageValid:Z
6: StackMap locals:
StackMap stack:
goto 8
7: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unknown nativeImageSetup return code "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
8: StackMap locals:
StackMap stack:
iload 3
ifne 10
9: aload 0
getfield android.media.ImageReader.mAcquiredImages:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
10: StackMap locals:
StackMap stack:
iload 3
aload 2
monitorexit
11: ireturn
end local 3 12: StackMap locals: android.media.ImageReader android.media.ImageReader$SurfaceImage java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
13: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Landroid/media/ImageReader;
0 14 1 si Landroid/media/ImageReader$SurfaceImage;
2 12 3 status I
Exception table:
from to target type
1 11 12 any
12 13 12 any
MethodParameters:
Name Flags
si
public android.media.Image acquireNextImage();
descriptor: ()Landroid/media/Image;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=1
start local 0 0: new android.media.ImageReader$SurfaceImage
dup
aload 0
aload 0
getfield android.media.ImageReader.mFormat:I
invokespecial android.media.ImageReader$SurfaceImage.<init>:(Landroid/media/ImageReader;I)V
astore 1
start local 1 1: aload 0
aload 1
invokevirtual android.media.ImageReader.acquireNextSurfaceImage:(Landroid/media/ImageReader$SurfaceImage;)I
istore 2
start local 2 2: iload 2
tableswitch { // 0 - 2
0: 3
1: 4
2: 5
default: 10
}
3: StackMap locals: android.media.ImageReader$SurfaceImage int
StackMap stack:
aload 1
areturn
4: StackMap locals:
StackMap stack:
aconst_null
areturn
5: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
6: ldc "maxImages (%d) has already been acquired, call #close before acquiring more."
iconst_1
anewarray java.lang.Object
dup
iconst_0
7: aload 0
getfield android.media.ImageReader.mMaxImages:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
8: invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
9: invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
new java.lang.AssertionError
dup
new java.lang.StringBuilder
dup
ldc "Unknown nativeImageSetup return code "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 2
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/media/ImageReader;
1 11 1 si Landroid/media/ImageReader$SurfaceImage;
2 11 2 status I
private void releaseImage(android.media.Image);
descriptor: (Landroid/media/Image;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof android.media.ImageReader$SurfaceImage
ifne 4
1: new java.lang.IllegalArgumentException
dup
2: ldc "This image was not produced by an ImageReader"
3: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
checkcast android.media.ImageReader$SurfaceImage
astore 2
start local 2 5: aload 2
getfield android.media.ImageReader$SurfaceImage.mIsImageValid:Z
ifne 7
6: return
7: StackMap locals: android.media.ImageReader$SurfaceImage
StackMap stack:
aload 2
invokevirtual android.media.ImageReader$SurfaceImage.getReader:()Landroid/media/ImageReader;
aload 0
if_acmpne 8
aload 0
getfield android.media.ImageReader.mAcquiredImages:Ljava/util/List;
aload 1
invokeinterface java.util.List.contains:(Ljava/lang/Object;)Z
ifne 11
8: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
9: ldc "This image was not produced by this ImageReader"
10: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
11: StackMap locals:
StackMap stack:
aload 2
invokevirtual android.media.ImageReader$SurfaceImage.clearSurfacePlanes:()V
12: aload 0
aload 1
invokevirtual android.media.ImageReader.nativeReleaseImage:(Landroid/media/Image;)V
13: aload 2
iconst_0
putfield android.media.ImageReader$SurfaceImage.mIsImageValid:Z
14: aload 0
getfield android.media.ImageReader.mAcquiredImages:Ljava/util/List;
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
15: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Landroid/media/ImageReader;
0 16 1 i Landroid/media/Image;
5 16 2 si Landroid/media/ImageReader$SurfaceImage;
MethodParameters:
Name Flags
i
public void setOnImageAvailableListener(android.media.ImageReader$OnImageAvailableListener, android.os.Handler);
descriptor: (Landroid/media/ImageReader$OnImageAvailableListener;Landroid/os/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.media.ImageReader.mListenerLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 1
ifnull 13
2: aload 2
ifnull 3
aload 2
invokevirtual android.os.Handler.getLooper:()Landroid/os/Looper;
goto 4
StackMap locals: java.lang.Object
StackMap stack:
3: invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
StackMap locals:
StackMap stack: android.os.Looper
4: astore 4
start local 4 5: aload 4
ifnonnull 9
6: new java.lang.IllegalArgumentException
dup
7: ldc "handler is null but the current thread is not a looper"
8: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: android.os.Looper
StackMap stack:
aload 0
getfield android.media.ImageReader.mListenerHandler:Landroid/media/ImageReader$ListenerHandler;
ifnull 10
aload 0
getfield android.media.ImageReader.mListenerHandler:Landroid/media/ImageReader$ListenerHandler;
invokevirtual android.media.ImageReader$ListenerHandler.getLooper:()Landroid/os/Looper;
aload 4
if_acmpeq 11
10: StackMap locals:
StackMap stack:
aload 0
new android.media.ImageReader$ListenerHandler
dup
aload 0
aload 4
invokespecial android.media.ImageReader$ListenerHandler.<init>:(Landroid/media/ImageReader;Landroid/os/Looper;)V
putfield android.media.ImageReader.mListenerHandler:Landroid/media/ImageReader$ListenerHandler;
11: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield android.media.ImageReader.mListener:Landroid/media/ImageReader$OnImageAvailableListener;
end local 4 12: goto 15
13: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield android.media.ImageReader.mListener:Landroid/media/ImageReader$OnImageAvailableListener;
14: aload 0
aconst_null
putfield android.media.ImageReader.mListenerHandler:Landroid/media/ImageReader$ListenerHandler;
15: StackMap locals:
StackMap stack:
aload 3
monitorexit
16: goto 19
StackMap locals:
StackMap stack: java.lang.Throwable
17: aload 3
monitorexit
18: athrow
19: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Landroid/media/ImageReader;
0 20 1 listener Landroid/media/ImageReader$OnImageAvailableListener;
0 20 2 handler Landroid/os/Handler;
5 12 4 looper Landroid/os/Looper;
Exception table:
from to target type
1 16 17 any
17 18 17 any
MethodParameters:
Name Flags
listener
handler
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tVMRuntime cannot be resolved\n"
invokespecial java.lang.Error.<init>:(Ljava/lang/String;)V
athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/ImageReader;
public void discardFreeBuffers();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield android.media.ImageReader.mCloseLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
invokevirtual android.media.ImageReader.nativeDiscardFreeBuffers:()V
2: aload 1
monitorexit
3: goto 6
StackMap locals: android.media.ImageReader java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 1
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/media/ImageReader;
Exception table:
from to target type
1 3 4 any
4 5 4 any
protected void finalize();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual android.media.ImageReader.close:()V
1: goto 5
StackMap locals:
StackMap stack: java.lang.Throwable
2: astore 1
3: aload 0
invokespecial java.lang.Object.finalize:()V
4: aload 1
athrow
5: StackMap locals:
StackMap stack:
aload 0
invokespecial java.lang.Object.finalize:()V
6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/media/ImageReader;
Exception table:
from to target type
0 2 2 any
Exceptions:
throws java.lang.Throwable
void detachImage(android.media.Image);
descriptor: (Landroid/media/Image;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "input image must not be null"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual android.media.ImageReader.isImageOwnedbyMe:(Landroid/media/Image;)Z
ifne 4
3: new java.lang.IllegalArgumentException
dup
ldc "Trying to detach an image that is not owned by this ImageReader"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 1
checkcast android.media.ImageReader$SurfaceImage
astore 2
start local 2 5: aload 2
invokevirtual android.media.ImageReader$SurfaceImage.throwISEIfImageIsInvalid:()V
6: aload 2
invokevirtual android.media.ImageReader$SurfaceImage.isAttachable:()Z
ifeq 8
7: new java.lang.IllegalStateException
dup
ldc "Image was already detached from this ImageReader"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals: android.media.ImageReader$SurfaceImage
StackMap stack:
aload 0
aload 1
invokevirtual android.media.ImageReader.nativeDetachImage:(Landroid/media/Image;)I
pop
9: aload 2
invokevirtual android.media.ImageReader$SurfaceImage.clearSurfacePlanes:()V
10: aload 2
aconst_null
putfield android.media.ImageReader$SurfaceImage.mPlanes:[Landroid/media/ImageReader$SurfaceImage$SurfacePlane;
11: aload 2
iconst_1
invokevirtual android.media.ImageReader$SurfaceImage.setDetached:(Z)V
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/media/ImageReader;
0 13 1 image Landroid/media/Image;
5 13 2 si Landroid/media/ImageReader$SurfaceImage;
MethodParameters:
Name Flags
image
private boolean isImageOwnedbyMe(android.media.Image);
descriptor: (Landroid/media/Image;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 1
instanceof android.media.ImageReader$SurfaceImage
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 1
checkcast android.media.ImageReader$SurfaceImage
astore 2
start local 2 3: aload 2
invokevirtual android.media.ImageReader$SurfaceImage.getReader:()Landroid/media/ImageReader;
aload 0
if_acmpne 4
iconst_1
ireturn
StackMap locals: android.media.ImageReader$SurfaceImage
StackMap stack:
4: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/media/ImageReader;
0 5 1 image Landroid/media/Image;
3 5 2 si Landroid/media/ImageReader$SurfaceImage;
MethodParameters:
Name Flags
image
private static boolean isFormatUsageCombinationAllowed(int, long);
descriptor: (IJ)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=3, args_size=2
start local 0 start local 1 0: iload 0
invokestatic android.graphics.ImageFormat.isPublicFormat:(I)Z
ifne 2
iload 0
invokestatic android.graphics.PixelFormat.isPublicFormat:(I)Z
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
lload 1
lconst_0
lcmp
ifne 4
3: iconst_0
ireturn
4: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 format I
0 5 1 usage J
MethodParameters:
Name Flags
format
usage
private static void postEventFromNative(java.lang.Object);
descriptor: (Ljava/lang/Object;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=5, args_size=1
start local 0 0: aload 0
checkcast java.lang.ref.WeakReference
astore 1
start local 1 1: aload 1
invokevirtual java.lang.ref.WeakReference.get:()Ljava/lang/Object;
checkcast android.media.ImageReader
astore 2
start local 2 2: aload 2
ifnonnull 4
3: return
4: StackMap locals: java.lang.ref.WeakReference android.media.ImageReader
StackMap stack:
aload 2
getfield android.media.ImageReader.mListenerLock:Ljava/lang/Object;
dup
astore 4
monitorenter
5: aload 2
getfield android.media.ImageReader.mListenerHandler:Landroid/media/ImageReader$ListenerHandler;
astore 3
start local 3 6: aload 4
monitorexit
7: goto 10
end local 3 StackMap locals: java.lang.Object java.lang.ref.WeakReference android.media.ImageReader top java.lang.Object
StackMap stack: java.lang.Throwable
8: aload 4
monitorexit
9: athrow
start local 3 10: StackMap locals: java.lang.Object java.lang.ref.WeakReference android.media.ImageReader android.os.Handler
StackMap stack:
aload 3
ifnull 12
11: aload 3
iconst_0
invokevirtual android.os.Handler.sendEmptyMessage:(I)Z
pop
12: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 selfRef Ljava/lang/Object;
1 13 1 weakSelf Ljava/lang/ref/WeakReference<Landroid/media/ImageReader;>;
2 13 2 ir Landroid/media/ImageReader;
6 8 3 handler Landroid/os/Handler;
10 13 3 handler Landroid/os/Handler;
Exception table:
from to target type
5 7 8 any
8 9 8 any
MethodParameters:
Name Flags
selfRef
private synchronized native void nativeInit(java.lang.Object, int, int, int, int, long);
descriptor: (Ljava/lang/Object;IIIIJ)V
flags: (0x0122) ACC_PRIVATE, ACC_SYNCHRONIZED, ACC_NATIVE
MethodParameters:
Name Flags
weakSelf
w
h
fmt
maxImgs
consumerUsage
private synchronized native void nativeClose();
descriptor: ()V
flags: (0x0122) ACC_PRIVATE, ACC_SYNCHRONIZED, ACC_NATIVE
private synchronized native void nativeReleaseImage(android.media.Image);
descriptor: (Landroid/media/Image;)V
flags: (0x0122) ACC_PRIVATE, ACC_SYNCHRONIZED, ACC_NATIVE
MethodParameters:
Name Flags
i
private synchronized native android.view.Surface nativeGetSurface();
descriptor: ()Landroid/view/Surface;
flags: (0x0122) ACC_PRIVATE, ACC_SYNCHRONIZED, ACC_NATIVE
private synchronized native int nativeDetachImage(android.media.Image);
descriptor: (Landroid/media/Image;)I
flags: (0x0122) ACC_PRIVATE, ACC_SYNCHRONIZED, ACC_NATIVE
MethodParameters:
Name Flags
i
private synchronized native void nativeDiscardFreeBuffers();
descriptor: ()V
flags: (0x0122) ACC_PRIVATE, ACC_SYNCHRONIZED, ACC_NATIVE
private synchronized native int nativeImageSetup(android.media.Image);
descriptor: (Landroid/media/Image;)I
flags: (0x0122) ACC_PRIVATE, ACC_SYNCHRONIZED, ACC_NATIVE
MethodParameters:
Name Flags
i
private static native void nativeClassInit();
descriptor: ()V
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
}
SourceFile: "ImageReader.java"
NestMembers:
android.media.ImageReader$ListenerHandler android.media.ImageReader$OnImageAvailableListener android.media.ImageReader$SurfaceImage android.media.ImageReader$SurfaceImage$SurfacePlane
InnerClasses:
private final ListenerHandler = android.media.ImageReader$ListenerHandler of android.media.ImageReader
public abstract OnImageAvailableListener = android.media.ImageReader$OnImageAvailableListener of android.media.ImageReader
private SurfaceImage = android.media.ImageReader$SurfaceImage of android.media.ImageReader