.class public Lorg/videolan/libvlc/Media; .super Lorg/videolan/libvlc/VLCObject; .source "Media.java" # annotations .annotation system Ldalvik/annotation/MemberClasses; value = { Lorg/videolan/libvlc/Media$Stats;, Lorg/videolan/libvlc/Media$Slave;, Lorg/videolan/libvlc/Media$UnknownTrack;, Lorg/videolan/libvlc/Media$SubtitleTrack;, Lorg/videolan/libvlc/Media$VideoTrack;, Lorg/videolan/libvlc/Media$AudioTrack;, Lorg/videolan/libvlc/Media$Track;, Lorg/videolan/libvlc/Media$ParsedStatus;, Lorg/videolan/libvlc/Media$Parse;, Lorg/videolan/libvlc/Media$State;, Lorg/videolan/libvlc/Media$Meta;, Lorg/videolan/libvlc/Media$Type;, Lorg/videolan/libvlc/Media$EventListener;, Lorg/videolan/libvlc/Media$Event; } .end annotation .annotation system Ldalvik/annotation/Signature; value = { "Lorg/videolan/libvlc/VLCObject<", "Lorg/videolan/libvlc/Media$Event;", ">;" } .end annotation # static fields .field private static final PARSE_STATUS_INIT:I = 0x0 .field private static final PARSE_STATUS_PARSED:I = 0x2 .field private static final PARSE_STATUS_PARSING:I = 0x1 .field private static final TAG:Ljava/lang/String; = "LibVLC/Media" # instance fields .field private mCodecOptionSet:Z .field private mDuration:J .field private mFileCachingSet:Z .field private final mNativeMetas:[Ljava/lang/String; .field private mNativeTracks:[Lorg/videolan/libvlc/Media$Track; .field private mNetworkCachingSet:Z .field private mParseStatus:I .field private mState:I .field private mSubItems:Lorg/videolan/libvlc/MediaList; .field private mType:I .field private mUri:Landroid/net/Uri; # direct methods .method public constructor (Lorg/videolan/libvlc/LibVLC;Landroid/content/res/AssetFileDescriptor;)V .locals 9 .line 468 invoke-direct {p0, p1}, Lorg/videolan/libvlc/VLCObject;->(Lorg/videolan/libvlc/LibVLC;)V const/4 v0, 0x0 .line 412 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; .line 413 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mSubItems:Lorg/videolan/libvlc/MediaList; const/4 v1, 0x0 .line 414 iput v1, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I const/16 v2, 0x19 new-array v2, v2, [Ljava/lang/String; .line 415 iput-object v2, p0, Lorg/videolan/libvlc/Media;->mNativeMetas:[Ljava/lang/String; .line 416 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mNativeTracks:[Lorg/videolan/libvlc/Media$Track; const-wide/16 v2, -0x1 .line 417 iput-wide v2, p0, Lorg/videolan/libvlc/Media;->mDuration:J const/4 v0, -0x1 .line 418 iput v0, p0, Lorg/videolan/libvlc/Media;->mState:I .line 419 iput v0, p0, Lorg/videolan/libvlc/Media;->mType:I .line 420 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mCodecOptionSet:Z .line 421 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mFileCachingSet:Z .line 422 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mNetworkCachingSet:Z .line 469 invoke-virtual {p2}, Landroid/content/res/AssetFileDescriptor;->getStartOffset()J move-result-wide v5 .line 470 invoke-virtual {p2}, Landroid/content/res/AssetFileDescriptor;->getLength()J move-result-wide v7 .line 471 invoke-virtual {p2}, Landroid/content/res/AssetFileDescriptor;->getFileDescriptor()Ljava/io/FileDescriptor; move-result-object v4 move-object v2, p0 move-object v3, p1 invoke-direct/range {v2 .. v8}, Lorg/videolan/libvlc/Media;->nativeNewFromFdWithOffsetLength(Lorg/videolan/libvlc/LibVLC;Ljava/io/FileDescriptor;JJ)V .line 472 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->nativeGetMrl()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Lorg/videolan/libvlc/util/VLCUtil;->UriFromMrl(Ljava/lang/String;)Landroid/net/Uri; move-result-object p1 iput-object p1, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; return-void .end method .method public constructor (Lorg/videolan/libvlc/LibVLC;Landroid/net/Uri;)V .locals 4 .line 444 invoke-direct {p0, p1}, Lorg/videolan/libvlc/VLCObject;->(Lorg/videolan/libvlc/LibVLC;)V const/4 v0, 0x0 .line 412 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; .line 413 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mSubItems:Lorg/videolan/libvlc/MediaList; const/4 v1, 0x0 .line 414 iput v1, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I const/16 v2, 0x19 new-array v2, v2, [Ljava/lang/String; .line 415 iput-object v2, p0, Lorg/videolan/libvlc/Media;->mNativeMetas:[Ljava/lang/String; .line 416 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mNativeTracks:[Lorg/videolan/libvlc/Media$Track; const-wide/16 v2, -0x1 .line 417 iput-wide v2, p0, Lorg/videolan/libvlc/Media;->mDuration:J const/4 v0, -0x1 .line 418 iput v0, p0, Lorg/videolan/libvlc/Media;->mState:I .line 419 iput v0, p0, Lorg/videolan/libvlc/Media;->mType:I .line 420 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mCodecOptionSet:Z .line 421 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mFileCachingSet:Z .line 422 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mNetworkCachingSet:Z .line 445 invoke-static {p2}, Lorg/videolan/libvlc/util/VLCUtil;->encodeVLCUri(Landroid/net/Uri;)Ljava/lang/String; move-result-object v0 invoke-direct {p0, p1, v0}, Lorg/videolan/libvlc/Media;->nativeNewFromLocation(Lorg/videolan/libvlc/LibVLC;Ljava/lang/String;)V .line 446 iput-object p2, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; return-void .end method .method public constructor (Lorg/videolan/libvlc/LibVLC;Ljava/io/FileDescriptor;)V .locals 4 .line 456 invoke-direct {p0, p1}, Lorg/videolan/libvlc/VLCObject;->(Lorg/videolan/libvlc/LibVLC;)V const/4 v0, 0x0 .line 412 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; .line 413 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mSubItems:Lorg/videolan/libvlc/MediaList; const/4 v1, 0x0 .line 414 iput v1, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I const/16 v2, 0x19 new-array v2, v2, [Ljava/lang/String; .line 415 iput-object v2, p0, Lorg/videolan/libvlc/Media;->mNativeMetas:[Ljava/lang/String; .line 416 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mNativeTracks:[Lorg/videolan/libvlc/Media$Track; const-wide/16 v2, -0x1 .line 417 iput-wide v2, p0, Lorg/videolan/libvlc/Media;->mDuration:J const/4 v0, -0x1 .line 418 iput v0, p0, Lorg/videolan/libvlc/Media;->mState:I .line 419 iput v0, p0, Lorg/videolan/libvlc/Media;->mType:I .line 420 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mCodecOptionSet:Z .line 421 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mFileCachingSet:Z .line 422 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mNetworkCachingSet:Z .line 457 invoke-direct {p0, p1, p2}, Lorg/videolan/libvlc/Media;->nativeNewFromFd(Lorg/videolan/libvlc/LibVLC;Ljava/io/FileDescriptor;)V .line 458 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->nativeGetMrl()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Lorg/videolan/libvlc/util/VLCUtil;->UriFromMrl(Ljava/lang/String;)Landroid/net/Uri; move-result-object p1 iput-object p1, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; return-void .end method .method public constructor (Lorg/videolan/libvlc/LibVLC;Ljava/lang/String;)V .locals 4 .line 432 invoke-direct {p0, p1}, Lorg/videolan/libvlc/VLCObject;->(Lorg/videolan/libvlc/LibVLC;)V const/4 v0, 0x0 .line 412 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; .line 413 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mSubItems:Lorg/videolan/libvlc/MediaList; const/4 v1, 0x0 .line 414 iput v1, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I const/16 v2, 0x19 new-array v2, v2, [Ljava/lang/String; .line 415 iput-object v2, p0, Lorg/videolan/libvlc/Media;->mNativeMetas:[Ljava/lang/String; .line 416 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mNativeTracks:[Lorg/videolan/libvlc/Media$Track; const-wide/16 v2, -0x1 .line 417 iput-wide v2, p0, Lorg/videolan/libvlc/Media;->mDuration:J const/4 v0, -0x1 .line 418 iput v0, p0, Lorg/videolan/libvlc/Media;->mState:I .line 419 iput v0, p0, Lorg/videolan/libvlc/Media;->mType:I .line 420 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mCodecOptionSet:Z .line 421 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mFileCachingSet:Z .line 422 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mNetworkCachingSet:Z .line 433 invoke-direct {p0, p1, p2}, Lorg/videolan/libvlc/Media;->nativeNewFromPath(Lorg/videolan/libvlc/LibVLC;Ljava/lang/String;)V .line 434 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->nativeGetMrl()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Lorg/videolan/libvlc/util/VLCUtil;->UriFromMrl(Ljava/lang/String;)Landroid/net/Uri; move-result-object p1 iput-object p1, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; return-void .end method .method protected constructor (Lorg/videolan/libvlc/MediaList;I)V .locals 4 .line 481 invoke-direct {p0, p1}, Lorg/videolan/libvlc/VLCObject;->(Lorg/videolan/libvlc/VLCObject;)V const/4 v0, 0x0 .line 412 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; .line 413 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mSubItems:Lorg/videolan/libvlc/MediaList; const/4 v1, 0x0 .line 414 iput v1, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I const/16 v2, 0x19 new-array v2, v2, [Ljava/lang/String; .line 415 iput-object v2, p0, Lorg/videolan/libvlc/Media;->mNativeMetas:[Ljava/lang/String; .line 416 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mNativeTracks:[Lorg/videolan/libvlc/Media$Track; const-wide/16 v2, -0x1 .line 417 iput-wide v2, p0, Lorg/videolan/libvlc/Media;->mDuration:J const/4 v0, -0x1 .line 418 iput v0, p0, Lorg/videolan/libvlc/Media;->mState:I .line 419 iput v0, p0, Lorg/videolan/libvlc/Media;->mType:I .line 420 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mCodecOptionSet:Z .line 421 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mFileCachingSet:Z .line 422 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mNetworkCachingSet:Z if-eqz p1, :cond_1 .line 482 invoke-virtual {p1}, Lorg/videolan/libvlc/MediaList;->isReleased()Z move-result v0 if-nez v0, :cond_1 .line 484 invoke-virtual {p1}, Lorg/videolan/libvlc/MediaList;->isLocked()Z move-result v0 if-eqz v0, :cond_0 .line 486 invoke-direct {p0, p1, p2}, Lorg/videolan/libvlc/Media;->nativeNewFromMediaList(Lorg/videolan/libvlc/MediaList;I)V .line 487 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->nativeGetMrl()Ljava/lang/String; move-result-object p1 invoke-static {p1}, Lorg/videolan/libvlc/util/VLCUtil;->UriFromMrl(Ljava/lang/String;)Landroid/net/Uri; move-result-object p1 iput-object p1, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; return-void .line 485 :cond_0 new-instance p1, Ljava/lang/IllegalStateException; const-string p2, "MediaList should be locked" invoke-direct {p1, p2}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw p1 .line 483 :cond_1 new-instance p1, Ljava/lang/IllegalArgumentException; const-string p2, "MediaList is null or released" invoke-direct {p1, p2}, Ljava/lang/IllegalArgumentException;->(Ljava/lang/String;)V throw p1 .end method .method private static createAudioTrackFromNative(Ljava/lang/String;Ljava/lang/String;IIIILjava/lang/String;Ljava/lang/String;II)Lorg/videolan/libvlc/Media$Track; .locals 13 .line 203 new-instance v12, Lorg/videolan/libvlc/Media$AudioTrack; const/4 v11, 0x0 move-object v0, v12 move-object v1, p0 move-object v2, p1 move v3, p2 move/from16 v4, p3 move/from16 v5, p4 move/from16 v6, p5 move-object/from16 v7, p6 move-object/from16 v8, p7 move/from16 v9, p8 move/from16 v10, p9 invoke-direct/range {v0 .. v11}, Lorg/videolan/libvlc/Media$AudioTrack;->(Ljava/lang/String;Ljava/lang/String;IIIILjava/lang/String;Ljava/lang/String;IILorg/videolan/libvlc/Media$1;)V return-object v12 .end method .method private static createSlaveFromNative(IILjava/lang/String;)Lorg/videolan/libvlc/Media$Slave; .locals 1 .line 337 new-instance v0, Lorg/videolan/libvlc/Media$Slave; invoke-direct {v0, p0, p1, p2}, Lorg/videolan/libvlc/Media$Slave;->(IILjava/lang/String;)V return-object v0 .end method .method private static createStatsFromNative(IFIFIIIIIIIIIIF)Lorg/videolan/libvlc/Media$Stats; .locals 17 .line 401 new-instance v16, Lorg/videolan/libvlc/Media$Stats; move-object/from16 v0, v16 move/from16 v1, p0 move/from16 v2, p1 move/from16 v3, p2 move/from16 v4, p3 move/from16 v5, p4 move/from16 v6, p5 move/from16 v7, p6 move/from16 v8, p7 move/from16 v9, p8 move/from16 v10, p9 move/from16 v11, p10 move/from16 v12, p11 move/from16 v13, p12 move/from16 v14, p13 move/from16 v15, p14 invoke-direct/range {v0 .. v15}, Lorg/videolan/libvlc/Media$Stats;->(IFIFIIIIIIIIIIF)V return-object v16 .end method .method private static createSubtitleTrackFromNative(Ljava/lang/String;Ljava/lang/String;IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;)Lorg/videolan/libvlc/Media$Track; .locals 12 .line 291 new-instance v11, Lorg/videolan/libvlc/Media$SubtitleTrack; const/4 v10, 0x0 move-object v0, v11 move-object v1, p0 move-object v2, p1 move v3, p2 move v4, p3 move/from16 v5, p4 move/from16 v6, p5 move-object/from16 v7, p6 move-object/from16 v8, p7 move-object/from16 v9, p8 invoke-direct/range {v0 .. v10}, Lorg/videolan/libvlc/Media$SubtitleTrack;->(Ljava/lang/String;Ljava/lang/String;IIIILjava/lang/String;Ljava/lang/String;Ljava/lang/String;Lorg/videolan/libvlc/Media$1;)V return-object v11 .end method .method private static createUnknownTrackFromNative(Ljava/lang/String;Ljava/lang/String;IIIILjava/lang/String;Ljava/lang/String;)Lorg/videolan/libvlc/Media$Track; .locals 11 .line 309 new-instance v10, Lorg/videolan/libvlc/Media$UnknownTrack; const/4 v9, 0x0 move-object v0, v10 move-object v1, p0 move-object v2, p1 move v3, p2 move v4, p3 move v5, p4 move/from16 v6, p5 move-object/from16 v7, p6 move-object/from16 v8, p7 invoke-direct/range {v0 .. v9}, Lorg/videolan/libvlc/Media$UnknownTrack;->(Ljava/lang/String;Ljava/lang/String;IIIILjava/lang/String;Ljava/lang/String;Lorg/videolan/libvlc/Media$1;)V return-object v10 .end method .method private static createVideoTrackFromNative(Ljava/lang/String;Ljava/lang/String;IIIILjava/lang/String;Ljava/lang/String;IIIIIIII)Lorg/videolan/libvlc/Media$Track; .locals 19 move-object/from16 v1, p0 move-object/from16 v2, p1 move/from16 v3, p2 move/from16 v4, p3 move/from16 v5, p4 move/from16 v6, p5 move-object/from16 v7, p6 move-object/from16 v8, p7 move/from16 v9, p8 move/from16 v10, p9 move/from16 v11, p10 move/from16 v12, p11 move/from16 v13, p12 move/from16 v14, p13 move/from16 v15, p14 move/from16 v16, p15 .line 268 new-instance v18, Lorg/videolan/libvlc/Media$VideoTrack; move-object/from16 v0, v18 const/16 v17, 0x0 invoke-direct/range {v0 .. v17}, Lorg/videolan/libvlc/Media$VideoTrack;->(Ljava/lang/String;Ljava/lang/String;IIIILjava/lang/String;Ljava/lang/String;IIIIIIIILorg/videolan/libvlc/Media$1;)V return-object v18 .end method .method private static getMediaCodecModule()Ljava/lang/String; .locals 1 .line 746 sget-boolean v0, Lorg/videolan/libvlc/util/AndroidUtil;->isLolliPopOrLater:Z if-eqz v0, :cond_0 const-string v0, "mediacodec_ndk" goto :goto_0 :cond_0 const-string v0, "mediacodec_jni" :goto_0 return-object v0 .end method .method private getTracks()[Lorg/videolan/libvlc/Media$Track; .locals 1 .line 684 monitor-enter p0 .line 685 :try_start_0 iget-object v0, p0, Lorg/videolan/libvlc/Media;->mNativeTracks:[Lorg/videolan/libvlc/Media$Track; if-eqz v0, :cond_0 .line 686 monitor-exit p0 return-object v0 .line 687 :cond_0 invoke-virtual {p0}, Lorg/videolan/libvlc/Media;->isReleased()Z move-result v0 if-eqz v0, :cond_1 const/4 v0, 0x0 .line 688 monitor-exit p0 return-object v0 .line 689 :cond_1 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_1 .line 690 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->nativeGetTracks()[Lorg/videolan/libvlc/Media$Track; move-result-object v0 .line 691 monitor-enter p0 .line 692 :try_start_1 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mNativeTracks:[Lorg/videolan/libvlc/Media$Track; .line 693 monitor-exit p0 return-object v0 :catchall_0 move-exception v0 .line 694 monitor-exit p0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 throw v0 :catchall_1 move-exception v0 .line 689 :try_start_2 monitor-exit p0 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_1 throw v0 .end method .method private native nativeAddOption(Ljava/lang/String;)V .end method .method private native nativeAddSlave(IILjava/lang/String;)V .end method .method private native nativeClearSlaves()V .end method .method private native nativeGetDuration()J .end method .method private native nativeGetMeta(I)Ljava/lang/String; .end method .method private native nativeGetMrl()Ljava/lang/String; .end method .method private native nativeGetSlaves()[Lorg/videolan/libvlc/Media$Slave; .end method .method private native nativeGetState()I .end method .method private native nativeGetStats()Lorg/videolan/libvlc/Media$Stats; .end method .method private native nativeGetTracks()[Lorg/videolan/libvlc/Media$Track; .end method .method private native nativeGetType()I .end method .method private native nativeNewFromFd(Lorg/videolan/libvlc/LibVLC;Ljava/io/FileDescriptor;)V .end method .method private native nativeNewFromFdWithOffsetLength(Lorg/videolan/libvlc/LibVLC;Ljava/io/FileDescriptor;JJ)V .end method .method private native nativeNewFromLocation(Lorg/videolan/libvlc/LibVLC;Ljava/lang/String;)V .end method .method private native nativeNewFromMediaList(Lorg/videolan/libvlc/MediaList;I)V .end method .method private native nativeNewFromPath(Lorg/videolan/libvlc/LibVLC;Ljava/lang/String;)V .end method .method private native nativeParse(I)Z .end method .method private native nativeParseAsync(II)Z .end method .method private native nativeRelease()V .end method .method private declared-synchronized postParse()V .locals 2 monitor-enter p0 .line 581 :try_start_0 iget v0, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 and-int/lit8 v1, v0, 0x2 if-eqz v1, :cond_0 .line 582 monitor-exit p0 return-void :cond_0 and-int/lit8 v0, v0, -0x2 .line 583 :try_start_1 iput v0, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I or-int/lit8 v0, v0, 0x2 .line 584 iput v0, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I const/4 v0, 0x0 .line 585 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mNativeTracks:[Lorg/videolan/libvlc/Media$Track; const-wide/16 v0, -0x1 .line 586 iput-wide v0, p0, Lorg/videolan/libvlc/Media;->mDuration:J const/4 v0, -0x1 .line 587 iput v0, p0, Lorg/videolan/libvlc/Media;->mState:I .line 588 iput v0, p0, Lorg/videolan/libvlc/Media;->mType:I :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 .line 589 monitor-exit p0 return-void :catchall_0 move-exception v0 monitor-exit p0 throw v0 .end method # virtual methods .method public addOption(Ljava/lang/String;)V .locals 2 .line 817 monitor-enter p0 .line 818 :try_start_0 iget-boolean v0, p0, Lorg/videolan/libvlc/Media;->mCodecOptionSet:Z const/4 v1, 0x1 if-nez v0, :cond_0 const-string v0, ":codec=" invoke-virtual {p1, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_0 .line 819 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mCodecOptionSet:Z .line 820 :cond_0 iget-boolean v0, p0, Lorg/videolan/libvlc/Media;->mNetworkCachingSet:Z if-nez v0, :cond_1 const-string v0, ":network-caching=" invoke-virtual {p1, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_1 .line 821 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mNetworkCachingSet:Z .line 822 :cond_1 iget-boolean v0, p0, Lorg/videolan/libvlc/Media;->mFileCachingSet:Z if-nez v0, :cond_2 const-string v0, ":file-caching=" invoke-virtual {p1, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_2 .line 823 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mFileCachingSet:Z .line 824 :cond_2 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 .line 825 invoke-direct {p0, p1}, Lorg/videolan/libvlc/Media;->nativeAddOption(Ljava/lang/String;)V return-void :catchall_0 move-exception p1 .line 824 :try_start_1 monitor-exit p0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 throw p1 .end method .method public addSlave(Lorg/videolan/libvlc/Media$Slave;)V .locals 2 .line 839 iget v0, p1, Lorg/videolan/libvlc/Media$Slave;->type:I iget v1, p1, Lorg/videolan/libvlc/Media$Slave;->priority:I iget-object p1, p1, Lorg/videolan/libvlc/Media$Slave;->uri:Ljava/lang/String; invoke-direct {p0, v0, v1, p1}, Lorg/videolan/libvlc/Media;->nativeAddSlave(IILjava/lang/String;)V return-void .end method .method public clearSlaves()V .locals 0 .line 846 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->nativeClearSlaves()V return-void .end method .method public getDuration()J .locals 4 .line 527 monitor-enter p0 .line 528 :try_start_0 iget-wide v0, p0, Lorg/videolan/libvlc/Media;->mDuration:J const-wide/16 v2, -0x1 cmp-long v2, v0, v2 if-eqz v2, :cond_0 .line 529 monitor-exit p0 return-wide v0 .line 530 :cond_0 invoke-virtual {p0}, Lorg/videolan/libvlc/Media;->isReleased()Z move-result v0 if-eqz v0, :cond_1 const-wide/16 v0, 0x0 .line 531 monitor-exit p0 return-wide v0 .line 532 :cond_1 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_1 .line 533 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->nativeGetDuration()J move-result-wide v0 .line 534 monitor-enter p0 .line 535 :try_start_1 iput-wide v0, p0, Lorg/videolan/libvlc/Media;->mDuration:J .line 536 monitor-exit p0 return-wide v0 :catchall_0 move-exception v0 .line 537 monitor-exit p0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 throw v0 :catchall_1 move-exception v0 .line 532 :try_start_2 monitor-exit p0 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_1 throw v0 .end method .method public getMeta(I)Ljava/lang/String; .locals 3 const/4 v0, 0x0 if-ltz p1, :cond_3 const/16 v1, 0x19 if-lt p1, v1, :cond_0 goto :goto_0 .line 730 :cond_0 monitor-enter p0 .line 731 :try_start_0 iget-object v1, p0, Lorg/videolan/libvlc/Media;->mNativeMetas:[Ljava/lang/String; aget-object v2, v1, p1 if-eqz v2, :cond_1 .line 732 aget-object p1, v1, p1 monitor-exit p0 return-object p1 .line 733 :cond_1 invoke-virtual {p0}, Lorg/videolan/libvlc/Media;->isReleased()Z move-result v1 if-eqz v1, :cond_2 .line 734 monitor-exit p0 return-object v0 .line 735 :cond_2 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_1 .line 737 invoke-direct {p0, p1}, Lorg/videolan/libvlc/Media;->nativeGetMeta(I)Ljava/lang/String; move-result-object v0 .line 738 monitor-enter p0 .line 739 :try_start_1 iget-object v1, p0, Lorg/videolan/libvlc/Media;->mNativeMetas:[Ljava/lang/String; aput-object v0, v1, p1 .line 740 monitor-exit p0 return-object v0 :catchall_0 move-exception p1 .line 741 monitor-exit p0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 throw p1 :catchall_1 move-exception p1 .line 735 :try_start_2 monitor-exit p0 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_1 throw p1 :cond_3 :goto_0 return-object v0 .end method .method public getSlaves()[Lorg/videolan/libvlc/Media$Slave; .locals 1 .line 858 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->nativeGetSlaves()[Lorg/videolan/libvlc/Media$Slave; move-result-object v0 return-object v0 .end method .method public getState()I .locals 2 .line 546 monitor-enter p0 .line 547 :try_start_0 iget v0, p0, Lorg/videolan/libvlc/Media;->mState:I const/4 v1, -0x1 if-eq v0, v1, :cond_0 .line 548 monitor-exit p0 return v0 .line 549 :cond_0 invoke-virtual {p0}, Lorg/videolan/libvlc/Media;->isReleased()Z move-result v0 if-eqz v0, :cond_1 const/4 v0, 0x7 .line 550 monitor-exit p0 return v0 .line 551 :cond_1 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_1 .line 552 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->nativeGetState()I move-result v0 .line 553 monitor-enter p0 .line 554 :try_start_1 iput v0, p0, Lorg/videolan/libvlc/Media;->mState:I .line 555 monitor-exit p0 return v0 :catchall_0 move-exception v0 .line 556 monitor-exit p0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 throw v0 :catchall_1 move-exception v0 .line 551 :try_start_2 monitor-exit p0 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_1 throw v0 .end method .method public getStats()Lorg/videolan/libvlc/Media$Stats; .locals 1 .line 866 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->nativeGetStats()Lorg/videolan/libvlc/Media$Stats; move-result-object v0 return-object v0 .end method .method public getTrack(I)Lorg/videolan/libvlc/Media$Track; .locals 2 .line 714 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->getTracks()[Lorg/videolan/libvlc/Media$Track; move-result-object v0 if-eqz v0, :cond_1 if-ltz p1, :cond_1 .line 715 array-length v1, v0 if-lt p1, v1, :cond_0 goto :goto_0 .line 717 :cond_0 aget-object p1, v0, p1 return-object p1 :cond_1 :goto_0 const/4 p1, 0x0 return-object p1 .end method .method public getTrackCount()I .locals 1 .line 701 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->getTracks()[Lorg/videolan/libvlc/Media$Track; move-result-object v0 if-eqz v0, :cond_0 .line 702 array-length v0, v0 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 return v0 .end method .method public getType()I .locals 2 .line 670 monitor-enter p0 .line 671 :try_start_0 iget v0, p0, Lorg/videolan/libvlc/Media;->mType:I const/4 v1, -0x1 if-eq v0, v1, :cond_0 .line 672 monitor-exit p0 return v0 .line 673 :cond_0 invoke-virtual {p0}, Lorg/videolan/libvlc/Media;->isReleased()Z move-result v0 if-eqz v0, :cond_1 const/4 v0, 0x0 .line 674 monitor-exit p0 return v0 .line 675 :cond_1 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_1 .line 676 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->nativeGetType()I move-result v0 .line 677 monitor-enter p0 .line 678 :try_start_1 iput v0, p0, Lorg/videolan/libvlc/Media;->mType:I .line 679 monitor-exit p0 return v0 :catchall_0 move-exception v0 .line 680 monitor-exit p0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 throw v0 :catchall_1 move-exception v0 .line 675 :try_start_2 monitor-exit p0 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_1 throw v0 .end method .method public declared-synchronized getUri()Landroid/net/Uri; .locals 1 monitor-enter p0 .line 520 :try_start_0 iget-object v0, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 monitor-exit p0 return-object v0 :catchall_0 move-exception v0 monitor-exit p0 throw v0 .end method .method public declared-synchronized isParsed()Z .locals 1 monitor-enter p0 .line 661 :try_start_0 iget v0, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 and-int/lit8 v0, v0, 0x2 if-eqz v0, :cond_0 const/4 v0, 0x1 goto :goto_0 :cond_0 const/4 v0, 0x0 :goto_0 monitor-exit p0 return v0 :catchall_0 move-exception v0 monitor-exit p0 throw v0 .end method .method public bridge synthetic isReleased()Z .locals 1 .line 33 invoke-super {p0}, Lorg/videolan/libvlc/VLCObject;->isReleased()Z move-result v0 return v0 .end method .method protected declared-synchronized onEventNative(IJJF)Lorg/videolan/libvlc/Media$Event; .locals 0 monitor-enter p0 if-eqz p1, :cond_3 const/4 p4, 0x5 if-eq p1, p4, :cond_2 const/4 p4, 0x2 if-eq p1, p4, :cond_1 const/4 p4, 0x3 if-eq p1, p4, :cond_0 goto :goto_0 .line 507 :cond_0 :try_start_0 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->postParse()V .line 508 new-instance p4, Lorg/videolan/libvlc/Media$Event; invoke-direct {p4, p1, p2, p3}, Lorg/videolan/libvlc/Media$Event;->(IJ)V :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 monitor-exit p0 return-object p4 :cond_1 const-wide/16 p2, -0x1 .line 504 :try_start_1 iput-wide p2, p0, Lorg/videolan/libvlc/Media;->mDuration:J goto :goto_0 :cond_2 const/4 p2, -0x1 .line 510 iput p2, p0, Lorg/videolan/libvlc/Media;->mState:I .line 513 :goto_0 new-instance p2, Lorg/videolan/libvlc/Media$Event; invoke-direct {p2, p1}, Lorg/videolan/libvlc/Media$Event;->(I)V :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 monitor-exit p0 return-object p2 :catchall_0 move-exception p1 goto :goto_1 :cond_3 long-to-int p4, p2 if-ltz p4, :cond_4 const/16 p5, 0x19 if-ge p4, p5, :cond_4 .line 501 :try_start_2 iget-object p5, p0, Lorg/videolan/libvlc/Media;->mNativeMetas:[Ljava/lang/String; const/4 p6, 0x0 aput-object p6, p5, p4 .line 502 :cond_4 new-instance p4, Lorg/videolan/libvlc/Media$Event; invoke-direct {p4, p1, p2, p3}, Lorg/videolan/libvlc/Media$Event;->(IJ)V :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_0 monitor-exit p0 return-object p4 :goto_1 monitor-exit p0 throw p1 .end method .method protected bridge synthetic onEventNative(IJJF)Lorg/videolan/libvlc/VLCEvent; .locals 0 .line 33 invoke-virtual/range {p0 .. p6}, Lorg/videolan/libvlc/Media;->onEventNative(IJJF)Lorg/videolan/libvlc/Media$Event; move-result-object p1 return-object p1 .end method .method protected onReleaseNative()V .locals 1 .line 871 iget-object v0, p0, Lorg/videolan/libvlc/Media;->mSubItems:Lorg/videolan/libvlc/MediaList; if-eqz v0, :cond_0 .line 872 invoke-virtual {v0}, Lorg/videolan/libvlc/MediaList;->release()V .line 873 :cond_0 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->nativeRelease()V return-void .end method .method public parse()Z .locals 1 const/4 v0, 0x2 .line 618 invoke-virtual {p0, v0}, Lorg/videolan/libvlc/Media;->parse(I)Z move-result v0 return v0 .end method .method public parse(I)Z .locals 4 .line 599 monitor-enter p0 .line 600 :try_start_0 iget v0, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I and-int/lit8 v1, v0, 0x3 const/4 v2, 0x0 const/4 v3, 0x1 if-nez v1, :cond_0 or-int/2addr v0, v3 .line 601 iput v0, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I move v0, v3 goto :goto_0 :cond_0 move v0, v2 .line 604 :goto_0 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 if-eqz v0, :cond_1 .line 605 invoke-direct {p0, p1}, Lorg/videolan/libvlc/Media;->nativeParse(I)Z move-result p1 if-eqz p1, :cond_1 .line 606 invoke-direct {p0}, Lorg/videolan/libvlc/Media;->postParse()V return v3 :cond_1 return v2 :catchall_0 move-exception p1 .line 604 :try_start_1 monitor-exit p0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 throw p1 .end method .method public parseAsync()Z .locals 1 const/4 v0, 0x2 .line 654 invoke-virtual {p0, v0}, Lorg/videolan/libvlc/Media;->parseAsync(I)Z move-result v0 return v0 .end method .method public parseAsync(I)Z .locals 1 const/4 v0, -0x1 .line 645 invoke-virtual {p0, p1, v0}, Lorg/videolan/libvlc/Media;->parseAsync(II)Z move-result p1 return p1 .end method .method public parseAsync(II)Z .locals 4 .line 635 monitor-enter p0 .line 636 :try_start_0 iget v0, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I and-int/lit8 v1, v0, 0x3 const/4 v2, 0x0 const/4 v3, 0x1 if-nez v1, :cond_0 or-int/2addr v0, v3 .line 637 iput v0, p0, Lorg/videolan/libvlc/Media;->mParseStatus:I move v0, v3 goto :goto_0 :cond_0 move v0, v2 .line 640 :goto_0 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 if-eqz v0, :cond_1 .line 641 invoke-direct {p0, p1, p2}, Lorg/videolan/libvlc/Media;->nativeParseAsync(II)Z move-result p1 if-eqz p1, :cond_1 move v2, v3 :cond_1 return v2 :catchall_0 move-exception p1 .line 640 :try_start_1 monitor-exit p0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 throw p1 .end method .method protected setDefaultMediaPlayerOptions()V .locals 2 .line 798 monitor-enter p0 .line 799 :try_start_0 iget-boolean v0, p0, Lorg/videolan/libvlc/Media;->mCodecOptionSet:Z const/4 v1, 0x1 .line 800 iput-boolean v1, p0, Lorg/videolan/libvlc/Media;->mCodecOptionSet:Z .line 801 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_0 if-nez v0, :cond_0 const/4 v0, 0x0 .line 803 invoke-virtual {p0, v1, v0}, Lorg/videolan/libvlc/Media;->setHWDecoderEnabled(ZZ)V .line 806 :cond_0 iget-object v0, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; if-eqz v0, :cond_1 invoke-virtual {v0}, Landroid/net/Uri;->getScheme()Ljava/lang/String; move-result-object v0 if-eqz v0, :cond_1 iget-object v0, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; invoke-virtual {v0}, Landroid/net/Uri;->getScheme()Ljava/lang/String; move-result-object v0 const-string v1, "file" invoke-virtual {v0, v1}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z move-result v0 if-nez v0, :cond_1 iget-object v0, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; .line 807 invoke-virtual {v0}, Landroid/net/Uri;->getLastPathSegment()Ljava/lang/String; move-result-object v0 if-eqz v0, :cond_1 iget-object v0, p0, Lorg/videolan/libvlc/Media;->mUri:Landroid/net/Uri; invoke-virtual {v0}, Landroid/net/Uri;->getLastPathSegment()Ljava/lang/String; move-result-object v0 invoke-virtual {v0}, Ljava/lang/String;->toLowerCase()Ljava/lang/String; move-result-object v0 const-string v1, ".iso" invoke-virtual {v0, v1}, Ljava/lang/String;->endsWith(Ljava/lang/String;)Z move-result v0 if-eqz v0, :cond_1 const-string v0, ":demux=dvdnav,any" .line 808 invoke-virtual {p0, v0}, Lorg/videolan/libvlc/Media;->addOption(Ljava/lang/String;)V :cond_1 return-void :catchall_0 move-exception v0 .line 801 :try_start_1 monitor-exit p0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 throw v0 .end method .method public setEventListener(Lorg/videolan/libvlc/Media$EventListener;)V .locals 0 .line 491 invoke-super {p0, p1}, Lorg/videolan/libvlc/VLCObject;->setEventListener(Lorg/videolan/libvlc/VLCEvent$Listener;)V return-void .end method .method public setHWDecoderEnabled(ZZ)V .locals 3 if-eqz p1, :cond_0 .line 757 invoke-static {}, Lorg/videolan/libvlc/util/HWDecoderUtil;->getDecoderFromDevice()Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder; move-result-object p1 goto :goto_0 :cond_0 sget-object p1, Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder;->NONE:Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder; .line 761 :goto_0 sget-object v0, Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder;->UNKNOWN:Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder; if-ne p1, v0, :cond_1 if-eqz p2, :cond_1 .line 762 sget-object p1, Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder;->ALL:Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder; .line 764 :cond_1 sget-object v0, Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder;->NONE:Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder; if-eq p1, v0, :cond_9 sget-object v0, Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder;->UNKNOWN:Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder; if-ne p1, v0, :cond_2 goto :goto_1 .line 778 :cond_2 iget-boolean v0, p0, Lorg/videolan/libvlc/Media;->mFileCachingSet:Z if-nez v0, :cond_3 const-string v0, ":file-caching=1500" .line 779 invoke-virtual {p0, v0}, Lorg/videolan/libvlc/Media;->addOption(Ljava/lang/String;)V .line 780 :cond_3 iget-boolean v0, p0, Lorg/videolan/libvlc/Media;->mNetworkCachingSet:Z if-nez v0, :cond_4 const-string v0, ":network-caching=1500" .line 781 invoke-virtual {p0, v0}, Lorg/videolan/libvlc/Media;->addOption(Ljava/lang/String;)V .line 783 :cond_4 new-instance v0, Ljava/lang/StringBuilder; const-string v1, ":codec=" invoke-direct {v0, v1}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V .line 784 sget-object v1, Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder;->MEDIACODEC:Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder; if-eq p1, v1, :cond_5 sget-object v1, Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder;->ALL:Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder; if-ne p1, v1, :cond_6 .line 785 :cond_5 invoke-static {}, Lorg/videolan/libvlc/Media;->getMediaCodecModule()Ljava/lang/String; move-result-object v1 invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; move-result-object v1 const-string v2, "," invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; :cond_6 if-eqz p2, :cond_8 .line 786 sget-object p2, Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder;->OMX:Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder; if-eq p1, p2, :cond_7 sget-object p2, Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder;->ALL:Lorg/videolan/libvlc/util/HWDecoderUtil$Decoder; if-ne p1, p2, :cond_8 :cond_7 const-string p1, "iomx," .line 787 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; :cond_8 const-string p1, "all" .line 788 invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder; .line 790 invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object p1 invoke-virtual {p0, p1}, Lorg/videolan/libvlc/Media;->addOption(Ljava/lang/String;)V return-void :cond_9 :goto_1 const-string p1, ":codec=all" .line 765 invoke-virtual {p0, p1}, Lorg/videolan/libvlc/Media;->addOption(Ljava/lang/String;)V return-void .end method .method public subItems()Lorg/videolan/libvlc/MediaList; .locals 1 .line 565 monitor-enter p0 .line 566 :try_start_0 iget-object v0, p0, Lorg/videolan/libvlc/Media;->mSubItems:Lorg/videolan/libvlc/MediaList; if-eqz v0, :cond_0 .line 567 invoke-virtual {v0}, Lorg/videolan/libvlc/MediaList;->retain()Z .line 568 iget-object v0, p0, Lorg/videolan/libvlc/Media;->mSubItems:Lorg/videolan/libvlc/MediaList; monitor-exit p0 return-object v0 .line 570 :cond_0 monitor-exit p0 :try_end_0 .catchall {:try_start_0 .. :try_end_0} :catchall_1 .line 571 new-instance v0, Lorg/videolan/libvlc/MediaList; invoke-direct {v0, p0}, Lorg/videolan/libvlc/MediaList;->(Lorg/videolan/libvlc/Media;)V .line 572 monitor-enter p0 .line 573 :try_start_1 iput-object v0, p0, Lorg/videolan/libvlc/Media;->mSubItems:Lorg/videolan/libvlc/MediaList; .line 574 invoke-virtual {v0}, Lorg/videolan/libvlc/MediaList;->retain()Z .line 575 iget-object v0, p0, Lorg/videolan/libvlc/Media;->mSubItems:Lorg/videolan/libvlc/MediaList; monitor-exit p0 return-object v0 :catchall_0 move-exception v0 .line 576 monitor-exit p0 :try_end_1 .catchall {:try_start_1 .. :try_end_1} :catchall_0 throw v0 :catchall_1 move-exception v0 .line 570 :try_start_2 monitor-exit p0 :try_end_2 .catchall {:try_start_2 .. :try_end_2} :catchall_1 throw v0 .end method