ExoPlayerImplInternal.smali
.class final Lcom/google/android/exoplayer2/ExoPlayerImplInternal;
.super Ljava/lang/Object;
.source "ExoPlayerImplInternal.java"
# interfaces
.implements Landroid/os/Handler$Callback;
.implements Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;
.implements Lcom/google/android/exoplayer2/trackselection/TrackSelector$InvalidationListener;
.implements Lcom/google/android/exoplayer2/source/MediaSource$Listener;
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;,
Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;,
Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SourceInfo;,
Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
}
.end annotation
# static fields
.field private static final IDLE_INTERVAL_MS:I = 0x3e8
.field private static final MAXIMUM_BUFFER_AHEAD_PERIODS:I = 0x64
.field private static final MSG_CUSTOM:I = 0xa
.field private static final MSG_DO_SOME_WORK:I = 0x2
.field public static final MSG_ERROR:I = 0x7
.field public static final MSG_LOADING_CHANGED:I = 0x2
.field private static final MSG_PERIOD_PREPARED:I = 0x7
.field public static final MSG_POSITION_DISCONTINUITY:I = 0x5
.field private static final MSG_PREPARE:I = 0x0
.field private static final MSG_REFRESH_SOURCE_INFO:I = 0x6
.field private static final MSG_RELEASE:I = 0x5
.field public static final MSG_SEEK_ACK:I = 0x4
.field private static final MSG_SEEK_TO:I = 0x3
.field private static final MSG_SET_PLAY_WHEN_READY:I = 0x1
.field private static final MSG_SOURCE_CONTINUE_LOADING_REQUESTED:I = 0x8
.field public static final MSG_SOURCE_INFO_REFRESHED:I = 0x6
.field public static final MSG_STATE_CHANGED:I = 0x1
.field private static final MSG_STOP:I = 0x4
.field public static final MSG_TRACKS_CHANGED:I = 0x3
.field private static final MSG_TRACK_SELECTION_INVALIDATED:I = 0x9
.field private static final PREPARING_SOURCE_INTERVAL_MS:I = 0xa
.field private static final RENDERER_TIMESTAMP_OFFSET_US:I = 0x3938700
.field private static final RENDERING_INTERVAL_MS:I = 0xa
.field private static final TAG:Ljava/lang/String; = "ExoPlayerImplInternal"
# instance fields
.field private customMessagesProcessed:I
.field private customMessagesSent:I
.field private elapsedRealtimeUs:J
.field private enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
.field private final eventHandler:Landroid/os/Handler;
.field private final handler:Landroid/os/Handler;
.field private final internalPlaybackThread:Landroid/os/HandlerThread;
.field private isLoading:Z
.field private final loadControl:Lcom/google/android/exoplayer2/LoadControl;
.field private loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.field private mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
.field private pendingInitialSeekCount:I
.field private pendingSeekPosition:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;
.field private final period:Lcom/google/android/exoplayer2/Timeline$Period;
.field private playWhenReady:Z
.field private playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
.field private final player:Lcom/google/android/exoplayer2/ExoPlayer;
.field private playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.field private readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.field private rebuffering:Z
.field private released:Z
.field private final rendererCapabilities:[Lcom/google/android/exoplayer2/RendererCapabilities;
.field private rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
.field private rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
.field private rendererPositionUs:J
.field private final renderers:[Lcom/google/android/exoplayer2/Renderer;
.field private final standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
.field private state:I
.field private timeline:Lcom/google/android/exoplayer2/Timeline;
.field private final trackSelector:Lcom/google/android/exoplayer2/trackselection/TrackSelector;
.field private final window:Lcom/google/android/exoplayer2/Timeline$Window;
# direct methods
.method public constructor <init>([Lcom/google/android/exoplayer2/Renderer;Lcom/google/android/exoplayer2/trackselection/TrackSelector;Lcom/google/android/exoplayer2/LoadControl;ZLandroid/os/Handler;Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;Lcom/google/android/exoplayer2/ExoPlayer;)V
.registers 8
.line 171
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 172
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
.line 173
iput-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->trackSelector:Lcom/google/android/exoplayer2/trackselection/TrackSelector;
.line 174
iput-object p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadControl:Lcom/google/android/exoplayer2/LoadControl;
.line 175
iput-boolean p4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
.line 176
iput-object p5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 p3, 0x1
.line 177
iput p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
.line 178
iput-object p6, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
.line 179
iput-object p7, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->player:Lcom/google/android/exoplayer2/ExoPlayer;
.line 181
array-length p3, p1
new-array p3, p3, [Lcom/google/android/exoplayer2/RendererCapabilities;
iput-object p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererCapabilities:[Lcom/google/android/exoplayer2/RendererCapabilities;
const/4 p3, 0x0
const/4 p4, 0x0
.line 182
:goto_1b
array-length p5, p1
if-ge p4, p5, :cond_30
.line 183
aget-object p5, p1, p4
invoke-interface {p5, p4}, Lcom/google/android/exoplayer2/Renderer;->setIndex(I)V
.line 184
iget-object p5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererCapabilities:[Lcom/google/android/exoplayer2/RendererCapabilities;
aget-object p6, p1, p4
invoke-interface {p6}, Lcom/google/android/exoplayer2/Renderer;->getCapabilities()Lcom/google/android/exoplayer2/RendererCapabilities;
move-result-object p6
aput-object p6, p5, p4
add-int/lit8 p4, p4, 0x1
goto :goto_1b
.line 186
:cond_30
new-instance p1, Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
invoke-direct {p1}, Lcom/google/android/exoplayer2/util/StandaloneMediaClock;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
new-array p1, p3, [Lcom/google/android/exoplayer2/Renderer;
.line 187
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
.line 188
new-instance p1, Lcom/google/android/exoplayer2/Timeline$Window;
invoke-direct {p1}, Lcom/google/android/exoplayer2/Timeline$Window;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
.line 189
new-instance p1, Lcom/google/android/exoplayer2/Timeline$Period;
invoke-direct {p1}, Lcom/google/android/exoplayer2/Timeline$Period;-><init>()V
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
.line 190
invoke-virtual {p2, p0}, Lcom/google/android/exoplayer2/trackselection/TrackSelector;->init(Lcom/google/android/exoplayer2/trackselection/TrackSelector$InvalidationListener;)V
.line 194
new-instance p1, Lcom/google/android/exoplayer2/util/PriorityHandlerThread;
const/16 p2, -0x10
const-string p3, "ExoPlayerImplInternal:Handler"
invoke-direct {p1, p3, p2}, Lcom/google/android/exoplayer2/util/PriorityHandlerThread;-><init>(Ljava/lang/String;I)V
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->internalPlaybackThread:Landroid/os/HandlerThread;
.line 196
invoke-virtual {p1}, Landroid/os/HandlerThread;->start()V
.line 197
new-instance p1, Landroid/os/Handler;
iget-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->internalPlaybackThread:Landroid/os/HandlerThread;
invoke-virtual {p2}, Landroid/os/HandlerThread;->getLooper()Landroid/os/Looper;
move-result-object p2
invoke-direct {p1, p2, p0}, Landroid/os/Handler;-><init>(Landroid/os/Looper;Landroid/os/Handler$Callback;)V
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
return-void
.end method
.method private doSomeWork()V
.registers 18
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;,
Ljava/io/IOException;
}
.end annotation
move-object/from16 v0, p0
.line 446
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v1
.line 447
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->updatePeriods()V
.line 448
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
const-wide/16 v4, 0xa
if-nez v3, :cond_16
.line 450
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeThrowPeriodPrepareError()V
.line 451
invoke-direct {v0, v1, v2, v4, v5}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->scheduleNextWork(JJ)V
return-void
:cond_16
const-string v3, "doSomeWork"
.line 455
invoke-static {v3}, Lcom/google/android/exoplayer2/util/TraceUtil;->beginSection(Ljava/lang/String;)V
.line 457
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->updatePlaybackPositions()V
.line 460
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v6, v3
const/4 v9, 0x0
const/4 v10, 0x1
const/4 v11, 0x1
:goto_24
if-ge v9, v6, :cond_59
aget-object v12, v3, v9
.line 464
iget-wide v13, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
iget-wide v7, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->elapsedRealtimeUs:J
invoke-interface {v12, v13, v14, v7, v8}, Lcom/google/android/exoplayer2/Renderer;->render(JJ)V
if-eqz v11, :cond_39
.line 465
invoke-interface {v12}, Lcom/google/android/exoplayer2/Renderer;->isEnded()Z
move-result v7
if-eqz v7, :cond_39
const/4 v11, 0x1
goto :goto_3a
:cond_39
const/4 v11, 0x0
.line 468
:goto_3a
invoke-interface {v12}, Lcom/google/android/exoplayer2/Renderer;->isReady()Z
move-result v7
if-nez v7, :cond_49
invoke-interface {v12}, Lcom/google/android/exoplayer2/Renderer;->isEnded()Z
move-result v7
if-eqz v7, :cond_47
goto :goto_49
:cond_47
const/4 v7, 0x0
goto :goto_4a
:cond_49
:goto_49
const/4 v7, 0x1
:goto_4a
if-nez v7, :cond_4f
.line 470
invoke-interface {v12}, Lcom/google/android/exoplayer2/Renderer;->maybeThrowStreamError()V
:cond_4f
if-eqz v10, :cond_55
if-eqz v7, :cond_55
const/4 v10, 0x1
goto :goto_56
:cond_55
const/4 v10, 0x0
:goto_56
add-int/lit8 v9, v9, 0x1
goto :goto_24
:cond_59
if-nez v10, :cond_5e
.line 476
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeThrowPeriodPrepareError()V
.line 479
:cond_5e
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget v6, v6, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
iget-object v7, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {v3, v6, v7}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v3
.line 480
invoke-virtual {v3}, Lcom/google/android/exoplayer2/Timeline$Period;->getDurationUs()J
move-result-wide v6
const/4 v3, 0x3
const/4 v8, 0x2
if-eqz v11, :cond_91
const-wide v11, -0x7fffffffffffffffL # -4.9E-324
cmp-long v9, v6, v11
if-eqz v9, :cond_83
.line 481
iget-object v9, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget-wide v11, v9, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->positionUs:J
cmp-long v9, v6, v11
if-gtz v9, :cond_91
:cond_83
iget-object v9, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-boolean v9, v9, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->isLast:Z
if-eqz v9, :cond_91
const/4 v6, 0x4
.line 485
invoke-direct {v0, v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 486
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopRenderers()V
goto :goto_d5
.line 487
:cond_91
iget v9, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-ne v9, v8, :cond_bd
.line 488
iget-object v9, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v9, v9
if-lez v9, :cond_aa
if-eqz v10, :cond_a7
iget-boolean v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rebuffering:Z
.line 489
invoke-direct {v0, v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->haveSufficientBuffer(Z)Z
move-result v6
if-eqz v6, :cond_a7
const/16 v16, 0x1
goto :goto_b0
:cond_a7
const/16 v16, 0x0
goto :goto_b0
.line 490
:cond_aa
invoke-direct {v0, v6, v7}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->isTimelineReady(J)Z
move-result v6
move/from16 v16, v6
:goto_b0
if-eqz v16, :cond_d5
.line 492
invoke-direct {v0, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 493
iget-boolean v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
if-eqz v6, :cond_d5
.line 494
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->startRenderers()V
goto :goto_d5
:cond_bd
if-ne v9, v3, :cond_d5
.line 498
iget-object v9, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v9, v9
if-lez v9, :cond_c5
goto :goto_c9
.line 499
:cond_c5
invoke-direct {v0, v6, v7}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->isTimelineReady(J)Z
move-result v10
:goto_c9
if-nez v10, :cond_d5
.line 501
iget-boolean v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
iput-boolean v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rebuffering:Z
.line 502
invoke-direct {v0, v8}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 503
invoke-direct/range {p0 .. p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopRenderers()V
.line 507
:cond_d5
:goto_d5
iget v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-ne v6, v8, :cond_e7
.line 508
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v7, v6
const/4 v15, 0x0
:goto_dd
if-ge v15, v7, :cond_e7
aget-object v9, v6, v15
.line 509
invoke-interface {v9}, Lcom/google/android/exoplayer2/Renderer;->maybeThrowStreamError()V
add-int/lit8 v15, v15, 0x1
goto :goto_dd
.line 513
:cond_e7
iget-boolean v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
if-eqz v6, :cond_ef
iget v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-eq v6, v3, :cond_f3
:cond_ef
iget v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-ne v3, v8, :cond_f7
.line 514
:cond_f3
invoke-direct {v0, v1, v2, v4, v5}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->scheduleNextWork(JJ)V
goto :goto_107
.line 515
:cond_f7
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v3, v3
if-eqz v3, :cond_102
const-wide/16 v3, 0x3e8
.line 516
invoke-direct {v0, v1, v2, v3, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->scheduleNextWork(JJ)V
goto :goto_107
.line 518
:cond_102
iget-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {v1, v8}, Landroid/os/Handler;->removeMessages(I)V
.line 521
:goto_107
invoke-static {}, Lcom/google/android/exoplayer2/util/TraceUtil;->endSection()V
return-void
.end method
.method private enableRenderers([ZI)V
.registers 19
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
move-object/from16 v0, p0
move/from16 v1, p2
.line 1351
new-array v1, v1, [Lcom/google/android/exoplayer2/Renderer;
iput-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
const/4 v1, 0x0
const/4 v2, 0x0
const/4 v3, 0x0
.line 1353
:goto_b
iget-object v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v5, v4
if-ge v2, v5, :cond_91
.line 1354
aget-object v4, v4, v2
.line 1355
iget-object v5, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v5, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->trackSelectorResult:Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
iget-object v5, v5, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->selections:Lcom/google/android/exoplayer2/trackselection/TrackSelectionArray;
invoke-virtual {v5, v2}, Lcom/google/android/exoplayer2/trackselection/TrackSelectionArray;->get(I)Lcom/google/android/exoplayer2/trackselection/TrackSelection;
move-result-object v5
if-eqz v5, :cond_8d
.line 1357
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
add-int/lit8 v15, v3, 0x1
aput-object v4, v6, v3
.line 1358
invoke-interface {v4}, Lcom/google/android/exoplayer2/Renderer;->getState()I
move-result v3
if-nez v3, :cond_8c
.line 1359
iget-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v3, v3, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->trackSelectorResult:Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
iget-object v3, v3, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->rendererConfigurations:[Lcom/google/android/exoplayer2/RendererConfiguration;
aget-object v7, v3, v2
.line 1362
iget-boolean v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
const/4 v6, 0x1
if-eqz v3, :cond_3e
iget v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
const/4 v8, 0x3
if-ne v3, v8, :cond_3e
const/4 v3, 0x1
goto :goto_3f
:cond_3e
const/4 v3, 0x0
.line 1364
:goto_3f
aget-boolean v8, p1, v2
if-nez v8, :cond_47
if-eqz v3, :cond_47
const/4 v12, 0x1
goto :goto_48
:cond_47
const/4 v12, 0x0
.line 1366
:goto_48
invoke-interface {v5}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->length()I
move-result v6
new-array v8, v6, [Lcom/google/android/exoplayer2/Format;
const/4 v9, 0x0
:goto_4f
if-ge v9, v6, :cond_5a
.line 1368
invoke-interface {v5, v9}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getFormat(I)Lcom/google/android/exoplayer2/Format;
move-result-object v10
aput-object v10, v8, v9
add-int/lit8 v9, v9, 0x1
goto :goto_4f
.line 1371
:cond_5a
iget-object v5, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v5, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->sampleStreams:[Lcom/google/android/exoplayer2/source/SampleStream;
aget-object v9, v5, v2
iget-wide v10, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
iget-object v5, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1372
invoke-virtual {v5}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->getRendererOffset()J
move-result-wide v13
move-object v6, v4
.line 1371
invoke-interface/range {v6 .. v14}, Lcom/google/android/exoplayer2/Renderer;->enable(Lcom/google/android/exoplayer2/RendererConfiguration;[Lcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/source/SampleStream;JZJ)V
.line 1373
invoke-interface {v4}, Lcom/google/android/exoplayer2/Renderer;->getMediaClock()Lcom/google/android/exoplayer2/util/MediaClock;
move-result-object v5
if-eqz v5, :cond_87
.line 1375
iget-object v6, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
if-nez v6, :cond_7b
.line 1379
iput-object v5, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
.line 1380
iput-object v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
goto :goto_87
.line 1376
:cond_7b
new-instance v1, Ljava/lang/IllegalStateException;
const-string v2, "Multiple renderer media clocks enabled."
invoke-direct {v1, v2}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
invoke-static {v1}, Lcom/google/android/exoplayer2/ExoPlaybackException;->createForUnexpected(Ljava/lang/RuntimeException;)Lcom/google/android/exoplayer2/ExoPlaybackException;
move-result-object v1
throw v1
:cond_87
:goto_87
if-eqz v3, :cond_8c
.line 1384
invoke-interface {v4}, Lcom/google/android/exoplayer2/Renderer;->start()V
:cond_8c
move v3, v15
:cond_8d
add-int/lit8 v2, v2, 0x1
goto/16 :goto_b
:cond_91
return-void
.end method
.method private ensureStopped(Lcom/google/android/exoplayer2/Renderer;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 713
invoke-interface {p1}, Lcom/google/android/exoplayer2/Renderer;->getState()I
move-result v0
const/4 v1, 0x2
if-ne v0, v1, :cond_a
.line 714
invoke-interface {p1}, Lcom/google/android/exoplayer2/Renderer;->stop()V
:cond_a
return-void
.end method
.method private getPeriodPosition(IJ)Landroid/util/Pair;
.registers 5
.annotation system Ldalvik/annotation/Signature;
value = {
"(IJ)",
"Landroid/util/Pair<",
"Ljava/lang/Integer;",
"Ljava/lang/Long;",
">;"
}
.end annotation
.line 1048
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
invoke-direct {p0, v0, p1, p2, p3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->getPeriodPosition(Lcom/google/android/exoplayer2/Timeline;IJ)Landroid/util/Pair;
move-result-object p1
return-object p1
.end method
.method private getPeriodPosition(Lcom/google/android/exoplayer2/Timeline;IJ)Landroid/util/Pair;
.registers 12
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/Timeline;",
"IJ)",
"Landroid/util/Pair<",
"Ljava/lang/Integer;",
"Ljava/lang/Long;",
">;"
}
.end annotation
const-wide/16 v5, 0x0
move-object v0, p0
move-object v1, p1
move v2, p2
move-wide v3, p3
.line 1057
invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->getPeriodPosition(Lcom/google/android/exoplayer2/Timeline;IJJ)Landroid/util/Pair;
move-result-object p1
return-object p1
.end method
.method private getPeriodPosition(Lcom/google/android/exoplayer2/Timeline;IJJ)Landroid/util/Pair;
.registers 15
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/Timeline;",
"IJJ)",
"Landroid/util/Pair<",
"Ljava/lang/Integer;",
"Ljava/lang/Long;",
">;"
}
.end annotation
.line 1075
invoke-virtual {p1}, Lcom/google/android/exoplayer2/Timeline;->getWindowCount()I
move-result v0
const/4 v1, 0x0
invoke-static {p2, v1, v0}, Lcom/google/android/exoplayer2/util/Assertions;->checkIndex(III)I
.line 1076
iget-object v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
const/4 v5, 0x0
move-object v2, p1
move v3, p2
move-wide v6, p5
invoke-virtual/range {v2 .. v7}, Lcom/google/android/exoplayer2/Timeline;->getWindow(ILcom/google/android/exoplayer2/Timeline$Window;ZJ)Lcom/google/android/exoplayer2/Timeline$Window;
const-wide p5, -0x7fffffffffffffffL # -4.9E-324
cmp-long p2, p3, p5
if-nez p2, :cond_26
.line 1078
iget-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
invoke-virtual {p2}, Lcom/google/android/exoplayer2/Timeline$Window;->getDefaultPositionUs()J
move-result-wide p3
cmp-long p2, p3, p5
if-nez p2, :cond_26
const/4 p1, 0x0
return-object p1
.line 1083
:cond_26
iget-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
iget p2, p2, Lcom/google/android/exoplayer2/Timeline$Window;->firstPeriodIndex:I
.line 1084
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/Timeline$Window;->getPositionInFirstPeriodUs()J
move-result-wide v0
add-long/2addr v0, p3
.line 1085
iget-object p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {p1, p2, p3}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object p3
invoke-virtual {p3}, Lcom/google/android/exoplayer2/Timeline$Period;->getDurationUs()J
move-result-wide p3
:goto_3b
cmp-long v2, p3, p5
if-eqz v2, :cond_57
cmp-long v2, v0, p3
if-ltz v2, :cond_57
.line 1086
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
iget v2, v2, Lcom/google/android/exoplayer2/Timeline$Window;->lastPeriodIndex:I
if-ge p2, v2, :cond_57
sub-long/2addr v0, p3
add-int/lit8 p2, p2, 0x1
.line 1089
iget-object p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {p1, p2, p3}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object p3
invoke-virtual {p3}, Lcom/google/android/exoplayer2/Timeline$Period;->getDurationUs()J
move-result-wide p3
goto :goto_3b
.line 1091
:cond_57
invoke-static {p2}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object p1
invoke-static {v0, v1}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object p2
invoke-static {p1, p2}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object p1
return-object p1
.end method
.method private handleContinueLoadingRequested(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.registers 3
.line 1280
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v0, :cond_c
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
if-eq v0, p1, :cond_9
goto :goto_c
.line 1284
:cond_9
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeContinueLoading()V
:cond_c
:goto_c
return-void
.end method
.method private handlePeriodPrepared(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 1265
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v0, :cond_23
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
if-eq v0, p1, :cond_9
goto :goto_23
.line 1269
:cond_9
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
invoke-virtual {p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->handlePrepared()V
.line 1270
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez p1, :cond_20
.line 1272
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1273
iget-wide v0, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->startPositionUs:J
invoke-direct {p0, v0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetRendererPosition(J)V
.line 1274
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setPlayingPeriodHolder(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.line 1276
:cond_20
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeContinueLoading()V
:cond_23
:goto_23
return-void
.end method
.method private handleSourceInfoRefreshEndedPlayback(Ljava/lang/Object;I)V
.registers 7
.line 963
new-instance v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
const/4 v1, 0x0
const-wide/16 v2, 0x0
invoke-direct {v0, v1, v2, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
.line 964
invoke-direct {p0, p1, p2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh(Ljava/lang/Object;I)V
.line 966
new-instance p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
invoke-direct {p1, v1, v2, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
const/4 p1, 0x4
.line 967
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 969
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetInternal(Z)V
return-void
.end method
.method private handleSourceInfoRefreshed(Landroid/util/Pair;)V
.registers 13
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/util/Pair<",
"Lcom/google/android/exoplayer2/Timeline;",
"Ljava/lang/Object;",
">;)V"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 847
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
.line 848
iget-object v1, p1, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v1, Lcom/google/android/exoplayer2/Timeline;
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
.line 849
iget-object p1, p1, Landroid/util/Pair;->second:Ljava/lang/Object;
const/4 v1, 0x0
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
const/4 v4, 0x0
if-nez v0, :cond_70
.line 853
iget v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingInitialSeekCount:I
if-lez v5, :cond_41
.line 854
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingSeekPosition:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;
invoke-direct {p0, v5}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resolveSeekPosition(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;)Landroid/util/Pair;
move-result-object v5
.line 855
iget v6, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingInitialSeekCount:I
.line 856
iput v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingInitialSeekCount:I
.line 857
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingSeekPosition:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;
if-nez v5, :cond_29
.line 861
invoke-direct {p0, p1, v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handleSourceInfoRefreshEndedPlayback(Ljava/lang/Object;I)V
return-void
.line 864
:cond_29
new-instance v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget-object v8, v5, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v8, Ljava/lang/Integer;
invoke-virtual {v8}, Ljava/lang/Integer;->intValue()I
move-result v8
iget-object v5, v5, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v5, Ljava/lang/Long;
invoke-virtual {v5}, Ljava/lang/Long;->longValue()J
move-result-wide v9
invoke-direct {v7, v8, v9, v10}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object v7, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
goto :goto_71
.line 865
:cond_41
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget-wide v5, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->startPositionUs:J
cmp-long v7, v5, v2
if-nez v7, :cond_70
.line 866
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
invoke-virtual {v5}, Lcom/google/android/exoplayer2/Timeline;->isEmpty()Z
move-result v5
if-eqz v5, :cond_55
.line 867
invoke-direct {p0, p1, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handleSourceInfoRefreshEndedPlayback(Ljava/lang/Object;I)V
return-void
.line 870
:cond_55
invoke-direct {p0, v4, v2, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->getPeriodPosition(IJ)Landroid/util/Pair;
move-result-object v5
.line 871
new-instance v6, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget-object v7, v5, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v7, Ljava/lang/Integer;
invoke-virtual {v7}, Ljava/lang/Integer;->intValue()I
move-result v7
iget-object v5, v5, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v5, Ljava/lang/Long;
invoke-virtual {v5}, Ljava/lang/Long;->longValue()J
move-result-wide v8
invoke-direct {v6, v7, v8, v9}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object v6, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
:cond_70
const/4 v6, 0x0
.line 875
:goto_71
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v5, :cond_76
goto :goto_78
:cond_76
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
:goto_78
if-nez v5, :cond_7e
.line 879
invoke-direct {p0, p1, v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh(Ljava/lang/Object;I)V
return-void
.line 883
:cond_7e
iget-object v7, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v8, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->uid:Ljava/lang/Object;
invoke-virtual {v7, v8}, Lcom/google/android/exoplayer2/Timeline;->getIndexOfPeriod(Ljava/lang/Object;)I
move-result v7
const/4 v8, -0x1
const/4 v9, 0x1
if-ne v7, v8, :cond_e6
.line 887
iget v1, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
iget-object v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
invoke-direct {p0, v1, v0, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resolveSubsequentPeriod(ILcom/google/android/exoplayer2/Timeline;Lcom/google/android/exoplayer2/Timeline;)I
move-result v0
if-ne v0, v8, :cond_98
.line 890
invoke-direct {p0, p1, v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handleSourceInfoRefreshEndedPlayback(Ljava/lang/Object;I)V
return-void
.line 894
:cond_98
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
.line 895
invoke-virtual {v1, v0, v4}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v0
iget v0, v0, Lcom/google/android/exoplayer2/Timeline$Period;->windowIndex:I
.line 894
invoke-direct {p0, v0, v2, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->getPeriodPosition(IJ)Landroid/util/Pair;
move-result-object v0
.line 896
iget-object v1, v0, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v1, Ljava/lang/Integer;
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
.line 897
iget-object v0, v0, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v0, Ljava/lang/Long;
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v2
.line 898
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {v0, v1, v4, v9}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
.line 901
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
iget-object v0, v0, Lcom/google/android/exoplayer2/Timeline$Period;->uid:Ljava/lang/Object;
.line 902
iput v8, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
.line 903
:goto_c3
iget-object v4, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v4, :cond_d7
.line 904
iget-object v5, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 905
iget-object v4, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->uid:Ljava/lang/Object;
invoke-virtual {v4, v0}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_d3
move v4, v1
goto :goto_d4
:cond_d3
const/4 v4, -0x1
:goto_d4
iput v4, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
goto :goto_c3
.line 908
:cond_d7
invoke-direct {p0, v1, v2, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->seekToPeriodPosition(IJ)J
move-result-wide v2
.line 909
new-instance v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
invoke-direct {v0, v1, v2, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
.line 910
invoke-direct {p0, p1, v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh(Ljava/lang/Object;I)V
return-void
.line 915
:cond_e6
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {v0, v7, v2}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
.line 916
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/Timeline;->getPeriodCount()I
move-result v0
sub-int/2addr v0, v9
if-ne v7, v0, :cond_108
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
iget v2, v2, Lcom/google/android/exoplayer2/Timeline$Period;->windowIndex:I
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
.line 917
invoke-virtual {v0, v2, v3}, Lcom/google/android/exoplayer2/Timeline;->getWindow(ILcom/google/android/exoplayer2/Timeline$Window;)Lcom/google/android/exoplayer2/Timeline$Window;
move-result-object v0
iget-boolean v0, v0, Lcom/google/android/exoplayer2/Timeline$Window;->isDynamic:Z
if-nez v0, :cond_108
const/4 v0, 0x1
goto :goto_109
:cond_108
const/4 v0, 0x0
.line 918
:goto_109
invoke-virtual {v5, v7, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->setIndex(IZ)V
.line 919
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-ne v5, v0, :cond_112
const/4 v0, 0x1
goto :goto_113
:cond_112
const/4 v0, 0x0
.line 920
:goto_113
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget v2, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->periodIndex:I
if-eq v7, v2, :cond_121
.line 921
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
invoke-virtual {v2, v7}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->copyWithPeriodIndex(I)Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
move-result-object v2
iput-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
.line 926
:cond_121
:goto_121
iget-object v2, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v2, :cond_181
.line 928
iget-object v2, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
add-int/2addr v7, v9
.line 930
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v8, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {v3, v7, v8, v9}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
.line 931
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
invoke-virtual {v3}, Lcom/google/android/exoplayer2/Timeline;->getPeriodCount()I
move-result v3
sub-int/2addr v3, v9
if-ne v7, v3, :cond_14a
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v8, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
iget v8, v8, Lcom/google/android/exoplayer2/Timeline$Period;->windowIndex:I
iget-object v10, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
.line 932
invoke-virtual {v3, v8, v10}, Lcom/google/android/exoplayer2/Timeline;->getWindow(ILcom/google/android/exoplayer2/Timeline$Window;)Lcom/google/android/exoplayer2/Timeline$Window;
move-result-object v3
iget-boolean v3, v3, Lcom/google/android/exoplayer2/Timeline$Window;->isDynamic:Z
if-nez v3, :cond_14a
const/4 v3, 0x1
goto :goto_14b
:cond_14a
const/4 v3, 0x0
.line 933
:goto_14b
iget-object v8, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->uid:Ljava/lang/Object;
iget-object v10, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
iget-object v10, v10, Lcom/google/android/exoplayer2/Timeline$Period;->uid:Ljava/lang/Object;
invoke-virtual {v8, v10}, Ljava/lang/Object;->equals(Ljava/lang/Object;)Z
move-result v8
if-eqz v8, :cond_164
.line 935
invoke-virtual {v2, v7, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->setIndex(IZ)V
.line 936
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-ne v2, v3, :cond_160
const/4 v3, 0x1
goto :goto_161
:cond_160
const/4 v3, 0x0
:goto_161
or-int/2addr v0, v3
move-object v5, v2
goto :goto_121
:cond_164
if-nez v0, :cond_17a
.line 942
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
.line 943
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget-wide v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->positionUs:J
invoke-direct {p0, v0, v1, v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->seekToPeriodPosition(IJ)J
move-result-wide v1
.line 944
new-instance v3, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
invoke-direct {v3, v0, v1, v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
goto :goto_181
.line 948
:cond_17a
iput-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 949
iput-object v1, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 951
invoke-direct {p0, v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->releasePeriodHoldersFrom(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.line 957
:cond_181
:goto_181
invoke-direct {p0, p1, v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->notifySourceInfoRefresh(Ljava/lang/Object;I)V
return-void
.end method
.method private haveSufficientBuffer(Z)Z
.registers 8
.line 818
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->prepared:Z
if-nez v0, :cond_b
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-wide v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->startPositionUs:J
goto :goto_13
:cond_b
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
.line 820
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaPeriod;->getBufferedPositionUs()J
move-result-wide v0
:goto_13
const-wide/high16 v2, -0x8000000000000000L
cmp-long v4, v0, v2
if-nez v4, :cond_31
.line 822
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->isLast:Z
if-eqz v0, :cond_21
const/4 p1, 0x1
return p1
.line 825
:cond_21
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {v0, v1, v2}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v0
.line 826
invoke-virtual {v0}, Lcom/google/android/exoplayer2/Timeline$Period;->getDurationUs()J
move-result-wide v0
.line 828
:cond_31
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadControl:Lcom/google/android/exoplayer2/LoadControl;
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-wide v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
.line 829
invoke-virtual {v3, v4, v5}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->toPeriodTime(J)J
move-result-wide v3
sub-long/2addr v0, v3
.line 828
invoke-interface {v2, v0, v1, p1}, Lcom/google/android/exoplayer2/LoadControl;->shouldStartPlayback(JZ)Z
move-result p1
return p1
.end method
.method private isTimelineReady(J)Z
.registers 6
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
cmp-long v2, p1, v0
if-eqz v2, :cond_22
.line 812
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget-wide v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->positionUs:J
cmp-long v2, v0, p1
if-ltz v2, :cond_22
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object p1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz p1, :cond_20
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object p1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-boolean p1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->prepared:Z
if-eqz p1, :cond_20
goto :goto_22
:cond_20
const/4 p1, 0x0
goto :goto_23
:cond_22
:goto_22
const/4 p1, 0x1
:goto_23
return p1
.end method
.method private maybeContinueLoading()V
.registers 8
.line 1288
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->prepared:Z
if-nez v0, :cond_9
const-wide/16 v0, 0x0
goto :goto_11
:cond_9
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
.line 1289
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaPeriod;->getNextLoadPositionUs()J
move-result-wide v0
:goto_11
const-wide/high16 v2, -0x8000000000000000L
const/4 v4, 0x0
cmp-long v5, v0, v2
if-nez v5, :cond_1c
.line 1291
invoke-direct {p0, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setIsLoading(Z)V
goto :goto_41
.line 1293
:cond_1c
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-wide v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
invoke-virtual {v2, v5, v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->toPeriodTime(J)J
move-result-wide v2
sub-long/2addr v0, v2
.line 1295
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadControl:Lcom/google/android/exoplayer2/LoadControl;
invoke-interface {v5, v0, v1}, Lcom/google/android/exoplayer2/LoadControl;->shouldContinueLoading(J)Z
move-result v0
.line 1296
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setIsLoading(Z)V
if-eqz v0, :cond_3c
.line 1298
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iput-boolean v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->needsContinueLoading:Z
.line 1299
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0, v2, v3}, Lcom/google/android/exoplayer2/source/MediaPeriod;->continueLoading(J)Z
goto :goto_41
.line 1301
:cond_3c
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
const/4 v1, 0x1
iput-boolean v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->needsContinueLoading:Z
:goto_41
return-void
.end method
.method private maybeThrowPeriodPrepareError()V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
.line 834
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v0, :cond_2b
iget-boolean v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->prepared:Z
if-nez v0, :cond_2b
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v0, :cond_12
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-ne v0, v1, :cond_2b
.line 836
:cond_12
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v1, v0
const/4 v2, 0x0
:goto_16
if-ge v2, v1, :cond_24
aget-object v3, v0, v2
.line 837
invoke-interface {v3}, Lcom/google/android/exoplayer2/Renderer;->hasReadStreamToEnd()Z
move-result v3
if-nez v3, :cond_21
return-void
:cond_21
add-int/lit8 v2, v2, 0x1
goto :goto_16
.line 841
:cond_24
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaPeriod;->maybeThrowPrepareError()V
:cond_2b
return-void
.end method
.method private maybeUpdateLoadingPeriod()V
.registers 23
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/io/IOException;
}
.end annotation
move-object/from16 v7, p0
.line 1192
iget-object v0, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
const/4 v8, 0x1
if-nez v0, :cond_c
.line 1193
iget-object v0, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->periodIndex:I
goto :goto_44
.line 1195
:cond_c
iget v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
.line 1196
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-boolean v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->isLast:Z
if-nez v1, :cond_12a
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->isFullyBuffered()Z
move-result v1
if-eqz v1, :cond_12a
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v2, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
.line 1197
invoke-virtual {v1, v0, v2}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/exoplayer2/Timeline$Period;->getDurationUs()J
move-result-wide v1
const-wide v3, -0x7fffffffffffffffL # -4.9E-324
cmp-long v5, v1, v3
if-nez v5, :cond_33
goto/16 :goto_12a
.line 1202
:cond_33
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v1, :cond_3f
iget v1, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
sub-int/2addr v0, v1
const/16 v1, 0x64
if-ne v0, v1, :cond_3f
return-void
.line 1207
:cond_3f
iget-object v0, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
add-int/2addr v0, v8
.line 1210
:goto_44
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/Timeline;->getPeriodCount()I
move-result v1
if-lt v0, v1, :cond_52
.line 1212
iget-object v0, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaSource;->maybeThrowSourceInfoRefreshError()V
return-void
.line 1217
:cond_52
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
const-wide/16 v2, 0x0
if-nez v1, :cond_5f
.line 1218
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget-wide v2, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->positionUs:J
:goto_5c
move-wide/from16 v20, v2
goto :goto_ba
.line 1220
:cond_5f
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v4, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {v1, v0, v4}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v1
iget v4, v1, Lcom/google/android/exoplayer2/Timeline$Period;->windowIndex:I
.line 1221
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v5, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
.line 1222
invoke-virtual {v1, v4, v5}, Lcom/google/android/exoplayer2/Timeline;->getWindow(ILcom/google/android/exoplayer2/Timeline$Window;)Lcom/google/android/exoplayer2/Timeline$Window;
move-result-object v1
iget v1, v1, Lcom/google/android/exoplayer2/Timeline$Window;->firstPeriodIndex:I
if-eq v0, v1, :cond_76
goto :goto_5c
.line 1232
:cond_76
iget-object v0, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->getRendererOffset()J
move-result-wide v0
iget-object v5, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v6, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget v6, v6, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
iget-object v9, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
.line 1233
invoke-virtual {v5, v6, v9}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v5
invoke-virtual {v5}, Lcom/google/android/exoplayer2/Timeline$Period;->getDurationUs()J
move-result-wide v5
add-long/2addr v0, v5
iget-wide v5, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
sub-long/2addr v0, v5
.line 1235
iget-object v5, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
const-wide v9, -0x7fffffffffffffffL # -4.9E-324
.line 1236
invoke-static {v2, v3, v0, v1}, Ljava/lang/Math;->max(JJ)J
move-result-wide v11
move-object/from16 v0, p0
move-object v1, v5
move v2, v4
move-wide v3, v9
move-wide v5, v11
.line 1235
invoke-direct/range {v0 .. v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->getPeriodPosition(Lcom/google/android/exoplayer2/Timeline;IJJ)Landroid/util/Pair;
move-result-object v0
if-nez v0, :cond_a8
return-void
.line 1241
:cond_a8
iget-object v1, v0, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v1, Ljava/lang/Integer;
invoke-virtual {v1}, Ljava/lang/Integer;->intValue()I
move-result v1
.line 1242
iget-object v0, v0, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v0, Ljava/lang/Long;
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v2
move v0, v1
goto :goto_5c
.line 1246
:goto_ba
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez v1, :cond_c4
const-wide/32 v1, 0x3938700
add-long v1, v20, v1
goto :goto_d9
.line 1248
:cond_c4
invoke-virtual {v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->getRendererOffset()J
move-result-wide v1
iget-object v3, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v4, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget v4, v4, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
iget-object v5, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
.line 1249
invoke-virtual {v3, v4, v5}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v3
invoke-virtual {v3}, Lcom/google/android/exoplayer2/Timeline$Period;->getDurationUs()J
move-result-wide v3
add-long/2addr v1, v3
:goto_d9
move-wide v12, v1
.line 1250
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v2, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {v1, v0, v2, v8}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
.line 1251
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/Timeline;->getPeriodCount()I
move-result v1
sub-int/2addr v1, v8
if-ne v0, v1, :cond_fd
iget-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v2, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
iget v2, v2, Lcom/google/android/exoplayer2/Timeline$Period;->windowIndex:I
iget-object v3, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->window:Lcom/google/android/exoplayer2/Timeline$Window;
.line 1252
invoke-virtual {v1, v2, v3}, Lcom/google/android/exoplayer2/Timeline;->getWindow(ILcom/google/android/exoplayer2/Timeline$Window;)Lcom/google/android/exoplayer2/Timeline$Window;
move-result-object v1
iget-boolean v1, v1, Lcom/google/android/exoplayer2/Timeline$Window;->isDynamic:Z
if-nez v1, :cond_fd
const/16 v19, 0x1
goto :goto_100
:cond_fd
const/4 v1, 0x0
const/16 v19, 0x0
.line 1253
:goto_100
new-instance v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v10, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
iget-object v11, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererCapabilities:[Lcom/google/android/exoplayer2/RendererCapabilities;
iget-object v14, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->trackSelector:Lcom/google/android/exoplayer2/trackselection/TrackSelector;
iget-object v15, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadControl:Lcom/google/android/exoplayer2/LoadControl;
iget-object v2, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
iget-object v3, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
iget-object v3, v3, Lcom/google/android/exoplayer2/Timeline$Period;->uid:Ljava/lang/Object;
move-object v9, v1
move-object/from16 v16, v2
move-object/from16 v17, v3
move/from16 v18, v0
invoke-direct/range {v9 .. v21}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;-><init>([Lcom/google/android/exoplayer2/Renderer;[Lcom/google/android/exoplayer2/RendererCapabilities;JLcom/google/android/exoplayer2/trackselection/TrackSelector;Lcom/google/android/exoplayer2/LoadControl;Lcom/google/android/exoplayer2/source/MediaSource;Ljava/lang/Object;IZJ)V
.line 1256
iget-object v0, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v0, :cond_120
.line 1257
iput-object v1, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1259
:cond_120
iput-object v1, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1260
iget-object v0, v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0, v7}, Lcom/google/android/exoplayer2/source/MediaPeriod;->prepare(Lcom/google/android/exoplayer2/source/MediaPeriod$Callback;)V
.line 1261
invoke-direct {v7, v8}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setIsLoading(Z)V
:cond_12a
:goto_12a
return-void
.end method
.method private notifySourceInfoRefresh(Ljava/lang/Object;I)V
.registers 7
.line 973
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
new-instance v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SourceInfo;
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
invoke-direct {v1, v2, p1, v3, p2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SourceInfo;-><init>(Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;I)V
const/4 p1, 0x6
invoke-virtual {v0, p1, v1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
.line 974
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.end method
.method private prepareInternal(Lcom/google/android/exoplayer2/source/MediaSource;Z)V
.registers 7
const/4 v0, 0x1
.line 374
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetInternal(Z)V
.line 375
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadControl:Lcom/google/android/exoplayer2/LoadControl;
invoke-interface {v1}, Lcom/google/android/exoplayer2/LoadControl;->onPrepared()V
if-eqz p2, :cond_18
.line 377
new-instance p2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
const/4 v1, 0x0
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
invoke-direct {p2, v1, v2, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
.line 379
:cond_18
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
.line 380
iget-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->player:Lcom/google/android/exoplayer2/ExoPlayer;
invoke-interface {p1, p2, v0, p0}, Lcom/google/android/exoplayer2/source/MediaSource;->prepareSource(Lcom/google/android/exoplayer2/ExoPlayer;ZLcom/google/android/exoplayer2/source/MediaSource$Listener;)V
const/4 p1, 0x2
.line 381
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 382
iget-object p2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {p2, p1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
.end method
.method private releaseInternal()V
.registers 3
const/4 v0, 0x1
.line 654
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetInternal(Z)V
.line 655
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadControl:Lcom/google/android/exoplayer2/LoadControl;
invoke-interface {v1}, Lcom/google/android/exoplayer2/LoadControl;->onReleased()V
.line 656
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 657
monitor-enter p0
.line 658
:try_start_d
iput-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->released:Z
.line 659
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
.line 660
monitor-exit p0
return-void
:catchall_14
move-exception v0
monitor-exit p0
:try_end_16
.catchall {:try_start_d .. :try_end_16} :catchall_14
throw v0
.end method
.method private releasePeriodHoldersFrom(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.registers 2
:goto_0
if-eqz p1, :cond_8
.line 1308
invoke-virtual {p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->release()V
.line 1309
iget-object p1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
goto :goto_0
:cond_8
return-void
.end method
.method private reselectTracksInternal()V
.registers 13
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 719
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez v0, :cond_5
return-void
:cond_5
const/4 v1, 0x1
const/4 v2, 0x1
:goto_7
if-eqz v0, :cond_f5
.line 727
iget-boolean v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->prepared:Z
if-nez v3, :cond_f
goto/16 :goto_f5
.line 731
:cond_f
invoke-virtual {v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->selectTracks()Z
move-result v3
const/4 v4, 0x0
if-eqz v3, :cond_ec
const/4 v3, 0x0
if-eqz v2, :cond_b4
.line 744
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eq v2, v5, :cond_21
const/4 v2, 0x1
goto :goto_22
:cond_21
const/4 v2, 0x0
.line 745
:goto_22
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v5, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
invoke-direct {p0, v5}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->releasePeriodHoldersFrom(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.line 746
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iput-object v3, v5, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 747
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iput-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 748
iput-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 750
iget-object v6, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v6, v6
new-array v6, v6, [Z
.line 751
iget-object v7, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget-wide v7, v7, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->positionUs:J
invoke-virtual {v5, v7, v8, v2, v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->updatePeriodTrackSelection(JZ[Z)J
move-result-wide v7
.line 753
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget-wide v9, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->positionUs:J
cmp-long v2, v7, v9
if-eqz v2, :cond_4f
.line 754
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iput-wide v7, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->positionUs:J
.line 755
invoke-direct {p0, v7, v8}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetRendererPosition(J)V
.line 759
:cond_4f
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v2, v2
new-array v2, v2, [Z
const/4 v5, 0x0
const/4 v7, 0x0
.line 760
:goto_56
iget-object v8, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v9, v8
if-ge v5, v9, :cond_a4
.line 761
aget-object v8, v8, v5
.line 762
invoke-interface {v8}, Lcom/google/android/exoplayer2/Renderer;->getState()I
move-result v9
if-eqz v9, :cond_65
const/4 v9, 0x1
goto :goto_66
:cond_65
const/4 v9, 0x0
:goto_66
aput-boolean v9, v2, v5
.line 763
iget-object v9, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v9, v9, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->sampleStreams:[Lcom/google/android/exoplayer2/source/SampleStream;
aget-object v9, v9, v5
if-eqz v9, :cond_72
add-int/lit8 v7, v7, 0x1
.line 767
:cond_72
aget-boolean v10, v2, v5
if-eqz v10, :cond_a1
.line 768
invoke-interface {v8}, Lcom/google/android/exoplayer2/Renderer;->getStream()Lcom/google/android/exoplayer2/source/SampleStream;
move-result-object v10
if-eq v9, v10, :cond_98
.line 770
iget-object v10, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
if-ne v8, v10, :cond_91
if-nez v9, :cond_8d
.line 775
iget-object v9, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
iget-object v10, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
invoke-interface {v10}, Lcom/google/android/exoplayer2/util/MediaClock;->getPositionUs()J
move-result-wide v10
invoke-virtual {v9, v10, v11}, Lcom/google/android/exoplayer2/util/StandaloneMediaClock;->setPositionUs(J)V
.line 777
:cond_8d
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
.line 778
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
.line 780
:cond_91
invoke-direct {p0, v8}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->ensureStopped(Lcom/google/android/exoplayer2/Renderer;)V
.line 781
invoke-interface {v8}, Lcom/google/android/exoplayer2/Renderer;->disable()V
goto :goto_a1
.line 782
:cond_98
aget-boolean v9, v6, v5
if-eqz v9, :cond_a1
.line 784
iget-wide v9, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
invoke-interface {v8, v9, v10}, Lcom/google/android/exoplayer2/Renderer;->resetPosition(J)V
:cond_a1
:goto_a1
add-int/lit8 v5, v5, 0x1
goto :goto_56
.line 788
:cond_a4
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v3, 0x3
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->trackSelectorResult:Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
invoke-virtual {v1, v3, v0}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object v0
.line 789
invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
.line 790
invoke-direct {p0, v2, v7}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enableRenderers([ZI)V
goto :goto_df
.line 793
:cond_b4
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 794
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
:goto_b8
if-eqz v0, :cond_c0
.line 796
invoke-virtual {v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->release()V
.line 797
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
goto :goto_b8
.line 799
:cond_c0
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iput-object v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 800
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->prepared:Z
if-eqz v0, :cond_df
.line 801
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-wide v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->startPositionUs:J
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-wide v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
.line 802
invoke-virtual {v2, v5, v6}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->toPeriodTime(J)J
move-result-wide v2
.line 801
invoke-static {v0, v1, v2, v3}, Ljava/lang/Math;->max(JJ)J
move-result-wide v0
.line 803
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
invoke-virtual {v2, v0, v1, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->updatePeriodTrackSelection(JZ)J
.line 806
:cond_df
:goto_df
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeContinueLoading()V
.line 807
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->updatePlaybackPositions()V
.line 808
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/4 v1, 0x2
invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
.line 735
:cond_ec
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-ne v0, v3, :cond_f1
const/4 v2, 0x0
.line 739
:cond_f1
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
goto/16 :goto_7
:cond_f5
:goto_f5
return-void
.end method
.method private resetInternal(Z)V
.registers 10
.line 664
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/4 v1, 0x2
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeMessages(I)V
const/4 v0, 0x0
.line 665
iput-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rebuffering:Z
.line 666
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/StandaloneMediaClock;->stop()V
const/4 v1, 0x0
.line 667
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
.line 668
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
const-wide/32 v2, 0x3938700
.line 669
iput-wide v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
.line 670
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v3, v2
const/4 v4, 0x0
:goto_1c
if-ge v4, v3, :cond_34
aget-object v5, v2, v4
.line 672
:try_start_20
invoke-direct {p0, v5}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->ensureStopped(Lcom/google/android/exoplayer2/Renderer;)V
.line 673
invoke-interface {v5}, Lcom/google/android/exoplayer2/Renderer;->disable()V
:try_end_26
.catch Lcom/google/android/exoplayer2/ExoPlaybackException; {:try_start_20 .. :try_end_26} :catch_29
.catch Ljava/lang/RuntimeException; {:try_start_20 .. :try_end_26} :catch_27
goto :goto_31
:catch_27
move-exception v5
goto :goto_2a
:catch_29
move-exception v5
:goto_2a
const-string v6, "ExoPlayerImplInternal"
const-string v7, "Stop failed."
.line 676
invoke-static {v6, v7, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
:goto_31
add-int/lit8 v4, v4, 0x1
goto :goto_1c
:cond_34
new-array v2, v0, [Lcom/google/android/exoplayer2/Renderer;
.line 679
iput-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
.line 680
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v2, :cond_3d
goto :goto_3f
:cond_3d
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
:goto_3f
invoke-direct {p0, v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->releasePeriodHoldersFrom(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.line 682
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 683
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 684
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 685
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setIsLoading(Z)V
if-eqz p1, :cond_58
.line 687
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
if-eqz p1, :cond_56
.line 688
invoke-interface {p1}, Lcom/google/android/exoplayer2/source/MediaSource;->releaseSource()V
.line 689
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
.line 691
:cond_56
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
:cond_58
return-void
.end method
.method private resetRendererPosition(J)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 638
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez v0, :cond_9
const-wide/32 v0, 0x3938700
add-long/2addr p1, v0
goto :goto_d
.line 640
:cond_9
invoke-virtual {v0, p1, p2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->toRendererTime(J)J
move-result-wide p1
:goto_d
iput-wide p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
.line 641
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
invoke-virtual {v0, p1, p2}, Lcom/google/android/exoplayer2/util/StandaloneMediaClock;->setPositionUs(J)V
.line 642
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length p2, p1
const/4 v0, 0x0
:goto_18
if-ge v0, p2, :cond_24
aget-object v1, p1, v0
.line 643
iget-wide v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
invoke-interface {v1, v2, v3}, Lcom/google/android/exoplayer2/Renderer;->resetPosition(J)V
add-int/lit8 v0, v0, 0x1
goto :goto_18
:cond_24
return-void
.end method
.method private resolveSeekPosition(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;)Landroid/util/Pair;
.registers 7
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;",
")",
"Landroid/util/Pair<",
"Ljava/lang/Integer;",
"Ljava/lang/Long;",
">;"
}
.end annotation
.line 1007
iget-object v0, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;->timeline:Lcom/google/android/exoplayer2/Timeline;
.line 1008
invoke-virtual {v0}, Lcom/google/android/exoplayer2/Timeline;->isEmpty()Z
move-result v1
if-eqz v1, :cond_a
.line 1011
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
.line 1016
:cond_a
:try_start_a
iget v1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;->windowIndex:I
iget-wide v2, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;->windowPositionUs:J
invoke-direct {p0, v0, v1, v2, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->getPeriodPosition(Lcom/google/android/exoplayer2/Timeline;IJ)Landroid/util/Pair;
move-result-object p1
:try_end_12
.catch Ljava/lang/IndexOutOfBoundsException; {:try_start_a .. :try_end_12} :catch_60
.line 1023
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
if-ne v1, v0, :cond_17
return-object p1
.line 1028
:cond_17
iget-object v2, p1, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v2, Ljava/lang/Integer;
.line 1029
invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
move-result v2
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
const/4 v4, 0x1
invoke-virtual {v0, v2, v3, v4}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v2
iget-object v2, v2, Lcom/google/android/exoplayer2/Timeline$Period;->uid:Ljava/lang/Object;
.line 1028
invoke-virtual {v1, v2}, Lcom/google/android/exoplayer2/Timeline;->getIndexOfPeriod(Ljava/lang/Object;)I
move-result v1
const/4 v2, -0x1
if-eq v1, v2, :cond_3a
.line 1032
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
iget-object p1, p1, Landroid/util/Pair;->second:Ljava/lang/Object;
invoke-static {v0, p1}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object p1
return-object p1
.line 1035
:cond_3a
iget-object p1, p1, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast p1, Ljava/lang/Integer;
invoke-virtual {p1}, Ljava/lang/Integer;->intValue()I
move-result p1
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
invoke-direct {p0, p1, v0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resolveSubsequentPeriod(ILcom/google/android/exoplayer2/Timeline;Lcom/google/android/exoplayer2/Timeline;)I
move-result p1
if-eq p1, v2, :cond_5e
.line 1038
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
invoke-virtual {v0, p1, v1}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object p1
iget p1, p1, Lcom/google/android/exoplayer2/Timeline$Period;->windowIndex:I
const-wide v0, -0x7fffffffffffffffL # -4.9E-324
invoke-direct {p0, p1, v0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->getPeriodPosition(IJ)Landroid/util/Pair;
move-result-object p1
return-object p1
:cond_5e
const/4 p1, 0x0
return-object p1
.line 1020
:catch_60
new-instance v0, Lcom/google/android/exoplayer2/IllegalSeekPositionException;
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget v2, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;->windowIndex:I
iget-wide v3, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;->windowPositionUs:J
invoke-direct {v0, v1, v2, v3, v4}, Lcom/google/android/exoplayer2/IllegalSeekPositionException;-><init>(Lcom/google/android/exoplayer2/Timeline;IJ)V
throw v0
.end method
.method private resolveSubsequentPeriod(ILcom/google/android/exoplayer2/Timeline;Lcom/google/android/exoplayer2/Timeline;)I
.registers 8
const/4 v0, -0x1
const/4 v1, -0x1
:goto_2
if-ne v1, v0, :cond_1b
.line 990
invoke-virtual {p2}, Lcom/google/android/exoplayer2/Timeline;->getPeriodCount()I
move-result v2
const/4 v3, 0x1
sub-int/2addr v2, v3
if-ge p1, v2, :cond_1b
add-int/lit8 p1, p1, 0x1
.line 991
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
.line 992
invoke-virtual {p2, p1, v1, v3}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;Z)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v1
iget-object v1, v1, Lcom/google/android/exoplayer2/Timeline$Period;->uid:Ljava/lang/Object;
.line 991
invoke-virtual {p3, v1}, Lcom/google/android/exoplayer2/Timeline;->getIndexOfPeriod(Ljava/lang/Object;)I
move-result v1
goto :goto_2
:cond_1b
return v1
.end method
.method private scheduleNextWork(JJ)V
.registers 7
.line 525
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/4 v1, 0x2
invoke-virtual {v0, v1}, Landroid/os/Handler;->removeMessages(I)V
add-long/2addr p1, p3
.line 527
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide p3
sub-long/2addr p1, p3
const-wide/16 p3, 0x0
cmp-long v0, p1, p3
if-gtz v0, :cond_18
.line 529
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {p1, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
goto :goto_1d
.line 531
:cond_18
iget-object p3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {p3, v1, p1, p2}, Landroid/os/Handler;->sendEmptyMessageDelayed(IJ)Z
:goto_1d
return-void
.end method
.method private seekToInternal(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;)V
.registers 16
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 536
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
const/4 v1, 0x1
if-nez v0, :cond_d
.line 537
iget v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingInitialSeekCount:I
add-int/2addr v0, v1
iput v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingInitialSeekCount:I
.line 538
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->pendingSeekPosition:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;
return-void
.line 542
:cond_d
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resolveSeekPosition(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;)Landroid/util/Pair;
move-result-object v0
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
const/4 v4, 0x4
const/4 v5, 0x0
if-nez v0, :cond_3a
.line 546
new-instance p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
const-wide/16 v6, 0x0
invoke-direct {p1, v5, v6, v7}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
.line 547
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
invoke-virtual {v0, v4, v1, v5, p1}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
.line 550
new-instance p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
invoke-direct {p1, v5, v2, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
.line 551
invoke-direct {p0, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 553
invoke-direct {p0, v5}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetInternal(Z)V
return-void
.line 557
:cond_3a
iget-wide v6, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;->windowPositionUs:J
cmp-long p1, v6, v2
if-nez p1, :cond_42
const/4 p1, 0x1
goto :goto_43
:cond_42
const/4 p1, 0x0
.line 558
:goto_43
iget-object v2, v0, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v2, Ljava/lang/Integer;
invoke-virtual {v2}, Ljava/lang/Integer;->intValue()I
move-result v2
.line 559
iget-object v0, v0, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v0, Ljava/lang/Long;
invoke-virtual {v0}, Ljava/lang/Long;->longValue()J
move-result-wide v6
.line 562
:try_start_53
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->periodIndex:I
if-ne v2, v0, :cond_77
const-wide/16 v8, 0x3e8
div-long v10, v6, v8
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget-wide v12, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->positionUs:J
div-long/2addr v12, v8
:try_end_62
.catchall {:try_start_53 .. :try_end_62} :catchall_93
cmp-long v0, v10, v12
if-nez v0, :cond_77
.line 571
new-instance v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
invoke-direct {v0, v2, v6, v7}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
.line 572
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
invoke-virtual {v1, v4, p1, v5, v0}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
.line 573
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.line 567
:cond_77
:try_start_77
invoke-direct {p0, v2, v6, v7}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->seekToPeriodPosition(IJ)J
move-result-wide v8
:try_end_7b
.catchall {:try_start_77 .. :try_end_7b} :catchall_93
cmp-long v0, v6, v8
if-eqz v0, :cond_80
goto :goto_81
:cond_80
const/4 v1, 0x0
:goto_81
or-int/2addr p1, v1
.line 571
new-instance v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
invoke-direct {v0, v2, v8, v9}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
.line 572
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
invoke-virtual {v1, v4, p1, v5, v0}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
.line 573
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
:catchall_93
move-exception v0
.line 571
new-instance v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
invoke-direct {v1, v2, v6, v7}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
.line 572
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
invoke-virtual {v2, v4, p1, v5, v1}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
.line 573
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
throw v0
.end method
.method private seekToPeriodPosition(IJ)J
.registers 11
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 579
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopRenderers()V
const/4 v0, 0x0
.line 580
iput-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rebuffering:Z
const/4 v1, 0x2
.line 581
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
.line 584
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
const/4 v3, 0x0
if-nez v2, :cond_18
.line 586
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz p1, :cond_16
.line 587
invoke-virtual {p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->release()V
:cond_16
move-object v4, v3
goto :goto_2b
:cond_18
move-object v4, v3
:goto_19
if-eqz v2, :cond_2b
.line 593
iget v5, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
if-ne v5, p1, :cond_25
iget-boolean v5, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->prepared:Z
if-eqz v5, :cond_25
move-object v4, v2
goto :goto_28
.line 596
:cond_25
invoke-virtual {v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->release()V
.line 598
:goto_28
iget-object v2, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
goto :goto_19
.line 604
:cond_2b
:goto_2b
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-ne p1, v4, :cond_33
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eq p1, v2, :cond_4b
.line 606
:cond_33
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v2, p1
const/4 v5, 0x0
:goto_37
if-ge v5, v2, :cond_41
aget-object v6, p1, v5
.line 607
invoke-interface {v6}, Lcom/google/android/exoplayer2/Renderer;->disable()V
add-int/lit8 v5, v5, 0x1
goto :goto_37
:cond_41
new-array p1, v0, [Lcom/google/android/exoplayer2/Renderer;
.line 609
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
.line 610
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
.line 611
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
.line 612
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
:cond_4b
if-eqz v4, :cond_6c
.line 617
iput-object v3, v4, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 618
iput-object v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 619
iput-object v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 620
invoke-direct {p0, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setPlayingPeriodHolder(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.line 621
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-boolean p1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->hasEnabledTracks:Z
if-eqz p1, :cond_65
.line 622
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object p1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {p1, p2, p3}, Lcom/google/android/exoplayer2/source/MediaPeriod;->seekToUs(J)J
move-result-wide p1
move-wide p2, p1
.line 624
:cond_65
invoke-direct {p0, p2, p3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetRendererPosition(J)V
.line 625
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeContinueLoading()V
goto :goto_75
.line 627
:cond_6c
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 628
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 629
iput-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 630
invoke-direct {p0, p2, p3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetRendererPosition(J)V
.line 633
:goto_75
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {p1, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-wide p2
.end method
.method private sendMessagesInternal([Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerMessage;)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 697
:try_start_0
array-length v0, p1
const/4 v1, 0x0
:goto_2
if-ge v1, v0, :cond_12
aget-object v2, p1, v1
.line 698
iget-object v3, v2, Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerMessage;->target:Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerComponent;
iget v4, v2, Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerMessage;->messageType:I
iget-object v2, v2, Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerMessage;->message:Ljava/lang/Object;
invoke-interface {v3, v4, v2}, Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerComponent;->handleMessage(ILjava/lang/Object;)V
add-int/lit8 v1, v1, 0x1
goto :goto_2
.line 700
:cond_12
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
if-eqz p1, :cond_1c
.line 702
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/4 v0, 0x2
invoke-virtual {p1, v0}, Landroid/os/Handler;->sendEmptyMessage(I)Z
:try_end_1c
.catchall {:try_start_0 .. :try_end_1c} :catchall_2b
.line 705
:cond_1c
monitor-enter p0
.line 706
:try_start_1d
iget p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->customMessagesProcessed:I
add-int/lit8 p1, p1, 0x1
iput p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->customMessagesProcessed:I
.line 707
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
.line 708
monitor-exit p0
return-void
:catchall_28
move-exception p1
monitor-exit p0
:try_end_2a
.catchall {:try_start_1d .. :try_end_2a} :catchall_28
throw p1
:catchall_2b
move-exception p1
.line 705
monitor-enter p0
.line 706
:try_start_2d
iget v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->customMessagesProcessed:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->customMessagesProcessed:I
.line 707
invoke-virtual {p0}, Ljava/lang/Object;->notifyAll()V
.line 708
monitor-exit p0
:try_end_37
.catchall {:try_start_2d .. :try_end_37} :catchall_38
throw p1
:catchall_38
move-exception p1
:try_start_39
monitor-exit p0
:try_end_3a
.catchall {:try_start_39 .. :try_end_3a} :catchall_38
throw p1
.end method
.method private setIsLoading(Z)V
.registers 5
.line 367
iget-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->isLoading:Z
if-eq v0, p1, :cond_11
.line 368
iput-boolean p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->isLoading:Z
.line 369
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v1, 0x2
const/4 v2, 0x0
invoke-virtual {v0, v1, p1, v2}, Landroid/os/Handler;->obtainMessage(III)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
:cond_11
return-void
.end method
.method private setPlayWhenReadyInternal(Z)V
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
const/4 v0, 0x0
.line 386
iput-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rebuffering:Z
.line 387
iput-boolean p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playWhenReady:Z
if-nez p1, :cond_e
.line 389
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopRenderers()V
.line 390
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->updatePlaybackPositions()V
goto :goto_24
.line 392
:cond_e
iget p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
const/4 v0, 0x3
const/4 v1, 0x2
if-ne p1, v0, :cond_1d
.line 393
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->startRenderers()V
.line 394
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {p1, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
goto :goto_24
:cond_1d
if-ne p1, v1, :cond_24
.line 396
iget-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-virtual {p1, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
:cond_24
:goto_24
return-void
.end method
.method private setPlayingPeriodHolder(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.registers 10
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 1314
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-ne v0, p1, :cond_5
return-void
.line 1319
:cond_5
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v0, v0
new-array v0, v0, [Z
const/4 v1, 0x0
const/4 v2, 0x0
const/4 v3, 0x0
.line 1320
:goto_d
iget-object v4, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v5, v4
if-ge v2, v5, :cond_60
.line 1321
aget-object v4, v4, v2
.line 1322
invoke-interface {v4}, Lcom/google/android/exoplayer2/Renderer;->getState()I
move-result v5
if-eqz v5, :cond_1c
const/4 v5, 0x1
goto :goto_1d
:cond_1c
const/4 v5, 0x0
:goto_1d
aput-boolean v5, v0, v2
.line 1323
iget-object v5, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->trackSelectorResult:Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
iget-object v5, v5, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->selections:Lcom/google/android/exoplayer2/trackselection/TrackSelectionArray;
invoke-virtual {v5, v2}, Lcom/google/android/exoplayer2/trackselection/TrackSelectionArray;->get(I)Lcom/google/android/exoplayer2/trackselection/TrackSelection;
move-result-object v5
if-eqz v5, :cond_2b
add-int/lit8 v3, v3, 0x1
.line 1327
:cond_2b
aget-boolean v6, v0, v2
if-eqz v6, :cond_5d
if-eqz v5, :cond_43
.line 1328
invoke-interface {v4}, Lcom/google/android/exoplayer2/Renderer;->isCurrentStreamFinal()Z
move-result v5
if-eqz v5, :cond_5d
.line 1329
invoke-interface {v4}, Lcom/google/android/exoplayer2/Renderer;->getStream()Lcom/google/android/exoplayer2/source/SampleStream;
move-result-object v5
iget-object v6, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v6, v6, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->sampleStreams:[Lcom/google/android/exoplayer2/source/SampleStream;
aget-object v6, v6, v2
if-ne v5, v6, :cond_5d
.line 1333
:cond_43
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
if-ne v4, v5, :cond_57
.line 1335
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
iget-object v6, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
invoke-interface {v6}, Lcom/google/android/exoplayer2/util/MediaClock;->getPositionUs()J
move-result-wide v6
invoke-virtual {v5, v6, v7}, Lcom/google/android/exoplayer2/util/StandaloneMediaClock;->setPositionUs(J)V
const/4 v5, 0x0
.line 1336
iput-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
.line 1337
iput-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
.line 1339
:cond_57
invoke-direct {p0, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->ensureStopped(Lcom/google/android/exoplayer2/Renderer;)V
.line 1340
invoke-interface {v4}, Lcom/google/android/exoplayer2/Renderer;->disable()V
:cond_5d
add-int/lit8 v2, v2, 0x1
goto :goto_d
.line 1344
:cond_60
iput-object p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1345
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v2, 0x3
iget-object p1, p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->trackSelectorResult:Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
invoke-virtual {v1, v2, p1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
.line 1346
invoke-direct {p0, v0, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enableRenderers([ZI)V
return-void
.end method
.method private setState(I)V
.registers 5
.line 360
iget v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
if-eq v0, p1, :cond_11
.line 361
iput p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->state:I
.line 362
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v1, 0x1
const/4 v2, 0x0
invoke-virtual {v0, v1, p1, v2}, Landroid/os/Handler;->obtainMessage(III)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
:cond_11
return-void
.end method
.method private startRenderers()V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
const/4 v0, 0x0
.line 402
iput-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rebuffering:Z
.line 403
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
invoke-virtual {v1}, Lcom/google/android/exoplayer2/util/StandaloneMediaClock;->start()V
.line 404
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v2, v1
:goto_b
if-ge v0, v2, :cond_15
aget-object v3, v1, v0
.line 405
invoke-interface {v3}, Lcom/google/android/exoplayer2/Renderer;->start()V
add-int/lit8 v0, v0, 0x1
goto :goto_b
:cond_15
return-void
.end method
.method private stopInternal()V
.registers 3
const/4 v0, 0x1
.line 648
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetInternal(Z)V
.line 649
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadControl:Lcom/google/android/exoplayer2/LoadControl;
invoke-interface {v1}, Lcom/google/android/exoplayer2/LoadControl;->onStopped()V
.line 650
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setState(I)V
return-void
.end method
.method private stopRenderers()V
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 410
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/StandaloneMediaClock;->stop()V
.line 411
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v1, v0
const/4 v2, 0x0
:goto_9
if-ge v2, v1, :cond_13
aget-object v3, v0, v2
.line 412
invoke-direct {p0, v3}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->ensureStopped(Lcom/google/android/exoplayer2/Renderer;)V
add-int/lit8 v2, v2, 0x1
goto :goto_9
:cond_13
return-void
.end method
.method private updatePeriods()V
.registers 12
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;,
Ljava/io/IOException;
}
.end annotation
.line 1095
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
if-nez v0, :cond_a
.line 1097
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->mediaSource:Lcom/google/android/exoplayer2/source/MediaSource;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaSource;->maybeThrowSourceInfoRefreshError()V
return-void
.line 1102
:cond_a
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeUpdateLoadingPeriod()V
.line 1103
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
const/4 v1, 0x0
if-eqz v0, :cond_25
invoke-virtual {v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->isFullyBuffered()Z
move-result v0
if-eqz v0, :cond_19
goto :goto_25
.line 1105
:cond_19
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->loadingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v0, :cond_28
iget-boolean v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->needsContinueLoading:Z
if-eqz v0, :cond_28
.line 1106
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->maybeContinueLoading()V
goto :goto_28
.line 1104
:cond_25
:goto_25
invoke-direct {p0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setIsLoading(Z)V
.line 1109
:cond_28
:goto_28
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez v0, :cond_2d
return-void
.line 1115
:cond_2d
:goto_2d
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eq v0, v2, :cond_68
iget-wide v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-wide v4, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->rendererPositionOffsetUs:J
cmp-long v0, v2, v4
if-ltz v0, :cond_68
.line 1119
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->release()V
.line 1120
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
invoke-direct {p0, v0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setPlayingPeriodHolder(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;)V
.line 1121
new-instance v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget v2, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-wide v3, v3, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->startPositionUs:J
invoke-direct {v0, v2, v3, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;-><init>(IJ)V
iput-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
.line 1123
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->updatePlaybackPositions()V
.line 1124
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
const/4 v2, 0x5
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
invoke-virtual {v0, v2, v3}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object v0
invoke-virtual {v0}, Landroid/os/Message;->sendToTarget()V
goto :goto_2d
.line 1127
:cond_68
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->isLast:Z
if-eqz v0, :cond_90
.line 1128
:goto_6e
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v2, v0
if-ge v1, v2, :cond_8f
.line 1129
aget-object v0, v0, v1
.line 1130
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v2, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->sampleStreams:[Lcom/google/android/exoplayer2/source/SampleStream;
aget-object v2, v2, v1
if-eqz v2, :cond_8c
.line 1133
invoke-interface {v0}, Lcom/google/android/exoplayer2/Renderer;->getStream()Lcom/google/android/exoplayer2/source/SampleStream;
move-result-object v3
if-ne v3, v2, :cond_8c
.line 1134
invoke-interface {v0}, Lcom/google/android/exoplayer2/Renderer;->hasReadStreamToEnd()Z
move-result v2
if-eqz v2, :cond_8c
.line 1135
invoke-interface {v0}, Lcom/google/android/exoplayer2/Renderer;->setCurrentStreamFinal()V
:cond_8c
add-int/lit8 v1, v1, 0x1
goto :goto_6e
:cond_8f
return-void
:cond_90
const/4 v0, 0x0
.line 1141
:goto_91
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v3, v2
if-ge v0, v3, :cond_b1
.line 1142
aget-object v2, v2, v0
.line 1143
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v3, v3, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->sampleStreams:[Lcom/google/android/exoplayer2/source/SampleStream;
aget-object v3, v3, v0
.line 1144
invoke-interface {v2}, Lcom/google/android/exoplayer2/Renderer;->getStream()Lcom/google/android/exoplayer2/source/SampleStream;
move-result-object v4
if-ne v4, v3, :cond_b0
if-eqz v3, :cond_ad
.line 1145
invoke-interface {v2}, Lcom/google/android/exoplayer2/Renderer;->hasReadStreamToEnd()Z
move-result v2
if-nez v2, :cond_ad
goto :goto_b0
:cond_ad
add-int/lit8 v0, v0, 0x1
goto :goto_91
:cond_b0
:goto_b0
return-void
.line 1150
:cond_b1
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-eqz v0, :cond_13a
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-boolean v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->prepared:Z
if-eqz v0, :cond_13a
.line 1151
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->trackSelectorResult:Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
.line 1152
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v2, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->next:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iput-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1153
iget-object v2, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->trackSelectorResult:Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;
.line 1155
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v3, v3, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
.line 1156
invoke-interface {v3}, Lcom/google/android/exoplayer2/source/MediaPeriod;->readDiscontinuity()J
move-result-wide v3
const-wide v5, -0x7fffffffffffffffL # -4.9E-324
cmp-long v7, v3, v5
if-eqz v7, :cond_de
const/4 v3, 0x1
goto :goto_df
:cond_de
const/4 v3, 0x0
:goto_df
const/4 v4, 0x0
.line 1157
:goto_e0
iget-object v5, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->renderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v6, v5
if-ge v4, v6, :cond_13a
.line 1158
aget-object v5, v5, v4
.line 1159
iget-object v6, v0, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->selections:Lcom/google/android/exoplayer2/trackselection/TrackSelectionArray;
invoke-virtual {v6, v4}, Lcom/google/android/exoplayer2/trackselection/TrackSelectionArray;->get(I)Lcom/google/android/exoplayer2/trackselection/TrackSelection;
move-result-object v6
if-nez v6, :cond_f0
goto :goto_137
:cond_f0
if-eqz v3, :cond_f6
.line 1165
invoke-interface {v5}, Lcom/google/android/exoplayer2/Renderer;->setCurrentStreamFinal()V
goto :goto_137
.line 1166
:cond_f6
invoke-interface {v5}, Lcom/google/android/exoplayer2/Renderer;->isCurrentStreamFinal()Z
move-result v6
if-nez v6, :cond_137
.line 1167
iget-object v6, v2, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->selections:Lcom/google/android/exoplayer2/trackselection/TrackSelectionArray;
invoke-virtual {v6, v4}, Lcom/google/android/exoplayer2/trackselection/TrackSelectionArray;->get(I)Lcom/google/android/exoplayer2/trackselection/TrackSelection;
move-result-object v6
.line 1168
iget-object v7, v0, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->rendererConfigurations:[Lcom/google/android/exoplayer2/RendererConfiguration;
aget-object v7, v7, v4
.line 1169
iget-object v8, v2, Lcom/google/android/exoplayer2/trackselection/TrackSelectorResult;->rendererConfigurations:[Lcom/google/android/exoplayer2/RendererConfiguration;
aget-object v8, v8, v4
if-eqz v6, :cond_134
.line 1170
invoke-virtual {v8, v7}, Lcom/google/android/exoplayer2/RendererConfiguration;->equals(Ljava/lang/Object;)Z
move-result v7
if-eqz v7, :cond_134
.line 1173
invoke-interface {v6}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->length()I
move-result v7
new-array v8, v7, [Lcom/google/android/exoplayer2/Format;
const/4 v9, 0x0
:goto_119
if-ge v9, v7, :cond_124
.line 1175
invoke-interface {v6, v9}, Lcom/google/android/exoplayer2/trackselection/TrackSelection;->getFormat(I)Lcom/google/android/exoplayer2/Format;
move-result-object v10
aput-object v10, v8, v9
add-int/lit8 v9, v9, 0x1
goto :goto_119
.line 1177
:cond_124
iget-object v6, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v6, v6, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->sampleStreams:[Lcom/google/android/exoplayer2/source/SampleStream;
aget-object v6, v6, v4
iget-object v7, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->readingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
.line 1178
invoke-virtual {v7}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->getRendererOffset()J
move-result-wide v9
.line 1177
invoke-interface {v5, v8, v6, v9, v10}, Lcom/google/android/exoplayer2/Renderer;->replaceStream([Lcom/google/android/exoplayer2/Format;Lcom/google/android/exoplayer2/source/SampleStream;J)V
goto :goto_137
.line 1183
:cond_134
invoke-interface {v5}, Lcom/google/android/exoplayer2/Renderer;->setCurrentStreamFinal()V
:cond_137
:goto_137
add-int/lit8 v4, v4, 0x1
goto :goto_e0
:cond_13a
return-void
.end method
.method private updatePlaybackPositions()V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Lcom/google/android/exoplayer2/ExoPlaybackException;
}
.end annotation
.line 417
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
if-nez v0, :cond_5
return-void
.line 422
:cond_5
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaPeriod;->readDiscontinuity()J
move-result-wide v0
const-wide v2, -0x7fffffffffffffffL # -4.9E-324
cmp-long v4, v0, v2
if-eqz v4, :cond_18
.line 424
invoke-direct {p0, v0, v1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->resetRendererPosition(J)V
goto :goto_40
.line 426
:cond_18
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClockSource:Lcom/google/android/exoplayer2/Renderer;
if-eqz v0, :cond_30
invoke-interface {v0}, Lcom/google/android/exoplayer2/Renderer;->isEnded()Z
move-result v0
if-nez v0, :cond_30
.line 427
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererMediaClock:Lcom/google/android/exoplayer2/util/MediaClock;
invoke-interface {v0}, Lcom/google/android/exoplayer2/util/MediaClock;->getPositionUs()J
move-result-wide v0
iput-wide v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
.line 428
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
invoke-virtual {v2, v0, v1}, Lcom/google/android/exoplayer2/util/StandaloneMediaClock;->setPositionUs(J)V
goto :goto_38
.line 430
:cond_30
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->standaloneMediaClock:Lcom/google/android/exoplayer2/util/StandaloneMediaClock;
invoke-virtual {v0}, Lcom/google/android/exoplayer2/util/StandaloneMediaClock;->getPositionUs()J
move-result-wide v0
iput-wide v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
.line 432
:goto_38
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-wide v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->rendererPositionUs:J
invoke-virtual {v0, v1, v2}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->toPeriodTime(J)J
move-result-wide v0
.line 434
:goto_40
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
iput-wide v0, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->positionUs:J
.line 435
invoke-static {}, Landroid/os/SystemClock;->elapsedRealtime()J
move-result-wide v0
const-wide/16 v2, 0x3e8
mul-long v0, v0, v2
iput-wide v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->elapsedRealtimeUs:J
.line 438
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->enabledRenderers:[Lcom/google/android/exoplayer2/Renderer;
array-length v0, v0
const-wide/high16 v1, -0x8000000000000000L
if-nez v0, :cond_57
move-wide v3, v1
goto :goto_5f
:cond_57
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget-object v0, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->mediaPeriod:Lcom/google/android/exoplayer2/source/MediaPeriod;
.line 439
invoke-interface {v0}, Lcom/google/android/exoplayer2/source/MediaPeriod;->getBufferedPositionUs()J
move-result-wide v3
.line 440
:goto_5f
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playbackInfo:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;
cmp-long v5, v3, v1
if-nez v5, :cond_75
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->timeline:Lcom/google/android/exoplayer2/Timeline;
iget-object v2, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->playingPeriodHolder:Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;
iget v2, v2, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$MediaPeriodHolder;->index:I
iget-object v3, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->period:Lcom/google/android/exoplayer2/Timeline$Period;
.line 441
invoke-virtual {v1, v2, v3}, Lcom/google/android/exoplayer2/Timeline;->getPeriod(ILcom/google/android/exoplayer2/Timeline$Period;)Lcom/google/android/exoplayer2/Timeline$Period;
move-result-object v1
invoke-virtual {v1}, Lcom/google/android/exoplayer2/Timeline$Period;->getDurationUs()J
move-result-wide v3
:cond_75
iput-wide v3, v0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$PlaybackInfo;->bufferedPositionUs:J
return-void
.end method
# virtual methods
.method public varargs declared-synchronized blockingSendMessages([Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerMessage;)V
.registers 5
monitor-enter p0
.line 228
:try_start_1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->released:Z
if-eqz v0, :cond_e
const-string p1, "ExoPlayerImplInternal"
const-string v0, "Ignoring messages sent after release."
.line 229
invoke-static {p1, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:try_end_c
.catchall {:try_start_1 .. :try_end_c} :catchall_31
.line 230
monitor-exit p0
return-void
.line 232
:cond_e
:try_start_e
iget v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->customMessagesSent:I
add-int/lit8 v1, v0, 0x1
iput v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->customMessagesSent:I
.line 233
iget-object v1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/16 v2, 0xa
invoke-virtual {v1, v2, p1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
.line 234
:goto_1f
iget p1, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->customMessagesProcessed:I
:try_end_21
.catchall {:try_start_e .. :try_end_21} :catchall_31
if-gt p1, v0, :cond_2f
.line 236
:try_start_23
invoke-virtual {p0}, Ljava/lang/Object;->wait()V
:try_end_26
.catch Ljava/lang/InterruptedException; {:try_start_23 .. :try_end_26} :catch_27
.catchall {:try_start_23 .. :try_end_26} :catchall_31
goto :goto_1f
.line 238
:catch_27
:try_start_27
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Thread;->interrupt()V
:try_end_2e
.catchall {:try_start_27 .. :try_end_2e} :catchall_31
goto :goto_1f
.line 241
:cond_2f
monitor-exit p0
return-void
:catchall_31
move-exception p1
monitor-exit p0
throw p1
.end method
.method public handleMessage(Landroid/os/Message;)Z
.registers 7
const-string v0, "ExoPlayerImplInternal"
const/4 v1, 0x7
const/4 v2, 0x1
.line 290
:try_start_4
iget v3, p1, Landroid/os/Message;->what:I
const/4 v4, 0x0
packed-switch v3, :pswitch_data_9c
return v4
.line 332
:pswitch_b
iget-object p1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
check-cast p1, [Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerMessage;
check-cast p1, [Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerMessage;
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->sendMessagesInternal([Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerMessage;)V
return v2
.line 328
:pswitch_15
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->reselectTracksInternal()V
return v2
.line 324
:pswitch_19
iget-object p1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
check-cast p1, Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handleContinueLoadingRequested(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
return v2
.line 316
:pswitch_21
iget-object p1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
check-cast p1, Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handlePeriodPrepared(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
return v2
.line 320
:pswitch_29
iget-object p1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
check-cast p1, Landroid/util/Pair;
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handleSourceInfoRefreshed(Landroid/util/Pair;)V
return v2
.line 312
:pswitch_31
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->releaseInternal()V
return v2
.line 308
:pswitch_35
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopInternal()V
return v2
.line 304
:pswitch_39
iget-object p1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
check-cast p1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;
invoke-direct {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->seekToInternal(Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;)V
return v2
.line 300
:pswitch_41
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->doSomeWork()V
return v2
.line 296
:pswitch_45
iget p1, p1, Landroid/os/Message;->arg1:I
if-eqz p1, :cond_4a
const/4 v4, 0x1
:cond_4a
invoke-direct {p0, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->setPlayWhenReadyInternal(Z)V
return v2
.line 292
:pswitch_4e
iget-object v3, p1, Landroid/os/Message;->obj:Ljava/lang/Object;
check-cast v3, Lcom/google/android/exoplayer2/source/MediaSource;
iget p1, p1, Landroid/os/Message;->arg1:I
if-eqz p1, :cond_57
const/4 v4, 0x1
:cond_57
invoke-direct {p0, v3, v4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->prepareInternal(Lcom/google/android/exoplayer2/source/MediaSource;Z)V
:try_end_5a
.catch Lcom/google/android/exoplayer2/ExoPlaybackException; {:try_start_4 .. :try_end_5a} :catch_89
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_5a} :catch_72
.catch Ljava/lang/RuntimeException; {:try_start_4 .. :try_end_5a} :catch_5b
return v2
:catch_5b
move-exception p1
const-string v3, "Internal runtime error."
.line 349
invoke-static {v0, v3, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 350
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
invoke-static {p1}, Lcom/google/android/exoplayer2/ExoPlaybackException;->createForUnexpected(Ljava/lang/RuntimeException;)Lcom/google/android/exoplayer2/ExoPlaybackException;
move-result-object p1
invoke-virtual {v0, v1, p1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
.line 351
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
.line 352
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopInternal()V
return v2
:catch_72
move-exception p1
const-string v3, "Source error."
.line 344
invoke-static {v0, v3, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 345
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
invoke-static {p1}, Lcom/google/android/exoplayer2/ExoPlaybackException;->createForSource(Ljava/io/IOException;)Lcom/google/android/exoplayer2/ExoPlaybackException;
move-result-object p1
invoke-virtual {v0, v1, p1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
.line 346
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopInternal()V
return v2
:catch_89
move-exception p1
const-string v3, "Renderer error."
.line 339
invoke-static {v0, v3, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;Ljava/lang/Throwable;)I
.line 340
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->eventHandler:Landroid/os/Handler;
invoke-virtual {v0, v1, p1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
.line 341
invoke-direct {p0}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->stopInternal()V
return v2
:pswitch_data_9c
.packed-switch 0x0
:pswitch_4e
:pswitch_45
:pswitch_41
:pswitch_39
:pswitch_35
:pswitch_31
:pswitch_29
:pswitch_21
:pswitch_19
:pswitch_15
:pswitch_b
.end packed-switch
.end method
.method public onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.registers 4
.line 274
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/16 v1, 0x8
invoke-virtual {v0, v1, p1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.end method
.method public bridge synthetic onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/SequenceableLoader;)V
.registers 2
.line 43
check-cast p1, Lcom/google/android/exoplayer2/source/MediaPeriod;
invoke-virtual {p0, p1}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->onContinueLoadingRequested(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
return-void
.end method
.method public onPrepared(Lcom/google/android/exoplayer2/source/MediaPeriod;)V
.registers 4
.line 269
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/4 v1, 0x7
invoke-virtual {v0, v1, p1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.end method
.method public onSourceInfoRefreshed(Lcom/google/android/exoplayer2/Timeline;Ljava/lang/Object;)V
.registers 4
.line 262
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
invoke-static {p1, p2}, Landroid/util/Pair;->create(Ljava/lang/Object;Ljava/lang/Object;)Landroid/util/Pair;
move-result-object p1
const/4 p2, 0x6
invoke-virtual {v0, p2, p1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.end method
.method public onTrackSelectionsInvalidated()V
.registers 3
.line 281
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/16 v1, 0x9
invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
.end method
.method public prepare(Lcom/google/android/exoplayer2/source/MediaSource;Z)V
.registers 5
.line 201
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/4 v1, 0x0
invoke-virtual {v0, v1, p2, v1, p1}, Landroid/os/Handler;->obtainMessage(IIILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
.line 202
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.end method
.method public declared-synchronized release()V
.registers 3
monitor-enter p0
.line 244
:try_start_1
iget-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->released:Z
:try_end_3
.catchall {:try_start_1 .. :try_end_3} :catchall_24
if-eqz v0, :cond_7
.line 245
monitor-exit p0
return-void
.line 247
:cond_7
:try_start_7
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/4 v1, 0x5
invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
.line 248
:goto_d
iget-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->released:Z
:try_end_f
.catchall {:try_start_7 .. :try_end_f} :catchall_24
if-nez v0, :cond_1d
.line 250
:try_start_11
invoke-virtual {p0}, Ljava/lang/Object;->wait()V
:try_end_14
.catch Ljava/lang/InterruptedException; {:try_start_11 .. :try_end_14} :catch_15
.catchall {:try_start_11 .. :try_end_14} :catchall_24
goto :goto_d
.line 252
:catch_15
:try_start_15
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Thread;->interrupt()V
goto :goto_d
.line 255
:cond_1d
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->internalPlaybackThread:Landroid/os/HandlerThread;
invoke-virtual {v0}, Landroid/os/HandlerThread;->quit()Z
:try_end_22
.catchall {:try_start_15 .. :try_end_22} :catchall_24
.line 256
monitor-exit p0
return-void
:catchall_24
move-exception v0
monitor-exit p0
throw v0
.end method
.method public seekTo(Lcom/google/android/exoplayer2/Timeline;IJ)V
.registers 7
.line 210
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
new-instance v1, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;
invoke-direct {v1, p1, p2, p3, p4}, Lcom/google/android/exoplayer2/ExoPlayerImplInternal$SeekPosition;-><init>(Lcom/google/android/exoplayer2/Timeline;IJ)V
const/4 p1, 0x3
invoke-virtual {v0, p1, v1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
.line 211
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.end method
.method public varargs sendMessages([Lcom/google/android/exoplayer2/ExoPlayer$ExoPlayerMessage;)V
.registers 4
.line 219
iget-boolean v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->released:Z
if-eqz v0, :cond_c
const-string p1, "ExoPlayerImplInternal"
const-string v0, "Ignoring messages sent after release."
.line 220
invoke-static {p1, v0}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
return-void
.line 223
:cond_c
iget v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->customMessagesSent:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->customMessagesSent:I
.line 224
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/16 v1, 0xa
invoke-virtual {v0, v1, p1}, Landroid/os/Handler;->obtainMessage(ILjava/lang/Object;)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.end method
.method public setPlayWhenReady(Z)V
.registers 5
.line 206
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/4 v1, 0x0
const/4 v2, 0x1
invoke-virtual {v0, v2, p1, v1}, Landroid/os/Handler;->obtainMessage(III)Landroid/os/Message;
move-result-object p1
invoke-virtual {p1}, Landroid/os/Message;->sendToTarget()V
return-void
.end method
.method public stop()V
.registers 3
.line 215
iget-object v0, p0, Lcom/google/android/exoplayer2/ExoPlayerImplInternal;->handler:Landroid/os/Handler;
const/4 v1, 0x4
invoke-virtual {v0, v1}, Landroid/os/Handler;->sendEmptyMessage(I)Z
return-void
.end method