public final class android.media.MediaCodec$CryptoInfo
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: android.media.MediaCodec$CryptoInfo
  super_class: java.lang.Object
{
  public int numSubSamples;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

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

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

  public byte[] key;
    descriptor: [B
    flags: (0x0001) ACC_PUBLIC

  public byte[] iv;
    descriptor: [B
    flags: (0x0001) ACC_PUBLIC

  public int mode;
    descriptor: I
    flags: (0x0001) ACC_PUBLIC

  private final android.media.MediaCodec$CryptoInfo$Pattern zeroPattern;
    descriptor: Landroid/media/MediaCodec$CryptoInfo$Pattern;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private android.media.MediaCodec$CryptoInfo$Pattern pattern;
    descriptor: Landroid/media/MediaCodec$CryptoInfo$Pattern;
    flags: (0x0002) ACC_PRIVATE

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // android.media.MediaCodec$CryptoInfo this
         0: .line 2433
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 2513
            aload 0 /* this */
            new android.media.MediaCodec$CryptoInfo$Pattern
            dup
            iconst_0
            iconst_0
            invokespecial android.media.MediaCodec$CryptoInfo$Pattern.<init>:(II)V
            putfield android.media.MediaCodec$CryptoInfo.zeroPattern:Landroid/media/MediaCodec$CryptoInfo$Pattern;
         2: .line 2433
            return
        end local 0 // android.media.MediaCodec$CryptoInfo this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/media/MediaCodec$CryptoInfo;

  public void set(int, int[], int[], byte[], byte[], int);
    descriptor: (I[I[I[B[BI)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=7
        start local 0 // android.media.MediaCodec$CryptoInfo this
        start local 1 // int newNumSubSamples
        start local 2 // int[] newNumBytesOfClearData
        start local 3 // int[] newNumBytesOfEncryptedData
        start local 4 // byte[] newKey
        start local 5 // byte[] newIV
        start local 6 // int newMode
         0: .line 2531
            aload 0 /* this */
            iload 1 /* newNumSubSamples */
            putfield android.media.MediaCodec$CryptoInfo.numSubSamples:I
         1: .line 2532
            aload 0 /* this */
            aload 2 /* newNumBytesOfClearData */
            putfield android.media.MediaCodec$CryptoInfo.numBytesOfClearData:[I
         2: .line 2533
            aload 0 /* this */
            aload 3 /* newNumBytesOfEncryptedData */
            putfield android.media.MediaCodec$CryptoInfo.numBytesOfEncryptedData:[I
         3: .line 2534
            aload 0 /* this */
            aload 4 /* newKey */
            putfield android.media.MediaCodec$CryptoInfo.key:[B
         4: .line 2535
            aload 0 /* this */
            aload 5 /* newIV */
            putfield android.media.MediaCodec$CryptoInfo.iv:[B
         5: .line 2536
            aload 0 /* this */
            iload 6 /* newMode */
            putfield android.media.MediaCodec$CryptoInfo.mode:I
         6: .line 2537
            aload 0 /* this */
            aload 0 /* this */
            getfield android.media.MediaCodec$CryptoInfo.zeroPattern:Landroid/media/MediaCodec$CryptoInfo$Pattern;
            putfield android.media.MediaCodec$CryptoInfo.pattern:Landroid/media/MediaCodec$CryptoInfo$Pattern;
         7: .line 2538
            return
        end local 6 // int newMode
        end local 5 // byte[] newIV
        end local 4 // byte[] newKey
        end local 3 // int[] newNumBytesOfEncryptedData
        end local 2 // int[] newNumBytesOfClearData
        end local 1 // int newNumSubSamples
        end local 0 // android.media.MediaCodec$CryptoInfo this
      LocalVariableTable:
        Start  End  Slot                        Name  Signature
            0    8     0                        this  Landroid/media/MediaCodec$CryptoInfo;
            0    8     1            newNumSubSamples  I
            0    8     2      newNumBytesOfClearData  [I
            0    8     3  newNumBytesOfEncryptedData  [I
            0    8     4                      newKey  [B
            0    8     5                       newIV  [B
            0    8     6                     newMode  I
    MethodParameters:
                            Name  Flags
      newNumSubSamples            
      newNumBytesOfClearData      
      newNumBytesOfEncryptedData  
      newKey                      
      newIV                       
      newMode                     

  public void setPattern(android.media.MediaCodec$CryptoInfo$Pattern);
    descriptor: (Landroid/media/MediaCodec$CryptoInfo$Pattern;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaCodec$CryptoInfo this
        start local 1 // android.media.MediaCodec$CryptoInfo$Pattern newPattern
         0: .line 2545
            aload 0 /* this */
            aload 1 /* newPattern */
            putfield android.media.MediaCodec$CryptoInfo.pattern:Landroid/media/MediaCodec$CryptoInfo$Pattern;
         1: .line 2546
            return
        end local 1 // android.media.MediaCodec$CryptoInfo$Pattern newPattern
        end local 0 // android.media.MediaCodec$CryptoInfo this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/media/MediaCodec$CryptoInfo;
            0    2     1  newPattern  Landroid/media/MediaCodec$CryptoInfo$Pattern;
    MethodParameters:
            Name  Flags
      newPattern  

  private void setPattern(int, int);
    descriptor: (II)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // android.media.MediaCodec$CryptoInfo this
        start local 1 // int blocksToEncrypt
        start local 2 // int blocksToSkip
         0: .line 2549
            aload 0 /* this */
            new android.media.MediaCodec$CryptoInfo$Pattern
            dup
            iload 1 /* blocksToEncrypt */
            iload 2 /* blocksToSkip */
            invokespecial android.media.MediaCodec$CryptoInfo$Pattern.<init>:(II)V
            putfield android.media.MediaCodec$CryptoInfo.pattern:Landroid/media/MediaCodec$CryptoInfo$Pattern;
         1: .line 2550
            return
        end local 2 // int blocksToSkip
        end local 1 // int blocksToEncrypt
        end local 0 // android.media.MediaCodec$CryptoInfo this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    2     0             this  Landroid/media/MediaCodec$CryptoInfo;
            0    2     1  blocksToEncrypt  I
            0    2     2     blocksToSkip  I
    MethodParameters:
                 Name  Flags
      blocksToEncrypt  
      blocksToSkip     

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // android.media.MediaCodec$CryptoInfo this
         0: .line 2554
            new java.lang.StringBuilder
            dup
            invokespecial java.lang.StringBuilder.<init>:()V
            astore 1 /* builder */
        start local 1 // java.lang.StringBuilder builder
         1: .line 2555
            aload 1 /* builder */
            new java.lang.StringBuilder
            dup
            aload 0 /* this */
            getfield android.media.MediaCodec$CryptoInfo.numSubSamples:I
            invokestatic java.lang.String.valueOf:(I)Ljava/lang/String;
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            ldc " subsamples, key ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 2556
            ldc "0123456789abcdef"
            astore 2 /* hexdigits */
        start local 2 // java.lang.String hexdigits
         3: .line 2557
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         4: goto 8
         5: .line 2558
      StackMap locals: java.lang.StringBuilder java.lang.String int
      StackMap stack:
            aload 1 /* builder */
            aload 2 /* hexdigits */
            aload 0 /* this */
            getfield android.media.MediaCodec$CryptoInfo.key:[B
            iload 3 /* i */
            baload
            sipush 240
            iand
            iconst_4
            ishr
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         6: .line 2559
            aload 1 /* builder */
            aload 2 /* hexdigits */
            aload 0 /* this */
            getfield android.media.MediaCodec$CryptoInfo.key:[B
            iload 3 /* i */
            baload
            bipush 15
            iand
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
         7: .line 2557
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         8: iload 3 /* i */
            aload 0 /* this */
            getfield android.media.MediaCodec$CryptoInfo.key:[B
            arraylength
            if_icmplt 5
        end local 3 // int i
         9: .line 2561
            aload 1 /* builder */
            ldc "], iv ["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        10: .line 2562
            iconst_0
            istore 3 /* i */
        start local 3 // int i
        11: goto 15
        12: .line 2563
      StackMap locals:
      StackMap stack:
            aload 1 /* builder */
            aload 2 /* hexdigits */
            aload 0 /* this */
            getfield android.media.MediaCodec$CryptoInfo.iv:[B
            iload 3 /* i */
            baload
            sipush 240
            iand
            iconst_4
            ishr
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        13: .line 2564
            aload 1 /* builder */
            aload 2 /* hexdigits */
            aload 0 /* this */
            getfield android.media.MediaCodec$CryptoInfo.iv:[B
            iload 3 /* i */
            baload
            bipush 15
            iand
            invokevirtual java.lang.String.charAt:(I)C
            invokevirtual java.lang.StringBuilder.append:(C)Ljava/lang/StringBuilder;
            pop
        14: .line 2562
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
        15: iload 3 /* i */
            aload 0 /* this */
            getfield android.media.MediaCodec$CryptoInfo.key:[B
            arraylength
            if_icmplt 12
        end local 3 // int i
        16: .line 2566
            aload 1 /* builder */
            ldc "], clear "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        17: .line 2567
            aload 1 /* builder */
            aload 0 /* this */
            getfield android.media.MediaCodec$CryptoInfo.numBytesOfClearData:[I
            invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        18: .line 2568
            aload 1 /* builder */
            ldc ", encrypted "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        19: .line 2569
            aload 1 /* builder */
            aload 0 /* this */
            getfield android.media.MediaCodec$CryptoInfo.numBytesOfEncryptedData:[I
            invokestatic java.util.Arrays.toString:([I)Ljava/lang/String;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
        20: .line 2570
            aload 1 /* builder */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 2 // java.lang.String hexdigits
        end local 1 // java.lang.StringBuilder builder
        end local 0 // android.media.MediaCodec$CryptoInfo this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   21     0       this  Landroid/media/MediaCodec$CryptoInfo;
            1   21     1    builder  Ljava/lang/StringBuilder;
            3   21     2  hexdigits  Ljava/lang/String;
            4    9     3          i  I
           11   16     3          i  I
}
SourceFile: "MediaCodec.java"
NestHost: android.media.MediaCodec
InnerClasses:
  public final CryptoInfo = android.media.MediaCodec$CryptoInfo of android.media.MediaCodec
  public final Pattern = android.media.MediaCodec$CryptoInfo$Pattern of android.media.MediaCodec$CryptoInfo