class android.media.MediaCodec$EventHandler extends android.os.Handler
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: android.media.MediaCodec$EventHandler
super_class: android.os.Handler
{
private android.media.MediaCodec mCodec;
descriptor: Landroid/media/MediaCodec;
flags: (0x0002) ACC_PRIVATE
final android.media.MediaCodec this$0;
descriptor: Landroid/media/MediaCodec;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(android.media.MediaCodec, android.media.MediaCodec, android.os.Looper);
descriptor: (Landroid/media/MediaCodec;Landroid/media/MediaCodec;Landroid/os/Looper;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 // android.media.MediaCodec$EventHandler this
start local 2 // android.media.MediaCodec codec
start local 3 // android.os.Looper looper
0: .line 1636
aload 0 /* this */
aload 1
putfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
1: .line 1637
aload 0 /* this */
aload 3 /* looper */
invokespecial android.os.Handler.<init>:(Landroid/os/Looper;)V
2: .line 1638
aload 0 /* this */
aload 2 /* codec */
putfield android.media.MediaCodec$EventHandler.mCodec:Landroid/media/MediaCodec;
3: .line 1639
return
end local 3 // android.os.Looper looper
end local 2 // android.media.MediaCodec codec
end local 0 // android.media.MediaCodec$EventHandler this
LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/media/MediaCodec$EventHandler;
0 4 2 codec Landroid/media/MediaCodec;
0 4 3 looper Landroid/os/Looper;
MethodParameters:
Name Flags
this$0 final
codec
looper
public void handleMessage(android.os.Message);
descriptor: (Landroid/os/Message;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=2
start local 0 // android.media.MediaCodec$EventHandler this
start local 1 // android.os.Message msg
0: .line 1643
aload 1 /* msg */
getfield android.os.Message.what:I
tableswitch { // 1 - 3
1: 1
2: 3
3: 5
default: 21
}
1: .line 1646
StackMap locals:
StackMap stack:
aload 0 /* this */
aload 1 /* msg */
invokevirtual android.media.MediaCodec$EventHandler.handleCallback:(Landroid/os/Message;)V
2: .line 1647
goto 21
3: .line 1651
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
aload 1 /* msg */
getfield android.os.Message.obj:Ljava/lang/Object;
checkcast android.media.MediaCodec$Callback
putfield android.media.MediaCodec.mCallback:Landroid/media/MediaCodec$Callback;
4: .line 1652
goto 21
5: .line 1655
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
getfield android.media.MediaCodec.mListenerLock:Ljava/lang/Object;
dup
astore 2
monitorenter
6: .line 1656
aload 1 /* msg */
getfield android.os.Message.obj:Ljava/lang/Object;
checkcast java.util.Map
astore 3 /* map */
start local 3 // java.util.Map map
7: .line 1657
iconst_0
istore 4 /* i */
start local 4 // int i
8: .line 1658
StackMap locals: java.lang.Object java.util.Map int
StackMap stack:
aload 3 /* map */
new java.lang.StringBuilder
dup
iload 4 /* i */
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "-media-time-us"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 5 /* mediaTimeUs */
start local 5 // java.lang.Object mediaTimeUs
9: .line 1659
aload 3 /* map */
new java.lang.StringBuilder
dup
iload 4 /* i */
invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
ldc "-system-nano"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
astore 6 /* systemNano */
start local 6 // java.lang.Object systemNano
10: .line 1660
aload 5 /* mediaTimeUs */
ifnull 17
aload 6 /* systemNano */
ifnull 17
11: .line 1661
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
getfield android.media.MediaCodec.mOnFrameRenderedListener:Landroid/media/MediaCodec$OnFrameRenderedListener;
ifnonnull 13
12: .line 1662
goto 17
13: .line 1664
StackMap locals: java.lang.Object java.lang.Object
StackMap stack:
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
getfield android.media.MediaCodec.mOnFrameRenderedListener:Landroid/media/MediaCodec$OnFrameRenderedListener;
14: .line 1665
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.mCodec:Landroid/media/MediaCodec;
aload 5 /* mediaTimeUs */
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
aload 6 /* systemNano */
checkcast java.lang.Long
invokevirtual java.lang.Long.longValue:()J
15: .line 1664
invokeinterface android.media.MediaCodec$OnFrameRenderedListener.onFrameRendered:(Landroid/media/MediaCodec;JJ)V
end local 6 // java.lang.Object systemNano
end local 5 // java.lang.Object mediaTimeUs
16: .line 1657
iinc 4 /* i */ 1
goto 8
end local 4 // int i
17: .line 1667
StackMap locals:
StackMap stack:
aload 2
monitorexit
18: goto 21
end local 3 // java.util.Map map
19: .line 1655
StackMap locals: android.media.MediaCodec$EventHandler android.os.Message java.lang.Object
StackMap stack: java.lang.Throwable
aload 2
monitorexit
20: athrow
21: .line 1674
StackMap locals:
StackMap stack:
return
end local 1 // android.os.Message msg
end local 0 // android.media.MediaCodec$EventHandler this
LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Landroid/media/MediaCodec$EventHandler;
0 22 1 msg Landroid/os/Message;
7 19 3 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
8 17 4 i I
9 16 5 mediaTimeUs Ljava/lang/Object;
10 16 6 systemNano Ljava/lang/Object;
Exception table:
from to target type
6 18 19 any
19 20 19 any
MethodParameters:
Name Flags
msg
private void handleCallback(android.os.Message);
descriptor: (Landroid/os/Message;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=2
start local 0 // android.media.MediaCodec$EventHandler this
start local 1 // android.os.Message msg
0: .line 1677
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
getfield android.media.MediaCodec.mCallback:Landroid/media/MediaCodec$Callback;
ifnonnull 2
1: .line 1678
return
2: .line 1681
StackMap locals:
StackMap stack:
aload 1 /* msg */
getfield android.os.Message.arg1:I
tableswitch { // 1 - 4
1: 3
2: 12
3: 24
4: 26
default: 30
}
3: .line 1684
StackMap locals:
StackMap stack:
aload 1 /* msg */
getfield android.os.Message.arg2:I
istore 2 /* index */
start local 2 // int index
4: .line 1685
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 3
monitorenter
5: .line 1686
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
getfield android.media.MediaCodec.mCachedInputBuffers:[Ljava/nio/ByteBuffer;
iload 2 /* index */
invokevirtual android.media.MediaCodec.validateInputByteBuffer:([Ljava/nio/ByteBuffer;I)V
6: .line 1685
aload 3
monitorexit
7: goto 10
StackMap locals: android.media.MediaCodec$EventHandler android.os.Message int java.lang.Object
StackMap stack: java.lang.Throwable
8: aload 3
monitorexit
9: athrow
10: .line 1688
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
getfield android.media.MediaCodec.mCallback:Landroid/media/MediaCodec$Callback;
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.mCodec:Landroid/media/MediaCodec;
iload 2 /* index */
invokevirtual android.media.MediaCodec$Callback.onInputBufferAvailable:(Landroid/media/MediaCodec;I)V
11: .line 1689
goto 30
end local 2 // int index
12: .line 1694
StackMap locals:
StackMap stack:
aload 1 /* msg */
getfield android.os.Message.arg2:I
istore 2 /* index */
start local 2 // int index
13: .line 1695
aload 1 /* msg */
getfield android.os.Message.obj:Ljava/lang/Object;
checkcast android.media.MediaCodec$BufferInfo
astore 3 /* info */
start local 3 // android.media.MediaCodec$BufferInfo info
14: .line 1696
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
getfield android.media.MediaCodec.mBufferLock:Ljava/lang/Object;
dup
astore 4
monitorenter
15: .line 1697
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
getfield android.media.MediaCodec.mCachedOutputBuffers:[Ljava/nio/ByteBuffer;
iload 2 /* index */
aload 3 /* info */
invokevirtual android.media.MediaCodec.validateOutputByteBuffer:([Ljava/nio/ByteBuffer;ILandroid/media/MediaCodec$BufferInfo;)V
16: .line 1696
aload 4
monitorexit
17: goto 20
StackMap locals: android.media.MediaCodec$EventHandler android.os.Message int android.media.MediaCodec$BufferInfo java.lang.Object
StackMap stack: java.lang.Throwable
18: aload 4
monitorexit
19: athrow
20: .line 1699
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
getfield android.media.MediaCodec.mCallback:Landroid/media/MediaCodec$Callback;
21: .line 1700
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.mCodec:Landroid/media/MediaCodec;
iload 2 /* index */
aload 3 /* info */
22: .line 1699
invokevirtual android.media.MediaCodec$Callback.onOutputBufferAvailable:(Landroid/media/MediaCodec;ILandroid/media/MediaCodec$BufferInfo;)V
23: .line 1701
goto 30
end local 3 // android.media.MediaCodec$BufferInfo info
end local 2 // int index
24: .line 1706
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
getfield android.media.MediaCodec.mCallback:Landroid/media/MediaCodec$Callback;
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.mCodec:Landroid/media/MediaCodec;
aload 1 /* msg */
getfield android.os.Message.obj:Ljava/lang/Object;
checkcast android.media.MediaCodec$CodecException
invokevirtual android.media.MediaCodec$Callback.onError:(Landroid/media/MediaCodec;Landroid/media/MediaCodec$CodecException;)V
25: .line 1707
goto 30
26: .line 1712
StackMap locals:
StackMap stack:
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.this$0:Landroid/media/MediaCodec;
getfield android.media.MediaCodec.mCallback:Landroid/media/MediaCodec$Callback;
aload 0 /* this */
getfield android.media.MediaCodec$EventHandler.mCodec:Landroid/media/MediaCodec;
27: .line 1713
new android.media.MediaFormat
dup
aload 1 /* msg */
getfield android.os.Message.obj:Ljava/lang/Object;
checkcast java.util.Map
invokespecial android.media.MediaFormat.<init>:(Ljava/util/Map;)V
28: .line 1712
invokevirtual android.media.MediaCodec$Callback.onOutputFormatChanged:(Landroid/media/MediaCodec;Landroid/media/MediaFormat;)V
29: .line 1714
goto 30
30: .line 1722
StackMap locals:
StackMap stack:
return
end local 1 // android.os.Message msg
end local 0 // android.media.MediaCodec$EventHandler this
LocalVariableTable:
Start End Slot Name Signature
0 31 0 this Landroid/media/MediaCodec$EventHandler;
0 31 1 msg Landroid/os/Message;
4 12 2 index I
13 24 2 index I
14 24 3 info Landroid/media/MediaCodec$BufferInfo;
Exception table:
from to target type
5 7 8 any
8 9 8 any
15 17 18 any
18 19 18 any
MethodParameters:
Name Flags
msg
}
SourceFile: "MediaCodec.java"
NestHost: android.media.MediaCodec
InnerClasses:
public final BufferInfo = android.media.MediaCodec$BufferInfo 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
private EventHandler = android.media.MediaCodec$EventHandler of android.media.MediaCodec
public abstract OnFrameRenderedListener = android.media.MediaCodec$OnFrameRenderedListener of android.media.MediaCodec