public final class android.media.MediaCodec
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.media.MediaCodec
super_class: java.lang.Object
{
public static final int BUFFER_FLAG_SYNC_FRAME;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int BUFFER_FLAG_KEY_FRAME;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int BUFFER_FLAG_CODEC_CONFIG;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final int BUFFER_FLAG_END_OF_STREAM;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 4
public static final int BUFFER_FLAG_PARTIAL_FRAME;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 8
public static final int BUFFER_FLAG_MUXER_DATA;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 16
private android.media.MediaCodec$EventHandler mEventHandler;
descriptor: Landroid/media/MediaCodec$EventHandler;
flags: (0x0002) ACC_PRIVATE
private android.media.MediaCodec$EventHandler mOnFrameRenderedHandler;
descriptor: Landroid/media/MediaCodec$EventHandler;
flags: (0x0002) ACC_PRIVATE
private android.media.MediaCodec$EventHandler mCallbackHandler;
descriptor: Landroid/media/MediaCodec$EventHandler;
flags: (0x0002) ACC_PRIVATE
private android.media.MediaCodec$Callback mCallback;
descriptor: Landroid/media/MediaCodec$Callback;
flags: (0x0002) ACC_PRIVATE
private android.media.MediaCodec$OnFrameRenderedListener mOnFrameRenderedListener;
descriptor: Landroid/media/MediaCodec$OnFrameRenderedListener;
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object mListenerLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private android.media.MediaCodecInfo mCodecInfo;
descriptor: Landroid/media/MediaCodecInfo;
flags: (0x0002) ACC_PRIVATE
private final java.lang.Object mCodecInfoLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private static final int EVENT_CALLBACK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int EVENT_SET_CALLBACK;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int EVENT_FRAME_RENDERED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int CB_INPUT_AVAILABLE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int CB_OUTPUT_AVAILABLE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int CB_ERROR;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 3
private static final int CB_OUTPUT_FORMAT_CHANGE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
private boolean mHasSurface;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
public static final int CONFIGURE_FLAG_ENCODE;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int CRYPTO_MODE_UNENCRYPTED;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 0
public static final int CRYPTO_MODE_AES_CTR;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int CRYPTO_MODE_AES_CBC;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final int INFO_TRY_AGAIN_LATER;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -1
public static final int INFO_OUTPUT_FORMAT_CHANGED;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -2
public static final int INFO_OUTPUT_BUFFERS_CHANGED;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: -3
private java.nio.ByteBuffer[] mCachedInputBuffers;
descriptor: [Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private java.nio.ByteBuffer[] mCachedOutputBuffers;
descriptor: [Ljava/nio/ByteBuffer;
flags: (0x0002) ACC_PRIVATE
private final android.media.MediaCodec$BufferMap mDequeuedInputBuffers;
descriptor: Landroid/media/MediaCodec$BufferMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final android.media.MediaCodec$BufferMap mDequeuedOutputBuffers;
descriptor: Landroid/media/MediaCodec$BufferMap;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final java.util.Map<java.lang.Integer, android.media.MediaCodec$BufferInfo> mDequeuedOutputInfos;
descriptor: Ljava/util/Map;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/Map<Ljava/lang/Integer;Landroid/media/MediaCodec$BufferInfo;>;
private final java.lang.Object mBufferLock;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 1
public static final int VIDEO_SCALING_MODE_SCALE_TO_FIT_WITH_CROPPING;
descriptor: I
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: 2
public static final java.lang.String PARAMETER_KEY_VIDEO_BITRATE;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "video-bitrate"
public static final java.lang.String PARAMETER_KEY_SUSPEND;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "drop-input-frames"
public static final java.lang.String PARAMETER_KEY_REQUEST_SYNC_FRAME;
descriptor: Ljava/lang/String;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
ConstantValue: "request-sync"
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.MediaCodec.native_init:()V
2: return
LocalVariableTable:
Start End Slot Name Signature
public static android.media.MediaCodec createDecoderByType(java.lang.String);
descriptor: (Ljava/lang/String;)Landroid/media/MediaCodec;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: new android.media.MediaCodec
dup
aload 0
iconst_1
iconst_0
invokespecial android.media.MediaCodec.<init>:(Ljava/lang/String;ZZ)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
type
public static android.media.MediaCodec createEncoderByType(java.lang.String);
descriptor: (Ljava/lang/String;)Landroid/media/MediaCodec;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: new android.media.MediaCodec
dup
aload 0
iconst_1
iconst_1
invokespecial android.media.MediaCodec.<init>:(Ljava/lang/String;ZZ)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 type Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
type
public static android.media.MediaCodec createByCodecName(java.lang.String);
descriptor: (Ljava/lang/String;)Landroid/media/MediaCodec;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: new android.media.MediaCodec
dup
1: aload 0
iconst_0
iconst_0
2: invokespecial android.media.MediaCodec.<init>:(Ljava/lang/String;ZZ)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 name Ljava/lang/String;
Exceptions:
throws java.io.IOException
MethodParameters:
Name Flags
name
private void <init>(java.lang.String, boolean, boolean);
descriptor: (Ljava/lang/String;ZZ)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.media.MediaCodec.mListenerLock:Ljava/lang/Object;
2: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.media.MediaCodec.mCodecInfoLock:Ljava/lang/Object;
3: aload 0
iconst_0
putfield android.media.MediaCodec.mHasSurface:Z
4: aload 0
new android.media.MediaCodec$BufferMap
dup
invokespecial android.media.MediaCodec$BufferMap.<init>:()V
putfield android.media.MediaCodec.mDequeuedInputBuffers:Landroid/media/MediaCodec$BufferMap;
5: aload 0
new android.media.MediaCodec$BufferMap
dup
invokespecial android.media.MediaCodec$BufferMap.<init>:()V
putfield android.media.MediaCodec.mDequeuedOutputBuffers:Landroid/media/MediaCodec$BufferMap;
6: aload 0
7: new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield android.media.MediaCodec.mDequeuedOutputInfos:Ljava/util/Map;
8: invokestatic android.os.Looper.myLooper:()Landroid/os/Looper;
dup
astore 4
start local 4 9: ifnull 12
10: aload 0
new android.media.MediaCodec$EventHandler
dup
aload 0
aload 0
aload 4
invokespecial android.media.MediaCodec$EventHandler.<init>:(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/os/Looper;)V
putfield android.media.MediaCodec.mEventHandler:Landroid/media/MediaCodec$EventHandler;
11: goto 16
StackMap locals: android.media.MediaCodec java.lang.String int int android.os.Looper
StackMap stack:
12: invokestatic android.os.Looper.getMainLooper:()Landroid/os/Looper;
dup
astore 4
ifnull 15
13: aload 0
new android.media.MediaCodec$EventHandler
dup
aload 0
aload 0
aload 4
invokespecial android.media.MediaCodec$EventHandler.<init>:(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/os/Looper;)V
putfield android.media.MediaCodec.mEventHandler:Landroid/media/MediaCodec$EventHandler;
14: goto 16
15: StackMap locals:
StackMap stack:
aload 0
aconst_null
putfield android.media.MediaCodec.mEventHandler:Landroid/media/MediaCodec$EventHandler;
16: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield android.media.MediaCodec.mEventHandler:Landroid/media/MediaCodec$EventHandler;
putfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
17: aload 0
aload 0
getfield android.media.MediaCodec.mEventHandler:Landroid/media/MediaCodec$EventHandler;
putfield android.media.MediaCodec.mOnFrameRenderedHandler:Landroid/media/MediaCodec$EventHandler;
18: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
19: aload 0
aload 1
iload 2
iload 3
invokevirtual android.media.MediaCodec.native_setup:(Ljava/lang/String;ZZ)V
20: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Landroid/media/MediaCodec;
0 21 1 name Ljava/lang/String;
0 21 2 nameIsType Z
0 21 3 encoder Z
9 21 4 looper Landroid/os/Looper;
MethodParameters:
Name Flags
name
nameIsType
encoder
protected void finalize();
descriptor: ()V
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.media.MediaCodec.native_finalize:()V
1: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/MediaCodec;
public final void reset();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.media.MediaCodec.freeAllTrackedBuffers:()V
1: aload 0
invokevirtual android.media.MediaCodec.native_reset:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/media/MediaCodec;
private final native void native_reset();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
public final void release();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual android.media.MediaCodec.freeAllTrackedBuffers:()V
1: aload 0
invokevirtual android.media.MediaCodec.native_release:()V
2: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/media/MediaCodec;
private final native void native_release();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
public void configure(android.media.MediaFormat, android.view.Surface, android.media.MediaCrypto, int);
descriptor: (Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;I)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aload 3
aconst_null
iload 4
invokevirtual android.media.MediaCodec.configure:(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;Landroid/os/IHwBinder;I)V
1: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/MediaCodec;
0 2 1 format Landroid/media/MediaFormat;
0 2 2 surface Landroid/view/Surface;
0 2 3 crypto Landroid/media/MediaCrypto;
0 2 4 flags I
MethodParameters:
Name Flags
format
surface
crypto
flags
public void configure(android.media.MediaFormat, android.view.Surface, int, android.media.MediaDescrambler);
descriptor: (Landroid/media/MediaFormat;Landroid/view/Surface;ILandroid/media/MediaDescrambler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
aload 1
aload 2
aconst_null
1: aload 4
ifnull 2
aload 4
invokevirtual android.media.MediaDescrambler.getBinder:()Landroid/os/IHwBinder;
goto 3
StackMap locals: android.media.MediaCodec android.media.MediaFormat android.view.Surface int android.media.MediaDescrambler
StackMap stack: android.media.MediaCodec android.media.MediaFormat android.view.Surface null
2: aconst_null
StackMap locals: android.media.MediaCodec android.media.MediaFormat android.view.Surface int android.media.MediaDescrambler
StackMap stack: android.media.MediaCodec android.media.MediaFormat android.view.Surface null android.os.IHwBinder
3: iload 3
4: invokevirtual android.media.MediaCodec.configure:(Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;Landroid/os/IHwBinder;I)V
5: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/media/MediaCodec;
0 6 1 format Landroid/media/MediaFormat;
0 6 2 surface Landroid/view/Surface;
0 6 3 flags I
0 6 4 descrambler Landroid/media/MediaDescrambler;
MethodParameters:
Name Flags
format
surface
flags
descrambler
private void configure(android.media.MediaFormat, android.view.Surface, android.media.MediaCrypto, android.os.IHwBinder, int);
descriptor: (Landroid/media/MediaFormat;Landroid/view/Surface;Landroid/media/MediaCrypto;Landroid/os/IHwBinder;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=13, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 3
ifnull 2
aload 4
ifnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "Can't use crypto and descrambler together!"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aconst_null
astore 6
start local 6 3: aconst_null
astore 7
start local 7 4: aload 1
ifnull 24
5: aload 1
invokevirtual android.media.MediaFormat.getMap:()Ljava/util/Map;
astore 8
start local 8 6: aload 8
invokeinterface java.util.Map.size:()I
anewarray java.lang.String
astore 6
7: aload 8
invokeinterface java.util.Map.size:()I
anewarray java.lang.Object
astore 7
8: iconst_0
istore 9
start local 9 9: aload 8
invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 11
goto 23
StackMap locals: android.media.MediaCodec android.media.MediaFormat android.view.Surface android.media.MediaCrypto android.os.IHwBinder int java.lang.String[] java.lang.Object[] java.util.Map int top java.util.Iterator
StackMap stack:
10: aload 11
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.util.Map$Entry
astore 10
start local 10 11: aload 10
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
ldc "audio-session-id"
invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
ifeq 20
12: iconst_0
istore 12
start local 12 13: aload 10
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
istore 12
14: goto 17
15: StackMap locals: android.media.MediaCodec android.media.MediaFormat android.view.Surface android.media.MediaCrypto android.os.IHwBinder int java.lang.String[] java.lang.Object[] java.util.Map int java.util.Map$Entry java.util.Iterator int
StackMap stack: java.lang.Exception
pop
16: new java.lang.IllegalArgumentException
dup
ldc "Wrong Session ID Parameter!"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
17: StackMap locals:
StackMap stack:
aload 6
iload 9
ldc "audio-hw-sync"
aastore
18: aload 7
iload 9
iload 12
invokestatic android.media.AudioSystem.getAudioHwSyncForSession:(I)I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aastore
end local 12 19: goto 22
20: StackMap locals:
StackMap stack:
aload 6
iload 9
aload 10
invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
checkcast java.lang.String
aastore
21: aload 7
iload 9
aload 10
invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
aastore
22: StackMap locals:
StackMap stack:
iinc 9 1
end local 10 23: StackMap locals: android.media.MediaCodec android.media.MediaFormat android.view.Surface android.media.MediaCrypto android.os.IHwBinder int java.lang.String[] java.lang.Object[] java.util.Map int top java.util.Iterator
StackMap stack:
aload 11
invokeinterface java.util.Iterator.hasNext:()Z
ifne 10
end local 9 end local 8 24: StackMap locals: android.media.MediaCodec android.media.MediaFormat android.view.Surface android.media.MediaCrypto android.os.IHwBinder int java.lang.String[] java.lang.Object[]
StackMap stack:
aload 0
aload 2
ifnull 25
iconst_1
goto 26
StackMap locals:
StackMap stack: android.media.MediaCodec
25: iconst_0
StackMap locals: android.media.MediaCodec android.media.MediaFormat android.view.Surface android.media.MediaCrypto android.os.IHwBinder int java.lang.String[] java.lang.Object[]
StackMap stack: android.media.MediaCodec int
26: putfield android.media.MediaCodec.mHasSurface:Z
27: aload 0
aload 6
aload 7
aload 2
aload 3
aload 4
iload 5
invokevirtual android.media.MediaCodec.native_configure:([Ljava/lang/String;[Ljava/lang/Object;Landroid/view/Surface;Landroid/media/MediaCrypto;Landroid/os/IHwBinder;I)V
28: return
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 29 0 this Landroid/media/MediaCodec;
0 29 1 format Landroid/media/MediaFormat;
0 29 2 surface Landroid/view/Surface;
0 29 3 crypto Landroid/media/MediaCrypto;
0 29 4 descramblerBinder Landroid/os/IHwBinder;
0 29 5 flags I
3 29 6 keys [Ljava/lang/String;
4 29 7 values [Ljava/lang/Object;
6 24 8 formatMap Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
9 24 9 i I
11 23 10 entry Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/Object;>;
13 19 12 sessionId I
Exception table:
from to target type
13 14 15 Class java.lang.Exception
MethodParameters:
Name Flags
format
surface
crypto
descramblerBinder
flags
public void setOutputSurface(android.view.Surface);
descriptor: (Landroid/view/Surface;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.MediaCodec.mHasSurface:Z
ifne 2
1: new java.lang.IllegalStateException
dup
ldc "codec was not configured for an output surface"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual android.media.MediaCodec.native_setSurface:(Landroid/view/Surface;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/media/MediaCodec;
0 4 1 surface Landroid/view/Surface;
MethodParameters:
Name Flags
surface
private native void native_setSurface(android.view.Surface);
descriptor: (Landroid/view/Surface;)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
surface
public static android.view.Surface createPersistentInputSurface();
descriptor: ()Landroid/view/Surface;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: invokestatic android.media.MediaCodec.native_createPersistentInputSurface:()Landroid/media/MediaCodec$PersistentSurface;
areturn
LocalVariableTable:
Start End Slot Name Signature
public void setInputSurface(android.view.Surface);
descriptor: (Landroid/view/Surface;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
instanceof android.media.MediaCodec$PersistentSurface
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "not a PersistentSurface"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual android.media.MediaCodec.native_setInputSurface:(Landroid/view/Surface;)V
3: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/media/MediaCodec;
0 4 1 surface Landroid/view/Surface;
MethodParameters:
Name Flags
surface
private static final native android.media.MediaCodec$PersistentSurface native_createPersistentInputSurface();
descriptor: ()Landroid/media/MediaCodec$PersistentSurface;
flags: (0x011a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_NATIVE
private static final native void native_releasePersistentInputSurface(android.view.Surface);
descriptor: (Landroid/view/Surface;)V
flags: (0x011a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
surface
private final native void native_setInputSurface(android.view.Surface);
descriptor: (Landroid/view/Surface;)V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
surface
private final native void native_setCallback(android.media.MediaCodec$Callback);
descriptor: (Landroid/media/MediaCodec$Callback;)V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
cb
private final native void native_configure(java.lang.String[], java.lang.Object[], android.view.Surface, android.media.MediaCrypto, android.os.IHwBinder, int);
descriptor: ([Ljava/lang/String;[Ljava/lang/Object;Landroid/view/Surface;Landroid/media/MediaCrypto;Landroid/os/IHwBinder;I)V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
keys
values
surface
crypto
descramblerBinder
flags
public final native android.view.Surface createInputSurface();
descriptor: ()Landroid/view/Surface;
flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
public final void start();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual android.media.MediaCodec.native_start:()V
1: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 1
monitorenter
2: aload 0
iconst_1
invokevirtual android.media.MediaCodec.cacheBuffers:(Z)V
3: aload 0
iconst_0
invokevirtual android.media.MediaCodec.cacheBuffers:(Z)V
4: aload 1
monitorexit
5: goto 8
StackMap locals: android.media.MediaCodec java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/MediaCodec;
Exception table:
from to target type
2 5 6 any
6 7 6 any
private final native void native_start();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
public final void stop();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual android.media.MediaCodec.native_stop:()V
1: aload 0
invokevirtual android.media.MediaCodec.freeAllTrackedBuffers:()V
2: aload 0
getfield android.media.MediaCodec.mListenerLock:Ljava/lang/Object;
dup
astore 1
monitorenter
3: aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
ifnull 6
4: aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
iconst_2
invokevirtual android.media.MediaCodec$EventHandler.removeMessages:(I)V
5: aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
iconst_1
invokevirtual android.media.MediaCodec$EventHandler.removeMessages:(I)V
6: StackMap locals: java.lang.Object
StackMap stack:
aload 0
getfield android.media.MediaCodec.mOnFrameRenderedHandler:Landroid/media/MediaCodec$EventHandler;
ifnull 8
7: aload 0
getfield android.media.MediaCodec.mOnFrameRenderedHandler:Landroid/media/MediaCodec$EventHandler;
iconst_3
invokevirtual android.media.MediaCodec$EventHandler.removeMessages:(I)V
8: StackMap locals:
StackMap stack:
aload 1
monitorexit
9: goto 12
StackMap locals:
StackMap stack: java.lang.Throwable
10: aload 1
monitorexit
11: athrow
12: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/media/MediaCodec;
Exception table:
from to target type
3 9 10 any
10 11 10 any
private final native void native_stop();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
public final void flush();
descriptor: ()V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
aload 0
getfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
invokevirtual android.media.MediaCodec.invalidateByteBuffers:([Ljava/nio/ByteBuffer;)V
2: aload 0
aload 0
getfield android.media.MediaCodec.mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
invokevirtual android.media.MediaCodec.invalidateByteBuffers:([Ljava/nio/ByteBuffer;)V
3: aload 0
getfield android.media.MediaCodec.mDequeuedInputBuffers:Landroid/media/MediaCodec$BufferMap;
invokevirtual android.media.MediaCodec$BufferMap.clear:()V
4: aload 0
getfield android.media.MediaCodec.mDequeuedOutputBuffers:Landroid/media/MediaCodec$BufferMap;
invokevirtual android.media.MediaCodec$BufferMap.clear:()V
5: aload 1
monitorexit
6: goto 9
StackMap locals: android.media.MediaCodec java.lang.Object
StackMap stack: java.lang.Throwable
7: aload 1
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
invokevirtual android.media.MediaCodec.native_flush:()V
10: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/media/MediaCodec;
Exception table:
from to target type
1 6 7 any
7 8 7 any
private final native void native_flush();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
public final void queueInputBuffer(int, int, int, long, int);
descriptor: (IIIJI)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=7, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 6 0: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 7
monitorenter
1: aload 0
aload 0
getfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
iload 1
invokevirtual android.media.MediaCodec.invalidateByteBuffer:([Ljava/nio/ByteBuffer;I)V
2: aload 0
getfield android.media.MediaCodec.mDequeuedInputBuffers:Landroid/media/MediaCodec$BufferMap;
iload 1
invokevirtual android.media.MediaCodec$BufferMap.remove:(I)V
3: aload 7
monitorexit
4: goto 7
StackMap locals: android.media.MediaCodec int int int long int java.lang.Object
StackMap stack: java.lang.Throwable
5: aload 7
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
aload 0
8: iload 1
iload 2
iload 3
lload 4
iload 6
9: invokevirtual android.media.MediaCodec.native_queueInputBuffer:(IIIJI)V
10: goto 14
StackMap locals:
StackMap stack: java.lang.RuntimeException
11: astore 7
start local 7 12: aload 0
aload 0
getfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
iload 1
invokevirtual android.media.MediaCodec.revalidateByteBuffer:([Ljava/nio/ByteBuffer;I)V
13: aload 7
athrow
end local 7 14: StackMap locals:
StackMap stack:
return
end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Landroid/media/MediaCodec;
0 15 1 index I
0 15 2 offset I
0 15 3 size I
0 15 4 presentationTimeUs J
0 15 6 flags I
12 14 7 e Ljava/lang/RuntimeException;
Exception table:
from to target type
1 4 5 any
5 6 5 any
7 10 11 Class android.media.MediaCodec$CryptoException
7 10 11 Class java.lang.IllegalStateException
Exceptions:
throws android.media.MediaCodec$CryptoException
MethodParameters:
Name Flags
index
offset
size
presentationTimeUs
flags
private final native void native_queueInputBuffer(int, int, int, long, int);
descriptor: (IIIJI)V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
Exceptions:
throws android.media.MediaCodec$CryptoException
MethodParameters:
Name Flags
index
offset
size
presentationTimeUs
flags
public final void queueSecureInputBuffer(int, int, android.media.MediaCodec$CryptoInfo, long, int);
descriptor: (IILandroid/media/MediaCodec$CryptoInfo;JI)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=7, locals=8, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 6 0: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 7
monitorenter
1: aload 0
aload 0
getfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
iload 1
invokevirtual android.media.MediaCodec.invalidateByteBuffer:([Ljava/nio/ByteBuffer;I)V
2: aload 0
getfield android.media.MediaCodec.mDequeuedInputBuffers:Landroid/media/MediaCodec$BufferMap;
iload 1
invokevirtual android.media.MediaCodec$BufferMap.remove:(I)V
3: aload 7
monitorexit
4: goto 7
StackMap locals: android.media.MediaCodec int int android.media.MediaCodec$CryptoInfo long int java.lang.Object
StackMap stack: java.lang.Throwable
5: aload 7
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
aload 0
8: iload 1
iload 2
aload 3
lload 4
iload 6
9: invokevirtual android.media.MediaCodec.native_queueSecureInputBuffer:(IILandroid/media/MediaCodec$CryptoInfo;JI)V
10: goto 14
StackMap locals:
StackMap stack: java.lang.RuntimeException
11: astore 7
start local 7 12: aload 0
aload 0
getfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
iload 1
invokevirtual android.media.MediaCodec.revalidateByteBuffer:([Ljava/nio/ByteBuffer;I)V
13: aload 7
athrow
end local 7 14: StackMap locals:
StackMap stack:
return
end local 6 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Landroid/media/MediaCodec;
0 15 1 index I
0 15 2 offset I
0 15 3 info Landroid/media/MediaCodec$CryptoInfo;
0 15 4 presentationTimeUs J
0 15 6 flags I
12 14 7 e Ljava/lang/RuntimeException;
Exception table:
from to target type
1 4 5 any
5 6 5 any
7 10 11 Class android.media.MediaCodec$CryptoException
7 10 11 Class java.lang.IllegalStateException
Exceptions:
throws android.media.MediaCodec$CryptoException
MethodParameters:
Name Flags
index
offset
info
presentationTimeUs
flags
private final native void native_queueSecureInputBuffer(int, int, android.media.MediaCodec$CryptoInfo, long, int);
descriptor: (IILandroid/media/MediaCodec$CryptoInfo;JI)V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
Exceptions:
throws android.media.MediaCodec$CryptoException
MethodParameters:
Name Flags
index
offset
info
presentationTimeUs
flags
public final int dequeueInputBuffer(long);
descriptor: (J)I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 0
lload 1
invokevirtual android.media.MediaCodec.native_dequeueInputBuffer:(J)I
istore 3
start local 3 1: iload 3
iflt 8
2: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 4
monitorenter
3: aload 0
aload 0
getfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
iload 3
invokevirtual android.media.MediaCodec.validateInputByteBuffer:([Ljava/nio/ByteBuffer;I)V
4: aload 4
monitorexit
5: goto 8
StackMap locals: android.media.MediaCodec long int java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 4
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
iload 3
ireturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/MediaCodec;
0 9 1 timeoutUs J
1 9 3 res I
Exception table:
from to target type
3 5 6 any
6 7 6 any
MethodParameters:
Name Flags
timeoutUs
private final native int native_dequeueInputBuffer(long);
descriptor: (J)I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
timeoutUs
public final int dequeueOutputBuffer(android.media.MediaCodec$BufferInfo, long);
descriptor: (Landroid/media/MediaCodec$BufferInfo;J)I
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 1
lload 2
invokevirtual android.media.MediaCodec.native_dequeueOutputBuffer:(Landroid/media/MediaCodec$BufferInfo;J)I
istore 4
start local 4 1: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 5
monitorenter
2: iload 4
bipush -3
if_icmpne 5
3: aload 0
iconst_0
invokevirtual android.media.MediaCodec.cacheBuffers:(Z)V
4: goto 9
StackMap locals: int java.lang.Object
StackMap stack:
5: iload 4
iflt 9
6: aload 0
aload 0
getfield android.media.MediaCodec.mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
iload 4
aload 1
invokevirtual android.media.MediaCodec.validateOutputByteBuffer:([Ljava/nio/ByteBuffer;ILandroid/media/MediaCodec$BufferInfo;)V
7: aload 0
getfield android.media.MediaCodec.mHasSurface:Z
ifeq 9
8: aload 0
getfield android.media.MediaCodec.mDequeuedOutputInfos:Ljava/util/Map;
iload 4
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 1
invokevirtual android.media.MediaCodec$BufferInfo.dup:()Landroid/media/MediaCodec$BufferInfo;
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
9: StackMap locals:
StackMap stack:
aload 5
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 5
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
iload 4
ireturn
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Landroid/media/MediaCodec;
0 14 1 info Landroid/media/MediaCodec$BufferInfo;
0 14 2 timeoutUs J
1 14 4 res I
Exception table:
from to target type
2 10 11 any
11 12 11 any
MethodParameters:
Name Flags
info
timeoutUs
private final native int native_dequeueOutputBuffer(android.media.MediaCodec$BufferInfo, long);
descriptor: (Landroid/media/MediaCodec$BufferInfo;J)I
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
info
timeoutUs
public final void releaseOutputBuffer(int, boolean);
descriptor: (IZ)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
aload 0
getfield android.media.MediaCodec.mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
iload 1
invokevirtual android.media.MediaCodec.invalidateByteBuffer:([Ljava/nio/ByteBuffer;I)V
2: aload 0
getfield android.media.MediaCodec.mDequeuedOutputBuffers:Landroid/media/MediaCodec$BufferMap;
iload 1
invokevirtual android.media.MediaCodec$BufferMap.remove:(I)V
3: aload 0
getfield android.media.MediaCodec.mHasSurface:Z
ifeq 5
4: aload 0
getfield android.media.MediaCodec.mDequeuedOutputInfos:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.media.MediaCodec$BufferInfo
pop
5: StackMap locals: java.lang.Object
StackMap stack:
aload 3
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 3
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
iload 1
iload 2
iconst_0
lconst_0
invokevirtual android.media.MediaCodec.releaseOutputBuffer:(IZZJ)V
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/media/MediaCodec;
0 11 1 index I
0 11 2 render Z
Exception table:
from to target type
1 6 7 any
7 8 7 any
MethodParameters:
Name Flags
index
render
public final void releaseOutputBuffer(int, long);
descriptor: (IJ)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=6, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 4
monitorenter
1: aload 0
aload 0
getfield android.media.MediaCodec.mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
iload 1
invokevirtual android.media.MediaCodec.invalidateByteBuffer:([Ljava/nio/ByteBuffer;I)V
2: aload 0
getfield android.media.MediaCodec.mDequeuedOutputBuffers:Landroid/media/MediaCodec$BufferMap;
iload 1
invokevirtual android.media.MediaCodec$BufferMap.remove:(I)V
3: aload 0
getfield android.media.MediaCodec.mHasSurface:Z
ifeq 5
4: aload 0
getfield android.media.MediaCodec.mDequeuedOutputInfos:Ljava/util/Map;
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.media.MediaCodec$BufferInfo
pop
5: StackMap locals: java.lang.Object
StackMap stack:
aload 4
monitorexit
6: goto 9
StackMap locals:
StackMap stack: java.lang.Throwable
7: aload 4
monitorexit
8: athrow
9: StackMap locals:
StackMap stack:
aload 0
10: iload 1
iconst_1
iconst_1
lload 2
11: invokevirtual android.media.MediaCodec.releaseOutputBuffer:(IZZJ)V
12: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/media/MediaCodec;
0 13 1 index I
0 13 2 renderTimestampNs J
Exception table:
from to target type
1 6 7 any
7 8 7 any
MethodParameters:
Name Flags
index
renderTimestampNs
private final native void releaseOutputBuffer(int, boolean, boolean, long);
descriptor: (IZZJ)V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
index
render
updatePTS
timeNs
public final native void signalEndOfInputStream();
descriptor: ()V
flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
public final android.media.MediaFormat getOutputFormat();
descriptor: ()Landroid/media/MediaFormat;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=1, args_size=1
start local 0 0: new android.media.MediaFormat
dup
aload 0
iconst_0
invokevirtual android.media.MediaCodec.getFormatNative:(Z)Ljava/util/Map;
invokespecial android.media.MediaFormat.<init>:(Ljava/util/Map;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/MediaCodec;
public final android.media.MediaFormat getInputFormat();
descriptor: ()Landroid/media/MediaFormat;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=1, args_size=1
start local 0 0: new android.media.MediaFormat
dup
aload 0
iconst_1
invokevirtual android.media.MediaCodec.getFormatNative:(Z)Ljava/util/Map;
invokespecial android.media.MediaFormat.<init>:(Ljava/util/Map;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/MediaCodec;
public final android.media.MediaFormat getOutputFormat(int);
descriptor: (I)Landroid/media/MediaFormat;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: new android.media.MediaFormat
dup
aload 0
iload 1
invokevirtual android.media.MediaCodec.getOutputFormatNative:(I)Ljava/util/Map;
invokespecial android.media.MediaFormat.<init>:(Ljava/util/Map;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/MediaCodec;
0 1 1 index I
MethodParameters:
Name Flags
index
private final native java.util.Map<java.lang.String, java.lang.Object> getFormatNative(boolean);
descriptor: (Z)Ljava/util/Map;
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
Signature: (Z)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
MethodParameters:
Name Flags
input
private final native java.util.Map<java.lang.String, java.lang.Object> getOutputFormatNative(int);
descriptor: (I)Ljava/util/Map;
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
Signature: (I)Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
MethodParameters:
Name Flags
index
private final void invalidateByteBuffer(java.nio.ByteBuffer[], int);
descriptor: ([Ljava/nio/ByteBuffer;I)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method setAccessible(boolean) is undefined for the type ByteBuffer\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/MediaCodec;
MethodParameters:
Name Flags
buffers
index
private final void validateInputByteBuffer(java.nio.ByteBuffer[], int);
descriptor: ([Ljava/nio/ByteBuffer;I)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method setAccessible(boolean) is undefined for the type ByteBuffer\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/MediaCodec;
MethodParameters:
Name Flags
buffers
index
private final void revalidateByteBuffer(java.nio.ByteBuffer[], int);
descriptor: ([Ljava/nio/ByteBuffer;I)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=3, args_size=3
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method setAccessible(boolean) is undefined for the type ByteBuffer\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/MediaCodec;
MethodParameters:
Name Flags
buffers
index
private final void validateOutputByteBuffer(java.nio.ByteBuffer[], int, android.media.MediaCodec$BufferInfo);
descriptor: ([Ljava/nio/ByteBuffer;ILandroid/media/MediaCodec$BufferInfo;)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=4, args_size=4
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method setAccessible(boolean) is undefined for the type ByteBuffer\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/MediaCodec;
MethodParameters:
Name Flags
buffers
index
info
private final void invalidateByteBuffers(java.nio.ByteBuffer[]);
descriptor: ([Ljava/nio/ByteBuffer;)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tThe method setAccessible(boolean) is undefined for the type ByteBuffer\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/MediaCodec;
MethodParameters:
Name Flags
buffers
private final void freeByteBuffer(java.nio.ByteBuffer);
descriptor: (Ljava/nio/ByteBuffer;)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=3, locals=2, args_size=2
start local 0 0: new java.lang.Error
dup
ldc "Unresolved compilation problem: \n\tjava.nio.NioUtils cannot be resolved to a type\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/MediaCodec;
MethodParameters:
Name Flags
buffer
private final void freeByteBuffers(java.nio.ByteBuffer[]);
descriptor: ([Ljava/nio/ByteBuffer;)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=2, locals=6, args_size=2
start local 0 start local 1 0: aload 1
ifnull 6
1: aload 1
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 5
StackMap locals: android.media.MediaCodec java.nio.ByteBuffer[] top int int java.nio.ByteBuffer[]
StackMap stack:
2: aload 5
iload 3
aaload
astore 2
start local 2 3: aload 0
aload 2
invokevirtual android.media.MediaCodec.freeByteBuffer:(Ljava/nio/ByteBuffer;)V
end local 2 4: iinc 3 1
StackMap locals:
StackMap stack:
5: iload 3
iload 4
if_icmplt 2
6: StackMap locals: android.media.MediaCodec java.nio.ByteBuffer[]
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/media/MediaCodec;
0 7 1 buffers [Ljava/nio/ByteBuffer;
3 4 2 buffer Ljava/nio/ByteBuffer;
MethodParameters:
Name Flags
buffers
private final void freeAllTrackedBuffers();
descriptor: ()V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
aload 0
getfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
invokevirtual android.media.MediaCodec.freeByteBuffers:([Ljava/nio/ByteBuffer;)V
2: aload 0
aload 0
getfield android.media.MediaCodec.mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
invokevirtual android.media.MediaCodec.freeByteBuffers:([Ljava/nio/ByteBuffer;)V
3: aload 0
aconst_null
putfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
4: aload 0
aconst_null
putfield android.media.MediaCodec.mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
5: aload 0
getfield android.media.MediaCodec.mDequeuedInputBuffers:Landroid/media/MediaCodec$BufferMap;
invokevirtual android.media.MediaCodec$BufferMap.clear:()V
6: aload 0
getfield android.media.MediaCodec.mDequeuedOutputBuffers:Landroid/media/MediaCodec$BufferMap;
invokevirtual android.media.MediaCodec$BufferMap.clear:()V
7: aload 1
monitorexit
8: goto 11
StackMap locals: android.media.MediaCodec java.lang.Object
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/media/MediaCodec;
Exception table:
from to target type
1 8 9 any
9 10 9 any
private final void cacheBuffers(boolean);
descriptor: (Z)V
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aconst_null
astore 2
start local 2 1: aload 0
iload 1
invokevirtual android.media.MediaCodec.getBuffers:(Z)[Ljava/nio/ByteBuffer;
astore 2
2: aload 0
aload 2
invokevirtual android.media.MediaCodec.invalidateByteBuffers:([Ljava/nio/ByteBuffer;)V
3: goto 5
StackMap locals: android.media.MediaCodec int java.nio.ByteBuffer[]
StackMap stack: java.lang.IllegalStateException
4: pop
5: StackMap locals:
StackMap stack:
iload 1
ifeq 8
6: aload 0
aload 2
putfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
7: goto 9
8: StackMap locals:
StackMap stack:
aload 0
aload 2
putfield android.media.MediaCodec.mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
9: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/media/MediaCodec;
0 10 1 input Z
1 10 2 buffers [Ljava/nio/ByteBuffer;
Exception table:
from to target type
1 3 4 Class java.lang.IllegalStateException
MethodParameters:
Name Flags
input
public java.nio.ByteBuffer[] getInputBuffers();
descriptor: ()[Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/media/MediaCodec;
public java.nio.ByteBuffer[] getOutputBuffers();
descriptor: ()[Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.MediaCodec.mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
ifnonnull 2
1: new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MediaCodec.mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/media/MediaCodec;
public java.nio.ByteBuffer getInputBuffer(int);
descriptor: (I)Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
iload 1
invokevirtual android.media.MediaCodec.getBuffer:(ZI)Ljava/nio/ByteBuffer;
astore 2
start local 2 1: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
aload 0
getfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
iload 1
invokevirtual android.media.MediaCodec.invalidateByteBuffer:([Ljava/nio/ByteBuffer;I)V
3: aload 0
getfield android.media.MediaCodec.mDequeuedInputBuffers:Landroid/media/MediaCodec$BufferMap;
iload 1
aload 2
invokevirtual android.media.MediaCodec$BufferMap.put:(ILjava/nio/ByteBuffer;)V
4: aload 3
monitorexit
5: goto 8
StackMap locals: android.media.MediaCodec int java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 3
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/MediaCodec;
0 9 1 index I
1 9 2 newBuffer Ljava/nio/ByteBuffer;
Exception table:
from to target type
2 5 6 any
6 7 6 any
MethodParameters:
Name Flags
index
public android.media.Image getInputImage(int);
descriptor: (I)Landroid/media/Image;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iconst_1
iload 1
invokevirtual android.media.MediaCodec.getImage:(ZI)Landroid/media/Image;
astore 2
start local 2 1: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
aload 0
getfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
iload 1
invokevirtual android.media.MediaCodec.invalidateByteBuffer:([Ljava/nio/ByteBuffer;I)V
3: aload 0
getfield android.media.MediaCodec.mDequeuedInputBuffers:Landroid/media/MediaCodec$BufferMap;
iload 1
aload 2
invokevirtual android.media.MediaCodec$BufferMap.put:(ILandroid/media/Image;)V
4: aload 3
monitorexit
5: goto 8
StackMap locals: android.media.MediaCodec int android.media.Image java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 3
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/MediaCodec;
0 9 1 index I
1 9 2 newImage Landroid/media/Image;
Exception table:
from to target type
2 5 6 any
6 7 6 any
MethodParameters:
Name Flags
index
public java.nio.ByteBuffer getOutputBuffer(int);
descriptor: (I)Ljava/nio/ByteBuffer;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
iload 1
invokevirtual android.media.MediaCodec.getBuffer:(ZI)Ljava/nio/ByteBuffer;
astore 2
start local 2 1: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
aload 0
getfield android.media.MediaCodec.mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
iload 1
invokevirtual android.media.MediaCodec.invalidateByteBuffer:([Ljava/nio/ByteBuffer;I)V
3: aload 0
getfield android.media.MediaCodec.mDequeuedOutputBuffers:Landroid/media/MediaCodec$BufferMap;
iload 1
aload 2
invokevirtual android.media.MediaCodec$BufferMap.put:(ILjava/nio/ByteBuffer;)V
4: aload 3
monitorexit
5: goto 8
StackMap locals: android.media.MediaCodec int java.nio.ByteBuffer java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 3
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/MediaCodec;
0 9 1 index I
1 9 2 newBuffer Ljava/nio/ByteBuffer;
Exception table:
from to target type
2 5 6 any
6 7 6 any
MethodParameters:
Name Flags
index
public android.media.Image getOutputImage(int);
descriptor: (I)Landroid/media/Image;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: aload 0
iconst_0
iload 1
invokevirtual android.media.MediaCodec.getImage:(ZI)Landroid/media/Image;
astore 2
start local 2 1: aload 0
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
aload 0
getfield android.media.MediaCodec.mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
iload 1
invokevirtual android.media.MediaCodec.invalidateByteBuffer:([Ljava/nio/ByteBuffer;I)V
3: aload 0
getfield android.media.MediaCodec.mDequeuedOutputBuffers:Landroid/media/MediaCodec$BufferMap;
iload 1
aload 2
invokevirtual android.media.MediaCodec$BufferMap.put:(ILandroid/media/Image;)V
4: aload 3
monitorexit
5: goto 8
StackMap locals: android.media.MediaCodec int android.media.Image java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 3
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/MediaCodec;
0 9 1 index I
1 9 2 newImage Landroid/media/Image;
Exception table:
from to target type
2 5 6 any
6 7 6 any
MethodParameters:
Name Flags
index
public final native void setVideoScalingMode(int);
descriptor: (I)V
flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
mode
public final native java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0111) ACC_PUBLIC, ACC_FINAL, ACC_NATIVE
public android.os.PersistableBundle getMetrics();
descriptor: ()Landroid/os/PersistableBundle;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual android.media.MediaCodec.native_getMetrics:()Landroid/os/PersistableBundle;
astore 1
start local 1 1: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/MediaCodec;
1 2 1 bundle Landroid/os/PersistableBundle;
private native android.os.PersistableBundle native_getMetrics();
descriptor: ()Landroid/os/PersistableBundle;
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
public final void setParameters(android.os.Bundle);
descriptor: (Landroid/os/Bundle;)V
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.os.Bundle.size:()I
anewarray java.lang.String
astore 2
start local 2 3: aload 1
invokevirtual android.os.Bundle.size:()I
anewarray java.lang.Object
astore 3
start local 3 4: iconst_0
istore 4
start local 4 5: aload 1
invokevirtual android.os.Bundle.keySet:()Ljava/util/Set;
invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
astore 6
goto 10
StackMap locals: android.media.MediaCodec android.os.Bundle java.lang.String[] java.lang.Object[] int top java.util.Iterator
StackMap stack:
6: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast java.lang.String
astore 5
start local 5 7: aload 2
iload 4
aload 5
aastore
8: aload 3
iload 4
aload 1
aload 5
invokevirtual android.os.Bundle.get:(Ljava/lang/String;)Ljava/lang/Object;
aastore
9: iinc 4 1
end local 5 10: StackMap locals:
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 6
11: aload 0
aload 2
aload 3
invokevirtual android.media.MediaCodec.setParameters:([Ljava/lang/String;[Ljava/lang/Object;)V
12: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Landroid/media/MediaCodec;
0 13 1 params Landroid/os/Bundle;
3 13 2 keys [Ljava/lang/String;
4 13 3 values [Ljava/lang/Object;
5 13 4 i I
7 10 5 key Ljava/lang/String;
MethodParameters:
Name Flags
params
public void setCallback(android.media.MediaCodec$Callback, android.os.Handler);
descriptor: (Landroid/media/MediaCodec$Callback;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 1
ifnull 11
1: aload 0
getfield android.media.MediaCodec.mListenerLock:Ljava/lang/Object;
dup
astore 3
monitorenter
2: aload 0
aload 2
aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
invokevirtual android.media.MediaCodec.getEventHandlerOn:(Landroid/os/Handler;Landroid/media/MediaCodec$EventHandler;)Landroid/media/MediaCodec$EventHandler;
astore 4
start local 4 3: aload 4
aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
if_acmpeq 7
4: aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
iconst_2
invokevirtual android.media.MediaCodec$EventHandler.removeMessages:(I)V
5: aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
iconst_1
invokevirtual android.media.MediaCodec$EventHandler.removeMessages:(I)V
6: aload 0
aload 4
putfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
end local 4 7: StackMap locals: java.lang.Object
StackMap stack:
aload 3
monitorexit
8: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 3
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
ifnull 14
12: aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
iconst_2
invokevirtual android.media.MediaCodec$EventHandler.removeMessages:(I)V
13: aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
iconst_1
invokevirtual android.media.MediaCodec$EventHandler.removeMessages:(I)V
14: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
ifnull 18
15: aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
iconst_2
iconst_0
iconst_0
aload 1
invokevirtual android.media.MediaCodec$EventHandler.obtainMessage:(IIILjava/lang/Object;)Landroid/os/Message;
astore 3
start local 3 16: aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
aload 3
invokevirtual android.media.MediaCodec$EventHandler.sendMessage:(Landroid/os/Message;)Z
pop
17: aload 0
aload 1
invokevirtual android.media.MediaCodec.native_setCallback:(Landroid/media/MediaCodec$Callback;)V
end local 3 18: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Landroid/media/MediaCodec;
0 19 1 cb Landroid/media/MediaCodec$Callback;
0 19 2 handler Landroid/os/Handler;
3 7 4 newHandler Landroid/media/MediaCodec$EventHandler;
16 18 3 msg Landroid/os/Message;
Exception table:
from to target type
2 8 9 any
9 10 9 any
MethodParameters:
Name Flags
cb
handler
public void setCallback(android.media.MediaCodec$Callback);
descriptor: (Landroid/media/MediaCodec$Callback;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
aconst_null
invokevirtual android.media.MediaCodec.setCallback:(Landroid/media/MediaCodec$Callback;Landroid/os/Handler;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Landroid/media/MediaCodec;
0 2 1 cb Landroid/media/MediaCodec$Callback;
MethodParameters:
Name Flags
cb
public void setOnFrameRenderedListener(android.media.MediaCodec$OnFrameRenderedListener, android.os.Handler);
descriptor: (Landroid/media/MediaCodec$OnFrameRenderedListener;Landroid/os/Handler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield android.media.MediaCodec.mListenerLock:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
aload 1
putfield android.media.MediaCodec.mOnFrameRenderedListener:Landroid/media/MediaCodec$OnFrameRenderedListener;
2: aload 1
ifnull 8
3: aload 0
aload 2
aload 0
getfield android.media.MediaCodec.mOnFrameRenderedHandler:Landroid/media/MediaCodec$EventHandler;
invokevirtual android.media.MediaCodec.getEventHandlerOn:(Landroid/os/Handler;Landroid/media/MediaCodec$EventHandler;)Landroid/media/MediaCodec$EventHandler;
astore 4
start local 4 4: aload 4
aload 0
getfield android.media.MediaCodec.mOnFrameRenderedHandler:Landroid/media/MediaCodec$EventHandler;
if_acmpeq 6
5: aload 0
getfield android.media.MediaCodec.mOnFrameRenderedHandler:Landroid/media/MediaCodec$EventHandler;
iconst_3
invokevirtual android.media.MediaCodec$EventHandler.removeMessages:(I)V
6: StackMap locals: java.lang.Object android.media.MediaCodec$EventHandler
StackMap stack:
aload 0
aload 4
putfield android.media.MediaCodec.mOnFrameRenderedHandler:Landroid/media/MediaCodec$EventHandler;
end local 4 7: goto 10
StackMap locals:
StackMap stack:
8: aload 0
getfield android.media.MediaCodec.mOnFrameRenderedHandler:Landroid/media/MediaCodec$EventHandler;
ifnull 10
9: aload 0
getfield android.media.MediaCodec.mOnFrameRenderedHandler:Landroid/media/MediaCodec$EventHandler;
iconst_3
invokevirtual android.media.MediaCodec$EventHandler.removeMessages:(I)V
10: StackMap locals:
StackMap stack:
aload 0
aload 1
ifnull 11
iconst_1
goto 12
StackMap locals:
StackMap stack: android.media.MediaCodec
11: iconst_0
StackMap locals: android.media.MediaCodec android.media.MediaCodec$OnFrameRenderedListener android.os.Handler java.lang.Object
StackMap stack: android.media.MediaCodec int
12: invokevirtual android.media.MediaCodec.native_enableOnFrameRenderedListener:(Z)V
13: aload 3
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 3
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Landroid/media/MediaCodec;
0 18 1 listener Landroid/media/MediaCodec$OnFrameRenderedListener;
0 18 2 handler Landroid/os/Handler;
4 7 4 newHandler Landroid/media/MediaCodec$EventHandler;
Exception table:
from to target type
1 14 15 any
15 16 15 any
MethodParameters:
Name Flags
listener
handler
private native void native_enableOnFrameRenderedListener(boolean);
descriptor: (Z)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
enable
private android.media.MediaCodec$EventHandler getEventHandlerOn(android.os.Handler, android.media.MediaCodec$EventHandler);
descriptor: (Landroid/os/Handler;Landroid/media/MediaCodec$EventHandler;)Landroid/media/MediaCodec$EventHandler;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ifnonnull 2
1: aload 0
getfield android.media.MediaCodec.mEventHandler:Landroid/media/MediaCodec$EventHandler;
areturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.os.Handler.getLooper:()Landroid/os/Looper;
astore 3
start local 3 3: aload 2
invokevirtual android.media.MediaCodec$EventHandler.getLooper:()Landroid/os/Looper;
aload 3
if_acmpne 5
4: aload 2
areturn
5: StackMap locals: android.os.Looper
StackMap stack:
new android.media.MediaCodec$EventHandler
dup
aload 0
aload 0
aload 3
invokespecial android.media.MediaCodec$EventHandler.<init>:(Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/os/Looper;)V
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/media/MediaCodec;
0 6 1 handler Landroid/os/Handler;
0 6 2 lastHandler Landroid/media/MediaCodec$EventHandler;
3 6 3 looper Landroid/os/Looper;
MethodParameters:
Name Flags
handler
lastHandler
private void postEventFromNative(int, int, int, java.lang.Object);
descriptor: (IIILjava/lang/Object;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=8, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: aload 0
getfield android.media.MediaCodec.mListenerLock:Ljava/lang/Object;
dup
astore 5
monitorenter
1: aload 0
getfield android.media.MediaCodec.mEventHandler:Landroid/media/MediaCodec$EventHandler;
astore 6
start local 6 2: iload 1
iconst_1
if_icmpne 5
3: aload 0
getfield android.media.MediaCodec.mCallbackHandler:Landroid/media/MediaCodec$EventHandler;
astore 6
4: goto 7
StackMap locals: java.lang.Object android.media.MediaCodec$EventHandler
StackMap stack:
5: iload 1
iconst_3
if_icmpne 7
6: aload 0
getfield android.media.MediaCodec.mOnFrameRenderedHandler:Landroid/media/MediaCodec$EventHandler;
astore 6
7: StackMap locals:
StackMap stack:
aload 6
ifnull 10
8: aload 6
iload 1
iload 2
iload 3
aload 4
invokevirtual android.media.MediaCodec$EventHandler.obtainMessage:(IIILjava/lang/Object;)Landroid/os/Message;
astore 7
start local 7 9: aload 6
aload 7
invokevirtual android.media.MediaCodec$EventHandler.sendMessage:(Landroid/os/Message;)Z
pop
end local 7 end local 6 10: StackMap locals:
StackMap stack:
aload 5
monitorexit
11: goto 14
StackMap locals:
StackMap stack: java.lang.Throwable
12: aload 5
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Landroid/media/MediaCodec;
0 15 1 what I
0 15 2 arg1 I
0 15 3 arg2 I
0 15 4 obj Ljava/lang/Object;
2 10 6 handler Landroid/media/MediaCodec$EventHandler;
9 10 7 msg Landroid/os/Message;
Exception table:
from to target type
1 11 12 any
12 13 12 any
MethodParameters:
Name Flags
what
arg1
arg2
obj
private final native void setParameters(java.lang.String[], java.lang.Object[]);
descriptor: ([Ljava/lang/String;[Ljava/lang/Object;)V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
keys
values
public android.media.MediaCodecInfo getCodecInfo();
descriptor: ()Landroid/media/MediaCodecInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual android.media.MediaCodec.getName:()Ljava/lang/String;
astore 1
start local 1 1: aload 0
getfield android.media.MediaCodec.mCodecInfoLock:Ljava/lang/Object;
dup
astore 2
monitorenter
2: aload 0
getfield android.media.MediaCodec.mCodecInfo:Landroid/media/MediaCodecInfo;
ifnonnull 6
3: aload 0
aload 0
invokevirtual android.media.MediaCodec.getOwnCodecInfo:()Landroid/media/MediaCodecInfo;
putfield android.media.MediaCodec.mCodecInfo:Landroid/media/MediaCodecInfo;
4: aload 0
getfield android.media.MediaCodec.mCodecInfo:Landroid/media/MediaCodecInfo;
ifnonnull 6
5: aload 0
aload 1
invokestatic android.media.MediaCodecList.getInfoFor:(Ljava/lang/String;)Landroid/media/MediaCodecInfo;
putfield android.media.MediaCodec.mCodecInfo:Landroid/media/MediaCodecInfo;
6: StackMap locals: java.lang.String java.lang.Object
StackMap stack:
aload 0
getfield android.media.MediaCodec.mCodecInfo:Landroid/media/MediaCodecInfo;
aload 2
monitorexit
7: areturn
8: StackMap locals:
StackMap stack: java.lang.Throwable
aload 2
monitorexit
9: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/media/MediaCodec;
1 10 1 name Ljava/lang/String;
Exception table:
from to target type
2 7 8 any
8 9 8 any
private final native android.media.MediaCodecInfo getOwnCodecInfo();
descriptor: ()Landroid/media/MediaCodecInfo;
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
private final native java.nio.ByteBuffer[] getBuffers(boolean);
descriptor: (Z)[Ljava/nio/ByteBuffer;
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
input
private final native java.nio.ByteBuffer getBuffer(boolean, int);
descriptor: (ZI)Ljava/nio/ByteBuffer;
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
input
index
private final native android.media.Image getImage(boolean, int);
descriptor: (ZI)Landroid/media/Image;
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
input
index
private static final native void native_init();
descriptor: ()V
flags: (0x011a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL, ACC_NATIVE
private final native void native_setup(java.lang.String, boolean, boolean);
descriptor: (Ljava/lang/String;ZZ)V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
MethodParameters:
Name Flags
name
nameIsType
encoder
private final native void native_finalize();
descriptor: ()V
flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE
}
SourceFile: "MediaCodec.java"
NestMembers:
android.media.MediaCodec$BufferFlag android.media.MediaCodec$BufferInfo android.media.MediaCodec$BufferMap android.media.MediaCodec$BufferMap$CodecBuffer android.media.MediaCodec$Callback android.media.MediaCodec$CodecException android.media.MediaCodec$CodecException$ReasonCode android.media.MediaCodec$ConfigureFlag android.media.MediaCodec$CryptoException android.media.MediaCodec$CryptoException$CryptoErrorCode android.media.MediaCodec$CryptoInfo android.media.MediaCodec$CryptoInfo$Pattern android.media.MediaCodec$EventHandler android.media.MediaCodec$MediaImage android.media.MediaCodec$MediaImage$MediaPlane android.media.MediaCodec$MetricsConstants android.media.MediaCodec$OnFrameRenderedListener android.media.MediaCodec$OutputBufferInfo android.media.MediaCodec$PersistentSurface android.media.MediaCodec$VideoScalingMode
InnerClasses:
public abstract BufferFlag = android.media.MediaCodec$BufferFlag of android.media.MediaCodec
public final BufferInfo = android.media.MediaCodec$BufferInfo of android.media.MediaCodec
private BufferMap = android.media.MediaCodec$BufferMap of android.media.MediaCodec
public abstract Callback = android.media.MediaCodec$Callback of android.media.MediaCodec
public final CodecException = android.media.MediaCodec$CodecException of android.media.MediaCodec
public abstract ConfigureFlag = android.media.MediaCodec$ConfigureFlag of android.media.MediaCodec
public final CryptoException = android.media.MediaCodec$CryptoException of android.media.MediaCodec
public final CryptoInfo = android.media.MediaCodec$CryptoInfo of android.media.MediaCodec
private EventHandler = android.media.MediaCodec$EventHandler of android.media.MediaCodec
public MediaImage = android.media.MediaCodec$MediaImage of android.media.MediaCodec
public final MetricsConstants = android.media.MediaCodec$MetricsConstants of android.media.MediaCodec
public abstract OnFrameRenderedListener = android.media.MediaCodec$OnFrameRenderedListener of android.media.MediaCodec
public abstract OutputBufferInfo = android.media.MediaCodec$OutputBufferInfo of android.media.MediaCodec
PersistentSurface = android.media.MediaCodec$PersistentSurface of android.media.MediaCodec
public abstract VideoScalingMode = android.media.MediaCodec$VideoScalingMode of android.media.MediaCodec
public abstract Entry = java.util.Map$Entry of java.util.Map