public final class android.media.MediaCodecInfo
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.media.MediaCodecInfo
super_class: java.lang.Object
{
private boolean mIsEncoder;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private java.lang.String mName;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
private java.util.Map<java.lang.String, android.media.MediaCodecInfo$CodecCapabilities> mCaps;
descriptor: Ljava/util/Map;
flags: (0x0002) ACC_PRIVATE
Signature: Ljava/util/Map<Ljava/lang/String;Landroid/media/MediaCodecInfo$CodecCapabilities;>;
private static final android.util.Range<java.lang.Integer> POSITIVE_INTEGERS;
descriptor: Landroid/util/Range;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Landroid/util/Range<Ljava/lang/Integer;>;
private static final android.util.Range<java.lang.Long> POSITIVE_LONGS;
descriptor: Landroid/util/Range;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Landroid/util/Range<Ljava/lang/Long;>;
private static final android.util.Range<android.util.Rational> POSITIVE_RATIONALS;
descriptor: Landroid/util/Range;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Landroid/util/Range<Landroid/util/Rational;>;
private static final android.util.Range<java.lang.Integer> SIZE_RANGE;
descriptor: Landroid/util/Range;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Landroid/util/Range<Ljava/lang/Integer;>;
private static final android.util.Range<java.lang.Integer> FRAME_RATE_RANGE;
descriptor: Landroid/util/Range;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Landroid/util/Range<Ljava/lang/Integer;>;
private static final android.util.Range<java.lang.Integer> BITRATE_RANGE;
descriptor: Landroid/util/Range;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
Signature: Landroid/util/Range<Ljava/lang/Integer;>;
private static final int DEFAULT_MAX_SUPPORTED_INSTANCES;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 32
private static final int MAX_SUPPORTED_INSTANCES_LIMIT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 256
private static final int ERROR_UNRECOGNIZED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 1
private static final int ERROR_UNSUPPORTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 2
private static final int ERROR_NONE_SUPPORTED;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 4
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=5, locals=0, args_size=0
0: iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 2147483647
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
1: putstatic android.media.MediaCodecInfo.POSITIVE_INTEGERS:Landroid/util/Range;
2: lconst_1
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
ldc 9223372036854775807
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
3: putstatic android.media.MediaCodecInfo.POSITIVE_LONGS:Landroid/util/Range;
4: new android.util.Rational
dup
iconst_1
ldc 2147483647
invokespecial android.util.Rational.<init>:(II)V
5: new android.util.Rational
dup
ldc 2147483647
iconst_1
invokespecial android.util.Rational.<init>:(II)V
6: invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
7: putstatic android.media.MediaCodecInfo.POSITIVE_RATIONALS:Landroid/util/Range;
8: iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 32768
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
putstatic android.media.MediaCodecInfo.SIZE_RANGE:Landroid/util/Range;
9: iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
sipush 960
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
putstatic android.media.MediaCodecInfo.FRAME_RATE_RANGE:Landroid/util/Range;
10: iconst_0
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 500000000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
putstatic android.media.MediaCodecInfo.BITRATE_RANGE:Landroid/util/Range;
11: return
LocalVariableTable:
Start End Slot Name Signature
void <init>(java.lang.String, boolean, android.media.MediaCodecInfo$CodecCapabilities[]);
descriptor: (Ljava/lang/String;Z[Landroid/media/MediaCodecInfo$CodecCapabilities;)V
flags: (0x0000)
Code:
stack=3, locals=8, 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
aload 1
putfield android.media.MediaCodecInfo.mName:Ljava/lang/String;
2: aload 0
iload 2
putfield android.media.MediaCodecInfo.mIsEncoder:Z
3: aload 0
new java.util.HashMap
dup
invokespecial java.util.HashMap.<init>:()V
putfield android.media.MediaCodecInfo.mCaps:Ljava/util/Map;
4: aload 3
dup
astore 7
arraylength
istore 6
iconst_0
istore 5
goto 8
StackMap locals: android.media.MediaCodecInfo java.lang.String int android.media.MediaCodecInfo$CodecCapabilities[] top int int android.media.MediaCodecInfo$CodecCapabilities[]
StackMap stack:
5: aload 7
iload 5
aaload
astore 4
start local 4 6: aload 0
getfield android.media.MediaCodecInfo.mCaps:Ljava/util/Map;
aload 4
invokevirtual android.media.MediaCodecInfo$CodecCapabilities.getMimeType:()Ljava/lang/String;
aload 4
invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
end local 4 7: iinc 5 1
StackMap locals:
StackMap stack:
8: iload 5
iload 6
if_icmplt 5
9: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Landroid/media/MediaCodecInfo;
0 10 1 name Ljava/lang/String;
0 10 2 isEncoder Z
0 10 3 caps [Landroid/media/MediaCodecInfo$CodecCapabilities;
6 7 4 c Landroid/media/MediaCodecInfo$CodecCapabilities;
MethodParameters:
Name Flags
name
isEncoder
caps
public final java.lang.String getName();
descriptor: ()Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.MediaCodecInfo.mName:Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/MediaCodecInfo;
public final boolean isEncoder();
descriptor: ()Z
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.MediaCodecInfo.mIsEncoder:Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/MediaCodecInfo;
public final java.lang.String[] getSupportedTypes();
descriptor: ()[Ljava/lang/String;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=3, args_size=1
start local 0 0: aload 0
getfield android.media.MediaCodecInfo.mCaps:Ljava/util/Map;
invokeinterface java.util.Map.keySet:()Ljava/util/Set;
astore 1
start local 1 1: aload 1
aload 1
invokeinterface java.util.Set.size:()I
anewarray java.lang.String
invokeinterface java.util.Set.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast java.lang.String[]
astore 2
start local 2 2: aload 2
invokestatic java.util.Arrays.sort:([Ljava/lang/Object;)V
3: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/media/MediaCodecInfo;
1 4 1 typeSet Ljava/util/Set<Ljava/lang/String;>;
2 4 2 types [Ljava/lang/String;
private static int checkPowerOfTwo(int, java.lang.String);
descriptor: (ILjava/lang/String;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 0
iload 0
iconst_1
isub
iand
ifeq 2
1: new java.lang.IllegalArgumentException
dup
aload 1
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 value I
0 3 1 message Ljava/lang/String;
MethodParameters:
Name Flags
value
message
public final android.media.MediaCodecInfo$CodecCapabilities getCapabilitiesForType(java.lang.String);
descriptor: (Ljava/lang/String;)Landroid/media/MediaCodecInfo$CodecCapabilities;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.MediaCodecInfo.mCaps:Ljava/util/Map;
aload 1
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast android.media.MediaCodecInfo$CodecCapabilities
astore 2
start local 2 1: aload 2
ifnonnull 3
2: new java.lang.IllegalArgumentException
dup
ldc "codec does not support type"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: android.media.MediaCodecInfo$CodecCapabilities
StackMap stack:
aload 2
invokevirtual android.media.MediaCodecInfo$CodecCapabilities.dup:()Landroid/media/MediaCodecInfo$CodecCapabilities;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/media/MediaCodecInfo;
0 4 1 type Ljava/lang/String;
1 4 2 caps Landroid/media/MediaCodecInfo$CodecCapabilities;
MethodParameters:
Name Flags
type
public android.media.MediaCodecInfo makeRegular();
descriptor: ()Landroid/media/MediaCodecInfo;
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=4, args_size=1
start local 0 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 1: aload 0
getfield android.media.MediaCodecInfo.mCaps:Ljava/util/Map;
invokeinterface java.util.Map.values:()Ljava/util/Collection;
invokeinterface java.util.Collection.iterator:()Ljava/util/Iterator;
astore 3
goto 5
StackMap locals: android.media.MediaCodecInfo java.util.ArrayList top java.util.Iterator
StackMap stack:
2: aload 3
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast android.media.MediaCodecInfo$CodecCapabilities
astore 2
start local 2 3: aload 2
invokevirtual android.media.MediaCodecInfo$CodecCapabilities.isRegular:()Z
ifeq 5
4: aload 1
aload 2
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 2 5: StackMap locals:
StackMap stack:
aload 3
invokeinterface java.util.Iterator.hasNext:()Z
ifne 2
6: aload 1
invokevirtual java.util.ArrayList.size:()I
ifne 8
7: aconst_null
areturn
8: StackMap locals: android.media.MediaCodecInfo java.util.ArrayList
StackMap stack:
aload 1
invokevirtual java.util.ArrayList.size:()I
aload 0
getfield android.media.MediaCodecInfo.mCaps:Ljava/util/Map;
invokeinterface java.util.Map.size:()I
if_icmpne 10
9: aload 0
areturn
10: StackMap locals:
StackMap stack:
new android.media.MediaCodecInfo
dup
11: aload 0
getfield android.media.MediaCodecInfo.mName:Ljava/lang/String;
aload 0
getfield android.media.MediaCodecInfo.mIsEncoder:Z
12: aload 1
aload 1
invokevirtual java.util.ArrayList.size:()I
anewarray android.media.MediaCodecInfo$CodecCapabilities
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast android.media.MediaCodecInfo$CodecCapabilities[]
13: invokespecial android.media.MediaCodecInfo.<init>:(Ljava/lang/String;Z[Landroid/media/MediaCodecInfo$CodecCapabilities;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 14 0 this Landroid/media/MediaCodecInfo;
1 14 1 caps Ljava/util/ArrayList<Landroid/media/MediaCodecInfo$CodecCapabilities;>;
3 5 2 c Landroid/media/MediaCodecInfo$CodecCapabilities;
}
SourceFile: "MediaCodecInfo.java"
NestMembers:
android.media.MediaCodecInfo$AudioCapabilities android.media.MediaCodecInfo$CodecCapabilities android.media.MediaCodecInfo$CodecProfileLevel android.media.MediaCodecInfo$EncoderCapabilities android.media.MediaCodecInfo$Feature android.media.MediaCodecInfo$VideoCapabilities
InnerClasses:
public final AudioCapabilities = android.media.MediaCodecInfo$AudioCapabilities of android.media.MediaCodecInfo
public final CodecCapabilities = android.media.MediaCodecInfo$CodecCapabilities of android.media.MediaCodecInfo
public final CodecProfileLevel = android.media.MediaCodecInfo$CodecProfileLevel of android.media.MediaCodecInfo
public final EncoderCapabilities = android.media.MediaCodecInfo$EncoderCapabilities of android.media.MediaCodecInfo
private Feature = android.media.MediaCodecInfo$Feature of android.media.MediaCodecInfo
public final VideoCapabilities = android.media.MediaCodecInfo$VideoCapabilities of android.media.MediaCodecInfo