public final class android.media.MediaCodecInfo$CodecCapabilities
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.media.MediaCodecInfo$CodecCapabilities
  super_class: java.lang.Object
{
  private java.lang.String mMime;
    descriptor: Ljava/lang/String;
    flags: (0x0002) ACC_PRIVATE

  private int mMaxSupportedInstances;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public android.media.MediaCodecInfo$CodecProfileLevel[] profileLevels;
    descriptor: [Landroid/media/MediaCodecInfo$CodecProfileLevel;
    flags: (0x0001) ACC_PUBLIC

  public static final int COLOR_FormatMonochrome;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 1

  public static final int COLOR_Format8bitRGB332;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2

  public static final int COLOR_Format12bitRGB444;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 3

  public static final int COLOR_Format16bitARGB4444;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 4

  public static final int COLOR_Format16bitARGB1555;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 5

  public static final int COLOR_Format16bitRGB565;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 6

  public static final int COLOR_Format16bitBGR565;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 7

  public static final int COLOR_Format18bitRGB666;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 8

  public static final int COLOR_Format18bitARGB1665;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 9

  public static final int COLOR_Format19bitARGB1666;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 10

  public static final int COLOR_Format24bitRGB888;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 11

  public static final int COLOR_Format24bitBGR888;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 12

  public static final int COLOR_Format24bitARGB1887;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 13

  public static final int COLOR_Format25bitARGB1888;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 14

  public static final int COLOR_Format32bitBGRA8888;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 15

  public static final int COLOR_Format32bitARGB8888;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 16

  public static final int COLOR_FormatYUV411Planar;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 17

  public static final int COLOR_FormatYUV411PackedPlanar;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 18

  public static final int COLOR_FormatYUV420Planar;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 19

  public static final int COLOR_FormatYUV420PackedPlanar;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 20

  public static final int COLOR_FormatYUV420SemiPlanar;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 21

  public static final int COLOR_FormatYUV422Planar;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 22

  public static final int COLOR_FormatYUV422PackedPlanar;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 23

  public static final int COLOR_FormatYUV422SemiPlanar;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 24

  public static final int COLOR_FormatYCbYCr;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 25

  public static final int COLOR_FormatYCrYCb;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 26

  public static final int COLOR_FormatCbYCrY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 27

  public static final int COLOR_FormatCrYCbY;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 28

  public static final int COLOR_FormatYUV444Interleaved;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 29

  public static final int COLOR_FormatRawBayer8bit;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 30

  public static final int COLOR_FormatRawBayer10bit;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 31

  public static final int COLOR_FormatRawBayer8bitcompressed;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 32

  public static final int COLOR_FormatL2;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 33

  public static final int COLOR_FormatL4;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 34

  public static final int COLOR_FormatL8;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 35

  public static final int COLOR_FormatL16;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 36

  public static final int COLOR_FormatL24;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 37

  public static final int COLOR_FormatL32;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 38

  public static final int COLOR_FormatYUV420PackedSemiPlanar;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 39

  public static final int COLOR_FormatYUV422PackedSemiPlanar;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 40

  public static final int COLOR_Format18BitBGR666;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 41

  public static final int COLOR_Format24BitARGB6666;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 42

  public static final int COLOR_Format24BitABGR6666;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 43

  public static final int COLOR_TI_FormatYUV420PackedSemiPlanar;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2130706688

  public static final int COLOR_FormatSurface;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2130708361

  public static final int COLOR_Format32bitABGR8888;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2130747392

  public static final int COLOR_FormatYUV420Flexible;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2135033992

  public static final int COLOR_FormatYUV422Flexible;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2135042184

  public static final int COLOR_FormatYUV444Flexible;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2135181448

  public static final int COLOR_FormatRGBFlexible;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2134292616

  public static final int COLOR_FormatRGBAFlexible;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2134288520

  public static final int COLOR_QCOM_FormatYUV420SemiPlanar;
    descriptor: I
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: 2141391872

  public int[] colorFormats;
    descriptor: [I
    flags: (0x0001) ACC_PUBLIC

  private int mFlagsSupported;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mFlagsRequired;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int mFlagsVerified;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  public static final java.lang.String FEATURE_AdaptivePlayback;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "adaptive-playback"

  public static final java.lang.String FEATURE_SecurePlayback;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "secure-playback"

  public static final java.lang.String FEATURE_TunneledPlayback;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "tunneled-playback"

  public static final java.lang.String FEATURE_PartialFrame;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "partial-frame"

  public static final java.lang.String FEATURE_IntraRefresh;
    descriptor: Ljava/lang/String;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
    ConstantValue: "intra-refresh"

  private static final android.media.MediaCodecInfo$Feature[] decoderFeatures;
    descriptor: [Landroid/media/MediaCodecInfo$Feature;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  private static final android.media.MediaCodecInfo$Feature[] encoderFeatures;
    descriptor: [Landroid/media/MediaCodecInfo$Feature;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL

  int mError;
    descriptor: I
    flags: (0x0000) 

  private static final java.lang.String TAG;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "CodecCapabilities"

  private android.media.MediaCodecInfo$AudioCapabilities mAudioCaps;
    descriptor: Landroid/media/MediaCodecInfo$AudioCapabilities;
    flags: (0x0002) ACC_PRIVATE

  private android.media.MediaCodecInfo$VideoCapabilities mVideoCaps;
    descriptor: Landroid/media/MediaCodecInfo$VideoCapabilities;
    flags: (0x0002) ACC_PRIVATE

  private android.media.MediaCodecInfo$EncoderCapabilities mEncoderCaps;
    descriptor: Landroid/media/MediaCodecInfo$EncoderCapabilities;
    flags: (0x0002) ACC_PRIVATE

  private android.media.MediaFormat mDefaultFormat;
    descriptor: Landroid/media/MediaFormat;
    flags: (0x0002) ACC_PRIVATE

  private android.media.MediaFormat mCapabilitiesInfo;
    descriptor: Landroid/media/MediaFormat;
    flags: (0x0002) ACC_PRIVATE

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=8, locals=0, args_size=0
         0: .line 493
            iconst_4
            anewarray android.media.MediaCodecInfo$Feature
            dup
            iconst_0
         1: .line 494
            new android.media.MediaCodecInfo$Feature
            dup
            ldc "adaptive-playback"
            iconst_1
            iconst_1
            invokespecial android.media.MediaCodecInfo$Feature.<init>:(Ljava/lang/String;IZ)V
            aastore
            dup
            iconst_1
         2: .line 495
            new android.media.MediaCodecInfo$Feature
            dup
            ldc "secure-playback"
            iconst_2
            iconst_0
            invokespecial android.media.MediaCodecInfo$Feature.<init>:(Ljava/lang/String;IZ)V
            aastore
            dup
            iconst_2
         3: .line 496
            new android.media.MediaCodecInfo$Feature
            dup
            ldc "tunneled-playback"
            iconst_4
            iconst_0
            invokespecial android.media.MediaCodecInfo$Feature.<init>:(Ljava/lang/String;IZ)V
            aastore
            dup
            iconst_3
         4: .line 497
            new android.media.MediaCodecInfo$Feature
            dup
            ldc "partial-frame"
            bipush 8
            iconst_0
            invokespecial android.media.MediaCodecInfo$Feature.<init>:(Ljava/lang/String;IZ)V
            aastore
         5: .line 493
            putstatic android.media.MediaCodecInfo$CodecCapabilities.decoderFeatures:[Landroid/media/MediaCodecInfo$Feature;
         6: .line 500
            iconst_1
            anewarray android.media.MediaCodecInfo$Feature
            dup
            iconst_0
         7: .line 501
            new android.media.MediaCodecInfo$Feature
            dup
            ldc "intra-refresh"
            iconst_1
            iconst_0
            invokespecial android.media.MediaCodecInfo$Feature.<init>:(Ljava/lang/String;IZ)V
            aastore
         8: .line 500
            putstatic android.media.MediaCodecInfo$CodecCapabilities.encoderFeatures:[Landroid/media/MediaCodecInfo$Feature;
         9: .line 762
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 149
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 150
            return
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;

  public final boolean isFeatureSupported(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
        start local 1 // java.lang.String name
         0: .line 480
            aload 0 /* this */
            aload 1 /* name */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsSupported:I
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.checkFeature:(Ljava/lang/String;I)Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public final boolean isFeatureRequired(java.lang.String);
    descriptor: (Ljava/lang/String;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
        start local 1 // java.lang.String name
         0: .line 490
            aload 0 /* this */
            aload 1 /* name */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsRequired:I
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.checkFeature:(Ljava/lang/String;I)Z
            ireturn
        end local 1 // java.lang.String name
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;
            0    1     1  name  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      name  

  public java.lang.String[] validFeatures();
    descriptor: ()[Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 506
            aload 0 /* this */
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.getValidFeatures:()[Landroid/media/MediaCodecInfo$Feature;
            astore 1 /* features */
        start local 1 // android.media.MediaCodecInfo$Feature[] features
         1: .line 507
            aload 1 /* features */
            arraylength
            anewarray java.lang.String
            astore 2 /* res */
        start local 2 // java.lang.String[] res
         2: .line 508
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 509
      StackMap locals: android.media.MediaCodecInfo$Feature[] java.lang.String[] int
      StackMap stack:
            aload 2 /* res */
            iload 3 /* i */
            aload 1 /* features */
            iload 3 /* i */
            aaload
            getfield android.media.MediaCodecInfo$Feature.mName:Ljava/lang/String;
            aastore
         5: .line 508
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            aload 2 /* res */
            arraylength
            if_icmplt 4
        end local 3 // int i
         7: .line 511
            aload 2 /* res */
            areturn
        end local 2 // java.lang.String[] res
        end local 1 // android.media.MediaCodecInfo$Feature[] features
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0      this  Landroid/media/MediaCodecInfo$CodecCapabilities;
            1    8     1  features  [Landroid/media/MediaCodecInfo$Feature;
            2    8     2       res  [Ljava/lang/String;
            3    7     3         i  I

  private android.media.MediaCodecInfo$Feature[] getValidFeatures();
    descriptor: ()[Landroid/media/MediaCodecInfo$Feature;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 515
            aload 0 /* this */
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.isEncoder:()Z
            ifne 2
         1: .line 516
            getstatic android.media.MediaCodecInfo$CodecCapabilities.decoderFeatures:[Landroid/media/MediaCodecInfo$Feature;
            areturn
         2: .line 518
      StackMap locals:
      StackMap stack:
            getstatic android.media.MediaCodecInfo$CodecCapabilities.encoderFeatures:[Landroid/media/MediaCodecInfo$Feature;
            areturn
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;

  private boolean checkFeature(java.lang.String, int);
    descriptor: (Ljava/lang/String;I)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=7, args_size=3
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
        start local 1 // java.lang.String name
        start local 2 // int flags
         0: .line 522
            aload 0 /* this */
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.getValidFeatures:()[Landroid/media/MediaCodecInfo$Feature;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 6
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities java.lang.String int top int int android.media.MediaCodecInfo$Feature[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* feat */
        start local 3 // android.media.MediaCodecInfo$Feature feat
         2: .line 523
            aload 3 /* feat */
            getfield android.media.MediaCodecInfo$Feature.mName:Ljava/lang/String;
            aload 1 /* name */
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
         3: .line 524
            iload 2 /* flags */
            aload 3 /* feat */
            getfield android.media.MediaCodecInfo$Feature.mValue:I
            iand
            ifeq 4
            iconst_1
            ireturn
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities java.lang.String int android.media.MediaCodecInfo$Feature int int android.media.MediaCodecInfo$Feature[]
      StackMap stack:
         4: iconst_0
            ireturn
        end local 3 // android.media.MediaCodecInfo$Feature feat
         5: .line 522
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities java.lang.String int top int int android.media.MediaCodecInfo$Feature[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
         6: iload 4
            iload 5
            if_icmplt 1
         7: .line 527
            iconst_0
            ireturn
        end local 2 // int flags
        end local 1 // java.lang.String name
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Landroid/media/MediaCodecInfo$CodecCapabilities;
            0    8     1   name  Ljava/lang/String;
            0    8     2  flags  I
            2    5     3   feat  Landroid/media/MediaCodecInfo$Feature;
    MethodParameters:
       Name  Flags
      name   
      flags  

  public boolean isRegular();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=5, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 533
            aload 0 /* this */
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.getValidFeatures:()[Landroid/media/MediaCodecInfo$Feature;
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 5
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities top int int android.media.MediaCodecInfo$Feature[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* feat */
        start local 1 // android.media.MediaCodecInfo$Feature feat
         2: .line 534
            aload 1 /* feat */
            getfield android.media.MediaCodecInfo$Feature.mDefault:Z
            ifne 4
            aload 0 /* this */
            aload 1 /* feat */
            getfield android.media.MediaCodecInfo$Feature.mName:Ljava/lang/String;
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.isFeatureRequired:(Ljava/lang/String;)Z
            ifeq 4
         3: .line 535
            iconst_0
            ireturn
        end local 1 // android.media.MediaCodecInfo$Feature feat
         4: .line 533
      StackMap locals:
      StackMap stack:
            iinc 2 1
      StackMap locals:
      StackMap stack:
         5: iload 2
            iload 3
            if_icmplt 1
         6: .line 538
            iconst_1
            ireturn
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;
            2    4     1  feat  Landroid/media/MediaCodecInfo$Feature;

  public final boolean isFormatSupported(android.media.MediaFormat);
    descriptor: (Landroid/media/MediaFormat;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=12, args_size=2
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
        start local 1 // android.media.MediaFormat format
         0: .line 623
            aload 1 /* format */
            invokevirtual android.media.MediaFormat.getMap:()Ljava/util/Map;
            astore 2 /* map */
        start local 2 // java.util.Map map
         1: .line 624
            aload 2 /* map */
            ldc "mime"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.String
            astore 3 /* mime */
        start local 3 // java.lang.String mime
         2: .line 627
            aload 3 /* mime */
            ifnull 4
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            aload 3 /* mime */
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifne 4
         3: .line 628
            iconst_0
            ireturn
         4: .line 632
      StackMap locals: java.util.Map java.lang.String
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.getValidFeatures:()[Landroid/media/MediaCodecInfo$Feature;
            dup
            astore 7
            arraylength
            istore 6
            iconst_0
            istore 5
            goto 13
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities android.media.MediaFormat java.util.Map java.lang.String top int int android.media.MediaCodecInfo$Feature[]
      StackMap stack:
         5: aload 7
            iload 5
            aaload
            astore 4 /* feat */
        start local 4 // android.media.MediaCodecInfo$Feature feat
         6: .line 633
            aload 2 /* map */
            new java.lang.StringBuilder
            dup
            ldc "feature-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 4 /* feat */
            getfield android.media.MediaCodecInfo$Feature.mName:Ljava/lang/String;
            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;
            checkcast java.lang.Integer
            astore 8 /* yesNo */
        start local 8 // java.lang.Integer yesNo
         7: .line 634
            aload 8 /* yesNo */
            ifnonnull 9
         8: .line 635
            goto 12
         9: .line 637
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities android.media.MediaFormat java.util.Map java.lang.String android.media.MediaCodecInfo$Feature int int android.media.MediaCodecInfo$Feature[] java.lang.Integer
      StackMap stack:
            aload 8 /* yesNo */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            if_icmpne 10
            aload 0 /* this */
            aload 4 /* feat */
            getfield android.media.MediaCodecInfo$Feature.mName:Ljava/lang/String;
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.isFeatureSupported:(Ljava/lang/String;)Z
            ifeq 11
        10: .line 638
      StackMap locals:
      StackMap stack:
            aload 8 /* yesNo */
            invokevirtual java.lang.Integer.intValue:()I
            ifne 12
            aload 0 /* this */
            aload 4 /* feat */
            getfield android.media.MediaCodecInfo$Feature.mName:Ljava/lang/String;
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.isFeatureRequired:(Ljava/lang/String;)Z
            ifeq 12
        11: .line 639
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 8 // java.lang.Integer yesNo
        end local 4 // android.media.MediaCodecInfo$Feature feat
        12: .line 632
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities android.media.MediaFormat java.util.Map java.lang.String top int int android.media.MediaCodecInfo$Feature[]
      StackMap stack:
            iinc 5 1
      StackMap locals:
      StackMap stack:
        13: iload 5
            iload 6
            if_icmplt 5
        14: .line 643
            aload 2 /* map */
            ldc "profile"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 4 /* profile */
        start local 4 // java.lang.Integer profile
        15: .line 644
            aload 2 /* map */
            ldc "level"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 5 /* level */
        start local 5 // java.lang.Integer level
        16: .line 646
            aload 4 /* profile */
            ifnull 33
        17: .line 647
            aload 0 /* this */
            aload 4 /* profile */
            invokevirtual java.lang.Integer.intValue:()I
            aload 5 /* level */
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.supportsProfileLevel:(ILjava/lang/Integer;)Z
            ifne 19
        18: .line 648
            iconst_0
            ireturn
        19: .line 658
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities android.media.MediaFormat java.util.Map java.lang.String java.lang.Integer java.lang.Integer
      StackMap stack:
            aconst_null
            astore 6 /* levelCaps */
        start local 6 // android.media.MediaCodecInfo$CodecCapabilities levelCaps
        20: .line 659
            iconst_0
            istore 7 /* maxLevel */
        start local 7 // int maxLevel
        21: .line 660
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.profileLevels:[Landroid/media/MediaCodecInfo$CodecProfileLevel;
            dup
            astore 11
            arraylength
            istore 10
            iconst_0
            istore 9
            goto 26
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities android.media.MediaFormat java.util.Map java.lang.String java.lang.Integer java.lang.Integer android.media.MediaCodecInfo$CodecCapabilities int top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
        22: aload 11
            iload 9
            aaload
            astore 8 /* pl */
        start local 8 // android.media.MediaCodecInfo$CodecProfileLevel pl
        23: .line 661
            aload 8 /* pl */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            aload 4 /* profile */
            invokevirtual java.lang.Integer.intValue:()I
            if_icmpne 25
            aload 8 /* pl */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            iload 7 /* maxLevel */
            if_icmple 25
        24: .line 662
            aload 8 /* pl */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            istore 7 /* maxLevel */
        end local 8 // android.media.MediaCodecInfo$CodecProfileLevel pl
        25: .line 660
      StackMap locals:
      StackMap stack:
            iinc 9 1
      StackMap locals:
      StackMap stack:
        26: iload 9
            iload 10
            if_icmplt 22
        27: .line 665
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            aload 4 /* profile */
            invokevirtual java.lang.Integer.intValue:()I
            iload 7 /* maxLevel */
            invokestatic android.media.MediaCodecInfo$CodecCapabilities.createFromProfileLevel:(Ljava/lang/String;II)Landroid/media/MediaCodecInfo$CodecCapabilities;
            astore 6 /* levelCaps */
        28: .line 668
            new java.util.HashMap
            dup
            aload 2 /* map */
            invokespecial java.util.HashMap.<init>:(Ljava/util/Map;)V
            astore 8 /* mapWithoutProfile */
        start local 8 // java.util.Map mapWithoutProfile
        29: .line 669
            aload 8 /* mapWithoutProfile */
            ldc "profile"
            invokeinterface java.util.Map.remove:(Ljava/lang/Object;)Ljava/lang/Object;
            pop
        30: .line 670
            new android.media.MediaFormat
            dup
            aload 8 /* mapWithoutProfile */
            invokespecial android.media.MediaFormat.<init>:(Ljava/util/Map;)V
            astore 9 /* formatWithoutProfile */
        start local 9 // android.media.MediaFormat formatWithoutProfile
        31: .line 671
            aload 6 /* levelCaps */
            ifnull 33
            aload 6 /* levelCaps */
            aload 9 /* formatWithoutProfile */
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.isFormatSupported:(Landroid/media/MediaFormat;)Z
            ifne 33
        32: .line 672
            iconst_0
            ireturn
        end local 9 // android.media.MediaFormat formatWithoutProfile
        end local 8 // java.util.Map mapWithoutProfile
        end local 7 // int maxLevel
        end local 6 // android.media.MediaCodecInfo$CodecCapabilities levelCaps
        33: .line 675
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities android.media.MediaFormat java.util.Map java.lang.String java.lang.Integer java.lang.Integer
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mAudioCaps:Landroid/media/MediaCodecInfo$AudioCapabilities;
            ifnull 35
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mAudioCaps:Landroid/media/MediaCodecInfo$AudioCapabilities;
            aload 1 /* format */
            invokevirtual android.media.MediaCodecInfo$AudioCapabilities.supportsFormat:(Landroid/media/MediaFormat;)Z
            ifne 35
        34: .line 676
            iconst_0
            ireturn
        35: .line 678
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mVideoCaps:Landroid/media/MediaCodecInfo$VideoCapabilities;
            ifnull 37
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mVideoCaps:Landroid/media/MediaCodecInfo$VideoCapabilities;
            aload 1 /* format */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.supportsFormat:(Landroid/media/MediaFormat;)Z
            ifne 37
        36: .line 679
            iconst_0
            ireturn
        37: .line 681
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mEncoderCaps:Landroid/media/MediaCodecInfo$EncoderCapabilities;
            ifnull 39
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mEncoderCaps:Landroid/media/MediaCodecInfo$EncoderCapabilities;
            aload 1 /* format */
            invokevirtual android.media.MediaCodecInfo$EncoderCapabilities.supportsFormat:(Landroid/media/MediaFormat;)Z
            ifne 39
        38: .line 682
            iconst_0
            ireturn
        39: .line 684
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // java.lang.Integer level
        end local 4 // java.lang.Integer profile
        end local 3 // java.lang.String mime
        end local 2 // java.util.Map map
        end local 1 // android.media.MediaFormat format
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot                  Name  Signature
            0   40     0                  this  Landroid/media/MediaCodecInfo$CodecCapabilities;
            0   40     1                format  Landroid/media/MediaFormat;
            1   40     2                   map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            2   40     3                  mime  Ljava/lang/String;
            6   12     4                  feat  Landroid/media/MediaCodecInfo$Feature;
            7   12     8                 yesNo  Ljava/lang/Integer;
           15   40     4               profile  Ljava/lang/Integer;
           16   40     5                 level  Ljava/lang/Integer;
           20   33     6             levelCaps  Landroid/media/MediaCodecInfo$CodecCapabilities;
           21   33     7              maxLevel  I
           23   25     8                    pl  Landroid/media/MediaCodecInfo$CodecProfileLevel;
           29   33     8     mapWithoutProfile  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
           31   33     9  formatWithoutProfile  Landroid/media/MediaFormat;
    MethodParameters:
        Name  Flags
      format  

  private static boolean supportsBitrate(android.util.Range<java.lang.Integer>, android.media.MediaFormat);
    descriptor: (Landroid/util/Range;Landroid/media/MediaFormat;)Z
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // android.util.Range bitrateRange
        start local 1 // android.media.MediaFormat format
         0: .line 689
            aload 1 /* format */
            invokevirtual android.media.MediaFormat.getMap:()Ljava/util/Map;
            astore 2 /* map */
        start local 2 // java.util.Map map
         1: .line 692
            aload 2 /* map */
            ldc "max-bitrate"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 3 /* maxBitrate */
        start local 3 // java.lang.Integer maxBitrate
         2: .line 693
            aload 2 /* map */
            ldc "bitrate"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 4 /* bitrate */
        start local 4 // java.lang.Integer bitrate
         3: .line 694
            aload 4 /* bitrate */
            ifnonnull 6
         4: .line 695
            aload 3 /* maxBitrate */
            astore 4 /* bitrate */
         5: .line 696
            goto 8
      StackMap locals: java.util.Map java.lang.Integer java.lang.Integer
      StackMap stack:
         6: aload 3 /* maxBitrate */
            ifnull 8
         7: .line 697
            aload 4 /* bitrate */
            invokevirtual java.lang.Integer.intValue:()I
            aload 3 /* maxBitrate */
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic java.lang.Math.max:(II)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            astore 4 /* bitrate */
         8: .line 700
      StackMap locals:
      StackMap stack:
            aload 4 /* bitrate */
            ifnull 10
            aload 4 /* bitrate */
            invokevirtual java.lang.Integer.intValue:()I
            ifle 10
         9: .line 701
            aload 0 /* bitrateRange */
            aload 4 /* bitrate */
            invokevirtual android.util.Range.contains:(Ljava/lang/Comparable;)Z
            ireturn
        10: .line 704
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 4 // java.lang.Integer bitrate
        end local 3 // java.lang.Integer maxBitrate
        end local 2 // java.util.Map map
        end local 1 // android.media.MediaFormat format
        end local 0 // android.util.Range bitrateRange
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   11     0  bitrateRange  Landroid/util/Range<Ljava/lang/Integer;>;
            0   11     1        format  Landroid/media/MediaFormat;
            1   11     2           map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            2   11     3    maxBitrate  Ljava/lang/Integer;
            3   11     4       bitrate  Ljava/lang/Integer;
    Signature: (Landroid/util/Range<Ljava/lang/Integer;>;Landroid/media/MediaFormat;)Z
    MethodParameters:
              Name  Flags
      bitrateRange  
      format        

  private boolean supportsProfileLevel(int, java.lang.Integer);
    descriptor: (ILjava/lang/Integer;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=9, args_size=3
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
        start local 1 // int profile
        start local 2 // java.lang.Integer level
         0: .line 708
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.profileLevels:[Landroid/media/MediaCodecInfo$CodecProfileLevel;
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 29
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities int java.lang.Integer top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
         1: aload 6
            iload 4
            aaload
            astore 3 /* pl */
        start local 3 // android.media.MediaCodecInfo$CodecProfileLevel pl
         2: .line 709
            aload 3 /* pl */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            iload 1 /* profile */
            if_icmpeq 4
         3: .line 710
            goto 28
         4: .line 714
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities int java.lang.Integer android.media.MediaCodecInfo$CodecProfileLevel int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
            aload 2 /* level */
            ifnull 5
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            ldc "audio/mp4a-latm"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 6
         5: .line 715
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
         6: .line 720
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            ldc "video/3gpp"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 10
         7: .line 721
            aload 3 /* pl */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            aload 2 /* level */
            invokevirtual java.lang.Integer.intValue:()I
            if_icmpeq 10
            aload 3 /* pl */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            bipush 16
            if_icmpne 10
         8: .line 722
            aload 2 /* level */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            if_icmple 10
         9: .line 723
            goto 28
        10: .line 729
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            ldc "video/mp4v-es"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 14
        11: .line 730
            aload 3 /* pl */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            aload 2 /* level */
            invokevirtual java.lang.Integer.intValue:()I
            if_icmpeq 14
            aload 3 /* pl */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            iconst_4
            if_icmpne 14
        12: .line 731
            aload 2 /* level */
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            if_icmple 14
        13: .line 732
            goto 28
        14: .line 737
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            ldc "video/hevc"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 23
        15: .line 739
            aload 3 /* pl */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            ldc 44739242
            iand
            ifeq 16
            iconst_1
            goto 17
      StackMap locals:
      StackMap stack:
        16: iconst_0
        17: .line 738
      StackMap locals:
      StackMap stack: int
            istore 7 /* supportsHighTier */
        start local 7 // boolean supportsHighTier
        18: .line 740
            aload 2 /* level */
            invokevirtual java.lang.Integer.intValue:()I
            ldc 44739242
            iand
            ifeq 19
            iconst_1
            goto 20
      StackMap locals: int
      StackMap stack:
        19: iconst_0
      StackMap locals:
      StackMap stack: int
        20: istore 8 /* checkingHighTier */
        start local 8 // boolean checkingHighTier
        21: .line 742
            iload 8 /* checkingHighTier */
            ifeq 23
            iload 7 /* supportsHighTier */
            ifne 23
        22: .line 743
            goto 28
        end local 8 // boolean checkingHighTier
        end local 7 // boolean supportsHighTier
        23: .line 747
      StackMap locals:
      StackMap stack:
            aload 3 /* pl */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            aload 2 /* level */
            invokevirtual java.lang.Integer.intValue:()I
            if_icmplt 28
        24: .line 750
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            iload 1 /* profile */
            aload 3 /* pl */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            invokestatic android.media.MediaCodecInfo$CodecCapabilities.createFromProfileLevel:(Ljava/lang/String;II)Landroid/media/MediaCodecInfo$CodecCapabilities;
            ifnull 27
        25: .line 751
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            iload 1 /* profile */
            aload 2 /* level */
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic android.media.MediaCodecInfo$CodecCapabilities.createFromProfileLevel:(Ljava/lang/String;II)Landroid/media/MediaCodecInfo$CodecCapabilities;
            ifnull 26
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
        26: iconst_0
            ireturn
        27: .line 753
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // android.media.MediaCodecInfo$CodecProfileLevel pl
        28: .line 708
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities int java.lang.Integer top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
            iinc 4 1
      StackMap locals:
      StackMap stack:
        29: iload 4
            iload 5
            if_icmplt 1
        30: .line 756
            iconst_0
            ireturn
        end local 2 // java.lang.Integer level
        end local 1 // int profile
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   31     0              this  Landroid/media/MediaCodecInfo$CodecCapabilities;
            0   31     1           profile  I
            0   31     2             level  Ljava/lang/Integer;
            2   28     3                pl  Landroid/media/MediaCodecInfo$CodecProfileLevel;
           18   23     7  supportsHighTier  Z
           21   23     8  checkingHighTier  Z
    MethodParameters:
         Name  Flags
      profile  
      level    

  public android.media.MediaFormat getDefaultFormat();
    descriptor: ()Landroid/media/MediaFormat;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 775
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mDefaultFormat:Landroid/media/MediaFormat;
            areturn
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;

  public java.lang.String getMimeType();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 782
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            areturn
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;

  public int getMaxSupportedInstances();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 794
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMaxSupportedInstances:I
            ireturn
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;

  private boolean isAudio();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 798
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mAudioCaps:Landroid/media/MediaCodecInfo$AudioCapabilities;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;

  public android.media.MediaCodecInfo$AudioCapabilities getAudioCapabilities();
    descriptor: ()Landroid/media/MediaCodecInfo$AudioCapabilities;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 805
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mAudioCaps:Landroid/media/MediaCodecInfo$AudioCapabilities;
            areturn
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;

  private boolean isEncoder();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 809
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mEncoderCaps:Landroid/media/MediaCodecInfo$EncoderCapabilities;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;

  public android.media.MediaCodecInfo$EncoderCapabilities getEncoderCapabilities();
    descriptor: ()Landroid/media/MediaCodecInfo$EncoderCapabilities;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 816
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mEncoderCaps:Landroid/media/MediaCodecInfo$EncoderCapabilities;
            areturn
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;

  private boolean isVideo();
    descriptor: ()Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 820
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mVideoCaps:Landroid/media/MediaCodecInfo$VideoCapabilities;
            ifnull 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;

  public android.media.MediaCodecInfo$VideoCapabilities getVideoCapabilities();
    descriptor: ()Landroid/media/MediaCodecInfo$VideoCapabilities;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 827
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mVideoCaps:Landroid/media/MediaCodecInfo$VideoCapabilities;
            areturn
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;

  public android.media.MediaCodecInfo$CodecCapabilities dup();
    descriptor: ()Landroid/media/MediaCodecInfo$CodecCapabilities;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
         0: .line 832
            new android.media.MediaCodecInfo$CodecCapabilities
            dup
            invokespecial android.media.MediaCodecInfo$CodecCapabilities.<init>:()V
            astore 1 /* caps */
        start local 1 // android.media.MediaCodecInfo$CodecCapabilities caps
         1: .line 835
            aload 1 /* caps */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.profileLevels:[Landroid/media/MediaCodecInfo$CodecProfileLevel;
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.profileLevels:[Landroid/media/MediaCodecInfo$CodecProfileLevel;
            arraylength
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast android.media.MediaCodecInfo$CodecProfileLevel[]
            putfield android.media.MediaCodecInfo$CodecCapabilities.profileLevels:[Landroid/media/MediaCodecInfo$CodecProfileLevel;
         2: .line 836
            aload 1 /* caps */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.colorFormats:[I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.colorFormats:[I
            arraylength
            invokestatic java.util.Arrays.copyOf:([II)[I
            putfield android.media.MediaCodecInfo$CodecCapabilities.colorFormats:[I
         3: .line 838
            aload 1 /* caps */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            putfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
         4: .line 839
            aload 1 /* caps */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMaxSupportedInstances:I
            putfield android.media.MediaCodecInfo$CodecCapabilities.mMaxSupportedInstances:I
         5: .line 840
            aload 1 /* caps */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsRequired:I
            putfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsRequired:I
         6: .line 841
            aload 1 /* caps */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsSupported:I
            putfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsSupported:I
         7: .line 842
            aload 1 /* caps */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsVerified:I
            putfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsVerified:I
         8: .line 843
            aload 1 /* caps */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mAudioCaps:Landroid/media/MediaCodecInfo$AudioCapabilities;
            putfield android.media.MediaCodecInfo$CodecCapabilities.mAudioCaps:Landroid/media/MediaCodecInfo$AudioCapabilities;
         9: .line 844
            aload 1 /* caps */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mVideoCaps:Landroid/media/MediaCodecInfo$VideoCapabilities;
            putfield android.media.MediaCodecInfo$CodecCapabilities.mVideoCaps:Landroid/media/MediaCodecInfo$VideoCapabilities;
        10: .line 845
            aload 1 /* caps */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mEncoderCaps:Landroid/media/MediaCodecInfo$EncoderCapabilities;
            putfield android.media.MediaCodecInfo$CodecCapabilities.mEncoderCaps:Landroid/media/MediaCodecInfo$EncoderCapabilities;
        11: .line 846
            aload 1 /* caps */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mDefaultFormat:Landroid/media/MediaFormat;
            putfield android.media.MediaCodecInfo$CodecCapabilities.mDefaultFormat:Landroid/media/MediaFormat;
        12: .line 847
            aload 1 /* caps */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mCapabilitiesInfo:Landroid/media/MediaFormat;
            putfield android.media.MediaCodecInfo$CodecCapabilities.mCapabilitiesInfo:Landroid/media/MediaFormat;
        13: .line 849
            aload 1 /* caps */
            areturn
        end local 1 // android.media.MediaCodecInfo$CodecCapabilities caps
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   14     0  this  Landroid/media/MediaCodecInfo$CodecCapabilities;
            1   14     1  caps  Landroid/media/MediaCodecInfo$CodecCapabilities;

  public static android.media.MediaCodecInfo$CodecCapabilities createFromProfileLevel(java.lang.String, int, int);
    descriptor: (Ljava/lang/String;II)Landroid/media/MediaCodecInfo$CodecCapabilities;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=9, locals=6, args_size=3
        start local 0 // java.lang.String mime
        start local 1 // int profile
        start local 2 // int level
         0: .line 862
            new android.media.MediaCodecInfo$CodecProfileLevel
            dup
            invokespecial android.media.MediaCodecInfo$CodecProfileLevel.<init>:()V
            astore 3 /* pl */
        start local 3 // android.media.MediaCodecInfo$CodecProfileLevel pl
         1: .line 863
            aload 3 /* pl */
            iload 1 /* profile */
            putfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
         2: .line 864
            aload 3 /* pl */
            iload 2 /* level */
            putfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
         3: .line 865
            new android.media.MediaFormat
            dup
            invokespecial android.media.MediaFormat.<init>:()V
            astore 4 /* defaultFormat */
        start local 4 // android.media.MediaFormat defaultFormat
         4: .line 866
            aload 4 /* defaultFormat */
            ldc "mime"
            aload 0 /* mime */
            invokevirtual android.media.MediaFormat.setString:(Ljava/lang/String;Ljava/lang/String;)V
         5: .line 868
            new android.media.MediaCodecInfo$CodecCapabilities
            dup
         6: .line 869
            iconst_1
            anewarray android.media.MediaCodecInfo$CodecProfileLevel
            dup
            iconst_0
            aload 3 /* pl */
            aastore
            iconst_0
            newarray 10
            iconst_1
         7: .line 870
            iconst_0
            aload 4 /* defaultFormat */
            new android.media.MediaFormat
            dup
            invokespecial android.media.MediaFormat.<init>:()V
         8: .line 868
            invokespecial android.media.MediaCodecInfo$CodecCapabilities.<init>:([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZILandroid/media/MediaFormat;Landroid/media/MediaFormat;)V
            astore 5 /* ret */
        start local 5 // android.media.MediaCodecInfo$CodecCapabilities ret
         9: .line 871
            aload 5 /* ret */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mError:I
            ifeq 11
        10: .line 872
            aconst_null
            areturn
        11: .line 874
      StackMap locals: android.media.MediaCodecInfo$CodecProfileLevel android.media.MediaFormat android.media.MediaCodecInfo$CodecCapabilities
      StackMap stack:
            aload 5 /* ret */
            areturn
        end local 5 // android.media.MediaCodecInfo$CodecCapabilities ret
        end local 4 // android.media.MediaFormat defaultFormat
        end local 3 // android.media.MediaCodecInfo$CodecProfileLevel pl
        end local 2 // int level
        end local 1 // int profile
        end local 0 // java.lang.String mime
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   12     0           mime  Ljava/lang/String;
            0   12     1        profile  I
            0   12     2          level  I
            1   12     3             pl  Landroid/media/MediaCodecInfo$CodecProfileLevel;
            4   12     4  defaultFormat  Landroid/media/MediaFormat;
            9   12     5            ret  Landroid/media/MediaCodecInfo$CodecCapabilities;
    MethodParameters:
         Name  Flags
      mime     
      profile  
      level    

  void <init>(android.media.MediaCodecInfo$CodecProfileLevel[], int[], boolean, int, java.util.Map<java.lang.String, java.lang.Object>, java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: ([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZILjava/util/Map;Ljava/util/Map;)V
    flags: (0x0000) 
    Code:
      stack=9, locals=7, args_size=7
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
        start local 1 // android.media.MediaCodecInfo$CodecProfileLevel[] profLevs
        start local 2 // int[] colFmts
        start local 3 // boolean encoder
        start local 4 // int flags
        start local 5 // java.util.Map defaultFormatMap
        start local 6 // java.util.Map capabilitiesMap
         0: .line 882
            aload 0 /* this */
            aload 1 /* profLevs */
            aload 2 /* colFmts */
            iload 3 /* encoder */
            iload 4 /* flags */
         1: .line 883
            new android.media.MediaFormat
            dup
            aload 5 /* defaultFormatMap */
            invokespecial android.media.MediaFormat.<init>:(Ljava/util/Map;)V
         2: .line 884
            new android.media.MediaFormat
            dup
            aload 6 /* capabilitiesMap */
            invokespecial android.media.MediaFormat.<init>:(Ljava/util/Map;)V
            invokespecial android.media.MediaCodecInfo$CodecCapabilities.<init>:([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZILandroid/media/MediaFormat;Landroid/media/MediaFormat;)V
         3: .line 885
            return
        end local 6 // java.util.Map capabilitiesMap
        end local 5 // java.util.Map defaultFormatMap
        end local 4 // int flags
        end local 3 // boolean encoder
        end local 2 // int[] colFmts
        end local 1 // android.media.MediaCodecInfo$CodecProfileLevel[] profLevs
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    4     0              this  Landroid/media/MediaCodecInfo$CodecCapabilities;
            0    4     1          profLevs  [Landroid/media/MediaCodecInfo$CodecProfileLevel;
            0    4     2           colFmts  [I
            0    4     3           encoder  Z
            0    4     4             flags  I
            0    4     5  defaultFormatMap  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            0    4     6   capabilitiesMap  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
    Signature: ([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZILjava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)V
    MethodParameters:
                  Name  Flags
      profLevs          
      colFmts           
      encoder           
      flags             
      defaultFormatMap  
      capabilitiesMap   

  void <init>(android.media.MediaCodecInfo$CodecProfileLevel[], int[], boolean, int, android.media.MediaFormat, android.media.MediaFormat);
    descriptor: ([Landroid/media/MediaCodecInfo$CodecProfileLevel;[IZILandroid/media/MediaFormat;Landroid/media/MediaFormat;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=16, args_size=7
        start local 0 // android.media.MediaCodecInfo$CodecCapabilities this
        start local 1 // android.media.MediaCodecInfo$CodecProfileLevel[] profLevs
        start local 2 // int[] colFmts
        start local 3 // boolean encoder
        start local 4 // int flags
        start local 5 // android.media.MediaFormat defaultFormat
        start local 6 // android.media.MediaFormat info
         0: .line 889
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 892
            aload 6 /* info */
            invokevirtual android.media.MediaFormat.getMap:()Ljava/util/Map;
            astore 7 /* map */
        start local 7 // java.util.Map map
         2: .line 893
            aload 0 /* this */
            aload 2 /* colFmts */
            putfield android.media.MediaCodecInfo$CodecCapabilities.colorFormats:[I
         3: .line 894
            aload 0 /* this */
            iload 4 /* flags */
            putfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsVerified:I
         4: .line 895
            aload 0 /* this */
            aload 5 /* defaultFormat */
            putfield android.media.MediaCodecInfo$CodecCapabilities.mDefaultFormat:Landroid/media/MediaFormat;
         5: .line 896
            aload 0 /* this */
            aload 6 /* info */
            putfield android.media.MediaCodecInfo$CodecCapabilities.mCapabilitiesInfo:Landroid/media/MediaFormat;
         6: .line 897
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mDefaultFormat:Landroid/media/MediaFormat;
            ldc "mime"
            invokevirtual android.media.MediaFormat.getString:(Ljava/lang/String;)Ljava/lang/String;
            putfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
         7: .line 901
            aload 1 /* profLevs */
            arraylength
            ifne 12
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            ldc "video/x-vnd.on2.vp9"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 12
         8: .line 902
            new android.media.MediaCodecInfo$CodecProfileLevel
            dup
            invokespecial android.media.MediaCodecInfo$CodecProfileLevel.<init>:()V
            astore 8 /* profLev */
        start local 8 // android.media.MediaCodecInfo$CodecProfileLevel profLev
         9: .line 903
            aload 8 /* profLev */
            iconst_1
            putfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
        10: .line 904
            aload 8 /* profLev */
            aload 6 /* info */
            invokestatic android.media.MediaCodecInfo$VideoCapabilities.equivalentVP9Level:(Landroid/media/MediaFormat;)I
            putfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
        11: .line 905
            iconst_1
            anewarray android.media.MediaCodecInfo$CodecProfileLevel
            dup
            iconst_0
            aload 8 /* profLev */
            aastore
            astore 1 /* profLevs */
        end local 8 // android.media.MediaCodecInfo$CodecProfileLevel profLev
        12: .line 907
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities android.media.MediaCodecInfo$CodecProfileLevel[] int[] int int android.media.MediaFormat android.media.MediaFormat java.util.Map
      StackMap stack:
            aload 0 /* this */
            aload 1 /* profLevs */
            putfield android.media.MediaCodecInfo$CodecCapabilities.profileLevels:[Landroid/media/MediaCodecInfo$CodecProfileLevel;
        13: .line 909
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            ldc "audio/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifeq 17
        14: .line 910
            aload 0 /* this */
            aload 6 /* info */
            aload 0 /* this */
            invokestatic android.media.MediaCodecInfo$AudioCapabilities.create:(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)Landroid/media/MediaCodecInfo$AudioCapabilities;
            putfield android.media.MediaCodecInfo$CodecCapabilities.mAudioCaps:Landroid/media/MediaCodecInfo$AudioCapabilities;
        15: .line 911
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mAudioCaps:Landroid/media/MediaCodecInfo$AudioCapabilities;
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mDefaultFormat:Landroid/media/MediaFormat;
            invokevirtual android.media.MediaCodecInfo$AudioCapabilities.getDefaultFormat:(Landroid/media/MediaFormat;)V
        16: .line 912
            goto 20
      StackMap locals:
      StackMap stack:
        17: aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            invokevirtual java.lang.String.toLowerCase:()Ljava/lang/String;
            ldc "video/"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 19
        18: .line 913
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMime:Ljava/lang/String;
            ldc "image/vnd.android.heic"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 20
        19: .line 914
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* info */
            aload 0 /* this */
            invokestatic android.media.MediaCodecInfo$VideoCapabilities.create:(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)Landroid/media/MediaCodecInfo$VideoCapabilities;
            putfield android.media.MediaCodecInfo$CodecCapabilities.mVideoCaps:Landroid/media/MediaCodecInfo$VideoCapabilities;
        20: .line 916
      StackMap locals:
      StackMap stack:
            iload 3 /* encoder */
            ifeq 23
        21: .line 917
            aload 0 /* this */
            aload 6 /* info */
            aload 0 /* this */
            invokestatic android.media.MediaCodecInfo$EncoderCapabilities.create:(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)Landroid/media/MediaCodecInfo$EncoderCapabilities;
            putfield android.media.MediaCodecInfo$CodecCapabilities.mEncoderCaps:Landroid/media/MediaCodecInfo$EncoderCapabilities;
        22: .line 918
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mEncoderCaps:Landroid/media/MediaCodecInfo$EncoderCapabilities;
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mDefaultFormat:Landroid/media/MediaFormat;
            invokevirtual android.media.MediaCodecInfo$EncoderCapabilities.getDefaultFormat:(Landroid/media/MediaFormat;)V
        23: .line 921
      StackMap locals:
      StackMap stack:
            invokestatic android.media.MediaCodecList.getGlobalSettings:()Ljava/util/Map;
            astore 8 /* global */
        start local 8 // java.util.Map global
        24: .line 922
            aload 0 /* this */
        25: .line 923
            aload 8 /* global */
            ldc "max-concurrent-instances"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            bipush 32
        26: .line 922
            invokestatic android.media.Utils.parseIntSafely:(Ljava/lang/Object;I)I
            putfield android.media.MediaCodecInfo$CodecCapabilities.mMaxSupportedInstances:I
        27: .line 926
            aload 7 /* map */
            ldc "max-concurrent-instances"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mMaxSupportedInstances:I
        28: .line 925
            invokestatic android.media.Utils.parseIntSafely:(Ljava/lang/Object;I)I
            istore 9 /* maxInstances */
        start local 9 // int maxInstances
        29: .line 927
            aload 0 /* this */
        30: .line 928
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            sipush 256
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            iload 9 /* maxInstances */
            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
        31: .line 927
            putfield android.media.MediaCodecInfo$CodecCapabilities.mMaxSupportedInstances:I
        32: .line 930
            aload 0 /* this */
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.getValidFeatures:()[Landroid/media/MediaCodecInfo$Feature;
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 43
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities android.media.MediaCodecInfo$CodecProfileLevel[] int[] int int android.media.MediaFormat android.media.MediaFormat java.util.Map java.util.Map int top int int android.media.MediaCodecInfo$Feature[]
      StackMap stack:
        33: aload 13
            iload 11
            aaload
            astore 10 /* feat */
        start local 10 // android.media.MediaCodecInfo$Feature feat
        34: .line 931
            new java.lang.StringBuilder
            dup
            ldc "feature-"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 10 /* feat */
            getfield android.media.MediaCodecInfo$Feature.mName:Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            astore 14 /* key */
        start local 14 // java.lang.String key
        35: .line 932
            aload 7 /* map */
            aload 14 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 15 /* yesNo */
        start local 15 // java.lang.Integer yesNo
        36: .line 933
            aload 15 /* yesNo */
            ifnonnull 38
        37: .line 934
            goto 42
        38: .line 936
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities android.media.MediaCodecInfo$CodecProfileLevel[] int[] int int android.media.MediaFormat android.media.MediaFormat java.util.Map java.util.Map int android.media.MediaCodecInfo$Feature int int android.media.MediaCodecInfo$Feature[] java.lang.String java.lang.Integer
      StackMap stack:
            aload 15 /* yesNo */
            invokevirtual java.lang.Integer.intValue:()I
            ifle 40
        39: .line 937
            aload 0 /* this */
            dup
            getfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsRequired:I
            aload 10 /* feat */
            getfield android.media.MediaCodecInfo$Feature.mValue:I
            ior
            putfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsRequired:I
        40: .line 939
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsSupported:I
            aload 10 /* feat */
            getfield android.media.MediaCodecInfo$Feature.mValue:I
            ior
            putfield android.media.MediaCodecInfo$CodecCapabilities.mFlagsSupported:I
        41: .line 940
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$CodecCapabilities.mDefaultFormat:Landroid/media/MediaFormat;
            aload 14 /* key */
            iconst_1
            invokevirtual android.media.MediaFormat.setInteger:(Ljava/lang/String;I)V
        end local 15 // java.lang.Integer yesNo
        end local 14 // java.lang.String key
        end local 10 // android.media.MediaCodecInfo$Feature feat
        42: .line 930
      StackMap locals: android.media.MediaCodecInfo$CodecCapabilities android.media.MediaCodecInfo$CodecProfileLevel[] int[] int int android.media.MediaFormat android.media.MediaFormat java.util.Map java.util.Map int top int int android.media.MediaCodecInfo$Feature[]
      StackMap stack:
            iinc 11 1
      StackMap locals:
      StackMap stack:
        43: iload 11
            iload 12
            if_icmplt 33
        44: .line 943
            return
        end local 9 // int maxInstances
        end local 8 // java.util.Map global
        end local 7 // java.util.Map map
        end local 6 // android.media.MediaFormat info
        end local 5 // android.media.MediaFormat defaultFormat
        end local 4 // int flags
        end local 3 // boolean encoder
        end local 2 // int[] colFmts
        end local 1 // android.media.MediaCodecInfo$CodecProfileLevel[] profLevs
        end local 0 // android.media.MediaCodecInfo$CodecCapabilities this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   45     0           this  Landroid/media/MediaCodecInfo$CodecCapabilities;
            0   45     1       profLevs  [Landroid/media/MediaCodecInfo$CodecProfileLevel;
            0   45     2        colFmts  [I
            0   45     3        encoder  Z
            0   45     4          flags  I
            0   45     5  defaultFormat  Landroid/media/MediaFormat;
            0   45     6           info  Landroid/media/MediaFormat;
            2   45     7            map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            9   12     8        profLev  Landroid/media/MediaCodecInfo$CodecProfileLevel;
           24   45     8         global  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
           29   45     9   maxInstances  I
           34   42    10           feat  Landroid/media/MediaCodecInfo$Feature;
           35   42    14            key  Ljava/lang/String;
           36   42    15          yesNo  Ljava/lang/Integer;
    MethodParameters:
               Name  Flags
      profLevs       
      colFmts        
      encoder        
      flags          
      defaultFormat  
      info           
}
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
  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