public final class android.media.MediaCodecInfo$VideoCapabilities
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.media.MediaCodecInfo$VideoCapabilities
  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: "VideoCapabilities"

  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 android.util.Range<java.lang.Integer> mHeightRange;
    descriptor: Landroid/util/Range;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/util/Range<Ljava/lang/Integer;>;

  private android.util.Range<java.lang.Integer> mWidthRange;
    descriptor: Landroid/util/Range;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/util/Range<Ljava/lang/Integer;>;

  private android.util.Range<java.lang.Integer> mBlockCountRange;
    descriptor: Landroid/util/Range;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/util/Range<Ljava/lang/Integer;>;

  private android.util.Range<java.lang.Integer> mHorizontalBlockRange;
    descriptor: Landroid/util/Range;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/util/Range<Ljava/lang/Integer;>;

  private android.util.Range<java.lang.Integer> mVerticalBlockRange;
    descriptor: Landroid/util/Range;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/util/Range<Ljava/lang/Integer;>;

  private android.util.Range<android.util.Rational> mAspectRatioRange;
    descriptor: Landroid/util/Range;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/util/Range<Landroid/util/Rational;>;

  private android.util.Range<android.util.Rational> mBlockAspectRatioRange;
    descriptor: Landroid/util/Range;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/util/Range<Landroid/util/Rational;>;

  private android.util.Range<java.lang.Long> mBlocksPerSecondRange;
    descriptor: Landroid/util/Range;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/util/Range<Ljava/lang/Long;>;

  private java.util.Map<android.util.Size, android.util.Range<java.lang.Long>> mMeasuredFrameRates;
    descriptor: Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Signature: Ljava/util/Map<Landroid/util/Size;Landroid/util/Range<Ljava/lang/Long;>;>;

  private android.util.Range<java.lang.Integer> mFrameRateRange;
    descriptor: Landroid/util/Range;
    flags: (0x0002) ACC_PRIVATE
    Signature: Landroid/util/Range<Ljava/lang/Integer;>;

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

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

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

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

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

  private boolean mAllowMbOverride;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  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 // android.media.MediaCodecInfo$VideoCapabilities this
         0: .line 1250
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBitrateRange:Landroid/util/Range;
            areturn
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$VideoCapabilities;
    Signature: ()Landroid/util/Range<Ljava/lang/Integer;>;

  public android.util.Range<java.lang.Integer> getSupportedWidths();
    descriptor: ()Landroid/util/Range;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
         0: .line 1257
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
            areturn
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$VideoCapabilities;
    Signature: ()Landroid/util/Range<Ljava/lang/Integer;>;

  public android.util.Range<java.lang.Integer> getSupportedHeights();
    descriptor: ()Landroid/util/Range;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
         0: .line 1264
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            areturn
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$VideoCapabilities;
    Signature: ()Landroid/util/Range<Ljava/lang/Integer;>;

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

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

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

  public android.util.Range<java.lang.Integer> getSupportedFrameRates();
    descriptor: ()Landroid/util/Range;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
         0: .line 1313
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
            areturn
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$VideoCapabilities;
    Signature: ()Landroid/util/Range<Ljava/lang/Integer;>;

  public android.util.Range<java.lang.Integer> getSupportedWidthsFor(int);
    descriptor: (I)Landroid/util/Range;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int height
         0: .line 1322
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
            astore 2 /* range */
        start local 2 // android.util.Range range
         1: .line 1323
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            iload 1 /* height */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual android.util.Range.contains:(Ljava/lang/Comparable;)Z
            ifeq 3
         2: .line 1324
            iload 1 /* height */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightAlignment:I
            irem
            ifeq 4
         3: .line 1325
      StackMap locals: android.util.Range
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "unsupported height"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1327
      StackMap locals:
      StackMap stack:
            iload 1 /* height */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            invokestatic android.media.Utils.divUp:(II)I
            istore 3 /* heightInBlocks */
        start local 3 // int heightInBlocks
         5: .line 1331
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iload 3 /* heightInBlocks */
            invokestatic android.media.Utils.divUp:(II)I
         6: .line 1332
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast android.util.Rational
            invokevirtual android.util.Rational.doubleValue:()D
         7: .line 1333
            iload 3 /* heightInBlocks */
            i2d
         8: .line 1332
            dmul
            invokestatic java.lang.Math.ceil:(D)D
            d2i
         9: .line 1330
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* minWidthInBlocks */
        start local 4 // int minWidthInBlocks
        10: .line 1335
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iload 3 /* heightInBlocks */
            idiv
        11: .line 1336
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast android.util.Rational
            invokevirtual android.util.Rational.doubleValue:()D
        12: .line 1337
            iload 3 /* heightInBlocks */
            i2d
        13: .line 1336
            dmul
            d2i
        14: .line 1334
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* maxWidthInBlocks */
        start local 5 // int maxWidthInBlocks
        15: .line 1338
            aload 2 /* range */
        16: .line 1339
            iload 4 /* minWidthInBlocks */
            iconst_1
            isub
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            imul
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthAlignment:I
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        17: .line 1340
            iload 5 /* maxWidthInBlocks */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            imul
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        18: .line 1338
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            astore 2 /* range */
        19: .line 1343
            iload 1 /* height */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mSmallerDimensionUpperLimit:I
            if_icmple 21
        20: .line 1344
            aload 2 /* range */
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mSmallerDimensionUpperLimit:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            astore 2 /* range */
        21: .line 1348
      StackMap locals: int int int
      StackMap stack:
            aload 2 /* range */
        22: .line 1349
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mAspectRatioRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast android.util.Rational
            invokevirtual android.util.Rational.doubleValue:()D
        23: .line 1350
            iload 1 /* height */
            i2d
        24: .line 1349
            dmul
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        25: .line 1351
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mAspectRatioRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast android.util.Rational
            invokevirtual android.util.Rational.doubleValue:()D
            iload 1 /* height */
            i2d
            dmul
            d2i
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        26: .line 1348
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            astore 2 /* range */
        27: .line 1352
            aload 2 /* range */
        28: areturn
        end local 5 // int maxWidthInBlocks
        end local 4 // int minWidthInBlocks
        end local 3 // int heightInBlocks
        end local 2 // android.util.Range range
        29: .line 1353
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities int
      StackMap stack: java.lang.IllegalArgumentException
            pop
        30: .line 1355
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "could not get supported widths for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* height */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        31: .line 1356
            new java.lang.IllegalArgumentException
            dup
            ldc "unsupported height"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // int height
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   32     0              this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0   32     1            height  I
            1   29     2             range  Landroid/util/Range<Ljava/lang/Integer;>;
            5   29     3    heightInBlocks  I
           10   29     4  minWidthInBlocks  I
           15   29     5  maxWidthInBlocks  I
      Exception table:
        from    to  target  type
           0    28      29  Class java.lang.IllegalArgumentException
    Signature: (I)Landroid/util/Range<Ljava/lang/Integer;>;
    MethodParameters:
        Name  Flags
      height  

  public android.util.Range<java.lang.Integer> getSupportedHeightsFor(int);
    descriptor: (I)Landroid/util/Range;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int width
         0: .line 1366
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            astore 2 /* range */
        start local 2 // android.util.Range range
         1: .line 1367
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
            iload 1 /* width */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual android.util.Range.contains:(Ljava/lang/Comparable;)Z
            ifeq 3
         2: .line 1368
            iload 1 /* width */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthAlignment:I
            irem
            ifeq 4
         3: .line 1369
      StackMap locals: android.util.Range
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            ldc "unsupported width"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         4: .line 1371
      StackMap locals:
      StackMap stack:
            iload 1 /* width */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            invokestatic android.media.Utils.divUp:(II)I
            istore 3 /* widthInBlocks */
        start local 3 // int widthInBlocks
         5: .line 1375
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iload 3 /* widthInBlocks */
            invokestatic android.media.Utils.divUp:(II)I
         6: .line 1376
            iload 3 /* widthInBlocks */
            i2d
         7: .line 1377
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast android.util.Rational
            invokevirtual android.util.Rational.doubleValue:()D
         8: .line 1376
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2i
         9: .line 1374
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* minHeightInBlocks */
        start local 4 // int minHeightInBlocks
        10: .line 1379
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iload 3 /* widthInBlocks */
            idiv
        11: .line 1380
            iload 3 /* widthInBlocks */
            i2d
        12: .line 1381
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast android.util.Rational
            invokevirtual android.util.Rational.doubleValue:()D
        13: .line 1380
            ddiv
            d2i
        14: .line 1378
            invokestatic java.lang.Math.min:(II)I
            istore 5 /* maxHeightInBlocks */
        start local 5 // int maxHeightInBlocks
        15: .line 1382
            aload 2 /* range */
        16: .line 1383
            iload 4 /* minHeightInBlocks */
            iconst_1
            isub
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            imul
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightAlignment:I
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        17: .line 1384
            iload 5 /* maxHeightInBlocks */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            imul
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        18: .line 1382
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            astore 2 /* range */
        19: .line 1387
            iload 1 /* width */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mSmallerDimensionUpperLimit:I
            if_icmple 21
        20: .line 1388
            aload 2 /* range */
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mSmallerDimensionUpperLimit:I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            astore 2 /* range */
        21: .line 1392
      StackMap locals: int int int
      StackMap stack:
            aload 2 /* range */
        22: .line 1393
            iload 1 /* width */
            i2d
        23: .line 1394
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mAspectRatioRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast android.util.Rational
            invokevirtual android.util.Rational.doubleValue:()D
        24: .line 1393
            ddiv
            invokestatic java.lang.Math.ceil:(D)D
            d2i
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        25: .line 1395
            iload 1 /* width */
            i2d
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mAspectRatioRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast android.util.Rational
            invokevirtual android.util.Rational.doubleValue:()D
            ddiv
            d2i
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        26: .line 1392
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            astore 2 /* range */
        27: .line 1396
            aload 2 /* range */
        28: areturn
        end local 5 // int maxHeightInBlocks
        end local 4 // int minHeightInBlocks
        end local 3 // int widthInBlocks
        end local 2 // android.util.Range range
        29: .line 1397
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities int
      StackMap stack: java.lang.IllegalArgumentException
            pop
        30: .line 1399
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "could not get supported heights for "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* width */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic android.util.Log.v:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        31: .line 1400
            new java.lang.IllegalArgumentException
            dup
            ldc "unsupported width"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // int width
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   32     0               this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0   32     1              width  I
            1   29     2              range  Landroid/util/Range<Ljava/lang/Integer;>;
            5   29     3      widthInBlocks  I
           10   29     4  minHeightInBlocks  I
           15   29     5  maxHeightInBlocks  I
      Exception table:
        from    to  target  type
           0    28      29  Class java.lang.IllegalArgumentException
    Signature: (I)Landroid/util/Range<Ljava/lang/Integer;>;
    MethodParameters:
       Name  Flags
      width  

  public android.util.Range<java.lang.Double> getSupportedFrameRatesFor(int, int);
    descriptor: (II)Landroid/util/Range;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int width
        start local 2 // int height
         0: .line 1417
            aload 0 /* this */
            iload 1 /* width */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 2 /* height */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aconst_null
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.supports:(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Number;)Z
            ifne 2
         1: .line 1418
            new java.lang.IllegalArgumentException
            dup
            ldc "unsupported size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1421
      StackMap locals:
      StackMap stack:
            iload 1 /* width */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            invokestatic android.media.Utils.divUp:(II)I
            iload 2 /* height */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            invokestatic android.media.Utils.divUp:(II)I
            imul
         3: .line 1420
            istore 3 /* blockCount */
        start local 3 // int blockCount
         4: .line 1424
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            l2d
            iload 3 /* blockCount */
            i2d
            ddiv
         5: .line 1425
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            i2d
         6: .line 1424
            invokestatic java.lang.Math.max:(DD)D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
         7: .line 1426
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            l2d
            iload 3 /* blockCount */
            i2d
            ddiv
         8: .line 1427
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            i2d
         9: .line 1426
            invokestatic java.lang.Math.min:(DD)D
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
        10: .line 1423
            invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            areturn
        end local 3 // int blockCount
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0   11     1       width  I
            0   11     2      height  I
            4   11     3  blockCount  I
    Signature: (II)Landroid/util/Range<Ljava/lang/Double;>;
    MethodParameters:
        Name  Flags
      width   
      height  

  private int getBlockCount(int, int);
    descriptor: (II)I
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int width
        start local 2 // int height
         0: .line 1431
            iload 1 /* width */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            invokestatic android.media.Utils.divUp:(II)I
            iload 2 /* height */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            invokestatic android.media.Utils.divUp:(II)I
            imul
            ireturn
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0    1     1   width  I
            0    1     2  height  I
    MethodParameters:
        Name  Flags
      width   
      height  

  private android.util.Size findClosestSize(int, int);
    descriptor: (II)Landroid/util/Size;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=9, args_size=3
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int width
        start local 2 // int height
         0: .line 1436
            aload 0 /* this */
            iload 1 /* width */
            iload 2 /* height */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.getBlockCount:(II)I
            istore 3 /* targetBlockCount */
        start local 3 // int targetBlockCount
         1: .line 1437
            aconst_null
            astore 4 /* closestSize */
        start local 4 // android.util.Size closestSize
         2: .line 1438
            ldc 2147483647
            istore 5 /* minDiff */
        start local 5 // int minDiff
         3: .line 1439
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mMeasuredFrameRates:Ljava/util/Map;
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 11
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities int int int android.util.Size int top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast android.util.Size
            astore 6 /* size */
        start local 6 // android.util.Size size
         5: .line 1440
            iload 3 /* targetBlockCount */
         6: .line 1441
            aload 0 /* this */
            aload 6 /* size */
            invokevirtual android.util.Size.getWidth:()I
            aload 6 /* size */
            invokevirtual android.util.Size.getHeight:()I
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.getBlockCount:(II)I
         7: .line 1440
            isub
            invokestatic java.lang.Math.abs:(I)I
            istore 8 /* diff */
        start local 8 // int diff
         8: .line 1442
            iload 8 /* diff */
            iload 5 /* minDiff */
            if_icmpge 11
         9: .line 1443
            iload 8 /* diff */
            istore 5 /* minDiff */
        10: .line 1444
            aload 6 /* size */
            astore 4 /* closestSize */
        end local 8 // int diff
        end local 6 // android.util.Size size
        11: .line 1439
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
        12: .line 1447
            aload 4 /* closestSize */
            areturn
        end local 5 // int minDiff
        end local 4 // android.util.Size closestSize
        end local 3 // int targetBlockCount
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   13     0              this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0   13     1             width  I
            0   13     2            height  I
            1   13     3  targetBlockCount  I
            2   13     4       closestSize  Landroid/util/Size;
            3   13     5           minDiff  I
            5   11     6              size  Landroid/util/Size;
            8   11     8              diff  I
    MethodParameters:
        Name  Flags
      width   
      height  

  private android.util.Range<java.lang.Double> estimateFrameRatesFor(int, int);
    descriptor: (II)Landroid/util/Range;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=6, args_size=3
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int width
        start local 2 // int height
         0: .line 1451
            aload 0 /* this */
            iload 1 /* width */
            iload 2 /* height */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.findClosestSize:(II)Landroid/util/Size;
            astore 3 /* size */
        start local 3 // android.util.Size size
         1: .line 1452
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mMeasuredFrameRates:Ljava/util/Map;
            aload 3 /* size */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast android.util.Range
            astore 4 /* range */
        start local 4 // android.util.Range range
         2: .line 1453
            aload 0 /* this */
            aload 3 /* size */
            invokevirtual android.util.Size.getWidth:()I
            aload 3 /* size */
            invokevirtual android.util.Size.getHeight:()I
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.getBlockCount:(II)I
            i2d
         3: .line 1454
            aload 0 /* this */
            iload 1 /* width */
            iload 2 /* height */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.getBlockCount:(II)I
            iconst_1
            invokestatic java.lang.Math.max:(II)I
            i2d
         4: .line 1453
            ddiv
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            astore 5 /* ratio */
        start local 5 // java.lang.Double ratio
         5: .line 1455
            aload 4 /* range */
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            l2d
            aload 5 /* ratio */
            invokevirtual java.lang.Double.doubleValue:()D
            dmul
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            aload 4 /* range */
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            l2d
            aload 5 /* ratio */
            invokevirtual java.lang.Double.doubleValue:()D
            dmul
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            areturn
        end local 5 // java.lang.Double ratio
        end local 4 // android.util.Range range
        end local 3 // android.util.Size size
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0    6     1   width  I
            0    6     2  height  I
            1    6     3    size  Landroid/util/Size;
            2    6     4   range  Landroid/util/Range<Ljava/lang/Long;>;
            5    6     5   ratio  Ljava/lang/Double;
    Signature: (II)Landroid/util/Range<Ljava/lang/Double;>;
    MethodParameters:
        Name  Flags
      width   
      height  

  public android.util.Range<java.lang.Double> getAchievableFrameRatesFor(int, int);
    descriptor: (II)Landroid/util/Range;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int width
        start local 2 // int height
         0: .line 1504
            aload 0 /* this */
            iload 1 /* width */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 2 /* height */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aconst_null
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.supports:(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Number;)Z
            ifne 2
         1: .line 1505
            new java.lang.IllegalArgumentException
            dup
            ldc "unsupported size"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1508
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mMeasuredFrameRates:Ljava/util/Map;
            ifnull 3
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mMeasuredFrameRates:Ljava/util/Map;
            invokeinterface java.util.Map.size:()I
            ifgt 5
         3: .line 1509
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            ldc "Codec did not publish any measurement data."
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
         4: .line 1510
            aconst_null
            areturn
         5: .line 1513
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* width */
            iload 2 /* height */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.estimateFrameRatesFor:(II)Landroid/util/Range;
            areturn
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0    6     1   width  I
            0    6     2  height  I
    Signature: (II)Landroid/util/Range<Ljava/lang/Double;>;
    MethodParameters:
        Name  Flags
      width   
      height  

  public boolean areSizeAndRateSupported(int, int, double);
    descriptor: (IID)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int width
        start local 2 // int height
        start local 3 // double frameRate
         0: .line 1522
            aload 0 /* this */
            iload 1 /* width */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 2 /* height */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            dload 3 /* frameRate */
            invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.supports:(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Number;)Z
            ireturn
        end local 3 // double frameRate
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0       this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0    1     1      width  I
            0    1     2     height  I
            0    1     3  frameRate  D
    MethodParameters:
           Name  Flags
      width      
      height     
      frameRate  

  public boolean isSizeSupported(int, int);
    descriptor: (II)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int width
        start local 2 // int height
         0: .line 1530
            aload 0 /* this */
            iload 1 /* width */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 2 /* height */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aconst_null
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.supports:(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Number;)Z
            ireturn
        end local 2 // int height
        end local 1 // int width
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0    1     1   width  I
            0    1     2  height  I
    MethodParameters:
        Name  Flags
      width   
      height  

  private boolean supports(java.lang.Integer, java.lang.Integer, java.lang.Number);
    descriptor: (Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Number;)Z
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=10, args_size=4
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // java.lang.Integer width
        start local 2 // java.lang.Integer height
        start local 3 // java.lang.Number rate
         0: .line 1534
            iconst_1
            istore 4 /* ok */
        start local 4 // boolean ok
         1: .line 1536
            iload 4 /* ok */
            ifeq 7
            aload 1 /* width */
            ifnull 7
         2: .line 1537
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
            aload 1 /* width */
            invokevirtual android.util.Range.contains:(Ljava/lang/Comparable;)Z
            ifeq 5
         3: .line 1538
            aload 1 /* width */
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthAlignment:I
            irem
            ifne 5
         4: .line 1537
            iconst_1
            goto 6
      StackMap locals: int
      StackMap stack:
         5: iconst_0
      StackMap locals:
      StackMap stack: int
         6: istore 4 /* ok */
         7: .line 1540
      StackMap locals:
      StackMap stack:
            iload 4 /* ok */
            ifeq 13
            aload 2 /* height */
            ifnull 13
         8: .line 1541
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            aload 2 /* height */
            invokevirtual android.util.Range.contains:(Ljava/lang/Comparable;)Z
            ifeq 11
         9: .line 1542
            aload 2 /* height */
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightAlignment:I
            irem
            ifne 11
        10: .line 1541
            iconst_1
            goto 12
      StackMap locals:
      StackMap stack:
        11: iconst_0
      StackMap locals:
      StackMap stack: int
        12: istore 4 /* ok */
        13: .line 1544
      StackMap locals:
      StackMap stack:
            iload 4 /* ok */
            ifeq 15
            aload 3 /* rate */
            ifnull 15
        14: .line 1545
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
            aload 3 /* rate */
            invokevirtual java.lang.Number.doubleValue:()D
            invokestatic android.media.Utils.intRangeFor:(D)Landroid/util/Range;
            invokevirtual android.util.Range.contains:(Landroid/util/Range;)Z
            istore 4 /* ok */
        15: .line 1547
      StackMap locals:
      StackMap stack:
            iload 4 /* ok */
            ifeq 36
            aload 2 /* height */
            ifnull 36
            aload 1 /* width */
            ifnull 36
        16: .line 1548
            aload 2 /* height */
            invokevirtual java.lang.Integer.intValue:()I
            aload 1 /* width */
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic java.lang.Math.min:(II)I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mSmallerDimensionUpperLimit:I
            if_icmpgt 17
            iconst_1
            goto 18
      StackMap locals:
      StackMap stack:
        17: iconst_0
      StackMap locals:
      StackMap stack: int
        18: istore 4 /* ok */
        19: .line 1550
            aload 1 /* width */
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            invokestatic android.media.Utils.divUp:(II)I
            istore 5 /* widthInBlocks */
        start local 5 // int widthInBlocks
        20: .line 1551
            aload 2 /* height */
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            invokestatic android.media.Utils.divUp:(II)I
            istore 6 /* heightInBlocks */
        start local 6 // int heightInBlocks
        21: .line 1552
            iload 5 /* widthInBlocks */
            iload 6 /* heightInBlocks */
            imul
            istore 7 /* blockCount */
        start local 7 // int blockCount
        22: .line 1553
            iload 4 /* ok */
            ifeq 29
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            iload 7 /* blockCount */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual android.util.Range.contains:(Ljava/lang/Comparable;)Z
            ifeq 29
        23: .line 1554
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
        24: .line 1555
            new android.util.Rational
            dup
            iload 5 /* widthInBlocks */
            iload 6 /* heightInBlocks */
            invokespecial android.util.Rational.<init>:(II)V
        25: .line 1554
            invokevirtual android.util.Range.contains:(Ljava/lang/Comparable;)Z
        26: .line 1555
            ifeq 29
        27: .line 1556
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mAspectRatioRange:Landroid/util/Range;
            new android.util.Rational
            dup
            aload 1 /* width */
            invokevirtual java.lang.Integer.intValue:()I
            aload 2 /* height */
            invokevirtual java.lang.Integer.intValue:()I
            invokespecial android.util.Rational.<init>:(II)V
            invokevirtual android.util.Range.contains:(Ljava/lang/Comparable;)Z
            ifeq 29
        28: .line 1553
            iconst_1
            goto 30
      StackMap locals: int int int
      StackMap stack:
        29: iconst_0
      StackMap locals:
      StackMap stack: int
        30: istore 4 /* ok */
        31: .line 1557
            iload 4 /* ok */
            ifeq 36
            aload 3 /* rate */
            ifnull 36
        32: .line 1558
            iload 7 /* blockCount */
            i2d
            aload 3 /* rate */
            invokevirtual java.lang.Number.doubleValue:()D
            dmul
            dstore 8 /* blocksPerSec */
        start local 8 // double blocksPerSec
        33: .line 1559
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
        34: .line 1560
            dload 8 /* blocksPerSec */
            invokestatic android.media.Utils.longRangeFor:(D)Landroid/util/Range;
        35: .line 1559
            invokevirtual android.util.Range.contains:(Landroid/util/Range;)Z
            istore 4 /* ok */
        end local 8 // double blocksPerSec
        end local 7 // int blockCount
        end local 6 // int heightInBlocks
        end local 5 // int widthInBlocks
        36: .line 1563
      StackMap locals:
      StackMap stack:
            iload 4 /* ok */
            ireturn
        end local 4 // boolean ok
        end local 3 // java.lang.Number rate
        end local 2 // java.lang.Integer height
        end local 1 // java.lang.Integer width
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   37     0            this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0   37     1           width  Ljava/lang/Integer;
            0   37     2          height  Ljava/lang/Integer;
            0   37     3            rate  Ljava/lang/Number;
            1   37     4              ok  Z
           20   36     5   widthInBlocks  I
           21   36     6  heightInBlocks  I
           22   36     7      blockCount  I
           33   36     8    blocksPerSec  D
    MethodParameters:
        Name  Flags
      width   
      height  
      rate    

  public boolean supportsFormat(android.media.MediaFormat);
    descriptor: (Landroid/media/MediaFormat;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // android.media.MediaFormat format
         0: .line 1570
            aload 1 /* format */
            invokevirtual android.media.MediaFormat.getMap:()Ljava/util/Map;
            astore 2 /* map */
        start local 2 // java.util.Map map
         1: .line 1571
            aload 2 /* map */
            ldc "width"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 3 /* width */
        start local 3 // java.lang.Integer width
         2: .line 1572
            aload 2 /* map */
            ldc "height"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Integer
            astore 4 /* height */
        start local 4 // java.lang.Integer height
         3: .line 1573
            aload 2 /* map */
            ldc "frame-rate"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            checkcast java.lang.Number
            astore 5 /* rate */
        start local 5 // java.lang.Number rate
         4: .line 1575
            aload 0 /* this */
            aload 3 /* width */
            aload 4 /* height */
            aload 5 /* rate */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.supports:(Ljava/lang/Integer;Ljava/lang/Integer;Ljava/lang/Number;)Z
            ifne 6
         5: .line 1576
            iconst_0
            ireturn
         6: .line 1579
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities android.media.MediaFormat java.util.Map java.lang.Integer java.lang.Integer java.lang.Number
      StackMap stack:
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBitrateRange:Landroid/util/Range;
            aload 1 /* format */
            invokestatic android.media.MediaCodecInfo$CodecCapabilities.supportsBitrate:(Landroid/util/Range;Landroid/media/MediaFormat;)Z
            ifne 8
         7: .line 1580
            iconst_0
            ireturn
         8: .line 1584
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 5 // java.lang.Number rate
        end local 4 // java.lang.Integer height
        end local 3 // java.lang.Integer width
        end local 2 // java.util.Map map
        end local 1 // android.media.MediaFormat format
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    9     0    this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0    9     1  format  Landroid/media/MediaFormat;
            1    9     2     map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            2    9     3   width  Ljava/lang/Integer;
            3    9     4  height  Ljava/lang/Integer;
            4    9     5    rate  Ljava/lang/Number;
    MethodParameters:
        Name  Flags
      format  

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
         0: .line 1588
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$VideoCapabilities;

  public static android.media.MediaCodecInfo$VideoCapabilities create(android.media.MediaFormat, android.media.MediaCodecInfo$CodecCapabilities);
    descriptor: (Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)Landroid/media/MediaCodecInfo$VideoCapabilities;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.media.MediaFormat info
        start local 1 // android.media.MediaCodecInfo$CodecCapabilities parent
         0: .line 1593
            new android.media.MediaCodecInfo$VideoCapabilities
            dup
            invokespecial android.media.MediaCodecInfo$VideoCapabilities.<init>:()V
            astore 2 /* caps */
        start local 2 // android.media.MediaCodecInfo$VideoCapabilities caps
         1: .line 1594
            aload 2 /* caps */
            aload 0 /* info */
            aload 1 /* parent */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.init:(Landroid/media/MediaFormat;Landroid/media/MediaCodecInfo$CodecCapabilities;)V
         2: .line 1595
            aload 2 /* caps */
            areturn
        end local 2 // android.media.MediaCodecInfo$VideoCapabilities caps
        end local 1 // android.media.MediaCodecInfo$CodecCapabilities parent
        end local 0 // android.media.MediaFormat info
      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$VideoCapabilities;
    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 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // android.media.MediaFormat info
        start local 2 // android.media.MediaCodecInfo$CodecCapabilities parent
         0: .line 1599
            aload 0 /* this */
            aload 2 /* parent */
            putfield android.media.MediaCodecInfo$VideoCapabilities.mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
         1: .line 1600
            aload 0 /* this */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.initWithPlatformLimits:()V
         2: .line 1601
            aload 0 /* this */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyLevelLimits:()V
         3: .line 1602
            aload 0 /* this */
            aload 1 /* info */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.parseFromInfo:(Landroid/media/MediaFormat;)V
         4: .line 1603
            aload 0 /* this */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.updateLimits:()V
         5: .line 1604
            return
        end local 2 // android.media.MediaCodecInfo$CodecCapabilities parent
        end local 1 // android.media.MediaFormat info
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    6     0    this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0    6     1    info  Landroid/media/MediaFormat;
            0    6     2  parent  Landroid/media/MediaCodecInfo$CodecCapabilities;
    MethodParameters:
        Name  Flags
      info    
      parent  

  public android.util.Size getBlockSize();
    descriptor: ()Landroid/util/Size;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
         0: .line 1608
            new android.util.Size
            dup
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            invokespecial android.util.Size.<init>:(II)V
            areturn
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$VideoCapabilities;

  public android.util.Range<java.lang.Integer> getBlockCountRange();
    descriptor: ()Landroid/util/Range;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
         0: .line 1613
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            areturn
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$VideoCapabilities;
    Signature: ()Landroid/util/Range<Ljava/lang/Integer;>;

  public android.util.Range<java.lang.Long> getBlocksPerSecondRange();
    descriptor: ()Landroid/util/Range;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
         0: .line 1618
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
            areturn
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaCodecInfo$VideoCapabilities;
    Signature: ()Landroid/util/Range<Ljava/lang/Long;>;

  public android.util.Range<android.util.Rational> getAspectRatioRange(boolean);
    descriptor: (Z)Landroid/util/Range;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // boolean blocks
         0: .line 1623
            iload 1 /* blocks */
            ifeq 1
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
            goto 2
      StackMap locals:
      StackMap stack:
         1: aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mAspectRatioRange:Landroid/util/Range;
      StackMap locals:
      StackMap stack: android.util.Range
         2: areturn
        end local 1 // boolean blocks
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    3     0    this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0    3     1  blocks  Z
    Signature: (Z)Landroid/util/Range<Landroid/util/Rational;>;
    MethodParameters:
        Name  Flags
      blocks  

  private void initWithPlatformLimits();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
         0: .line 1627
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.BITRATE_RANGE:Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBitrateRange:Landroid/util/Range;
         1: .line 1629
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.SIZE_RANGE:Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
         2: .line 1630
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.SIZE_RANGE:Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
         3: .line 1631
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.FRAME_RATE_RANGE:Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
         4: .line 1633
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.SIZE_RANGE:Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
         5: .line 1634
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.SIZE_RANGE:Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
         6: .line 1637
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.POSITIVE_INTEGERS:Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
         7: .line 1638
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.POSITIVE_LONGS:Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
         8: .line 1640
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.POSITIVE_RATIONALS:Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
         9: .line 1641
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.POSITIVE_RATIONALS:Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mAspectRatioRange:Landroid/util/Range;
        10: .line 1644
            aload 0 /* this */
            iconst_2
            putfield android.media.MediaCodecInfo$VideoCapabilities.mWidthAlignment:I
        11: .line 1645
            aload 0 /* this */
            iconst_2
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHeightAlignment:I
        12: .line 1646
            aload 0 /* this */
            iconst_2
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
        13: .line 1647
            aload 0 /* this */
            iconst_2
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
        14: .line 1648
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.SIZE_RANGE:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            putfield android.media.MediaCodecInfo$VideoCapabilities.mSmallerDimensionUpperLimit:I
        15: .line 1649
            return
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Landroid/media/MediaCodecInfo$VideoCapabilities;

  private java.util.Map<android.util.Size, android.util.Range<java.lang.Long>> getMeasuredFrameRates(java.util.Map<java.lang.String, java.lang.Object>);
    descriptor: (Ljava/util/Map;)Ljava/util/Map;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=10, args_size=2
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // java.util.Map map
         0: .line 1652
            new java.util.HashMap
            dup
            invokespecial java.util.HashMap.<init>:()V
            astore 2 /* ret */
        start local 2 // java.util.Map ret
         1: .line 1654
            aload 1 /* map */
            invokeinterface java.util.Map.keySet:()Ljava/util/Set;
            astore 3 /* keys */
        start local 3 // java.util.Set keys
         2: .line 1655
            aload 3 /* keys */
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 5
            goto 18
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities java.util.Map java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
         3: aload 5
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.lang.String
            astore 4 /* key */
        start local 4 // java.lang.String key
         4: .line 1657
            aload 4 /* key */
            ldc "measured-frame-rate-"
            invokevirtual java.lang.String.startsWith:(Ljava/lang/String;)Z
            ifne 6
         5: .line 1658
            goto 18
         6: .line 1660
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities java.util.Map java.util.Map java.util.Set java.lang.String java.util.Iterator
      StackMap stack:
            aload 4 /* key */
            ldc "measured-frame-rate-"
            invokevirtual java.lang.String.length:()I
            invokevirtual java.lang.String.substring:(I)Ljava/lang/String;
            pop
         7: .line 1661
            aload 4 /* key */
            ldc "-"
            invokevirtual java.lang.String.split:(Ljava/lang/String;)[Ljava/lang/String;
            astore 6 /* temp */
        start local 6 // java.lang.String[] temp
         8: .line 1662
            aload 6 /* temp */
            arraylength
            iconst_5
            if_icmpeq 10
         9: .line 1663
            goto 18
        10: .line 1665
      StackMap locals: java.lang.String[]
      StackMap stack:
            aload 6 /* temp */
            iconst_3
            aaload
            astore 7 /* sizeStr */
        start local 7 // java.lang.String sizeStr
        11: .line 1666
            aload 7 /* sizeStr */
            aconst_null
            invokestatic android.media.Utils.parseSize:(Ljava/lang/Object;Landroid/util/Size;)Landroid/util/Size;
            astore 8 /* size */
        start local 8 // android.util.Size size
        12: .line 1667
            aload 8 /* size */
            ifnull 18
            aload 8 /* size */
            invokevirtual android.util.Size.getWidth:()I
            aload 8 /* size */
            invokevirtual android.util.Size.getHeight:()I
            imul
            ifgt 14
        13: .line 1668
            goto 18
        14: .line 1670
      StackMap locals: java.lang.String android.util.Size
      StackMap stack:
            aload 1 /* map */
            aload 4 /* key */
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aconst_null
            invokestatic android.media.Utils.parseLongRange:(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
            astore 9 /* range */
        start local 9 // android.util.Range range
        15: .line 1671
            aload 9 /* range */
            ifnull 18
            aload 9 /* range */
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lconst_0
            lcmp
            iflt 18
            aload 9 /* range */
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lconst_0
            lcmp
            ifge 17
        16: .line 1672
            goto 18
        17: .line 1674
      StackMap locals: android.util.Range
      StackMap stack:
            aload 2 /* ret */
            aload 8 /* size */
            aload 9 /* range */
            invokeinterface java.util.Map.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
            pop
        end local 9 // android.util.Range range
        end local 8 // android.util.Size size
        end local 7 // java.lang.String sizeStr
        end local 6 // java.lang.String[] temp
        end local 4 // java.lang.String key
        18: .line 1655
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities java.util.Map java.util.Map java.util.Set top java.util.Iterator
      StackMap stack:
            aload 5
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 3
        19: .line 1676
            aload 2 /* ret */
            areturn
        end local 3 // java.util.Set keys
        end local 2 // java.util.Map ret
        end local 1 // java.util.Map map
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0   20     1      map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            1   20     2      ret  Ljava/util/Map<Landroid/util/Size;Landroid/util/Range<Ljava/lang/Long;>;>;
            2   20     3     keys  Ljava/util/Set<Ljava/lang/String;>;
            4   18     4      key  Ljava/lang/String;
            8   18     6     temp  [Ljava/lang/String;
           11   18     7  sizeStr  Ljava/lang/String;
           12   18     8     size  Landroid/util/Size;
           15   18     9    range  Landroid/util/Range<Ljava/lang/Long;>;
    Signature: (Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;)Ljava/util/Map<Landroid/util/Size;Landroid/util/Range<Ljava/lang/Long;>;>;
    MethodParameters:
      Name  Flags
      map   

  private static android.util.Pair<android.util.Range<java.lang.Integer>, android.util.Range<java.lang.Integer>> parseWidthHeightRanges();
    descriptor: (Ljava/lang/Object;)Landroid/util/Pair;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // java.lang.Object o
         0: .line 1680
            aload 0 /* o */
            invokestatic android.media.Utils.parseSizeRange:(Ljava/lang/Object;)Landroid/util/Pair;
            astore 1 /* range */
        start local 1 // android.util.Pair range
         1: .line 1681
            aload 1 /* range */
            ifnull 8
         2: .line 1684
            aload 1 /* range */
            getfield android.util.Pair.first:Ljava/lang/Object;
            checkcast android.util.Size
            invokevirtual android.util.Size.getWidth:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* range */
            getfield android.util.Pair.second:Ljava/lang/Object;
            checkcast android.util.Size
            invokevirtual android.util.Size.getWidth:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
         3: .line 1685
            aload 1 /* range */
            getfield android.util.Pair.first:Ljava/lang/Object;
            checkcast android.util.Size
            invokevirtual android.util.Size.getHeight:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            aload 1 /* range */
            getfield android.util.Pair.second:Ljava/lang/Object;
            checkcast android.util.Size
            invokevirtual android.util.Size.getHeight:()I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
         4: .line 1683
            invokestatic android.util.Pair.create:(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
         5: areturn
         6: .line 1686
      StackMap locals: java.lang.Object android.util.Pair
      StackMap stack: java.lang.IllegalArgumentException
            pop
         7: .line 1687
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "could not parse size range '"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* o */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "'"
            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
         8: .line 1690
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
        end local 1 // android.util.Pair range
        end local 0 // java.lang.Object o
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    9     0      o  Ljava/lang/Object;
            1    9     1  range  Landroid/util/Pair<Landroid/util/Size;Landroid/util/Size;>;
      Exception table:
        from    to  target  type
           2     5       6  Class java.lang.IllegalArgumentException
    Signature: (Ljava/lang/Object;)Landroid/util/Pair<Landroid/util/Range<Ljava/lang/Integer;>;Landroid/util/Range<Ljava/lang/Integer;>;>;
    MethodParameters:
      Name  Flags
      o     

  public static int equivalentVP9Level(android.media.MediaFormat);
    descriptor: (Landroid/media/MediaFormat;)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=13, args_size=1
        start local 0 // android.media.MediaFormat info
         0: .line 1695
            aload 0 /* info */
            invokevirtual android.media.MediaFormat.getMap:()Ljava/util/Map;
            astore 1 /* map */
        start local 1 // java.util.Map map
         1: .line 1697
            aload 1 /* map */
            ldc "block-size"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            new android.util.Size
            dup
            bipush 8
            bipush 8
            invokespecial android.util.Size.<init>:(II)V
            invokestatic android.media.Utils.parseSize:(Ljava/lang/Object;Landroid/util/Size;)Landroid/util/Size;
            astore 2 /* blockSize */
        start local 2 // android.util.Size blockSize
         2: .line 1698
            aload 2 /* blockSize */
            invokevirtual android.util.Size.getWidth:()I
            aload 2 /* blockSize */
            invokevirtual android.util.Size.getHeight:()I
            imul
            istore 3 /* BS */
        start local 3 // int BS
         3: .line 1700
            aload 1 /* map */
            ldc "block-count-range"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aconst_null
            invokestatic android.media.Utils.parseIntRange:(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
            astore 4 /* counts */
        start local 4 // android.util.Range counts
         4: .line 1701
            aload 4 /* counts */
            ifnonnull 5
            iconst_0
            goto 6
      StackMap locals: android.media.MediaFormat java.util.Map android.util.Size int android.util.Range
      StackMap stack:
         5: iload 3 /* BS */
            aload 4 /* counts */
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            imul
      StackMap locals:
      StackMap stack: int
         6: istore 5 /* FS */
        start local 5 // int FS
         7: .line 1704
            aload 1 /* map */
            ldc "blocks-per-second-range"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aconst_null
            invokestatic android.media.Utils.parseLongRange:(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
         8: .line 1703
            astore 6 /* blockRates */
        start local 6 // android.util.Range blockRates
         9: .line 1705
            aload 6 /* blockRates */
            ifnonnull 10
            lconst_0
            goto 11
      StackMap locals: int android.util.Range
      StackMap stack:
        10: iload 3 /* BS */
            i2l
            aload 6 /* blockRates */
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            lmul
      StackMap locals:
      StackMap stack: long
        11: lstore 7 /* SR */
        start local 7 // long SR
        12: .line 1708
            aload 1 /* map */
            ldc "size-range"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic android.media.MediaCodecInfo$VideoCapabilities.parseWidthHeightRanges:(Ljava/lang/Object;)Landroid/util/Pair;
        13: .line 1707
            astore 9 /* dimensionRanges */
        start local 9 // android.util.Pair dimensionRanges
        14: .line 1709
            aload 9 /* dimensionRanges */
            ifnonnull 15
            iconst_0
            goto 17
        15: .line 1710
      StackMap locals: long android.util.Pair
      StackMap stack:
            aload 9 /* dimensionRanges */
            getfield android.util.Pair.first:Ljava/lang/Object;
            checkcast android.util.Range
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 9 /* dimensionRanges */
            getfield android.util.Pair.second:Ljava/lang/Object;
            checkcast android.util.Range
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
        16: .line 1709
            invokestatic java.lang.Math.max:(II)I
      StackMap locals:
      StackMap stack: int
        17: istore 10 /* D */
        start local 10 // int D
        18: .line 1712
            aload 1 /* map */
            ldc "bitrate-range"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aconst_null
            invokestatic android.media.Utils.parseIntRange:(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
            astore 11 /* bitRates */
        start local 11 // android.util.Range bitRates
        19: .line 1713
            aload 11 /* bitRates */
            ifnonnull 20
            iconst_0
            goto 21
      StackMap locals: int android.util.Range
      StackMap stack:
        20: aload 11 /* bitRates */
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            sipush 1000
            invokestatic android.media.Utils.divUp:(II)I
      StackMap locals:
      StackMap stack: int
        21: istore 12 /* BR */
        start local 12 // int BR
        22: .line 1715
            lload 7 /* SR */
            ldc 829440
            lcmp
            ifgt 24
            iload 5 /* FS */
            ldc 36864
            if_icmpgt 24
            iload 12 /* BR */
            sipush 200
            if_icmpgt 24
            iload 10 /* D */
            sipush 512
            if_icmpgt 24
        23: .line 1716
            iconst_1
            ireturn
        24: .line 1717
      StackMap locals: int
      StackMap stack:
            lload 7 /* SR */
            ldc 2764800
            lcmp
            ifgt 26
            iload 5 /* FS */
            ldc 73728
            if_icmpgt 26
            iload 12 /* BR */
            sipush 800
            if_icmpgt 26
            iload 10 /* D */
            sipush 768
            if_icmpgt 26
        25: .line 1718
            iconst_2
            ireturn
        26: .line 1719
      StackMap locals:
      StackMap stack:
            lload 7 /* SR */
            ldc 4608000
            lcmp
            ifgt 28
            iload 5 /* FS */
            ldc 122880
            if_icmpgt 28
            iload 12 /* BR */
            sipush 1800
            if_icmpgt 28
            iload 10 /* D */
            sipush 960
            if_icmpgt 28
        27: .line 1720
            iconst_4
            ireturn
        28: .line 1721
      StackMap locals:
      StackMap stack:
            lload 7 /* SR */
            ldc 9216000
            lcmp
            ifgt 30
            iload 5 /* FS */
            ldc 245760
            if_icmpgt 30
            iload 12 /* BR */
            sipush 3600
            if_icmpgt 30
            iload 10 /* D */
            sipush 1344
            if_icmpgt 30
        29: .line 1722
            bipush 8
            ireturn
        30: .line 1723
      StackMap locals:
      StackMap stack:
            lload 7 /* SR */
            ldc 20736000
            lcmp
            ifgt 32
            iload 5 /* FS */
            ldc 552960
            if_icmpgt 32
            iload 12 /* BR */
            sipush 7200
            if_icmpgt 32
            iload 10 /* D */
            sipush 2048
            if_icmpgt 32
        31: .line 1724
            bipush 16
            ireturn
        32: .line 1725
      StackMap locals:
      StackMap stack:
            lload 7 /* SR */
            ldc 36864000
            lcmp
            ifgt 34
            iload 5 /* FS */
            ldc 983040
            if_icmpgt 34
            iload 12 /* BR */
            sipush 12000
            if_icmpgt 34
            iload 10 /* D */
            sipush 2752
            if_icmpgt 34
        33: .line 1726
            bipush 32
            ireturn
        34: .line 1727
      StackMap locals:
      StackMap stack:
            lload 7 /* SR */
            ldc 83558400
            lcmp
            ifgt 36
            iload 5 /* FS */
            ldc 2228224
            if_icmpgt 36
            iload 12 /* BR */
            sipush 18000
            if_icmpgt 36
            iload 10 /* D */
            sipush 4160
            if_icmpgt 36
        35: .line 1728
            bipush 64
            ireturn
        36: .line 1729
      StackMap locals:
      StackMap stack:
            lload 7 /* SR */
            ldc 160432128
            lcmp
            ifgt 38
            iload 5 /* FS */
            ldc 2228224
            if_icmpgt 38
            iload 12 /* BR */
            sipush 30000
            if_icmpgt 38
            iload 10 /* D */
            sipush 4160
            if_icmpgt 38
        37: .line 1730
            sipush 128
            ireturn
        38: .line 1731
      StackMap locals:
      StackMap stack:
            lload 7 /* SR */
            ldc 311951360
            lcmp
            ifgt 40
            iload 5 /* FS */
            ldc 8912896
            if_icmpgt 40
            iload 12 /* BR */
            ldc 60000
            if_icmpgt 40
            iload 10 /* D */
            sipush 8384
            if_icmpgt 40
        39: .line 1732
            sipush 256
            ireturn
        40: .line 1733
      StackMap locals:
      StackMap stack:
            lload 7 /* SR */
            ldc 588251136
            lcmp
            ifgt 42
            iload 5 /* FS */
            ldc 8912896
            if_icmpgt 42
            iload 12 /* BR */
            ldc 120000
            if_icmpgt 42
            iload 10 /* D */
            sipush 8384
            if_icmpgt 42
        41: .line 1734
            sipush 512
            ireturn
        42: .line 1735
      StackMap locals:
      StackMap stack:
            lload 7 /* SR */
            ldc 1176502272
            lcmp
            ifgt 44
            iload 5 /* FS */
            ldc 8912896
            if_icmpgt 44
            iload 12 /* BR */
            ldc 180000
            if_icmpgt 44
            iload 10 /* D */
            sipush 8384
            if_icmpgt 44
        43: .line 1736
            sipush 1024
            ireturn
        44: .line 1737
      StackMap locals:
      StackMap stack:
            lload 7 /* SR */
            ldc 1176502272
            lcmp
            ifgt 46
            iload 5 /* FS */
            ldc 35651584
            if_icmpgt 46
            iload 12 /* BR */
            ldc 180000
            if_icmpgt 46
            iload 10 /* D */
            sipush 16832
            if_icmpgt 46
        45: .line 1738
            sipush 2048
            ireturn
        46: .line 1739
      StackMap locals:
      StackMap stack:
            lload 7 /* SR */
            ldc 2353004544
            lcmp
            ifgt 48
            iload 5 /* FS */
            ldc 35651584
            if_icmpgt 48
            iload 12 /* BR */
            ldc 240000
            if_icmpgt 48
            iload 10 /* D */
            sipush 16832
            if_icmpgt 48
        47: .line 1740
            sipush 4096
            ireturn
        48: .line 1741
      StackMap locals:
      StackMap stack:
            lload 7 /* SR */
            ldc 4706009088
            lcmp
            ifgt 50
            iload 5 /* FS */
            ldc 35651584
            if_icmpgt 50
            iload 12 /* BR */
            ldc 480000
            if_icmpgt 50
            iload 10 /* D */
            sipush 16832
            if_icmpgt 50
        49: .line 1742
            sipush 8192
            ireturn
        50: .line 1744
      StackMap locals:
      StackMap stack:
            sipush 8192
            ireturn
        end local 12 // int BR
        end local 11 // android.util.Range bitRates
        end local 10 // int D
        end local 9 // android.util.Pair dimensionRanges
        end local 7 // long SR
        end local 6 // android.util.Range blockRates
        end local 5 // int FS
        end local 4 // android.util.Range counts
        end local 3 // int BS
        end local 2 // android.util.Size blockSize
        end local 1 // java.util.Map map
        end local 0 // android.media.MediaFormat info
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   51     0             info  Landroid/media/MediaFormat;
            1   51     1              map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            2   51     2        blockSize  Landroid/util/Size;
            3   51     3               BS  I
            4   51     4           counts  Landroid/util/Range<Ljava/lang/Integer;>;
            7   51     5               FS  I
            9   51     6       blockRates  Landroid/util/Range<Ljava/lang/Long;>;
           12   51     7               SR  J
           14   51     9  dimensionRanges  Landroid/util/Pair<Landroid/util/Range<Ljava/lang/Integer;>;Landroid/util/Range<Ljava/lang/Integer;>;>;
           18   51    10                D  I
           19   51    11         bitRates  Landroid/util/Range<Ljava/lang/Integer;>;
           22   51    12               BR  I
    MethodParameters:
      Name  Flags
      info  

  private void parseFromInfo(android.media.MediaFormat);
    descriptor: (Landroid/media/MediaFormat;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=14, args_size=2
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // android.media.MediaFormat info
         0: .line 1748
            aload 1 /* info */
            invokevirtual android.media.MediaFormat.getMap:()Ljava/util/Map;
            astore 2 /* map */
        start local 2 // java.util.Map map
         1: .line 1749
            new android.util.Size
            dup
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            invokespecial android.util.Size.<init>:(II)V
            astore 3 /* blockSize */
        start local 3 // android.util.Size blockSize
         2: .line 1750
            new android.util.Size
            dup
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthAlignment:I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightAlignment:I
            invokespecial android.util.Size.<init>:(II)V
            astore 4 /* alignment */
        start local 4 // android.util.Size alignment
         3: .line 1751
            aconst_null
            astore 5 /* counts */
        start local 5 // android.util.Range counts
         4: aconst_null
            astore 6 /* widths */
        start local 6 // android.util.Range widths
         5: aconst_null
            astore 7 /* heights */
        start local 7 // android.util.Range heights
         6: .line 1752
            aconst_null
            astore 8 /* frameRates */
        start local 8 // android.util.Range frameRates
         7: aconst_null
            astore 9 /* bitRates */
        start local 9 // android.util.Range bitRates
         8: .line 1753
            aconst_null
            astore 10 /* blockRates */
        start local 10 // android.util.Range blockRates
         9: .line 1754
            aconst_null
            astore 11 /* ratios */
        start local 11 // android.util.Range ratios
        10: aconst_null
            astore 12 /* blockRatios */
        start local 12 // android.util.Range blockRatios
        11: .line 1756
            aload 2 /* map */
            ldc "block-size"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 3 /* blockSize */
            invokestatic android.media.Utils.parseSize:(Ljava/lang/Object;Landroid/util/Size;)Landroid/util/Size;
            astore 3 /* blockSize */
        12: .line 1757
            aload 2 /* map */
            ldc "alignment"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aload 4 /* alignment */
            invokestatic android.media.Utils.parseSize:(Ljava/lang/Object;Landroid/util/Size;)Landroid/util/Size;
            astore 4 /* alignment */
        13: .line 1758
            aload 2 /* map */
            ldc "block-count-range"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aconst_null
            invokestatic android.media.Utils.parseIntRange:(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
            astore 5 /* counts */
        14: .line 1760
            aload 2 /* map */
            ldc "blocks-per-second-range"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aconst_null
            invokestatic android.media.Utils.parseLongRange:(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
        15: .line 1759
            astore 10 /* blockRates */
        16: .line 1761
            aload 0 /* this */
            aload 0 /* this */
            aload 2 /* map */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.getMeasuredFrameRates:(Ljava/util/Map;)Ljava/util/Map;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mMeasuredFrameRates:Ljava/util/Map;
        17: .line 1763
            aload 2 /* map */
            ldc "size-range"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            invokestatic android.media.MediaCodecInfo$VideoCapabilities.parseWidthHeightRanges:(Ljava/lang/Object;)Landroid/util/Pair;
        18: .line 1762
            astore 13 /* sizeRanges */
        start local 13 // android.util.Pair sizeRanges
        19: .line 1764
            aload 13 /* sizeRanges */
            ifnull 22
        20: .line 1765
            aload 13 /* sizeRanges */
            getfield android.util.Pair.first:Ljava/lang/Object;
            checkcast android.util.Range
            astore 6 /* widths */
        21: .line 1766
            aload 13 /* sizeRanges */
            getfield android.util.Pair.second:Ljava/lang/Object;
            checkcast android.util.Range
            astore 7 /* heights */
        22: .line 1772
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities android.media.MediaFormat java.util.Map android.util.Size android.util.Size android.util.Range android.util.Range android.util.Range android.util.Range android.util.Range android.util.Range android.util.Range android.util.Range android.util.Pair
      StackMap stack:
            aload 2 /* map */
            ldc "feature-can-swap-width-height"
            invokeinterface java.util.Map.containsKey:(Ljava/lang/Object;)Z
            ifeq 34
        23: .line 1773
            aload 6 /* widths */
            ifnull 29
        24: .line 1774
            aload 0 /* this */
        25: .line 1775
            aload 6 /* widths */
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 7 /* heights */
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic java.lang.Math.min:(II)I
        26: .line 1774
            putfield android.media.MediaCodecInfo$VideoCapabilities.mSmallerDimensionUpperLimit:I
        27: .line 1776
            aload 6 /* widths */
            aload 7 /* heights */
            invokevirtual android.util.Range.extend:(Landroid/util/Range;)Landroid/util/Range;
            dup
            astore 7 /* heights */
            astore 6 /* widths */
        28: .line 1777
            goto 34
        29: .line 1778
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            ldc "feature can-swap-width-height is best used with size-range"
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        30: .line 1779
            aload 0 /* this */
        31: .line 1780
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic java.lang.Math.min:(II)I
        32: .line 1779
            putfield android.media.MediaCodecInfo$VideoCapabilities.mSmallerDimensionUpperLimit:I
        33: .line 1781
            aload 0 /* this */
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            invokevirtual android.util.Range.extend:(Landroid/util/Range;)Landroid/util/Range;
            dup_x1
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
        34: .line 1786
      StackMap locals:
      StackMap stack:
            aload 2 /* map */
            ldc "block-aspect-ratio-range"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aconst_null
        35: .line 1785
            invokestatic android.media.Utils.parseRationalRange:(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
            astore 11 /* ratios */
        36: .line 1788
            aload 2 /* map */
            ldc "pixel-aspect-ratio-range"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aconst_null
        37: .line 1787
            invokestatic android.media.Utils.parseRationalRange:(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
            astore 12 /* blockRatios */
        38: .line 1789
            aload 2 /* map */
            ldc "frame-rate-range"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aconst_null
            invokestatic android.media.Utils.parseIntRange:(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
            astore 8 /* frameRates */
        39: .line 1790
            aload 8 /* frameRates */
            ifnull 47
        40: .line 1792
            aload 8 /* frameRates */
            getstatic android.media.MediaCodecInfo.FRAME_RATE_RANGE:Landroid/util/Range;
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            astore 8 /* frameRates */
        41: .line 1793
            goto 47
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
        42: pop
        43: .line 1794
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "frame rate range ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* frameRates */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        44: .line 1795
            ldc ") is out of limits: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic android.media.MediaCodecInfo.FRAME_RATE_RANGE:Landroid/util/Range;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        45: .line 1794
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        46: .line 1796
            aconst_null
            astore 8 /* frameRates */
        47: .line 1799
      StackMap locals:
      StackMap stack:
            aload 2 /* map */
            ldc "bitrate-range"
            invokeinterface java.util.Map.get:(Ljava/lang/Object;)Ljava/lang/Object;
            aconst_null
            invokestatic android.media.Utils.parseIntRange:(Ljava/lang/Object;Landroid/util/Range;)Landroid/util/Range;
            astore 9 /* bitRates */
        48: .line 1800
            aload 9 /* bitRates */
            ifnull 56
        49: .line 1802
            aload 9 /* bitRates */
            getstatic android.media.MediaCodecInfo.BITRATE_RANGE:Landroid/util/Range;
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            astore 9 /* bitRates */
        50: .line 1803
            goto 56
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
        51: pop
        52: .line 1804
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "bitrate range ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 9 /* bitRates */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
        53: .line 1805
            ldc ") is out of limits: "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            getstatic android.media.MediaCodecInfo.BITRATE_RANGE:Landroid/util/Range;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        54: .line 1804
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        55: .line 1806
            aconst_null
            astore 9 /* bitRates */
        56: .line 1811
      StackMap locals:
      StackMap stack:
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getWidth:()I
            ldc "block-size width must be power of two"
        57: .line 1810
            invokestatic android.media.MediaCodecInfo.checkPowerOfTwo:(ILjava/lang/String;)I
            pop
        58: .line 1813
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getHeight:()I
            ldc "block-size height must be power of two"
        59: .line 1812
            invokestatic android.media.MediaCodecInfo.checkPowerOfTwo:(ILjava/lang/String;)I
            pop
        60: .line 1816
            aload 4 /* alignment */
            invokevirtual android.util.Size.getWidth:()I
            ldc "alignment width must be power of two"
        61: .line 1815
            invokestatic android.media.MediaCodecInfo.checkPowerOfTwo:(ILjava/lang/String;)I
            pop
        62: .line 1818
            aload 4 /* alignment */
            invokevirtual android.util.Size.getHeight:()I
            ldc "alignment height must be power of two"
        63: .line 1817
            invokestatic android.media.MediaCodecInfo.checkPowerOfTwo:(ILjava/lang/String;)I
            pop
        64: .line 1821
            aload 0 /* this */
        65: .line 1822
            ldc 2147483647
            ldc 2147483647
            ldc 2147483647
        66: .line 1823
            ldc 9223372036854775807
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getWidth:()I
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getHeight:()I
        67: .line 1824
            aload 4 /* alignment */
            invokevirtual android.util.Size.getWidth:()I
            aload 4 /* alignment */
            invokevirtual android.util.Size.getHeight:()I
        68: .line 1821
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyMacroBlockLimits:(IIIJIIII)V
        69: .line 1826
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
            getfield android.media.MediaCodecInfo$CodecCapabilities.mError:I
            iconst_2
            iand
            ifne 70
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mAllowMbOverride:Z
            ifeq 103
        70: .line 1829
      StackMap locals:
      StackMap stack:
            aload 6 /* widths */
            ifnull 72
        71: .line 1830
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.SIZE_RANGE:Landroid/util/Range;
            aload 6 /* widths */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
        72: .line 1832
      StackMap locals:
      StackMap stack:
            aload 7 /* heights */
            ifnull 74
        73: .line 1833
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.SIZE_RANGE:Landroid/util/Range;
            aload 7 /* heights */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
        74: .line 1835
      StackMap locals:
      StackMap stack:
            aload 5 /* counts */
            ifnull 80
        75: .line 1836
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.POSITIVE_INTEGERS:Landroid/util/Range;
        76: .line 1837
            aload 5 /* counts */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            imul
        77: .line 1838
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getWidth:()I
            idiv
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getHeight:()I
            idiv
        78: .line 1837
            invokestatic android.media.Utils.factorRange:(Landroid/util/Range;I)Landroid/util/Range;
        79: .line 1836
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
        80: .line 1840
      StackMap locals:
      StackMap stack:
            aload 10 /* blockRates */
            ifnull 86
        81: .line 1841
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.POSITIVE_LONGS:Landroid/util/Range;
        82: .line 1842
            aload 10 /* blockRates */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            imul
        83: .line 1843
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getWidth:()I
            idiv
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getHeight:()I
            idiv
            i2l
        84: .line 1842
            invokestatic android.media.Utils.factorRange:(Landroid/util/Range;J)Landroid/util/Range;
        85: .line 1841
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
        86: .line 1845
      StackMap locals:
      StackMap stack:
            aload 12 /* blockRatios */
            ifnull 93
        87: .line 1846
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.POSITIVE_RATIONALS:Landroid/util/Range;
        88: .line 1847
            aload 12 /* blockRatios */
        89: .line 1848
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getHeight:()I
            idiv
        90: .line 1849
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getWidth:()I
            idiv
        91: .line 1847
            invokestatic android.media.Utils.scaleRange:(Landroid/util/Range;II)Landroid/util/Range;
        92: .line 1846
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
        93: .line 1851
      StackMap locals:
      StackMap stack:
            aload 11 /* ratios */
            ifnull 95
        94: .line 1852
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.POSITIVE_RATIONALS:Landroid/util/Range;
            aload 11 /* ratios */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mAspectRatioRange:Landroid/util/Range;
        95: .line 1854
      StackMap locals:
      StackMap stack:
            aload 8 /* frameRates */
            ifnull 97
        96: .line 1855
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.FRAME_RATE_RANGE:Landroid/util/Range;
            aload 8 /* frameRates */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
        97: .line 1857
      StackMap locals:
      StackMap stack:
            aload 9 /* bitRates */
            ifnull 132
        98: .line 1859
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
            getfield android.media.MediaCodecInfo$CodecCapabilities.mError:I
            iconst_2
            iand
            ifeq 101
        99: .line 1860
            aload 0 /* this */
            getstatic android.media.MediaCodecInfo.BITRATE_RANGE:Landroid/util/Range;
            aload 9 /* bitRates */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBitrateRange:Landroid/util/Range;
       100: .line 1861
            goto 132
       101: .line 1862
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBitrateRange:Landroid/util/Range;
            aload 9 /* bitRates */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBitrateRange:Landroid/util/Range;
       102: .line 1865
            goto 132
       103: .line 1867
      StackMap locals:
      StackMap stack:
            aload 6 /* widths */
            ifnull 105
       104: .line 1868
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
            aload 6 /* widths */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
       105: .line 1870
      StackMap locals:
      StackMap stack:
            aload 7 /* heights */
            ifnull 107
       106: .line 1871
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            aload 7 /* heights */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
       107: .line 1873
      StackMap locals:
      StackMap stack:
            aload 5 /* counts */
            ifnull 113
       108: .line 1874
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
       109: .line 1875
            aload 5 /* counts */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            imul
       110: .line 1876
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getWidth:()I
            idiv
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getHeight:()I
            idiv
       111: .line 1875
            invokestatic android.media.Utils.factorRange:(Landroid/util/Range;I)Landroid/util/Range;
       112: .line 1874
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
       113: .line 1878
      StackMap locals:
      StackMap stack:
            aload 10 /* blockRates */
            ifnull 119
       114: .line 1879
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
       115: .line 1880
            aload 10 /* blockRates */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            imul
       116: .line 1881
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getWidth:()I
            idiv
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getHeight:()I
            idiv
            i2l
       117: .line 1880
            invokestatic android.media.Utils.factorRange:(Landroid/util/Range;J)Landroid/util/Range;
       118: .line 1879
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
       119: .line 1883
      StackMap locals:
      StackMap stack:
            aload 12 /* blockRatios */
            ifnull 126
       120: .line 1884
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
       121: .line 1885
            aload 12 /* blockRatios */
       122: .line 1886
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getHeight:()I
            idiv
       123: .line 1887
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            aload 3 /* blockSize */
            invokevirtual android.util.Size.getWidth:()I
            idiv
       124: .line 1885
            invokestatic android.media.Utils.scaleRange:(Landroid/util/Range;II)Landroid/util/Range;
       125: .line 1884
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
       126: .line 1889
      StackMap locals:
      StackMap stack:
            aload 11 /* ratios */
            ifnull 128
       127: .line 1890
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mAspectRatioRange:Landroid/util/Range;
            aload 11 /* ratios */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mAspectRatioRange:Landroid/util/Range;
       128: .line 1892
      StackMap locals:
      StackMap stack:
            aload 8 /* frameRates */
            ifnull 130
       129: .line 1893
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
            aload 8 /* frameRates */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
       130: .line 1895
      StackMap locals:
      StackMap stack:
            aload 9 /* bitRates */
            ifnull 132
       131: .line 1896
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBitrateRange:Landroid/util/Range;
            aload 9 /* bitRates */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBitrateRange:Landroid/util/Range;
       132: .line 1899
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.updateLimits:()V
       133: .line 1900
            return
        end local 13 // android.util.Pair sizeRanges
        end local 12 // android.util.Range blockRatios
        end local 11 // android.util.Range ratios
        end local 10 // android.util.Range blockRates
        end local 9 // android.util.Range bitRates
        end local 8 // android.util.Range frameRates
        end local 7 // android.util.Range heights
        end local 6 // android.util.Range widths
        end local 5 // android.util.Range counts
        end local 4 // android.util.Size alignment
        end local 3 // android.util.Size blockSize
        end local 2 // java.util.Map map
        end local 1 // android.media.MediaFormat info
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0  134     0         this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0  134     1         info  Landroid/media/MediaFormat;
            1  134     2          map  Ljava/util/Map<Ljava/lang/String;Ljava/lang/Object;>;
            2  134     3    blockSize  Landroid/util/Size;
            3  134     4    alignment  Landroid/util/Size;
            4  134     5       counts  Landroid/util/Range<Ljava/lang/Integer;>;
            5  134     6       widths  Landroid/util/Range<Ljava/lang/Integer;>;
            6  134     7      heights  Landroid/util/Range<Ljava/lang/Integer;>;
            7  134     8   frameRates  Landroid/util/Range<Ljava/lang/Integer;>;
            8  134     9     bitRates  Landroid/util/Range<Ljava/lang/Integer;>;
            9  134    10   blockRates  Landroid/util/Range<Ljava/lang/Long;>;
           10  134    11       ratios  Landroid/util/Range<Landroid/util/Rational;>;
           11  134    12  blockRatios  Landroid/util/Range<Landroid/util/Rational;>;
           19  134    13   sizeRanges  Landroid/util/Pair<Landroid/util/Range<Ljava/lang/Integer;>;Landroid/util/Range<Ljava/lang/Integer;>;>;
      Exception table:
        from    to  target  type
          40    41      42  Class java.lang.IllegalArgumentException
          49    50      51  Class java.lang.IllegalArgumentException
    MethodParameters:
      Name  Flags
      info  

  private void applyBlockLimits(int, int, android.util.Range<java.lang.Integer>, android.util.Range<java.lang.Long>, android.util.Range<android.util.Rational>);
    descriptor: (IILandroid/util/Range;Landroid/util/Range;Landroid/util/Range;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=9, args_size=6
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int blockWidth
        start local 2 // int blockHeight
        start local 3 // android.util.Range counts
        start local 4 // android.util.Range rates
        start local 5 // android.util.Range ratios
         0: .line 1905
            iload 1 /* blockWidth */
            ldc "blockWidth must be a power of two"
            invokestatic android.media.MediaCodecInfo.checkPowerOfTwo:(ILjava/lang/String;)I
            pop
         1: .line 1906
            iload 2 /* blockHeight */
            ldc "blockHeight must be a power of two"
            invokestatic android.media.MediaCodecInfo.checkPowerOfTwo:(ILjava/lang/String;)I
            pop
         2: .line 1908
            iload 1 /* blockWidth */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            invokestatic java.lang.Math.max:(II)I
            istore 6 /* newBlockWidth */
        start local 6 // int newBlockWidth
         3: .line 1909
            iload 2 /* blockHeight */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            invokestatic java.lang.Math.max:(II)I
            istore 7 /* newBlockHeight */
        start local 7 // int newBlockHeight
         4: .line 1913
            iload 6 /* newBlockWidth */
            iload 7 /* newBlockHeight */
            imul
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            idiv
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            idiv
         5: .line 1912
            istore 8 /* factor */
        start local 8 // int factor
         6: .line 1914
            iload 8 /* factor */
            iconst_1
            if_icmpeq 22
         7: .line 1915
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            iload 8 /* factor */
            invokestatic android.media.Utils.factorRange:(Landroid/util/Range;I)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
         8: .line 1916
            aload 0 /* this */
         9: .line 1917
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
            iload 8 /* factor */
            i2l
        10: .line 1916
            invokestatic android.media.Utils.factorRange:(Landroid/util/Range;J)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
        11: .line 1918
            aload 0 /* this */
        12: .line 1919
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
        13: .line 1920
            iload 7 /* newBlockHeight */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            idiv
        14: .line 1921
            iload 6 /* newBlockWidth */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            idiv
        15: .line 1918
            invokestatic android.media.Utils.scaleRange:(Landroid/util/Range;II)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
        16: .line 1922
            aload 0 /* this */
        17: .line 1923
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
            iload 6 /* newBlockWidth */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            idiv
        18: .line 1922
            invokestatic android.media.Utils.factorRange:(Landroid/util/Range;I)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
        19: .line 1924
            aload 0 /* this */
        20: .line 1925
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
            iload 7 /* newBlockHeight */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            idiv
        21: .line 1924
            invokestatic android.media.Utils.factorRange:(Landroid/util/Range;I)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
        22: .line 1927
      StackMap locals: int int int
      StackMap stack:
            iload 6 /* newBlockWidth */
            iload 7 /* newBlockHeight */
            imul
            iload 1 /* blockWidth */
            idiv
            iload 2 /* blockHeight */
            idiv
            istore 8 /* factor */
        23: .line 1928
            iload 8 /* factor */
            iconst_1
            if_icmpeq 29
        24: .line 1929
            aload 3 /* counts */
            iload 8 /* factor */
            invokestatic android.media.Utils.factorRange:(Landroid/util/Range;I)Landroid/util/Range;
            astore 3 /* counts */
        25: .line 1930
            aload 4 /* rates */
            iload 8 /* factor */
            i2l
            invokestatic android.media.Utils.factorRange:(Landroid/util/Range;J)Landroid/util/Range;
            astore 4 /* rates */
        26: .line 1932
            aload 5 /* ratios */
            iload 7 /* newBlockHeight */
            iload 2 /* blockHeight */
            idiv
        27: .line 1933
            iload 6 /* newBlockWidth */
            iload 1 /* blockWidth */
            idiv
        28: .line 1931
            invokestatic android.media.Utils.scaleRange:(Landroid/util/Range;II)Landroid/util/Range;
            astore 5 /* ratios */
        29: .line 1935
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            aload 3 /* counts */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
        30: .line 1936
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
            aload 4 /* rates */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
        31: .line 1937
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
            aload 5 /* ratios */
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
        32: .line 1938
            aload 0 /* this */
            iload 6 /* newBlockWidth */
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
        33: .line 1939
            aload 0 /* this */
            iload 7 /* newBlockHeight */
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
        34: .line 1940
            return
        end local 8 // int factor
        end local 7 // int newBlockHeight
        end local 6 // int newBlockWidth
        end local 5 // android.util.Range ratios
        end local 4 // android.util.Range rates
        end local 3 // android.util.Range counts
        end local 2 // int blockHeight
        end local 1 // int blockWidth
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   35     0            this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0   35     1      blockWidth  I
            0   35     2     blockHeight  I
            0   35     3          counts  Landroid/util/Range<Ljava/lang/Integer;>;
            0   35     4           rates  Landroid/util/Range<Ljava/lang/Long;>;
            0   35     5          ratios  Landroid/util/Range<Landroid/util/Rational;>;
            3   35     6   newBlockWidth  I
            4   35     7  newBlockHeight  I
            6   35     8          factor  I
    Signature: (IILandroid/util/Range<Ljava/lang/Integer;>;Landroid/util/Range<Ljava/lang/Long;>;Landroid/util/Range<Landroid/util/Rational;>;)V
    MethodParameters:
             Name  Flags
      blockWidth   
      blockHeight  
      counts       
      rates        
      ratios       

  private void applyAlignment(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=3, args_size=3
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int widthAlignment
        start local 2 // int heightAlignment
         0: .line 1943
            iload 1 /* widthAlignment */
            ldc "widthAlignment must be a power of two"
            invokestatic android.media.MediaCodecInfo.checkPowerOfTwo:(ILjava/lang/String;)I
            pop
         1: .line 1944
            iload 2 /* heightAlignment */
            ldc "heightAlignment must be a power of two"
            invokestatic android.media.MediaCodecInfo.checkPowerOfTwo:(ILjava/lang/String;)I
            pop
         2: .line 1946
            iload 1 /* widthAlignment */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            if_icmpgt 3
            iload 2 /* heightAlignment */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            if_icmple 8
         3: .line 1948
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
         4: .line 1949
            iload 1 /* widthAlignment */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            invokestatic java.lang.Math.max:(II)I
         5: .line 1950
            iload 2 /* heightAlignment */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            invokestatic java.lang.Math.max:(II)I
         6: .line 1951
            getstatic android.media.MediaCodecInfo.POSITIVE_INTEGERS:Landroid/util/Range;
            getstatic android.media.MediaCodecInfo.POSITIVE_LONGS:Landroid/util/Range;
            getstatic android.media.MediaCodecInfo.POSITIVE_RATIONALS:Landroid/util/Range;
         7: .line 1948
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyBlockLimits:(IILandroid/util/Range;Landroid/util/Range;Landroid/util/Range;)V
         8: .line 1954
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* widthAlignment */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthAlignment:I
            invokestatic java.lang.Math.max:(II)I
            putfield android.media.MediaCodecInfo$VideoCapabilities.mWidthAlignment:I
         9: .line 1955
            aload 0 /* this */
            iload 2 /* heightAlignment */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightAlignment:I
            invokestatic java.lang.Math.max:(II)I
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHeightAlignment:I
        10: .line 1957
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthAlignment:I
            invokestatic android.media.Utils.alignRange:(Landroid/util/Range;I)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
        11: .line 1958
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightAlignment:I
            invokestatic android.media.Utils.alignRange:(Landroid/util/Range;I)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
        12: .line 1959
            return
        end local 2 // int heightAlignment
        end local 1 // int widthAlignment
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   13     0             this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0   13     1   widthAlignment  I
            0   13     2  heightAlignment  I
    MethodParameters:
                 Name  Flags
      widthAlignment   
      heightAlignment  

  private void updateLimits();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=7, locals=1, args_size=1
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
         0: .line 1963
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
         1: .line 1964
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            invokestatic android.media.Utils.factorRange:(Landroid/util/Range;I)Landroid/util/Range;
         2: .line 1963
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
         3: .line 1965
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
         4: .line 1967
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            idiv
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         5: .line 1968
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            idiv
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
         6: .line 1966
            invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
         7: .line 1965
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
         8: .line 1969
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
         9: .line 1970
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            invokestatic android.media.Utils.factorRange:(Landroid/util/Range;I)Landroid/util/Range;
        10: .line 1969
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
        11: .line 1971
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
        12: .line 1973
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            idiv
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        13: .line 1974
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            idiv
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        14: .line 1972
            invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
        15: .line 1971
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
        16: .line 1975
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
        17: .line 1977
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
        18: .line 1978
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
        19: .line 1977
            imul
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        20: .line 1979
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
        21: .line 1980
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
        22: .line 1979
            imul
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        23: .line 1976
            invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
        24: .line 1975
            invokevirtual android.util.Range.intersect:(Landroid/util/Range;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
        25: .line 1981
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
        26: .line 1982
            new android.util.Rational
            dup
        27: .line 1983
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
        28: .line 1982
            invokespecial android.util.Rational.<init>:(II)V
        29: .line 1984
            new android.util.Rational
            dup
        30: .line 1985
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
        31: .line 1984
            invokespecial android.util.Rational.<init>:(II)V
        32: .line 1981
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
        33: .line 1988
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
        34: .line 1989
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            isub
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            imul
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthAlignment:I
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        35: .line 1990
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            imul
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        36: .line 1988
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
        37: .line 1991
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
        38: .line 1992
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            iconst_1
            isub
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            imul
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightAlignment:I
            iadd
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        39: .line 1993
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            imul
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        40: .line 1991
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
        41: .line 1994
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mAspectRatioRange:Landroid/util/Range;
        42: .line 1995
            new android.util.Rational
            dup
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokespecial android.util.Rational.<init>:(II)V
        43: .line 1996
            new android.util.Rational
            dup
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokespecial android.util.Rational.<init>:(II)V
        44: .line 1994
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mAspectRatioRange:Landroid/util/Range;
        45: .line 1998
            aload 0 /* this */
        46: .line 1999
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mSmallerDimensionUpperLimit:I
        47: .line 2000
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mWidthRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHeightRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            invokestatic java.lang.Math.min:(II)I
        48: .line 1998
            invokestatic java.lang.Math.min:(II)I
            putfield android.media.MediaCodecInfo$VideoCapabilities.mSmallerDimensionUpperLimit:I
        49: .line 2003
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
        50: .line 2004
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            i2l
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            i2l
            lmul
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
        51: .line 2005
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            i2l
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            i2l
            lmul
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
        52: .line 2003
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
        53: .line 2006
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
        54: .line 2007
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
        55: .line 2008
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            i2l
        56: .line 2007
            ldiv
            l2i
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        57: .line 2009
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlocksPerSecondRange:Landroid/util/Range;
            invokevirtual android.util.Range.getUpper:()Ljava/lang/Comparable;
            checkcast java.lang.Long
            invokevirtual java.lang.Long.longValue:()J
            l2d
        58: .line 2010
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockCountRange:Landroid/util/Range;
            invokevirtual android.util.Range.getLower:()Ljava/lang/Comparable;
            checkcast java.lang.Integer
            invokevirtual java.lang.Integer.intValue:()I
            i2d
        59: .line 2009
            ddiv
            d2i
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        60: .line 2006
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
        61: .line 2011
            return
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   62     0  this  Landroid/media/MediaCodecInfo$VideoCapabilities;

  private void applyMacroBlockLimits(int, int, int, long, int, int, int, int);
    descriptor: (IIIJIIII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=10, args_size=9
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int maxHorizontalBlocks
        start local 2 // int maxVerticalBlocks
        start local 3 // int maxBlocks
        start local 4 // long maxBlocksPerSecond
        start local 6 // int blockWidth
        start local 7 // int blockHeight
        start local 8 // int widthAlignment
        start local 9 // int heightAlignment
         0: .line 2018
            aload 0 /* this */
         1: .line 2019
            iconst_1
            iconst_1
         2: .line 2020
            iload 1 /* maxHorizontalBlocks */
            iload 2 /* maxVerticalBlocks */
         3: .line 2021
            iload 3 /* maxBlocks */
            lload 4 /* maxBlocksPerSecond */
         4: .line 2022
            iload 6 /* blockWidth */
            iload 7 /* blockHeight */
            iload 8 /* widthAlignment */
            iload 9 /* heightAlignment */
         5: .line 2018
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyMacroBlockLimits:(IIIIIJIIII)V
         6: .line 2023
            return
        end local 9 // int heightAlignment
        end local 8 // int widthAlignment
        end local 7 // int blockHeight
        end local 6 // int blockWidth
        end local 4 // long maxBlocksPerSecond
        end local 3 // int maxBlocks
        end local 2 // int maxVerticalBlocks
        end local 1 // int maxHorizontalBlocks
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0    7     0                 this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0    7     1  maxHorizontalBlocks  I
            0    7     2    maxVerticalBlocks  I
            0    7     3            maxBlocks  I
            0    7     4   maxBlocksPerSecond  J
            0    7     6           blockWidth  I
            0    7     7          blockHeight  I
            0    7     8       widthAlignment  I
            0    7     9      heightAlignment  I
    MethodParameters:
                     Name  Flags
      maxHorizontalBlocks  
      maxVerticalBlocks    
      maxBlocks            
      maxBlocksPerSecond   
      blockWidth           
      blockHeight          
      widthAlignment       
      heightAlignment      

  private void applyMacroBlockLimits(int, int, int, int, int, long, int, int, int, int);
    descriptor: (IIIIIJIIII)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=10, locals=12, args_size=11
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
        start local 1 // int minHorizontalBlocks
        start local 2 // int minVerticalBlocks
        start local 3 // int maxHorizontalBlocks
        start local 4 // int maxVerticalBlocks
        start local 5 // int maxBlocks
        start local 6 // long maxBlocksPerSecond
        start local 8 // int blockWidth
        start local 9 // int blockHeight
        start local 10 // int widthAlignment
        start local 11 // int heightAlignment
         0: .line 2031
            aload 0 /* this */
            iload 10 /* widthAlignment */
            iload 11 /* heightAlignment */
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyAlignment:(II)V
         1: .line 2032
            aload 0 /* this */
         2: .line 2033
            iload 8 /* blockWidth */
            iload 9 /* blockHeight */
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 5 /* maxBlocks */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
         3: .line 2034
            lconst_1
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            lload 6 /* maxBlocksPerSecond */
            invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
            invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
         4: .line 2036
            new android.util.Rational
            dup
            iconst_1
            iload 4 /* maxVerticalBlocks */
            invokespecial android.util.Rational.<init>:(II)V
         5: .line 2037
            new android.util.Rational
            dup
            iload 3 /* maxHorizontalBlocks */
            iconst_1
            invokespecial android.util.Rational.<init>:(II)V
         6: .line 2035
            invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
         7: .line 2032
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyBlockLimits:(IILandroid/util/Range;Landroid/util/Range;Landroid/util/Range;)V
         8: .line 2038
            aload 0 /* this */
         9: .line 2039
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
        10: .line 2040
            iload 1 /* minHorizontalBlocks */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            iload 8 /* blockWidth */
            idiv
            invokestatic android.media.Utils.divUp:(II)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        11: .line 2041
            iload 3 /* maxHorizontalBlocks */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockWidth:I
            iload 8 /* blockWidth */
            idiv
            idiv
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        12: .line 2039
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
        13: .line 2038
            putfield android.media.MediaCodecInfo$VideoCapabilities.mHorizontalBlockRange:Landroid/util/Range;
        14: .line 2042
            aload 0 /* this */
        15: .line 2043
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
        16: .line 2044
            iload 2 /* minVerticalBlocks */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            iload 9 /* blockHeight */
            idiv
            invokestatic android.media.Utils.divUp:(II)I
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        17: .line 2045
            iload 4 /* maxVerticalBlocks */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mBlockHeight:I
            iload 9 /* blockHeight */
            idiv
            idiv
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
        18: .line 2043
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
        19: .line 2042
            putfield android.media.MediaCodecInfo$VideoCapabilities.mVerticalBlockRange:Landroid/util/Range;
        20: .line 2046
            return
        end local 11 // int heightAlignment
        end local 10 // int widthAlignment
        end local 9 // int blockHeight
        end local 8 // int blockWidth
        end local 6 // long maxBlocksPerSecond
        end local 5 // int maxBlocks
        end local 4 // int maxVerticalBlocks
        end local 3 // int maxHorizontalBlocks
        end local 2 // int minVerticalBlocks
        end local 1 // int minHorizontalBlocks
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot                 Name  Signature
            0   21     0                 this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            0   21     1  minHorizontalBlocks  I
            0   21     2    minVerticalBlocks  I
            0   21     3  maxHorizontalBlocks  I
            0   21     4    maxVerticalBlocks  I
            0   21     5            maxBlocks  I
            0   21     6   maxBlocksPerSecond  J
            0   21     8           blockWidth  I
            0   21     9          blockHeight  I
            0   21    10       widthAlignment  I
            0   21    11      heightAlignment  I
    MethodParameters:
                     Name  Flags
      minHorizontalBlocks  
      minVerticalBlocks    
      maxHorizontalBlocks  
      maxVerticalBlocks    
      maxBlocks            
      maxBlocksPerSecond   
      blockWidth           
      blockHeight          
      widthAlignment       
      heightAlignment      

  private void applyLevelLimits();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=12, locals=27, args_size=1
        start local 0 // android.media.MediaCodecInfo$VideoCapabilities this
         0: .line 2049
            lconst_0
            lstore 1 /* maxBlocksPerSecond */
        start local 1 // long maxBlocksPerSecond
         1: .line 2050
            iconst_0
            istore 3 /* maxBlocks */
        start local 3 // int maxBlocks
         2: .line 2051
            iconst_0
            istore 4 /* maxBps */
        start local 4 // int maxBps
         3: .line 2052
            iconst_0
            istore 5 /* maxDPBBlocks */
        start local 5 // int maxDPBBlocks
         4: .line 2054
            iconst_4
            istore 6 /* errors */
        start local 6 // int errors
         5: .line 2055
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
            getfield android.media.MediaCodecInfo$CodecCapabilities.profileLevels:[Landroid/media/MediaCodecInfo$CodecProfileLevel;
            astore 7 /* profileLevels */
        start local 7 // android.media.MediaCodecInfo$CodecProfileLevel[] profileLevels
         6: .line 2056
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
            invokevirtual android.media.MediaCodecInfo$CodecCapabilities.getMimeType:()Ljava/lang/String;
            astore 8 /* mime */
        start local 8 // java.lang.String mime
         7: .line 2058
            aload 8 /* mime */
            ldc "video/avc"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 71
         8: .line 2059
            bipush 99
            istore 3 /* maxBlocks */
         9: .line 2060
            ldc 1485
            lstore 1 /* maxBlocksPerSecond */
        10: .line 2061
            ldc 64000
            istore 4 /* maxBps */
        11: .line 2062
            sipush 396
            istore 5 /* maxDPBBlocks */
        12: .line 2063
            aload 7 /* profileLevels */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 62
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
        13: aload 12
            iload 10
            aaload
            astore 9 /* profileLevel */
        start local 9 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
        14: .line 2064
            iconst_0
            istore 13 /* MBPS */
        start local 13 // int MBPS
        15: iconst_0
            istore 14 /* FS */
        start local 14 // int FS
        16: iconst_0
            istore 15 /* BR */
        start local 15 // int BR
        17: iconst_0
            istore 16 /* DPB */
        start local 16 // int DPB
        18: .line 2065
            iconst_1
            istore 17 /* supported */
        start local 17 // boolean supported
        19: .line 2066
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            lookupswitch { // 17
                    1: 20
                    2: 21
                    4: 22
                    8: 23
                   16: 24
                   32: 25
                   64: 26
                  128: 27
                  256: 28
                  512: 29
                 1024: 30
                 2048: 31
                 4096: 32
                 8192: 33
                16384: 34
                32768: 35
                65536: 36
              default: 37
          }
        20: .line 2068
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String android.media.MediaCodecInfo$CodecProfileLevel int int android.media.MediaCodecInfo$CodecProfileLevel[] int int int int int
      StackMap stack:
            sipush 1485
            istore 13 /* MBPS */
            bipush 99
            istore 14 /* FS */
            bipush 64
            istore 15 /* BR */
            sipush 396
            istore 16 /* DPB */
            goto 41
        21: .line 2070
      StackMap locals:
      StackMap stack:
            sipush 1485
            istore 13 /* MBPS */
            bipush 99
            istore 14 /* FS */
            sipush 128
            istore 15 /* BR */
            sipush 396
            istore 16 /* DPB */
            goto 41
        22: .line 2072
      StackMap locals:
      StackMap stack:
            sipush 3000
            istore 13 /* MBPS */
            sipush 396
            istore 14 /* FS */
            sipush 192
            istore 15 /* BR */
            sipush 900
            istore 16 /* DPB */
            goto 41
        23: .line 2074
      StackMap locals:
      StackMap stack:
            sipush 6000
            istore 13 /* MBPS */
            sipush 396
            istore 14 /* FS */
            sipush 384
            istore 15 /* BR */
            sipush 2376
            istore 16 /* DPB */
            goto 41
        24: .line 2076
      StackMap locals:
      StackMap stack:
            sipush 11880
            istore 13 /* MBPS */
            sipush 396
            istore 14 /* FS */
            sipush 768
            istore 15 /* BR */
            sipush 2376
            istore 16 /* DPB */
            goto 41
        25: .line 2078
      StackMap locals:
      StackMap stack:
            sipush 11880
            istore 13 /* MBPS */
            sipush 396
            istore 14 /* FS */
            sipush 2000
            istore 15 /* BR */
            sipush 2376
            istore 16 /* DPB */
            goto 41
        26: .line 2080
      StackMap locals:
      StackMap stack:
            sipush 19800
            istore 13 /* MBPS */
            sipush 792
            istore 14 /* FS */
            sipush 4000
            istore 15 /* BR */
            sipush 4752
            istore 16 /* DPB */
            goto 41
        27: .line 2082
      StackMap locals:
      StackMap stack:
            sipush 20250
            istore 13 /* MBPS */
            sipush 1620
            istore 14 /* FS */
            sipush 4000
            istore 15 /* BR */
            sipush 8100
            istore 16 /* DPB */
            goto 41
        28: .line 2084
      StackMap locals:
      StackMap stack:
            ldc 40500
            istore 13 /* MBPS */
            sipush 1620
            istore 14 /* FS */
            sipush 10000
            istore 15 /* BR */
            sipush 8100
            istore 16 /* DPB */
            goto 41
        29: .line 2086
      StackMap locals:
      StackMap stack:
            ldc 108000
            istore 13 /* MBPS */
            sipush 3600
            istore 14 /* FS */
            sipush 14000
            istore 15 /* BR */
            sipush 18000
            istore 16 /* DPB */
            goto 41
        30: .line 2088
      StackMap locals:
      StackMap stack:
            ldc 216000
            istore 13 /* MBPS */
            sipush 5120
            istore 14 /* FS */
            sipush 20000
            istore 15 /* BR */
            sipush 20480
            istore 16 /* DPB */
            goto 41
        31: .line 2090
      StackMap locals:
      StackMap stack:
            ldc 245760
            istore 13 /* MBPS */
            sipush 8192
            istore 14 /* FS */
            sipush 20000
            istore 15 /* BR */
            ldc 32768
            istore 16 /* DPB */
            goto 41
        32: .line 2092
      StackMap locals:
      StackMap stack:
            ldc 245760
            istore 13 /* MBPS */
            sipush 8192
            istore 14 /* FS */
            ldc 50000
            istore 15 /* BR */
            ldc 32768
            istore 16 /* DPB */
            goto 41
        33: .line 2094
      StackMap locals:
      StackMap stack:
            ldc 522240
            istore 13 /* MBPS */
            sipush 8704
            istore 14 /* FS */
            ldc 50000
            istore 15 /* BR */
            ldc 34816
            istore 16 /* DPB */
            goto 41
        34: .line 2096
      StackMap locals:
      StackMap stack:
            ldc 589824
            istore 13 /* MBPS */
            sipush 22080
            istore 14 /* FS */
            ldc 135000
            istore 15 /* BR */
            ldc 110400
            istore 16 /* DPB */
            goto 41
        35: .line 2098
      StackMap locals:
      StackMap stack:
            ldc 983040
            istore 13 /* MBPS */
            ldc 36864
            istore 14 /* FS */
            ldc 240000
            istore 15 /* BR */
            ldc 184320
            istore 16 /* DPB */
            goto 41
        36: .line 2100
      StackMap locals:
      StackMap stack:
            ldc 2073600
            istore 13 /* MBPS */
            ldc 36864
            istore 14 /* FS */
            ldc 240000
            istore 15 /* BR */
            ldc 184320
            istore 16 /* DPB */
            goto 41
        37: .line 2102
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized level "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        38: .line 2103
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        39: .line 2102
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        40: .line 2104
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
        41: .line 2106
      StackMap locals:
      StackMap stack:
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            lookupswitch { // 9
                    1: 49
                    2: 49
                    4: 44
                    8: 42
                   16: 43
                   32: 44
                   64: 44
                65536: 49
               524288: 42
              default: 50
          }
        42: .line 2109
      StackMap locals:
      StackMap stack:
            iload 15 /* BR */
            sipush 1250
            imul
            istore 15 /* BR */
            goto 55
        43: .line 2111
      StackMap locals:
      StackMap stack:
            iload 15 /* BR */
            sipush 3000
            imul
            istore 15 /* BR */
            goto 55
        44: .line 2115
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unsupported profile "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        45: .line 2116
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        46: .line 2115
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        47: .line 2117
            iload 6 /* errors */
            iconst_2
            ior
            istore 6 /* errors */
        48: .line 2118
            iconst_0
            istore 17 /* supported */
        49: .line 2123
      StackMap locals:
      StackMap stack:
            iload 15 /* BR */
            sipush 1000
            imul
            istore 15 /* BR */
            goto 55
        50: .line 2125
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized profile "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        51: .line 2126
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        52: .line 2125
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        53: .line 2127
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
        54: .line 2128
            iload 15 /* BR */
            sipush 1000
            imul
            istore 15 /* BR */
        55: .line 2130
      StackMap locals:
      StackMap stack:
            iload 17 /* supported */
            ifeq 57
        56: .line 2131
            iload 6 /* errors */
            bipush -5
            iand
            istore 6 /* errors */
        57: .line 2133
      StackMap locals:
      StackMap stack:
            iload 13 /* MBPS */
            i2l
            lload 1 /* maxBlocksPerSecond */
            invokestatic java.lang.Math.max:(JJ)J
            lstore 1 /* maxBlocksPerSecond */
        58: .line 2134
            iload 14 /* FS */
            iload 3 /* maxBlocks */
            invokestatic java.lang.Math.max:(II)I
            istore 3 /* maxBlocks */
        59: .line 2135
            iload 15 /* BR */
            iload 4 /* maxBps */
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* maxBps */
        60: .line 2136
            iload 5 /* maxDPBBlocks */
            iload 16 /* DPB */
            invokestatic java.lang.Math.max:(II)I
            istore 5 /* maxDPBBlocks */
        end local 17 // boolean supported
        end local 16 // int DPB
        end local 15 // int BR
        end local 14 // int FS
        end local 13 // int MBPS
        end local 9 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
        61: .line 2063
            iinc 10 1
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
        62: iload 10
            iload 11
            if_icmplt 13
        63: .line 2139
            iload 3 /* maxBlocks */
            bipush 8
            imul
            i2d
            invokestatic java.lang.Math.sqrt:(D)D
            d2i
            istore 9 /* maxLengthInBlocks */
        start local 9 // int maxLengthInBlocks
        64: .line 2140
            aload 0 /* this */
        65: .line 2141
            iload 9 /* maxLengthInBlocks */
            iload 9 /* maxLengthInBlocks */
        66: .line 2142
            iload 3 /* maxBlocks */
            lload 1 /* maxBlocksPerSecond */
        67: .line 2143
            bipush 16
            bipush 16
        68: .line 2144
            iconst_1
            iconst_1
        69: .line 2140
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyMacroBlockLimits:(IIIJIIII)V
        end local 9 // int maxLengthInBlocks
        70: .line 2145
            goto 437
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String
      StackMap stack:
        71: aload 8 /* mime */
            ldc "video/mpeg2"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 135
        72: .line 2146
            bipush 11
            istore 9 /* maxWidth */
        start local 9 // int maxWidth
        73: bipush 9
            istore 10 /* maxHeight */
        start local 10 // int maxHeight
        74: bipush 15
            istore 11 /* maxRate */
        start local 11 // int maxRate
        75: .line 2147
            bipush 99
            istore 3 /* maxBlocks */
        76: .line 2148
            ldc 1485
            lstore 1 /* maxBlocksPerSecond */
        77: .line 2149
            ldc 64000
            istore 4 /* maxBps */
        78: .line 2150
            aload 7 /* profileLevels */
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 127
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int int int top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
        79: aload 15
            iload 13
            aaload
            astore 12 /* profileLevel */
        start local 12 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
        80: .line 2151
            iconst_0
            istore 16 /* MBPS */
        start local 16 // int MBPS
        81: iconst_0
            istore 17 /* FS */
        start local 17 // int FS
        82: iconst_0
            istore 18 /* BR */
        start local 18 // int BR
        83: iconst_0
            istore 19 /* FR */
        start local 19 // int FR
        84: iconst_0
            istore 20 /* W */
        start local 20 // int W
        85: iconst_0
            istore 21 /* H */
        start local 21 // int H
        86: .line 2152
            iconst_1
            istore 22 /* supported */
        start local 22 // boolean supported
        87: .line 2153
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            tableswitch { // 0 - 5
                    0: 88
                    1: 96
                    2: 108
                    3: 108
                    4: 108
                    5: 108
              default: 114
          }
        88: .line 2155
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int int int android.media.MediaCodecInfo$CodecProfileLevel int int android.media.MediaCodecInfo$CodecProfileLevel[] int int int int int int int
      StackMap stack:
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            tableswitch { // 1 - 1
                    1: 89
              default: 90
          }
        89: .line 2157
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 45
            istore 20 /* W */
            bipush 36
            istore 21 /* H */
            ldc 40500
            istore 16 /* MBPS */
            sipush 1620
            istore 17 /* FS */
            sipush 15000
            istore 18 /* BR */
            goto 118
        90: .line 2159
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized profile/level "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
        91: .line 2160
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
        92: .line 2161
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
        93: .line 2159
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
        94: .line 2162
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
        95: .line 2164
            goto 118
        96: .line 2166
      StackMap locals:
      StackMap stack:
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            tableswitch { // 0 - 4
                    0: 97
                    1: 98
                    2: 99
                    3: 100
                    4: 101
              default: 102
          }
        97: .line 2168
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 22
            istore 20 /* W */
            bipush 18
            istore 21 /* H */
            sipush 11880
            istore 16 /* MBPS */
            sipush 396
            istore 17 /* FS */
            sipush 4000
            istore 18 /* BR */
            goto 118
        98: .line 2170
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 45
            istore 20 /* W */
            bipush 36
            istore 21 /* H */
            ldc 40500
            istore 16 /* MBPS */
            sipush 1620
            istore 17 /* FS */
            sipush 15000
            istore 18 /* BR */
            goto 118
        99: .line 2172
      StackMap locals:
      StackMap stack:
            bipush 60
            istore 19 /* FR */
            bipush 90
            istore 20 /* W */
            bipush 68
            istore 21 /* H */
            ldc 183600
            istore 16 /* MBPS */
            sipush 6120
            istore 17 /* FS */
            ldc 60000
            istore 18 /* BR */
            goto 118
       100: .line 2174
      StackMap locals:
      StackMap stack:
            bipush 60
            istore 19 /* FR */
            bipush 120
            istore 20 /* W */
            bipush 68
            istore 21 /* H */
            ldc 244800
            istore 16 /* MBPS */
            sipush 8160
            istore 17 /* FS */
            ldc 80000
            istore 18 /* BR */
            goto 118
       101: .line 2176
      StackMap locals:
      StackMap stack:
            bipush 60
            istore 19 /* FR */
            bipush 120
            istore 20 /* W */
            bipush 68
            istore 21 /* H */
            ldc 489600
            istore 16 /* MBPS */
            sipush 8160
            istore 17 /* FS */
            ldc 80000
            istore 18 /* BR */
            goto 118
       102: .line 2178
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized profile/level "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       103: .line 2179
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       104: .line 2180
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       105: .line 2178
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       106: .line 2181
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       107: .line 2183
            goto 118
       108: .line 2188
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unsupported profile "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       109: .line 2189
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       110: .line 2188
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       111: .line 2190
            iload 6 /* errors */
            iconst_2
            ior
            istore 6 /* errors */
       112: .line 2191
            iconst_0
            istore 22 /* supported */
       113: .line 2192
            goto 118
       114: .line 2194
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized profile "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       115: .line 2195
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       116: .line 2194
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       117: .line 2196
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       118: .line 2198
      StackMap locals:
      StackMap stack:
            iload 22 /* supported */
            ifeq 120
       119: .line 2199
            iload 6 /* errors */
            bipush -5
            iand
            istore 6 /* errors */
       120: .line 2201
      StackMap locals:
      StackMap stack:
            iload 16 /* MBPS */
            i2l
            lload 1 /* maxBlocksPerSecond */
            invokestatic java.lang.Math.max:(JJ)J
            lstore 1 /* maxBlocksPerSecond */
       121: .line 2202
            iload 17 /* FS */
            iload 3 /* maxBlocks */
            invokestatic java.lang.Math.max:(II)I
            istore 3 /* maxBlocks */
       122: .line 2203
            iload 18 /* BR */
            sipush 1000
            imul
            iload 4 /* maxBps */
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* maxBps */
       123: .line 2204
            iload 20 /* W */
            iload 9 /* maxWidth */
            invokestatic java.lang.Math.max:(II)I
            istore 9 /* maxWidth */
       124: .line 2205
            iload 21 /* H */
            iload 10 /* maxHeight */
            invokestatic java.lang.Math.max:(II)I
            istore 10 /* maxHeight */
       125: .line 2206
            iload 19 /* FR */
            iload 11 /* maxRate */
            invokestatic java.lang.Math.max:(II)I
            istore 11 /* maxRate */
        end local 22 // boolean supported
        end local 21 // int H
        end local 20 // int W
        end local 19 // int FR
        end local 18 // int BR
        end local 17 // int FS
        end local 16 // int MBPS
        end local 12 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
       126: .line 2150
            iinc 13 1
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int int int top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
       127: iload 13
            iload 14
            if_icmplt 79
       128: .line 2208
            aload 0 /* this */
            iload 9 /* maxWidth */
            iload 10 /* maxHeight */
       129: .line 2209
            iload 3 /* maxBlocks */
            lload 1 /* maxBlocksPerSecond */
       130: .line 2210
            bipush 16
            bipush 16
       131: .line 2211
            iconst_1
            iconst_1
       132: .line 2208
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyMacroBlockLimits:(IIIJIIII)V
       133: .line 2212
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
            bipush 12
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 11 /* maxRate */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
        end local 11 // int maxRate
        end local 10 // int maxHeight
        end local 9 // int maxWidth
       134: .line 2213
            goto 437
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String
      StackMap stack:
       135: aload 8 /* mime */
            ldc "video/mp4v-es"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 216
       136: .line 2214
            bipush 11
            istore 9 /* maxWidth */
        start local 9 // int maxWidth
       137: bipush 9
            istore 10 /* maxHeight */
        start local 10 // int maxHeight
       138: bipush 15
            istore 11 /* maxRate */
        start local 11 // int maxRate
       139: .line 2215
            bipush 99
            istore 3 /* maxBlocks */
       140: .line 2216
            ldc 1485
            lstore 1 /* maxBlocksPerSecond */
       141: .line 2217
            ldc 64000
            istore 4 /* maxBps */
       142: .line 2218
            aload 7 /* profileLevels */
            dup
            astore 15
            arraylength
            istore 14
            iconst_0
            istore 13
            goto 208
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int int int top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
       143: aload 15
            iload 13
            aaload
            astore 12 /* profileLevel */
        start local 12 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
       144: .line 2219
            iconst_0
            istore 16 /* MBPS */
        start local 16 // int MBPS
       145: iconst_0
            istore 17 /* FS */
        start local 17 // int FS
       146: iconst_0
            istore 18 /* BR */
        start local 18 // int BR
       147: iconst_0
            istore 19 /* FR */
        start local 19 // int FR
       148: iconst_0
            istore 20 /* W */
        start local 20 // int W
       149: iconst_0
            istore 21 /* H */
        start local 21 // int H
       150: .line 2220
            iconst_0
            istore 22 /* strict */
        start local 22 // boolean strict
       151: .line 2221
            iconst_1
            istore 23 /* supported */
        start local 23 // boolean supported
       152: .line 2222
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            lookupswitch { // 16
                    1: 153
                    2: 183
                    4: 183
                    8: 183
                   16: 183
                   32: 183
                   64: 183
                  128: 183
                  256: 183
                  512: 183
                 1024: 183
                 2048: 183
                 4096: 183
                 8192: 183
                16384: 183
                32768: 170
              default: 189
          }
       153: .line 2224
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int int int android.media.MediaCodecInfo$CodecProfileLevel int int android.media.MediaCodecInfo$CodecProfileLevel[] int int int int int int int int
      StackMap stack:
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            lookupswitch { // 8
                    1: 154
                    2: 157
                    4: 156
                    8: 159
                   16: 160
                   64: 161
                  128: 162
                  256: 163
              default: 164
          }
       154: .line 2226
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 22 /* strict */
       155: .line 2227
            bipush 15
            istore 19 /* FR */
            bipush 11
            istore 20 /* W */
            bipush 9
            istore 21 /* H */
            sipush 1485
            istore 16 /* MBPS */
            bipush 99
            istore 17 /* FS */
            bipush 64
            istore 18 /* BR */
            goto 193
       156: .line 2229
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 11
            istore 20 /* W */
            bipush 9
            istore 21 /* H */
            sipush 1485
            istore 16 /* MBPS */
            bipush 99
            istore 17 /* FS */
            bipush 64
            istore 18 /* BR */
            goto 193
       157: .line 2231
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 22 /* strict */
       158: .line 2232
            bipush 15
            istore 19 /* FR */
            bipush 11
            istore 20 /* W */
            bipush 9
            istore 21 /* H */
            sipush 1485
            istore 16 /* MBPS */
            bipush 99
            istore 17 /* FS */
            sipush 128
            istore 18 /* BR */
            goto 193
       159: .line 2234
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 22
            istore 20 /* W */
            bipush 18
            istore 21 /* H */
            sipush 5940
            istore 16 /* MBPS */
            sipush 396
            istore 17 /* FS */
            sipush 128
            istore 18 /* BR */
            goto 193
       160: .line 2236
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 22
            istore 20 /* W */
            bipush 18
            istore 21 /* H */
            sipush 11880
            istore 16 /* MBPS */
            sipush 396
            istore 17 /* FS */
            sipush 384
            istore 18 /* BR */
            goto 193
       161: .line 2238
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 40
            istore 20 /* W */
            bipush 30
            istore 21 /* H */
            ldc 36000
            istore 16 /* MBPS */
            sipush 1200
            istore 17 /* FS */
            sipush 4000
            istore 18 /* BR */
            goto 193
       162: .line 2240
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 45
            istore 20 /* W */
            bipush 36
            istore 21 /* H */
            ldc 40500
            istore 16 /* MBPS */
            sipush 1620
            istore 17 /* FS */
            sipush 8000
            istore 18 /* BR */
            goto 193
       163: .line 2242
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 80
            istore 20 /* W */
            bipush 45
            istore 21 /* H */
            ldc 108000
            istore 16 /* MBPS */
            sipush 3600
            istore 17 /* FS */
            sipush 12000
            istore 18 /* BR */
            goto 193
       164: .line 2244
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized profile/level "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       165: .line 2245
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       166: .line 2246
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       167: .line 2244
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       168: .line 2247
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       169: .line 2249
            goto 193
       170: .line 2251
      StackMap locals:
      StackMap stack:
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            lookupswitch { // 7
                    1: 171
                    4: 171
                    8: 172
                   16: 173
                   24: 174
                   32: 175
                  128: 176
              default: 177
          }
       171: .line 2254
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 11
            istore 20 /* W */
            bipush 9
            istore 21 /* H */
            sipush 2970
            istore 16 /* MBPS */
            bipush 99
            istore 17 /* FS */
            sipush 128
            istore 18 /* BR */
            goto 193
       172: .line 2256
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 22
            istore 20 /* W */
            bipush 18
            istore 21 /* H */
            sipush 5940
            istore 16 /* MBPS */
            sipush 396
            istore 17 /* FS */
            sipush 384
            istore 18 /* BR */
            goto 193
       173: .line 2258
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 22
            istore 20 /* W */
            bipush 18
            istore 21 /* H */
            sipush 11880
            istore 16 /* MBPS */
            sipush 396
            istore 17 /* FS */
            sipush 768
            istore 18 /* BR */
            goto 193
       174: .line 2260
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 22
            istore 20 /* W */
            bipush 18
            istore 21 /* H */
            sipush 11880
            istore 16 /* MBPS */
            sipush 396
            istore 17 /* FS */
            sipush 1500
            istore 18 /* BR */
            goto 193
       175: .line 2262
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 44
            istore 20 /* W */
            bipush 36
            istore 21 /* H */
            sipush 23760
            istore 16 /* MBPS */
            sipush 792
            istore 17 /* FS */
            sipush 3000
            istore 18 /* BR */
            goto 193
       176: .line 2264
      StackMap locals:
      StackMap stack:
            bipush 30
            istore 19 /* FR */
            bipush 45
            istore 20 /* W */
            bipush 36
            istore 21 /* H */
            ldc 48600
            istore 16 /* MBPS */
            sipush 1620
            istore 17 /* FS */
            sipush 8000
            istore 18 /* BR */
            goto 193
       177: .line 2266
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized profile/level "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       178: .line 2267
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
       179: .line 2268
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       180: .line 2266
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       181: .line 2269
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       182: .line 2271
            goto 193
       183: .line 2291
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unsupported profile "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       184: .line 2292
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       185: .line 2291
            invokestatic android.util.Log.i:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       186: .line 2293
            iload 6 /* errors */
            iconst_2
            ior
            istore 6 /* errors */
       187: .line 2294
            iconst_0
            istore 23 /* supported */
       188: .line 2295
            goto 193
       189: .line 2297
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized profile "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       190: .line 2298
            aload 12 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       191: .line 2297
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       192: .line 2299
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       193: .line 2301
      StackMap locals:
      StackMap stack:
            iload 23 /* supported */
            ifeq 195
       194: .line 2302
            iload 6 /* errors */
            bipush -5
            iand
            istore 6 /* errors */
       195: .line 2304
      StackMap locals:
      StackMap stack:
            iload 16 /* MBPS */
            i2l
            lload 1 /* maxBlocksPerSecond */
            invokestatic java.lang.Math.max:(JJ)J
            lstore 1 /* maxBlocksPerSecond */
       196: .line 2305
            iload 17 /* FS */
            iload 3 /* maxBlocks */
            invokestatic java.lang.Math.max:(II)I
            istore 3 /* maxBlocks */
       197: .line 2306
            iload 18 /* BR */
            sipush 1000
            imul
            iload 4 /* maxBps */
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* maxBps */
       198: .line 2307
            iload 22 /* strict */
            ifeq 203
       199: .line 2308
            iload 20 /* W */
            iload 9 /* maxWidth */
            invokestatic java.lang.Math.max:(II)I
            istore 9 /* maxWidth */
       200: .line 2309
            iload 21 /* H */
            iload 10 /* maxHeight */
            invokestatic java.lang.Math.max:(II)I
            istore 10 /* maxHeight */
       201: .line 2310
            iload 19 /* FR */
            iload 11 /* maxRate */
            invokestatic java.lang.Math.max:(II)I
            istore 11 /* maxRate */
       202: .line 2311
            goto 207
       203: .line 2313
      StackMap locals:
      StackMap stack:
            iload 17 /* FS */
            iconst_2
            imul
            i2d
            invokestatic java.lang.Math.sqrt:(D)D
            d2i
            istore 24 /* maxDim */
        start local 24 // int maxDim
       204: .line 2314
            iload 24 /* maxDim */
            iload 9 /* maxWidth */
            invokestatic java.lang.Math.max:(II)I
            istore 9 /* maxWidth */
       205: .line 2315
            iload 24 /* maxDim */
            iload 10 /* maxHeight */
            invokestatic java.lang.Math.max:(II)I
            istore 10 /* maxHeight */
       206: .line 2316
            iload 19 /* FR */
            bipush 60
            invokestatic java.lang.Math.max:(II)I
            iload 11 /* maxRate */
            invokestatic java.lang.Math.max:(II)I
            istore 11 /* maxRate */
        end local 24 // int maxDim
        end local 23 // boolean supported
        end local 22 // boolean strict
        end local 21 // int H
        end local 20 // int W
        end local 19 // int FR
        end local 18 // int BR
        end local 17 // int FS
        end local 16 // int MBPS
        end local 12 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
       207: .line 2218
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int int int top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
            iinc 13 1
      StackMap locals:
      StackMap stack:
       208: iload 13
            iload 14
            if_icmplt 143
       209: .line 2319
            aload 0 /* this */
            iload 9 /* maxWidth */
            iload 10 /* maxHeight */
       210: .line 2320
            iload 3 /* maxBlocks */
            lload 1 /* maxBlocksPerSecond */
       211: .line 2321
            bipush 16
            bipush 16
       212: .line 2322
            iconst_1
            iconst_1
       213: .line 2319
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyMacroBlockLimits:(IIIJIIII)V
       214: .line 2323
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
            bipush 12
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 11 /* maxRate */
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            invokevirtual android.util.Range.intersect:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
            putfield android.media.MediaCodecInfo$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
        end local 11 // int maxRate
        end local 10 // int maxHeight
        end local 9 // int maxWidth
       215: .line 2324
            goto 437
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String
      StackMap stack:
       216: aload 8 /* mime */
            ldc "video/3gpp"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 299
       217: .line 2325
            bipush 11
            istore 9 /* maxWidth */
        start local 9 // int maxWidth
       218: bipush 9
            istore 10 /* maxHeight */
        start local 10 // int maxHeight
       219: bipush 15
            istore 11 /* maxRate */
        start local 11 // int maxRate
       220: .line 2326
            iload 9 /* maxWidth */
            istore 12 /* minWidth */
        start local 12 // int minWidth
       221: iload 10 /* maxHeight */
            istore 13 /* minHeight */
        start local 13 // int minHeight
       222: .line 2327
            bipush 16
            istore 14 /* minAlignment */
        start local 14 // int minAlignment
       223: .line 2328
            bipush 99
            istore 3 /* maxBlocks */
       224: .line 2329
            ldc 1485
            lstore 1 /* maxBlocksPerSecond */
       225: .line 2330
            ldc 64000
            istore 4 /* maxBps */
       226: .line 2331
            aload 7 /* profileLevels */
            dup
            astore 18
            arraylength
            istore 17
            iconst_0
            istore 16
            goto 285
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int int int int int int top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
       227: aload 18
            iload 16
            aaload
            astore 15 /* profileLevel */
        start local 15 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
       228: .line 2332
            iconst_0
            istore 19 /* MBPS */
        start local 19 // int MBPS
       229: iconst_0
            istore 20 /* BR */
        start local 20 // int BR
       230: iconst_0
            istore 21 /* FR */
        start local 21 // int FR
       231: iconst_0
            istore 22 /* W */
        start local 22 // int W
       232: iconst_0
            istore 23 /* H */
        start local 23 // int H
       233: iload 12 /* minWidth */
            istore 24 /* minW */
        start local 24 // int minW
       234: iload 13 /* minHeight */
            istore 25 /* minH */
        start local 25 // int minH
       235: .line 2333
            iconst_0
            istore 26 /* strict */
        start local 26 // boolean strict
       236: .line 2334
            aload 15 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            lookupswitch { // 8
                    1: 237
                    2: 239
                    4: 241
                    8: 243
                   16: 245
                   32: 255
                   64: 257
                  128: 259
              default: 261
          }
       237: .line 2336
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int int int int int int android.media.MediaCodecInfo$CodecProfileLevel int int android.media.MediaCodecInfo$CodecProfileLevel[] int int int int int int int int
      StackMap stack:
            iconst_1
            istore 26 /* strict */
       238: .line 2337
            bipush 15
            istore 21 /* FR */
            bipush 11
            istore 22 /* W */
            bipush 9
            istore 23 /* H */
            iconst_1
            istore 20 /* BR */
            iload 22 /* W */
            iload 23 /* H */
            imul
            iload 21 /* FR */
            imul
            istore 19 /* MBPS */
            goto 265
       239: .line 2339
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 26 /* strict */
       240: .line 2340
            bipush 30
            istore 21 /* FR */
            bipush 22
            istore 22 /* W */
            bipush 18
            istore 23 /* H */
            iconst_2
            istore 20 /* BR */
            iload 22 /* W */
            iload 23 /* H */
            imul
            bipush 15
            imul
            istore 19 /* MBPS */
            goto 265
       241: .line 2342
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 26 /* strict */
       242: .line 2343
            bipush 30
            istore 21 /* FR */
            bipush 22
            istore 22 /* W */
            bipush 18
            istore 23 /* H */
            bipush 6
            istore 20 /* BR */
            iload 22 /* W */
            iload 23 /* H */
            imul
            iload 21 /* FR */
            imul
            istore 19 /* MBPS */
            goto 265
       243: .line 2345
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 26 /* strict */
       244: .line 2346
            bipush 30
            istore 21 /* FR */
            bipush 22
            istore 22 /* W */
            bipush 18
            istore 23 /* H */
            bipush 32
            istore 20 /* BR */
            iload 22 /* W */
            iload 23 /* H */
            imul
            iload 21 /* FR */
            imul
            istore 19 /* MBPS */
            goto 265
       245: .line 2349
      StackMap locals:
      StackMap stack:
            aload 15 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            iconst_1
            if_icmpeq 250
       246: .line 2350
            aload 15 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
       247: .line 2351
            iconst_4
       248: .line 2350
            if_icmpeq 250
       249: .line 2349
            iconst_0
            goto 251
      StackMap locals:
      StackMap stack:
       250: iconst_1
      StackMap locals:
      StackMap stack: int
       251: istore 26 /* strict */
       252: .line 2352
            iload 26 /* strict */
            ifne 254
       253: .line 2353
            iconst_1
            istore 24 /* minW */
            iconst_1
            istore 25 /* minH */
            iconst_4
            istore 14 /* minAlignment */
       254: .line 2355
      StackMap locals:
      StackMap stack:
            bipush 15
            istore 21 /* FR */
            bipush 11
            istore 22 /* W */
            bipush 9
            istore 23 /* H */
            iconst_2
            istore 20 /* BR */
            iload 22 /* W */
            iload 23 /* H */
            imul
            iload 21 /* FR */
            imul
            istore 19 /* MBPS */
            goto 265
       255: .line 2358
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 24 /* minW */
            iconst_1
            istore 25 /* minH */
            iconst_4
            istore 14 /* minAlignment */
       256: .line 2359
            bipush 60
            istore 21 /* FR */
            bipush 22
            istore 22 /* W */
            bipush 18
            istore 23 /* H */
            bipush 64
            istore 20 /* BR */
            iload 22 /* W */
            iload 23 /* H */
            imul
            bipush 50
            imul
            istore 19 /* MBPS */
            goto 265
       257: .line 2362
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 24 /* minW */
            iconst_1
            istore 25 /* minH */
            iconst_4
            istore 14 /* minAlignment */
       258: .line 2363
            bipush 60
            istore 21 /* FR */
            bipush 45
            istore 22 /* W */
            bipush 18
            istore 23 /* H */
            sipush 128
            istore 20 /* BR */
            iload 22 /* W */
            iload 23 /* H */
            imul
            bipush 50
            imul
            istore 19 /* MBPS */
            goto 265
       259: .line 2366
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 24 /* minW */
            iconst_1
            istore 25 /* minH */
            iconst_4
            istore 14 /* minAlignment */
       260: .line 2367
            bipush 60
            istore 21 /* FR */
            bipush 45
            istore 22 /* W */
            bipush 36
            istore 23 /* H */
            sipush 256
            istore 20 /* BR */
            iload 22 /* W */
            iload 23 /* H */
            imul
            bipush 50
            imul
            istore 19 /* MBPS */
            goto 265
       261: .line 2369
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized profile/level "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 15 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
       262: .line 2370
            ldc "/"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 15 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       263: .line 2369
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       264: .line 2371
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       265: .line 2373
      StackMap locals:
      StackMap stack:
            aload 15 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            lookupswitch { // 9
                    1: 266
                    2: 266
                    4: 266
                    8: 266
                   16: 266
                   32: 266
                   64: 266
                  128: 266
                  256: 266
              default: 267
          }
       266: .line 2383
      StackMap locals:
      StackMap stack:
            goto 271
       267: .line 2385
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized profile "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       268: .line 2386
            aload 15 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       269: .line 2385
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       270: .line 2387
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       271: .line 2389
      StackMap locals:
      StackMap stack:
            iload 26 /* strict */
            ifeq 274
       272: .line 2394
            bipush 11
            istore 24 /* minW */
            bipush 9
            istore 25 /* minH */
       273: .line 2395
            goto 275
       274: .line 2399
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield android.media.MediaCodecInfo$VideoCapabilities.mAllowMbOverride:Z
       275: .line 2401
      StackMap locals:
      StackMap stack:
            iload 6 /* errors */
            bipush -5
            iand
            istore 6 /* errors */
       276: .line 2402
            iload 19 /* MBPS */
            i2l
            lload 1 /* maxBlocksPerSecond */
            invokestatic java.lang.Math.max:(JJ)J
            lstore 1 /* maxBlocksPerSecond */
       277: .line 2403
            iload 22 /* W */
            iload 23 /* H */
            imul
            iload 3 /* maxBlocks */
            invokestatic java.lang.Math.max:(II)I
            istore 3 /* maxBlocks */
       278: .line 2404
            iload 20 /* BR */
            ldc 64000
            imul
            iload 4 /* maxBps */
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* maxBps */
       279: .line 2405
            iload 22 /* W */
            iload 9 /* maxWidth */
            invokestatic java.lang.Math.max:(II)I
            istore 9 /* maxWidth */
       280: .line 2406
            iload 23 /* H */
            iload 10 /* maxHeight */
            invokestatic java.lang.Math.max:(II)I
            istore 10 /* maxHeight */
       281: .line 2407
            iload 21 /* FR */
            iload 11 /* maxRate */
            invokestatic java.lang.Math.max:(II)I
            istore 11 /* maxRate */
       282: .line 2408
            iload 24 /* minW */
            iload 12 /* minWidth */
            invokestatic java.lang.Math.min:(II)I
            istore 12 /* minWidth */
       283: .line 2409
            iload 25 /* minH */
            iload 13 /* minHeight */
            invokestatic java.lang.Math.min:(II)I
            istore 13 /* minHeight */
        end local 26 // boolean strict
        end local 25 // int minH
        end local 24 // int minW
        end local 23 // int H
        end local 22 // int W
        end local 21 // int FR
        end local 20 // int BR
        end local 19 // int MBPS
        end local 15 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
       284: .line 2331
            iinc 16 1
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int int int int int int top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
       285: iload 16
            iload 17
            if_icmplt 227
       286: .line 2413
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mAllowMbOverride:Z
            ifne 290
       287: .line 2414
            aload 0 /* this */
       288: .line 2415
            new android.util.Rational
            dup
            bipush 11
            bipush 9
            invokespecial android.util.Rational.<init>:(II)V
            new android.util.Rational
            dup
            bipush 11
            bipush 9
            invokespecial android.util.Rational.<init>:(II)V
            invokestatic android.util.Range.create:(Ljava/lang/Comparable;Ljava/lang/Comparable;)Landroid/util/Range;
       289: .line 2414
            putfield android.media.MediaCodecInfo$VideoCapabilities.mBlockAspectRatioRange:Landroid/util/Range;
       290: .line 2417
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int int int int int int
      StackMap stack:
            aload 0 /* this */
       291: .line 2418
            iload 12 /* minWidth */
            iload 13 /* minHeight */
       292: .line 2419
            iload 9 /* maxWidth */
            iload 10 /* maxHeight */
       293: .line 2420
            iload 3 /* maxBlocks */
            lload 1 /* maxBlocksPerSecond */
       294: .line 2421
            bipush 16
            bipush 16
       295: .line 2422
            iload 14 /* minAlignment */
            iload 14 /* minAlignment */
       296: .line 2417
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyMacroBlockLimits:(IIIIIJIIII)V
       297: .line 2423
            aload 0 /* this */
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 11 /* maxRate */
            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$VideoCapabilities.mFrameRateRange:Landroid/util/Range;
        end local 14 // int minAlignment
        end local 13 // int minHeight
        end local 12 // int minWidth
        end local 11 // int maxRate
        end local 10 // int maxHeight
        end local 9 // int maxWidth
       298: .line 2424
            goto 437
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String
      StackMap stack:
       299: aload 8 /* mime */
            ldc "video/x-vnd.on2.vp8"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 325
       300: .line 2425
            ldc 2147483647
            istore 3 /* maxBlocks */
       301: .line 2426
            ldc 2147483647
            lstore 1 /* maxBlocksPerSecond */
       302: .line 2429
            ldc 100000000
            istore 4 /* maxBps */
       303: .line 2433
            aload 7 /* profileLevels */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 319
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
       304: aload 12
            iload 10
            aaload
            astore 9 /* profileLevel */
        start local 9 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
       305: .line 2434
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            tableswitch { // 1 - 8
                    1: 306
                    2: 306
                    3: 307
                    4: 306
                    5: 307
                    6: 307
                    7: 307
                    8: 306
              default: 307
          }
       306: .line 2439
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String android.media.MediaCodecInfo$CodecProfileLevel int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
            goto 311
       307: .line 2441
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized level "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       308: .line 2442
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       309: .line 2441
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       310: .line 2443
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       311: .line 2445
      StackMap locals:
      StackMap stack:
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            tableswitch { // 1 - 1
                    1: 312
              default: 313
          }
       312: .line 2447
      StackMap locals:
      StackMap stack:
            goto 317
       313: .line 2449
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized profile "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       314: .line 2450
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       315: .line 2449
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       316: .line 2451
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       317: .line 2453
      StackMap locals:
      StackMap stack:
            iload 6 /* errors */
            bipush -5
            iand
            istore 6 /* errors */
        end local 9 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
       318: .line 2433
            iinc 10 1
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
       319: iload 10
            iload 11
            if_icmplt 304
       320: .line 2457
            aload 0 /* this */
            sipush 32767
            sipush 32767
       321: .line 2458
            iload 3 /* maxBlocks */
            lload 1 /* maxBlocksPerSecond */
            bipush 16
            bipush 16
       322: .line 2459
            iconst_1
            iconst_1
       323: .line 2457
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyMacroBlockLimits:(IIIJIIII)V
       324: .line 2460
            goto 437
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String
      StackMap stack:
       325: aload 8 /* mime */
            ldc "video/x-vnd.on2.vp9"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 378
       326: .line 2461
            ldc 829440
            lstore 1 /* maxBlocksPerSecond */
       327: .line 2462
            ldc 36864
            istore 3 /* maxBlocks */
       328: .line 2463
            ldc 200000
            istore 4 /* maxBps */
       329: .line 2464
            sipush 512
            istore 9 /* maxDim */
        start local 9 // int maxDim
       330: .line 2466
            aload 7 /* profileLevels */
            dup
            astore 13
            arraylength
            istore 12
            iconst_0
            istore 11
            goto 367
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
       331: aload 13
            iload 11
            aaload
            astore 10 /* profileLevel */
        start local 10 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
       332: .line 2467
            lconst_0
            lstore 14 /* SR */
        start local 14 // long SR
       333: .line 2468
            iconst_0
            istore 16 /* FS */
        start local 16 // int FS
       334: .line 2469
            iconst_0
            istore 17 /* BR */
        start local 17 // int BR
       335: .line 2470
            iconst_0
            istore 18 /* D */
        start local 18 // int D
       336: .line 2471
            aload 10 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            lookupswitch { // 14
                    1: 337
                    2: 338
                    4: 339
                    8: 340
                   16: 341
                   32: 342
                   64: 343
                  128: 344
                  256: 345
                  512: 346
                 1024: 347
                 2048: 348
                 4096: 349
                 8192: 350
              default: 351
          }
       337: .line 2473
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int android.media.MediaCodecInfo$CodecProfileLevel int int android.media.MediaCodecInfo$CodecProfileLevel[] long int int int
      StackMap stack:
            ldc 829440
            lstore 14 /* SR */
            ldc 36864
            istore 16 /* FS */
            sipush 200
            istore 17 /* BR */
            sipush 512
            istore 18 /* D */
            goto 355
       338: .line 2475
      StackMap locals:
      StackMap stack:
            ldc 2764800
            lstore 14 /* SR */
            ldc 73728
            istore 16 /* FS */
            sipush 800
            istore 17 /* BR */
            sipush 768
            istore 18 /* D */
            goto 355
       339: .line 2477
      StackMap locals:
      StackMap stack:
            ldc 4608000
            lstore 14 /* SR */
            ldc 122880
            istore 16 /* FS */
            sipush 1800
            istore 17 /* BR */
            sipush 960
            istore 18 /* D */
            goto 355
       340: .line 2479
      StackMap locals:
      StackMap stack:
            ldc 9216000
            lstore 14 /* SR */
            ldc 245760
            istore 16 /* FS */
            sipush 3600
            istore 17 /* BR */
            sipush 1344
            istore 18 /* D */
            goto 355
       341: .line 2481
      StackMap locals:
      StackMap stack:
            ldc 20736000
            lstore 14 /* SR */
            ldc 552960
            istore 16 /* FS */
            sipush 7200
            istore 17 /* BR */
            sipush 2048
            istore 18 /* D */
            goto 355
       342: .line 2483
      StackMap locals:
      StackMap stack:
            ldc 36864000
            lstore 14 /* SR */
            ldc 983040
            istore 16 /* FS */
            sipush 12000
            istore 17 /* BR */
            sipush 2752
            istore 18 /* D */
            goto 355
       343: .line 2485
      StackMap locals:
      StackMap stack:
            ldc 83558400
            lstore 14 /* SR */
            ldc 2228224
            istore 16 /* FS */
            sipush 18000
            istore 17 /* BR */
            sipush 4160
            istore 18 /* D */
            goto 355
       344: .line 2487
      StackMap locals:
      StackMap stack:
            ldc 160432128
            lstore 14 /* SR */
            ldc 2228224
            istore 16 /* FS */
            sipush 30000
            istore 17 /* BR */
            sipush 4160
            istore 18 /* D */
            goto 355
       345: .line 2489
      StackMap locals:
      StackMap stack:
            ldc 311951360
            lstore 14 /* SR */
            ldc 8912896
            istore 16 /* FS */
            ldc 60000
            istore 17 /* BR */
            sipush 8384
            istore 18 /* D */
            goto 355
       346: .line 2491
      StackMap locals:
      StackMap stack:
            ldc 588251136
            lstore 14 /* SR */
            ldc 8912896
            istore 16 /* FS */
            ldc 120000
            istore 17 /* BR */
            sipush 8384
            istore 18 /* D */
            goto 355
       347: .line 2493
      StackMap locals:
      StackMap stack:
            ldc 1176502272
            lstore 14 /* SR */
            ldc 8912896
            istore 16 /* FS */
            ldc 180000
            istore 17 /* BR */
            sipush 8384
            istore 18 /* D */
            goto 355
       348: .line 2495
      StackMap locals:
      StackMap stack:
            ldc 1176502272
            lstore 14 /* SR */
            ldc 35651584
            istore 16 /* FS */
            ldc 180000
            istore 17 /* BR */
            sipush 16832
            istore 18 /* D */
            goto 355
       349: .line 2497
      StackMap locals:
      StackMap stack:
            ldc 2353004544
            lstore 14 /* SR */
            ldc 35651584
            istore 16 /* FS */
            ldc 240000
            istore 17 /* BR */
            sipush 16832
            istore 18 /* D */
            goto 355
       350: .line 2499
      StackMap locals:
      StackMap stack:
            ldc 4706009088
            lstore 14 /* SR */
            ldc 35651584
            istore 16 /* FS */
            ldc 480000
            istore 17 /* BR */
            sipush 16832
            istore 18 /* D */
            goto 355
       351: .line 2501
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized level "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       352: .line 2502
            aload 10 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       353: .line 2501
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       354: .line 2503
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       355: .line 2505
      StackMap locals:
      StackMap stack:
            aload 10 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            lookupswitch { // 6
                    1: 356
                    2: 356
                    4: 356
                    8: 356
                 4096: 356
                 8192: 356
              default: 357
          }
       356: .line 2512
      StackMap locals:
      StackMap stack:
            goto 361
       357: .line 2514
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized profile "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       358: .line 2515
            aload 10 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       359: .line 2514
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       360: .line 2516
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       361: .line 2518
      StackMap locals:
      StackMap stack:
            iload 6 /* errors */
            bipush -5
            iand
            istore 6 /* errors */
       362: .line 2519
            lload 14 /* SR */
            lload 1 /* maxBlocksPerSecond */
            invokestatic java.lang.Math.max:(JJ)J
            lstore 1 /* maxBlocksPerSecond */
       363: .line 2520
            iload 16 /* FS */
            iload 3 /* maxBlocks */
            invokestatic java.lang.Math.max:(II)I
            istore 3 /* maxBlocks */
       364: .line 2521
            iload 17 /* BR */
            sipush 1000
            imul
            iload 4 /* maxBps */
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* maxBps */
       365: .line 2522
            iload 18 /* D */
            iload 9 /* maxDim */
            invokestatic java.lang.Math.max:(II)I
            istore 9 /* maxDim */
        end local 18 // int D
        end local 17 // int BR
        end local 16 // int FS
        end local 14 // long SR
        end local 10 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
       366: .line 2466
            iinc 11 1
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String int top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
       367: iload 11
            iload 12
            if_icmplt 331
       368: .line 2526
            iload 9 /* maxDim */
            bipush 8
            invokestatic android.media.Utils.divUp:(II)I
            istore 10 /* maxLengthInBlocks */
        start local 10 // int maxLengthInBlocks
       369: .line 2527
            iload 3 /* maxBlocks */
            bipush 64
            invokestatic android.media.Utils.divUp:(II)I
            istore 3 /* maxBlocks */
       370: .line 2528
            lload 1 /* maxBlocksPerSecond */
            ldc 64
            invokestatic android.media.Utils.divUp:(JJ)J
            lstore 1 /* maxBlocksPerSecond */
       371: .line 2530
            aload 0 /* this */
       372: .line 2531
            iload 10 /* maxLengthInBlocks */
            iload 10 /* maxLengthInBlocks */
       373: .line 2532
            iload 3 /* maxBlocks */
            lload 1 /* maxBlocksPerSecond */
       374: .line 2533
            bipush 8
            bipush 8
       375: .line 2534
            iconst_1
            iconst_1
       376: .line 2530
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyMacroBlockLimits:(IIIJIIII)V
        end local 10 // int maxLengthInBlocks
        end local 9 // int maxDim
       377: .line 2535
            goto 437
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String
      StackMap stack:
       378: aload 8 /* mime */
            ldc "video/hevc"
            invokevirtual java.lang.String.equalsIgnoreCase:(Ljava/lang/String;)Z
            ifeq 434
       379: .line 2537
            sipush 576
            istore 3 /* maxBlocks */
       380: .line 2538
            iload 3 /* maxBlocks */
            bipush 15
            imul
            i2l
            lstore 1 /* maxBlocksPerSecond */
       381: .line 2539
            ldc 128000
            istore 4 /* maxBps */
       382: .line 2540
            aload 7 /* profileLevels */
            dup
            astore 12
            arraylength
            istore 11
            iconst_0
            istore 10
            goto 425
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
       383: aload 12
            iload 10
            aaload
            astore 9 /* profileLevel */
        start local 9 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
       384: .line 2541
            dconst_0
            dstore 13 /* FR */
        start local 13 // double FR
       385: .line 2542
            iconst_0
            istore 15 /* FS */
        start local 15 // int FS
       386: .line 2543
            iconst_0
            istore 16 /* BR */
        start local 16 // int BR
       387: .line 2544
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            lookupswitch { // 26
                    1: 388
                    2: 388
                    4: 389
                    8: 389
                   16: 390
                   32: 390
                   64: 391
                  128: 391
                  256: 392
                  512: 392
                 1024: 393
                 2048: 394
                 4096: 395
                 8192: 396
                16384: 397
                32768: 398
                65536: 399
               131072: 400
               262144: 401
               524288: 402
              1048576: 403
              2097152: 404
              4194304: 405
              8388608: 406
             16777216: 407
             33554432: 408
              default: 409
          }
       388: .line 2551
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String android.media.MediaCodecInfo$CodecProfileLevel int int android.media.MediaCodecInfo$CodecProfileLevel[] double int int
      StackMap stack:
            ldc 15.0
            dstore 13 /* FR */
            ldc 36864
            istore 15 /* FS */
            sipush 128
            istore 16 /* BR */
            goto 413
       389: .line 2554
      StackMap locals:
      StackMap stack:
            ldc 30.0
            dstore 13 /* FR */
            ldc 122880
            istore 15 /* FS */
            sipush 1500
            istore 16 /* BR */
            goto 413
       390: .line 2557
      StackMap locals:
      StackMap stack:
            ldc 30.0
            dstore 13 /* FR */
            ldc 245760
            istore 15 /* FS */
            sipush 3000
            istore 16 /* BR */
            goto 413
       391: .line 2560
      StackMap locals:
      StackMap stack:
            ldc 30.0
            dstore 13 /* FR */
            ldc 552960
            istore 15 /* FS */
            sipush 6000
            istore 16 /* BR */
            goto 413
       392: .line 2563
      StackMap locals:
      StackMap stack:
            ldc 33.75
            dstore 13 /* FR */
            ldc 983040
            istore 15 /* FS */
            sipush 10000
            istore 16 /* BR */
            goto 413
       393: .line 2565
      StackMap locals:
      StackMap stack:
            ldc 30.0
            dstore 13 /* FR */
            ldc 2228224
            istore 15 /* FS */
            sipush 12000
            istore 16 /* BR */
            goto 413
       394: .line 2567
      StackMap locals:
      StackMap stack:
            ldc 30.0
            dstore 13 /* FR */
            ldc 2228224
            istore 15 /* FS */
            sipush 30000
            istore 16 /* BR */
            goto 413
       395: .line 2569
      StackMap locals:
      StackMap stack:
            ldc 60.0
            dstore 13 /* FR */
            ldc 2228224
            istore 15 /* FS */
            sipush 20000
            istore 16 /* BR */
            goto 413
       396: .line 2571
      StackMap locals:
      StackMap stack:
            ldc 60.0
            dstore 13 /* FR */
            ldc 2228224
            istore 15 /* FS */
            ldc 50000
            istore 16 /* BR */
            goto 413
       397: .line 2573
      StackMap locals:
      StackMap stack:
            ldc 30.0
            dstore 13 /* FR */
            ldc 8912896
            istore 15 /* FS */
            sipush 25000
            istore 16 /* BR */
            goto 413
       398: .line 2575
      StackMap locals:
      StackMap stack:
            ldc 30.0
            dstore 13 /* FR */
            ldc 8912896
            istore 15 /* FS */
            ldc 100000
            istore 16 /* BR */
            goto 413
       399: .line 2577
      StackMap locals:
      StackMap stack:
            ldc 60.0
            dstore 13 /* FR */
            ldc 8912896
            istore 15 /* FS */
            ldc 40000
            istore 16 /* BR */
            goto 413
       400: .line 2579
      StackMap locals:
      StackMap stack:
            ldc 60.0
            dstore 13 /* FR */
            ldc 8912896
            istore 15 /* FS */
            ldc 160000
            istore 16 /* BR */
            goto 413
       401: .line 2581
      StackMap locals:
      StackMap stack:
            ldc 120.0
            dstore 13 /* FR */
            ldc 8912896
            istore 15 /* FS */
            ldc 60000
            istore 16 /* BR */
            goto 413
       402: .line 2583
      StackMap locals:
      StackMap stack:
            ldc 120.0
            dstore 13 /* FR */
            ldc 8912896
            istore 15 /* FS */
            ldc 240000
            istore 16 /* BR */
            goto 413
       403: .line 2585
      StackMap locals:
      StackMap stack:
            ldc 30.0
            dstore 13 /* FR */
            ldc 35651584
            istore 15 /* FS */
            ldc 60000
            istore 16 /* BR */
            goto 413
       404: .line 2587
      StackMap locals:
      StackMap stack:
            ldc 30.0
            dstore 13 /* FR */
            ldc 35651584
            istore 15 /* FS */
            ldc 240000
            istore 16 /* BR */
            goto 413
       405: .line 2589
      StackMap locals:
      StackMap stack:
            ldc 60.0
            dstore 13 /* FR */
            ldc 35651584
            istore 15 /* FS */
            ldc 120000
            istore 16 /* BR */
            goto 413
       406: .line 2591
      StackMap locals:
      StackMap stack:
            ldc 60.0
            dstore 13 /* FR */
            ldc 35651584
            istore 15 /* FS */
            ldc 480000
            istore 16 /* BR */
            goto 413
       407: .line 2593
      StackMap locals:
      StackMap stack:
            ldc 120.0
            dstore 13 /* FR */
            ldc 35651584
            istore 15 /* FS */
            ldc 240000
            istore 16 /* BR */
            goto 413
       408: .line 2595
      StackMap locals:
      StackMap stack:
            ldc 120.0
            dstore 13 /* FR */
            ldc 35651584
            istore 15 /* FS */
            ldc 800000
            istore 16 /* BR */
            goto 413
       409: .line 2597
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized level "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       410: .line 2598
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.level:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       411: .line 2597
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       412: .line 2599
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       413: .line 2601
      StackMap locals:
      StackMap stack:
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            lookupswitch { // 3
                    1: 414
                    2: 414
                 4096: 414
              default: 415
          }
       414: .line 2605
      StackMap locals:
      StackMap stack:
            goto 419
       415: .line 2607
      StackMap locals:
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unrecognized profile "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
       416: .line 2608
            aload 9 /* profileLevel */
            getfield android.media.MediaCodecInfo$CodecProfileLevel.profile:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " for "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 8 /* mime */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
       417: .line 2607
            invokestatic android.util.Log.w:(Ljava/lang/String;Ljava/lang/String;)I
            pop
       418: .line 2609
            iload 6 /* errors */
            iconst_1
            ior
            istore 6 /* errors */
       419: .line 2619
      StackMap locals:
      StackMap stack:
            iload 15 /* FS */
            bipush 6
            ishr
            istore 15 /* FS */
       420: .line 2620
            iload 6 /* errors */
            bipush -5
            iand
            istore 6 /* errors */
       421: .line 2621
            dload 13 /* FR */
            iload 15 /* FS */
            i2d
            dmul
            d2i
            i2l
            lload 1 /* maxBlocksPerSecond */
            invokestatic java.lang.Math.max:(JJ)J
            lstore 1 /* maxBlocksPerSecond */
       422: .line 2622
            iload 15 /* FS */
            iload 3 /* maxBlocks */
            invokestatic java.lang.Math.max:(II)I
            istore 3 /* maxBlocks */
       423: .line 2623
            iload 16 /* BR */
            sipush 1000
            imul
            iload 4 /* maxBps */
            invokestatic java.lang.Math.max:(II)I
            istore 4 /* maxBps */
        end local 16 // int BR
        end local 15 // int FS
        end local 13 // double FR
        end local 9 // android.media.MediaCodecInfo$CodecProfileLevel profileLevel
       424: .line 2540
            iinc 10 1
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String top int int android.media.MediaCodecInfo$CodecProfileLevel[]
      StackMap stack:
       425: iload 10
            iload 11
            if_icmplt 383
       426: .line 2626
            iload 3 /* maxBlocks */
            bipush 8
            imul
            i2d
            invokestatic java.lang.Math.sqrt:(D)D
            d2i
            istore 9 /* maxLengthInBlocks */
        start local 9 // int maxLengthInBlocks
       427: .line 2627
            aload 0 /* this */
       428: .line 2628
            iload 9 /* maxLengthInBlocks */
            iload 9 /* maxLengthInBlocks */
       429: .line 2629
            iload 3 /* maxBlocks */
            lload 1 /* maxBlocksPerSecond */
       430: .line 2630
            bipush 8
            bipush 8
       431: .line 2631
            iconst_1
            iconst_1
       432: .line 2627
            invokevirtual android.media.MediaCodecInfo$VideoCapabilities.applyMacroBlockLimits:(IIIJIIII)V
        end local 9 // int maxLengthInBlocks
       433: .line 2632
            goto 437
       434: .line 2633
      StackMap locals: android.media.MediaCodecInfo$VideoCapabilities long int int int int android.media.MediaCodecInfo$CodecProfileLevel[] java.lang.String
      StackMap stack:
            ldc "VideoCapabilities"
            new java.lang.StringBuilder
            dup
            ldc "Unsupported mime "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 8 /* mime */
            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
       435: .line 2636
            ldc 64000
            istore 4 /* maxBps */
       436: .line 2637
            iload 6 /* errors */
            iconst_2
            ior
            istore 6 /* errors */
       437: .line 2639
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            invokestatic java.lang.Integer.valueOf:(I)Ljava/lang/Integer;
            iload 4 /* maxBps */
            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$VideoCapabilities.mBitrateRange:Landroid/util/Range;
       438: .line 2640
            aload 0 /* this */
            getfield android.media.MediaCodecInfo$VideoCapabilities.mParent:Landroid/media/MediaCodecInfo$CodecCapabilities;
            dup
            getfield android.media.MediaCodecInfo$CodecCapabilities.mError:I
            iload 6 /* errors */
            ior
            putfield android.media.MediaCodecInfo$CodecCapabilities.mError:I
       439: .line 2641
            return
        end local 8 // java.lang.String mime
        end local 7 // android.media.MediaCodecInfo$CodecProfileLevel[] profileLevels
        end local 6 // int errors
        end local 5 // int maxDPBBlocks
        end local 4 // int maxBps
        end local 3 // int maxBlocks
        end local 1 // long maxBlocksPerSecond
        end local 0 // android.media.MediaCodecInfo$VideoCapabilities this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0  440     0                this  Landroid/media/MediaCodecInfo$VideoCapabilities;
            1  440     1  maxBlocksPerSecond  J
            2  440     3           maxBlocks  I
            3  440     4              maxBps  I
            4  440     5        maxDPBBlocks  I
            5  440     6              errors  I
            6  440     7       profileLevels  [Landroid/media/MediaCodecInfo$CodecProfileLevel;
            7  440     8                mime  Ljava/lang/String;
           14   61     9        profileLevel  Landroid/media/MediaCodecInfo$CodecProfileLevel;
           15   61    13                MBPS  I
           16   61    14                  FS  I
           17   61    15                  BR  I
           18   61    16                 DPB  I
           19   61    17           supported  Z
           64   70     9   maxLengthInBlocks  I
           73  134     9            maxWidth  I
           74  134    10           maxHeight  I
           75  134    11             maxRate  I
           80  126    12        profileLevel  Landroid/media/MediaCodecInfo$CodecProfileLevel;
           81  126    16                MBPS  I
           82  126    17                  FS  I
           83  126    18                  BR  I
           84  126    19                  FR  I
           85  126    20                   W  I
           86  126    21                   H  I
           87  126    22           supported  Z
          137  215     9            maxWidth  I
          138  215    10           maxHeight  I
          139  215    11             maxRate  I
          144  207    12        profileLevel  Landroid/media/MediaCodecInfo$CodecProfileLevel;
          145  207    16                MBPS  I
          146  207    17                  FS  I
          147  207    18                  BR  I
          148  207    19                  FR  I
          149  207    20                   W  I
          150  207    21                   H  I
          151  207    22              strict  Z
          152  207    23           supported  Z
          204  207    24              maxDim  I
          218  298     9            maxWidth  I
          219  298    10           maxHeight  I
          220  298    11             maxRate  I
          221  298    12            minWidth  I
          222  298    13           minHeight  I
          223  298    14        minAlignment  I
          228  284    15        profileLevel  Landroid/media/MediaCodecInfo$CodecProfileLevel;
          229  284    19                MBPS  I
          230  284    20                  BR  I
          231  284    21                  FR  I
          232  284    22                   W  I
          233  284    23                   H  I
          234  284    24                minW  I
          235  284    25                minH  I
          236  284    26              strict  Z
          305  318     9        profileLevel  Landroid/media/MediaCodecInfo$CodecProfileLevel;
          330  377     9              maxDim  I
          332  366    10        profileLevel  Landroid/media/MediaCodecInfo$CodecProfileLevel;
          333  366    14                  SR  J
          334  366    16                  FS  I
          335  366    17                  BR  I
          336  366    18                   D  I
          369  377    10   maxLengthInBlocks  I
          384  424     9        profileLevel  Landroid/media/MediaCodecInfo$CodecProfileLevel;
          385  424    13                  FR  D
          386  424    15                  FS  I
          387  424    16                  BR  I
          427  433     9   maxLengthInBlocks  I
}
SourceFile: "MediaCodecInfo.java"
NestHost: android.media.MediaCodecInfo
InnerClasses:
  public final CodecCapabilities = android.media.MediaCodecInfo$CodecCapabilities of android.media.MediaCodecInfo
  public final CodecProfileLevel = android.media.MediaCodecInfo$CodecProfileLevel of android.media.MediaCodecInfo
  public final VideoCapabilities = android.media.MediaCodecInfo$VideoCapabilities of android.media.MediaCodecInfo