public final class android.media.MediaCodecInfo$AudioCapabilities
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: android.media.MediaCodecInfo$AudioCapabilities
super_class: java.lang.Object
{
private static final java.lang.String TAG;
descriptor: Ljava/lang/String;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: "AudioCapabilities"
private android.media.MediaCodecInfo$CodecCapabilities mParent;
descriptor: Landroid/media/MediaCodecInfo$CodecCapabilities;
flags: (0x0002) ACC_PRIVATE
private android.util.Range<java.lang.Integer> mBitrateRange;
descriptor: Landroid/util/Range;
flags: (0x0002) ACC_PRIVATE
Signature: Landroid/util/Range<Ljava/lang/Integer;>;
private int[] mSampleRates;
descriptor: [I
flags: (0x0002) ACC_PRIVATE
private android.util.Range<java.lang.Integer>[] mSampleRateRanges;
descriptor: [Landroid/util/Range;
flags: (0x0002) ACC_PRIVATE
Signature: [Landroid/util/Range<Ljava/lang/Integer;>;
private int mMaxInputChannelCount;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private static final int MAX_INPUT_CHANNEL_COUNT;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 30
public android.util.Range<java.lang.Integer> getBitrateRange();
descriptor: ()Landroid/util/Range;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mBitrateRange:Landroid/util/Range;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
Signature: ()Landroid/util/Range<Ljava/lang/Integer;>;
public int[] getSupportedSampleRates();
descriptor: ()[I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRates:[I
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRates:[I
arraylength
invokestatic java.util.Arrays.copyOf:([II)[I
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
public android.util.Range<java.lang.Integer>[] getSupportedSampleRateRanges();
descriptor: ()[Landroid/util/Range;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRateRanges:[Landroid/util/Range;
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRateRanges:[Landroid/util/Range;
arraylength
invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
checkcast android.util.Range[]
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
Signature: ()[Landroid/util/Range<Ljava/lang/Integer;>;
public int getMaxInputChannelCount();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mMaxInputChannelCount:I
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
private void <init>();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
public static android.media.MediaCodecInfo$AudioCapabilities create(android.media.MediaFormat, android.media.MediaCodecInfo$CodecCapabilities);
descriptor: (Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)Landroid/media/MediaCodecInfo$AudioCapabilities;
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: new android.media.MediaCodecInfo$AudioCapabilities
dup
invokespecial android.media.MediaCodecInfo$AudioCapabilities.<init>:()V
astore 2
start local 2 1: aload 2
aload 0
aload 1
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.init:(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)V
2: aload 2
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 info Landroid/media/MediaFormat;
0 3 1 parent Landroid/media/MediaCodecInfo$CodecCapabilities;
1 3 2 caps Landroid/media/MediaCodecInfo$AudioCapabilities;
MethodParameters:
Name Flags
info
parent
private void init(android.media.MediaFormat, android.media.MediaCodecInfo$CodecCapabilities);
descriptor: (Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 2
putfield android.media.MediaCodecInfo$AudioCapabilities.mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
1: aload 0
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.initWithPlatformLimits:()V
2: aload 0
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.applyLevelLimits:()V
3: aload 0
aload 1
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.parseFromInfo:(Landroid/media/MediaFormat;)V
4: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
0 5 1 info Landroid/media/MediaFormat;
0 5 2 parent Landroid/media/MediaCodecInfo$CodecCapabilities;
MethodParameters:
Name Flags
info
parent
private void initWithPlatformLimits();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=1, args_size=1
start local 0 0: aload 0
iconst_0
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;
putfield android.media.MediaCodecInfo$AudioCapabilities.mBitrateRange:Landroid/util/Range;
1: aload 0
bipush 30
putfield android.media.MediaCodecInfo$AudioCapabilities.mMaxInputChannelCount:I
2: aload 0
iconst_1
anewarray android.util.Range
dup
iconst_0
sipush 8000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 96000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
aastore
putfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRateRanges:[Landroid/util/Range;
3: aload 0
aconst_null
putfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRates:[I
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
private boolean supports(java.lang.Integer, java.lang.Integer);
descriptor: (Ljava/lang/Integer;Ljava/lang/Integer;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 2
ifnull 3
1: aload 2
invokevirtual java.lang.Integer.intValue:()I
iconst_1
if_icmplt 2
aload 2
invokevirtual java.lang.Integer.intValue:()I
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mMaxInputChannelCount:I
if_icmple 3
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
3: StackMap locals:
StackMap stack:
aload 1
ifnull 8
4: aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRateRanges:[Landroid/util/Range;
aload 1
5: invokestatic android.media.Utils.binarySearchDistinctRanges:([Landroid/util/Range;Ljava/lang/Comparable;)I
istore 3
start local 3 6: iload 3
ifge 8
7: iconst_0
ireturn
end local 3 8: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
0 9 1 sampleRate Ljava/lang/Integer;
0 9 2 inputChannels Ljava/lang/Integer;
6 8 3 ix I
MethodParameters:
Name Flags
sampleRate
inputChannels
public boolean isSampleRateSupported(int);
descriptor: (I)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.supports:(Ljava/lang/Integer;Ljava/lang/Integer;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
0 1 1 sampleRate I
MethodParameters:
Name Flags
sampleRate
private void limitSampleRates(int[]);
descriptor: ([I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=7, args_size=2
start local 0 start local 1 0: aload 1
invokestatic java.util.Arrays.sort:([I)V
1: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 2
start local 2 2: aload 1
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 7
StackMap locals: android.media.MediaCodecInfo$AudioCapabilities int[] java.util.ArrayList top int int int[]
StackMap stack:
3: aload 6
iload 4
iaload
istore 3
start local 3 4: aload 0
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aconst_null
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.supports:(Ljava/lang/Integer;Ljava/lang/Integer;)Z
ifeq 6
5: aload 2
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
iload 3
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
end local 3 6: StackMap locals:
StackMap stack:
iinc 4 1
StackMap locals:
StackMap stack:
7: iload 4
iload 5
if_icmplt 3
8: aload 0
aload 2
aload 2
invokevirtual java.util.ArrayList.size:()I
anewarray android.util.Range
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast android.util.Range[]
putfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRateRanges:[Landroid/util/Range;
9: aload 0
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.createDiscreteSampleRates:()V
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
0 11 1 rates [I
2 11 2 ranges Ljava/util/ArrayList<Landroid/util/Range<Ljava/lang/Integer;>;>;
4 6 3 rate I
MethodParameters:
Name Flags
rates
private void createDiscreteSampleRates();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRateRanges:[Landroid/util/Range;
arraylength
newarray 10
putfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRates:[I
1: iconst_0
istore 1
start local 1 2: goto 5
3: StackMap locals: int
StackMap stack:
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRates:[I
iload 1
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRateRanges:[Landroid/util/Range;
iload 1
aaload
invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
iastore
4: iinc 1 1
StackMap locals:
StackMap stack:
5: iload 1
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRateRanges:[Landroid/util/Range;
arraylength
if_icmplt 3
end local 1 6: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
2 6 1 i I
private void limitSampleRates(android.util.Range<java.lang.Integer>[]);
descriptor: ([Landroid/util/Range;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=6, args_size=2
start local 0 start local 1 0: aload 1
invokestatic android.media.Utils.sortDistinctRanges:([Landroid/util/Range;)V
1: aload 0
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRateRanges:[Landroid/util/Range;
aload 1
invokestatic android.media.Utils.intersectSortedDistinctRanges:([Landroid/util/Range;[Landroid/util/Range;)[Landroid/util/Range;
putfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRateRanges:[Landroid/util/Range;
2: aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRateRanges:[Landroid/util/Range;
dup
astore 5
arraylength
istore 4
iconst_0
istore 3
goto 8
StackMap locals: android.media.MediaCodecInfo$AudioCapabilities android.util.Range[] top int int android.util.Range[]
StackMap stack:
3: aload 5
iload 3
aaload
astore 2
start local 2 4: aload 2
invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
checkcast java.lang.Integer
aload 2
invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
ifne 7
5: aload 0
aconst_null
putfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRates:[I
6: return
end local 2 7: StackMap locals:
StackMap stack:
iinc 3 1
StackMap locals:
StackMap stack:
8: iload 3
iload 4
if_icmplt 3
9: aload 0
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.createDiscreteSampleRates:()V
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
0 11 1 rateRanges [Landroid/util/Range;
4 7 2 range Landroid/util/Range<Ljava/lang/Integer;>;
Signature: ([Landroid/util/Range<Ljava/lang/Integer;>;)V
MethodParameters:
Name Flags
rateRanges
private void applyLevelLimits();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=1
start local 0 0: aconst_null
astore 1
start local 1 1: aconst_null
astore 2
start local 2 2: aconst_null
astore 3
start local 3 3: bipush 30
istore 4
start local 4 4: aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
invokevirtual android.media.MediaCodecInfo$CodecCapabilities.getMimeType:()Ljava/lang/String;
astore 5
start local 5 5: aload 5
ldc "audio/mpeg"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 14
6: bipush 9
newarray 10
dup
iconst_0
7: sipush 8000
iastore
dup
iconst_1
sipush 11025
iastore
dup
iconst_2
sipush 12000
iastore
dup
iconst_3
8: sipush 16000
iastore
dup
iconst_4
sipush 22050
iastore
dup
iconst_5
sipush 24000
iastore
dup
bipush 6
9: sipush 32000
iastore
dup
bipush 7
ldc 44100
iastore
dup
bipush 8
ldc 48000
iastore
10: astore 1
11: sipush 8000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 320000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
astore 3
12: iconst_2
istore 4
13: goto 72
StackMap locals: android.media.MediaCodecInfo$AudioCapabilities int[] android.util.Range android.util.Range int java.lang.String
StackMap stack:
14: aload 5
ldc "audio/3gpp"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 19
15: iconst_1
newarray 10
dup
iconst_0
sipush 8000
iastore
astore 1
16: sipush 4750
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
sipush 12200
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
astore 3
17: iconst_1
istore 4
18: goto 72
StackMap locals:
StackMap stack:
19: aload 5
ldc "audio/amr-wb"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 24
20: iconst_1
newarray 10
dup
iconst_0
sipush 16000
iastore
astore 1
21: sipush 6600
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
sipush 23850
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
astore 3
22: iconst_1
istore 4
23: goto 72
StackMap locals:
StackMap stack:
24: aload 5
ldc "audio/mp4a-latm"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 35
25: bipush 13
newarray 10
dup
iconst_0
26: sipush 7350
iastore
dup
iconst_1
sipush 8000
iastore
dup
iconst_2
27: sipush 11025
iastore
dup
iconst_3
sipush 12000
iastore
dup
iconst_4
sipush 16000
iastore
dup
iconst_5
28: sipush 22050
iastore
dup
bipush 6
sipush 24000
iastore
dup
bipush 7
sipush 32000
iastore
dup
bipush 8
29: ldc 44100
iastore
dup
bipush 9
ldc 48000
iastore
dup
bipush 10
ldc 64000
iastore
dup
bipush 11
30: ldc 88200
iastore
dup
bipush 12
ldc 96000
iastore
31: astore 1
32: sipush 8000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 510000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
astore 3
33: bipush 48
istore 4
34: goto 72
StackMap locals:
StackMap stack:
35: aload 5
ldc "audio/vorbis"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 40
36: sipush 32000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 500000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
astore 3
37: sipush 8000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 192000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
astore 2
38: sipush 255
istore 4
39: goto 72
StackMap locals:
StackMap stack:
40: aload 5
ldc "audio/opus"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 45
41: sipush 6000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 510000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
astore 3
42: iconst_5
newarray 10
dup
iconst_0
sipush 8000
iastore
dup
iconst_1
sipush 12000
iastore
dup
iconst_2
sipush 16000
iastore
dup
iconst_3
sipush 24000
iastore
dup
iconst_4
ldc 48000
iastore
astore 1
43: sipush 255
istore 4
44: goto 72
StackMap locals:
StackMap stack:
45: aload 5
ldc "audio/raw"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 50
46: iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 96000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
astore 2
47: iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 10000000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
astore 3
48: getstatic android.media.AudioTrack.CHANNEL_COUNT_MAX:I
istore 4
49: goto 72
StackMap locals:
StackMap stack:
50: aload 5
ldc "audio/flac"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 54
51: iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 655350
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
astore 2
52: sipush 255
istore 4
53: goto 72
StackMap locals:
StackMap stack:
54: aload 5
ldc "audio/g711-alaw"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifne 56
55: aload 5
ldc "audio/g711-mlaw"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 59
56: StackMap locals:
StackMap stack:
iconst_1
newarray 10
dup
iconst_0
sipush 8000
iastore
astore 1
57: ldc 64000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
ldc 64000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
astore 3
58: goto 72
StackMap locals:
StackMap stack:
59: aload 5
ldc "audio/gsm"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 64
60: iconst_1
newarray 10
dup
iconst_0
sipush 8000
iastore
astore 1
61: sipush 13000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
sipush 13000
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
astore 3
62: iconst_1
istore 4
63: goto 72
StackMap locals:
StackMap stack:
64: aload 5
ldc "audio/ac3"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 67
65: bipush 6
istore 4
66: goto 72
StackMap locals:
StackMap stack:
67: aload 5
ldc "audio/eac3"
invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
ifeq 70
68: bipush 16
istore 4
69: goto 72
70: StackMap locals:
StackMap stack:
ldc "AudioCapabilities"
new java.lang.StringBuilder
dup
ldc "Unsupported mime "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 5
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
pop
71: aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
dup
getfield android.media.MediaCodecInfo$CodecCapabilities.mError:I
iconst_2
ior
putfield android.media.MediaCodecInfo$CodecCapabilities.mError:I
72: StackMap locals:
StackMap stack:
aload 1
ifnull 75
73: aload 0
aload 1
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.limitSampleRates:([I)V
74: goto 77
StackMap locals:
StackMap stack:
75: aload 2
ifnull 77
76: aload 0
iconst_1
anewarray android.util.Range
dup
iconst_0
aload 2
aastore
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.limitSampleRates:([Landroid/util/Range;)V
77: StackMap locals:
StackMap stack:
aload 0
iload 4
aload 3
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.applyLimits:(ILandroid/util/Range;)V
78: return
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 79 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
1 79 1 sampleRates [I
2 79 2 sampleRateRange Landroid/util/Range<Ljava/lang/Integer;>;
3 79 3 bitRates Landroid/util/Range<Ljava/lang/Integer;>;
4 79 4 maxChannels I
5 79 5 mime Ljava/lang/String;
private void applyLimits(int, android.util.Range<java.lang.Integer>);
descriptor: (ILandroid/util/Range;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iconst_1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mMaxInputChannelCount:I
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
1: iload 1
invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
invokevirtual android.util.Range.clamp:(Ljava/lang/Comparable;)Ljava/lang/Comparable;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
2: putfield android.media.MediaCodecInfo$AudioCapabilities.mMaxInputChannelCount:I
3: aload 2
ifnull 5
4: aload 0
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mBitrateRange:Landroid/util/Range;
aload 2
invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
putfield android.media.MediaCodecInfo$AudioCapabilities.mBitrateRange:Landroid/util/Range;
5: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
0 6 1 maxInputChannels I
0 6 2 bitRates Landroid/util/Range<Ljava/lang/Integer;>;
Signature: (ILandroid/util/Range<Ljava/lang/Integer;>;)V
MethodParameters:
Name Flags
maxInputChannels
bitRates
private void parseFromInfo(android.media.MediaFormat);
descriptor: (Landroid/media/MediaFormat;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=7, args_size=2
start local 0 start local 1 0: bipush 30
istore 2
start local 2 1: getstatic android.media.MediaCodecInfo.POSITIVE_INTEGERS:Landroid/util/Range;
astore 3
start local 3 2: aload 1
ldc "sample-rate-ranges"
invokevirtual android.media.MediaFormat.containsKey:(Ljava/lang/String;)Z
ifeq 11
3: aload 1
ldc "sample-rate-ranges"
invokevirtual android.media.MediaFormat.getString:(Ljava/lang/String;)Ljava/lang/String;
ldc ","
invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
astore 4
start local 4 4: aload 4
arraylength
anewarray android.util.Range
astore 5
start local 5 5: iconst_0
istore 6
start local 6 6: goto 9
7: StackMap locals: android.media.MediaCodecInfo$AudioCapabilities android.media.MediaFormat int android.util.Range java.lang.String[] android.util.Range[] int
StackMap stack:
aload 5
iload 6
aload 4
iload 6
aaload
aconst_null
invokestatic android.media.Utils.parseIntRange:(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
aastore
8: iinc 6 1
StackMap locals:
StackMap stack:
9: iload 6
aload 4
arraylength
if_icmplt 7
end local 6 10: aload 0
aload 5
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.limitSampleRates:([Landroid/util/Range;)V
end local 5 end local 4 11: StackMap locals:
StackMap stack:
aload 1
ldc "max-channel-count"
invokevirtual android.media.MediaFormat.containsKey:(Ljava/lang/String;)Z
ifeq 15
12: aload 1
ldc "max-channel-count"
invokevirtual android.media.MediaFormat.getString:(Ljava/lang/String;)Ljava/lang/String;
iload 2
13: invokestatic android.media.Utils.parseIntSafely:(Ljava/lang/Object;I)I
istore 2
14: goto 17
StackMap locals:
StackMap stack:
15: aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
getfield android.media.MediaCodecInfo$CodecCapabilities.mError:I
iconst_2
iand
ifeq 17
16: iconst_0
istore 2
17: StackMap locals:
StackMap stack:
aload 1
ldc "bitrate-range"
invokevirtual android.media.MediaFormat.containsKey:(Ljava/lang/String;)Z
ifeq 21
18: aload 3
19: aload 1
ldc "bitrate-range"
invokevirtual android.media.MediaFormat.getString:(Ljava/lang/String;)Ljava/lang/String;
aload 3
invokestatic android.media.Utils.parseIntRange:(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
20: invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
astore 3
21: StackMap locals:
StackMap stack:
aload 0
iload 2
aload 3
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.applyLimits:(ILandroid/util/Range;)V
22: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 23 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
0 23 1 info Landroid/media/MediaFormat;
1 23 2 maxInputChannels I
2 23 3 bitRates Landroid/util/Range<Ljava/lang/Integer;>;
4 11 4 rateStrings [Ljava/lang/String;
5 11 5 rateRanges [Landroid/util/Range;
6 10 6 i I
MethodParameters:
Name Flags
info
public void getDefaultFormat(android.media.MediaFormat);
descriptor: (Landroid/media/MediaFormat;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mBitrateRange:Landroid/util/Range;
invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
checkcast java.lang.Integer
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mBitrateRange:Landroid/util/Range;
invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
invokevirtual java.lang.Integer.equals:(Ljava/lang/Object;)Z
ifeq 2
1: aload 1
ldc "bitrate"
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mBitrateRange:Landroid/util/Range;
invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
checkcast java.lang.Integer
invokevirtual java.lang.Integer.intValue:()I
invokevirtual android.media.MediaFormat.setInteger:(Ljava/lang/String;I)V
2: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mMaxInputChannelCount:I
iconst_1
if_icmpne 4
3: aload 1
ldc "channel-count"
iconst_1
invokevirtual android.media.MediaFormat.setInteger:(Ljava/lang/String;I)V
4: StackMap locals:
StackMap stack:
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRates:[I
ifnull 6
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRates:[I
arraylength
iconst_1
if_icmpne 6
5: aload 1
ldc "sample-rate"
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mSampleRates:[I
iconst_0
iaload
invokevirtual android.media.MediaFormat.setInteger:(Ljava/lang/String;I)V
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
0 7 1 format Landroid/media/MediaFormat;
MethodParameters:
Name Flags
format
public boolean supportsFormat(android.media.MediaFormat);
descriptor: (Landroid/media/MediaFormat;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual android.media.MediaFormat.getMap:()Ljava/util/Map;
astore 2
start local 2 1: aload 2
ldc "sample-rate"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 3
start local 3 2: aload 2
ldc "channel-count"
invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast java.lang.Integer
astore 4
start local 4 3: aload 0
aload 3
aload 4
invokevirtual android.media.MediaCodecInfo$AudioCapabilities.supports:(Ljava/lang/Integer;Ljava/lang/Integer;)Z
ifne 5
4: iconst_0
ireturn
5: StackMap locals: java.util.Map java.lang.Integer java.lang.Integer
StackMap stack:
aload 0
getfield android.media.MediaCodecInfo$AudioCapabilities.mBitrateRange:Landroid/util/Range;
aload 1
invokestatic android.media.MediaCodecInfo$CodecCapabilities.supportsBitrate:(Landroid/util/Range;Landroid/media/MediaFormat;)Z
ifne 7
6: iconst_0
ireturn
7: StackMap locals:
StackMap stack:
iconst_1
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/media/MediaCodecInfo$AudioCapabilities;
0 8 1 format Landroid/media/MediaFormat;
1 8 2 map Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
2 8 3 sampleRate Ljava/lang/Integer;
3 8 4 channels Ljava/lang/Integer;
MethodParameters:
Name Flags
format
}
SourceFile: "MediaCodecInfo.java"
NestHost: android.media.MediaCodecInfo
InnerClasses:
public final AudioCapabilities = android.media.MediaCodecInfo$AudioCapabilities of android.media.MediaCodecInfo
public final CodecCapabilities = android.media.MediaCodecInfo$CodecCapabilities of android.media.MediaCodecInfo