DashMediaSource.smali
.class public final Lcom/google/android/exoplayer2/source/dash/DashMediaSource;
.super Lcom/google/android/exoplayer2/source/BaseMediaSource;
.source "DashMediaSource.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/source/dash/DashMediaSource$ManifestLoadErrorThrower;,
Lcom/google/android/exoplayer2/source/dash/DashMediaSource$Iso8601Parser;,
Lcom/google/android/exoplayer2/source/dash/DashMediaSource$XsDateTimeParser;,
Lcom/google/android/exoplayer2/source/dash/DashMediaSource$UtcTimestampCallback;,
Lcom/google/android/exoplayer2/source/dash/DashMediaSource$ManifestCallback;,
Lcom/google/android/exoplayer2/source/dash/DashMediaSource$DefaultPlayerEmsgCallback;,
Lcom/google/android/exoplayer2/source/dash/DashMediaSource$DashTimeline;,
Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;,
Lcom/google/android/exoplayer2/source/dash/DashMediaSource$Factory;
}
.end annotation
# static fields
.field public static final DEFAULT_LIVE_PRESENTATION_DELAY_FIXED_MS:J = 0x7530L
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.end field
.field public static final DEFAULT_LIVE_PRESENTATION_DELAY_MS:J = 0x7530L
.field public static final DEFAULT_LIVE_PRESENTATION_DELAY_PREFER_MANIFEST_MS:J = -0x1L
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.end field
.field private static final MIN_LIVE_DEFAULT_START_POSITION_US:J = 0x4c4b40L
.field private static final NOTIFY_MANIFEST_INTERVAL_MS:I = 0x1388
.field private static final TAG:Ljava/lang/String; = "DashMediaSource"
# instance fields
.field private final chunkSourceFactory:Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;
.field private final compositeSequenceableLoaderFactory:Lcom/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory;
.field private dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.field private elapsedRealtimeOffsetMs:J
.field private expiredManifestPublishTimeUs:J
.field private firstPeriodId:I
.field private handler:Landroid/os/Handler;
.field private initialManifestUri:Landroid/net/Uri;
.field private final livePresentationDelayMs:J
.field private final livePresentationDelayOverridesManifest:Z
.field private final loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
.field private loader:Lcom/google/android/exoplayer2/upstream/Loader;
.field private manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.field private final manifestCallback:Lcom/google/android/exoplayer2/source/dash/DashMediaSource$ManifestCallback;
.field private final manifestDataSourceFactory:Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
.field private final manifestEventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.field private manifestFatalError:Ljava/io/IOException;
.field private manifestLoadEndTimestampMs:J
.field private final manifestLoadErrorThrower:Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;
.field private manifestLoadPending:Z
.field private manifestLoadStartTimestampMs:J
.field private final manifestParser:Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser<",
"+",
"Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;",
">;"
}
.end annotation
.end field
.field private manifestUri:Landroid/net/Uri;
.field private final manifestUriLock:Ljava/lang/Object;
.field private mediaTransferListener:Lcom/google/android/exoplayer2/upstream/TransferListener;
.field private final periodsById:Landroid/util/SparseArray;
.annotation system Ldalvik/annotation/Signature;
value = {
"Landroid/util/SparseArray<",
"Lcom/google/android/exoplayer2/source/dash/DashMediaPeriod;",
">;"
}
.end annotation
.end field
.field private final playerEmsgCallback:Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerEmsgCallback;
.field private final refreshManifestRunnable:Ljava/lang/Runnable;
.field private final sideloadedManifest:Z
.field private final simulateManifestRefreshRunnable:Ljava/lang/Runnable;
.field private staleManifestReloadAttempt:I
.field private final tag:Ljava/lang/Object;
# direct methods
.method static constructor <clinit>()V
.registers 1
.line 73
const-string v0, "goog.exo.dash"
invoke-static {v0}, Lcom/google/android/exoplayer2/ExoPlayerLibraryInfo;->registerModule(Ljava/lang/String;)V
.line 74
return-void
.end method
.method public constructor <init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;IJLandroid/os/Handler;Lcom/google/android/exoplayer2/source/MediaSourceEventListener;)V
.registers 19
.param p1, "manifestUri" # Landroid/net/Uri;
.param p2, "manifestDataSourceFactory" # Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
.param p3, "chunkSourceFactory" # Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;
.param p4, "minLoadableRetryCount" # I
.param p5, "livePresentationDelayMs" # J
.param p7, "eventHandler" # Landroid/os/Handler;
.param p8, "eventListener" # Lcom/google/android/exoplayer2/source/MediaSourceEventListener;
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 518
new-instance v3, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifestParser;
invoke-direct {v3}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifestParser;-><init>()V
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v4, p3
move v5, p4
move-wide v6, p5
move-object/from16 v8, p7
move-object/from16 v9, p8
invoke-direct/range {v0 .. v9}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;-><init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;IJLandroid/os/Handler;Lcom/google/android/exoplayer2/source/MediaSourceEventListener;)V
.line 527
return-void
.end method
.method public constructor <init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;Landroid/os/Handler;Lcom/google/android/exoplayer2/source/MediaSourceEventListener;)V
.registers 15
.param p1, "manifestUri" # Landroid/net/Uri;
.param p2, "manifestDataSourceFactory" # Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
.param p3, "chunkSourceFactory" # Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;
.param p4, "eventHandler" # Landroid/os/Handler;
.param p5, "eventListener" # Lcom/google/android/exoplayer2/source/MediaSourceEventListener;
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 481
const/4 v4, 0x3
const-wide/16 v5, -0x1
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v3, p3
move-object v7, p4
move-object v8, p5
invoke-direct/range {v0 .. v8}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;-><init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;IJLandroid/os/Handler;Lcom/google/android/exoplayer2/source/MediaSourceEventListener;)V
.line 489
return-void
.end method
.method public constructor <init>(Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;IJLandroid/os/Handler;Lcom/google/android/exoplayer2/source/MediaSourceEventListener;)V
.registers 25
.param p1, "manifestUri" # Landroid/net/Uri;
.param p2, "manifestDataSourceFactory" # Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
.param p4, "chunkSourceFactory" # Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;
.param p5, "minLoadableRetryCount" # I
.param p6, "livePresentationDelayMs" # J
.param p8, "eventHandler" # Landroid/os/Handler;
.param p9, "eventListener" # Lcom/google/android/exoplayer2/source/MediaSourceEventListener;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/net/Uri;",
"Lcom/google/android/exoplayer2/upstream/DataSource$Factory;",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser<",
"+",
"Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;",
">;",
"Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;",
"IJ",
"Landroid/os/Handler;",
"Lcom/google/android/exoplayer2/source/MediaSourceEventListener;",
")V"
}
.end annotation
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 558
.local p3, "manifestParser":Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;, "Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser<+Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;>;"
move-object/from16 v0, p8
move-object/from16 v1, p9
new-instance v8, Lcom/google/android/exoplayer2/source/DefaultCompositeSequenceableLoaderFactory;
invoke-direct {v8}, Lcom/google/android/exoplayer2/source/DefaultCompositeSequenceableLoaderFactory;-><init>()V
new-instance v9, Lcom/google/android/exoplayer2/upstream/DefaultLoadErrorHandlingPolicy;
move/from16 v14, p5
invoke-direct {v9, v14}, Lcom/google/android/exoplayer2/upstream/DefaultLoadErrorHandlingPolicy;-><init>(I)V
const-wide/16 v2, -0x1
cmp-long v4, p6, v2
if-nez v4, :cond_1a
const-wide/16 v4, 0x7530
move-wide v10, v4
goto :goto_1c
:cond_1a
move-wide/from16 v10, p6
:goto_1c
cmp-long v4, p6, v2
if-eqz v4, :cond_23
const/4 v2, 0x1
const/4 v12, 0x1
goto :goto_25
:cond_23
const/4 v2, 0x0
const/4 v12, 0x0
:goto_25
const/4 v13, 0x0
const/4 v3, 0x0
move-object v2, p0
move-object/from16 v4, p1
move-object/from16 v5, p2
move-object/from16 v6, p3
move-object/from16 v7, p4
invoke-direct/range {v2 .. v13}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;-><init>(Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;Lcom/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory;Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;JZLjava/lang/Object;)V
.line 571
if-eqz v0, :cond_3c
if-eqz v1, :cond_3c
.line 572
move-object v2, p0
invoke-virtual {p0, v0, v1}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->addEventListener(Landroid/os/Handler;Lcom/google/android/exoplayer2/source/MediaSourceEventListener;)V
goto :goto_3d
.line 571
:cond_3c
move-object v2, p0
.line 574
:goto_3d
return-void
.end method
.method private constructor <init>(Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;Lcom/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory;Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;JZLjava/lang/Object;)V
.registers 16
.param p1, "manifest" # Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.param p2, "manifestUri" # Landroid/net/Uri;
.param p3, "manifestDataSourceFactory" # Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
.param p5, "chunkSourceFactory" # Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;
.param p6, "compositeSequenceableLoaderFactory" # Lcom/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory;
.param p7, "loadErrorHandlingPolicy" # Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
.param p8, "livePresentationDelayMs" # J
.param p10, "livePresentationDelayOverridesManifest" # Z
.param p11, "tag" # Ljava/lang/Object;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;",
"Landroid/net/Uri;",
"Lcom/google/android/exoplayer2/upstream/DataSource$Factory;",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser<",
"+",
"Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;",
">;",
"Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;",
"Lcom/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory;",
"Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;",
"JZ",
"Ljava/lang/Object;",
")V"
}
.end annotation
.line 586
.local p4, "manifestParser":Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;, "Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser<+Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;>;"
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/BaseMediaSource;-><init>()V
.line 587
iput-object p2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->initialManifestUri:Landroid/net/Uri;
.line 588
iput-object p1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.line 589
iput-object p2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestUri:Landroid/net/Uri;
.line 590
iput-object p3, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestDataSourceFactory:Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
.line 591
iput-object p4, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestParser:Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;
.line 592
iput-object p5, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->chunkSourceFactory:Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;
.line 593
iput-object p7, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
.line 594
iput-wide p8, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->livePresentationDelayMs:J
.line 595
iput-boolean p10, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->livePresentationDelayOverridesManifest:Z
.line 596
iput-object p6, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->compositeSequenceableLoaderFactory:Lcom/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory;
.line 597
iput-object p11, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->tag:Ljava/lang/Object;
.line 598
const/4 v0, 0x1
if-eqz p1, :cond_1e
const/4 v1, 0x1
goto :goto_1f
:cond_1e
const/4 v1, 0x0
:goto_1f
iput-boolean v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->sideloadedManifest:Z
.line 599
const/4 v1, 0x0
invoke-virtual {p0, v1}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->createEventDispatcher(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;)Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
move-result-object v2
iput-object v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestEventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
.line 600
new-instance v2, Ljava/lang/Object;
invoke-direct {v2}, Ljava/lang/Object;-><init>()V
iput-object v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestUriLock:Ljava/lang/Object;
.line 601
new-instance v2, Landroid/util/SparseArray;
invoke-direct {v2}, Landroid/util/SparseArray;-><init>()V
iput-object v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->periodsById:Landroid/util/SparseArray;
.line 602
new-instance v2, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$DefaultPlayerEmsgCallback;
invoke-direct {v2, p0, v1}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$DefaultPlayerEmsgCallback;-><init>(Lcom/google/android/exoplayer2/source/dash/DashMediaSource;Lcom/google/android/exoplayer2/source/dash/DashMediaSource$1;)V
iput-object v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->playerEmsgCallback:Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerEmsgCallback;
.line 603
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
iput-wide v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->expiredManifestPublishTimeUs:J
.line 604
iget-boolean v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->sideloadedManifest:Z
if-eqz v2, :cond_5c
.line 605
iget-boolean v2, p1, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->dynamic:Z
xor-int/2addr v0, v2
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkState(Z)V
.line 606
iput-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestCallback:Lcom/google/android/exoplayer2/source/dash/DashMediaSource$ManifestCallback;
.line 607
iput-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->refreshManifestRunnable:Ljava/lang/Runnable;
.line 608
iput-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->simulateManifestRefreshRunnable:Ljava/lang/Runnable;
.line 609
new-instance v0, Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower$Dummy;
invoke-direct {v0}, Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower$Dummy;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadErrorThrower:Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;
goto :goto_78
.line 611
:cond_5c
new-instance v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$ManifestCallback;
invoke-direct {v0, p0, v1}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$ManifestCallback;-><init>(Lcom/google/android/exoplayer2/source/dash/DashMediaSource;Lcom/google/android/exoplayer2/source/dash/DashMediaSource$1;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestCallback:Lcom/google/android/exoplayer2/source/dash/DashMediaSource$ManifestCallback;
.line 612
new-instance v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$ManifestLoadErrorThrower;
invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$ManifestLoadErrorThrower;-><init>(Lcom/google/android/exoplayer2/source/dash/DashMediaSource;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadErrorThrower:Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;
.line 613
new-instance v0, Lcom/google/android/exoplayer2/source/dash/-$$Lambda$DashMediaSource$QbzYvqCY1TT8f0KClkalovG-Oxc;
invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/source/dash/-$$Lambda$DashMediaSource$QbzYvqCY1TT8f0KClkalovG-Oxc;-><init>(Lcom/google/android/exoplayer2/source/dash/DashMediaSource;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->refreshManifestRunnable:Ljava/lang/Runnable;
.line 614
new-instance v0, Lcom/google/android/exoplayer2/source/dash/-$$Lambda$DashMediaSource$e1nzB-O4m3YSG1BkxQDKPaNvDa8;
invoke-direct {v0, p0}, Lcom/google/android/exoplayer2/source/dash/-$$Lambda$DashMediaSource$e1nzB-O4m3YSG1BkxQDKPaNvDa8;-><init>(Lcom/google/android/exoplayer2/source/dash/DashMediaSource;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->simulateManifestRefreshRunnable:Ljava/lang/Runnable;
.line 616
:goto_78
return-void
.end method
.method synthetic constructor <init>(Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;Lcom/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory;Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;JZLjava/lang/Object;Lcom/google/android/exoplayer2/source/dash/DashMediaSource$1;)V
.registers 13
.param p1, "x0" # Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.param p2, "x1" # Landroid/net/Uri;
.param p3, "x2" # Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
.param p4, "x3" # Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;
.param p5, "x4" # Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;
.param p6, "x5" # Lcom/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory;
.param p7, "x6" # Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
.param p8, "x7" # J
.param p10, "x8" # Z
.param p11, "x9" # Ljava/lang/Object;
.param p12, "x10" # Lcom/google/android/exoplayer2/source/dash/DashMediaSource$1;
.line 70
invoke-direct/range {p0 .. p11}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;-><init>(Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;Lcom/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory;Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;JZLjava/lang/Object;)V
return-void
.end method
.method public constructor <init>(Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;ILandroid/os/Handler;Lcom/google/android/exoplayer2/source/MediaSourceEventListener;)V
.registers 21
.param p1, "manifest" # Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.param p2, "chunkSourceFactory" # Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;
.param p3, "minLoadableRetryCount" # I
.param p4, "eventHandler" # Landroid/os/Handler;
.param p5, "eventListener" # Lcom/google/android/exoplayer2/source/MediaSourceEventListener;
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 445
move-object/from16 v0, p4
move-object/from16 v1, p5
new-instance v8, Lcom/google/android/exoplayer2/source/DefaultCompositeSequenceableLoaderFactory;
invoke-direct {v8}, Lcom/google/android/exoplayer2/source/DefaultCompositeSequenceableLoaderFactory;-><init>()V
new-instance v9, Lcom/google/android/exoplayer2/upstream/DefaultLoadErrorHandlingPolicy;
move/from16 v14, p3
invoke-direct {v9, v14}, Lcom/google/android/exoplayer2/upstream/DefaultLoadErrorHandlingPolicy;-><init>(I)V
const/4 v4, 0x0
const/4 v5, 0x0
const/4 v6, 0x0
const-wide/16 v10, 0x7530
const/4 v12, 0x0
const/4 v13, 0x0
move-object v2, p0
move-object/from16 v3, p1
move-object/from16 v7, p2
invoke-direct/range {v2 .. v13}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;-><init>(Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;Landroid/net/Uri;Lcom/google/android/exoplayer2/upstream/DataSource$Factory;Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;Lcom/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory;Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;JZLjava/lang/Object;)V
.line 456
if-eqz v0, :cond_28
if-eqz v1, :cond_28
.line 457
move-object v2, p0
invoke-virtual {p0, v0, v1}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->addEventListener(Landroid/os/Handler;Lcom/google/android/exoplayer2/source/MediaSourceEventListener;)V
goto :goto_29
.line 456
:cond_28
move-object v2, p0
.line 459
:goto_29
return-void
.end method
.method public constructor <init>(Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;Landroid/os/Handler;Lcom/google/android/exoplayer2/source/MediaSourceEventListener;)V
.registers 11
.param p1, "manifest" # Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.param p2, "chunkSourceFactory" # Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;
.param p3, "eventHandler" # Landroid/os/Handler;
.param p4, "eventListener" # Lcom/google/android/exoplayer2/source/MediaSourceEventListener;
.annotation runtime Ljava/lang/Deprecated;
.end annotation
.line 420
const/4 v3, 0x3
move-object v0, p0
move-object v1, p1
move-object v2, p2
move-object v4, p3
move-object v5, p4
invoke-direct/range {v0 .. v5}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;-><init>(Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;ILandroid/os/Handler;Lcom/google/android/exoplayer2/source/MediaSourceEventListener;)V
.line 426
return-void
.end method
.method static synthetic access$500(Lcom/google/android/exoplayer2/source/dash/DashMediaSource;)Lcom/google/android/exoplayer2/upstream/Loader;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/dash/DashMediaSource;
.line 70
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
return-object v0
.end method
.method static synthetic access$600(Lcom/google/android/exoplayer2/source/dash/DashMediaSource;)Ljava/io/IOException;
.registers 2
.param p0, "x0" # Lcom/google/android/exoplayer2/source/dash/DashMediaSource;
.line 70
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestFatalError:Ljava/io/IOException;
return-object v0
.end method
.method private getManifestLoadRetryDelayMillis()J
.registers 3
.line 1049
iget v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->staleManifestReloadAttempt:I
add-int/lit8 v0, v0, -0x1
mul-int/lit16 v0, v0, 0x3e8
const/16 v1, 0x1388
invoke-static {v0, v1}, Ljava/lang/Math;->min(II)I
move-result v0
int-to-long v0, v0
return-wide v0
.end method
.method private getNowUnixTimeUs()J
.registers 6
.line 1059
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->elapsedRealtimeOffsetMs:J
const-wide/16 v2, 0x0
cmp-long v4, v0, v2
if-eqz v4, :cond_14
.line 1060
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v0
iget-wide v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->elapsedRealtimeOffsetMs:J
add-long/2addr v0, v2
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/C;->msToUs(J)J
move-result-wide v0
return-wide v0
.line 1062
:cond_14
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/C;->msToUs(J)J
move-result-wide v0
return-wide v0
.end method
.method public static synthetic lambda$QbzYvqCY1TT8f0KClkalovG-Oxc(Lcom/google/android/exoplayer2/source/dash/DashMediaSource;)V
.registers 1
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->startLoadingManifest()V
return-void
.end method
.method private onUtcTimestampResolutionError(Ljava/io/IOException;)V
.registers 4
.param p1, "error" # Ljava/io/IOException;
.line 914
const-string v0, "DashMediaSource"
const-string v1, "Failed to resolve UtcTiming element."
invoke-static {v0, v1, p1}, Lcom/google/android/exoplayer2/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)V
.line 916
const/4 v0, 0x1
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->processManifest(Z)V
.line 917
return-void
.end method
.method private onUtcTimestampResolved(J)V
.registers 4
.param p1, "elapsedRealtimeOffsetMs" # J
.line 909
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->elapsedRealtimeOffsetMs:J
.line 910
const/4 v0, 0x1
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->processManifest(Z)V
.line 911
return-void
.end method
.method private processManifest(Z)V
.registers 42
.param p1, "scheduleRefresh" # Z
.line 921
move-object/from16 v0, p0
const/4 v1, 0x0
.local v1, "i":I
:goto_3
iget-object v2, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->periodsById:Landroid/util/SparseArray;
invoke-virtual {v2}, Landroid/util/SparseArray;->size()I
move-result v2
if-ge v1, v2, :cond_29
.line 922
iget-object v2, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->periodsById:Landroid/util/SparseArray;
invoke-virtual {v2, v1}, Landroid/util/SparseArray;->keyAt(I)I
move-result v2
.line 923
.local v2, "id":I
iget v3, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->firstPeriodId:I
if-lt v2, v3, :cond_26
.line 924
iget-object v3, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->periodsById:Landroid/util/SparseArray;
invoke-virtual {v3, v1}, Landroid/util/SparseArray;->valueAt(I)Ljava/lang/Object;
move-result-object v3
check-cast v3, Lcom/google/android/exoplayer2/source/dash/DashMediaPeriod;
iget-object v4, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget v5, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->firstPeriodId:I
sub-int v5, v2, v5
invoke-virtual {v3, v4, v5}, Lcom/google/android/exoplayer2/source/dash/DashMediaPeriod;->updateManifest(Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;I)V
.line 921
.end local v2 # "id":I
:cond_26
add-int/lit8 v1, v1, 0x1
goto :goto_3
.line 930
.end local v1 # "i":I
:cond_29
const/4 v1, 0x0
.line 931
.local v1, "windowChangingImplicitly":Z
iget-object v2, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
invoke-virtual {v2}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriodCount()I
move-result v2
add-int/lit8 v2, v2, -0x1
.line 932
.local v2, "lastPeriodIndex":I
iget-object v3, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
const/4 v4, 0x0
invoke-virtual {v3, v4}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriod(I)Lcom/google/android/exoplayer2/source/dash/manifest/Period;
move-result-object v3
iget-object v5, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.line 933
invoke-virtual {v5, v4}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriodDurationUs(I)J
move-result-wide v5
.line 932
invoke-static {v3, v5, v6}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;->createPeriodSeekInfo(Lcom/google/android/exoplayer2/source/dash/manifest/Period;J)Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
move-result-object v3
.line 934
.local v3, "firstPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
iget-object v5, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.line 935
invoke-virtual {v5, v2}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriod(I)Lcom/google/android/exoplayer2/source/dash/manifest/Period;
move-result-object v5
iget-object v6, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
invoke-virtual {v6, v2}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriodDurationUs(I)J
move-result-wide v6
.line 934
invoke-static {v5, v6, v7}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;->createPeriodSeekInfo(Lcom/google/android/exoplayer2/source/dash/manifest/Period;J)Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
move-result-object v5
.line 937
.local v5, "lastPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
iget-wide v6, v3, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;->availableStartTimeUs:J
.line 938
.local v6, "currentStartTimeUs":J
iget-wide v8, v5, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;->availableEndTimeUs:J
.line 939
.local v8, "currentEndTimeUs":J
iget-object v10, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-boolean v10, v10, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->dynamic:Z
const-wide v13, -0x7fffffffffffffffL # -4.9E-324
if-eqz v10, :cond_ce
iget-boolean v10, v5, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;->isIndexExplicit:Z
if-nez v10, :cond_ce
.line 942
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->getNowUnixTimeUs()J
move-result-wide v15
iget-object v10, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
move-object/from16 v17, v5
.end local v5 # "lastPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
.local v17, "lastPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
iget-wide v4, v10, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->availabilityStartTimeMs:J
invoke-static {v4, v5}, Lcom/google/android/exoplayer2/C;->msToUs(J)J
move-result-wide v4
sub-long/2addr v15, v4
.line 943
.local v15, "liveStreamDurationUs":J
iget-object v4, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.line 944
invoke-virtual {v4, v2}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriod(I)Lcom/google/android/exoplayer2/source/dash/manifest/Period;
move-result-object v4
iget-wide v4, v4, Lcom/google/android/exoplayer2/source/dash/manifest/Period;->startMs:J
invoke-static {v4, v5}, Lcom/google/android/exoplayer2/C;->msToUs(J)J
move-result-wide v4
sub-long v4, v15, v4
.line 945
.local v4, "liveStreamEndPositionInLastPeriodUs":J
invoke-static {v4, v5, v8, v9}, Ljava/lang/Math;->min(JJ)J
move-result-wide v8
.line 946
iget-object v10, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-wide v11, v10, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->timeShiftBufferDepthMs:J
cmp-long v10, v11, v13
if-eqz v10, :cond_c8
.line 947
iget-object v10, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-wide v10, v10, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->timeShiftBufferDepthMs:J
invoke-static {v10, v11}, Lcom/google/android/exoplayer2/C;->msToUs(J)J
move-result-wide v10
.line 948
.local v10, "timeShiftBufferDepthUs":J
sub-long v20, v8, v10
.line 949
.local v20, "offsetInPeriodUs":J
move v12, v2
move-wide/from16 v13, v20
.line 950
.end local v20 # "offsetInPeriodUs":J
.local v12, "periodIndex":I
.local v13, "offsetInPeriodUs":J
:goto_9c
const-wide/16 v18, 0x0
cmp-long v22, v13, v18
if-gez v22, :cond_b3
if-lez v12, :cond_b3
.line 951
move/from16 v22, v1
.end local v1 # "windowChangingImplicitly":Z
.local v22, "windowChangingImplicitly":Z
iget-object v1, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
add-int/lit8 v12, v12, -0x1
invoke-virtual {v1, v12}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriodDurationUs(I)J
move-result-wide v23
add-long v13, v13, v23
move/from16 v1, v22
goto :goto_9c
.line 950
.end local v22 # "windowChangingImplicitly":Z
.restart local v1 # "windowChangingImplicitly":Z
:cond_b3
move/from16 v22, v1
.line 953
.end local v1 # "windowChangingImplicitly":Z
.restart local v22 # "windowChangingImplicitly":Z
if-nez v12, :cond_be
.line 954
invoke-static {v6, v7, v13, v14}, Ljava/lang/Math;->max(JJ)J
move-result-wide v6
move/from16 v23, v2
goto :goto_cc
.line 958
:cond_be
iget-object v1, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
move/from16 v23, v2
const/4 v2, 0x0
.end local v2 # "lastPeriodIndex":I
.local v23, "lastPeriodIndex":I
invoke-virtual {v1, v2}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriodDurationUs(I)J
move-result-wide v6
goto :goto_cc
.line 946
.end local v10 # "timeShiftBufferDepthUs":J
.end local v12 # "periodIndex":I
.end local v13 # "offsetInPeriodUs":J
.end local v22 # "windowChangingImplicitly":Z
.end local v23 # "lastPeriodIndex":I
.restart local v1 # "windowChangingImplicitly":Z
.restart local v2 # "lastPeriodIndex":I
:cond_c8
move/from16 v22, v1
move/from16 v23, v2
.line 961
.end local v1 # "windowChangingImplicitly":Z
.end local v2 # "lastPeriodIndex":I
.restart local v22 # "windowChangingImplicitly":Z
.restart local v23 # "lastPeriodIndex":I
:goto_cc
const/4 v1, 0x1
.end local v22 # "windowChangingImplicitly":Z
.restart local v1 # "windowChangingImplicitly":Z
goto :goto_d6
.line 939
.end local v4 # "liveStreamEndPositionInLastPeriodUs":J
.end local v15 # "liveStreamDurationUs":J
.end local v17 # "lastPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
.end local v23 # "lastPeriodIndex":I
.restart local v2 # "lastPeriodIndex":I
.restart local v5 # "lastPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
:cond_ce
move/from16 v22, v1
move/from16 v23, v2
move-object/from16 v17, v5
.line 963
.end local v1 # "windowChangingImplicitly":Z
.end local v2 # "lastPeriodIndex":I
.end local v5 # "lastPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
.restart local v17 # "lastPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
.restart local v22 # "windowChangingImplicitly":Z
.restart local v23 # "lastPeriodIndex":I
move/from16 v1, v22
.end local v22 # "windowChangingImplicitly":Z
.restart local v1 # "windowChangingImplicitly":Z
:goto_d6
sub-long v4, v8, v6
.line 964
.local v4, "windowDurationUs":J
const/4 v2, 0x0
.local v2, "i":I
:goto_d9
iget-object v10, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
invoke-virtual {v10}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriodCount()I
move-result v10
add-int/lit8 v10, v10, -0x1
if-ge v2, v10, :cond_ed
.line 965
iget-object v10, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
invoke-virtual {v10, v2}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriodDurationUs(I)J
move-result-wide v10
add-long/2addr v4, v10
.line 964
add-int/lit8 v2, v2, 0x1
goto :goto_d9
.line 967
.end local v2 # "i":I
:cond_ed
const-wide/16 v10, 0x0
.line 968
.local v10, "windowDefaultStartPositionUs":J
iget-object v2, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-boolean v2, v2, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->dynamic:Z
if-eqz v2, :cond_127
.line 969
iget-wide v12, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->livePresentationDelayMs:J
.line 970
.local v12, "presentationDelayForManifestMs":J
iget-boolean v2, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->livePresentationDelayOverridesManifest:Z
if-nez v2, :cond_10c
iget-object v2, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-wide v14, v2, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->suggestedPresentationDelayMs:J
const-wide v20, -0x7fffffffffffffffL # -4.9E-324
cmp-long v2, v14, v20
if-eqz v2, :cond_10c
.line 972
iget-object v2, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-wide v12, v2, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->suggestedPresentationDelayMs:J
.line 975
:cond_10c
invoke-static {v12, v13}, Lcom/google/android/exoplayer2/C;->msToUs(J)J
move-result-wide v14
sub-long v10, v4, v14
.line 976
const-wide/32 v14, 0x4c4b40
cmp-long v2, v10, v14
if-gez v2, :cond_124
.line 980
const-wide/16 v24, 0x2
move-object/from16 v16, v3
.end local v3 # "firstPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
.local v16, "firstPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
div-long v2, v4, v24
invoke-static {v14, v15, v2, v3}, Ljava/lang/Math;->min(JJ)J
move-result-wide v10
goto :goto_129
.line 976
.end local v16 # "firstPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
.restart local v3 # "firstPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
:cond_124
move-object/from16 v16, v3
.end local v3 # "firstPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
.restart local v16 # "firstPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
goto :goto_129
.line 968
.end local v12 # "presentationDelayForManifestMs":J
.end local v16 # "firstPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
.restart local v3 # "firstPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
:cond_127
move-object/from16 v16, v3
.line 984
.end local v3 # "firstPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
.restart local v16 # "firstPeriodSeekInfo":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$PeriodSeekInfo;
:goto_129
iget-object v2, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-wide v2, v2, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->availabilityStartTimeMs:J
iget-object v12, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.line 985
const/4 v13, 0x0
invoke-virtual {v12, v13}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriod(I)Lcom/google/android/exoplayer2/source/dash/manifest/Period;
move-result-object v12
iget-wide v12, v12, Lcom/google/android/exoplayer2/source/dash/manifest/Period;->startMs:J
add-long/2addr v2, v12
invoke-static {v6, v7}, Lcom/google/android/exoplayer2/C;->usToMs(J)J
move-result-wide v12
add-long/2addr v2, v12
.line 986
.local v2, "windowStartTimeMs":J
new-instance v12, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$DashTimeline;
iget-object v13, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-wide v13, v13, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->availabilityStartTimeMs:J
iget v15, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->firstPeriodId:I
move-wide/from16 v38, v8
.end local v8 # "currentEndTimeUs":J
.local v38, "currentEndTimeUs":J
iget-object v8, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-object v9, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->tag:Ljava/lang/Object;
move-object/from16 v24, v12
move-wide/from16 v25, v13
move-wide/from16 v27, v2
move/from16 v29, v15
move-wide/from16 v30, v6
move-wide/from16 v32, v4
move-wide/from16 v34, v10
move-object/from16 v36, v8
move-object/from16 v37, v9
invoke-direct/range {v24 .. v37}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$DashTimeline;-><init>(JJIJJJLcom/google/android/exoplayer2/source/dash/manifest/DashManifest;Ljava/lang/Object;)V
move-object v8, v12
.line 996
.local v8, "timeline":Lcom/google/android/exoplayer2/source/dash/DashMediaSource$DashTimeline;
iget-object v9, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
invoke-virtual {v0, v8, v9}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->refreshSourceInfo(Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;)V
.line 998
iget-boolean v9, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->sideloadedManifest:Z
if-nez v9, :cond_1c8
.line 1000
iget-object v9, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->handler:Landroid/os/Handler;
iget-object v12, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->simulateManifestRefreshRunnable:Ljava/lang/Runnable;
invoke-virtual {v9, v12}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
.line 1002
if-eqz v1, :cond_17b
.line 1003
iget-object v9, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->handler:Landroid/os/Handler;
iget-object v12, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->simulateManifestRefreshRunnable:Ljava/lang/Runnable;
const-wide/16 v13, 0x1388
invoke-virtual {v9, v12, v13, v14}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
.line 1005
:cond_17b
iget-boolean v9, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadPending:Z
if-eqz v9, :cond_188
.line 1006
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->startLoadingManifest()V
move v9, v1
move-wide/from16 v24, v2
move-wide/from16 v20, v4
goto :goto_1cd
.line 1007
:cond_188
if-eqz p1, :cond_1c2
iget-object v9, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-boolean v9, v9, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->dynamic:Z
if-eqz v9, :cond_1c2
iget-object v9, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-wide v12, v9, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->minUpdatePeriodMs:J
const-wide v14, -0x7fffffffffffffffL # -4.9E-324
cmp-long v9, v12, v14
if-eqz v9, :cond_1c2
.line 1011
iget-object v9, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-wide v12, v9, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->minUpdatePeriodMs:J
.line 1012
.local v12, "minUpdatePeriodMs":J
const-wide/16 v14, 0x0
cmp-long v9, v12, v14
if-nez v9, :cond_1a9
.line 1017
const-wide/16 v12, 0x1388
.line 1019
:cond_1a9
iget-wide v14, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadStartTimestampMs:J
add-long/2addr v14, v12
.line 1020
.local v14, "nextLoadTimestampMs":J
nop
.line 1021
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v20
move v9, v1
move-wide/from16 v24, v2
.end local v1 # "windowChangingImplicitly":Z
.end local v2 # "windowStartTimeMs":J
.local v9, "windowChangingImplicitly":Z
.local v24, "windowStartTimeMs":J
sub-long v1, v14, v20
move-wide/from16 v20, v4
const-wide/16 v3, 0x0
.end local v4 # "windowDurationUs":J
.local v20, "windowDurationUs":J
invoke-static {v3, v4, v1, v2}, Ljava/lang/Math;->max(JJ)J
move-result-wide v1
.line 1022
.local v1, "delayUntilNextLoadMs":J
invoke-direct {v0, v1, v2}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->scheduleManifestRefresh(J)V
goto :goto_1cd
.line 1007
.end local v9 # "windowChangingImplicitly":Z
.end local v12 # "minUpdatePeriodMs":J
.end local v14 # "nextLoadTimestampMs":J
.end local v20 # "windowDurationUs":J
.end local v24 # "windowStartTimeMs":J
.local v1, "windowChangingImplicitly":Z
.restart local v2 # "windowStartTimeMs":J
.restart local v4 # "windowDurationUs":J
:cond_1c2
move v9, v1
move-wide/from16 v24, v2
move-wide/from16 v20, v4
.end local v1 # "windowChangingImplicitly":Z
.end local v2 # "windowStartTimeMs":J
.end local v4 # "windowDurationUs":J
.restart local v9 # "windowChangingImplicitly":Z
.restart local v20 # "windowDurationUs":J
.restart local v24 # "windowStartTimeMs":J
goto :goto_1cd
.line 998
.end local v9 # "windowChangingImplicitly":Z
.end local v20 # "windowDurationUs":J
.end local v24 # "windowStartTimeMs":J
.restart local v1 # "windowChangingImplicitly":Z
.restart local v2 # "windowStartTimeMs":J
.restart local v4 # "windowDurationUs":J
:cond_1c8
move v9, v1
move-wide/from16 v24, v2
move-wide/from16 v20, v4
.line 1025
.end local v1 # "windowChangingImplicitly":Z
.end local v2 # "windowStartTimeMs":J
.end local v4 # "windowDurationUs":J
.restart local v9 # "windowChangingImplicitly":Z
.restart local v20 # "windowDurationUs":J
.restart local v24 # "windowStartTimeMs":J
:goto_1cd
return-void
.end method
.method private resolveUtcTimingElement(Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;)V
.registers 5
.param p1, "timingElement" # Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;
.line 877
iget-object v0, p1, Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;->schemeIdUri:Ljava/lang/String;
.line 878
.local v0, "scheme":Ljava/lang/String;
const-string/jumbo v1, "urn:mpeg:dash:utc:direct:2014"
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_59
.line 879
const-string/jumbo v1, "urn:mpeg:dash:utc:direct:2012"
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_15
goto :goto_59
.line 881
:cond_15
const-string/jumbo v1, "urn:mpeg:dash:utc:http-iso:2014"
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_50
.line 882
const-string/jumbo v1, "urn:mpeg:dash:utc:http-iso:2012"
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_28
goto :goto_50
.line 884
:cond_28
const-string/jumbo v1, "urn:mpeg:dash:utc:http-xsdate:2014"
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-nez v1, :cond_46
.line 885
const-string/jumbo v1, "urn:mpeg:dash:utc:http-xsdate:2012"
invoke-static {v0, v1}, Lcom/google/android/exoplayer2/util/Util;->areEqual(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_3b
goto :goto_46
.line 889
:cond_3b
new-instance v1, Ljava/io/IOException;
const-string v2, "Unsupported UTC timing scheme"
invoke-direct {v1, v2}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->onUtcTimestampResolutionError(Ljava/io/IOException;)V
goto :goto_5c
.line 886
:cond_46
:goto_46
new-instance v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$XsDateTimeParser;
const/4 v2, 0x0
invoke-direct {v1, v2}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$XsDateTimeParser;-><init>(Lcom/google/android/exoplayer2/source/dash/DashMediaSource$1;)V
invoke-direct {p0, p1, v1}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->resolveUtcTimingElementHttp(Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;)V
goto :goto_5c
.line 883
:cond_50
:goto_50
new-instance v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$Iso8601Parser;
invoke-direct {v1}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$Iso8601Parser;-><init>()V
invoke-direct {p0, p1, v1}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->resolveUtcTimingElementHttp(Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;)V
goto :goto_5c
.line 880
:cond_59
:goto_59
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->resolveUtcTimingElementDirect(Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;)V
.line 891
:goto_5c
return-void
.end method
.method private resolveUtcTimingElementDirect(Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;)V
.registers 6
.param p1, "timingElement" # Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;
.line 895
:try_start_0
iget-object v0, p1, Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;->value:Ljava/lang/String;
invoke-static {v0}, Lcom/google/android/exoplayer2/util/Util;->parseXsDateTime(Ljava/lang/String;)J
move-result-wide v0
.line 896
.local v0, "utcTimestampMs":J
iget-wide v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadEndTimestampMs:J
sub-long v2, v0, v2
invoke-direct {p0, v2, v3}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->onUtcTimestampResolved(J)V
:try_end_d
.catch Lcom/google/android/exoplayer2/ParserException; {:try_start_0 .. :try_end_d} :catch_e
.line 899
.end local v0 # "utcTimestampMs":J
goto :goto_12
.line 897
:catch_e
move-exception v0
.line 898
.local v0, "e":Lcom/google/android/exoplayer2/ParserException;
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->onUtcTimestampResolutionError(Ljava/io/IOException;)V
.line 900
.end local v0 # "e":Lcom/google/android/exoplayer2/ParserException;
:goto_12
return-void
.end method
.method private resolveUtcTimingElementHttp(Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;)V
.registers 7
.param p1, "timingElement" # Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser<",
"Ljava/lang/Long;",
">;)V"
}
.end annotation
.line 904
.local p2, "parser":Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;, "Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser<Ljava/lang/Long;>;"
new-instance v0, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
iget-object v2, p1, Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;->value:Ljava/lang/String;
invoke-static {v2}, Landroid/net/Uri;->parse(Ljava/lang/String;)Landroid/net/Uri;
move-result-object v2
const/4 v3, 0x5
invoke-direct {v0, v1, v2, v3, p2}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;-><init>(Lcom/google/android/exoplayer2/upstream/DataSource;Landroid/net/Uri;ILcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;)V
new-instance v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$UtcTimestampCallback;
const/4 v2, 0x0
invoke-direct {v1, p0, v2}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource$UtcTimestampCallback;-><init>(Lcom/google/android/exoplayer2/source/dash/DashMediaSource;Lcom/google/android/exoplayer2/source/dash/DashMediaSource$1;)V
const/4 v2, 0x1
invoke-direct {p0, v0, v1, v2}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->startLoading(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;Lcom/google/android/exoplayer2/upstream/Loader$Callback;I)V
.line 906
return-void
.end method
.method private scheduleManifestRefresh(J)V
.registers 5
.param p1, "delayUntilNextLoadMs" # J
.line 1028
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->handler:Landroid/os/Handler;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->refreshManifestRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1, p1, p2}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
.line 1029
return-void
.end method
.method private startLoading(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;Lcom/google/android/exoplayer2/upstream/Loader$Callback;I)V
.registers 9
.param p3, "minRetryCount" # I
.annotation system Ldalvik/annotation/Signature;
value = {
"<T:",
"Ljava/lang/Object;",
">(",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable<",
"TT;>;",
"Lcom/google/android/exoplayer2/upstream/Loader$Callback<",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable<",
"TT;>;>;I)V"
}
.end annotation
.line 1054
.local p1, "loadable":Lcom/google/android/exoplayer2/upstream/ParsingLoadable;, "Lcom/google/android/exoplayer2/upstream/ParsingLoadable<TT;>;"
.local p2, "callback":Lcom/google/android/exoplayer2/upstream/Loader$Callback;, "Lcom/google/android/exoplayer2/upstream/Loader$Callback<Lcom/google/android/exoplayer2/upstream/ParsingLoadable<TT;>;>;"
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v0, p1, p2, p3}, Lcom/google/android/exoplayer2/upstream/Loader;->startLoading(Lcom/google/android/exoplayer2/upstream/Loader$Loadable;Lcom/google/android/exoplayer2/upstream/Loader$Callback;I)J
move-result-wide v0
.line 1055
.local v0, "elapsedRealtimeMs":J
iget-object v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestEventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget-object v3, p1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
iget v4, p1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->type:I
invoke-virtual {v2, v3, v4, v0, v1}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->loadStarted(Lcom/google/android/exoplayer2/upstream/DataSpec;IJ)V
.line 1056
return-void
.end method
.method private startLoadingManifest()V
.registers 6
.line 1032
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->handler:Landroid/os/Handler;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->refreshManifestRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
.line 1033
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/upstream/Loader;->isLoading()Z
move-result v0
if-eqz v0, :cond_13
.line 1034
const/4 v0, 0x1
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadPending:Z
.line 1035
return-void
.line 1038
:cond_13
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestUriLock:Ljava/lang/Object;
monitor-enter v0
.line 1039
:try_start_16
iget-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestUri:Landroid/net/Uri;
.line 1040
.local v1, "manifestUri":Landroid/net/Uri;
monitor-exit v0
:try_end_19
.catchall {:try_start_16 .. :try_end_19} :catchall_32
.line 1041
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadPending:Z
.line 1042
new-instance v0, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;
iget-object v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
iget-object v3, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestParser:Lcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;
const/4 v4, 0x4
invoke-direct {v0, v2, v1, v4, v3}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;-><init>(Lcom/google/android/exoplayer2/upstream/DataSource;Landroid/net/Uri;ILcom/google/android/exoplayer2/upstream/ParsingLoadable$Parser;)V
iget-object v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestCallback:Lcom/google/android/exoplayer2/source/dash/DashMediaSource$ManifestCallback;
iget-object v3, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
.line 1045
invoke-interface {v3, v4}, Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;->getMinimumLoadableRetryCount(I)I
move-result v3
.line 1042
invoke-direct {p0, v0, v2, v3}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->startLoading(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;Lcom/google/android/exoplayer2/upstream/Loader$Callback;I)V
.line 1046
return-void
.line 1040
.end local v1 # "manifestUri":Landroid/net/Uri;
:catchall_32
move-exception v1
:try_start_33
monitor-exit v0
:try_end_34
.catchall {:try_start_33 .. :try_end_34} :catchall_32
throw v1
.end method
# virtual methods
.method public createPeriod(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;Lcom/google/android/exoplayer2/upstream/Allocator;J)Lcom/google/android/exoplayer2/source/MediaPeriod;
.registers 24
.param p1, "periodId" # Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;
.param p2, "allocator" # Lcom/google/android/exoplayer2/upstream/Allocator;
.param p3, "startPositionUs" # J
.line 659
move-object/from16 v0, p0
move-object/from16 v1, p1
iget-object v2, v1, Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;->periodUid:Ljava/lang/Object;
check-cast v2, Ljava/lang/Integer;
invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
move-result v2
iget v3, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->firstPeriodId:I
sub-int/2addr v2, v3
.line 660
.local v2, "periodIndex":I
iget-object v3, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.line 661
invoke-virtual {v3, v2}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriod(I)Lcom/google/android/exoplayer2/source/dash/manifest/Period;
move-result-object v3
iget-wide v3, v3, Lcom/google/android/exoplayer2/source/dash/manifest/Period;->startMs:J
invoke-virtual {v0, v1, v3, v4}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->createEventDispatcher(Lcom/google/android/exoplayer2/source/MediaSource$MediaPeriodId;J)Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
move-result-object v3
.line 662
.local v3, "periodEventDispatcher":Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
new-instance v18, Lcom/google/android/exoplayer2/source/dash/DashMediaPeriod;
iget v4, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->firstPeriodId:I
add-int v5, v4, v2
iget-object v6, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-object v8, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->chunkSourceFactory:Lcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;
iget-object v9, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->mediaTransferListener:Lcom/google/android/exoplayer2/upstream/TransferListener;
iget-object v10, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
iget-wide v12, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->elapsedRealtimeOffsetMs:J
iget-object v14, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadErrorThrower:Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;
iget-object v15, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->compositeSequenceableLoaderFactory:Lcom/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory;
iget-object v11, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->playerEmsgCallback:Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerEmsgCallback;
move-object/from16 v4, v18
move v7, v2
move-object/from16 v17, v11
move-object v11, v3
move-object/from16 v16, v15
move-object/from16 v15, p2
invoke-direct/range {v4 .. v17}, Lcom/google/android/exoplayer2/source/dash/DashMediaPeriod;-><init>(ILcom/google/android/exoplayer2/source/dash/manifest/DashManifest;ILcom/google/android/exoplayer2/source/dash/DashChunkSource$Factory;Lcom/google/android/exoplayer2/upstream/TransferListener;Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;JLcom/google/android/exoplayer2/upstream/LoaderErrorThrower;Lcom/google/android/exoplayer2/upstream/Allocator;Lcom/google/android/exoplayer2/source/CompositeSequenceableLoaderFactory;Lcom/google/android/exoplayer2/source/dash/PlayerEmsgHandler$PlayerEmsgCallback;)V
.line 676
.local v4, "mediaPeriod":Lcom/google/android/exoplayer2/source/dash/DashMediaPeriod;
iget-object v5, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->periodsById:Landroid/util/SparseArray;
iget v6, v4, Lcom/google/android/exoplayer2/source/dash/DashMediaPeriod;->id:I
invoke-virtual {v5, v6, v4}, Landroid/util/SparseArray;->put(ILjava/lang/Object;)V
.line 677
return-object v4
.end method
.method public getTag()Ljava/lang/Object;
.registers 2
.line 635
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->tag:Ljava/lang/Object;
return-object v0
.end method
.method public synthetic lambda$new$0$DashMediaSource()V
.registers 2
.line 614
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->processManifest(Z)V
return-void
.end method
.method public maybeThrowSourceInfoRefreshError()V
.registers 2
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 653
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadErrorThrower:Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;
invoke-interface {v0}, Lcom/google/android/exoplayer2/upstream/LoaderErrorThrower;->maybeThrowError()V
.line 654
return-void
.end method
.method onDashManifestPublishTimeExpired(J)V
.registers 8
.param p1, "expiredManifestPublishTimeUs" # J
.line 719
iget-wide v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->expiredManifestPublishTimeUs:J
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
cmp-long v4, v0, v2
if-eqz v4, :cond_f
cmp-long v2, v0, p1
if-gez v2, :cond_11
.line 721
:cond_f
iput-wide p1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->expiredManifestPublishTimeUs:J
.line 723
:cond_11
return-void
.end method
.method onDashManifestRefreshRequested()V
.registers 3
.line 714
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->handler:Landroid/os/Handler;
iget-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->simulateManifestRefreshRunnable:Ljava/lang/Runnable;
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeCallbacks(Ljava/lang/Runnable;)V
.line 715
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->startLoadingManifest()V
.line 716
return-void
.end method
.method onLoadCanceled(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;JJ)V
.registers 19
.param p2, "elapsedRealtimeMs" # J
.param p4, "loadDurationMs" # J
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable<",
"*>;JJ)V"
}
.end annotation
.line 864
.local p1, "loadable":Lcom/google/android/exoplayer2/upstream/ParsingLoadable;, "Lcom/google/android/exoplayer2/upstream/ParsingLoadable<*>;"
move-object v0, p1
move-object v1, p0
iget-object v2, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestEventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget-object v3, v0, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
.line 866
invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getUri()Landroid/net/Uri;
move-result-object v4
.line 867
invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getResponseHeaders()Ljava/util/Map;
move-result-object v5
iget v6, v0, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->type:I
.line 871
invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->bytesLoaded()J
move-result-wide v11
.line 864
move-wide v7, p2
move-wide/from16 v9, p4
invoke-virtual/range {v2 .. v12}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->loadCanceled(Lcom/google/android/exoplayer2/upstream/DataSpec;Landroid/net/Uri;Ljava/util/Map;IJJJ)V
.line 872
return-void
.end method
.method onManifestLoadCompleted(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;JJ)V
.registers 22
.param p2, "elapsedRealtimeMs" # J
.param p4, "loadDurationMs" # J
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable<",
"Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;",
">;JJ)V"
}
.end annotation
.line 729
.local p1, "loadable":Lcom/google/android/exoplayer2/upstream/ParsingLoadable;, "Lcom/google/android/exoplayer2/upstream/ParsingLoadable<Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;>;"
move-object/from16 v1, p0
move-object/from16 v2, p1
move-wide/from16 v14, p2
iget-object v3, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestEventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget-object v4, v2, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
.line 731
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getUri()Landroid/net/Uri;
move-result-object v5
.line 732
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getResponseHeaders()Ljava/util/Map;
move-result-object v6
iget v7, v2, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->type:I
.line 736
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->bytesLoaded()J
move-result-wide v12
.line 729
move-wide/from16 v8, p2
move-wide/from16 v10, p4
invoke-virtual/range {v3 .. v13}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->loadCompleted(Lcom/google/android/exoplayer2/upstream/DataSpec;Landroid/net/Uri;Ljava/util/Map;IJJJ)V
.line 737
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getResult()Ljava/lang/Object;
move-result-object v0
move-object v3, v0
check-cast v3, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.line 739
.local v3, "newManifest":Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-object v0, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
const/4 v4, 0x0
if-nez v0, :cond_2d
const/4 v0, 0x0
goto :goto_31
:cond_2d
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriodCount()I
move-result v0
:goto_31
move v5, v0
.line 740
.local v5, "oldPeriodCount":I
const/4 v0, 0x0
.line 741
.local v0, "removedPeriodCount":I
invoke-virtual {v3, v4}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriod(I)Lcom/google/android/exoplayer2/source/dash/manifest/Period;
move-result-object v6
iget-wide v6, v6, Lcom/google/android/exoplayer2/source/dash/manifest/Period;->startMs:J
move v8, v0
.line 742
.end local v0 # "removedPeriodCount":I
.local v6, "newFirstPeriodStartTimeMs":J
.local v8, "removedPeriodCount":I
:goto_3a
if-ge v8, v5, :cond_4b
iget-object v0, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.line 743
invoke-virtual {v0, v8}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriod(I)Lcom/google/android/exoplayer2/source/dash/manifest/Period;
move-result-object v0
iget-wide v9, v0, Lcom/google/android/exoplayer2/source/dash/manifest/Period;->startMs:J
cmp-long v0, v9, v6
if-gez v0, :cond_4b
.line 744
add-int/lit8 v8, v8, 0x1
goto :goto_3a
.line 747
:cond_4b
iget-boolean v0, v3, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->dynamic:Z
if-eqz v0, :cond_bf
.line 748
const/4 v0, 0x0
.line 749
.local v0, "isManifestStale":Z
sub-int v9, v5, v8
invoke-virtual {v3}, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->getPeriodCount()I
move-result v10
if-le v9, v10, :cond_61
.line 755
const-string v9, "DashMediaSource"
const-string v10, "Loaded out of sync manifest"
invoke-static {v9, v10}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 756
const/4 v0, 0x1
goto :goto_9b
.line 757
:cond_61
iget-wide v9, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->expiredManifestPublishTimeUs:J
const-wide v11, -0x7fffffffffffffffL # -4.9E-324
cmp-long v13, v9, v11
if-eqz v13, :cond_9b
iget-wide v9, v3, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->publishTimeMs:J
const-wide/16 v11, 0x3e8
mul-long v9, v9, v11
iget-wide v11, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->expiredManifestPublishTimeUs:J
cmp-long v13, v9, v11
if-gtz v13, :cond_9b
.line 762
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "Loaded stale dynamic manifest: "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v10, v3, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->publishTimeMs:J
invoke-virtual {v9, v10, v11}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
const-string v10, ", "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget-wide v10, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->expiredManifestPublishTimeUs:J
invoke-virtual {v9, v10, v11}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
invoke-virtual {v9}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v9
const-string v10, "DashMediaSource"
invoke-static {v10, v9}, Lcom/google/android/exoplayer2/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)V
.line 768
const/4 v0, 0x1
.line 771
:cond_9b
:goto_9b
if-eqz v0, :cond_bd
.line 772
iget v4, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->staleManifestReloadAttempt:I
add-int/lit8 v9, v4, 0x1
iput v9, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->staleManifestReloadAttempt:I
iget-object v9, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->loadErrorHandlingPolicy:Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;
iget v10, v2, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->type:I
.line 773
invoke-interface {v9, v10}, Lcom/google/android/exoplayer2/upstream/LoadErrorHandlingPolicy;->getMinimumLoadableRetryCount(I)I
move-result v9
if-ge v4, v9, :cond_b5
.line 774
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->getManifestLoadRetryDelayMillis()J
move-result-wide v9
invoke-direct {v1, v9, v10}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->scheduleManifestRefresh(J)V
goto :goto_bc
.line 776
:cond_b5
new-instance v4, Lcom/google/android/exoplayer2/source/dash/DashManifestStaleException;
invoke-direct {v4}, Lcom/google/android/exoplayer2/source/dash/DashManifestStaleException;-><init>()V
iput-object v4, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestFatalError:Ljava/io/IOException;
.line 778
:goto_bc
return-void
.line 780
:cond_bd
iput v4, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->staleManifestReloadAttempt:I
.line 783
.end local v0 # "isManifestStale":Z
:cond_bf
iput-object v3, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.line 784
iget-boolean v0, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadPending:Z
iget-boolean v9, v3, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->dynamic:Z
and-int/2addr v0, v9
iput-boolean v0, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadPending:Z
.line 785
sub-long v9, v14, p4
iput-wide v9, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadStartTimestampMs:J
.line 786
iput-wide v14, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadEndTimestampMs:J
.line 787
iget-object v0, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-object v0, v0, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->location:Landroid/net/Uri;
const/4 v9, 0x1
if-eqz v0, :cond_ef
.line 788
iget-object v10, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestUriLock:Ljava/lang/Object;
monitor-enter v10
.line 792
:try_start_d8
iget-object v0, v2, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
iget-object v0, v0, Lcom/google/android/exoplayer2/upstream/DataSpec;->uri:Landroid/net/Uri;
iget-object v11, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestUri:Landroid/net/Uri;
if-ne v0, v11, :cond_e1
const/4 v4, 0x1
:cond_e1
move v0, v4
.line 793
.local v0, "isSameUriInstance":Z
if-eqz v0, :cond_ea
.line 794
iget-object v4, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-object v4, v4, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->location:Landroid/net/Uri;
iput-object v4, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestUri:Landroid/net/Uri;
.line 796
.end local v0 # "isSameUriInstance":Z
:cond_ea
monitor-exit v10
goto :goto_ef
:catchall_ec
move-exception v0
monitor-exit v10
:try_end_ee
.catchall {:try_start_d8 .. :try_end_ee} :catchall_ec
throw v0
.line 799
:cond_ef
:goto_ef
if-nez v5, :cond_109
.line 800
iget-object v0, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->dynamic:Z
if-eqz v0, :cond_105
iget-object v0, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-object v0, v0, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->utcTiming:Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;
if-eqz v0, :cond_105
.line 801
iget-object v0, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
iget-object v0, v0, Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;->utcTiming:Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;
invoke-direct {v1, v0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->resolveUtcTimingElement(Lcom/google/android/exoplayer2/source/dash/manifest/UtcTimingElement;)V
goto :goto_111
.line 803
:cond_105
invoke-direct {v1, v9}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->processManifest(Z)V
goto :goto_111
.line 806
:cond_109
iget v0, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->firstPeriodId:I
add-int/2addr v0, v8
iput v0, v1, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->firstPeriodId:I
.line 807
invoke-direct {v1, v9}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->processManifest(Z)V
.line 809
:goto_111
return-void
.end method
.method onManifestLoadError(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;JJLjava/io/IOException;)Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
.registers 23
.param p2, "elapsedRealtimeMs" # J
.param p4, "loadDurationMs" # J
.param p6, "error" # Ljava/io/IOException;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable<",
"Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;",
">;JJ",
"Ljava/io/IOException;",
")",
"Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;"
}
.end annotation
.line 816
.local p1, "loadable":Lcom/google/android/exoplayer2/upstream/ParsingLoadable;, "Lcom/google/android/exoplayer2/upstream/ParsingLoadable<Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;>;"
move-object/from16 v0, p1
move-object/from16 v14, p6
instance-of v15, v14, Lcom/google/android/exoplayer2/ParserException;
.line 817
.local v15, "isFatal":Z
move-object/from16 v13, p0
iget-object v1, v13, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestEventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget-object v2, v0, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
.line 819
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getUri()Landroid/net/Uri;
move-result-object v3
.line 820
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getResponseHeaders()Ljava/util/Map;
move-result-object v4
iget v5, v0, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->type:I
.line 824
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->bytesLoaded()J
move-result-wide v10
.line 817
move-wide/from16 v6, p2
move-wide/from16 v8, p4
move-object/from16 v12, p6
move v13, v15
invoke-virtual/range {v1 .. v13}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->loadError(Lcom/google/android/exoplayer2/upstream/DataSpec;Landroid/net/Uri;Ljava/util/Map;IJJJLjava/io/IOException;Z)V
.line 827
if-eqz v15, :cond_29
sget-object v1, Lcom/google/android/exoplayer2/upstream/Loader;->DONT_RETRY_FATAL:Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
goto :goto_2b
:cond_29
sget-object v1, Lcom/google/android/exoplayer2/upstream/Loader;->RETRY:Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
:goto_2b
return-object v1
.end method
.method onUtcTimestampLoadCompleted(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;JJ)V
.registers 19
.param p2, "elapsedRealtimeMs" # J
.param p4, "loadDurationMs" # J
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable<",
"Ljava/lang/Long;",
">;JJ)V"
}
.end annotation
.line 832
.local p1, "loadable":Lcom/google/android/exoplayer2/upstream/ParsingLoadable;, "Lcom/google/android/exoplayer2/upstream/ParsingLoadable<Ljava/lang/Long;>;"
move-object v0, p0
move-object v1, p1
iget-object v2, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestEventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget-object v3, v1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
.line 834
invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getUri()Landroid/net/Uri;
move-result-object v4
.line 835
invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getResponseHeaders()Ljava/util/Map;
move-result-object v5
iget v6, v1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->type:I
.line 839
invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->bytesLoaded()J
move-result-wide v11
.line 832
move-wide v7, p2
move-wide/from16 v9, p4
invoke-virtual/range {v2 .. v12}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->loadCompleted(Lcom/google/android/exoplayer2/upstream/DataSpec;Landroid/net/Uri;Ljava/util/Map;IJJJ)V
.line 840
invoke-virtual {p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getResult()Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/Long;
invoke-virtual {v2}, Ljava/lang/Long;->longValue()J
move-result-wide v2
sub-long/2addr v2, p2
invoke-direct {p0, v2, v3}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->onUtcTimestampResolved(J)V
.line 841
return-void
.end method
.method onUtcTimestampLoadError(Lcom/google/android/exoplayer2/upstream/ParsingLoadable;JJLjava/io/IOException;)Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
.registers 22
.param p2, "elapsedRealtimeMs" # J
.param p4, "loadDurationMs" # J
.param p6, "error" # Ljava/io/IOException;
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/upstream/ParsingLoadable<",
"Ljava/lang/Long;",
">;JJ",
"Ljava/io/IOException;",
")",
"Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;"
}
.end annotation
.line 848
.local p1, "loadable":Lcom/google/android/exoplayer2/upstream/ParsingLoadable;, "Lcom/google/android/exoplayer2/upstream/ParsingLoadable<Ljava/lang/Long;>;"
move-object v0, p0
move-object/from16 v1, p1
iget-object v2, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestEventDispatcher:Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;
iget-object v3, v1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->dataSpec:Lcom/google/android/exoplayer2/upstream/DataSpec;
.line 850
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getUri()Landroid/net/Uri;
move-result-object v4
.line 851
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->getResponseHeaders()Ljava/util/Map;
move-result-object v5
iget v6, v1, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->type:I
.line 855
invoke-virtual/range {p1 .. p1}, Lcom/google/android/exoplayer2/upstream/ParsingLoadable;->bytesLoaded()J
move-result-wide v11
.line 848
const/4 v14, 0x1
move-wide/from16 v7, p2
move-wide/from16 v9, p4
move-object/from16 v13, p6
invoke-virtual/range {v2 .. v14}, Lcom/google/android/exoplayer2/source/MediaSourceEventListener$EventDispatcher;->loadError(Lcom/google/android/exoplayer2/upstream/DataSpec;Landroid/net/Uri;Ljava/util/Map;IJJJLjava/io/IOException;Z)V
.line 858
move-object/from16 v2, p6
invoke-direct {p0, v2}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->onUtcTimestampResolutionError(Ljava/io/IOException;)V
.line 859
sget-object v3, Lcom/google/android/exoplayer2/upstream/Loader;->DONT_RETRY:Lcom/google/android/exoplayer2/upstream/Loader$LoadErrorAction;
return-object v3
.end method
.method public prepareSourceInternal(Lcom/google/android/exoplayer2/upstream/TransferListener;)V
.registers 4
.param p1, "mediaTransferListener" # Lcom/google/android/exoplayer2/upstream/TransferListener;
.line 640
iput-object p1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->mediaTransferListener:Lcom/google/android/exoplayer2/upstream/TransferListener;
.line 641
iget-boolean v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->sideloadedManifest:Z
if-eqz v0, :cond_b
.line 642
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->processManifest(Z)V
goto :goto_26
.line 644
:cond_b
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestDataSourceFactory:Lcom/google/android/exoplayer2/upstream/DataSource$Factory;
invoke-interface {v0}, Lcom/google/android/exoplayer2/upstream/DataSource$Factory;->createDataSource()Lcom/google/android/exoplayer2/upstream/DataSource;
move-result-object v0
iput-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 645
new-instance v0, Lcom/google/android/exoplayer2/upstream/Loader;
const-string v1, "Loader:DashMediaSource"
invoke-direct {v0, v1}, Lcom/google/android/exoplayer2/upstream/Loader;-><init>(Ljava/lang/String;)V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
.line 646
new-instance v0, Landroid/os/Handler;
invoke-direct {v0}, Landroid/os/Handler;-><init>()V
iput-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->handler:Landroid/os/Handler;
.line 647
invoke-direct {p0}, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->startLoadingManifest()V
.line 649
:goto_26
return-void
.end method
.method public releasePeriod(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.registers 5
.param p1, "mediaPeriod" # Lcom/google/android/exoplayer2/source/MediaPeriod;
.line 682
move-object v0, p1
check-cast v0, Lcom/google/android/exoplayer2/source/dash/DashMediaPeriod;
.line 683
.local v0, "dashMediaPeriod":Lcom/google/android/exoplayer2/source/dash/DashMediaPeriod;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/source/dash/DashMediaPeriod;->release()V
.line 684
iget-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->periodsById:Landroid/util/SparseArray;
iget v2, v0, Lcom/google/android/exoplayer2/source/dash/DashMediaPeriod;->id:I
invoke-virtual {v1, v2}, Landroid/util/SparseArray;->remove(I)V
.line 685
return-void
.end method
.method public releaseSourceInternal()V
.registers 6
.line 689
const/4 v0, 0x0
iput-boolean v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadPending:Z
.line 690
const/4 v1, 0x0
iput-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->dataSource:Lcom/google/android/exoplayer2/upstream/DataSource;
.line 691
iget-object v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
if-eqz v2, :cond_f
.line 692
invoke-virtual {v2}, Lcom/google/android/exoplayer2/upstream/Loader;->release()V
.line 693
iput-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->loader:Lcom/google/android/exoplayer2/upstream/Loader;
.line 695
:cond_f
const-wide/16 v2, 0x0
iput-wide v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadStartTimestampMs:J
.line 696
iput-wide v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestLoadEndTimestampMs:J
.line 697
iget-boolean v4, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->sideloadedManifest:Z
if-eqz v4, :cond_1c
iget-object v4, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
goto :goto_1d
:cond_1c
move-object v4, v1
:goto_1d
iput-object v4, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifest:Lcom/google/android/exoplayer2/source/dash/manifest/DashManifest;
.line 698
iget-object v4, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->initialManifestUri:Landroid/net/Uri;
iput-object v4, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestUri:Landroid/net/Uri;
.line 699
iput-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestFatalError:Ljava/io/IOException;
.line 700
iget-object v4, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->handler:Landroid/os/Handler;
if-eqz v4, :cond_2e
.line 701
invoke-virtual {v4, v1}, Landroid/os/Handler;->removeCallbacksAndMessages(Ljava/lang/Object;)V
.line 702
iput-object v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->handler:Landroid/os/Handler;
.line 704
:cond_2e
iput-wide v2, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->elapsedRealtimeOffsetMs:J
.line 705
iput v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->staleManifestReloadAttempt:I
.line 706
const-wide v1, -0x7fffffffffffffffL # -4.9E-324
iput-wide v1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->expiredManifestPublishTimeUs:J
.line 707
iput v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->firstPeriodId:I
.line 708
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->periodsById:Landroid/util/SparseArray;
invoke-virtual {v0}, Landroid/util/SparseArray;->clear()V
.line 709
return-void
.end method
.method public replaceManifestUri(Landroid/net/Uri;)V
.registers 4
.param p1, "manifestUri" # Landroid/net/Uri;
.line 624
iget-object v0, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestUriLock:Ljava/lang/Object;
monitor-enter v0
.line 625
:try_start_3
iput-object p1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->manifestUri:Landroid/net/Uri;
.line 626
iput-object p1, p0, Lcom/google/android/exoplayer2/source/dash/DashMediaSource;->initialManifestUri:Landroid/net/Uri;
.line 627
monitor-exit v0
.line 628
return-void
.line 627
:catchall_9
move-exception v1
monitor-exit v0
:try_end_b
.catchall {:try_start_3 .. :try_end_b} :catchall_9
throw v1
.end method