public class android.media.MediaMetadataRetriever
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: android.media.MediaMetadataRetriever
  super_class: java.lang.Object
{
  private long mNativeContext;
    descriptor: J
    flags: (0x0002) ACC_PRIVATE

  private static final int EMBEDDED_PICTURE_TYPE_ANY;
    descriptor: I
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: 65535

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=1, locals=0, args_size=0
         0: .line 45
            ldc "media_jni"
            invokestatic java.lang.System.loadLibrary:(Ljava/lang/String;)V
         1: .line 46
            invokestatic android.media.MediaMetadataRetriever.native_init:()V
         2: .line 920
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // android.media.MediaMetadataRetriever this
         0: .line 55
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 56
            aload 0 /* this */
            invokevirtual android.media.MediaMetadataRetriever.native_setup:()V
         2: .line 57
            return
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Landroid/media/MediaMetadataRetriever;

  public void setDataSource(java.lang.String);
    descriptor: (Ljava/lang/String;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=2
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // java.lang.String path
         0: .line 68
            aload 1 /* path */
            ifnonnull 2
         1: .line 69
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         2: .line 72
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 2
            aconst_null
            astore 3
         3: new java.io.FileInputStream
            dup
            aload 1 /* path */
            invokespecial java.io.FileInputStream.<init>:(Ljava/lang/String;)V
            astore 4 /* is */
        start local 4 // java.io.FileInputStream is
         4: .line 73
            aload 4 /* is */
            invokevirtual java.io.FileInputStream.getFD:()Ljava/io/FileDescriptor;
            astore 5 /* fd */
        start local 5 // java.io.FileDescriptor fd
         5: .line 74
            aload 0 /* this */
            aload 5 /* fd */
            lconst_0
            ldc 576460752303423487
            invokevirtual android.media.MediaMetadataRetriever.setDataSource:(Ljava/io/FileDescriptor;JJ)V
        end local 5 // java.io.FileDescriptor fd
         6: .line 75
            aload 4 /* is */
            ifnull 16
            aload 4 /* is */
            invokevirtual java.io.FileInputStream.close:()V
            goto 16
      StackMap locals: android.media.MediaMetadataRetriever java.lang.String java.lang.Throwable java.lang.Throwable java.io.FileInputStream
      StackMap stack: java.lang.Throwable
         7: astore 2
            aload 4 /* is */
            ifnull 8
            aload 4 /* is */
            invokevirtual java.io.FileInputStream.close:()V
        end local 4 // java.io.FileInputStream is
      StackMap locals:
      StackMap stack:
         8: aload 2
            athrow
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: astore 3
            aload 2
            ifnonnull 10
            aload 3
            astore 2
            goto 11
      StackMap locals:
      StackMap stack:
        10: aload 2
            aload 3
            if_acmpeq 11
            aload 2
            aload 3
            invokevirtual java.lang.Throwable.addSuppressed:(Ljava/lang/Throwable;)V
      StackMap locals:
      StackMap stack:
        11: aload 2
            athrow
      StackMap locals: android.media.MediaMetadataRetriever java.lang.String
      StackMap stack: java.io.FileNotFoundException
        12: pop
        13: .line 76
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        14: .line 77
      StackMap locals:
      StackMap stack: java.io.IOException
            pop
        15: .line 78
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        16: .line 80
      StackMap locals:
      StackMap stack:
            return
        end local 1 // java.lang.String path
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Landroid/media/MediaMetadataRetriever;
            0   17     1  path  Ljava/lang/String;
            4    8     4    is  Ljava/io/FileInputStream;
            5    6     5    fd  Ljava/io/FileDescriptor;
      Exception table:
        from    to  target  type
           4     6       7  any
           3     9       9  any
           2    12      12  Class java.io.FileNotFoundException
           2    12      14  Class java.io.IOException
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
      Name  Flags
      path  

  public void setDataSource(java.lang.String, java.util.Map<java.lang.String, java.lang.String>);
    descriptor: (Ljava/lang/String;Ljava/util/Map;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=8, args_size=3
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // java.lang.String uri
        start local 2 // java.util.Map headers
         0: .line 93
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         1: .line 94
            aload 2 /* headers */
            invokeinterface java.util.Map.size:()I
            anewarray java.lang.String
            astore 4 /* keys */
        start local 4 // java.lang.String[] keys
         2: .line 95
            aload 2 /* headers */
            invokeinterface java.util.Map.size:()I
            anewarray java.lang.String
            astore 5 /* values */
        start local 5 // java.lang.String[] values
         3: .line 96
            aload 2 /* headers */
            invokeinterface java.util.Map.entrySet:()Ljava/util/Set;
            invokeinterface java.util.Set.iterator:()Ljava/util/Iterator;
            astore 7
            goto 8
      StackMap locals: android.media.MediaMetadataRetriever java.lang.String java.util.Map int java.lang.String[] java.lang.String[] top java.util.Iterator
      StackMap stack:
         4: aload 7
            invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
            checkcast java.util.Map$Entry
            astore 6 /* entry */
        start local 6 // java.util.Map$Entry entry
         5: .line 97
            aload 4 /* keys */
            iload 3 /* i */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getKey:()Ljava/lang/Object;
            checkcast java.lang.String
            aastore
         6: .line 98
            aload 5 /* values */
            iload 3 /* i */
            aload 6 /* entry */
            invokeinterface java.util.Map$Entry.getValue:()Ljava/lang/Object;
            checkcast java.lang.String
            aastore
         7: .line 99
            iinc 3 /* i */ 1
        end local 6 // java.util.Map$Entry entry
         8: .line 96
      StackMap locals:
      StackMap stack:
            aload 7
            invokeinterface java.util.Iterator.hasNext:()Z
            ifne 4
         9: .line 102
            aload 0 /* this */
        10: .line 103
            aload 1 /* uri */
            invokestatic android.media.MediaHTTPService.createHttpServiceBinderIfNecessary:(Ljava/lang/String;)Landroid/os/IBinder;
        11: .line 104
            aload 1 /* uri */
        12: .line 105
            aload 4 /* keys */
        13: .line 106
            aload 5 /* values */
        14: .line 102
            invokevirtual android.media.MediaMetadataRetriever._setDataSource:(Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
        15: .line 107
            return
        end local 5 // java.lang.String[] values
        end local 4 // java.lang.String[] keys
        end local 3 // int i
        end local 2 // java.util.Map headers
        end local 1 // java.lang.String uri
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   16     0     this  Landroid/media/MediaMetadataRetriever;
            0   16     1      uri  Ljava/lang/String;
            0   16     2  headers  Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;
            1   16     3        i  I
            2   16     4     keys  [Ljava/lang/String;
            3   16     5   values  [Ljava/lang/String;
            5    8     6    entry  Ljava/util/Map$Entry<Ljava/lang/String;Ljava/lang/String;>;
    Exceptions:
      throws java.lang.IllegalArgumentException
    Signature: (Ljava/lang/String;Ljava/util/Map<Ljava/lang/String;Ljava/lang/String;>;)V
    MethodParameters:
         Name  Flags
      uri      
      headers  

  private native void _setDataSource(android.os.IBinder, java.lang.String, java.lang.String[], java.lang.String[]);
    descriptor: (Landroid/os/IBinder;Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/String;)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
                   Name  Flags
      httpServiceBinder  
      uri                
      keys               
      values             

  public native void setDataSource(java.io.FileDescriptor, long, long);
    descriptor: (Ljava/io/FileDescriptor;JJ)V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
        Name  Flags
      fd      
      offset  
      length  

  public void setDataSource(java.io.FileDescriptor);
    descriptor: (Ljava/io/FileDescriptor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=2, args_size=2
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // java.io.FileDescriptor fd
         0: .line 141
            aload 0 /* this */
            aload 1 /* fd */
            lconst_0
            ldc 576460752303423487
            invokevirtual android.media.MediaMetadataRetriever.setDataSource:(Ljava/io/FileDescriptor;JJ)V
         1: .line 142
            return
        end local 1 // java.io.FileDescriptor fd
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Landroid/media/MediaMetadataRetriever;
            0    2     1    fd  Ljava/io/FileDescriptor;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
      Name  Flags
      fd    

  public void setDataSource(android.content.Context, android.net.Uri);
    descriptor: (Landroid/content/Context;Landroid/net/Uri;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=8, args_size=3
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // android.content.Context context
        start local 2 // android.net.Uri uri
         0: .line 156
            aload 2 /* uri */
            ifnonnull 2
         1: .line 157
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         2: .line 160
      StackMap locals:
      StackMap stack:
            aload 2 /* uri */
            invokevirtual android.net.Uri.getScheme:()Ljava/lang/String;
            astore 3 /* scheme */
        start local 3 // java.lang.String scheme
         3: .line 161
            aload 3 /* scheme */
            ifnull 4
            aload 3 /* scheme */
            ldc "file"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 6
         4: .line 162
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            aload 2 /* uri */
            invokevirtual android.net.Uri.getPath:()Ljava/lang/String;
            invokevirtual android.media.MediaMetadataRetriever.setDataSource:(Ljava/lang/String;)V
         5: .line 163
            return
         6: .line 166
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* fd */
        start local 4 // android.content.res.AssetFileDescriptor fd
         7: .line 168
            aload 1 /* context */
            invokevirtual android.content.Context.getContentResolver:()Landroid/content/ContentResolver;
            astore 5 /* resolver */
        start local 5 // android.content.ContentResolver resolver
         8: .line 170
            aload 5 /* resolver */
            aload 2 /* uri */
            ldc "r"
            invokevirtual android.content.ContentResolver.openAssetFileDescriptor:(Landroid/net/Uri;Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
            astore 4 /* fd */
         9: .line 171
            goto 12
      StackMap locals: android.media.MediaMetadataRetriever android.content.Context android.net.Uri java.lang.String android.content.res.AssetFileDescriptor android.content.ContentResolver
      StackMap stack: java.io.FileNotFoundException
        10: pop
        11: .line 172
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        12: .line 174
      StackMap locals:
      StackMap stack:
            aload 4 /* fd */
            ifnonnull 14
        13: .line 175
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        14: .line 177
      StackMap locals:
      StackMap stack:
            aload 4 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.getFileDescriptor:()Ljava/io/FileDescriptor;
            astore 6 /* descriptor */
        start local 6 // java.io.FileDescriptor descriptor
        15: .line 178
            aload 6 /* descriptor */
            invokevirtual java.io.FileDescriptor.valid:()Z
            ifne 17
        16: .line 179
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
        17: .line 184
      StackMap locals: java.io.FileDescriptor
      StackMap stack:
            aload 4 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.getDeclaredLength:()J
            lconst_0
            lcmp
            ifge 20
        18: .line 185
            aload 0 /* this */
            aload 6 /* descriptor */
            invokevirtual android.media.MediaMetadataRetriever.setDataSource:(Ljava/io/FileDescriptor;)V
        19: .line 186
            goto 21
        20: .line 187
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 6 /* descriptor */
            aload 4 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.getStartOffset:()J
            aload 4 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.getDeclaredLength:()J
            invokevirtual android.media.MediaMetadataRetriever.setDataSource:(Ljava/io/FileDescriptor;JJ)V
        21: .line 193
      StackMap locals:
      StackMap stack:
            aload 4 /* fd */
            ifnull 25
        22: .line 194
            aload 4 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.close:()V
        23: .line 196
            goto 25
      StackMap locals:
      StackMap stack: java.io.IOException
        24: pop
        25: .line 189
      StackMap locals:
      StackMap stack:
            return
        end local 6 // java.io.FileDescriptor descriptor
        end local 5 // android.content.ContentResolver resolver
        26: .line 190
      StackMap locals: android.media.MediaMetadataRetriever android.content.Context android.net.Uri java.lang.String android.content.res.AssetFileDescriptor
      StackMap stack: java.lang.SecurityException
            pop
        27: .line 193
            aload 4 /* fd */
            ifnull 37
        28: .line 194
            aload 4 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.close:()V
        29: .line 196
            goto 37
      StackMap locals:
      StackMap stack: java.io.IOException
        30: pop
            goto 37
        31: .line 191
      StackMap locals:
      StackMap stack: java.lang.Throwable
            astore 7
        32: .line 193
            aload 4 /* fd */
            ifnull 36
        33: .line 194
            aload 4 /* fd */
            invokevirtual android.content.res.AssetFileDescriptor.close:()V
        34: .line 196
            goto 36
      StackMap locals: android.media.MediaMetadataRetriever android.content.Context android.net.Uri java.lang.String android.content.res.AssetFileDescriptor top top java.lang.Throwable
      StackMap stack: java.io.IOException
        35: pop
        36: .line 198
      StackMap locals:
      StackMap stack:
            aload 7
            athrow
        37: .line 199
      StackMap locals: android.media.MediaMetadataRetriever android.content.Context android.net.Uri java.lang.String android.content.res.AssetFileDescriptor
      StackMap stack:
            aload 0 /* this */
            aload 2 /* uri */
            invokevirtual android.net.Uri.toString:()Ljava/lang/String;
            invokevirtual android.media.MediaMetadataRetriever.setDataSource:(Ljava/lang/String;)V
        38: .line 200
            return
        end local 4 // android.content.res.AssetFileDescriptor fd
        end local 3 // java.lang.String scheme
        end local 2 // android.net.Uri uri
        end local 1 // android.content.Context context
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   39     0        this  Landroid/media/MediaMetadataRetriever;
            0   39     1     context  Landroid/content/Context;
            0   39     2         uri  Landroid/net/Uri;
            3   39     3      scheme  Ljava/lang/String;
            7   39     4          fd  Landroid/content/res/AssetFileDescriptor;
            8   26     5    resolver  Landroid/content/ContentResolver;
           15   26     6  descriptor  Ljava/io/FileDescriptor;
      Exception table:
        from    to  target  type
           8     9      10  Class java.io.FileNotFoundException
          21    23      24  Class java.io.IOException
           7    21      26  Class java.lang.SecurityException
          27    29      30  Class java.io.IOException
           7    21      31  any
          26    27      31  any
          32    34      35  Class java.io.IOException
    Exceptions:
      throws java.lang.IllegalArgumentException, java.lang.SecurityException
    MethodParameters:
         Name  Flags
      context  
      uri      

  public void setDataSource(android.media.MediaDataSource);
    descriptor: (Landroid/media/MediaDataSource;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // android.media.MediaDataSource dataSource
         0: .line 209
            aload 0 /* this */
            aload 1 /* dataSource */
            invokevirtual android.media.MediaMetadataRetriever._setDataSource:(Landroid/media/MediaDataSource;)V
         1: .line 210
            return
        end local 1 // android.media.MediaDataSource dataSource
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/media/MediaMetadataRetriever;
            0    2     1  dataSource  Landroid/media/MediaDataSource;
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
            Name  Flags
      dataSource  

  private native void _setDataSource(android.media.MediaDataSource);
    descriptor: (Landroid/media/MediaDataSource;)V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Exceptions:
      throws java.lang.IllegalArgumentException
    MethodParameters:
            Name  Flags
      dataSource  

  public native java.lang.String extractMetadata(int);
    descriptor: (I)Ljava/lang/String;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
         Name  Flags
      keyCode  

  public android.graphics.Bitmap getFrameAtTime(long, int);
    descriptor: (JI)Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=4, args_size=3
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // long timeUs
        start local 3 // int option
         0: .line 261
            iload 3 /* option */
            iflt 2
         1: .line 262
            iload 3 /* option */
            iconst_3
            if_icmple 3
         2: .line 263
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported option: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* option */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 266
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* timeUs */
            iload 3 /* option */
            iconst_m1
            iconst_m1
            invokevirtual android.media.MediaMetadataRetriever._getFrameAtTime:(JIII)Landroid/graphics/Bitmap;
            areturn
        end local 3 // int option
        end local 1 // long timeUs
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    4     0    this  Landroid/media/MediaMetadataRetriever;
            0    4     1  timeUs  J
            0    4     3  option  I
    MethodParameters:
        Name  Flags
      timeUs  
      option  

  public android.graphics.Bitmap getScaledFrameAtTime(long, int, int, int);
    descriptor: (JIII)Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=6, args_size=5
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // long timeUs
        start local 3 // int option
        start local 4 // int dstWidth
        start local 5 // int dstHeight
         0: .line 306
            iload 3 /* option */
            iflt 2
         1: .line 307
            iload 3 /* option */
            iconst_3
            if_icmple 3
         2: .line 308
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported option: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* option */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         3: .line 310
      StackMap locals:
      StackMap stack:
            iload 4 /* dstWidth */
            ifgt 5
         4: .line 311
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid width: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* dstWidth */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 313
      StackMap locals:
      StackMap stack:
            iload 5 /* dstHeight */
            ifgt 7
         6: .line 314
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid height: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 5 /* dstHeight */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 317
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lload 1 /* timeUs */
            iload 3 /* option */
            iload 4 /* dstWidth */
            iload 5 /* dstHeight */
            invokevirtual android.media.MediaMetadataRetriever._getFrameAtTime:(JIII)Landroid/graphics/Bitmap;
            areturn
        end local 5 // int dstHeight
        end local 4 // int dstWidth
        end local 3 // int option
        end local 1 // long timeUs
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    8     0       this  Landroid/media/MediaMetadataRetriever;
            0    8     1     timeUs  J
            0    8     3     option  I
            0    8     4   dstWidth  I
            0    8     5  dstHeight  I
    MethodParameters:
           Name  Flags
      timeUs     
      option     
      dstWidth   
      dstHeight  

  public android.graphics.Bitmap getFrameAtTime(long);
    descriptor: (J)Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=2
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // long timeUs
         0: .line 345
            aload 0 /* this */
            lload 1 /* timeUs */
            iconst_2
            invokevirtual android.media.MediaMetadataRetriever.getFrameAtTime:(JI)Landroid/graphics/Bitmap;
            areturn
        end local 1 // long timeUs
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/media/MediaMetadataRetriever;
            0    1     1  timeUs  J
    MethodParameters:
        Name  Flags
      timeUs  

  public android.graphics.Bitmap getFrameAtTime();
    descriptor: ()Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // android.media.MediaMetadataRetriever this
         0: .line 367
            aload 0 /* this */
            ldc -1
            iconst_2
            iconst_m1
            iconst_m1
            invokevirtual android.media.MediaMetadataRetriever._getFrameAtTime:(JIII)Landroid/graphics/Bitmap;
            areturn
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaMetadataRetriever;

  private native android.graphics.Bitmap _getFrameAtTime(long, int, int, int);
    descriptor: (JIII)Landroid/graphics/Bitmap;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
        Name  Flags
      timeUs  
      option  
      width   
      height  

  public android.graphics.Bitmap getFrameAtIndex(int, android.media.MediaMetadataRetriever$BitmapParams);
    descriptor: (ILandroid/media/MediaMetadataRetriever$BitmapParams;)Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // int frameIndex
        start local 2 // android.media.MediaMetadataRetriever$BitmapParams params
         0: .line 441
            aload 0 /* this */
            iload 1 /* frameIndex */
            iconst_1
            aload 2 /* params */
            invokevirtual android.media.MediaMetadataRetriever.getFramesAtIndex:(IILandroid/media/MediaMetadataRetriever$BitmapParams;)Ljava/util/List;
            astore 3 /* bitmaps */
        start local 3 // java.util.List bitmaps
         1: .line 442
            aload 3 /* bitmaps */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.graphics.Bitmap
            areturn
        end local 3 // java.util.List bitmaps
        end local 2 // android.media.MediaMetadataRetriever$BitmapParams params
        end local 1 // int frameIndex
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/media/MediaMetadataRetriever;
            0    2     1  frameIndex  I
            0    2     2      params  Landroid/media/MediaMetadataRetriever$BitmapParams;
            1    2     3     bitmaps  Ljava/util/List<Landroid/graphics/Bitmap;>;
    MethodParameters:
            Name  Flags
      frameIndex  
      params      

  public android.graphics.Bitmap getFrameAtIndex(int);
    descriptor: (I)Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // int frameIndex
         0: .line 463
            aload 0 /* this */
            iload 1 /* frameIndex */
            iconst_1
            invokevirtual android.media.MediaMetadataRetriever.getFramesAtIndex:(II)Ljava/util/List;
            astore 2 /* bitmaps */
        start local 2 // java.util.List bitmaps
         1: .line 464
            aload 2 /* bitmaps */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast android.graphics.Bitmap
            areturn
        end local 2 // java.util.List bitmaps
        end local 1 // int frameIndex
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    2     0        this  Landroid/media/MediaMetadataRetriever;
            0    2     1  frameIndex  I
            1    2     2     bitmaps  Ljava/util/List<Landroid/graphics/Bitmap;>;
    MethodParameters:
            Name  Flags
      frameIndex  

  public java.util.List<android.graphics.Bitmap> getFramesAtIndex(int, int, android.media.MediaMetadataRetriever$BitmapParams);
    descriptor: (IILandroid/media/MediaMetadataRetriever$BitmapParams;)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // int frameIndex
        start local 2 // int numFrames
        start local 3 // android.media.MediaMetadataRetriever$BitmapParams params
         0: .line 498
            aload 0 /* this */
            iload 1 /* frameIndex */
            iload 2 /* numFrames */
            aload 3 /* params */
            invokevirtual android.media.MediaMetadataRetriever.getFramesAtIndexInternal:(IILandroid/media/MediaMetadataRetriever$BitmapParams;)Ljava/util/List;
            areturn
        end local 3 // android.media.MediaMetadataRetriever$BitmapParams params
        end local 2 // int numFrames
        end local 1 // int frameIndex
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Landroid/media/MediaMetadataRetriever;
            0    1     1  frameIndex  I
            0    1     2   numFrames  I
            0    1     3      params  Landroid/media/MediaMetadataRetriever$BitmapParams;
    Signature: (IILandroid/media/MediaMetadataRetriever$BitmapParams;)Ljava/util/List<Landroid/graphics/Bitmap;>;
    MethodParameters:
            Name  Flags
      frameIndex  
      numFrames   
      params      

  public java.util.List<android.graphics.Bitmap> getFramesAtIndex(int, int);
    descriptor: (II)Ljava/util/List;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // int frameIndex
        start local 2 // int numFrames
         0: .line 523
            aload 0 /* this */
            iload 1 /* frameIndex */
            iload 2 /* numFrames */
            aconst_null
            invokevirtual android.media.MediaMetadataRetriever.getFramesAtIndexInternal:(IILandroid/media/MediaMetadataRetriever$BitmapParams;)Ljava/util/List;
            areturn
        end local 2 // int numFrames
        end local 1 // int frameIndex
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Landroid/media/MediaMetadataRetriever;
            0    1     1  frameIndex  I
            0    1     2   numFrames  I
    Signature: (II)Ljava/util/List<Landroid/graphics/Bitmap;>;
    MethodParameters:
            Name  Flags
      frameIndex  
      numFrames   

  private java.util.List<android.graphics.Bitmap> getFramesAtIndexInternal(int, int, android.media.MediaMetadataRetriever$BitmapParams);
    descriptor: (IILandroid/media/MediaMetadataRetriever$BitmapParams;)Ljava/util/List;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=5, args_size=4
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // int frameIndex
        start local 2 // int numFrames
        start local 3 // android.media.MediaMetadataRetriever$BitmapParams params
         0: .line 528
            ldc "yes"
            aload 0 /* this */
            bipush 17
            invokevirtual android.media.MediaMetadataRetriever.extractMetadata:(I)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 529
            new java.lang.IllegalStateException
            dup
            ldc "Does not contail video or image sequences"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 532
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 32
            invokevirtual android.media.MediaMetadataRetriever.extractMetadata:(I)Ljava/lang/String;
         3: .line 531
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            istore 4 /* frameCount */
        start local 4 // int frameCount
         4: .line 533
            iload 1 /* frameIndex */
            iflt 7
            iload 2 /* numFrames */
            iconst_1
            if_icmplt 7
         5: .line 534
            iload 1 /* frameIndex */
            iload 4 /* frameCount */
            if_icmpge 7
         6: .line 535
            iload 1 /* frameIndex */
            iload 4 /* frameCount */
            iload 2 /* numFrames */
            isub
            if_icmple 10
         7: .line 536
      StackMap locals: int
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid frameIndex or numFrames: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 537
            iload 1 /* frameIndex */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* numFrames */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 536
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 539
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* frameIndex */
            iload 2 /* numFrames */
            aload 3 /* params */
            invokevirtual android.media.MediaMetadataRetriever._getFrameAtIndex:(IILandroid/media/MediaMetadataRetriever$BitmapParams;)Ljava/util/List;
            areturn
        end local 4 // int frameCount
        end local 3 // android.media.MediaMetadataRetriever$BitmapParams params
        end local 2 // int numFrames
        end local 1 // int frameIndex
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   11     0        this  Landroid/media/MediaMetadataRetriever;
            0   11     1  frameIndex  I
            0   11     2   numFrames  I
            0   11     3      params  Landroid/media/MediaMetadataRetriever$BitmapParams;
            4   11     4  frameCount  I
    Signature: (IILandroid/media/MediaMetadataRetriever$BitmapParams;)Ljava/util/List<Landroid/graphics/Bitmap;>;
    MethodParameters:
            Name  Flags
      frameIndex  
      numFrames   
      params      

  private native java.util.List<android.graphics.Bitmap> _getFrameAtIndex(int, int, android.media.MediaMetadataRetriever$BitmapParams);
    descriptor: (IILandroid/media/MediaMetadataRetriever$BitmapParams;)Ljava/util/List;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    Signature: (IILandroid/media/MediaMetadataRetriever$BitmapParams;)Ljava/util/List<Landroid/graphics/Bitmap;>;
    MethodParameters:
            Name  Flags
      frameIndex  
      numFrames   
      params      

  public android.graphics.Bitmap getImageAtIndex(int, android.media.MediaMetadataRetriever$BitmapParams);
    descriptor: (ILandroid/media/MediaMetadataRetriever$BitmapParams;)Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // int imageIndex
        start local 2 // android.media.MediaMetadataRetriever$BitmapParams params
         0: .line 566
            aload 0 /* this */
            iload 1 /* imageIndex */
            aload 2 /* params */
            invokevirtual android.media.MediaMetadataRetriever.getImageAtIndexInternal:(ILandroid/media/MediaMetadataRetriever$BitmapParams;)Landroid/graphics/Bitmap;
            areturn
        end local 2 // android.media.MediaMetadataRetriever$BitmapParams params
        end local 1 // int imageIndex
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Landroid/media/MediaMetadataRetriever;
            0    1     1  imageIndex  I
            0    1     2      params  Landroid/media/MediaMetadataRetriever$BitmapParams;
    MethodParameters:
            Name  Flags
      imageIndex  
      params      

  public native android.graphics.Bitmap getThumbnailImageAtIndex(int, android.media.MediaMetadataRetriever$BitmapParams, int, int);
    descriptor: (ILandroid/media/MediaMetadataRetriever$BitmapParams;II)Landroid/graphics/Bitmap;
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE
    MethodParameters:
            Name  Flags
      imageIndex  
      params      
      targetSize  
      maxPixels   

  public android.graphics.Bitmap getImageAtIndex(int);
    descriptor: (I)Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // int imageIndex
         0: .line 604
            aload 0 /* this */
            iload 1 /* imageIndex */
            aconst_null
            invokevirtual android.media.MediaMetadataRetriever.getImageAtIndexInternal:(ILandroid/media/MediaMetadataRetriever$BitmapParams;)Landroid/graphics/Bitmap;
            areturn
        end local 1 // int imageIndex
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    1     0        this  Landroid/media/MediaMetadataRetriever;
            0    1     1  imageIndex  I
    MethodParameters:
            Name  Flags
      imageIndex  

  public android.graphics.Bitmap getPrimaryImage(android.media.MediaMetadataRetriever$BitmapParams);
    descriptor: (Landroid/media/MediaMetadataRetriever$BitmapParams;)Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // android.media.MediaMetadataRetriever$BitmapParams params
         0: .line 626
            aload 0 /* this */
            iconst_m1
            aload 1 /* params */
            invokevirtual android.media.MediaMetadataRetriever.getImageAtIndexInternal:(ILandroid/media/MediaMetadataRetriever$BitmapParams;)Landroid/graphics/Bitmap;
            areturn
        end local 1 // android.media.MediaMetadataRetriever$BitmapParams params
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Landroid/media/MediaMetadataRetriever;
            0    1     1  params  Landroid/media/MediaMetadataRetriever$BitmapParams;
    MethodParameters:
        Name  Flags
      params  

  public android.graphics.Bitmap getPrimaryImage();
    descriptor: ()Landroid/graphics/Bitmap;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // android.media.MediaMetadataRetriever this
         0: .line 642
            aload 0 /* this */
            iconst_m1
            aconst_null
            invokevirtual android.media.MediaMetadataRetriever.getImageAtIndexInternal:(ILandroid/media/MediaMetadataRetriever$BitmapParams;)Landroid/graphics/Bitmap;
            areturn
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaMetadataRetriever;

  private android.graphics.Bitmap getImageAtIndexInternal(int, android.media.MediaMetadataRetriever$BitmapParams);
    descriptor: (ILandroid/media/MediaMetadataRetriever$BitmapParams;)Landroid/graphics/Bitmap;
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=5, locals=4, args_size=3
        start local 0 // android.media.MediaMetadataRetriever this
        start local 1 // int imageIndex
        start local 2 // android.media.MediaMetadataRetriever$BitmapParams params
         0: .line 646
            ldc "yes"
            aload 0 /* this */
            bipush 26
            invokevirtual android.media.MediaMetadataRetriever.extractMetadata:(I)Ljava/lang/String;
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 647
            new java.lang.IllegalStateException
            dup
            ldc "Does not contail still images"
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 650
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            bipush 27
            invokevirtual android.media.MediaMetadataRetriever.extractMetadata:(I)Ljava/lang/String;
            astore 3 /* imageCount */
        start local 3 // java.lang.String imageCount
         3: .line 651
            iload 1 /* imageIndex */
            aload 3 /* imageCount */
            invokestatic java.lang.Integer.parseInt:(Ljava/lang/String;)I
            if_icmplt 5
         4: .line 652
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Invalid image index: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 3 /* imageCount */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 655
      StackMap locals: java.lang.String
      StackMap stack:
            aload 0 /* this */
            iload 1 /* imageIndex */
            aload 2 /* params */
            invokevirtual android.media.MediaMetadataRetriever._getImageAtIndex:(ILandroid/media/MediaMetadataRetriever$BitmapParams;)Landroid/graphics/Bitmap;
            areturn
        end local 3 // java.lang.String imageCount
        end local 2 // android.media.MediaMetadataRetriever$BitmapParams params
        end local 1 // int imageIndex
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    6     0        this  Landroid/media/MediaMetadataRetriever;
            0    6     1  imageIndex  I
            0    6     2      params  Landroid/media/MediaMetadataRetriever$BitmapParams;
            3    6     3  imageCount  Ljava/lang/String;
    MethodParameters:
            Name  Flags
      imageIndex  
      params      

  private native android.graphics.Bitmap _getImageAtIndex(int, android.media.MediaMetadataRetriever$BitmapParams);
    descriptor: (ILandroid/media/MediaMetadataRetriever$BitmapParams;)Landroid/graphics/Bitmap;
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
            Name  Flags
      imageIndex  
      params      

  public byte[] getEmbeddedPicture();
    descriptor: ()[B
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // android.media.MediaMetadataRetriever this
         0: .line 668
            aload 0 /* this */
            ldc 65535
            invokevirtual android.media.MediaMetadataRetriever.getEmbeddedPicture:(I)[B
            areturn
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Landroid/media/MediaMetadataRetriever;

  private native byte[] getEmbeddedPicture(int);
    descriptor: (I)[B
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
    MethodParameters:
             Name  Flags
      pictureType  

  public native void release();
    descriptor: ()V
    flags: (0x0101) ACC_PUBLIC, ACC_NATIVE

  private native void native_setup();
    descriptor: ()V
    flags: (0x0102) ACC_PRIVATE, ACC_NATIVE

  private static native void native_init();
    descriptor: ()V
    flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE

  private final native void native_finalize();
    descriptor: ()V
    flags: (0x0112) ACC_PRIVATE, ACC_FINAL, ACC_NATIVE

  protected void finalize();
    descriptor: ()V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // android.media.MediaMetadataRetriever this
         0: .line 686
            aload 0 /* this */
            invokevirtual android.media.MediaMetadataRetriever.native_finalize:()V
         1: .line 687
            goto 5
      StackMap locals:
      StackMap stack: java.lang.Throwable
         2: astore 1
         3: .line 688
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         4: .line 689
            aload 1
            athrow
         5: .line 688
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial java.lang.Object.finalize:()V
         6: .line 690
            return
        end local 0 // android.media.MediaMetadataRetriever this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Landroid/media/MediaMetadataRetriever;
      Exception table:
        from    to  target  type
           0     2       2  any
    Exceptions:
      throws java.lang.Throwable
}
SourceFile: "MediaMetadataRetriever.java"
NestMembers:
  android.media.MediaMetadataRetriever$BitmapParams  android.media.MediaMetadataRetriever$Option
InnerClasses:
  public final BitmapParams = android.media.MediaMetadataRetriever$BitmapParams of android.media.MediaMetadataRetriever
  public abstract Option = android.media.MediaMetadataRetriever$Option of android.media.MediaMetadataRetriever
  public abstract Entry = java.util.Map$Entry of java.util.Map